Chương 1 TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY
1.6. Phần mềm cho các nút mạng cảm biến không dây
Mọi hoạt động của một nút cảm biến không dây được xác định bởi phần mềm chạy trên bộ vi điều khiển trong các nút cảm biến. Các chương trình phần mềm thường được viết tương tự như các chương trình phần mềm cho các máy tính. Các chương trình được viết bằng một ngơn ngữ lập trình, chẳng hạn như C và được biên dịch với một trình biên dịch mã máy cho vi điều khiển. Các mã máy được ghi vào ROM của bộ vi điều khiển khi các nút cảm biến được sản xuất. Khi các nút cảm biến được bật nguồn thì bộ vi điều khiển sẽ chạy các phần mềm. Quá trình này được minh họa trong hình 1.13.
Hình 1.13: Quá trình phát triển phần mềm cho một nút cảm biến không dây.
Mã nguồn được biên dịch thành mã máy và được ghi vào ROM trong bộ vi điều khiển của nút cảm biến.
Mặc dù hồn tồn có thể chạy các chương trình phần mềm cho vi điều khiển mà khơng cần sử dụng một hệ điều hành nào nhưng hầu hết các nút cảm biến sử dụng hệ điều hành. Bởi vì những hạn chế về tài nguyên nên hệ điều hành cho các nút cảm biến rất khác với hệ điều hành cho máy tính. Các hệ điều hành cho nút cảm biến nhỏ hơn nhiều và sử dụng ít tài nguyên hơn.
Bởi vì những hạn chế về năng lượng và về chi phí nên các nút cảm biến thường có bộ nhớ ít hơn nhiều so với các máy tính. Kích thước bộ nhớ chỉ một vài KB, so với hàng GB bộ nhớ trong các máy tính ngày nay.
1.6.1. Hệ điều hành cho mạng cảm biến không dây
Giống như các máy tính thì các nút cảm biến khơng dây cũng sử dụng các hệ điều hành. Chức năng cơ bản của hệ điều hành bao gồm việc trừu tượng hóa tài nguyên cho các thiết bị phần cứng khác nhau, quản lý ngắt và lập lịch các nhiệm vụ, điều khiển đồng thời và hỗ trợ mạng. Dựa trên các dịch vụ được cung cấp bởi hệ điều hành, người lập trình ứng dụng có thể thuận tiện sử dụng các giao diện lập trình ứng dụng mức cao (APIs) độc lập với phần cứng lớp dưới.
Các hệ điều hành cho mạng cảm biến rất khác với các hệ điều hành thông dụng được sử dụng trên máy tính và điện thoại di động. Các hạn chế về tài nguyên bộ nhớ và sức mạnh xử lý làm cho hệ điều hành quy mô lớn như Microsoft Windows, Mac OS X, hoặc Linux đều không thể sử dụng cho các nút cảm biến. Ngay cả phiên bản thu nhỏ, chẳng hạn như Microsoft Windows Mobile hoặc Linux dựa trên Android của Google cũng là quá lớn.
Hệ điều hành cho các nút cảm biến được thiết kế riêng với các yêu cầu đặc trưng của nút cảm biến và những hạn chế đặc trưng riêng bị áp đặt bởi phần cứng. Bộ nhớ hạn chế làm cho mơ hình lập trình đối với nút cảm biến có nhiều điểm khác. Những hạn chế về tốc độ xử lý yêu cầu sử dụng ngơn ngữ lập trình cấp thấp, chẳng hạn như ngơn ngữ lập trình C.
Hệ điều hành cho nút cảm biến khơng có một giao diện người dùng giống như hệ điều hành cho máy tính vì người dùng khơng trực tiếp tương tác với hệ điều hành trên nút cảm biến. Thay vào đó, hệ điều hành ẩn sâu bên trong bộ vi điều khiển. Thơng thường, chỉ là người lập trình với nút cảm biến mới tiếp xúc với hệ điều hành.
1.6.2. Những thách thức ảnh hưởng đến việc thiết kế hệ điều hành cho mạng cảm biến không dây cảm biến khơng dây
Hiện nay có nhiều thách thức đặt ra cần phải được giải quyết, nhưng ảnh hưởng chính là các ràng buộc về tài nguyên của phần cứng nút cảm biến và các yêu cầu của ứng dụng mạng cảm biến không dây. Những thách thức chủ yếu ảnh hưởng đến việc thiết kế hệ điều hành là:
Dung lượng nhỏ: Với bộ nhớ bị giới hạn chỉ vài KB trên nút cảm biến, đòi
hỏi hệ điều hành được thiết kế với dung lượng rất nhỏ. Đây là đặc điểm cơ bản của hệ điều hành mạng cảm biến và đó cũng là lý do chính mà tại sao nhiều hệ điều hành nhúng không thể dễ dàng cài đặt trên nút cảm biến.
Hiệu quả năng lượng: Các nút cảm biến có thời gian sử dụng của pin rất
hạn chế. Mặt khác, các mạng cảm biến bảo đảm mục tiêu là vận hành từ 3 đến 5 năm. Điều này có nghĩa là, hệ điều hành mạng cảm biến được triển khai một lần và có kế hoạch vận hành trong một thời gian dài.
Hỗ trợ thời gian thực: Hầu hết các ứng dụng cảm biến như phục vụ giám
sát thường nhạy cảm với thời gian. Trong các ứng dụng đó, các gói tin cần được chuyển tiếp và gửi đi một cách kịp thời, vấn đề đảm bảo thời gian thực là cần thiết để đáp ứng cho các ứng dụng đó.
Khả năng cấu hình lại: Là điều cần thiết để các nút cảm biến có thể được
lập trình lại sau khi mạng cảm biến khơng dây đã được triển khai. Khả năng cấu hình lại hệ thống là một đặc điểm cần thiết của hệ điều hành giúp cho mạng cảm biến có thể được lập trình lại dễ dàng và hiệu quả.
Sự tiện lợi cho lập trình: Các ứng dụng mạng cảm biến là khác nhau và tùy
theo yêu cầu. Do vậy, sự tiện lợi cho lập trình là một điều quan trọng để rút ngắn thời gian triển khai các ứng dụng mạng cảm biến không dây.