Tải bản đầy đủ (.docx) (85 trang)

Nghiên cứu, đánh giá hiệu năng của giao thức định tuyến cho mạng cảm biến không dây với hỗ trợ 6LoWPAN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (675.1 KB, 85 trang )

1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


••

TỐNG ĐỨC THUẬN

NGHIÊN CỨU, ĐÁNH GIÁ HIỆU NĂNG
CỦA GIAO THỨC ĐỊNH TUYẾN CHO MẠNG
CẢM BIẾN KHÔNG DẨY VỚI HỖ TRỢ 6LOWPAN

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

ĐẠI HỌC QUỐC GIA HÀ NỘI



••

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Hà Nội - 2013


2

TỐNG ĐỨC THUẬN

NGHIÊN CỨU, ĐÁNH GIÁ HIỆU NĂNG


CỦA GIAO THỨC ĐỊNH TUYẾN CHO MẠNG
CẢM BIẾN KHÔNG DẨY VỚI HỖ TRỢ 6LOWPAN

NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH MÃ
SỐ: 60 48 15

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. NGUYỄN VĂN TAM

Hà Nội - 2013


3

MỤC LỤC


4

DANH MUC CAC CHtf VIET TAT

RPL
DAG

IPv6 Routing Protocol For Low Power And Lossy Network
Directed Acyclic Graph

WSN


Wireless Sensor Network

ID

Identifycation

DIS

DAG Information Solicitation

DIO

DAG Information Object

DAO

Destination Advertisment Object

ICMP

Internet Control Message Protocol

PDR

Packet Delivery Ratio

PDC

Packet Delivery Cost


RFC

Request For Comments

UDP

User Datagram Protocol

LLN

Lower Power and Lossy Network

OF

Objective Functions

ETX

Expected Transmission Count

LBR

LLN Border Router

UDGM

Unit Disk Graph Model

RDC


Radio Duty Cycling

ROLL

Routing Over Low Power and Lossy Network

DANH MỤC CÁC HÌNH ẢNH VÀ BẢNG BIỂU



5

MỞ ĐẦU

Ngày nay, cùng với sự phát triển không ngừng của khoa học kỹ thuật, các
công nghệ trong lĩnh vực mạng cảm biến cũng không ngừng phát triển và ngày
càng đòi hỏi những yêu cầu cao hơn, nhằm phục vụ những mục đích nghiên cứu
khoa học, y tế, giáo dục, quân sự, dân sự,.... Trong cuộc sống hiện đại, những
ứng dụng sử dụng mạng cảm biến không dây ngày càng trở nên gần gũi và có ý
nghĩa trong cuộc sống.
Trong mạng cảm biến không dây, định tuyến là một yếu tố rất quan trọng
ảnh hưởng đến kết nối và thực hiện trao đổi thông tin. Hiệu quả hoạt động chung
của mạng cảm biến không dây là phụ thuộc vào sự lựa chọn của giao thức định
tuyến và chất lượng thực hiện của nó. Mạng tổn hao năng lượng thấp bị hạn chế
về tài nguyên do kiểm soát đường truyền, thời gian, tiêu thụ năng lượng, độ trễ
và tỷ lệ phân phối gói tin (PDR) đóng một vai trò quan trọng trong hoạt động của
các giao thức định tuyến. Giao thức định tuyến RPL cần phải được tối ưu hóa
cho các ứng dụng sensornet khác nhau để đạt được hiệu suất tối ưu và sử dụng
các nguồn lực hiệu quả hơn.
Nghiên cứu, đánh giá hiệu năng của giao thức định tuyến RPL - Routing

Protocol for Low power and Lossy Network - một giao thức định tuyến mới
đang trong quá trình nghiên cứu là hết sức cần thiết. Do đó, tôi chọn đề tài
“Nghiên cứu, đánh giá hiệu năng của giao thức định tuyến cho mạng cảm biến
không dây với hỗ trợ 6LoWPAN”. Trong khuôn khổ luận văn này, tôi tập trung
nghiên cứu, tìm hiểu mở rộng mạng cảm biến không dây sử dụng IPv6, đánh giá
hiệu năng của giao thức định tuyến RPL. Luận văn được trình bày trong 3
chương như sau:
Chương 1: Trình bày tổng quan về mạng cảm biến không dây, những ứng
dụng của mạng cảm biến không dây; Giới thiệu hệ điều hành Contiki và công cụ
mô phỏng Cooja


6

Chương 2: Trình bày giao thức định tuyến RPL và IPv6. Cấu trúc các bản
tin DIO, DAO, DIS. Quá trình khởi tạo mạng và định tuyến của giao thức RPL
Chương 3. Xây dựng mô hình mô phỏng bằng công cụ Cooja. Thống kê
phân tích số liệu, đưa ra nhưng đánh giá và khuyến nghị.

CHƯƠNG 1. TỔNG QUAN WSN VÀ ỨNG DỤNG
1.1.

Khái niệm chung về mạng cảm biến không dây

Mạng cảm biến không dây (wireless sensor network - WSN) là một mạng
bao gồm một số lượng lớn các node cảm biến có kích thước nhỏ gọn, giá thành
thấp, có sẵn nguồn năng lượng, có khả năng tính toán và trao đổi với các thiết bị
khác nhằm mục đích thu thập thông tin toàn mạng để đưa ra các thông số về môi
trường, hiện tượng và sự vật mà mạng quan sát.
Các node cảm biến là các sensor có kích thước nhỏ, thực hiện việc thu phát

dữ liệu và giao tiếp với nhau chủ yếu qua kêch vô tuyến. Các thành phần của
node cảm biến bao gồm: các bộ vi xử lý rất nhỏ, bộ nhớ giới hạn, bộ phận cảm
biến, bộ phận thu phát không dây, nguồn nuôi. Kích thước của các con cảm biến
này thay đổi tùy thuộc vào từng ứng dụng.
Mạng cảm biến không dây ra đời đáp ứng nhu cầu thu thập thông tin về
môi trường, khí hậu, phát hiện và do thám việc tấn công bằng hạt nhân, sinh học
và hóa học, chuẩn đoán sự hỏng hóc của máy móc, thiết bị, .. .để từ đó phân tích,
xử lý và đưa ra các phương án phù hợp hoặc cảnh báo hay đơn thuần chỉ là lưu
trữ số liệu.
Với sự phát triển của công nghệ chế tạo linh kiện điện tử, công nghệ nano,
giao tiếp không dây, công nghệ mạch tích hợp, vi mạch phần cảm biến. đã tạo ra
những con cảm biến có kích thước nhỏ gọn, đa chức năng, giá thành thấp, tiêu
thụ năng lượng ít, làm tăng khả năng ứng dụng rộng rãi của mạng cảm biến
không dây.
Mạng cảm biến không dây có một số đặc điểm sau:
• Phát thông tin quảng bá trong phạm vi hẹp và định tuyến multihop.


Được triển khai với mật độ sensor lớn.


7



Cấu hình mạng thường xuyên thay đổi phụ thuộc vào fadinh và hư hỏng
ở các node.




Các node trong mạng cảm biến bị hạn chế về công suất, khả năng xử lý
và dung lượng nhớ.



Mạng cảm biến thường phụ thuộc vào ứng dụng.



Vị trí các node mạng cảm biến không cần thiết phải thiết kế hoặc xác
định trước. Do đó có thể phân bố ngẫu nhiên trong các địa hình phức tạp.
в Khả năng phối hợp giữa các node cảm biến: các node cảm biến có
gắn bộ xử lý bên trong, do đó thay vì gửi dữ liệu thô tới đích thì
chúng gửi dữ liệu đã qua tính toán đơn giản.

1.2.

Cấu trúc mạng cảm biến

Các cấu trúc hiện nay cho mạng Internet và mạng ad hoc không dây không
dùng được cho mạng cảm biến không dây, vì một số lý do sau:
в Số lượng các node cảm biến trong mạng cảm biến có thể lớn gấp
nhiều lần trong mạng ad hoc. в

Các node cảm biến dễ bị lỗi

в Cấu trúc mạng cảm biến thay đổi khá thường xuyên.
в Các node cảm biến chủ yếu sử dụng truyển thông kiểu
trong
khi hầu hết các mạng ad hoc đều dựa trên việc truyền điểm-điểm.

в Các bút cảm biến bị giới hạn về năng lượng, khả năng
bộ
nhớ.
в Các node cảm biến có thể không có số nhận dạng toàn cầu (Global
identification) (ID) vì chúng có một số lượng lớn mào đầu và một
số lượng lớn các node cảm biến.
Chính vì các lý do trên, mà cấu trúc của mạng mới đòi
hỏi phải: в Kết hợp vấn đề năng lượng và khả năng


8

định tuyến
в Tích hợp dữ liệu và giao thức mạng.
в 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ân cận.
1.2.1.

Cấu trúc toàn mạng cảm biến không dây

Các node cảm biến được phân bố trong một trường sensor như hình 1.1.
Mỗi node cảm biến có khả năng thu thập dữ liệu và định tuyến lại đến các sink.
Dữ liệu được định tuyến lại đến các sink bởi một cấu trúc đa điểm như
hình dưới. các sink có thể giao tiếp với các node quản lý nhiệm vụ (task manager
node) qua mạng Internet hoặc vệ tinh.
Sink là một thực thể, tại đó thông tin được yêu cầu. Sink có thể là thực thể
bên trong mạng (là một node cảm biến) hoặc ngoài mạng. Thực thể ngoài mạng
có thể là một thiết bị thực sự ví dụ như máy tính xách tay mà tương tác với mạng
cảm biến, hoặc cũng đơn thuần chỉ là một gateway mà nối với mạng khác lớn
hơn như Internet nơi mà các yêu cầu thực sự đối với các thông tin lấy từ một vài

node cảm biến trong mạng.

Hình 1.1: Cấu trúc mạng cảm biến[1]
Đặc điểm của mạng cảm biến là bao gồm một số lượng lớn các node cảm
biến, các node cảm biến có giới hạn và ràng buộc về tài nguyên đặc biệt là năng


9

lượng rất khắc khe. Một số đặc điểm nổi bật trong mạng cảm biến như sau:
Khả năng chịu lỗi: một số các node cảm biến có thể không hoạt động nữa
do thiếu năng lượng, do những hư hỏng vật lý hoặc do ảnh hưởng của môi
trường. Khả năng chịu lỗi thể hiện ở việc mạng vẫn có thể hoạt động bình
thường, duy trì những chức năng của nó ngay cả khi một số node mạng không
hoạt động.
Khả năng mở rộng: số lượng các node cảm biến là tùy thuộc vào từng ứng
dụng cụ thể, có khi lên đến hàng triệu. Do đó cấu trúc mạng mới phải có khả
năng mở rộng để có thể làm việc với số lượng lớn các node này.
Giá thành sản xuất: vì các mạng cảm biến bao gồm một cố lượng lớn các
node cảm biến nên chi phí của mỗi node rất quan trọng trong việc điều chỉnh chi
phí của toàn mạng. Nếu chi phí của toàn mạng đắt hơn chi phí triển khai sensor
theo kiểu truyền thống, như vậy mạng không có giá thành hợp lý. Do vậy, chi
phí của mỗi node cảm biến phải giữ ở mức thấp.
Dễ triển khai: là một ưu điểm quan trọng của mạng cảm biến không dây.
Người sử dụng không cần phải hiểu về mạng cũng như cơ chế truyền thông khi
làm việc với WSN. Bởi để triển khai hệ thống thành công, WSN cần phải tự cấu
hình. Thêm vào đó, sự truyền thông giữa hai node có thể bị ảnh hưởng trong suốt
thời gian sống do sự thay đổi vị trí hay các đối tượng lớn. Lúc này, mạng cần có
khả năng tự cấu hình lại để khắc phục những điều này.
Ràng buộc về phần cứng: vì trong mạng có một số lượng lớn các node cảm

biến nên chúng phải có sự ràng buộc với nhau về phần cứng: kích thước phải
nhỏ, tiêu thụ ít năng lượng, có khả năng hoạt động ở những nơi có mật độ cao,
hoạt động không cần có người kiểm soát, thích nghi với môi trường...
Môi trường hoạt động: các node cảm biến được thiết lập dày đặc, rất gần
hoặc trực tiếp bên trong các hiện tượng để quan sát. Vì thế, chúng thường làm
việc mà không cần giám sát ở những vùng xa xôi. Chúng có thể làm việc ở bên
trong các máy móc lớn, những điều kiện môi trường khắc nhiệt, ô nhiễm.


1
0

Phương tiện truyền dẫn: ở những mạng cảm biến multihop, các node trong
mạng giao tiếp với nhau bằng sóng vô tuyến, hồng ngoại hoặc những phương
tiện quang học. Các phương tiện truyền dẫn phải được chọn phù hợp trên toàn
thế giới để thiết lập sự hoạt động thống nhất của những mạng này.
Cấu hình mạng cảm biến: trong mạng cảm biến, hàng trăm đến hàng nghìn
node được triển khai trên trường cảm biến. Chúng được triển khai trong vòng
hàng chục feet của mỗi node. Mật độ các node lên tới 20 node/m3. Do số lượng
các node cảm biến rất lớn nên cần phải thiết lập một cấu hình ổn định.
Sự tiêu thụ năng lượng: các node cảm biến không dây, có thể coi là một
thiết bị vi điện tử chỉ có thể được trang bị nguồn năng lượng giới hạn (<0.5 Ah,
1.2 V). Trong một số ứng dụng, việc bổ sung nguồn năng lượng không thể thực
hiện được. Vì thế khoảng thời gian sống của các node cảm biến phụ thuộc mạng
vào thời gian sống của pin. Ở mạng cảm biến multihop ad hoc, mỗi một node
đóng vai trò kép vừa khởi tạo vừa định tuyến dữ liệu. Sự trục trặc của một vài
node cảm biến có thể gây ra những thay đổi đáng kể trong cấu hình và yêu cầu
định tuyến tại các gói và tổ chức lại mạng. Vì vậy, việc duy trì và quản lý nguồn
năng lượng đóng một vai trò quan trọng.
Bảo mật: các thông tin về nhiệt độ đối với ứng dụng giám sát môi trường

dường như vô hại nhưng việc giữ bí mật thông tin và rất quan trọng. Các hoạt
động của một tòa nhà có thể thu thập được dễ dàng bằng cách lấy thông tin về
nhiệt độ và ánh sáng của tòa nhà đó. Những thông tin này có thể được sử dụng
để sắp xếp một kế hoạch tấn công vào một công ty. Do đó, WSN cần có khả
năng giữ bí mật các thông tin thu thập được. Trong các ứng dụng an ninh, dữ
bảo mật trở nên rất quan trọng. không chỉ duy trì tính bí mật, nó còn phải có khả
năng xác thực dữ liệu truyền. Sự kết hợp tính bí mật và xác thực là yêu cầu cần
thiết của cả ba dạng ứng dụng. Việc sử dụng mã hóa và giải mã sẽ làm tăng chi
phí về năng lượng và băng thông. Dữ liệu mã hóa và giải mã cần được truyền
cùng với mỗi gói tin. Điều đó ảnh hưởng tới hiệu suất ứng dụng do giảm số


1
1

lượng dữ liệu lấy từ mạng và thời gian sống mong đợi.
1.2.2.

Cấu trúc của node cảm biến

Mỗi node cảm biến được cấu thành bởi 4 thành phần cơ bản (xem hình
1.2):


Đơn vị cảm biến (sensing unit)



Đơn vị xử lý (processing unit)




Đơn vị truyền dẫn (transceiver unit)



Bộ nguồn (power unit)
Ngoài ra có thể có thêm những thành phần khác tùy thuộc vào từng ứng

dụng như là hệ thống định vị (location finding system), bộ phát nguồn (power
generator) và bộ phận di động (mobilizer).
Các đơn vị cảm biến (sensing units) bao gồm cảm biến và bộ chuyển đổi
tương tự - số. Dựa trên những hiện tượng quan sát được, tín hiệu tương tự tạo ra
bởi sensor được chuyển sang tín hiệu số bằng bộ ADC, sau đó được đưa vào bộ
xử lý.

Hình 1.2: Cấu tạo node cảm biến
Đơn vị xử lý thượng được kết hợp với bộ lưu trữ nhỏ (storage units), quyết
định các thủ tục làm cho các node kết hợp với nhau để thực hiện các nhiệm vụ
định sẵn. Phần thu phát vô tuyến kết nối các node vào mạng.
Một trong các phần quan trọng nhất của một node mạng cảm biến là bộ
nguồn. Các bộ nguồn thường được hỗ trợ bởi các bộ phận lọc như là tế bào năng


1
2

lượng mặt trời. Ngoài ra cũng có những thành phần phụ khác phụ thuộc vào từng
ứng dụng. Hầu hết các kỹ thuật định tuyến và các nhiệm vụ cảm biến của mạng
đều yêu cầu có độ chính xác cao về vị trí. Các bộ phận di động đôi lúc cần phải

dịch chuyển các node cảm biến khi cần thiết để thực hiện các nhiệm vụ đã ấn
định. Tất cả những thành phần này cần phải phù hợp với kích cỡ từng module.
1.2.3.

Kiến trúc giao thức mạng

Kiến trúc giao thức áp dụng cho mạng cảm biến được trình bày trong hình
1.3. Kiến trúc này bao gồm các lớp và các mặt phẳng quản lý. Các mặt phẳng
quản lý này làm cho các node có thể làm việc cùng nhau theo cách có hiệu quả
nhất, định tuyến dữ liệu trong mạng cảm biến di động và chia sẻ tài nguyên giữa
các node cảm biến.

Hình 1.3: Kiến trúc giao thức mạng cảm biến
Mặt phẳng quản lý công suất: quản lý cách cảm biến sử dụng nguồn năng
lượng của nó.
Mặt phẳng quản lý di động: có nhiệm vụ phát hiện và đăng lý sự chuyển
động của các node. Các node giữ việc dõi xem ai là node hàng xóm của chúng.
Mặt phẳng quản lý: cân bằng và sắp xếp nhiệm vụ cảm biến giữa các node
trong một vùng quan tâm. Không phải tất cả các node cảm biến đều thực hiện
nhiệm vụ cảm nhận ở cùng một thời điểm.


1
3

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ã hóa tín hiệu.
Lớp liên kết dữ liệu: lớp này có nhiệm vụ ghép các luồng dữ liệu, phát
hiện các khung dữ liệu, cách truy nhập đường truyền và điều khiển lỗi.



Lớp mạng: lớp mạng của cảm biến được thiết kế tuân theo nguyên tắc sau:
Hiệu quả năng lượng luôn luôn được coi là vấn đề quan trọng.



Mạng cảm biến chủ yếu tập trung dữ liệu.



Tích hợp dữ liệu chỉ được sử dụng khi nó không cản trở sự cộng tác có
hiệu quả của các node cảm biến.
Lớp truyền tải: chỉ cần thiết khi hệ thống có kế hoạch được truy cập thông

qua mạng Internet hoặc các mạng bên ngoài khác.
Lớp ứng dụng: tùy 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.
1.2.4.
1.2.4.1.

Hai cấu trúc đặc trưng của mạng cảm biến
Cấu trúc phẳng

Trong cấu trúc phẳng (flat architectute) (hình 1.4): tất cả các node đều
ngang hàng và đồng nhất trong hình dạng và chức năng. Các node giao tiếp với
sink qua multihop sử dụng các node ngang hàng làm bộ tiếp sóng.

Hình 1.4: Cấu trúc phẳng của mạng cảm biến [2]
Với phạm vi truyền cố định, các node gần sink hơn sẽ đảm bảo vai trò của
bộ tiếp sóng đối với một số lượng lớn nguồn. Giả thiết rằng tất cả các nguồn đều



1
4

dùng cùng một tần số để truyền dữ liệu, vì vậy có thể chia sẻ thời gian. Tuy
nhiên cách này chỉ có hiệu quả với điều kiện là có nguồn chia sẻ đơn lẻ, ví dụ
như thời gian, tần số.
I.2.4.2.

Cấu trúc tầng

Trong Cấu trúc tầng (tiered architecture) (hình 1.5): các cụm được tạo ra
giúp các tài nguyên trong cùng một cụm gửi dữ liệu single hop hay multihop
(tùy thuộc vào kích cỡ của cụm) đến một node định sẵn, thường gọi là node chủ
(cluster head). Trong cấu trúc này các node tạo thành một hệ thống cấp bậc mà ở
đó mỗi node ở một mức xác định thực hiện các nhiệm vụ đã định sẵn.

Hình 1.5: Cấu trúc tầng của mạng cảm biến [2]

Hình 1.6: Cấu trúc mạng phân cấp chức năng theo lớp [2]
Trong cấu trúc tầng thì chức năng cảm nhận, tính toán và phân phối dữ liệu


1
5

không đồng đều giữa các node. Những chức năng này có thể phân theo cấp, cấp
thấp nhất thực hiện nhiệm vụ cảm nhận, cấp giữa thực hiện tính toán, và cấp trên
cùng thực hiện phân phối dữ liệu (xem hình 1.6)

Mạng cảm biến xây dựng theo cấu trúc tầng hoạt động hiệu quả hơn so với
cấu trúc phẳng, vì một số lý do sau:
-

Cấu trúc tầng có thể giảm chi phí cho mạng cảm biến bằng việc định vị
các tài nguyên ở vị trí mà chúng hoạt động hiệu quả nhất. Rõ ràng là nếu
triển khai các phần cứng thống nhất. Mỗi node chỉ cần một lượng tài
nguyên tối thiểu để thực hiện tất cả các nhiệm vụ.

-

Mạng cấu trúc tầng có tuổi thọ cao hơn cấu trúc mạng phẳng. Khi cần
phải tính toán nhiều thì một bộ xử lý nhanh sẽ hiệu quả hơn, phụ thuộc
vào thời gian yêu cầu thực hiện tính toán. Tuy nhiên, với các nhiệm vụ
cảm nhận cần hoạt động trong khoảng thới gian dài, các node tiêu thụ ít
năng lượng phù hợp với yêu cầu xử lý tối thiểu sẽ hoạt động hiệu quả
hơn. Do vậy, với cấu trúc tầng mà các chức năng mạng phân chia giữa
các phần cứng đã được thiết kế riêng cho từng chức năng sẽ làm tăng tuổi
thọ của mạng.

-

về độ tin cậy: mỗi mạng cảm biến phải phù hợp với số lượng các node
yêu cầu thỏa mãn điều kiện về thời gian sống và băng thông. Với mạng
cấu trúc phẳng, khi kích cỡ mạng tăng lên thì thông lượng của mỗi node
sẽ giảm về 0. Việc nghiên cứu các mạng cấu trúc tầng đem lại nhiều triển
vọng để khắc phục vấn đề này. Một cách tiếp cận là dùng một kênh đơn
lẻ trong cấu trúc phân cấp, trong đó các node ở cấp thấp hơn tạo thành
một cụm xung quanh trạm gốc. Trong trường hợp này, dung lượng của
mỗi lớp trong cấu trúc tầng và dung lượng của mỗi cụm trong mỗi lớp

xác định là độc lập với nhau.

1.3. Ứng dụng mạng cảm biến không dây
Mạng cảm biến được ứng dụng trong nhiều lĩnh vực khác nhau, và thường


1
6

phát huy hiệu quả cao trong các điều kiện:


Môi trường khắc nghiệt, địa hình khó khăn (ví dụ: khu vực rừng núi,
vùng nhiễm phóng xạ...).



Cần giám sát các giá trị biến đổi theo thời gian (nhiệt độ, độ ẩm trong
môi trường.).



Khu vực rộng lớn (ví dụ: rừng, các tòa nhà..).

1.4.

Hệ điều hành Contiki

Hệ điều hành Contiki được lập trình bằng ngôn ngữ C, hoạt động dựa trên
cơ chế event - driven và có những đặc điểm phù hợp với các hệ thống nhúng và

mạng cảm biến không dây:


Contiki được chia thành nhiều modul hoạt động độc lập. Nhờ đó các ứng
dụng có thể sử dụng các modul một cách linh động và chỉ load những
modul cần thiết.



Cơ chế hoạt động điều khiển sự kiện làm giảm năng lượng tiêu hao và
hạn chế dung lượng bộ nhớ cần sử dụng.



Có thể sử dụng IP trong mạng cảm biến thông qua ulP stack được xây
dựng dựa trên nền TCP/IP.



Có những modul cho phép ước lượng và quản lý năng lượng một cách
hiệu quả.



Các giao thức tương tác giữa các lớp và các node trong mạng dễ dàng
hơn.



Sử dụng RIME stack phục vụ các giao thức dành cho mạng năng lượng

thấp một cách hiệu quả.
Bên cạnh đó, Contiki còn cung cấp những công cụ hỗ trợ mô phỏng với

giao diện đơn giản, dễ sử dụng và hỗ trợ tốt những thiết bị trong thực tế, phục vụ
những mục đích nghiên cứu, mô phỏng và triển khai những giao thức mới.
1.4.1.

Cơ chế điều khiển sự kiện trong Contiki

Contiki hoạt động dựa trên cơ chế điều khiển sự kiện. Các Process hay các
trình xử lý được gọi mỗi khi có một sự kiện xảy ra như các sự kiện về cảm biến,


1
7

trình khởi động, trình kết thúc,... Quá trình gọi các Process hoàn toàn không bị
ngăn chặn hay cản trở trong các chương trình. Process hoạt động dựa trên các
Protothread, tạo ra các luồng điều khiển liên tiếp theo cơ chế event -driven.
Protothread là sự kết hợp giữa hai cơ chế điều khiển: “Multithreads” - điều khiển
đa luồng và “event - driven” - điều khiển sự kiện.
Cơ chế Multithread có khả năng thực hiện đồng thời một chuỗi các thread.
Tuy nhiên, các thread đòi hỏi phải được thực hiện trên những ngăn nhớ riêng,
tạo ra chuỗi các luồng điều khiển tuần tự. Multithreads được xây dựng như một
thư viện, cung cấp cho các Process khi cần thiết.
Trong khi đó, cơ chế event - driven chỉ hoạt động trên một ngăn nhớ và thực hiện
các luồng điều khiển tùy theo các sự kiện đến. Do đó event - driven đòi hỏi bộ
nhớ ít hơn và cung cấp cơ chế điều khiển linh hoạt theo các sự kiện đến (xem
hình 1.7 và 1.8).


Hình 1.7: Phương thức sử dụng bộ nhớ của Multithreads và Events [10]


1
8

Hình 1.8: Các luồng điều khiển trong Threads và events [10]
Nhờ sự kết hợp các đặc tính của hai cơ chế Multithread và event - driven,
Protothread có khả năng cung cấp cơ chế điều khiển kiểu event - driven, cung
cấp các luồng điều khiển liên tục, đồng thời sử dụng dung lượng bộ nhớ nhỏ với
một ngăn nhớ duy nhất.
Trong API của Contiki bao gồm 4 loại Protothreads cơ bản:


1
9



PT_INIT (pt): khởi tạo một Protothread.



PT_BEGIN (pt): bắt đầu một Protothread.



PT_WAIT_UNTIL (pt, điều kiện): điều khiển đợi một sự kiện.




PT_END (pt): kết thúc một Protothread.
Hình 1.9 là một ví dụ về Protothreads
int a_protothread(struct pt
*pt) { PT_BEGIN(pt) ;

/* ... */
PT_WAIT_UNTIL(pt, conditionl) ; ”
oo /* ... */
if(something) {

/* */
PT_WAIT_UNTIL(pt, condition2);

o oo o

/* ... */
}
PT_END (pt) ;

Hình 1.9: Ví dụ Protothreads [10]
1.4.2.

Kiến trúc giao thức mạng trong Contiki

Contiki cung cấp các ứng dụng trên nền IP gồm cả IPv4 và IPv6 thông qua
2 stack giao tiếp: ulP và Rime. Các ứng dụng có thể hoạt động trên một trong hai
giao thức ulP hoặc Rime, đồng thời trên cả hai giao thức hoặc có thể hoạt động
không dựa trên giao thức nào. Bên cạnh đó, các ứng dụng ulP có thể hoạt động
dựa trên Rime và ngược lại, các ứng dụng trên nền Rime cũng có thể hoạt động

dựa trên nền ulP (hình 1.10).


2
0

Hình 1.10: Kiến trúc giao thức mạng trong Contiki
Sơ đồ hoạt động của các ứng dụng trong Contiki được chỉ ra trong hình 1.11

Hình 1.11: Sơ đồ
hoạt động các ứng
dụng trong
Contiki.

1.4.2.1. uIP
STACK


2
1

Ngày nay, cùng với sự thành công của Internet, giao thức TCP/IP đã trở
thành tiêu chuẩn toàn cầu trong truyền thông. TCP/IP là giao thức cơ bản được
sử dụng cho những mục đích truyền tải các trang Web, gửi - nhận email, gửi file
và những mạng Peer - to - peer thông qua mạng Internet. Đối với các hệ thống
nhúng, nếu sử dụngđược TCP/IP sẽ có khả năng kết nối những hệ thống trực tiếp
đến một mạng nội bộ, hoặc thậm chí là một mạng toàn cầu. Những thiết bị nhúng
có khả năng đáp ứng được đầy đủ những đặc tính của TCP/IP sẽ là những thiết bị
có tính ưu việt, có khả năng giao tiếp một cách đầy đủ với tất cả các thiết bị khác
trong mạng. Tuy nhiên, sự triển khai giao thức TCP/IP truyền thống đòi hỏi quá

nhiều tài nguyên gồm cả dung lượng code và bộ nhớ sử dụng, không thể được
đáp ứng trong các hệ thống nhúng 8 hoặc 16 bit.
Xuất phát từ ý tưởng đó, ulP stack (hình 1.12) [11] được thiết kế với mục
tiêu tối ưu hóa các đặc tính cần thiết cho một stack TCP/IP đầy đủ. ulP chỉ có thể
hoạt động với một giao diện mạng duy nhất và bao gồm các giao thức: IP,
ICMP, UDP, TCP. uIP được lập trình bằng ngôn ngữ C bởi Adam Dunkels
- một thành viên trong tổ chức nghiên cứu và phát triển Contiki.


2
2

Hình 1.12: uIP STACK
ulP được thiết kế tương thích với các RFC với giả thiết các thiết bị nhúng
được sử dụng sẽ hoạt động ở lớp mạng đầu tiên và được thiết kế nhằm đáp ứng
nhiều ứng dụng khác nhau. Các đặc tính của ulP:


Tài liệu và chú thích code đầy đủ.



Dung lượng code rất nhỏ, phù hợp các thiết bị nhúng.




Sử dụng dung lượng Ram thấp, có thể cấu hình tại thời
Hỗ trợ các giao thức ARP, SLIP, IP, UDP, ICMP (ping) và TCP.




Bao gồm nhiều ví dụ về các ứng dụng như web server, web client, e mail sender (SMTP client), Telnet server, DNS hostname resolver...



Hỗ trợ đồng thời tối đa các kết nối TCP tích cực. Số kết nối tối đa



được cấu hình tại thời điểm biên dịch.
Hỗ trợ tối đa các kết nối TCP thụ động (Server).



Hoàn toàn miễn phí cả trong thương mại và phi thương mại.



Tương thích với các RFC về triển khai giao thức TCP/IP, bao gồm
điều khiển luồng, tái kết hợp mảnh và ước lượng thời gian truyền lại
gói.

điểm dịch.


2
3

I.4.2.2.


RIME STACK

RIME stack (hình 1.13) được xây dựng nhằm cung cấp cho mạng cảm
biến năng lượng thấp, được thiết kế với dung lượng nhỏ, các module không
quá phức tạp.

Hình 1.13: RIME STACK
Đặc điểm của RIME:


Phân chia thành nhiều module khá đơn giản với kích thước nhỏ
(kích thước code từ 114 đến 598 byte) (hình 1.14).



Xây dựng nhiều module giao tiếp đơn giản:

o broadcast, unicast single
hop. o Định tuyến
multihop: mesh, collect.


2
4

Hình 1.14: Sơ đồ module trong RIME


Các chức năng phức tạp được thực hiện qua các phân lớpđơn giản.




Sử dụng kênh tần số cố định cho từng kiểu giao tiếp.

Ví dụ: unicast ^ unicast trên kênh 155,...

Packet
buffer



Sử dụng các hàm callback để thực hiện các hàm xử lý khi nhận được



gói tin, bộ định thời hết hạn, kết nối lỗi,...
Kết nối phải được khởi tạo trước khi sử dụng.



Sử dụng một bộ đệm gói cho tất cả các gói đến và gửiđi (hình

application

MAC
’Sr-/

Utr
radio


: truyền và truv cập dữ liệu

- L u _ , .........................................
ũ V/ “
: gọi các lỉàni cliức nàng.

1.15).


2
5

Hình 1.15: Bộ đệm và Thao tác gói trong RIME


×