Vùng nhớ của Slave được bố trí để lưu trữ tên Slave, thông tin cảm biến và số Byte của cảm biến tại từng port.
Việc bố trí vùng nhớ trên EEPROM nhằm đảm bảo địa chỉ các Slave sẽ không bị mất đi khi có sự cố mất điện, mất kết nối xảy ra. Chỉ cần có nguồn trở lại, các Slave sẽ tự động được kết nối vào hệ thống qua địa chỉ đã được cấp sẵn trước đó.
Bảng 4.4 và 4.5 mô tả cách thức tổ chức các Slave được lưu trữ trong EEPROM và
lưu trữ trong RAM:
DATA1 Port1 … (giới hạn 8 Byte) … DATA2 Port2 … (giới hạn 8 Byte) … DATA3 Port3 … (giới hạn 8 Byte) … Địa chỉ tại
EEPROM Nội dung lưu trữ
1 Địa chỉ Slave 11 Số Byte Port1 12 Số Byte Port2 13 Số Byte Port3 41 Thông tin Port1
42 Thông tin Port2
43 Thông tin Port3
Bảng 4.4: Tổ chức Slave Bảng 4.5: Tổ chức dữ liệu
Tối đa
SVTH: Huỳnh Văn Biên –Nguyễn Nhật Linh Trang 41
4.2.3. Bảng mã lệnh và chú thích
Bảng 4.6: Bảng tập lệnh điểu khiểntại Slave
Các lệnh điều khiển trên là các lệnh trả lời phản hồi công việc của các Slave về Master cho từng công việc cụ thể, để Master đánh giá và biết được thông tin đã được truyền đến các Slave hay chưa.
STT Tên Lệnh Mã Lệnh Ý Nghĩa
1 RepNew 0xf0 Phản hồi khi Master tìm kiếm thiết bị
2 RepAdd 0xf1 Phản hồi khi được cấp địa chỉ
3 Slave1 0x01 Trả lời khi có lệnh cài đặt hoặc lệnh đọc cảm biến khi nó được đặt tên là Slave 1
4 Slave2 0x02 Trả lời khi có lệnh cài đặt hoặc lệnh đọc cảm biến khi nó được đặt tên là Slave 2
5 Slave3 0x03 Trả lời khi có lệnh cài đặt hoặc lệnh đọc cảm biến khi nó được đặt tên là Slave 3
SVTH: Huỳnh Văn Biên –Nguyễn Nhật Linh Trang 42
4.2.4. Lưu đồchương trình và chi tiết hoạt động
Lưu đồ giải thuật của Slave
Hình 4.7: Lưu đồ giải thuật cho Slave
Bắt đầu
Khởi tạo
Chờ lệnh tìm kiếm
Gửi lệnh phản hồi RepNew
Chờ lệnh cấp địa chỉ Lệnh bắt đầu Lệnh cài đặt Gửi dữ liệu Gửi lệnh phản hồi RepAdd
Địa chỉ Slave Lệnh đọc cảm biến Lệnh gửi dữ liệu Đọc cảm biến Cài đặt Slave Đ S S Đ Đ Đ Đ S S S S S S S Đ Đ
SVTH: Huỳnh Văn Biên –Nguyễn Nhật Linh Trang 43
Mô tả hoạt động:
Khi được cấp nguồn, Slave sẽ khởi tạo LoRa. Chờ nhận lệnh từ Master, khi nhận được lệnh timkiem (0xff) thì gửi phản hồi RepNew (0xf0). Sau khi được gán địa chỉ thì gửi xác nhận RepAdd (0xf1) cho Master. Sau đó, tiến vào chế độ đăng nhập (sẽ không thoát ra dù có reset). Khi Master gửi lệnh bắt đầu 0x00, Slave sẽ chờ được gọi tên, nếu gọi được gọi đúngtên thì tiếp tục chờ tập lệnh từ Master, tùy theo lệnh mà thực hiện nhiệm vụ:
Nếu Master yêu cầu đọc cảm biến, nó sẽ phản hồi bằng cách gửi cho Master địa chỉ của nó và tiến hành đọc cảm biến rồi quay lại chờ mã bắt đầu.
Nếu Master yêu cầu gửi dữ liệu cảm biến, Slave sẽ gửi dữ liệu kèm theo 1 byte kiểm tra lỗi BSC, khi hoàn thành công việc, Slave quay lại trang thái chờ mã bắt đầu.
Frame:
Trong dữ liệu đã kèm theo một bit kiểm tra chẳn-lẻ.
Nếu Master yêu cầu cài đặt kết nối cảm biến, nó sẽ tiến hành làm việc theo yêu cầu tùy theo việc thiết lập loại cảm biến và dung lượng Byte của nó và khung truyền sẽ thay đổi tùy theo số Byte cài đặt.