Các mô hình hoạt động trong mạng cảm biến không dây có xu hƣớng khác biệt so với các mạng truyền thống. Trong khi tốc độ dữ liệu trung bình trong một khoảng thời gian dài có thể rất nhỏ (do rất hiếm khi có sự kiện đƣợc báo cáo), giá trị này có thể thay đổi đột ngột khi
37
có sự kiện xảy ra. Khi một sự kiện xảy ra, nó có thể đƣợc phát hiện bởi một số lƣợng lớn các cảm biến, làm mạng chuyển sang chế độ hoạt động dồn dập, gây ra hiện tƣợng dồn dập sự kiện. Do đó, giao thức đƣợc thiết kế phải xử lý đƣợc các sự bùng nổ lƣu lƣợng nhƣ vậy bằng việc chuyển đổi giữa các chế độ nghỉ và hoạt động cao của mạng.
1.4.7 Giao thức dựa trên phần tử và tối ưu lớp giao nhau
Cuối cùng, cần xét đến những khía cạnh thực hiện các giao thức truyền thông trong WSN. Mô hình thực hiện giao thức trong WSN dựa trên các lớp, đối lập với mô hình dựa trên phần tử. Nhiệm vụ còn lại là việc lựa chọn phần tử sao cho không phải tất cả đều luôn sẵn sàng trên tất cả các nút cảm biến, nhƣng nó có thể tạo thành một toolbox cơ bản của các giao thức và thuật toán.
Tất cả các mạng cảm biến không dây đều yêu cầu các giao thức vật lý, các giao thức MAC và các giao thức liên kết. Một số mạng yêu cầu thêm chức năng định tuyến và lớp truyền tải. Các module trợ giúp nhƣ đồng bộ thời gian, giám sát cấu hình mạng hay cục bộ hoá sẽ rất hữu dụng trong quá trình sử dụng. Các chức năng trừu tƣợng có thể đƣợc xây dựng trên các phần tử cơ bản này. Nhƣ vậy, tập các phần tử có ích trên một nút cảm biến có thể rất phức tạp, và có thể thay đổi theo từng ứng dụng.
1.5 Giao diện dịch vụ của WSN
1.5.1 Cấu trúc của giao diện ngăn xếp giao thức/ứng dụng
Một hệ điều hành dựa trên phần tử và ngăn xếp giao thức có thể đƣợc coi nhƣ một ứng dụng: một phần tử có thể tƣơng tác trực tiếp với các phần tử khác thông qua giao diện tồn tại giữa chúng . Ứng dụng có thể gồm một số phần tử, đƣợc tích hợp ở những nơi khác nhau trong ngăn xếp giao thức. Cách tiếp cận này có một số lợi thế: tinh gọn với cấu trúc giao thức tổng thể, dễ dàng giới thiệu mã ứng dụng cụ thể vào WSN ở các mức khác nhau và không yêu cầu giao diện dịch vụ chuyên dụng.
Nhƣng, tính tổng quát và linh hoạt cũng chính là nhƣợc điểm của phƣơng pháp này. Việc cho phép các lập trình viên ứng dụng can thiệp vào các ngăn xếp giao thức và bên trong hệ điều hành phải đƣợc giám sát cẩn thận. Trong các mạng truyền thống nhƣ Internet, các lập trình viên ứng dụng có thể truy cập vào các dịch vụ của mạng thông qua một giao diện thông thƣờng là ổ cắm. Giao diện này quy định rõ ràng về cách xử lý các kết nối, cách gửi và nhận các gói tin, và cách hỏi thông tin về trạng thái của mạng. Nhiệm vụ hiển nhiên của giao diện là trao đổi các gói tin với nhau.
Nhƣ vậy, có hai cách là thiết kế ứng dụng nhƣ là một phần tử hoặc thiết kế giao diện dịch vụ cho tất cả các phần tử. Hai lựa chọn này đƣợc chỉ ra trên hình 1.11. Giao diện dịch vụ sẽ cho phép nâng cao mức độ trừu tƣợng hoá cho ứng dụng có thể tƣơng tác với WSN - thay vì phải xác định giá trị để đọc từ các cảm biến riêng lẻ, ngƣời ta mong muốn cung cấp một ứng dụng với khả năng thể hiện cảm nhận nhiệm vụ gần với ý nghĩa của ứng dụng.
38
Rõ ràng, sự tích hợp chặt chẽ của ứng dụng trong ngăn xếp giao thức sẽ tạo ra tính tối ƣu cho nhà lập trình ứng dụng. Mặt khác, nó đòi hỏi phải có nhiều kinh nghiệm hơn khi sử dụng một giao diện dịch vụ chuẩn. Câu hỏi đặt ra ở đây là giá thành, sự suy giảm các đặc tính quan trọng và độ phức tạp của giao diện dịch vụ. Trong thực tế, so với mạng Internet, tính đa dạng và phức tạp về mẫu thông tin trong WSN lớn hơn nhiều. Do đó, giao diện dịch vụ thực sự có ý nghĩa và sẽ phức tạp hơn.
Hình 1.12.Hai lựa chọn giao diện dịch vụ với ngăn xếp giao diện
1.5.2 Các yêu cầu cho giao diện dịch vụ của WSN
Các chức năng quan trọng nhất mà một giao diện dịch vụ nên có là:
• Hỗ trợ các yêu cầu/ đáp ứng đơn giản: lấy giá trị đo từ một số cảm biến hoặc đặt tham số cho một số nút. Đây là một mô hình tƣơng tác đồng bộ và kết quả sẽ có ngay lập tức. Ngoài ra, các đáp ứng có thể yêu cầu đƣợc cung cấp định kỳ, hỗ trợ các ứng dụng đo lƣờng định kỳ.
• Hỗ trợ cho các thông báo sự kiện không đồng bộ: một nút có thể yêu cầu mạng thông báo khi có một sự kiện xảy ra. Đây là mô hình không đồng bộ trên khía cạnh không tồn tại mối quan hệ giữa thời gian yêu cầu đƣợc thực hiện và thời gian thông tin đƣợc cung cấp. Hình thức này yêu cầu không đồng bộ nên đƣợc đi kèm với khả năng hủy bỏ yêu cầu thông tin.
Mối quan tâm lớn hơn là câu hỏi làm thế nào để tập trung dữ liệu? Một lựa chọn, liên quan chặt chẽ đến phƣơng pháp công bố/ đăng ký đƣợc đƣa ra trong phần 1.4.4, nó đƣợc định nghĩa bởi một số hàm thành viên của một nhóm các nút nhƣ:
• Vị trí - tất cả các nút đều thuộc một vùng xác định phụ thuộc vào nhóm.
• Giá trị quan sát đƣợc - tất cả các nút có giá trị quan sát đƣợc phù hợp với một thuộc tính đã cho sẽ thuộc về một nhóm. Ví dụ, yêu cầu nhiệt độ đo đƣợc lớn hơn 20o
C.
Do các yêu cầu của giao diện dịch vụ tƣơng ứng với khái niệm công bố/ đăng ký nên phƣơng pháp này khá tự nhiên, nhƣng không vì thế mà nó chỉ phù hợp với các WSN.
• Chức năng xử lý trong mạng đƣợc sử dụng. Đối với hoạt động truy cập toàn bộ một Ứng dụng
Ứng dụng
Giao diện dịch vụ
39
nhóm các nút, đặc biệt là khi đọc các giá trị từ nhóm này (hoặc đồng bộ hoặc không đồng bộ), nó cần phải xác định loại xử lý trong mạng nào áp dụng đƣợc cho nó. Đặc biệt, khi xử lý thay đổi bản chất của kết quả (ví dụ nhƣ hợp nhất dữ liệu) thì nó phải đƣợc sự cho phép của ứng dụng đã yêu cầu.
• Liên quan đến chức năng tập hợp là một đặc điểm kỹ thuật về độ chính xác yêu cầu của kết quả. Điều này có thể có đƣợc bằng cách chỉ định giới hạn về số thành viên trong nhóm để tạo ra kết quả. Đi kèm với độ chính xác yêu cầu là chi phí năng lƣợng chấp nhận đƣợc.
• Các yêu cầu về tính kịp thời khi cung cấp dữ liệu là một khía cạnh tƣơng tự. Ví dụ, nó có thể cung cấp kết quả một cách nhanh chóng nhƣng với chi phí năng lƣợng cao hoặc chậm nhƣng với chi phí năng lƣợng thấp.
Nói chung, bất kỳ sự thoả hiệp nào về việc tiêu thụ năng lƣợng của sự trao đổi các gói dữ liệu cần đƣợc thể hiện càng rõ càng tốt.
• Yêu cầu để truy cập vào địa điểm, thời gian, hoặc thông tin trạng thái mạng (ví dụ nhƣ dự trữ năng lƣợng có sẵn trong các nút) thông qua giao diện dịch vụ.
Nó cũng có thể đƣợc sử dụng nhằm kết khối thông tin vị trí vào cấp trừu tƣợng cao hơn để có thể nói về các đối tƣợng tƣơng ứng với cách nhìn của con ngƣời về sự vật.
• Bảo mật cũng là một đặc tính thƣờng xuyên đƣợc sử dụng .
• Hỗ trợ kết nối giữa các nút khác nhau, toàn bộ mạng lƣới hoặc truy cập đơn giản vào các dịch vụ trong một mạng “chƣa biết”.
1.6 Kết chƣơng
Chƣơng này cho ta biết các đặc trƣng và cấu hình của mạng cảm biến không dây, kiến trúc của nó có nhiều kiểu khác nhau. Đối với nhiều ứng dụng (nhƣng không phải tất cả), giao tiếp đa bƣớc nhảy là công nghệ quan trọng và hầu hết các nghiên cứu WSN cũng nhƣ phần sau của cuốn sách này tập trung vào dạng đặc biệt này của mạng vô tuyến.
Bốn mục tiêu tối ƣu chính của WSN là chất lƣợng dịch vụ, hiệu suất năng lƣợng, khả năng mở rộng, và tính bền vững là các yêu cầu nổi bật của các WSN và chúng phải đƣợc tùy chọn và cân bằng cẩn trọng. Muốn vậy thì việc thiết kế từng phần WSN ở các khía cạnh thiết yếu là giống với mạng truyền thống, với một loạt quy tắc thiết kế. Điều quan trọng nhất là tổ chức phân tán của mạng, việc sử dụng xử lý trong mạng (in-network processing), quan điểm mạng tập trung vào dữ liệu và sự thích ứng của tính chính xác và độ tin cậy đối với từng hoàn cảnh đã cho. Chúng là các kỹ thuật then chốt đƣợc xem xét để ứng dụng cho WSN.
Sự đa dạng của WSN làm cho việc thiết kế một giao diện dịch vụ mạng giống nhau và thông dụng là rất khó thực hiện. Do đó, hiện tại không có giải pháp cuối cùng để giải quyết vấn đề này. Tƣơng tự nhƣ vậy, sự tích hợp của các WSN để tạo ra một mạng lớn hơn, ví dụ nhƣ để cho phép các máy chủ Internet truy cập một cách đơn giản vào các dịch vụ của WSN, vẫn là một vấn đề khá mở.
40
CÂU HỎI ÔN TẬP CHƢƠNG 1
1. Nêu các đặc điểm cơ bản của WSN?
2. Trình bày các yêu cầu về đặc tính của WSN?
3. Nêu các cơ chế cần thiết để đáp ứng các yêu cầu về đặc tính của WSN? 4. So sánh mạng Ad hoc và WSN.
5. So sánh Fieldbus và WSN.
6. Nêu một số ứng dụng của WSN trong cuộc sống hàng ngày? 7. Trình bày đặc trƣng và cấu hình WSN?
8. Phân biệt mạng đơn bƣớc nhảy và mạng đa bƣớc nhảy. 9. Nêu các loại di chuyển thƣờng gặp trong WSN? 10. Phân tích các mục tiêu tối ƣu trong WSN? 11. Trình bày các nguyên tắc thiết kế WSN? 12. Nêu giao diện dịch vụ của WSN?
41
CHƢƠNG 2. KIẾN TRÚC NÚT ĐƠN
Mục đích của chƣơng
Chƣơng này giải thích phần tử cơ bản của WSN là nút, các nhiệm vụ cơ bản của nó nhƣ tính toán, lƣu trữ, giao tiếp, cảm nhận/vận hành và các bộ phận đƣợc yêu cầu để thực hiện các nhiệm vụ này. Khi đó, tiêu thụ năng lƣợng của các bộ phận này cũng đƣợc đề cập đến: năng lƣợng có thể lƣu trữ, thu thập từ môi trƣờng và lƣu giữ nó bằng cách điều khiển chế độ hoạt động của các bộ phận của nút một cách thông minh. Việc điều khiển này do một hệ điều hành giống nhƣ môi trƣờng thực hiện quyết định.
Cuối chƣơng, bạn đọc sẽ có những hiểu biết nhất định về khả năng và những hạn chế của các nút trong mạng cảm biến. Nó là nền tảng của các chƣơng sau, trong đó tập trung vào các nguyên tắc lựa chọn nút cảm biến riêng rẽ có thể kết nối thành một WSN.
Để xây dựng một WSN, yêu cầu đầu tiên là các nút hợp thành phải đƣợc triển khai và có thể sử dụng. Các nút này phải có các yêu cầu từ các yêu cầu của ứng dụng đã cho: nhỏ, rẻ hoặc hiệu quả năng lƣợng, đƣợc trang bị các cảm biến tốt, có khả năng tính toán và tài nguyên bộ nhớ cần thiết, phải thích hợp với các phƣơng tiện truyền thông. Các bộ phận phần cứng này và cấu tạo của chúng trong nút chức năng đƣợc đề cập trong phần 2.1; công suất tiêu thụ của các bộ phận này và các thoả hiệp đƣợc nói đến trong phần 2.2.
Ngoài phần cứng của các nút cảm biến, hệ điều hành và mô hình lập trình cũng là các mối quan tâm. Phần 2.3 mô tả nhiệm vụ của hệ điều hành, một số ví dụ và các giao diện lập trình phù hợp.
Phần 2.4 giới thiệu một số loại cảm biến và cơ cấu chấp hành.
2.1 Các thành phần phần cứng
Khi chọn các bộ phận phần cứng cho nút cảm biến không dây, rõ ràng là các yêu cầu của ứng dụng đóng vai trò quyết định với mối quan tâm chủ yếu về kích thƣớc, giá thành và tiêu thụ năng lƣợng của các nút – giao tiếp và các phƣơng tiện tính toán thƣờng đƣợc quan tâm để có chất lƣợng chấp nhận đƣợc, nhƣng thoả hiệp giữa các đặc điểm và chi phí phải là cốt yếu. Trong một số trƣờng hợp đặc biệt, toàn bộ nút cảm biến phải nhỏ hơn 1 cc, nhẹ hơn 100 g, rẻ hơn 1 USD và sử dụng ít hơn 100 W, thậm chí có những trƣờng hợp kích thƣớc thu gọn chỉ bằng hạt bụi. Trong nhiều ứng dụng thực tế, kích thƣớc của nút nhỏ không quan trọng mà sự thuận tiện, nguồn cấp đơn giản và chi phí đóng vai trò quan trọng hơn.
Tuy đa dạng nhƣ vậy nhƣng xu hƣớng chung vẫn là tập trung vào nền tảng phần cứng của các nút cảm biến không dây. Trong khi đƣơng nhiên là không tồn tại sẵn một chuẩn để sử dụng cũng nhƣ không tồn tại chuẩn có thể hỗ trợ cho tất cả các loại ứng dụng nên phần này sẽ đƣa ra cái nhìn tổng quát về các kiến trúc nút cảm biến điển hình. Ngoài ra còn có một số nghiên cứu tập trung vào việc rút ngắn các bộ phận về mặt kích thƣớc, tiêu thụ năng lƣợng hay giá thành.
42
Bộ điều khiển: Bộ điều khiển xử lý tất cả dữ liệu có liên quan theo mã nhị phân.
Bộ nhớ: Thông thƣờng, bộ nhớ đƣợc dùng để lƣu giữ chƣơng trình và dữ liệu.
Cảm biến và cơ cấu chấp hành: Đây là giao diện với môi trƣờng vật lý. Các thiết bị này có thể quan sát hoặc giám sát các thông số vật lý của môi trƣờng.
Thiết bị truyền thông: Các nút trong mạng đòi hỏi một thiết bị để gửi và nhận thông tin qua kênh vô tuyến.
Nguồn cấp: Thông thƣờng, không có sẵn nguồn cấp điện nên cần phải có pin để cung cấp năng lƣợng, thậm chí cả pin có thể xạc từ môi trƣờng (pin mặt trời).
Hình 2.1.Cấu trúc phần cứng của nút cảm biến
Mỗi bộ phận này phải hoạt động sao cho đảm bảo lƣợng tiêu thụ năng lƣợng là ít nhất có thể, đồng thời phải hoàn thành tất cả các nhiệm vụ đặt ra. Ví dụ, cả hai thiết bị truyền thông và bộ điều khiển nên đƣợc tắt càng lâu càng tốt. Muốn thức dậy (wakeup), bộ điều khiển có thể sử dụng một bộ đếm thời gian đƣợc lập trình trƣớc để kích hoạt lại. Ngoài ra, các cảm biến có thể đƣợc lập trình để tạo ngắt khi một sự kiện đƣợc xảy ra – ví dụ nhƣ khi giá trị nhiệt độ vƣợt quá một ngƣỡng nhất định hoặc thiết bị giao tiếp phát hiện có thông tin đến.
Để hỗ trợ chức năng cảnh báo nhƣ vậy, yêu cầu phải có kết nối phù hợp giữa các bộ phận riêng rẽ. Hơn nữa, cả thông tin dữ liệu và điều khiển đều phải đƣợc trao đổi qua các kết nối này. Kết nối này có thể rất đơn giản, ví dụ, một cảm biến có thể gửi giá trị tƣơng tự đến bộ điều khiển; hoặc phức tạp hơn là tiền xử lý dữ liệu cảm biến và chỉ đánh thức bộ điều khiển chính khi một sự kiện đƣợc phát hiện - ví dụ, phát hiện ngƣỡng qua cho một cảm biến nhiệt độ đơn giản. Tiền xử lý của nút cảm biến phải đảm bảo tính đơn giản và hiệu quả năng lƣợng đƣợc cải thiện.
2.1.1 Bộ điều khiển
a. Khái niệm bộ vi điều khiển, bộ vi xử lý, FPGA và ASIC:
Bộ điều khiển là thành phần trung tâm của một nút cảm biến không dây. Nó thu thập dữ liệu từ các cảm biến, xử lý dữ liệu này, quyết định thời gian và địa điểm gửi dữ liệu đến, nhận dữ liệu từ các nút cảm biến khác và quyết định hành vi của các cơ cấu chấp hành. Ngoài ra, nó