Máy tính sẽ đĩng vai trị là Master lần lượt gởi địa chỉ của các Slave cần thu thập dữ liệu theo thứ tự và chờ data từ các Slave gởi về.
PC sau khi gởi địa chỉ của node cần đọc sẽ chờ cho đến khi vùng đệm nhận cĩ số byte data cần thiết (nếu số byte dữ liệu từ vi xử lý là 3 byte, bộ đệm sẽ chờ
cho đến khi nhận được 9 byte bao gồm 1 byte địa chỉ, 6 byte dữ liệu dưới dạng mã ASCII và 2 byte là Checksum cũng được mã hố theo dạng mã ASCII). Khối dữ liệu truyền lên sẽ được kiểm tra địa chỉ, nếu khơng đúng địa chỉ cần nhận, bộ đệm nhận sẽ bị xố và PC sẽ yêu cầu data data được gởi lên lại (bằng cách gởi xuống vi xử lý địa chỉ board). Nếu địa chỉ của khối dữ liệu đúng với địa chỉ đã phát, khối dữ liệu sẽ tiếp tục được kiểm tra checksum. Tổng giá trị của các byte data được gán vào một biến (biến này cĩ thể là một hoặc hai byte). Byte thấp của biến này sẽ được so sánh với byte checksum truyền lên. Dữ liệu chỉ được coi là đúng khi hai giá trị này bằng nhau. Sau khi thực hiện so sánh checksum, nếu đúng data sẽ được xử lý (cĩ thể lưu vào bộ nhớ, hiển thị ra màn hình …). Nếu khơng, PC sẽ gởi lại địa chỉ board cần nhận, tiếp tục chờ và kiểm tra dữ liệu gởi lên.
Các thao tác trên sẽ tiếp tục lặp lại cho đến khi nào việc kiểm tra địa chỉ và checksum cho kết quả đúng hoặc vẫn cĩ kết quả sai mà hết thời gian Timeout, đây là khoảng thời gian ấn định trước được bắt đầu tính từ khi gởi địa chỉ lần đầu tiên để thu thập dữ liệu từ một board. Khoảng thời gian này là cần thiết vì PC khơng thể chờ data thích hợp một cách vơ tận mà chỉ chờ trong khoảng thời gian cho phép. Nếu q thời gian này mà khơng cĩ dữ liệu hay dữ liệu khơng đúng, máy tính sẽ báo việc nhận thất bại. Sau đĩ PC sẽ gởi địa chỉ board kế tiếp và thực hiện các thao tác thu thập dữ liệu tương tự như trên.
II.3 Kết quả thực hiện :
Mạng hoạt động đúng như yêu cầu, dữ liệu thu thập được cho hiển thị theo dạng thơ (hiện tồn bộ kể cả địa chỉ và checksum).
Tuy nhiên đây chỉ là bước đầu, dù cĩ thể yêu cầu dữ liệu từ từng board theo đúng giao thức định sẵn, nhưng đây chỉ là dữ liệu ngẫu nhiên từ vùng đệm là 3 byte chọn trước trong vùng nhớ RAM của mỗi MCU, mạng chưa cho thấy khả năng tương tác giữa Master với các Slave, chưa thể thay đổi hay tác động đến dữ liệu gởi lên. Cần tạo các dữ liệu khác nhau để cĩ thể kiểm tra độ ổn định cũng như phát hiện các sai sĩt cĩ thể cĩ của mạng trong điều kiện hoạt động thực tế.
Bắt đầu
Gởi địa chỉ node cần nhận Nhận data gởi lên
Kết thúc
Lưu đồ tổng qt chương trình trên máy tính Xử lý dữ liệu
Lấy địa chỉ node kế tiếp So sánh địa chỉ gởi lên với
địa chỉ node đã yêu cầu Đúng
Sai
Kiểm tra Checksum
khối dữ liệu nhận được Sai Đúng
Time out ? Y
N
Địa chỉ Board khơng đúng Slave - MCU Master - PC Địa chỉ board Ignore các byte tiếp theo
Dữ liệu
Hoạt động khơng lỗi
Slave - MCU Master - PC
Địa chỉ board
Kiểm tra địa chỉ đúng Nhận dữ liệu Kiểm tra checksum đúng Xử lý dữ liệu (hiển thị, lưu trữ ...)
Địa chỉ Board đúng Dữ liệu Slave - MCU Master - PC Địa chỉ board
Kiểm tra địa chỉ sai Địa chỉ board
Dữ liệu
Kiểm tra Checksum sai
Địa chỉ board
. .
. . . . . .
Báo Timeout. Receive fail !
. . . . K hoa ûng thơ øi gia n Time ou t Hoạt động cĩ lỗi Địa chỉ Board đúng Địa chỉ Board đúng . . . . Cách thức hoạt động của mạng