TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY
Định nghĩa
Mạng cảm biến không dây (WSN) là hệ thống kết nối các node thông qua sóng vô tuyến, trong đó các node thường là thiết bị nhỏ gọn, giá rẻ và có số lượng lớn Những thiết bị này được phân bố không có hệ thống trên một diện tích rộng, sử dụng nguồn năng lượng hạn chế và có khả năng hoạt động trong các điều kiện môi trường khắc nghiệt như chất độc, ô nhiễm và nhiệt độ cao.
Cấu trúc của WSN
Một node cảm biến đƣợc cấu tạo bởi 3 thành phần cơ bản sau: Vi điều khiển,
Sensor, bộ phát radio Ngoài ra còn có các cổng kết nối máy tính
Bao gồm: CPU; bộ nhớ ROM, RAM; bộ phận chuyển đổi tín hiệu tương tự thành tín hiệu số và ngƣợc lại
Chức năng: cảm nhận thế giới bên ngoài, sau đó chuyển dữ liệu qua bộ phận chuyển đổi để xử lý
Node cảm biến là thành phần chủ chốt trong mạng cảm biến không dây (WSN) Do đó, việc thiết kế các node cảm biến với khả năng tiết kiệm năng lượng tối đa là một trong những ưu tiên hàng đầu.
Mạng cảm nhận, như mô tả trong Hình 1.1, bao gồm nhiều node cảm biến được phân bố rộng rãi trong một trường cảm biến Các node này có khả năng thu thập dữ liệu thực tế và sử dụng phương pháp đa bước nhảy để truyền tải thông tin về node gốc Node gốc sau đó liên lạc với node quản lý nhiệm vụ thông qua Internet hoặc vệ tinh Thiết kế của mạng cảm nhận trong mô hình này phụ thuộc vào nhiều yếu tố khác nhau.
Khả năng chịu lỗi của mạng cảm biến rất quan trọng, vì một số node có thể ngừng hoạt động do thiếu năng lượng, hư hỏng vật lý hoặc tác động từ môi trường Mặc dù một số node không còn hoạt động, mạng vẫn duy trì chức năng bình thường và tiếp tục hoạt động hiệu quả.
Khả năng mở rộng của mạng cảm biến là rất quan trọng, với số lượng node có thể lên đến hàng trăm nghìn, thậm chí vượt quá con số này tùy thuộc vào từng ứng dụng cụ thể Cấu trúc mạng được thiết kế linh hoạt, cho phép điều chỉnh và mở rộng để đáp ứng nhu cầu của từng trường hợp sử dụng.
Giá thành sản xuất mạng cảm nhận rất quan trọng, vì nó bao gồm nhiều node cảm biến Để điều chỉnh chi phí mạng hiệu quả, chi phí của mỗi node cảm biến cần được duy trì ở mức thấp.
Node cảm biến trong mạng cần tích hợp phần cứng với kích thước nhỏ, tiêu thụ năng lượng thấp và chi phí sản xuất hợp lý Chúng cũng phải thích ứng với môi trường, có khả năng tự cấu hình và hoạt động mà không cần giám sát.
Môi trường hoạt động của các node cảm biến rất đa dạng, bao gồm cả những khu vực ô nhiễm, độc hại và dưới nước, đòi hỏi chúng phải thích ứng với nhiều loại điều kiện và sự thay đổi của môi trường Trong mạng cảm nhận, các node được kết nối không dây qua các phương tiện truyền dẫn như sóng vô tuyến, hồng ngoại hoặc quang học, và việc lựa chọn phương tiện truyền dẫn phù hợp là cần thiết để đảm bảo hoạt động thống nhất cho toàn bộ mạng.
Cấu hình mạng cảm nhận: Mạng cảm nhận bao gồm một số lƣợng lớn các node cảm biến, do đó phải thiết lập một cấu hình ổn định
Sự tiêu thụ năng lượng là một yếu tố quan trọng trong mạng cảm biến, khi mỗi node cảm biến chỉ có nguồn năng lượng giới hạn Trong nhiều ứng dụng, việc cung cấp thêm nguồn năng lượng là không khả thi, dẫn đến thời gian sống của mạng phụ thuộc vào tuổi thọ của các node cảm biến, mà tuổi thọ này lại gắn liền với thời gian sống của pin Do đó, các nhà khoa học hiện đang nỗ lực phát triển các thuật toán và giao thức thiết kế cho các node mạng nhằm tối ưu hóa và tiết kiệm nguồn năng lượng hạn chế này.
Kiến trúc giao thức mạng cảm nhận:
Hình 1.2 Kiến trúc giao thức mạng cảm biến
Kiến trúc giao thức cho mạng cảm nhận được bao gồm nhiều lớp và các mặt phẳng quản lý, giúp các node hoạt động hiệu quả Các mặt phẳng này hỗ trợ định tuyến dữ liệu trong mạng cảm nhận di động và tối ưu hóa việc chia sẻ tài nguyên giữa các node cảm biến.
+Lớp vật lý: có nhiệm vụ lựa chọn tần số, tạo ra tần số sóng mang,phát hiện tín hiệu, điếu chế và mã hoá tín hiệu
Lớp liên kết số liệu có vai trò quan trọng trong việc ghép các luồng dữ liệu, phát hiện khung dữ liệu, quản lý truy cập đường truyền và điều khiển lỗi Do môi trường có tạp âm và các node cảm biến có thể di động, giao thức điều khiển truy cập môi trường (MAC) cần xem xét vấn đề công suất và tối ưu hóa việc va chạm với thông tin quảng bá từ các node lân cận.
+ Lớp mạng: Quan tâm đến việc chọn đường số liệu được cung cấp bởi lớp truyền tải
Lớp truyền tải đóng vai trò quan trọng trong việc duy trì luồng dữ liệu khi ứng dụng mạng cần cảm nhận yêu cầu Nó trở nên cần thiết khi hệ thống dự kiến sẽ được truy cập qua mạng Internet và các mạng bên ngoài khác.
+ Lớp ứng dụng: tuỳ theo nhiệm vụ cảm biến, các loại phần mềm ứng dụng khác nhau có thể đƣợc xây dựng và sử dụng ở lớp ứng dụng
+ Mặt phẳng quản lý công suất: Điều khiển việc sử dụng công suất của node cảm biến Ví dụ:
Node cảm biến có thể tắt bộ thu sau khi nó nhận một bản tin để tránh tạo ra các bản tin giống nhau
Khi công suất của node cảm biến giảm, nó sẽ phát tín hiệu đến các node cảm biến lân cận, thông báo về mức năng lượng thấp và khả năng không tham gia vào quá trình định tuyến Năng lượng còn lại sẽ được sử dụng cho nhiệm vụ cảm biến Mặt phẳng quản lý di chuyển có trách nhiệm phát hiện và ghi nhận sự di chuyển của các node, từ đó xác định các node hàng xóm.
Mặt phẳng quản lý nhiệm vụ có vai trò quan trọng trong việc cân bằng và sắp xếp các nhiệm vụ cảm biến giữa các node, đảm bảo rằng tất cả các node trong khu vực thực hiện nhiệm vụ cảm biến đồng thời.
Ứng dụng của WSN
Mạng cảm biến không dây (WSN) bao gồm các node cảm biến nhỏ, có khả năng thích ứng với môi trường khắc nghiệt Những node này cảm nhận thông tin từ môi trường xung quanh và gửi dữ liệu về trung tâm để xử lý theo ứng dụng Ngoài việc liên lạc với các node lân cận, chúng còn có khả năng xử lý dữ liệu trước khi truyền đến các node khác WSN mang lại nhiều ứng dụng hữu ích trong nhiều lĩnh vực của cuộc sống.
Các ứng dụng trong bảo vệ môi trường + Phát hiện mìn, chất độc trong môi trường
+ Giám sát lũ lụt, bão, gió, mƣa…
+ Phát hiện ô nhiễm, chất thải
+ Phát hiện hoạt động núi lửa
Các ứng dụng trong y tế
+ Định vị theo dõi bệnh nhân
+ Hệ thống báo động khẩn cấp
+ Cảm biến gắn trực tiếp lên cơ thể con người
+ phân tích nồng độ các chất
+ Hỗ trợ chăm sóc bệnh nhân
Hình 1.3 Ứng dụng trong y tế
Các ứng dụng trong gia đình
+ Hệ thống giao tiếp và điều khiển từ xa các thiết bị
+ Hệ thống cảnh báo an ninh…
Hình 1.4 Ứng dụng điều khiển trong gia đình
Hệ thống giao thông thông minh + Giao tiếp giữa biển báo và phương tiện giao thông
+ Hệ thống điều tiết lƣƣ lƣợng công cộng
+ Hệ thống báo hiệu tai nạn, kẹt xe…
+ Hệ thống định vị phương, trợ giúp điều khiển tự động phương tiện giao thông
Hình 1.5 Ứng dụng định vị phương tiện giao thông Ứng dụng trong quân sự, an ninh + Định vị, theo dõi di chuyển của các thiết bị quân sự
+ Điều khiển tự động các thiết bị quân sự, robot
+ Kích hoạt thiết bị, vũ khí quân sự
+ theo dõi biên giới kếyt hợp với vệ tinh
Hình 1.6 Ứng dụnh cảm biến trong quân sự Ứng dụng trong thương mại + Quản lý kiến trúc và xây dựng
+ Hệ thống xử lý vật liệu
+ Quản lý tải trong tiêu thụ điện năng
+ Thu thập dữ liệu thơi gian thực
Hình 1.7 Các ứng dụng trong công nghiệp.
Những thách thức của WSN
Để WSN thực sự trở lên rộng khắp trong các ứng dụng, một số thách thức và trở ngại cần vƣợt qua:
Vấn đề về năng lƣợng
Năng lực xử lý, tính toán
Bộ nhớ lưu trữ có khả năng thích ứng tốt với môi trường, tuy nhiên, vẫn tồn tại một số thách thức như vấn đề mở rộng mạng, giá thành các node và quyền sở hữu.
5 Sự khác nhau giữa WSN và mạng truyền thống
Dựa vào trình bày ở trên, ta dễ dàng nhận thấy sự khác nhau giữa WSN và các mạng truyền thống:
Trong các mạng cảm nhận, số lượng node cảm biến vượt trội hơn nhiều so với các node trong mạng truyền thống, và các node này thường được triển khai với mật độ dày đặc hơn.
Những node cảm biến dẽ hỏng, ngừng hoạt động hơn
Cấu trúc mạng cảm nhận thay đổi khá thường xuyên
Mạng cảm nhận chủ yếu dựa vào truyền thông quảng bá, khác với các mạng truyền thống thường sử dụng cấu trúc điểm - điểm Các node cảm biến trong mạng này có giới hạn về năng lượng, khả năng tính toán và bộ nhớ.
Những node cảm biến có thể không có số định dạng toàn cầu(global identification) (ID)
Truyền năng lượng hiệu quả qua các phương tiện không dây Chia sẻ nhiệm vụ giữa các node láng giềng.
MỘT SỐ GIAO THỨC MAC TRONG MẠNG CẢM BIẾN KHÔNG DÂY
Giao Thức Mac
Mạng cảm biến không dây là một hệ thống đặc biệt với nhiều nút cảm biến được trang bị bộ vi xử lý và các thành phần cần thiết để quản lý sóng vô tuyến Các nút này phối hợp với nhau để thực hiện nhiệm vụ chung, thường được triển khai theo cách phi cấu trúc như mạng ad hoc Chúng cần tự tổ chức để tạo thành một mạng không dây đa bước nhảy Một trong những thách thức lớn trong mạng không dây là xung đột khi hai nút cố gắng gửi dữ liệu cùng lúc trên cùng một kênh truyền.
Giao thức điều khiển truy nhập đường truyền (MAC) giúp các nút quyết định thời điểm và cách thức truy cập kênh, được biết đến như sự định vị kênh hoặc đa truy nhập Lớp MAC thường được coi là một phần của lớp liên kết dữ liệu trong giao thức mạng Các giao thức MAC đã được nghiên cứu sâu rộng trong lĩnh vực truyền thông không dây và bao gồm Đa truy nhập phân chia theo thời gian (TDMA), Đa truy nhập phân chia theo tần số (FDMA) và Đa truy nhập phân chia theo mã (CDMA), là những phương pháp phổ biến trong các hệ thống truyền thông tế bào hiện đại Những phương pháp này cho phép truy cập vào kênh chung mà không cần cấp phát sẵn, thông qua sự phối hợp xác suất có điều kiện.
Xung đột có thể xảy ra trong thời gian thủ tục cạnh tranh trong những hệ thống nhƣ vậy
Mạng cảm biến khác biệt với mạng dữ liệu không dây truyền thống ở một số điểm quan trọng Đầu tiên, hầu hết các nút trong mạng cảm biến hoạt động bằng pin, khiến việc sạc pin cho tất cả các nút trở nên khó khăn Thứ hai, các nút thường được triển khai theo cách phi cấu trúc và cần tự tổ chức để hình thành mạng truyền thông Thứ ba, nhiều ứng dụng yêu cầu số lượng lớn nút, với mật độ thay đổi theo thời gian và địa điểm, bao gồm cả mạng có mật độ thưa và dày Cuối cùng, lưu thông trong mạng chủ yếu được kích hoạt bởi các sự kiện cảm ứng, có phân bố không đều và tập trung Những đặc điểm này cho thấy rằng các giao thức MAC truyền thống cần được cải biến để phù hợp với mạng cảm biến không dây.
Tính tránh xung đột (Collision Avoidance) là yêu cầu thiết yếu trong tất cả các giao thức MAC, giúp xác định thời điểm mà một nút có thể truy cập vào đường truyền để thực hiện việc trao đổi dữ liệu.
Tính hiệu năng (Energy Efficiency) là thuộc tính quan trọng nhất của các giao thức MAC trong mạng cảm biến Hầu hết các nút cảm biến sử dụng pin, việc thay thế hoặc sạc lại pin là rất khó khăn Thực tế, nhiều mạng cảm biến được thiết kế với các nút có chi phí thấp, thậm chí có thể vứt bỏ thay vì sạc lại Do đó, kéo dài tuổi thọ của mỗi nút là một vấn đề then chốt trong thiết kế mạng cảm biến.
Năng lượng cho thu phát sóng vô tuyến là nguồn tiêu thụ năng lượng chính, bất kể nền tảng phần cứng nào Lớp MAC đóng vai trò quan trọng trong việc điều khiển hoạt động thu phát sóng vô tuyến, và mức tiêu thụ năng lượng của nó có ảnh hưởng lớn đến tuổi thọ của nút.
Khả năng thích ứng và biến đổi được
Tính biến đổi được và khả năng thích ứng là những thuộc tính quan trọng của giao thức MAC, giúp điều tiết sự thay đổi trong kích thước, mật độ và topo mạng Trong môi trường mạng cảm biến phi cấu trúc, nhiều nút có thể ngừng hoạt động hoặc di chuyển, và một số nút mới có thể gia nhập sau này Một giao thức MAC hiệu quả cần phải quản lý những thay đổi này một cách hợp lý để đảm bảo hoạt động ổn định trong các điều kiện không chắc chắn.
Khả năng sử dụng kênh
Và độ fairness đối với từng nút hoặc từng người dùng trở nên ít quan trọng hơn
Tóm lại, các vấn đề nêu ở trên là những thuộc tính thể Sự sử dụng kênh
Sự sử dụng kênh (Channel utilization) phản ánh mức độ băng thông được sử dụng trong truyền thông, đặc biệt quan trọng đối với hệ thống điện thoại di động và mạng cục bộ không dây (WLANs), nơi băng thông là tài nguyên quý giá Các nhà cung cấp dịch vụ thường muốn tối đa hóa số lượng người dùng Trong mạng cảm biến, số lượng nút hoạt động phụ thuộc vào loại ứng dụng, và việc sử dụng kênh thường không phải là ưu tiên hàng đầu Độ trễ (Latency) là thời gian từ khi một nút gửi gói tin cho đến khi gói tin được nhận thành công, và mức độ quan trọng của độ trễ phụ thuộc vào ứng dụng Trong các ứng dụng giám sát, các nút cảm biến thường không hoạt động cho đến khi phát hiện sự kiện, do đó có thể chấp nhận độ trễ trong quá trình truyền tải Tuy nhiên, sau khi phát hiện sự kiện, việc giảm độ trễ trở thành mục tiêu chính, vì tốc độ phản ứng của mạng phải đáp ứng nhanh chóng để tiết kiệm năng lượng và thời gian hoạt động của thiết bị.
Thông lượng (Throughput) là số lượng dữ liệu được chuyển giao thành công từ nguồn đến đích trong một khoảng thời gian xác định Nhiều yếu tố ảnh hưởng đến thông lượng, bao gồm khả năng tránh xung đột, mức độ sử dụng kênh, độ trễ, và quy trình xử lý thông tin điều khiển Tương tự như độ trễ, tầm quan trọng của thông lượng phụ thuộc vào loại ứng dụng; ví dụ, các ứng dụng cảm biến yêu cầu vòng đời dài thường chấp nhận độ trễ cao hơn và thông lượng thấp hơn.
Sự công bằng trong mạng cảm biến thể hiện khả năng chia sẻ kênh truyền giữa các nút và ứng dụng một cách đồng đều Đây là yếu tố quan trọng trong mạng tiếng nói và mạng dữ liệu truyền thống, nơi mỗi người dùng cần có cơ hội như nhau để gửi và nhận dữ liệu Tuy nhiên, trong mạng cảm biến, tất cả các nút hợp tác cho một nhiệm vụ chung, và một số nút có thể có nhiều dữ liệu cần gửi hơn những nút khác Do đó, thành công không chỉ dựa vào sự công bằng giữa các nút mà còn phụ thuộc vào hiệu suất của ứng dụng, đặc biệt là các đặc trưng của giao thức MAC Đối với mạng cảm biến không dây, các yếu tố quan trọng bao gồm khả năng tránh xung đột hiệu quả, tiết kiệm năng lượng, và khả năng thích ứng với mật độ và số lượng nút.
2 Các nguyên nhân gây nên lãng phí năng lƣợng
Sự xung đột (Collision) là nguyên nhân đầu tiên gây tiêu phí năng lƣợng
Khi hai gói tin được truyền đồng thời, xung đột xảy ra dẫn đến việc gói tin bị hỏng và phải loại bỏ Yêu cầu truyền lại gói tin sau đó sẽ gây ra sự tiêu hao năng lượng Vì vậy, tất cả các giao thức MAC đều nỗ lực tối đa để tránh xung đột.
Nguyên nhân thứ hai gây tiêu hao năng lƣợng là vấn đề nghe khi rỗi (Idle
Nghe là quá trình mà thành phần sóng vô tuyến thực hiện việc "lắng nghe" kênh để xác định xem có dữ liệu nào để nhận hay không Hiện tượng tiêu hao năng lượng này đặc biệt cao trong các ứng dụng mạng cảm biến, nơi mà không có dữ liệu trao đổi trong thời gian không có sự kiện được cảm biến.
Nhiều giao thức MAC như CSMA và CDMA luôn lắng nghe kênh ngay cả khi không có dữ liệu để gửi, dẫn đến chi phí năng lượng phụ thuộc vào phần cứng và chế độ hoạt động của sóng vô tuyến Hầu hết các mạng cảm biến được thiết kế để hoạt động lâu dài, do đó các nút cảm biến thường ở trạng thái nghe trong thời gian dài Trong những trường hợp này, việc lắng nghe khi rỗi trở thành yếu tố quan trọng ảnh hưởng đến tiêu thụ năng lượng của thành phần sóng vô tuyến.
Nguyên nhân thứ ba gây tiêu hao năng lượng trong mạng là vấn đề nghe thừa (overhearing), khi một nút nhận được các gói tin không dành cho mình Việc phải xử lý những lưu thông không cần thiết này có thể trở thành yếu tố chính làm tăng mức tiêu thụ năng lượng, đặc biệt khi lưu lượng truyền tải tăng cao và mật độ nút trong mạng dày đặc.
Nguyên nhân cuối cùng cần xem xét là việc xử lý gói tin điều khiển, vì việc gửi, nhận và lắng nghe các gói tin này cũng tiêu tốn năng lượng Mặc dù gói điều khiển không trực tiếp truyền tải dữ liệu, nhưng chúng vẫn ảnh hưởng đến goodput, làm giảm hiệu suất truyền tải.
PHẦN MỀM MÔ PHỎNG MẠNG OMNET++
OMNeT++ (Objective Modular Network Testbed in C++) là một công cụ mô phỏng mạng mạnh mẽ, cho phép người dùng tạo ra các mô hình mạng thông tin Với tính linh hoạt và khả năng mở rộng, OMNeT++ không chỉ phục vụ cho việc mô phỏng mạng mà còn có thể áp dụng trong nhiều lĩnh vực khác nhau.
OMNeT++ được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm mô phỏng các hệ thống thông tin phức tạp, mạng kiểu hàng đợi (queueing networks) và các kiến trúc phần cứng.
OMNeT++ cung cấp các module tương ứng với các mô hình thực tế, được lập trình bằng ngôn ngữ C++ và tập hợp thành các mô hình lớn hơn thông qua ngôn ngữ NED Phần mềm này hỗ trợ giao diện đồ họa cho các mô hình cấu trúc, đồng thời cho phép dễ dàng nhúng phần nhân mô phỏng và các module vào các ứng dụng khác.
3.1.2 Các thành phần chính của OMNET++
• Thƣ viện phần nhân mô phỏng (simulation kernel)
• Trình biên dịch cho ngôn ngữ mô tả hình trạng (topology description language) - NED (nedc)
• Trình biên tập đồ hoạ (graphical network editor) cho các file NED (GNED)
• Giao diện đồ hoạ thực hiện mô phỏng, các liên kết bên trong các file thực hiện mô phỏng (Tkenv)
• Giao diện dòng lệnh thực hiện mô phỏng (Cmdenv)
• Công cụ (giao diện đồ hoạ) vẽ đồ thị kết quả vector ở đầu ra (Plove)
• Công cụ (giao diện đồ hoạ) mô tả kết quả vô hướng ở đầu ra (Scalars)
• Công cụ tài liệu hoá các mô hình
• Các tài liệu hướng dẫn, các ví dụ mô phỏng
OMNeT++ là một công cụ mô phỏng mạng mạnh mẽ, sử dụng các module được thiết kế theo hướng đối tượng Công cụ này thường được áp dụng trong nhiều ứng dụng khác nhau, giúp nghiên cứu và phân tích các hoạt động mạng hiệu quả.
• Mô hình hoạt động của các mạng thông tin
• Mô hình hoá các mạng kiểu hàng đợi
• Mô hình hoá các hệ thống đa bộ vi xử lý (multiprocesser) hoặc các hệ thống phần cứng theo mô hình phân tán khác (distributed hardware systems)
• Đánh giá kiến trúc phần cứng
• Đánh giá hiệu quả hoạt động của các hệ thống phức tạp
3.2.1 Cấu trúc phân cấp của các module
Mô hình trong OMNeT++ bao gồm các module lồng nhau với cấu trúc phân cấp, cho phép trao đổi thông tin qua việc gửi message Mỗi mô hình thường đại diện cho một hệ thống mạng, với module cao nhất được gọi là module hệ thống, có thể chứa các module con Các module con này cũng có khả năng chứa thêm các module con khác, tạo ra độ sâu phân cấp không giới hạn Điều này giúp người dùng dễ dàng biểu diễn cấu trúc logic của hệ thống thực tế thông qua cấu trúc phân cấp của OMNeT++ Cấu trúc mô hình được mô tả bằng ngôn ngữ NED của OMNeT++.
Hình 3.1 Các module đơn giản và kết hợp
Các module kết hợp có thể chứa nhiều module con, trong khi các module đơn giản là các module cấp thấp nhất trong cấu trúc phân cấp Những module đơn giản này chứa các thuật toán của mô hình và được người sử dụng triển khai bằng ngôn ngữ C++, sử dụng các thư viện mô phỏng của OMNeT++.
Tất cả các module, dù đơn giản hay phức tạp, đều là các đối tượng cụ thể của các kiểu module Khi mô tả các mô hình, người sử dụng định nghĩa các kiểu module, và các đối tượng cụ thể này được sử dụng làm thành phần cho các kiểu module phức tạp hơn Cuối cùng, người sử dụng tạo ra module hệ thống như một đối tượng cụ thể của kiểu module đã được định nghĩa, trong đó tất cả các module của mạng đều là module con hoặc con của module con của module hệ thống.
Khi một kiểu module được sử dụng như một khối dựng sẵn, việc phân biệt giữa module đơn giản và phức tạp trở nên khó khăn Điều này cho phép người dùng tách các module đơn giản thành nhiều module nhỏ hơn được nhúng trong một module kết hợp, đồng thời cũng có thể gom các chức năng của module kết hợp vào một module đơn giản mà không làm ảnh hưởng đến các kiểu module đã được định nghĩa trước đó.
Kiểu module có thể được lưu trữ trong một file riêng biệt, cho phép người dùng nhóm các kiểu module lại và xây dựng một thư viện thành phần hiệu quả.
Các module trao đổi thông tin thông qua việc gửi các message dưới dạng khung (frame) hoặc gói tin (packet) trong mạng Các message này có thể có cấu trúc phức tạp và các module đơn giản có khả năng gửi message trực tiếp đến vị trí nhận hoặc theo một đường dẫn định sẵn thông qua các cổng và liên kết.
Thời gian mô phỏng địa phương của một module tăng lên khi nó nhận được một message, có thể từ một module khác hoặc từ chính module đó.
- self-message đƣợc dùng để thực hiện bộ định thời)
Cổng (gate) là các giao tiếp vào ra của module Message đƣợc gửi đi qua các cổng ra và đƣợc nhận vào thông qua các cổng vào
Mỗi kết nối (hay liên kết) trong cấu trúc phân cấp của các module được tạo ra bên trong một mức đơn Trong một module kết hợp, kết nối có thể hình thành giữa các cổng tương ứng của hai module con hoặc giữa cổng của module con và cổng của module kết hợp.
Trong mô hình phân cấp, các message di chuyển qua nhiều kết nối, bắt đầu và kết thúc tại các module đơn giản Tập hợp các kết nối từ một module này đến một module khác được gọi là route Các module hoạt động như những "hộp giấy" trong mô hình, cho phép chuyển tiếp các message giữa các thành phần bên trong và thế giới bên ngoài một cách "trong suốt".
3.2.4 Mô hình truyền gói tin
Một kết nối có ba tham số đặc trưng, rất hữu ích cho các mô hình mô phỏng mạng thông tin nhưng không phù hợp lắm với các kiểu mô hình khác Những tham số này bao gồm:
• Độ trễ đường truyền (propagation delay) tính bằng giây
• Tỉ số lỗi bit, đƣợc tính bằng số lỗi/bit
• Tỉ số dữ liệu, đƣợc tính bằng số bit/s
Các tham số này là tùy chọn và có giá trị khác nhau tùy thuộc vào từng loại kết nối, hay còn gọi là kiểu kênh truyền Độ trễ đường truyền là tổng thời gian mà thông điệp bị chậm trễ khi truyền qua kênh.
MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU QUẢ NĂNG LƯỢNG
4.1 Thiết lập mô hình mô phỏng
Các giao thức CSMA, S-MAC, T-MAC đƣợc mô phỏng trên cơ sở hoạt động của nút cảm biến EYES
Hình 4.1 Nút cảm biến EYES
Nút cảm biến EYES đƣợc trang bị một bộ xử lý Texas Instruments
MSP430F149 là một bộ vi xử lý 16 bit với 2KB RAM và 60KB bộ nhớ Flash, có khả năng hoạt động ở nhiều xung nhịp, tối đa là 5MHz Nút cảm biến EYES sử dụng sóng vô tuyến 115kbps (RFM TR1001, 868.35 MHz, hybrid transceiver) và được trang bị bộ nhớ EEPROM 2Mb (AST 25P20V6) Nó có nhiều giao diện tương tác như JTAG, RS232 và 2 LED, trong khi nguồn năng lượng được cung cấp bởi 2 pin AA với điện áp 3V, chiếm phần lớn thể tích của nút.
Bảng 4.1 Thông số tiêu thụ điện của nút cảm biến EYES
Dung lượng và khả năng tiêu thụ điện của nút EYES tương tự như các nút cảm biến nguyên mẫu khác, với bộ nhớ RAM 2KB và nguồn năng lượng hạn chế Do đó, một giao thức MAC được thiết kế để tối ưu hóa việc sử dụng tài nguyên Để minh họa các giao thức điều khiển truy cập MAC, mô hình mô phỏng hoạt động của nút cảm biến EYES đã được xây dựng trên công cụ OMNET++ Các giao thức MAC được cài đặt và so sánh bao gồm S-MAC, T-MAC và CSMA, trong đó CSMA được mô phỏng để đánh giá trường hợp tồi nhất trong mạng cảm biến không dây, không có đặc tính tiết kiệm năng lượng Mô phỏng sử dụng ma trận 100 nút cảm biến phân bố đều trong mạng lưới 10x10, với công suất phát sóng được chọn sao cho nút ở trung tâm chỉ có 8 nút lân cận.
Ma trận 100 nút cảm biến phân bố đều nhau cho thấy mức tiêu thụ điện của nút cảm biến EYES là 20µA khi ngủ, 4mA khi nhận và 10mA khi truyền Nguồn điện cung cấp cho mỗi nút có hiệu điện thế không đổi là 3V Thời gian mô phỏng được xác định, cho phép tính toán năng lượng tiêu thụ trung bình dựa trên dòng điện tiêu thụ trung bình Để tiện lợi, mô phỏng sử dụng đại lượng dòng điện tiêu thụ trung bình thay cho năng lượng tiêu thụ trung bình.
Trong mô phỏng, nút cảm biến EYES hoạt động với tần số 32768 xung/giây, thực hiện giao thức S-MAC với khung thời gian 1 giây tương ứng 32768 xung Thời gian tích cực được điều chỉnh theo mục đích mô phỏng Đối với giao thức T-MAC, độ dài khung cố định là 610ms (20000 xung) và khoảng cách TA là 15ms (500 xung) Giao thức T-MAC áp dụng kỹ thuật tránh nghe thừa và gửi RTS sớm Thời gian mô phỏng tổng cộng là 30 giây.
Trong mô phỏng, một thông số quan trọng để theo dõi hiệu suất giao thức là thông lượng Thông lượng có thể được điều chỉnh bằng cách thay đổi tham số mô phỏng khác, cụ thể là tốc độ phát sinh gói tin của mỗi nút cảm biến.
4.2 Kết quả mô phỏng và đánh giá
Tiến hành chạy mô phỏng với giao thức CSMA, quá trình hoạt động của mạng nhƣ sau:
0.0000000 ( 0.00s) net.nodes[0].mac: mac=Csma
0.0000000 ( 0.00s) net.nodes[0].mac: mac1=0.000000 mac2=0.000000 mac3=0.000000 mac4=0.000000
0.0000000 ( 0.00s) net.prop: node 0 is at (0.000000,0.000000)
0.2076919670 (207ms) net.nodes[7].idle1: generate
0.2076919670 (207ms) net.nodes[7].appsel: Queuing new msg, pattern = 0
30.557766 (30.55s) net.nodes[15].radio: stats: sleep=0.0000 tx=0.0105 rx=0.1389 tx_lb=0.0008 rx_lb0.4075 collision=0.0000
30.557766 (30.55s) net.nodes[15].idle1: stats: tx=3 rx=3 delay=0.003749
Bảng 4.2 Tiến trình mô phỏng giao thức CSMA
Bảng 4.3 Kết quả mô phỏng giao thức CSMA
The simulation of the S-MAC protocol reveals the network's operational metrics at time 0.557766, indicating that nodes have various parameters such as app_txP, app_rxP, rt_txP, and rt_rxP Notably, there are no transmission drops (rt_tx_drop=0) and the radio is primarily in a transmit state (radio_tx=0.1885) with minimal collisions (radio_collision=0) and an empty queue (in_queue=0) The data transmission rates show mac_rx_data and mac_tx_data both at 0.1867, while mac_rx_overhear stands at 2.527 Additionally, the overhead for both receiving and transmitting data is negligible, with own_sched and multiple MAC parameters remaining at zero.
0.0000000 ( 0.00s) net.nodes[0].mac: mac=Csma
0.0000000 ( 0.00s) net.nodes[0].mac: mac1=0.000000 mac2=0.000000 mac3=0.000000 mac4=0.000000
0.0000000 ( 0.00s) net.prop: node 0 is at (0.000000,0.000000)
0.2076919670 (207ms) net.nodes[7].idle1: generate
0.2076919670 (207ms) net.nodes[7].appsel: Queuing new msg, pattern = 0
30.557766 (30.55s) net.nodes[15].radio: stats: sleep=0.0000 tx=0.0105 rx=0.1389 tx_lb=0.0008 rx_lb0.4075 collision=0.0000
After executing the kd.pl file, the simulation results are summarized as follows: The total time recorded is 30.557766 seconds, with 3 transmissions (tx) and 3 receptions (rx), resulting in a delay of 0.003749 seconds The app's transmission parameters include app_txP and app_rxP, while the radio metrics indicate radio_tx at 0.1885 and radio_rx at 8.735, with no collisions reported The queue status shows in_queue at 0, and the MAC layer statistics reveal mac_tx_data and mac_rx_data both at 0.1867, with no overhead or drops The own scheduling and various MAC parameters are all recorded as zero.
0.0000000 ( 0.00s) net.nodes[0].mac: mac=SMac
0.0000000 ( 0.00s) net.nodes[0].mac: mac1 00.000000 mac2 000.000000 mac3=0.000000 mac4=0.000000
0.0000000 ( 0.00s) net.prop: node 0 is at (0.000000,0.000000)
0.2076919670 (207ms) net.nodes[7].idle1: generate
0.2076919670 (207ms) net.nodes[7].appsel: Queuing new msg, pattern = 0
30.200204 (30.20s) net.nodes[15].radio: stats: sleep&.6760 tx=0.0233 rx=0.0946 tx_lb=0.0034 rx_lb=3.4029 collision=0.0000
30.200204 (30.20s) net.nodes[15].idle1: stats: tx=3 rx=3 delay=0.398374
0.0000000 ( 0.00s) net.nodes[0].mac: mac=SMac
0.0000000 ( 0.00s) net.nodes[0].mac: mac1 00.000000 mac2 000.000000 mac3=0.000000 mac4=0.000000
0.0000000 ( 0.00s) net.prop: node 0 is at (0.000000,0.000000)
0.2076919670 (207ms) net.nodes[7].idle1: generate
0.2076919670 (207ms) net.nodes[7].appsel: Queuing new msg, pattern = 0
30.200204 (30.20s) net.nodes[15].radio: stats: sleep&.6760 tx=0.0233 rx=0.0946 tx_lb=0.0034 rx_lb=3.4029 collision=0.0000
30.200204 (30.20s) net.nodes[15].idle1: stats: tx=3 rx=3 delay=0.398374
Bảng 4.4 Tiến trình mô phỏng giao thức S-MAC
Bảng 4.5 Kết quả mô phỏng giao thức S-MAC
The simulation using the T-MAC protocol reveals the following network activity: at time 0.200204, various metrics were recorded, including app_txP, app_rxP, and rt_txP, with no packet drops (rt_tx_drop=0) The MAC layer showed transmission (mac_txP) and reception (mac_rxP) rates, while the radio was in sleep mode for 6.8038 seconds, with transmission (radio_tx=0.4508) and reception (radio_rx=0.9487) metrics indicating no collisions (radio_collision=0) and an empty queue (in_queue=0) Data metrics included mac_rx_data at 0.1999, mac_rx_overhead at 0.6686, and mac_rx_overhear at 0.9722, while mac_tx_data was recorded at 0.2 and mac_tx_overhead at 0.2426 The scheduling was confirmed as own_sched=1, with MAC settings showing mac=SMac and message length and interval metrics at zero for mac1, mac2, mac3, and mac4.
0.0000000 ( 0.00s) net.nodes[0].mac: mac=TMac
0.0000000 ( 0.00s) net.nodes[0].mac: mac1P0.000000 mac2 000.000000 mac3=1.000000 mac4=0.000000
0.2076919670 (207ms) net.nodes[7].idle1: generate
0.2076919670 (207ms) net.nodes[7].appsel: Queuing new msg, pattern 0
After running the kd.pl file, the simulation results are summarized as follows: time is 0.200204, with nodes showing app_txP, app_rxP, rt_txP, rt_rxP, and rt_tx_drop equal to 0 The mac_txP is 0.4508, mac_rxP is 0.9487, and radio_sleep is 6.8038 Additionally, radio_tx is 0.4508, radio_rx is 0.9487, and radio_collision is 0, with in_queue at 0 The mac_rx_data is 0.1999, mac_rx_overhead is 0.6686, and mac_rx_overhear is 0.9722 Furthermore, mac_tx_data is 0.2, mac_tx_overhead is 0.2426, own_sched is 1, and the mac is identified as SMac, with msglen and msginterval showing mac1, mac2, mac3, and mac4 values all at 0.000000.
Bảng 4.6 Tiến trình mô phỏng giao thức T-MAC
After running the kd.pl file, the simulation results are summarized as follows: time is recorded at 0.260765 seconds with various metrics including nodes, app_txP, app_rxP, rt_txP, and rt_rxP The transmission drop rate is 0 for rt_tx_drop, while radio energy consumption shows radio_sleep at 0.4184, radio_tx at 0.4578, and radio_rx at 3.2963, with a minimal radio_collision rate of 0.0039 The in_queue metric is 0, indicating no data waiting For MAC layer statistics, mac_rx_data is at 0.1999, mac_rx_overhead at 0.6502, and mac_rx_overhear at 0.9694 Additionally, mac_tx_data is 0.2, and mac_tx_overhead is 0.2481, with own_sched set to 1 The MAC parameters include mac1P at 0.000000, mac2 at 0.000000, mac3 at 1.000000, and mac4 at 0.000000.
0.0000000 ( 0.00s) net.nodes[0].mac: mac=TMac
0.0000000 ( 0.00s) net.nodes[0].mac: mac1P0.000000 mac2 000.000000 mac3=1.000000 mac4=0.000000
0.2076919670 (207ms) net.nodes[7].idle1: generate
0.2076919670 (207ms) net.nodes[7].appsel: Queuing new msg, pattern = 0
In a recent network performance analysis, node 15 reported a transaction count of three for both transmission (tx) and reception (rx), with a delay of 0.461452 seconds The statistics indicate a radio sleep energy consumption of 0.4184 and a radio transmission time of 0.4578 seconds, while the radio reception time was recorded at 3.2963 seconds Notably, there were no transmission drops or collisions, and the queue remained empty The data analysis also revealed mac_rx_data at 0.1999, mac_rx_overhead at 0.6502, and mac_rx_overhear at 0.9694, with mac_tx_data at 0.2 and mac_tx_overhead at 0.2481 The scheduling status showed that one own scheduler was active, and the MAC layer parameters indicated varied values across different channels, contributing to the overall network efficiency.
Bảng 4.7 Kết quả mô phỏng giao thức T-MAC
Chạy file nl2.pl để phân tích và tổng hợp kết quả mô phỏng có bảng sau: Tốc độ phát sinh gói tin
Dòng điện tiêu thụ trung bình (mA/node)
Bảng 4.8 Tổng hợp kết quả mô phỏng
TOC DO PHAT SINH GOI TIN (message/s)
Hình 4.3 Dòng điện tiêu thụ trung bình ứng với từng giao thức thay đổi theo tốc độ phát sinh gói tin
Từ bảng 4.8, chúng tôi đã xây dựng đồ thị thể hiện mối quan hệ giữa tốc độ phát sinh gói tin và dòng điện tiêu thụ trung bình của các giao thức, với kết quả được trình bày trong đồ thị hình 4.3.
Đồ thị cho thấy rằng CSMA tiêu thụ năng lượng rất cao và ổn định do thiếu hiệu năng Trong khi đó, T-MAC có mức tiêu thụ trung bình thấp hơn S-MAC, nhưng lại tăng theo tỷ lệ với tốc độ phát sinh gói tin Điều này tạo nên sự khác biệt rõ rệt giữa T-MAC và S-MAC.
T-MAC các nút cảm biến vẫn duy trì trạng thái thức khi lân cận của nó trao còn đổi dữ liệu Đối với S-MAC dòng điện tiêu thụ trung bình lại giảm đi khi tăng tốc độ phát sinh gói tin Điều này có thể giải thích: với S-MAC, các nút cảm biến sẽ tắt thành phần vô tuyến chuyển sang trạng thái ngủ khi lân cận của nó đang có sự trao đổi dữ liệu Trong mô phỏng khi ta tăng tốc độ phát sinh gói tin (của toàn mạng) số lƣợng và thời các cuộc trao đổi dữ liệu giữa các nút sẽ tăng Do đó số lƣợng và thời gian các nút phải duy trì trạng thái ngủ sẽ tăng, dòng điện tiêu thụ trung bình sẽ giảm
KET QUA MO PHONG - SO SANH T-MAC-oa VA T-MAC-oa-frts
TOC DO PHAT SINH GOI TIN (message/s)
T-MAC-oa T-MAC-oa-frts
Hình 4.4 So sánh T-MAC-oa với T-MAC-oa-frts
Hiện tượng ngủ sớm trong T-MAC giới hạn thông lượng cực đại của mạng Khi mô phỏng tăng tốc độ phát sinh gói tin, nhận thấy rằng sau một thời gian, dòng điện tiêu thụ trung bình giảm và đạt trạng thái "bão hòa", dẫn đến việc không có gói tin nào được chuyển Để khắc phục vấn đề này, T-MAC áp dụng kỹ thuật gửi sớm RTS (Future Request to Send).
FRTS) Thực hiện mô phỏng hoạt động của T-MAC sử dụng kỹ thuật FRTS