Nghiên cứu trong luận văn này cung cấp một giải pháp để giúp tiết kiệm chi phí, dễ dàng đánh giá hiệu quả của mô hình mạng với các node hay còn gọi là mote cảm biến IEEE802.11 b/g trước
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGUYỄN ĐÌNH THI
THIẾT BỊ CẢM BIẾN KHÔNG DÂY IEEE 802.11:
MÔ PHỎNG MÔ HÌNH
VÀ PHÂN TÍCH TIÊU THỤ NĂNG LƯỢNG
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ CHUYÊN NGÀNH: 60.48.01
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 12 năm 2015
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học 1: TS Nguyễn Minh Sơn
2 Thư ký: TS Phạm Quốc Cường
3 Phản biên 1: TS Phạm Hoàng Anh
4 Phản biện 2: TS Bùi Trọng Tú
5 Ủy viên: TS Nguyễn Đức Thái
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3i
ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc
NHỆM VỤ LUẬN VĂN THẠC SỸ
Họ tên học viên: NGUYỄN ĐÌNH THI MSHV: 13070264
Ngày, tháng, năm sinh: 10/09/1987 Nơi sinh: Đaklak
Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01
TÊN ĐỀ TÀI: THIẾT BỊ CẢM BIẾN KHÔNG DÂY IEEE 802.11: MÔ PHỎNG MÔ
HÌNH VÀ PHÂN TÍCH TIÊU THỤ NĂNG LƯỢNG
NHIỆM VỤ VÀ NỘI DUNG: Mô phỏng mô hình giao tiếp node IEEE802.11 b/g trong
mạng cảm biến không dây và tính toán năng lượng tiêu thụ
NGÀY GIAO NHIỆM VỤ: 06/07/2015
NGÀY HOÀN THÀNH NHIỆM VỤ: 04/12/2015
CÁN BỘ HƯỚNG DẪN: TS NGUYỄN MINH SƠN và PGS.TS.TRẦN NGỌC THỊNH
Tp HCM, ngày tháng … năm …
CÁN BỘ HƯỚNG DẪN 1
TS Nguyễn Minh Sơn
CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
CÁN BỘ HƯỚNG DẪN 2
PGS.TS Trần Ngọc Thịnh
TRƯỞNG KHOA
Trang 4ii
LỜI CÁM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến TS Nguyễn Minh Sơn và PGS.TS.Trần Ngọc Thịnh, các Thầy đã tận tình hướng dẫn tôi trong suốt quá trình thực hiện đề cương và luận văn cao học, tạo mọi điều kiện để tôi có thể hoàn thành tốt luận văn này
Tôi xin gửi lời biết ơn chân thành đến các Thầy Cô trong khoa Khoa Học & Kỹ Thuật Máy Tính trường Đại Học Bách Khoa TPHCM Các Thầy Cô đã rất tận tình chỉ dạy, trang bị cho tôi những kiến thức quý báu trong suốt thời gian tôi học cao học tại trường
Tôi xin gửi lời cám ơn gia đình, bạn bè và các đồng nghiệp nơi tôi làm việc đã động viên và tạo mọi điều kiện thuận lợi giúp tôi hoàn thành luận văn
Mặc dù đã cố gắng hết sức có thể để hoàn thành tốt nhất luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn luận văn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự chỉ bảo tận tình của quý Thầy Cô và các bạn
Tp HCM, ngày 23 tháng 11 năm 2015
Học viên
Nguyễn Đình Thi
Trang 5iii
TÓM TẮT LUẬN VĂN
Ngày nay, các ứng dụng mạng cảm biến được áp dụng vào nhiều lĩnh vực trong cuộc sống Từ đó, có những nhu cầu mới phát sinh và đòi hỏi phải áp dụng vào mạng cảm biến không dây, một trong những nhu cầu quan trọng đó là trao đổi dữ liệu lớn với tốc độ cao Như hệ thống chống trộm cho nhà thông minh có thể ghi hình và chụp ảnh khi phát hiện được chuyển động và gửi về trung tâm xử lý dữ liệu sau một thời gian dài bằng nguồn pin kèm theo khi hệ thống cung cấp điện bị hư hại Từ đó nảy sinh ra nhu cầu tạo ra một thiết bị cảm biến có khả năng truyền tải dữ liệu lớn với tốc độ cao và tính toán được thời gian hoạt động của thiết bị cảm biến đó
Việc xây dựng và triển khai khác mô hình để thực nghiệm trong thực tế sẽ rất tốn thời gian và chi phí Nghiên cứu trong luận văn này cung cấp một giải pháp để giúp tiết kiệm chi phí, dễ dàng đánh giá hiệu quả của mô hình mạng với các node (hay còn gọi
là mote) cảm biến IEEE802.11 b/g trước khi áp dụng vào thực tế: Cung cấp công cụ
mô phỏng thiết bị cảm biến không dây giao tiếp tốc độ cao theo chuẩn IEEE802.11 b/g
và mô hình tính toán tiêu thụ năng lượng
Trang 6iv
ABSTRACT
Nowaday, application of Wireless Sensor Network are become popularity and applied to many fields Then a plenty of new demands in regards to WSNs have arisen and the most important one is the demand for the large data exchange Such as anti-thief system in smart house can work normally and send the recorded video or image to the processing system whenever the motion event is detected by sensor even main electric system is down for a long time So, the need to create a wireless sensor node which capable of exchange large data at high speed with uptime is estimated in advance
The deployment to evaluate the Wireless sensor network model in the real is time consuming and cost The content of this thesis provide a solution to save the time and cost, easy to evaluate the efficiency of network model before apply to real word: provide a simulation tool which capable simulate wireless sensor node IEEE802.11 b/g and modeling enery consumption
Trang 7v
LỜI CAM ĐOAN
Tôi xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như
đã ghi rõ trong luận văn, các công việc được trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Tp HCM, ngày 23 tháng 11 năm 2015
Học viên
Nguyễn Đình Thi
Trang 8vi
MỤC LỤC
NHỆM VỤ LUẬN VĂN THẠC SỸ i
LỜI CÁM ƠN ii
TÓM TẮT LUẬN VĂN iii
ABSTRACT iv
LỜI CAM ĐOAN v
MỤC LỤC vi
DANH MỤC HÌNH ix
CHƯƠNG I GIỚI THIỆU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu và giới hạn đề tài 2
1.3 Phương pháp tiến hành 3
1.4 Những đóng góp của đề tài 3
1.5 Cấu trúc của luận văn 4
CHƯƠNG II KHẢO SÁT VÀ LỰA CHỌN CÔNG CỤ MÔ PHỎNG IEEE 802.11 5
2.1 Khảo sát các hệ điều hành được dùng trong hệ thống nhúng 5
2.1.1 Contiki 5
2.1.1.1 Kiến trúc 5
2.1.1.2 Giao thức kết nối mạng 6
2.1.2 TyniOS 7
2.1.2.1 Kiến trúc 7
2.1.2.2 Giao thức kết nối mạng 8
2.1.3 LiteOS 8
2.1.3.1 Kiến trúc 9
2.1.3.2 Giao thức kết nối mạng 10
2.1.4 Nhận xét 10
2.2 Khảo sát các công cụ mô phỏng trong WSN 11
2.2.1 NS-2 12
2.2.1.1 Ưu điểm: 12
2.2.1.2 Hạn chế: 13
2.2.2 TOOSIM 13
2.2.2.1 Ưu điểm: 14
2.2.2.2 Hạn chế: 14
2.2.3 GLoMoSim 14
2.2.3.1 Ưu điểm 15
2.2.3.2 Hạn chế: 15
2.2.4 COOJA (COntiki Os Java) / MSPSim Simulator 15
2.2.4.1 Ưu điểm: 15
Trang 9vii
2.2.5 OMNeT++ và các bộ thư viện mô phỏng 16
2.2.5.1 Ưu điểm: 16
2.3 Kết luận 16
CHƯƠNG III MÔ PHỎNG GIAO TIẾP IEEE 802.11 B/G VỚI COOJA – CONTIKI 18
3.1 Mô hình tổng quát truyền nhận dữ liệu chuẩn Zigbee IEEE802.15.4 của Wismote platform 18
3.2 Xây dựng mô hình tổng quát truyền nhận dữ liệu tích hợp module sensor node IEEE 802.11 b/g với Contiki 21
3.3 Hiện thực mô phỏng giao tiếp sensor node IEEE802.11 b/g trong Cooja 22
3.3.1 Cấu hình Network Stack hỗ trợ IEEE 802.11 b/g 23
3.3.2 Mô phỏng tốc độ truyền IEEE802.11 b/g 23
3.3.3 Truyền dữ liệu lớn (large data) với IEEE802.11 25
CHƯƠNG IV XÂY DỰNG MÔ HÌNH TÍNH TOÁN NĂNG LƯỢNG CHO SENSOR NODE IEEE 802.11 B/G 29
4.1 Mô hình năng lượng của một node IEEE802.11 b/g cơ bản 29
4.1.1 Mô hình năng lượng tiêu thụ của vi điều khiển 31
4.1.2 Mô hình năng lượng của bộ IEEE 802.11 b/g truyền nhân dữ liệu 33
4.1.3 Mô hình tiêu thụ năng lượng của bộ cảm biến 35
4.1.4 Tính toán năng lượng tiêu thụ với thư viện energest 36
4.1.5 Giải thuật tiết kiệm năng lượng đề xuất cho sensor node IEEE802.11 và phân tích kết quả 40
4.1.5.1 Điều kiện mô phỏng 41
4.1.5.2 Mô phỏng mô hình truyền dữ liệu unicast 43
4.1.5.3 Mô hình truyền dữ liệu theo giao thức multi-hop 46
4.1.5.4 Nhận xét 48
CHƯƠNG V KẾT LUẬN 50
5.1 Tổng kết 50
5.2 Hạn chế 50
5.3 hướng phát triển của luận văn 50
TÀI LIỆU THAM KHẢO 52
LÝ LỊCH TRÍCH NGANG 56
QÚA TRÌNH ĐÀO TẠO 57
QÚA TRÌNH CÔNG TÁC 58
Trang 10viii
DANH MỤC BẢNG
Bảng 1: Bảng tóm tắt so sánh giữa các hệ điều hành trong WSN 11
Bảng 2: Bảng tóm tắt so sánh giữa các công cụ mô phỏng trong WSN 17
Bảng 3: So sánh đặc điểm phần cứng sensor node IEEE802.11 b/g và Wismote IEEE802.15.4 18
Bảng 4: Cấu hình lại Memory map cho MSP430F5437 27
Bảng 5: Cấu hình frame truyền dữ liệu cho IEEE 802.11b/g 28
Bảng 6: Ví dụ công suất tiêu thụ của các thành phần cảm biến 38
Bảng 7: Bảng năng lượng tiêu thụ của các thành phần ở các chế độ hoạt động 42
Bảng 8: Frame format dữ liệu mô phỏng 43
Bảng 9: Đặc điểm các node trong mô phỏng unicast 44
Bảng 10: Đặc điểm các trong mô phỏng multi-hop 47
Trang 11ix
DANH MỤC HÌNH
Hình 1: Block diagram Contiki OS 6
Hình 2: Kiến trúc hệ điều hành TyniOS 8
Hình 3: Kiến trúc hệ điều hành LiteOS 10
Hình 4: Kiến trúc tổng quát của NS-2 12
Hình 5: Mô hình truyền nhận dữ liệu IEEE 802.15.4 19
Hình 6: Contiki network stack 20
Hình 7: Mô hình phần mềm đề xuất để tích hợp chuẩn IEEE 802.11 b/g 21
Hình 8: Network stack đề xuất cho IEEE 802.11 b/g 22
Hình 9: Sơ đồ cấu hình Network Stack cho IEEE 802.11b/g 23
Hình 10: Mô hình truyền dữ liệu thông qua SPI của Cooja/MSPSim 24
Hình 11: Mô hình nhận dữ liệu thông qua SPI của Cooja/MSPSim 24
Hình 12: Cơ chế mô phỏng tốc độ truyền radio trong Cooja 25
Hình 13: Kiến trúc tổng quát của sensor node 29
Hình 14: Mô hình năng lượng của sensor node IEEE 802.11 b/g cơ bản 30
Hình 15: Mô hình chuyển trạng thái của vi điều khiển 32
Hình 16: Mô hình chuyển trạng thái của IEEE 802.11 b/g chip 34
Hình 17: Mô hình chuyển trạng thái của Sensor 36
Trang 12x
Hình 18: Mô tả mối liên hệ giữa số tick và các chế độ hoạt động 37
Hình 19: Thuật toán tiết kiệm năng lượng cho IEEE 802.11 b/g sensor node 41
Hình 20: Sắp xếp các node trong không gian mô hình mô phỏng unicast 43
Hình 21: Kết quả mô phỏng giao tiếp unicast bằng phần mềm 45
Hình 22: Biểu đồ thể hiện thời gian dự kiến hoạt động của các node và chu kỳ interrupt theo mô hình unicast 45
Hình 23: Sắp xếp các node trong không gian mô hình mô phỏng multi-hop 46
Hình 24: Kết quả mô phỏng multi-hop bằng phần mềm 48
Hình 25: Biểu đồ thể hiện thời gian dự kiến hoạt động của các node và chu kỳ interrupt theo mô hình multi-hop 48
Trang 131
CHƯƠNG I GIỚI THIỆU 1.1 Lý do chọn đề tài
Mạng cảm biến không dây (Wireless Sensor Network - WSN) [1] là sự phân bố
trong không gian các cảm biến để theo dõi các điều kiện trong môi trường như nhiệt
độ, độ ẩm, áp suất,… Và giao tiếp với nhau để truyền tải dữ liệu được đo và tính
toán từ các cảm biến đến node trung tâm (hoặc gateway)
Ứng dụng của WSN ngày càng có tác động to lớn đến cuộc sống của con người, nó có vai trò quan trọng trong sản xuất cũng như nâng cao chất lượng cuộc sống WSN đã và đang được ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm các dịch vụ chăm sóc sức khỏe, y tế, trong công nghiệp sản xuất, giám sát trong các môi trường khắc nghiệt như dưới nước, áp suất cao và độc hại [12]
Các node [8] trong WSN có yêu cầu nhỏ gọn, hoạt động trong thời gian dài và
ổn định nên hiện nay đa số các WSN được xây dựng với các node sử dụng giao tiếp Zigbee [11] với các đặc điểm sau:
- Tốc độ truyền dữ liệu thấp 20Kbps ở dải tần 868Mhz đến 250Kbps ở dải tần 2.4GHz
- Sử dụng công suất thấp, ít tiêu hao năng lượng
- Thời gian sử dụng pin lâu dài
- Độ tin cậy cao
- Khoảng cách truyền tín hiệu từ 10-100m
- Chi phí thấp
- Kích thước mỗi gói dữ liệu nhỏ (Tối đa 128 byte)
Trang 142
Ở viễn cảnh mà mọi vật kết nối với Internet để phục vụ các nhu cầu khác nhau của con người thì với băng thông và tốc độ truyền của chuẩn IEEE 802.15.4 (Zigbee) chỉ thích hợp để truyền nhận những lệnh điều khiển hoặc các gói dữ liệu nhỏ Nhu cầu cần có các node với băng thông rộng và tốc độ cao mà vẫn đáp ứng được yêu cầu tiêu hao ít năng lượng, hoạt động ổn định, giá thành rẻ
IEEE 802.11 [13] là chuẩn giao tiếp không dây hiện nay với các chuẩn giao tiếp
có tốc độ khác nhau có thể đáp ứng đựng yêu cầu về băng thông rộng và tốc độ truy cập cao:
- IEEE 802.11b: tốc độ truyền đạt 11Mbps
- IEEE 802.11g: tốc độ truyền đạt 54Mbps
- IEEE 802.11n: tốc độ có thể đạt 300Mbps
- IEEE 802.11ac: tốc độ truyền lên đến 1.3Gbps
Việc thực nghiệm với hàng trăm, thậm chí hàng ngàn node vận hành trong thực
tế sẽ tiêu tốn chi phí không hề nhỏ, khó kiểm soát và khó sửa lỗi (debug) Vì vậy sử dụng công cụ mô phỏng rất cần thiết trong nghiên cứu WSN, giúp tiết kiệm chi phí, phát hiện và sửa lỗi sớm, dễ dàng tạo ra và thay đổi những điều kiện môi trường khác nhau mà rất khó để tạo ra lặp đi lặp lại trong thực tế Nên đề tài luận văn tập trung vào việc mô phỏng mô hình và phân tích tiêu thụ năng lượng để đánh giá mức tiêu hao năng lượng cho thiết bị cảm biến không dây IEEE 802.11 b/g (IEEE 802.11 b/g sensor node) bằng công cụ mô phỏng, để từ đó đánh giá và xây dựng IEEE 802.11 b/g sensor node đáp ứng tiêu chí tiết kiệm năng lượng của WSN, phục vụ
nhu cầu kết nối “Internet of Things” [10] trong tương lai
1.2 Mục tiêu và giới hạn đề tài
Mục tiêu của đề tài là xây dựng được công cụ mô phỏng cho thiết bị cảm biến không dây IEEE 802.11 b/g, cung cấp cho người dùng mô hình tính năng lượng tiêu thụ Từ đó, người dùng sẽ tính toán trước được thời gian hoạt động của thiết bị cảm
Trang 15Sau khi lựa chọn công cụ mô phỏng phù hợp, tìm hiểu cơ chế hoạt động mô phỏng, từ đó tích hợp mô hình cho chuẩn giao tiếp IEEE 802.11b/g vào phần mềm Tìm hiểu mô hình tiêu thụ năng lượng của sensor node IEEE 802.11b/g từ đó đưa ra phương pháp tính năng lượng tiêu thụ
1.4 Những đóng góp của đề tài
Xây dựng mô hình mô phỏng giao tiếp IEEE 802.11 là một hướng nghiên cứu mới Với những kết quả của quá trình nghiên cứu và hiện thực, luận văn đã xây dựng được công cụ mô phỏng với những đóng góp sau:
- Mô phỏng được quá trình giao tiếp giữa các thiết bị cảm biến không dây IEEE 802.11b/g với tốc độ tối đa 54Mbps, kích thước mỗi gói truyền nhận giữa các thiết bị cảm biến đạt tối đa 1536 byte
- Đưa ra được mô hình tính toán năng lượng dựa trên các chế độ hoạt động của các thành phần cấu tạo nên thiết bị cảm biến IEEE 802.11 b/g
Trang 164
- Phục vụ kiểm tra, đánh giá khả năng tiết kiệm năng lượng của các phần mềm điều khiển thiết bị cảm biến IEEE802.11 b/g
1.5 Cấu trúc của luận văn
Trong chương này giới thiệu tổng quan về đề tài cũng như mục tiêu, giới hạn và cách tiến hành, cũng như đưa ra các đóng góp của đề tài Phần còn lại của luận văn được tổ chức như sau:
Chương II: khảo sát các hệ điều hành được thiết kế cho WSN và các chương trình mô phỏng cho các hệ điều hành đó, đánh giá và lựa chọn chương trình mô phỏng phù hợp với yêu cầu đề tài
Chương III: tích hợp mô phỏng IEEE 802.11b/g vào chương trình mô phỏng Cooja/Contiki
Chương IV: xây dựng mô hình tính toán năng lượng cho node IEEE 802.11b/g Chương V: kết luận và đề xuất một số hướng phát triển tiếp theo trong tương lai của đề tài
Trang 175
CHƯƠNG II KHẢO SÁT VÀ LỰA CHỌN CÔNG CỤ MÔ PHỎNG IEEE 802.11
Trong hệ thống nhúng, chương trình viết cho các vi điều khiển có thể được viết
và điều khiển bằng marchine-state (single thread) hoặc được viết dựa trên các API (Application Program Interface) của hệ điều hành hỗ trợ cho vi điều khiển đó
Với việc tích hợp sẵn các giao thức cho các chuẩn giao tiếp mạng và cung cấp
cơ chế đa tiến trình (multiple thread), các hệ điều hành thể hiện tính ưu việt của nó
như: đơn giản hóa việc điều khiển mạng, xử lý đồng thời, giảm thời gian tích hợp hệ thống
Vì vậy, đề tài sẽ tiến hành khảo sát các hệ điều hành dùng cho WSN, phân tích
ưu điểm và lựa chọn hệ điều hành phù hợp cho việc tích hợp IEEE 802.11 b/g
2.1 Khảo sát các hệ điều hành được dùng trong hệ thống nhúng
Hệ điều hành được thiết kế cho WSN có vai trò quan trọng trong việc sử dụng
và phân phối tài nguyên của hệ thống cho các ứng dụng một cách hiệu quả và tin cậy Trong những năm qua, có nhiều hệ điều hành dùng cho WSN được phát triển
bởi cộng đồng mạng cảm biến (sensor network community), tạo điều kiện thuận lợi
cho việc phát triển các ứng dụng WSN Trong chương này sẽ tiến hành khảo sát những hệ điều hành phổ biến cho mạng cảm biến không dây hiện nay, bao gồm Contiki, TyniOS và LiteOS
2.1.1 Contiki
2.1.1.1 Kiến trúc
Hệ điều hành Contiki [4][6] được chia thành các module (moduler architecture), nhân Contiki (Contiki kernel) được thiết kế theo mô hình hướng sự kiện (event driven model)
Trang 18Contiki hỗ trợ nhiều loại giao thức kết nối mạng, một ứng dụng có thể sử dụng
cả hai phiên bản của IP (IPv4 và IPv6)
Contiki hỗ trợ giao thức µIP (micro IP): đây là một giao thức kết nối
TCP/IP/UDP nhỏ gọn, hỗ trợ cho các vi điều khiển 8 bit và 16 bit
Trang 197
Rime stack được tích hợp trong Contiki với các đặc điểm:
- Phân chia module và có kích thước nhỏ
- Xây dựng nhiều module giao tiếp đơn giản
2.1.2.1 Kiến trúc
TinyOS [26] được thiết kế theo mô hình nguyên khối (monolithic architecture)
Các thành phần giao tiếp với nhau bằng command và event Command yêu cầu một hoặc nhiều service thực thi tác vụ, event dùng thông báo hoàn thành tác vụ
TinyOS cung cấp ngăn xếp phần mềm duy nhất, không có sự tách biệt giữa kernel space và user space
Trang 20thức này cho phép cấu hình lại các truy vấn và lập trình lại một mạng Giao thức
dissemination cung cấp hai interface: disseminationValue và disseminationUpdate
TinyOS cũng hỗ trợ 6lowpan [33]và hiện thực các giao thức sau cho lớp MAC: giao thức TDMA, giao thức lai giữa TDMA và CSMA và các giao thức cho chuẩn IEEE 802.15.4
2.1.3 LiteOS
LiteOS [34] là một hệ điều hành Unix thiết kế cho các WSN bởi trường đại học Illinois ở Urbana-Champaign Mục đích của LiteOS là cung cấp một hệ điều hành Unix cho WSN với mô hình lập trình quen thuộc (thread, event hander, callback, ),
Trang 219
hệ thống tập tin phân cấp, hỗ trợ lập trình hướng đối tượng dưới mô hình LiteC++
và Unix shell
LiteOS có kích thước đủ nhỏ để có thể chạy với MicaZ [25] node ( CPU có tốc
độ 8MHz, 128 byte program flash và 4Kbytes RAM)
2.1.3.1 Kiến trúc
LiteOS được thiết kế theo hướng module, bao gồm 3 thành phần: LiteShell, LiteFs và Kernel LiteShell tương tự như UNIX-Shell nên cung cấp những tập lệnh
(command) để quản lý file, quản lý process, debug và quản lý thiết bị
LiteShell được thiết lập ở trạm trung tâm (base station), Các xử lý nội bộ (như
phân tích cú pháp của lệnh) được xử lý ở trạm trung tâm, sau đó được gửi thông qua môi trường truyền dẫn không dây đến các node trong mạng Các node trong mạng
sẽ xử lý và thực thi tương ứng với lệnh nhận được và gửi trả lại kết quả cho trạm trung tâm
LiteFS mount (gắn kết) tất cả các node trong mạng thành các file trong thư
mục Từ trạm trung tâm có thể duyệt thư mục như thao tác trên hệ điều hành Linux Nhân của LiteOS nằm trên các node cảm biến, cung cấp các cơ chế xử lý đồng thời nhiều thread, load động các module, cơ chế đồng bộ, cơ chế lập lịch dựa trên
độ ưu tiên và round-robin
Trang 22dạng các file Bất cứ khi nào dữ liệu được gửi đi cũng đều được ghi vào các file
tương ứng của các thiết bị vô tuyến
Trang 23Yes (also supports Protothreads)
Yes
Bảng 1: Bảng tóm tắt so sánh giữa các hệ điều hành trong WSN
Qua bảng trên, Với việc hỗ trợ giao thức RIME – một giao thức hỗ trợ giao tiếp IEEE 801.11 – nên Contiki là lựa chọn phù hợp nhất trong việc tích hợp giao tiếp IEEE802.11b/g
2.2 Khảo sát các công cụ mô phỏng trong WSN
Hiện nay, có rất nhiều công cụ mô phỏng và kiểm tra các giao thức định tuyến cho WSN, được phân chia thành 3 nhóm:
Nhóm mô phỏng chung (generic simulator): tập trung mô phỏng mức cao của
WSN: như mạng, cảm biến và xử lý dữ liệu Kiến trúc phần cứng và các thiết bị cảm biến không được xem xét Môi trường mô phỏng cung cấp network stack, giao thức MAC, môi trường mô phỏng vô tuyến, Mô hình này phù hợp cho việc đánh giá các giao thức mạng mới và các thuật toán
Nhóm mô phỏng mức mã nguồn (code level simulator): mã nguồn chương trình
được sử dụng trong mô phỏng cũng chính là mã nguồn sẽ được biên dịch và nạp
xuống node cảm biến thật Mã nguồn sẽ được biên dịch ra không phải là binary code được thực thi trên sensor node mà binary code tương ứng với hệ thống dùng
để chạy công cụ mô phỏng (ví dụ: Linux Ubuntu) Ở mức mô phỏng này cũng cung cấp việc mô phỏng môi trường truyền dẫn vô tuyến và một vài trường hợp cũng cung cấp bộ mô phỏng cho các sensor
Trang 2412
Nhóm mô phỏng mức firmware (Firmware Level Simulators): phần mềm được
biên dịch và chạy trong quá trình mô phỏng chính là firmware sẽ được nạp xuống sensor node thật sự Đây là cách mô phỏng cho kết quả thống kê chính xác nhất Từ
hệ điều hành, vi xử lý (MCU), chip radio, thiết bị ngoại, môi trường truyền dẫn vô tuyến đều được mô phỏng Do mô phỏng với độ chi tiết cao nên tốc độ mô phỏng
khi thực thi sẽ không nhanh bằng generic simulator và Firmware level
2.2.1 NS-2
NS-2 [16] là một chương trình mã nguồn mở mô phỏng theo sự kiện rời rạc dùng cho nghiên cứu mạng, được sử dụng để mô phỏng giao thức mạng cùng với các phân bố mạng khác nhau Nó có khả năng mô phỏng kết nối có dây hoặc mạng không dây
NS-2 cung cấp nhiều sự hỗ trợ cho mô phỏng như TCP, định tuyến, giao thức multicast cho mạng dây hoặc không dây Hỗ trợ cho mạng không dây đã được thêm vào sau này Bộ mô phỏng tập trung vào mô hình ISO/OSI
Hình 4: Kiến trúc tổng quát của NS-2
2.2.1.1 Ưu điểm:
Khả năng mở rộng là ưu điểm chính khiến NS-2 trở nên phổ biến cho các mạng cảm biến
Trang 2513
Có thiết kế hướng đối tượng cho phép tạo ra và sử dụng một giao thức mạng mới, tính năng chính cung cấp cho mạng cảm biến không dây bao gồm kênh truyền cảm biến, các công cụ để tạo ra các kịch bản, cung cấp công cụ trực quan NAM (Network Animator) Vì phổ biến cùng với việc dễ dàng tạo ra một protocol mới nên có rất nhiều protocol đã được công bố NS-2 được xây dựng bằng ngôn ngữ C++ và cung cấp giao diện mô phỏng thông qua OTcl [26] (một trình thông dịch)
2.2.1.2 Hạn chế:
- NS-2 đòi hỏi phải có kỹ năng cao để thể hiện được những mô phỏng
- Không mô phỏng mô hình của các cảm biến
- Mô hình tính toán năng lượng rất đơn giản
- NS-2 có khả năng tinh chỉnh kém Định dạng các gói, mô hình năng lượng, các giao thức MAC, và mô hình phần cứng cảm biến tất cả đều chưa đầy đủ đặc tính như trong các cảm biến được tìm thấy trên thị trường
- NS-2 thuộc nhóm mô phỏng chung (generic simulator) nên chỉ mô phỏng
được các ứng dụng
2.2.2 TOOSIM
TOSSIM [17] là công cụ giả lập dạng sự kiện rời rạc dùng cho các WSN dùng
hệ điều hành TinyOS, được phát triển bởi UC Berkeley TOSSIM bắt các sự kiện và các tương tác của mạng không phải trên mức gói tin mà tại mức bit dữ liệu mạng TOSSIM được thiết kế đặc biệt cho các ứng dụng TinyOS để có thể chạy trên thiết
bị MICA node TOSSIM mô phỏng toàn bộ các ứng dụng TinyOS Nó hoạt động bằng cách thay thế các thành phần với sự hiện thực mô phỏng TOSSIM có thể thay thế một thành phần giao tiếp mức gói bằng mô phỏng mức gói, hoặc thay thế thành phần chip radio cấp thấp bằng mô phỏng chính xác thông qua thực thi mã nguồn
Trang 2614
2.2.2.1 Ưu điểm:
TOSSIM mô phỏng các lớp mạng TinyOS tại mức bit, cho phép thực hiện các giao thức mức thấp đến các hệ thống ứng dụng mức cao Mô phỏng cung cấp vài cơ chế dùng để tương tác với mạng, lưu thông gói có thể được giám sát và các gói có thể được xem xét một cách thống kê và linh hoạt trong mạng Sự truyền nhận trong mạng được thể hiện ở mức bit
2.2.2.2 Hạn chế:
Tất cả các node được mô phỏng trong TOSSIM phải chạy chung một mã nguồn ứng dụng, không thể mô phỏng các node với các phần mềm khác nhau điều khiển các chức năng khác nhau, thiếu linh động
TOSSIM không cung cấp mô hình tính toán tiêu thụ năng lượng, nhưng ngày nay với việc bổ sung các add-on (như add-on PowerTOSSIM), điểm hạn chế này đã được khắc phục
TOSSIM thuộc nhóm mô phỏng cấp mã nguồn (code level simulator), nên các
mô hình giao tiếp vật lý cũng như hệ điều hành được mô phỏng thông qua các thư viện và không can thiệp được
2.2.3 GLoMoSim
Global Mobile Information System Simulator (GloMoSim) là môi trường mô phỏng linh động dùng cho các mạng giao tiếp có dây hoặc không dây Kỹ thuật tập hợp node được giới thiệu trong GloMoSim đã mang đến những lợi ích lớn đối với hiệu suất mô phỏng Do đó các node mạng mà một thực thể đại diện cụ thể được xác định bằng vị trí vật lý của các node
Giống như NS-2, GloMoSim cũng được thiết kế để có tính mở rộng cao, với tất
cả giao thức được hiện thực như các modules trong thư viện GloMoSim GloMoSim
có thể được thực hiện bằng cách sử dụng các giao thức đồng bộ khác nhau và đã được hiện thực thành công trên các máy tính có bộ nhớ phân bố hoặc chia sẻ
Trang 2715
2.2.3.1 Ưu điểm
GloMoSim có vài lựa chọn cho truyền dẫn radio, CSMA MAC protocols (bao gồm 802.11), các giao thức định tuyến không dây cho mobile, và sự thể hiện của UDP và TCP GloMoSim sử dụng tốt cho việc mô phỏng các mạng IP mobile
2.2.3.2 Hạn chế:
GloMoSim bị hạn chế với mạng IP Do đó, nó có cùng hạn chế về định dạng gói, mô hình năng lượng và giao thức MAC được dùng trong WSN như NS-2
2.2.4 COOJA (COntiki Os Java) / MSPSim Simulator
MSPSim được viết bằng ngôn ngữ Java, giả lập dòng vi xử lý MSP430, giả lập các platform dùng trong mạng cảm biến như Tmote Sky, ESB,…
COOJA là bộ mô phỏng dùng các node cảm biến sử dụng hệ điều hành Contiki, MSPSim cung cấp các API có thể tích hợp được với COOJA hình thành nên COOJA/MSPSim COOJA là một ứng dụng Java, tất cả tương tác với mã Contiki (C) thông qua JNI (Java Native Interface)
2.2.4.1 Ưu điểm:
- Có thể mô phỏng một mạng mà có nhiều loại cảm biến khác nhau không chỉ
về mã nguồn thực thi mà còn có thể khác nhau về phần cứng được mô phỏng (một mạng cảm biến được mô phỏng sử dụng hỗn hợp các node Sky Tmote và các node Wismote)
- Cho phép mô phỏng nhiều mức khác nhau [14] (generic simulator, code level simulator và Firmware Level Simulators)
- Bộ mô phỏng COOJA hỗ trợ mô phỏng nhiều loại môi trường truyền dẫn (mediums) khác nhau
Trang 2816
- COOJA có tính linh hoạt và dễ mở rộng, các lớp của hệ thống có thể thay đổi hoặc thay thế: platform node cảm biến, phần mềm hệ điều hành, radio transceivers, và mô hình truyền dẫn radio
2.2.5 OMNeT++ và các bộ thư viện mô phỏng
OMNeT++ là bộ công cụ mô phỏng sử dụng cho việc mô phỏng mạng cũng như phục vụ cho mô phỏng WSN, là dạng mô phỏng dựa trên sự kiện rời rạc Mô phỏng ở mức gói tin, có thể đọc và phân tích gói tin dựa trên việc bắt gói trong các
sự kiện OMNeT++ tập trung vào các mạng giao tiếp
Code level simulator
Generic level simulator All level
Generic level simulator
Trang 29Bảng 2: Bảng tóm tắt so sánh giữa các công cụ mô phỏng trong WSN
Như vậy, với việc hỗ trợ mô phỏng ở tất cả các mức, dễ dàng thay đổi driver, cấu hình network stack nên Cooja là công cụ mô phỏng phù hợp nhất để tích hợp giao tiếp không dây IEEE 802.11 b/g
Ngoài ra, nhóm Wireless Embedded Internet Group, trường đại học Quốc Tế, đai học Quốc gia Việt Nam, tp.HCM phát triển thành công IUmote [34]– một IEEE 802.11 b/g sensor node – tích hợp hệ điều hành Contiki, chip Radio CC3000 với MCU là MSP430F249[20] (2K RAM) Hiện nay, nhóm Wireless Embedded Internet Group đang tiến hành nâng cấp dòng IUmote bằng cách sử dụng MCU mạnh hơn MSP430F5437 (16K RAM) Sau khi nhóm Wireless Embedded Internet Group tích hợp thành công với MCU MSP430F5437 thì đây sẽ là một thuận lợi trong việc so sánh hiệu quả của quá trình mô phỏng so với chạy mô hình thực tế
Trang 3018
CHƯƠNG III MÔ PHỎNG GIAO TIẾP IEEE 802.11 B/G VỚI COOJA – CONTIKI
Cooja là một phần mềm được xây dựng mô phỏng giao tiếp Zigbee (IEEE
8.2.14) nên không hỗ trợ giao tiếp IEEE 802.11 Vì vậy, đề tài dựa trên Wismote
platform [22] – một platform Zigbee có sẵn trong Cooja – để hiện thực mô phỏng
IEEE 802.11b/g bằng cách thay đổi phần cứng tương ứng như sau:
Chip truyền nhận WiFI: CC3000 [18] hỗ trợ IEEE 802.11 b/g
Bảng 3: So sánh đặc điểm phần cứng sensor node IEEE802.11 b/g và Wismote
IEEE802.15.4
Để tích hợp IEEE802.11 b/g vào Cooja, đề tài sẽ tìm hiểu mô hình tổng quát quá trình truyền nhận dữ liệu của Zigbee Wismote, từ đó xây dựng nên mô hình tổng quát cho IEEE 802.11 b/g
3.1 Mô hình tổng quát truyền nhận dữ liệu chuẩn Zigbee IEEE802.15.4 của Wismote platform
Quá trình truyền dữ liệu: dữ liệu sẽ đi qua Network Stack cho Zigbee IEEE
802.15.4 được mã hóa và đóng gọi lại, sau đó được chuyển qua các bộ đệm TX
FIFO của chip radio thông qua giao tiếp SPI Chip radio CC2520 sẽ đùng sóng
radio truyền dữ liệu trong TX FIFO thông qua môi trường truyền dẫn vô tuyến
( qua môi trường không gian)
Trang 3119
Quá trình nhận dữ liệu: tương tự, chip radio CC2520 sẽ nhận được dữ liệu từ
môi trường truyền dẫn vô tuyến, dữ liệu nhận được sẽ được lưu vào bộ đệm RX
FIFO Vi điều khiển sẽ thông qua giao tiếp SPI để đọc dữ liệu từ bộ đệm RX
FIFO, gói tin nhận được thông qua Network Stack cho Zigbee IEEE 802.15.4 sẽ
được giải mã để lấy dữ liệu nhận
Quá trình được mô hình bằng hình vẽ sau:
Hình 5: Mô hình truyền nhận dữ liệu IEEE 802.15.4
Trong đó:
- RX buf và TX buf của MSP430f5437 có kích thước 128 byte
- RX FIFO và TX FIFO của CC2520 có kích thước 128 byte
Network Stack trong Contiki gồm các layer sau:
Trang 3220
Hình 6: Contiki network stack
Network Stack được truy cập thông qua các biến toàn cục được khai báo trước
khi biên dịch như: NETSTACK_FRAMER, NETSTACK_RDC và
NETSTACK_MAC Tất cả các biến được định nghĩa trong core/net/netstack.h
Lớp Framer: được định nghĩa tùy thuộc vào lập trình viên Quy định cấu trúc được truyền qua lại giữa các node, Hiện tại Contiki hỗ trợ hai loại frame:
Frame802154 và noframe
Lớp RDC (Radio duty cycle): đây là một lớp rất quan trọng trong việc tiết kiệm
năng lượng, lớp này quyết định khi nào gói dữ liệu sẽ được truyền và đảm bảo node
chuyển qua trạng thái hoạt động (Active state) khi gói dữ liệu được nhận
Trang 3321
3.2 Xây dựng mô hình tổng quát truyền nhận dữ liệu tích hợp module sensor node IEEE 802.11 b/g với Contiki
Bằng việc thay thế module phần cứng CC3000 để hỗ trợ chuẩn giao tiếp
IEEE802.11 (tham khảo Bảng 3) thì phần mềm tương ứng (firmware) cũng được
thay đổi ở các điểm sau:
- Cấu hình để Network stack hỗ trợ cho IEEE802.11 b/g
- TX buf và RX buf: tăng kích thước đề phù hợp với truyền dữ liệu lớn
- Sử dụng chương trình điều khiển thiết bị (device driver) cho CC3000
Những thay đổi về phần mềm so với Wismote được mô tả ở hình sau:
Hình 7: Mô hình phần mềm đề xuất để tích hợp chuẩn IEEE 802.11 b/g
Trong đó Network stack for IEEE 802.11 được cấu hình như Hình 8:
Trang 3422
- Sử dụng giao thức RIME có sẵn được hỗ trợ bởi Contiki
- MAC driver: sử dụng NullMac
- RDC driver: sử dụng NullRDC
- Frame802.11: frame với dữ liệu lớn
Hình 8: Network stack đề xuất cho IEEE 802.11 b/g
3.3 Hiện thực mô phỏng giao tiếp sensor node IEEE802.11 b/g trong Cooja
Từ mô hình phần mềm, luận văn thực hiện các bước sau để hiện thực mô phỏng giao tiếp IEEE802.11:
- Bước 1: cấu hình lại NetworkStack để hỗ trợ IEEE802.11 b/g
- Bước 2: cấu hình, thay đổi bộ mô phỏng để truyền được tốc độ cao IEEE802.11chuẩn b/g (tốc độ tối đa 54Mbps)
- Bước 3: cấu hình, thay đổi bộ mô phỏng để hỗ trợ truyền nhận dữ liệu lớn
Trang 3523
Chi tiết các bước được hiện thực như sau:
3.3.1 Cấu hình Network Stack hỗ trợ IEEE 802.11 b/g
Network stack được cấu hình dựa trên mô hình đề xuất cho IEEE 802.11 (tham khảo: Hình 8) bằng cách thông qua các MACRO theo sơ đồ sau:
Hình 9: Sơ đồ cấu hình Network Stack cho IEEE 802.11b/g
3.3.2 Mô phỏng tốc độ truyền IEEE802.11 b/g
Trong Cooja, trình điều khiển CC3000 được viết bằng ngôn ngữ C, trong khi
đó chip CC3000 mô phỏng trong MSPSim được viết bằng Java Giao tiếp giữa C và Java thông qua JNI được cung cấp bởi môi trường mô phỏng thông qua TXFIFO_PORT và RXFIFO_PORT