CHƯƠNG 3: THIẾT KẾ PHẦN MỀM CHO HỆ ĐIỀU KHIỂN CHIẾU SÁNG
3.3 PHẦN MỀM TRUYỀN THÔNG KHÔNG DÂY
Phần mềm truyền thông không dây là phần mềm xuyên suốt toàn bộ hệ thống, tất cả các nút trong hệ đều sử dụng phần mềm này. Mỗi một nút tùy theo từng vai trò, tính chất cũng như năng lực tính toán mà chọn các tham số phù hợp. Nhóm thực hiện đề tài xây dựng phần mềm dựa trên hai nền tảng cơ bản là stack truyền thông Zigbee và sử dụng hệ điều hành hướng sự kiện.
3.3.1 Stack Zigbee
Phần mềm truyền thông không dây của toàn bộ hệ thống được dựa trên nền tảng Zigbee. Zigbee stack được Zigbee alliance, một tổ chức chuẩn hóa và phi lợi nhuận định nghĩa và phát triển. Stack này được thiết kế ứng dụng rất nhiều công nghệ trong các lĩnh vực khác nhau.
Trong mô hình truyền thông ISO-OSI ta có thể thấy, các ứng dụng Zigbee bao gồm 5 lớp
7Layer
ISO-OSI Model
Simplified 5Layer
ISO-OSI Model IEEE 802 Model 7 Application User Application
6 Presentation 5 Session 4 Transport
Application Profile 3 Network Network
Upper Layers
Logical Link Control(LLC) 2 Data Link Data Link
Media Access Control(MAC)
1 Physical Physical Physical
Hình 27: Mô hình phân lớp ISO-OSI
Hình 28: Một nút zigbee bao gồm phần cứng và phần mềm các phần mềm được phân theo từng lớp khác nhau
Tất cả các nút trong hệ thống của đề tài đều sử dụng một nền tảng chung và đều sử dụng thư viện Stack Zigbee. Zigbee phân chia vai trò của các nút trong hệ thống theo chức năng Coordinator, Router và End Device. Dưới đây là bảng phân hoạch chức năng của các nút.
Các chức năng trong lớp mạng Zigbee Coordinator Router End Device
Thiết lập một mạng Zigbee ã
Cho phép các thiết bị khác tham gia vào
mạng hoặc tỏch khỏi mạng ã ã
Đăng ký cỏc địa chỉ mạng 16 bit ã ã Phát hiện và ghi lại các đường dẫn cho
việc truyền tin. ã ã
Phát hiện và ghi lại danh sách các nút
lõn cận trực tiếp ã ã
Định tuyến cho cỏc gúi tin ã ã
Nhận hoặc gửi cỏc gúi tin ã ã ã
Tham gia vào mạng hoặc tách khỏi
mạng ã ã ã
Vào chế độ nghỉ ã
Hình 29: Chức năng các nút trong mạng Zigbee
Căn cứ vào bảng trên đề tài đã phân chia chức năng các nút trong hệ thống chiếu sáng như sau:
ã DTC: vai trũ Coordinator
ã mLCP: vai trũ Router
ã Cỏc nỳt sensor khỏc: vai trũ End Device
Hình 30: Phân vai trò cho các nút trong mạng
Một mạng Zigbee có khả năng quản trị tới 65536 nút, song trên thực tế việc tận dụng hết dải địa chỉ đòi hỏi cấu hình nút mạng tương đối cao. Do việc sử dụng các nút truyền thông chỉ sử dụng duy nhất một IC atmega1281 nên khi kỹ thuật hóa bài toán sẽ gặp hạn chế bộ nhớ RAM để chứa các bảng liên kết nút, bảng trạng thái các nút con và nút bố mẹ, bộ đệm các bản tin của các trung chuyển,…Vì vậy, tương ứng với phần cứng được xây dựng, chúng tôi giới hạn hệ thống như sau:
ã Coordinator: Quản lý được 32 nỳt Router và/hoặc End Device
ã Router: 64 nỳt End Device
Với qui mô các nút như vậy, có thể thấy mạng xây dựng được có quy mô tương đối lớn (ví dụ: lớn hơn nhiều so với mạng dùng hữu tuyến Modbus).
3.3.2 Hệ điều hành hướng sự kiện (event driven scheduler)
Hệ điều hành hướng sự kiện (event driven scheduler) là hệ điều hành thường được sử dụng trong các hệ thống nhúng. Hệ điều hành dạng này dễ dàng áp dụng vào các hệ có tài nguyên hạn chế. Cấu trúc của chương trình theo đó sẽ bao gồm các cặp liên kết gọi hàm API và các thông báo (notification) thực hiện. Về mặt lập trình thực chất đó là các hàm callback (hàm gọi ngược) và con trỏ hàm.
Như vậy khác với cách lập trình gọi hàm đồng bộ, toàn bộ chương trình trong điều hành hướng sự kiện sẽ được thực hiện một cách dị bộ.
APL ZDO
ZDO_GetLqiRssi
APL ZDO
ZDO_StartNetworkReq()
ZDO_StartNetworkConf
Hình 31: Gọi hàm đồng bộ và gọi hàm dị bộ
APL ZDO NWK MAC TaskManage
r “hardware”
MAC_TaskHandler()
ZDO_Confirm()
ISR_Handler()
Hình 32: Chu trình thực hiện của chương trình
Trong lập trình cho các mạng sensor không dây, hệ điều hành TinyOS của đại học Berkeley là “chuẩn mực” nhất và được chọn làm nền tảng phát triển của đề tài.
Ưu điểm của TinyOS là:
- Mô hình hướng sự kiện-> sử dụng CPU một cách có hiệu quả - Hệ bao gồm các máy trạng thái
Trên cơ sở phát triển ứng dụng có tham khảo TinyOS, các lớp ứng dụng của chương trình hệ thống được lập trình với các quy tắc sau:
ã Toàn bộ chương trỡnh ứng dụng được viết thành cỏc tập hàm callback thực hiện các yêu cầu từ lớp dưới
ã Mỗi một hàm callback trờn lớp ứng dụng phải thực thi <10ms
ã Lớp ứng dụng cú mức ưu tiờn thấp nhất so với mức dưới
ã Hàm callback cú mức ưu tiờn của lớp gọi nú
Hình 33: Các thành phần của TinyOS