You are on page 1of 68

TÀI LIỆU

MẠNG CẢM BIẾN KHÔNG DÂY

HÀ NỘI - 2022
1
MỤC LỤC

Chương 1. Giới thiệu về Mạng cảm biến không dây 7


1.1. Giới thiệu 7
1.2. Kiến trúc nút cảm biến và Mạng cảm biến không dây 8
1.3. Các thách thức và ứng dụng của Mạng cảm biến không dây 10
1.3.1 Ứng dụng 10
1.3.2. Thách thức 11
Chương 2. Các giao thức tại lớp MAC 12
2.1.Tổng quan về giao thức MAC 12
2.2 Các giao thức MAC tiết kiệm năng lượng 15
2.3. Các giao thức MAC dựa trên tranh chấp 15
2.4. Các giao thức MAC theo lịch 17
2.5. Giao thức MAC trong IEEE 802.15.4 19
Chương 3: Định tuyến trong Mạng cảm biến không dây 24
3.1. Tổng quan về giao thức định tuyến 24
3.2 Phân loại các giao thức định tuyến trong Mạng cảm biến không dây 25
3.2.1 Các giao thức định tuyến phẳng 26
3.2.2 Giao thức định tuyến phân cấp 28
3.2.3 Giao thức định tuyến dựa trên vị trí 32
3.3 Giao thức định tuyến AODV 35
3.4 Giao thức định tuyến Cluster-Tree 37
3.4.1 Mạng đơn cụm 37
3.4.2 Mạng đa cụm 38
Chương 4 40
Thiết kế phần mềm nhúng cho Mạng cảm biến không dây 40
4.1. Giới thiệu 40
4.2. Thiết kế phần mềm nhúng cho Mạng cảm biến không dây 41
4.2.1. Phát triển ứng dụng Jennic ZigBee 42
4.2.2. Phát triển ứng dụng Contiki 6LowPAN 44
2
4.3. Phát triển trình điều khiển cảm biến 48
4.3.1. Quy trình chung của trình điều khiển cảm biến 50
4.3.2. Trình điều khiển cảm biến cho cảm biến dòng tương tự 52
4.3.3. Trình điều khiển cảm biến cho cảm biến nhiệt độ kỹ thuật số 53
4.4. Triển khai Mạng cảm biến không dây với IEEE 802.15.4 59
4.5. Kết nối Mạng cảm biến không dây với Mạng công cộng bên ngoài 65
TÀI LIỆU THAM KHẢO 68

3
DANH MỤC HÌNH ẢNH

Hình 1. 1 Những tiêu chuẩn truyền thông không dây 8


Hình 1. 2 Cấu trúc Mạng cảm biến không dây 9
Hình 1. 3 Các thành phần nút cảm biến 10

Hình 2. 1 Mô hình tham chiếu OSI 13


Hình 2. 2 TDMA trong Mạng cảm biến không dây 18
Hình 2. 3 Các loại thiết bị trong mạng Zigbee 20
Hình 2. 4 Cấu trúc super frame 23
Hình 2. 5 Bảng tham chiếu khoảng thời gian Beacon (Beacon interval). 23

Hình 3. 1 Đường liên kết giữa nút cảm biến đến nút sink 25
Hình 3. 2 Hoạt động của giao thức Flooding. 26
Hình 3. 3 Sự cố trong giao thức Flooding. 27
Hình 3. 4 Hoạt động của giao thức SPIN. 28
Hình 3. 5 Nút Cluster Head kết nối với các nút lân cận 30
Hình 3. 6 Phân cấp mạng trong TEEN. 32
Hình 3. 7 Mạng lưới ảo trong GAF. 33
Hình 3. 8 Hai giai đoạn trong GEAR 34
Hình 3. 9 Quá trình truyền RREQ và RREP trong AODV 35
Hình 3. 10 Bản tin RREQ 36
Hình 3. 11 Bản tin RREP 36
Hình 3. 12 Bản tin RERR 37
Hình 3. 13 Thành lập liên kết giữ cụm trưởng và nút. 37
Hình 3. 14 Mạng đa cụm. 39
Hình 3. 15 Cluster Head liên kết với DD bằng nút biên 39

Hình 4. 1 Quy trình thiết kế hệ thống nhúng. 41


Hình 4. 2 Kiến trúc phần mềm. 42
Hình 4. 3 Cấu trúc phần mềm nhúng ZigBee chung. 43
Hình 4. 4 Bối cảnh thực thi của Contiki. 45
Hình 4. 5 Cấu trúc phần mềm nhúng Contiki chung 47
Hình 4. 6 Các thành phần cảm biến 49
Hình 4. 7 Lưu đồ chung của trình điều khiển cảm biến. 50
Hình 4. 8 Kết nối giữa cảm biến DS18B20 và bộ vi điều khiển bên ngoài 54
Hình 4. 9 Sơ đồ khối DS18B20. 54
Hình 4. 10 Biểu đồ thời gian khe thời gian Đọc / Ghi. 55

4
Hình 4. 11 Quy trình khởi động Mạng cảm biến không dây 59
Hình 4. 12 Tổng quan về giao diện giữa lớp NWK, lớp MAC và lớp PHY. 60
Hình 4. 13 Kết nối giữa Mạng cảm biến không dây và mạng công cộng. 66
Hình 4. 14 Định dạng bản tin. 66

5
DANH MỤC CÁC CHỮ VIẾT TẮT

TT Từ viết tắt Ý nghĩa


01 ACK Acknowledge
02 AODV Ad hoc On Demand Distance Vector
03 APTEEN Adaptive Threshold Sensitive Energy Efficient
Sensor Network
04 CTS Clear To Send
05 GAF Geographic Adaptive Fidelity
06 GEAR Geographical and Energy-Aware Routing Protocol
07 GPS Global Positioning System
08 GSM Global System for Mobile Communications
09 LEACH Low Energy Adaptive Clustering Hierarchy
10 MAC Media Access Control
11 OSI Open Systems Interconnection
12 PAMAS Power Aware Multi-Access Protocol with Signaling
13 QoS Quality of service
14 RTS Request To Send
15 SPIN Sensor Protocol for Information via Negotiation
16 STEM Sparse Topology and Energy Management
17 TEEN Threshold Sensitive Energy Efficient Sensor
Network
18 WSN Wireless Sensor Network

6
Chương 1. Giới thiệu về Mạng cảm biến không dây

Chương 1 trình bày tổng quan về Mạng cảm biến không dây, kiến trúc nút cảm biến
trong mạng đồng thời làm rõ các ứng dụng cũng như thách thức trong quá trình phát triển
Mạng cảm biến không dây.
1.1. Giới thiệu
Mạng máy tính đã trở thành một phần thiết yếu của cuộc sống chúng ta hiện nay.
Mạng máy tính cung cấp thông tin và các dịch vụ có sẵn cho mọi người trên mạng, không
phụ thuộc vào vị trí địa lý hoặc người sử dụng. Mạng máy tính được chia thành nhiều loại
như mạng cá nhân (PAN), mạng địa phương (LAN), mạng đô thị (MAN) và mạng diện
rộng (WAN).
● PAN: là một mạng máy tính tổ chức xung quanh một cá nhân.
● LAN: được sử dụng để máy tính kết nối trong một khu vực nhỏ chẳng hạn
như trong một tòa nhà hoặc một số các tòa nhà.
● MAN: là mạng kết nối các máy tính bên trong một thành phố hoặc thị trấn.
● WAN: kết nối nhiều số lượng máy tính trên một diện tích lớn chẳng hạn như
một quốc gia hay một lục địa.
Thông thường, các giao tiếp mạng liên kết là có dây, nghĩa là chúng ta sử dụng các
loại cáp vật lý kết nối các thiết bị mạng khác nhau. Mạng máy tính có dây cho phép truyền
dữ liệu đáng tin cậy, ổn định, nhưng đòi hỏi phải chi phí lắp đặt cao, trong nhiều trường
hợp thi công bất tiện. Công nghệ truyền thông không dây cung cấp các giải pháp rõ ràng
để vượt qua những yếu điểm của mạng có dây về chi phí và thi công, mặc dù có những
thách thức khác như tiếp cận, độ tin cậy…
Mạng không dây kết nối bất kỳ thiết bị, máy tính sử dụng sóng radio, hồng ngoại,
hoặc bất kỳ phương tiện truyền thông không dây khác. Mạng không dây có thể bao gồm
một vùng rộng lớn còn gọi là một mạng WAN không dây, hoặc có thể bao gồm một khu
vực nhỏ hoặc một tòa nhà, gọi là một mạng LAN không dây (WLAN). Ngoài ra, mạng
không dây có thể cung cấp kết nối các thiết bị công nghệ thông tin trong phạm vi của một
cá nhân, Wireless PAN (WPAN). Mạng không dây tốc độ thấp Wireless PAN (LR-WPAN)
là một mạng lưới được thiết kế cho chi phí, năng lượng thấp, truyền thông không dây
khoảng cách ngắn.
Có những tiêu chuẩn truyền thông không dây khác nhau bao gồm: ZigBee, Wi-Fi,
WiMax, GSM (Global System for Mobile Communications).

7
Tiêu chuẩn Bluetooth chủ yếu là phát triển để thay thế các loại cáp kết nối máy tính.
Các tiêu chuẩn ZigBee là phát triển cho các Mạng cảm biến không dây.

Hình 1. 1 Những tiêu chuẩn truyền thông không dây


1.2. Kiến trúc nút cảm biến và Mạng cảm biến không dây
Mạng cảm biến không dây (Wireless Sensor Network) bao gồm một tập hợp các
thiết bị cảm biến sử dụng các liên kết không dây (vô tuyến, hồng ngoại hoặc quang học)
để phối hợp thực hiện nhiệm vụ thu thập thông tin dữ liệu phân tán với quy mô lớn trong
bất kỳ điều kiện và ở bất kỳ vùng địa lý nào. Mạng cảm biến không dây có thể liên kết trực
tiếp với nút quản lý giám sát trực tiếp hay gián tiếp thông qua một điểm thu phát (Sink) và
môi trường mạng công cộng như Internet hay vệ tinh. Lợi thế chủ yếu của chúng là khả
năng xử lý tốc độ cao, triển khai hầu như trong bất kì loại hình địa lý nào kể cả các môi
trường nguy hiểm không thể sử dụng mạng cảm biến có dây truyền thống (hình 1.2)

8
Hình 1. 2 Cấu trúc Mạng cảm biến không dây
Một Mạng cảm biến không dây bao gồm số lượng lớn các nút được triển khai dày
đặc bên trong hoặc ở rất gần đối tượng cần thăm dò, thu thập thông tin dữ liệu. Vị trí các
cảm biến không cần định trước vì vậy nó cho phép triển khai ngẫu nhiên trong các vùng
không thể tiếp cận hoặc các khu vực nguy hiểm. Khả năng tự tổ chức mạng và cộng tác
làm việc của các cảm biến không dây là những đặc trưng rất cơ bản của mạng này. Với số
lượng lớn các cảm biến không dây được triển khai gần nhau thì truyền thông đa liên kết
được lựa chọn để công suất tiêu thụ là nhỏ nhất (so với truyền thông đơn liên kết) và mang
lại hiệu quả truyền tín hiệu tốt hơn so với truyền khoảng cách xa.
Các nút cảm biến được triển khai trong một trường cảm biến (sensor field). Mỗi nút
cảm biến được phát tán trong mạng có khả năng thu thập thông số liệu, định tuyến số liệu
về bộ thu nhận (Sink) để chuyển tới người dùng (User) và định tuyến các bản tin mang
theo yêu cầu từ nút Sink đến các nút cảm biến. Số liệu được định tuyến về phía bộ thu nhận
(Sink) theo cấu trúc đa liên kết không có cơ sở hạ tầng nền tảng (Multihop Infrastructureless
Architecture), tức là không có các trạm thu phát gốc hay các trung tâm điều khiển. Bộ thu
nhận có thể liên lạc trực tiếp với trạm điều hành (Task Manager Nút) của người dùng hoặc
gián tiếp thông qua Internet hay vệ tinh (Satellite).
Mỗi nút cảm biến bao gồm bốn thành phần cơ bản là: bộ cảm biến, bộ xử lý, bộ thu
phát không dây và nguồn điện. Tuỳ theo ứng dụng cụ thể, nút cảm biến còn có thể có các
thành phần bổ sung như hệ thống tìm vị trí, bộ sinh năng lượng và thiết bị di động. Bộ cảm
biến thường gồm hai đơn vị thành phần là đầu đo cảm biến (Sensor) và bộ chuyển đổi
tương tự/số (ADC). Các tín hiệu tương tự được thu nhận từ đầu đo, sau đó được chuyển
sang tín hiệu số bằng bộ chuyển đổi ADC, rồi mới được đưa tới bộ xử lý. Bộ xử lý, thường
kết hợp với một bộ nhớ nhỏ, phân tích thông tin cảm biến và quản lý các thủ tục cộng tác
với các nút khác để phối hợp thực hiện nhiệm vụ. Bộ thu phát đảm bảo thông tin giữa nút
cảm biến và mạng bằng kết nối không dây, có thể là vô tuyến, hồng ngoại hoặc bằng tín

9
hiệu quang. Một thành phần quan trọng của nút cảm biến là bộ nguồn. Bộ nguồn, có thể là
pin hoặc ắcquy, cung cấp năng lượng cho nút cảm biến và không thay thế được nên nguồn
năng lượng của nút thường là giới hạn. Bộ nguồn có thể được hỗ trợ bởi các thiết bị sinh
điện, ví dụ như các tấm pin mặt trời nhỏ. Các thành phần trong một nút cảm biến được thể
hiện trên hình 1.3.

Hình 1. 3 Các thành phần nút cảm biến

Hầu hết các công nghệ định tuyến trong mạng cảm biến và các nhiệm vụ cảm biến
yêu cầu phải có sự nhận biết về vị trí với độ chính xác cao. Do đó, các nút cảm biến thường
phải có hệ thống tìm vị trí. Các thiết bị di động đôi khi cũng cần thiết để di chuyển các nút
cảm biến theo yêu cầu để đảm bảo các nhiệm vụ được phân công.
1.3. Các thách thức và ứng dụng của Mạng cảm biến không dây
1.3.1 Ứng dụng
Ứng dụng của Mạng cảm biến không dây có thể được phân thành hai loại: giám sát
từ xa và theo dõi vị trí đối tượng. Cả hai loại có thể được chia thành trong nhà và các ứng
dụng ngoài trời.

10
Hình 1. 4 Ứng dụng Mạng cảm biến không dây
Các ứng dụng theo dõi vị trí đối tượng cần lấy dữ liệu theo thời gian thực cập nhật
các kết quả theo dõi. Các ứng dụng giám sát từ xa thì đo các điều kiện môi trường cụ thể
theo định kỳ và gửi dữ liệu hoặc cảnh báo chủ yếu ở ba chế độ:
● Định kỳ vào một khoảng thời gian xác định trước.
● Theo kết quả của một sự kiện cụ thể, điều này thường xảy ra khi giá trị đo đạt đến
một ngưỡng xác định trước.
● Hồi đáp bản tin từ người dùng.
1.3.2. Thách thức
Một tính năng quan trọng của ứng dụng Mạng cảm biến không dây là khả năng dễ
dàng lắp đặt một số lượng lớn các nút cảm biến không dây. Tính năng này làm cho tất cả
việc thiết kế và thực hiện trở nên thử thách trong việc truyền thông tin liên lạc, cùng với
những thách thức khác tùy vào các ứng dụng cụ thể. Nhưng vấn đề chính là hiệu quả năng
lượng, nhiễu giao thoa, bảo mật, quản lý dữ liệu, và triển khai quy mô lớn. Việc thiết kế và
thực hiện Mạng cảm biến không dây phải đối phó với tất cả các vấn đề này.
Vấn đề tiết kiệm năng lượng có thể được giải quyết theo những cách khác nhau.
Một phương pháp là tối ưu hóa cả phần cứng và phần mềm nhúng, bao gồm các thuật toán
định tuyến nhằm giảm thiểu tiêu thụ năng lượng.
Nhiễu giao thoa gây ra bởi các hệ thống không dây khác làm việc trên cùng một tần
số tương tự và cùng tồn tại trong cùng một vùng lân cận có thể làm giảm đáng kể hiệu suất
của Mạng cảm biến không dây.
Rủi ro bảo mật là không thể tránh khỏi trong Mạng cảm biến không dây do bản chất
không dây của nó. Phải có cơ chế được thực hiện để bảo vệ dữ liệu từ bất kỳ cuộc tấn công
nào. Thông thường, dữ liệu truyền qua Mạng cảm biến không dây sẽ được mã hóa và dịch
vụ quản lý bảo mật sẽ được thực hiện.

11
Khi một lượng lớn dữ liệu được tạo ra theo thời gian, chi phí chuyển toàn bộ dữ liệu
cảm biến đó cho một nút Sink là tốn kém. Vậy nên nén dữ liệu và tập hợp các kỹ thuật hỗ
trợ trong việc giảm số lượng dữ liệu cần phải được thực hiện. Việc sử dụng chiến lược để
quản lý dữ liệu, truy vấn và phân tích là quan trọng đối với mạng cảm biến. Ví dụ: thay vì
gửi một lượng lớn dữ liệu thô đến trạm gốc, bộ nhớ một nút cảm biến được sử dụng như
một cơ sở dữ liệu phân tán mà khi được truy vấn vẫn có thể lấy được dữ liệu để gửi đi.
Một Mạng cảm biến không dây thường bao gồm một số lượng lớn các nút cảm biến.
Nút cảm biến có thể dễ dàng bao phủ một khu vực địa lý tương đối rộng. Đặc điểm này
làm cho người sử dụng không thể kiểm soát duy trì toàn bộ mạng. Một kiến trúc quản lý
toàn diện là vô cùng cần thiết để giám sát các mạng cảm biến, thông số mạng, cấu hình và
thực hiện cập nhật hệ thống. Vấn đề đặt ra ở đây là khả năng mở rộng mạng có thể làm suy
giảm hiệu năng hệ thống khi kích thước của mạng tăng.

Chương 2. Các giao thức tại lớp MAC

Thiết kế giao thức tại lớp MAC hiệu quả rất quan trọng đối với Mạng cảm biến
không dây nhằm đem lại thành công trong hoạt động cho mạng. Một thiết kế hiệu quả giao
thức tại lớp MAC cho Mạng cảm biến không dây phải đảm bảo hiệu quả sử dụng năng
lượng để kéo dài thời gian sống của mạng. Giao thức tại lớp MAC còn phải có khả năng
mở rộng phù hợp với kích thước mạng, mật độ nút và cấu hình mạng. Sự công bằng giữa
các nút, giảm độ trễ, lưu lượng cao và băng thông cũng là thuộc tính quan trọng trong thiết
kế giao thức tại lớp MAC.
Chương 2 cung cấp kiến thức tổng quan cũng như nguyên lý hoạt động và ứng dụng của
các giao thức tại lớp MAC.
2.1.Tổng quan về giao thức MAC
Truyền thông giữa các nút cảm biến không dây thường được thực hiện trên một
kênh truyền duy nhất. Đặc trưng của kênh này là chỉ có một nút có thể truyền thông tin tại
một thời điểm bất kỳ. Do đó, để chia sẻ truy cập của kênh thì phải thiết lập một giao thức
MAC giữa các nút cảm biến. Mục tiêu của giao thức MAC là để điều khiển quyền truy cập
của các thiết bị không dây trên kênh truyền. Các chức năng của giao thức MAC được cung
cấp bởi lớp DDL trong tầng liên kết dữ liệu. Lớp kiểm soát liên kết logic (LLC) trong tầng
liên kết dữ liệu cho phép hỗ trợ cho một số tùy chọn MAC, tùy thuộc vào cấu trúc liên kết
của mạng, các đặc tính của kênh truyền thông và chất lượng yêu cầu dịch vụ của ứng dụng
Hình 2.1 mô tả mô hình tham chiếu OSI và kiến trúc logic của DLL cho đa truy
nhập trong mạng không dây. Các lớp vật lý thường bao gồm đặc điểm thiết bị truyền dẫn
và cấu trúc mạng. Lớp vật lý định nghĩa các thủ tục, chức năng cần phải được thực hiện

12
bởi thiết bị vật lý và giao diện truyền thông để dữ liệu có thể truyền nhận được. Đồng thời
cung cấp các chức năng khác nhau để truyền một dòng dữ liệu trên các phương tiện truyền
thông không dây. Các chức năng chính được cung cấp bởi lớp vật lý thường bao gồm mã
hóa và giải mã các tín hiệu, đồng bộ hóa, việc truyền và nhận các bit.

Hình 2. 1 Mô hình tham chiếu OSI

Lớp con MAC nằm trên lớp vật lý. Nó hỗ trợ chức năng cơ bản sau:
● Đưa các dữ liệu vào một khung truyền bằng cách thêm header có chứa thông
tin địa chỉ và mã kiểm tra để phát hiện lỗi.
● Trích xuất địa chỉ và mã kiểm soát lỗi từ khung truyền để thực hiện kiểm tra
địa chỉ, phát hiện lỗi và sửa lỗi.
● Quản lý truy cập để chia sẻ đường truyền.
Một trong nhưng khó khăn trong việc thiết kế giao thức MAC là phân chia thời gian
truyền thông cho các nút. Để các nút có thể truy cập vào kênh truyền tại một thời điểm bất
kỳ thì các nút phải trao đổi một số thông tin. Tuy nhiên, chính việc trao đổi các thông tin
này cũng yêu cầu phải sử dụng đến kênh truyền đó. Một số vấn đề về hiệu suất của giao
thức MAC:
Độ trễ: là khoảng thời gian mà một gói dữ liệu trong lớp MAC được truyền thành
công. Độ trễ không chỉ phụ thuộc vào lưu lượng mạng, mà còn do những lựa chọn thiết kế
của giao thức MAC. Đối với các ứng dụng thời gian quan trọng, giao thức MAC bảo đảm
độ trễ cần thiết cho các ứng dụng để đáp ứng các yêu cầu về chất lượng (QoS). Có hai loại
trễ là trễ xác suất và trễ xác định. Trễ xác suất đặc tả qua giá trị kì vọng, phương sai và
mức độ tin cậy. Trễ xác định dự đoán số lần truyền nhận của gói tin. Trễ xác định vô cùng
quan trọng trong môi trường truyền thời gian thực.
Thông lượng: dược định nghĩa bởi tỷ lệ gói tin có thể được phục vụ trong hệ thống
truyền thông. Nó được đo bằng gói tin trên giây hoặc bit trên giây. Trong hệ thống mạng
không dây thì thông lượng được biểu diễn là dung lượngcủa kênh truyền. Thông lượng

13
tăng khi lưu lượng tải tăng. Khi lưu lượng tải đạt tới ngưỡng thì thông lượng sẽ ngừng tăng
và trong một số trường hợp thì thông lượng có thể giảm xuống. Điều quan trọng trong giao
thức MAC là làm sao để tối đa được thông lượng kênh truyền đồng thời tối thiểu trễ.
Độ bền: là sự kết hợp của sự ổn định, có sẵn, đáng tin cậy. Phản ánh mức độ chịu
đựng lỗi trong quá trình truyền tin. Nó phải phát hiện được lỗi, tái cấu hình và tải khởi
động. Để đạt được độ bền tốt trong mạng không dây là tương đối khó khăn vì nó phụ thuộc
rất nhiều vào mô hình lỗi của đường truyền cũng như các nút mạng.
Khả năng mở rộng: là khả năng của hệ thống truyền thông có thể mở rộng kích
thước mạng hay mở rộng về số lượng các nút. Trong Mạng cảm biến không dây thì số
lượng nút cảm biến có thể rất lớn, lên tới hàng triệu nút. Trong các mạng này thì khả năng
mở rộng là một yếu tố quan trọng. Để đạt được điều này là một thách thức lớn, đặc biệt là
trong môi trường mạng không dây.
Độ ổn định: đề cập đến khả năng xử lý biến động lưu lượng của hệ thống. Một giao
thức MAC ổn định phải có khả năng xử lý lưu lượng tải tại một thời điểm vượt quá mức
tối đa của dung lượng của kênh truyền. Giao thức MAC được coi được ổn định nếu thời
gian trễ được quản lý, thông lượng không giảm khi lưu lượng tải tăng.
Công bằng: giao thức MAC được coi là công bằng nếu nó phẩn bổ dung lượng của
kênh truyền một cách đồng đều giữa các nút cạnh tranh mà không làm giảm thông lượng.
Đạt được sự công bằng giữa các nút cạnh tranh là đạt được chất lượng dịch vụ một cách
công bằng và tránh tình huống một số nút phân bổ tốt hơn các nút khác. Công bằng dựa
trên nhu cầu trao đổi thông tin của tất cả các nút, được biểu diễn theo dung lượng kênh.
Giao thức MAC được coi là công bằng khi nó không phải tăng sự phân bổ cạnh tranh mà
vẫn đảm bảo dịch vụ của các nút.
Hiệu suất năng lượng: các nút cảm biến thường được tích hợp các cảm biến, vi xử
lý, bộ truyền thông. Những nút cảm biến sử dụng nguồn năng lượng từ pin với dung lượng
nhỏ. Trong Mạng cảm biến không dây thì các nút thường được triển khai trong môi trường
rải rác, rất khó để thay pin. Việc sạc pin cho các nút thì cũng phức tạp và không ổn định.
Như vậy, tiết kiệm năng lượng trở nên hết sức quan trọng trong Mạng cảm biến không dây
để kéo dài tuổi thọ của các nút cảm biến. Một phương thức tiếp cận để giảm tiêu thụ năng
lượng tại một nút cảm biến là sử dụng thiết bị điện tử tiết kiệm năng lượng. Sự tích hợp
của chip năng lượng thấp trong việc thiết kế các nút cảm biến là một bước cần thiết nhằm
đạt được hiệu quả cao về hiệu quả năng lượng. Một trong những điều gây lãng phí năng
lượng chính là va chạm trong truyền tin xảy ra khi hai hay nhiều nút cảm biến cùng nhau
truyền tin tại một thời điểm. Việc truyền lại bản tin dẫn tới lãng phí nặng lượng. Tiếp theo
là lãng phí trong thời gian “rảnh”. Một nút cảm biến sẽ vào chế độ này khi nó đang lắng

14
nghe kênh truyền. Lãng phí cũng xảy ra khi nút nhận được bản tin từ mà địa chỉ thuộc về
nút khác…
2.2 Các giao thức MAC tiết kiệm năng lượng
Nhu cầu tiết kiệm năng lượng là vấn đề quan trọng nhất trong việc thiết kế khả năng
mở rộng và ổn định giao thức lớp MAC cho Mạng cảm biến không dây. Một số yếu tố góp
phần vào sự lãng phí năng lượng, bao gồm cả chi phí quá mức, trạng thái nhàn rỗi, va chạm
gói..... Điều chỉnh quyền truy cập vào các thiết bị truyền thông đòi hỏi sự trao đổi kiểm
soát và đồng bộ hóa thông tin giữa các nút cạnh tranh. Rõ rảng việc trao đổi số lượng lớn
các bản tin điều khiển và đồng bộ sẽ tạo nên lãng phí về năng lượng. Chế độ nghe nhàn rỗi
kéo dài thì làm tăng tiêu thụ năng lượng và giảm thông lượng của mạng. Trong một số
trường hợp năng lượng bị lãng phí một nửa vì chế độ nghe nhàn rỗi. Việc truyền lại các
bản tin bị va chạm cũng là một trường hợp khác trong việc lãng phí năng lượng. Một lượng
lớn va chạm có thể dẫn tới giảm hiệu suất của giao thức lớp MAC. Tương tự như vậy là
tình trạng một nút nhận và giải mã gói tin dành cho nút khác, điều này là không cần thiết
làm tăng tiêu thụ năng lượng và có thể làm suy giảm nghiêm trọng thông lượng mạng.
Mục tiêu chính của các giao thức lớp MAC là để giảm lãng phí năng lượng do va
chạm, nghe nhàn rỗi, nhận nhầm gói tin. Những giao thức có thể được phân loại thành hai
nhóm chính: theo lịch trình và tranh chấp dựa trên giao thức lớp MAC. Giao thức dựa
trên lịch trình là một lớp giao thức lớp MAC, trong đó quyền truy cập vào kênh được dựa
trên một lịch trình cụ thể. Kênh truy cập được giới hạn dành cho một nút cảm biến có
quyền truy cập tại một thời điểm. Để tránh việc lãng phí năng lượng thì các giao thức này
có các cơ chế hoạt động để hạn chế việc nhận nhầm gói tin và điều khiển lưu lượng.
Giải quyết va chạm thường đạt được bằng việc phân phối, sử dụng các thuật toán
ngẫu nhiên để sắp xếp lại quyền truy cập kênh của các nút cảm biến. Để giảm thiểu việc
nhận nhầm gói tin thì có một phương pháp là buộc các nút hoạt động ở trạng thái ngủ khi
không cần hoạt động, Tuy nhiên việc này cũng gây khó khăn trong việc truyền nhận dữ
liệu giữa các nút lân cận. Để giải quyết nhược điểm này, có thể áp dụng nhiều phương pháp
của giao thức MAC khác nhau.
2.3. Các giao thức MAC dựa trên tranh chấp
Các giao thức MAC dựa trên tranh chấp thì không yêu cầu có sự trao đổi thông tin
giữa các nút khi truy cập vào kênh. Khi có va chạm thì nút sẽ chờ trong một khoảng thời
gian ngẫu nhiên trước khi cố gắng truy cập vào kênh truyền trở lại. Tuy nhiên, những giao
thức này không phù hợp với trong môi trường Mạng cảm biến không dây. Hiệu quả năng
lượng dựa trên giao thức tranh chấp này vẫn còn thấp vì còn có va chạm, nghe nhàn rỗi và
nhận nhầm gói tin. Để giải quyết vấn đề này, những nỗ lực trong việc thiết kế giao thức
truy cập ngẫu nhiên chỉ tập trung vào việc làm giảm đi lãng phí năng lượng để kéo dài tuổi

15
thọ mạng. Một số giao thức MAC dựa trên tranh chấp đã được nghiên cứu nhằm hạn chế
những vấn đề nêu trên, cụ thể:
Giao thức PAMAS sẽ tránh được việc nhận nhầm gói tin giữa các nút lân cận bằng
cách sử dụng kênh tín hiệu riêng. Giao thức kết hợp sử dụng gói RTS (yêu cầu để gửi tin)
và CTS (xóa để gửi tin) để cho phép các nút hiện đang không hoạt động truyền nhận sẽ tắt
khối truyền thông của chúng đồng nghĩa là không tham gia vào đường truyền. Hoạt động
của giao thức được miêu tả như sau: bởi vì nút không thể phát hiện có đụng độ đang xảy
ra hay không, nó cố gắng tránh xung đột bằng cách chờ một khoàng thời gian cho đến khi
kênh trống. Khi một nút định phát một gói dữ liệu, đầu tiên nó cảm nhận sóng mang để xác
định xem có nút nào đang truyền hay không. Nếu không, nút gửi gói RTS báo là muốn gửi
dữ liệu đến cho nút cần gửi gói dữ liệu. Nếu kênh truyền rảnh, nút nhận sẽ gửi trả lời bằng
gói CTS để cho biết nút này sẵn sàng nhận. Sau khi nhận được gói CTS, nút phát sẽ gửi
ngay gói dữ liệu cho nút kia. Nếu sau khoảng thời gian định trước, nút phát không nhận
được gói xác nhận CTS thì coi như nút nhận chưa sẵn sàng nhận dữ liệu, nó sẽ chờ một
khoảng thời gian trước khi bắt đầu lại thủ tục RTS/CTS.
Giao thức STEM đánh đổi độ trễ để được hiểu quả về năng lượng. Việc này đạt
được bằng cách sử dụng hai kênh truyền: dùng 2 kênh riêng biệt, một kênh dữ liệu và một
kênh điều khiển. Kênh dữ liệu được dùng để phát dữ liệu. Kênh điều khiển được dùng ở
máy thu để báo hiệu các nút trong mạng đang trong quá trình nhận dữ liệu. Ngay lập tức
sau khi nút bắt đầu nhận gói dữ liệu, nút phát ra tín hiệu trên kênh điều khiển, cho biết nút
đang bận. Nút tiếp tục phát âm báo bận trong suốt quá trình nhận dữ liệu cho đến khi gói
được nhận đầy đủ.Trước khi phát một gói, nút phát phải kiểm tra xem có âm báo bận từ
nút nhận hay không. Nút chỉ phát dữ liệu khi kênh truyền rảnh. Âm báo bận giải quyết
được cả 2 vấn đề nút ẩn và hiện do sử dụng cùng lúc 2 kênh liên lạc. Tuy nhiên, nhược
điểm chính của phương pháp này nút cần hoạt động song công, vừa phát vừa nhận đồng
thời. Điều này đòi hỏi tăng độ phức tạp của nút cảm biến trong Mạng cảm biến không dây,
do đó làm tăng giá thành và công suất tiêu thụ.
Giao thức T-MAC (Timeout-MAC) là giao thức MAC dựa trên tranh chấp được
thiết kế cho các ứng dụng có đặc trưng là các gói tin nhỏ và ít ảnh hưởng bởi độ trễ. Để
tránh va chạm và đảm bảo truyền nhận ổn định, T-MAC sử dụng RTS, CTS và ACK để
giao tiếp giữa các nút với nhau. Hơn nữa, giao thức này sử dụng chu kì thích nghi để giảm
năng lượng tiêu thụ và thích khi với tải. Ý tưởng của T-MAC là giảm cơ chế nghe rảnh rỗi
bằng cách gửi loạt bản tin có độ dài không cố định. Hơn nữa, giao thức tự động xác định
độ dài tối ưu của thời gian hoạt động và tải. Vì các gói tin giữa các lần hoạt động được lưu
vào bộ đệm, dung lượng bộ đệm quyết định thời gian tối đa cho một khung truyền.
Dựa trên giao thức T-MAC, các nút xen kẽ hoạt động ở chế độ ngủ và thức. Mỗi nút
thức dậy định kỳ để giao tiếp với lân cận của nó. Một nút sẽ liên tục nghe và có khả năng
16
truyền miễn là nó đang trong giai đoạn hoạt động. Một khoảng thời gian hoạt động sẽ kết
thúc khi không có sự kiện hoạt động xảy ra trong một thời gian định trước. Sự kiện hoạt
động bao gồm nghe định kì, nhận dữ liệu qua kênh truyền, sự cảm nhận hoạt động trên
kênh như là va chạm, ACK. Kết thúc truyền nhận giữa các nút lân cận được quyết định bởi
gói tin RTS và CTS. Cuối chu trình hoạt động, các nút sẽ vào chế độ ngủ.
Giao thức B-MAC (Berkeley Media Access Control) là giao thức cảm nhận năng
lượng thấp cho Mạng cảm biến không dây. B-MAC không cung cấp cơ chế truyền nhiều
gói tin để giải quyết các vấn đề gói tin ẩn, xử lý gói tin rời rạc. Tuy nhiên, với giao diện
tiêu chuẩn, B-MAC cung cấp giao diện cho phép hiệu chỉnh cơ chế, qua đó có thể quyết
định công suất tiêu thụ, độ trễ, thông lượng, độ ổn định, độ công bằng.
Để đạt được chế độ hoạt động công suất thấp, B-MAC sử dụng cơ chế lấy mẫu theo
kế hoạch để giảm chu kì và tối thiểu chế độ nghe nhàn rỗi. Mỗi lần nút thức dậy, nó sẽ bật
khối truyền thông và kiểm tra hoạt động, nếu có phát hiện hoạt động, nút sẽ khởi động khối
truyền thông và giữ hoạt động để nhận gói tin. Sau quá trình nhận, nút quay lại chế độ ngủ.
B-MAC hỗ trợ hiệu chỉnh và cung cấp giao diện hai chiều cho hệ thống để tối ưu hiệu
năng cho thông lượng, đỗ trễ hay công suất tiêu thụ.
2.4. Các giao thức MAC theo lịch
Các giao thức MAC dựa theo lịch cho Mạng cảm biến không dây giả định sự tồn tại
của một lịch trình quy định quyền truy cập vào tài nguyên để tránh những va chạm giữa
các nút. Các tài nguyên bao gồm thời gian, tần số và mã CDMA. Mục tiêu chính của giao
thức MAC theo lịch là để đạt được một hiệu quả cao về hiệu quả năng lượng để kéo dài
tuổi thọ mạng. Hầu hết các giao thức lịch trình cho Mạng cảm biến không dây sử dụng một
biến thể của TDMA, lúc đó kênh được chia thành các khe thời gian. Theo hình 2.2, một
tập hợp N khe tạo thành một khung truyền. Khung truyền này lặp đi lặp lại theo chu kì thời
gian. Trong mỗi khung, mỗi nút cảm biến được gán vào một khe thời gian truyền tin cụ thể
và nút chỉ được truyền tin trong khoảng thời gian đó. Lịch trình có thể cố định hoặc xây
dựng theo yêu cầu trên cơ sở phản ánh lưu lượng của mỗi nút và mô hình lưu lượng. Dựa
trên lịch trình mà các cảm biến sẽ thay nhau hoạt động ở 2 chế độ là: chế độ hoạt động và
chế độ ngủ. Trong chế độ hoạt động thì nút sẽ truyền nhận tin trong khe thời gian của mình
và sau đó chuyển sang chế độ ngủ khi khe thời gian đó kết thúc như vậy sẽ tiết kiệm được
năng lượng.

17
Hình 2. 2 TDMA trong Mạng cảm biến không dây

SMACS (Self-Organizing Medium Access Control for Sensornets) là một giao thức
điều khiển truy cập để có thể tổ chức cấu hình mạng ngẫu nhiên mà không cần phải tạo sự
đồng bộ chung toàn hệ thống. Giao thức SMACS dùng phương pháp hỗn hợp TDMA/FH
như là sự thông tin được sắp xếp trước bất đồng bộ không cần thông tin kết nối chung hay
sự đồng bộ về thời gian. Mỗi nút trong mạng tạo ra các khung giống như trong TDMA, gọi
là siêu khung để liên lạc với các nút xung quanh. Chiều dài của siêu khung là cố định.
Khung này được chia thành nhiều khung nhỏ hơn. Nhưng kích thước khung nhỏ thì không
cố định và có thể thay đổi theo thời gian khác nhau trong cùng một nút và giữa các nút.
SMACS đòi hỏi mỗi nút phải thực thi một phương thức để phát hiện các nút lân cận.
Mỗi nút tạo một đường liên lạc với một nút mới phát hiện được bằng cách gán một khe
thời gian cho liên kết này. Nút chỉ nói chuyện với nút mới này qua một khe thời gian duy
nhất. Cần phải đảm bảo không có can nhiễu xảy ra giữa các liên kết gần nhau. Để làm được
điều đó, nút dùng phương pháp phân chia kênh ngẫu nhiên, chọn một kênh từ nhiều kênh
tần số (FDMA) hay mã trải phổ (CDMA) cho mỗi liên kết. Sử dụng cấu trúc siêu khung,
mỗi nút xây dựng các khe thời gian sẵn có để thông tin với các nút lân cận, các nút phải
điều chỉnh tần số của nó đến kênh tần số hay mã trải phổ CDMA phù hợp để liên lạc với
nhau.
LEACH (Low-Energy Adaptive Clustering Hierarchy) xây dựng cấu trúc và sắp xếp
các nút thành các Cluster. Trong mỗi Cluster, chọn ra một Cluster Head (Cluster chủ).
LEACH dùng TDMA để thông tin giữa các nút và Cluster Head. Cluster Head chuyển
thông điệp nhận được từ các nút đến cho trạm gốc. Trạm gốc là một thiết bị cấp cao hơn,
quản lý tất cả các Cluster Head trong khu vực mạng. Cluster Head lập sẵn lịch trình theo
TDMA và phát lịch này cho tấn cả các nút trong Cluster của nó. Lịch lập trước này sẽ ngăn
đụng độ giữa các gói dữ liệu. Hơn nữa, việc sắp xếp trước có thể được các nút dùng để xác
định khe thời gian trong suốt khoảng thời gian ở chế độ tích cực. Điều này cho phép các
nút (trừ Head Cluster) tắt các bộ phận thu phát vô tuyến của nó khi chưa được gán khe thời
gian. LEACH giả sử rằng các nút bắt đầu thiết lập trạng thái pha Cluster và đồng bộ về thời

18
gian. Một kỹ thuật có thể được dùng để thực hiện đồng bộ là trạm trung tâm gửi đi xung
đồng bộ đến tất cả các nút. Để giảm can nhiễu giữa các Cluster với nhau, LEACH dùng
giản đồ phân chia mã dựa vào máy phát. Liên lạc giữa 1 nút và Head Cluster dùng kỹ thuật
trải phổ chuỗi trực, trong đó mỗi Cluster được phân một mã trải phổ duy nhất, được dùng
ở tất cả các nút trong Cluster để truyền dữ liệu cho Head Cluster. Mã trải phổ được phân
chia cho Head Cluster theo nguyên tắt first-in, first-served, bắt đầu từ Head Cluster thứ
nhất, sau đó đến các Head Cluster tiếp theo. Các nút phải hiệu chỉnh công suất phát để giảm
can nhiễu đến các Cluster kế cận. Khi nhận được gói dữ liệu từ nút trong Cluster, Head
Cluster tập hợp dữ liệu trước khi gửi tới trạm trung tâm. Liên lạc giữa 1 Head Cluster và
trạm gốc thực hiện bằng mã trải phổ cố định và CSMA. Trước khi phát dữ liệu cho trạm
gốc, Head Cluster phải cảm nhận kênh truyền để chắc chắn rằng không có Head Cluster
khác đang dùng kênh truyền. Nếu kênh truyền đang bận, Head Cluster ngưng truyền dữ
liệu cho đến khi kênh truyền rảnh.
Về tổng quát, giao thức dựa trên lập lịch trước không xảy ra đụng độ, hạn chế
được lãng phí năng lượng gây ra do tranh chấp. Hơn nữa, các nút cảm biến chỉ cần điều
chỉnh phần vô tuyến trong suốt khe thời gian nút thu hay phát dữ liệu. Trong các khe thời
gian khác, chúng tắt các chức năng thu phát vô tuyến, do đó tránh thu gói không cần
thiết. Nút hoạt động với chu kỳ nhiệm vụ ngắn hơn, kéo dài thời gian sống của nút. Tuy
nhiên giao thức MAC lập lịch trước có nhiều bất lợi, giới hạn sử dụng trong mạng WSNs.
Sử dụng TDMA đòi hỏi sự sắp xếp các nút thành cluster. Cấu trúc phân cấp này thường
hạn chế chỉ cho phép nút liên lạc với head cluster của nó. Liên lạc peer-to-peer không thể
thực hiện trực tiếp, nếu nút không lắng nghe trong suốt khe thời gian. Giao thức này phụ
thuộc vào sự đồng bộ tốt về thời gian. Tuy nhiên, đồng bộ các nút cảm biến phân bố rất
khó thực hiện và giá thành cao, đặc biệt đối với Mạng cảm biến không dây bị hạn chế về
năng lượng. Bên cạnh đó, giao thức MAC lập lịch trước đòi hỏi các kỹ thuật khác như
FDMA hay CDMA để thông tin qua lại giữa các cluster và can nhiễu. TDMA thường bị
hạn chế về khả năng mổ rộng và khó thích ứng với nút di động và thay đổi cấu hình
mạng. Bởi vì các nút vào hay ra khỏi một Cluster, chiều dài khung cũng như phân bổ khe
thời gian phải hiệu chỉnh lại. Sự thay đổi thường xuyên làm tăng giá thành hay làm chậm
hoạt động chung của hệ thống.
2.5. Giao thức MAC trong IEEE 802.15.4
Giao thức MAC IEEE 802.15.4 được thiết kế để hỗ trợ một số lượng lớn các ứng
dụng công nghiệp và trong nhà để kiểm soát và giám sát. Các ứng dụng này thường đòi hỏi
tốc độ dữ liệu thấp và độ trễ trung bình linh hoạt vừa phải. Hơn nữa, mức độ phức tạp và
chi phí thực hiện của thiết bị chuẩn IEEE 802.15.4 phải phù hợp tiêu chuẩn tiêu thụ năng
lượng thấp và cho phép việc triển khai các thiết bị trên quy mô lớn.

19
Để đáp ứng nhu cầu của các ứng dụng trong khi cho phép việc triển khai một số
lượng lớn các thiết bị giám sát và kiểm soát, lớp MAC IEEE 802.15.4 chỉ ra một số đặc
điểm thiết kế để mạng có thể tùy biến một cách linh hoạt và hoạt động ở công suất thấp.
Các tính năng này bao gồm:
● Cung cấp thiết bị mạng và cấu hình mạng đa dạng.
● Cấu trúc siêu khung thay đổi phù hợp cho điều khiển chu kỳ nhiệm vụ các
thiết bị mạng.
● Truyền dữ liệu trực tiếp hoặc gián tiếp.
● Giao thức điều khiển truy cập môi trường dựa trên lập lịch và đụng độ.
● Chế độ hoạt động có mốc báo hiệu và không có mốc báo hiệu
● Quản lý hiệu quả năng lượng để kéo dài thời gian dùng của pin.
● Dễ dàng triển khai mạng cỡ lớn, về mặt lý thuyết thì có thể có 65.000 nút cho
mỗi mạng
Hoạt động của hai giao thức lớp MAC, bao gồm các thủ tục chi phối dữ liệu chuyển
giữa các thiết bị mạng trong mỗi chế độ hoạt động sẽ được mô tả dưới đây.
Tiêu chuẩn IEEE 802.15.4 phân biệt các thiết bị dựa trên khả năng và độ phức tạp
về phần cứng thiết bị. Chuẩn này định nghĩa 2 dạng thiết bị vật lý : thiết bị chức năng đầy
đủ (fullfunction device_FFD) và thiết bị chức năng hạn chế (reduced-function
device_RFD). Một FFD được trang bị nguồn cung cấp và dung lượng bộ nhớ đủ cho tất
cả chức năng xử lý trong mạng. FFD có thể thông tin với mọi thiết bị khác trong cùng
mạng với nó và còn có khả năng giao tiếp với thiết bị thuộc mạng khác. Một RFD là thiết
bị đơn giản mang các chức năng hạn chế hơn so với FFD. RFD chỉ bao gồm giao diện vật
lý đáp ứng tiêu chuẩn lớp MAC IEEE 802.15.4 với khả năng xử lý hạn chế, mức công
suất tiêu thụ thấp và ít phức tạp hơn FFD. Một FFD có thể làm việc với nhiều RFD hay
nhiều FFD, trong khi một RFD chỉ có thể làm việc với một FFD. Bảng 2.3 minh họa chi
tiết các chức năng của 2 dạng thiết bị này.

Hình 2. 3 Các loại thiết bị trong mạng Zigbee

Có ba nhóm thiết bị logic:

20
1. Bộ điều phối mạng (Coordinator): Một thiết bị FFD chịu trách nhiệm xây dựng
và điều hành mạng đóng vai trò bộ điều phối mạng. Bộ điều phối có chức năng chọn ra các
thông số cho việc cấu hình mạng và lưu trữ các thông tin về hoạt động của mạng.
2. Bộ định tuyến (Router): Một thiết bị FFD có chức năng định tuyến cho dữ liệu,
hoạt động như một thiết bị trung gian liên kết các thành phần khác của mạng và truyền
thông điệp giữa các thiết bị ở cách xa nhau. Một router có thể thông tin với một router khác
hay thiết bị đầu cuối.
3. Thiết bị đầu cuối: Một thiết bị RFD chỉ có chức năng thông tin với nút cấp trên
của nó (parent node) như bộ điều phối mạng hay bộ định tuyến. Một thiết bị đầu cuối không
có khả năng chuyển tiếp thông điệp đến các các thiết bị đầu cuối khác.
Dựa trên các dạng thiết bị logic, IEEE đưa ra một số cấu trúc liên kết mạng cho công
nghệ ZigBee. Các nút trong một mạng ZigBee có thể liên kết với nhau theo cấu trúc mạng
hình sao (star), cấu trúc mạng hình lưới (mesh), hay cấu trúc mạng bó cụm hình cây (cluster
tree).
Cấu trúc hình sao: Dùng một bộ điều phối mạng ( là một thiết bị FFD). Chỉ có một
thiết bị FFD đóng vai trò bộ điều phối, tất cả các thiết bị FFD còn lại và RFD đều có thể
kết nối với bộ điều phối mạng. Bộ điều phối mạng sẽ khởi tạo và xây dựng các thiết bị đầu
cuối trong mạng. Mỗi mạng hình sao đều phải có chỉ số nhận dạng (ID) riêng của mình, nó
cho phép mạng này có thể hoạt động độc lập, có thể lên đến 65,536 thiết bị.
Cấu trúc hình mắt lưới: Cấu trúc mắt lưới cho phép tạo đường đi từ mọi thiết bị
nguồn đến mọi thiết bị đích. Cấu trúc mạng này cũng có duy nhất một bộ điều phối mạng.
Các bộ thu radio của bộ điều phối và các bộ định tuyến phải luôn luôn ở chế độ hoạt động.
Cấu trúc hình cây: Cấu trúc này là một dạng đặc biệt của cấu trúc mắt lưới, trong đó
đa số thiết bị là FFD và một RFD có thể kết nối vào mạng hình cây như một nốt rời rạc ở
điểm cuối của nhánh cây. Bất kỳ một FFD nào cũng có thể hoạt động như là một bộ điều
phối và cung cấp tín hiệu đồng bộ cho các thiết bị và các bộ điều phối khác vì thế mà cấu
trúc mạng kiểu này có qui mô phủ sóng và khả năng mở rộng cao.Trong loại cấu hình này
mặc dù có thể có nhiều bộ điều phối nhưng chỉ có duy nhất một bộ điều phối mạng PAN
(PAN Coordinator). PAN Coordinator tạo ra nhóm đầu tiên, tự bầu ra người lãnh đạo cho
mạng của mình, và gán cho người lãnh đạo đó một chỉ số nhận dạng cá nhân đặc biệt gọi
là là CID-0 bằng cách tự thành lập Cluster Head bằng CID-0 (cluster identifier), nó chọn
một PAN identifier rỗi và phát khung tin quảng bá nhận dạng tới các thiết bị lân cận. Thiết
bị nào nhận được khung tin này có thể yêu cầu kết nối vào mạng với Cluster Head. Nếu
PAN Coordinator đồng ý cho thiết bị đó kết nối thì nó sẽ ghi tên thiết bị đó vào danh sách.
Cứ thế thiết bị mới kết nối này lại trở thành PAN Coordinator của nhánh cây mới và bắt
đầu phát quảng bá định kỳ để các thiết bị khác có thể kết nối vào mạng.
21
Tiêu chuẩn IEEE 802.15.4 định nghĩa một cấu trúc siêu khung theo nhu cầu. Định
dạng của siêu khung do PAN Coordinator qui định. Siêu khung bắt đầu bằng Beacon (mốc
báo hiệu) và được chia thành 16 khe như nhau. Khe thời gian đầu tiên của siêu khung dùng
để phát Beacon. Mục đích chính của Beacon là để đồng bộ các thiết bị tham gia vào mạng,
xác nhận PAN, mô tả cấu trúc siêu khung. Các khe còn lại được dùng bởi các thiết bị tranh
chấp để thông tin trong thời gian tranh chấp truy cập (Contention Access Period_CAP).
Các thiết bị dùng giao thức CSMA/CA phân khe thời gian để tranh chấp truy cập với các
thiết bị khác. Việc thông tin giữa các thiết bị phải hoàn tất trước khi kết thúc CAP của siêu
khung hiện tại và bắt đầu phát mốc Beacon của siêu khung kế tiếp. Để đáp ứng yêu cầu về
độ trễ và băng thông của ứng dụng. PAN Coordinator đưa ra nhóm khe tích cực cho các
ứng dụng. Các khe này được gọi là khe thời gian đảm bảo (Guaranteed Time Slots_GTS).
Số GTS không vượt quá 7. Tuy nhiên một khe GTS có thể kéo dài hơn một khe thời gian
trong siêu khung trong vùng tranh chấp tự do (Contention Free Period_CFP). CFP luôn
xuất hiện ngay sau CAP và trước khi kết thúc siêu khung. Các khe CAP dành cho tranh
chấp truy cập giữa các thiết bị mạng và các thiết bị mới muốn tham gia vào mạng. Tất cả
việc thông tin dùng tranh chấp truy cập hay tranh chấp tự do phải hoàn tất trước khi kết
thúc khoảng thời gian tương ứng CAP và CFP trong siêu khung. Các thiết bị mạng cần
phân chia GTS, sẽ gởi yêu cầu trong khoảng thời gian CAP để có một số khe thời gian
mong muốn. Các khe được yêu cầu có thể là dùng cho mục đích thu hoặc phát. Các khe
thu được dùng để các thiết bị lấy dữ liệu về từ bộ Coordinator, còn khe phát dùng để gởi
dữ liệu lên cho Coordinator. Các thiết bị không có dữ liệu để trao đổi với PAN Coordinator
có thể chuyển sang chế độ ngủ để tiết kiệm năng lượng. Để giảm công suất tiêu thụ, bộ
Coordinator có thể chia siêu khung thành khoảng thời gian tích cực và thời gian nghỉ.
Khoảng thời gian tích cực gồm 16 khe thời gian chứa Beacon, CAP và CFP. Khoảng thời
gian nghỉ tất cả các thiết bị gồm cả PAN Coordinator có thể đi vào chế độ ngủ và đặt bộ
đếm thời gian thức để bắt đầu siêu khung mới. Tùy theo yêu cầu ứng dụng, chiều dài

22
khoảng tích cực và khoảng nghỉ, chiều dài khe thời gian và số GTS được chọn phù hợp với
hoạt động của mạng.

Hình 2. 4 Cấu trúc super frame

Hình 2. 5 Bảng tham chiếu khoảng thời gian Beacon (Beacon interval).

23
Chương 3: Định tuyến trong Mạng cảm biến không dây

Đặc tính của Mạng cảm biến không dây và tính chất môi trường làm cho việc định
tuyến trở nên rất khó khăn. Nhiều giao thức định tuyến đã được đưa ra như các giải pháp
khả thi cho vấn đề định tuyến. Bên cạnh đó sự phát triển các ứng dụng của Mạng cảm
biến không dây, sự cải tiến về mặt phần cứng và công nghệ chế tạo pin sẽ mở đường cho
sự phát triển các giao thức định tuyến hiệu quả hơn. Chương 3 trình bày về nguyên lý
hoạt động, ưu nhược điểm của các giao thức định tuyến trong Mạng cảm biến không dây.
3.1. Tổng quan về giao thức định tuyến
Giao thức định tuyến nằm trong lớp mạng và chịu trách nhiệm quyết định xem gói
tin sẽ được truyền đi theo đường nào. Nói cách khác, nó là một thuật toán để tìm đường
truyền dữ liệu từ một nút nguồn đến một nút đích. Nút đích thường được gọi là nút sink
hoặc trạm gốc trong Mạng cảm biến không dây. Nó có thể cách xa nút nguồn hoặc thậm
chí nằm ngoài phạm vi truyền của nút đó. Do đó, dữ liệu có thể phải di chuyển qua nhiều
bước trước khi đến nút sink. Hình 3.1 cho thấy một đường dẫn truyền từ một cảm biến đến
một nút sink. Tuy nhiên, do các tính năng và hạn chế riêng của Mạng cảm biến không dây,
các giao thức định tuyến được phát triển cho mạng có dây và các mạng không dây khác
như MANET thường không phù hợp với Mạng cảm biến không dây. Các tính năng và hạn
chế điển hình của định tuyến trong Mạng cảm biến không dây được mô tả như sau:
• Một trong những mục tiêu chính của giao thức định tuyến trong Mạng cảm biến
không dây là bảo toàn năng lượng và giảm tiêu thụ điện năng, trong khi các giao thức định
tuyến cho các mạng khác được thiết kế để đạt được chất lượng dịch vụ (QoS) cao trong
quá trình truyền dữ liệu.
• Các nút cảm biến trong Mạng cảm biến không dây có nhiều hạn chế như nguồn
cung cấp hạn chế, kích thước bộ nhớ hạn chế, khả năng tính toán hạn chế và băng thông
hạn chế cho các kênh không dây giữa các cảm biến.
• Một Mạng cảm biến không dây có thể chứa một số lượng lớn các nút cảm biến.
Do đó, việc sử dụng một địa chỉ nhận dạng toàn cục để truy cập từng nút riêng lẻ có thể
không khả thi.
• Một Mạng cảm biến không dây có thể có các yêu cầu ứng dụng khác nhau. Do đó,
thiết kế của Mạng cảm biến không dây phải dành riêng cho ứng dụng.

24
Hình 3. 1 Đường liên kết giữa nút cảm biến đến nút sink
• Một giao thức định tuyến nên loại bỏ sự dư thừa của dữ liệu cảm biến, phát sinh
khi nhiều nút cảm biến không dây cảm nhận được cùng một hiện tượng môi trường tại cùng
một thời điểm. Tổng hợp dữ liệu là cần thiết để giảm dư thừa, bao gồm triệt tiêu trùng lặp,
kết hợp dữ liệu và tương tác.
• Các nút cảm biến trong Mạng cảm biến không dây dễ bị lỗi hoặc hỏng hơn do chi
phí thấp và sử dụng pin. Do đó, giao thức định tuyến phải hoạt động hiệu quả ngay cả khi
có lỗi nút trong mạng. Tính năng chịu lỗi này yêu cầu giao thức định tuyến phải có khả
năng khắc phục mọi lỗi trong mạng bằng cách phát hiện và duy trì một tuyến mới để truyền
dữ liệu.
3.2 Phân loại các giao thức định tuyến trong Mạng cảm biến không dây
Thiết kế các giao thức định tuyến của Mạng cảm biến không dây phải xem xét đến
công suất và tài nguyên hạnchế của các nút mạng, đặc tính thay đổi theo thời gian của kênh
truyền vô tuyến và khả năng trễ hay mất gói. Nhiều giao thức định tuyến đã được đưa ra.
Dạng thứ nhất là giao thức dành cho kiến trúc mạng phẳng trong đó tất cả các nút
xem như cùng cấp. Kiến trúc phẳng có nhiều lợi ích như tối thiểu chi phí chung để xây
dựng hạ tầng mạng và có khả năng tìm ra nhiều đường liên lạc giữa các nút với sai số cho
phép.
Dạng thứ hai dùng trong mạng có cấu trúc tiết kiệm năng lượng, ổn định và khả
năng mở rộng. Trong dạng này các nút mạng được sắp xếp vào các Cluster, trong đó một
nút có năng lượng lớn nhất vai trò Cluster Head. Cluster Head có trách nhiệm phối hợp các
hoạt động giữa các nút trong Cluster và chuyển thông tin giữa các Cluster.
Dạng thứ ba dùng phương pháp Data-Centric (phần mềm hướng dữ liệu) để phân
bổ yêu cầu trong mạng. Phương pháp dựa trên thuộc tính, ở đó một nút nguồn truy vấn đến
một thuộc tính của hiện tượng nào đó hơn là một nút cảm biến riêng biệt. Việc phân tán

25
yêu cầu thực hiện bằng cách phân nhiệm vụ cho các nút cảm biến và định rõ một thuộc tính
riêng biệt cho các nút.
Dạng thứ tư dùng vị trí để chỉ ra một nút cảm biến. Định tuyến dựa trên vị trí rất
hữu ích cho các ứng dụng mà vị trí của nút trong một vùng địa lý có thể được yêu cầu bởi
nút nguồn. Yêu cầu như thế có thể định rõ vùng nào đó mà các hiện tượng quan tâm có thể
xảy ra hay lân cận với điểm đặc biệt nào đó trong vùng hoạt động của mạng.
3.2.1 Các giao thức định tuyến phẳng
Các giao thức định tuyến phẳng sử dụng các giao thức định tuyến làm trung tâm để
truyền dữ liệu, nơi có một trạm gốc chịu trách nhiệm gửi các yêu cầu truy vấn đến các nút
khác và chờ phản hồi của chúng. Loại bỏ và thương lượng dữ liệu có thể được sử dụng để
tiết kiệm năng lượng trong mạng. Quá trình xác định tuyến đường có thể được bắt đầu bằng
cách quảng bá một cách ồ ạt dữ liệu đến tất cả các nút lân cận mà không cần chú ý đến bất
kỳ cập nhật nào xảy ra trong cấu trúc liên kết. Phần tiếp theo sẽ trình bày về các giao thức
định tuyến phẳng phổ biến nhất.
3.2.1.1 Giao thức Flooding
Giao thức Flooding là giao thức định tuyến phẳng cơ bản nhất và có thể dễ dàng
thực hiện trong Mạng cảm biến không dây vì không cần lập trình thuật toán phức tạp. Giao
thức Flooding chỉ đơn giản là truyền dữ liệu đến tất cả các nút lân cận mà không cần xem
xét cấu trúc liên kết hoặc cấu trúc của mạng. Sau đó, dữ liệu có thể được chuyển đến nút
đích bằng cách lặp lại quá trình phát tương tự như trong hình 3.2.

Hình 3. 2 Hoạt động của giao thức Flooding.


Mặc dù, giao thức này đơn giản và dễ thực hiện nhưng nó có một số vấn đề nghiêm
trọng. Một trong những vấn đề này là việc tạo ra một số lượng lớn các thông điệp trùng lặp
bởi nhiều nút. Một vấn đề khác được gọi là sự cố. Sự cố này xảy ra khi một nút nhất định
nhận cùng một dữ liệu hai lần, bởi vì mỗi nút đang gửi dữ liệu nhận được đến các nút lân
cận của nó mà không biết liệu các nút lân cận đã nhận được những dữ liệu này trước đó
hay chưa. Nút G trong Hình 3.3 cho thấy vấn đề về sự cố.

26
Hình 3. 3 Sự cố trong giao thức Flooding.

3.2.2.2 Giao thức định tuyến thông tin qua sự thỏa thuận SPIN
SPIN là một giao thức định tuyến phẳng. SPIN là phiên bản cập nhật của giao thức
Flooding. SPIN thêm một hệ thống thương lượng vào giao thức. Thay vì ban đầu gửi dữ
liệu đến tất cả các nút lân cận, SPIN trước tiên yêu cầu bất kỳ nút nào quan tâm đến dữ
liệu gửi thông tin và sau đó chỉ gửi dữ liệu đó cho những nút đã bày tỏ sự quan tâm. Có
ba loại gói tin: quảng cáo dữ liệu (ADV), yêu cầu dữ liệu (REQ) và gói dữ liệu (DATA).
Một nút cảm biến, có dữ liệu, gửi một gói quảng cáo (ADV) đến tất cả các nút lân
cận của nó. Gói ADV này bao gồm thông tin về dữ liệu được cảm nhận. Nếu một trong
các nút nhận ADV mà đã nhận các dữ liệu này trước đó, nó sẽ bỏ qua gói ADV. Nếu
không, nó sẽ gửi gói yêu cầu (REQ) trở lại nút nguồn. Cuối cùng, nút nguồn sẽ chỉ gửi dữ
liệu đến các nút này bằng cách gửi một gói dữ liệu (DATA). Quá trình này được lặp lại
cho đến khi nút đích nhận được gói dữ liệu như yêu cầu. Hình 3.4 minh họa quy trình
SPIN, trong đó hình 3.4a – c cho thấy quy trình ba bước giữa nút A và nút B và hình 3.4d
– f cho thấy quá trình truyền giữa nút B và phần còn lại của các nút. Giao thức định tuyến
này là một nỗ lực để giải quyết các vấn đề về các gói dữ liệu trùng lặp và vấn đề sự cố.

27
Hình 3. 4 Hoạt động của giao thức SPIN.

Một ưu điểm của giao thức SPIN là nó tiêu thụ năng lượng ít hơn giao thức Flooding.
Tuy nhiên, tỷ lệ phân phối dữ liệu là tương tự nhau giữa 2 giao thức. SPIN không sử dụng
thông tin khoảng cách giữa các nút lân cận để giảm tiêu thụ năng lượng. Hệ thống thương
lượng của SPIN giúp giảm một nửa dữ liệu dư thừa được tạo ra.
Đôi khi các nút đích nằm ở một khoảng cách khá xa so với nút nguồn và các nút gần
nút nguồn hơn có thể không quan tâm đến những dữ liệu này. Như vậy một vấn đề đối với
giao thức SPIN là việc gửi một gói quảng cáo (ADV) không thể đảm bảo việc phân phối
dữ liệu tới các nút quan tâm ở xa trong Mạng cảm biến không dây.
3.2.2 Giao thức định tuyến phân cấp
Định tuyến phân cấp ban đầu được đề xuất như một phương pháp để định tuyến dữ
liệu trong mạng có dây. Tuy nhiên, nó cũng thích hợp để định tuyến dữ liệu trong mạng
không dây với một số cải tiến liên quan đến khả năng mở rộng mạng và hiệu quả của giao
tiếp. Nguyên lý hoạt động chính của các giao thức định tuyến phân cấp là chia các nút cảm
biến không dây thành nhiều cấp. Hầu hết các giao thức định tuyến phân cấp bao gồm hai
lớp định tuyến, lớp đầu tiên chịu trách nhiệm lựa chọn các đầu cụm và lớp thứ hai liên quan
đến các quyết định định tuyến. Ví dụ, các giao thức định tuyến phân cấp, cần đạt được mức
tiêu thụ điện năng rất thấp, có thể phân chia các nút cảm biến tùy thuộc vào mức năng
lượng của chúng. Các nút có mức năng lượng cao có thể được chỉ định để xử lý và truyền

28
dữ liệu, trong khi các nút có mức năng lượng thấp hơn chỉ có thể được chỉ định cho các sự
kiện cảm nhận. Việc hình thành các cụm trong các nút mạng có thể cải thiện hiệu quả và
khả năng mở rộng của các nút cảm biến. Có nhiều giao thức định tuyến phân cấp. Phần
tiếp theo trình bày một số giao thức được sử dụng phổ biến nhất.
3.2.2.1 LEACH
LEACH là một thuật toán định tuyến được thiết kế để thu thập và phân phối dữ liệu
đến các bộ góp dữ liệu, thường là các trạm gốc (base station). Đối tượng chính của LEACH
là:
• Kéo dài thời gian sống của mạng
• Giảm năng lượng tiêu thụ tại các nút mạng
• Dùng sự tập hợp dữ liệu để giảm số thông điệp cần truyền đi.
LEACH xây dựng cấu trúc mạng thành các Cluster. Mỗi Cluster được quản lý bởi
các nút chính gọi là Cluster Head. LEACH lựa chọn ngẫu nhiên một số nút cảm biến để trở
thành các nút chính và quay vòng vai trò này để phân bố đều tải năng lượng giữa các nút
cảm biến trong mạng. Ở LEACH, các nút chính nén các dữ liệu đến từ các nút khác trong
nhóm của chúng và gửi các gói dữ liệu thu thập này tới trạm gốc nhằm mục đích giảm số
lượng thông tin truyền phát về trạm gốc. Việc thu thập số liệu được thực hiện tập trung và
theo chu kỳ. Do vậy giao thức này thực sự thích ứng khi có nhu cầu trao đổi theo dõi thường
xuyên của mạng cảm biến.Thực tế, người sử dụng có thể không cần tất cả số liệu ngay lập
tức, cho nên việc truyền phát số liệu theo chu kỳ là không cần thiết và có thể làm suy giảm
nguồn năng lượng giới hạn của các nút cảm biến. Sau một khoảng thời gian cho trước, việc
quay vòng ngẫu nhiên thay đổi vai trò của nút chính được tiến hành sao cho có sự tiêu tán
năng lượng đều giữa các nút cảm biến trong mạng.
LEACH hoạt động theo hai giai đoạn riêng biệt. Giai đoạn đầu tiên là giai đoạn
thiết lập, bao gồm việc xác định các đầu cụm. Giai đoạn thứ hai là giai đoạn trạng thái ổn
định, bao gồm việc truyền dữ liệu. Trong giai đoạn thiết lập, một nhóm các nút (P) tự chọn
hoạt động như các đầu cụm. Các nút này chọn một số ngẫu nhiên từ 0 đến 1. Nếu số ngẫu
nhiên này lớn hơn giá trị ngưỡng T (n), thì nút đấy không thể hoạt động như một đầu cụm.
Ngưỡng T (n) được xác định như công thức (3.1), trong đó G là số nút không hoạt động
như một cụm tiêu đề trong vòng quay cuối cùng (1/P).

(3.1)
Trong đó:
● p là phần trạm mong muốn của Cluster Head.

29
● r là số vòng hiện tại
● G là tập hợp các nút chưa được Cluster Head trong 1/p vòng cuối cùng
Tất cả các Cluster Head được chỉ định gửi một quảng cáo đến tất cả các nút không
phải Cluster Head như được minh họa trong hình 3.5.

Hình 3. 5 Nút Cluster Head kết nối với các nút lân cận

Sau khi nhận được quảng cáo này, các nút không phải Cluster Head sẽ đưa ra quyết
định về Cluster Head mà chúng muốn tham gia. Quyết định này chủ yếu dựa trên cường
độ của tín hiệu từ các Cluster Head đã đến nút. Sau đó, các nút sẽ báo cáo quyết định lựa
chọn Cluster Head cho các Cluster Head khác.
Mỗi Cluster Head sẽ xây dựng lịch trình đa truy nhập phân chia theo thời gian
(TDMA) cho tất cả các nút trong cụm của nó. Mỗi nút sẽ chuyển dữ liệu đến Cluster Head
theo lịch trình thời gian. Sau đó, Cluster Head sẽ tổng hợp dữ liệu để giảm kích thước dữ
liệu. Cuối cùng, dữ liệu tổng hợp sẽ được gửi đến nút sink.
LEACH cung cấp một mô hình tốt mà các thuật toán nội bộ và tập hợp dữ liệu có
thể được thực hiện trong các nút chính được lựa chọn một cách ngẫu nhiên. Điều này làm
giảm quá tải thông tin và cung cấp một tập hợp tin cậy các số liệu cho người sử dụng cuối

30
cùng. LEACH góp phần giảm đáng kể năng lượng tiêu thụ và kéo dài hơn thời gian hoạt
động của mạng cảm biến so với trường hợp mạng gồm các nhóm cố định. Tuy nhiên,
LEACH có một số nhược điểm:
• LEACH chưa xác định cụ thể được số lượng tối ưu các nút chính của mạng khi
mà các mạng khác nhau có cấu hình, mật độ và số lượng nút khác nhau.
• Chưa có gợi ý về khi nào thì việc tái tạo lại các nút chính cần được thực hiện.
• Các nút chính ở xa trạm gốc sẽ tiêu thụ nhiều năng lượng hơn và nhanh chóng
dừng hoạt động hơn các nút khác.
• Tất cả các nút có thể kết nối với trạm gốc qua một chặng có thể không khả thi vì
khả năng và năng lượng cung cấp cho các nút thay đổi theo thời gian.
• Khoảng thời gian của pha ổn định trạng thái ảnh hưởng lớn đến năng lượng tiêu
thụ. Khoảng ổn định trạng thái ngắn làm tăng chi phí cho điều khiển giao thức,
trong khi khoảng ổn định trạng thái kéo dài làm sụt giảm năng lượng nhanh
chóng.
3.2.2.2 TEEN
Giao thức TEEN là một giao thức định tuyến phân cấp khác. Kiến trúc mạng trong
TEEN dựa trên phân cấp đa cấp. Hình 3.6 cho thấy kiến trúc phân cấp hai tầng, trong đó
các nút cảm biến giao tiếp với các Cluster Head cấp một và các Cluster Head này giao tiếp
với các Cluster Head cấp hai của chúng. Các Cluster Head cấp hai giao tiếp trực tiếp với
nút sink. Quá trình này diễn ra cho tất cả các cấp. Cluster Head trong mỗi cụm thu thập dữ
liệu từ các thành viên trong cụm của nó, tổng hợp dữ liệu và gửi nó đến Cluster Head cấp
trên hoặc nút sink. Kiến trúc đa cấp này mở rộng phạm vi phủ sóng của các mạng cảm biến
và giảm ảnh hưởng do hạn chế về công suất và phạm vi truyền của các nút cảm biến vì một
nút không phải đến trực tiếp nút sink. Dữ liệu từ các cụm cấp thấp có thể di chuyển qua
nhiều Cluster Head trước khi đến nút sink.

31
Hình 3. 6 Phân cấp mạng trong TEEN.

TEEN rất hữu ích cho các ứng dụng đo lường các hiện tượng vật lý như cảm nhận
nhiệt độ và áp suất. TEEN cũng thích hợp cho các ứng dụng thời gian thực như báo cháy.
Quá trình phát hiện trong TEEN diễn ra tức thì, trong khi quá trình gửi dữ liệu diễn ra theo
định kỳ. TEEN áp dụng việc hình thành cụm để gửi dữ liệu. Hai giá trị ngưỡng sẽ được
phần đầu cụm gửi đến các nút không thuộc phần đầu của cụm bên trong cụm của nó. Một
giá trị ngưỡng được gọi là ngưỡng cứng, là giá trị ngưỡng của thuộc tính mà nút cảm biến
phải bật máy phát của nó và báo cáo dữ liệu cảm biến đến Cluster Head của nó. Ngưỡng
còn lại được gọi là ngưỡng mềm, chứa sự thay đổi nhỏ trong giá trị của thuộc tính cảm
biến, kích hoạt nút bật bộ truyền của nó và truyền dữ liệu cảm biến đến Cluster Head.
3.2.3 Giao thức định tuyến dựa trên vị trí
Giao thức định tuyến này tận dụng lợi thế về vị trí của các nút cảm biến không dây
trong việc định tuyến dữ liệu. Địa chỉ của mỗi nút được xác định dựa trên vị trí thực của
nó. Vị trí của mỗi nút có thể được xác định bằng vệ tinh thông qua kỹ thuật GPS hoặc các
kỹ thuật định vị khác. Khoảng cách đến các lân cận có thể được tính toán tùy thuộc vào
cường độ tín hiệu.
3.2.3.1 GAF
GAF chủ yếu quan tâm đến nhận biết mức năng lượng. GAF ban đầu được thiết kế
cho mạng Ad hoc nhưng nó cũng phù hợp với Mạng cảm biến không dây. GAF tiết kiệm
năng lượng và không ảnh hưởng đến độ tin cậy của định tuyến.
Nguyên tắc của GAF là chia các trường cảm biến thành các mạng lưới ảo cố định
như hình 3.7. Chi phí định tuyến của mỗi nút trong cùng một vùng sẽ cân xứng nhau. Do

32
đó, một số nút trong cùng một vùng có thể được bỏ qua hoặc đặt chúng vào chế độ ngủ để
tiết kiệm năng lượng hơn. GPS có thể được sử dụng để xác định vị trí của mỗi nút trong
cùng một vùng.

Hình 3. 7 Mạng lưới ảo trong GAF.

Hình 3.7 cho thấy một trường cảm biến được chia thành các vùng A, B, C. Nút 1
nằm trong vùng A, các nút 2, 3 và nằm trong vùng B và nút 5 nằm trong vùng C, r là kích
thước của mạng lưới ảo. Các nút 1 và 5 có thể giao tiếp với các nút 2, 3 và 4, nhưng không
thể giao tiếp trực tiếp với nhau do bị phân cách ở cùng B.
Có 3 giai đoạn trong GAF: phát hiện, hoạt động và nghỉ. Giai đoạn phát hiện để phát
hiện ra lận cận của mỗi nút trong mạng lưới. Trong giai đoạn hoạt động, các nút đều tham
gia vào trong dữ liệu định tuyến. Giai đoạn nghỉ, các nút sẽ không truyền dữ liệu và đặt các
nút vào chế độ ngủ. Trong hình 3.7, hai trong số các nút 2, 3 và 4 trong vùng B có thể được
tắt cùng một lúc trong khi vẫn giữ một trong số chúng thức để liên lạc. Rõ ràng là giao thức
định tuyến này phụ thuộc vào kỹ thuật GPS để xác định vị trí của các nút cảm biến không
dây và điều này không phải lúc nào cũng khả dụng, đặc biệt là đối với các ứng dụng trong
nhà. Hơn nữa, giao thức định tuyến này làm gia tăng chi phí cho bộ nhớ đệm để lưu địa chỉ
của mỗi nút lân cận.
3.2.3.2 GEAR
GEAR cố gắng chuyển dữ liệu đến tất cả các nút trong vùng đích, thường gặp trong
các ứng dụng của mạng cảm biến không lấy dữ liệu làm trung tâm. Giao thức GEAR sử
dụng thông tin địa lý để định tuyến dữ liệu đến một khu vực trong mạng. Dữ liệu định
tuyến đến vùng đích trong GEAR dựa vào năng lượng và thông tin địa lý về các vùng lân
cận.
Mỗi nút trong GEAR giữ hai giá trị: chi phí ước tính và chi phí học được. Chi phí
ước tính là sự kết hợp của vùng đích và năng lượng còn lại. Khi một nút không có bất kỳ
nút nào bên cạnh trong quá trình tới vùng đích thì một lỗ mạng sẽ được tạo ra. Sự thay đổi

33
của chi phí ước tính do định tuyến quanh các lỗ mạng là chi phí học được. Chi phí ước tính
sẽ bằng chi phí học được nếu không có lỗ hổng nào trong mạng. Chi phí học được sẽ được
truyền lại một chặng khi gói dữ liệu tới vùng đích. Dựa trên thông tin nhận thức về năng
lượng, GEAR chọn chặng lân cận gần đó một cách thông minh để định tuyến dữ liệu đến
vùng đích một cách tiết kiệm năng lượng. Một dữ liệu đến vùng đích, GEAR sẽ phân tán
dữ liệu đến tất cả các nút trong vùng.
Có 2 giai đoạn trong thuật toán GEAR như trong hình 3.8. Giai đoạn đầu tiên dữ
liệu được chuyển tiếp tới vùng đích. Giai đoạn thứ hai phân tán gói tin trong vùng đích.
Trong giai đoạn đầu tiên, nút cảm biến không dây nhận dữ liệu đảm bảo có một nút lân cận
gần khu vực đích hơn. Nếu có nhiều hơn một nút lân cận, thì nút cảm biến chọn một nút
gần nhất. Nếu không có lân cận nào trên đường truyền đến đích thì nút được đánh dấu như
một lỗ hổng mạng. Trong giai đoạn thứ hai, sau khi gói tin đến vùng đích, nó có thể được
phân phối để hạn chế tràn dữ liệu.

Giai đoạn 1: Chuyển dữ liệu đến vùng đích sử dụng đường đi ngắn nhất

Giai đoạn 2: Tràn dữ liệu trong vùng mục tiêu


Hình 3. 8 Hai giai đoạn trong GEAR

34
3.3 Giao thức định tuyến AODV
Thuật toán AODV là một giao thức định tuyến đa chặng cho phép các nút di động
tham gia để thành lập và duy trì mạng Ad hoc. AODV cho phép các nút di động đạt được
tuyến đường nhanh chóng đến đích mới và không yêu cầu duy trỳ các tuyến đường đến
đích mà không có giao tiếp. AODV cũng cho phép các nút di động đáp ứng kịp thời các sự
cố trong liên kết và thay đổi cấu trúc trong mạng.
Có ba kiểu bản tin xác định trong AODV: RREQ (Route Requests), RREP (Route
Replies) và RERR (Route Errors). Khi cần một tuyến đường đến điểm đích mới, nút sẽ
phát một RREQ. Một định tuyến có thể xác định khi RREQ gửi tới đích hoặc một nút có
khả năng đến đích. Tuyến đường được tạo sẵn bằng cách gửi bản tin của RREP phản hồi
đến RREQ và thiết lập một bảng định tuyến tại mỗi nút. Hình 3.9 minh họa qua trình truyền
bản tin của RREQ và RREP.

Hình 3. 9 Quá trình truyền RREQ và RREP trong AODV

Đối với các nút theo dõi trạng thái liên kết của các chặng tiếp theo cho các tuyến
hoạt động, một bản tin HELLO thường xuyên được gửi đi để phát hiện liên kết lỗi trong
một tuyến đang hoạt động, nếu không nhận được ACK, liên kết lỗi bị vô hiệu hóa. Do đó,
sẽ có một bản tin RERR được gửi đi với mục địch thông báo đến các nút khác việc bị mất
liên kết. Bản tin RERR thông báo không thể đến đích bằng liên kết bị lỗi.
Hình 3.10, 3.11, 3.12 miêu tả các dạng bản tin trong giao thức định tuyến AODV.

35
Hình 3. 10 Bản tin RREQ

Hình 3. 11 Bản tin RREP

36
Hình 3. 12 Bản tin RERR

3.4 Giao thức định tuyến Cluster-Tree


3.4.1 Mạng đơn cụm
Một mạng đơn cụm chỉ có một Cluster Head .Tất cả các nút được kết nối đến Cluster
Head với một chặng và cấu trúc liên kết của mạng trở thành một liên kết hình sao. Mỗi nút
trong mạng đều đang chờ để nhận một gói tin HELLO từ nút hoạt động. Gói tin HELLO
gồm địa chỉ MAC của Cluster Head và số ID của Cluster Head, nó bằng 0 trong mạng đơn
cụm. Nếu bất kỳ nút nào không nhận gói tin HELLO sau một khoảng thời gian nhất định
nút đó sẽ chuyển sang hoạt động như một Cluster Head. Sau đó, nó phân phát gói tin
HELLO mới đến tất cả các nút lân cận và chờ để nhận gói tin yêu cầu kết nối Connection
Request (CON REQ) từ các nút lân cận. Nếu các nút lân cận không nhận bất kỳ gói CON
REQ, nó sẽ quay lại các nút bình thường và chờ nhận lại gói tin HELLO. Cluster Head
cũng có thể được chọn dựa trên một số tính năng như phạm vi truyền, mức công suất, ….

Hình 3. 13 Thành lập liên kết giữ cụm trưởng và nút.

37
Như hình 3.13 khi Cluster Head nhận một gói tin CON REQ từ nút lân cận, nó sẽ
phản hồi với gói tin phản hồi kết nối Connection Resonse (CON RES). Gói tin CON RES
bao gồm IDE nút không phải Cluster Head. Cuối cùng, nút đó nhận ID nút và gửi gói tin
ACK đến nút Cluster Head. Nếu ID nút đạt đến giới hạn tối đa hoặc đến giới hạn nào khác
thì Cluster Head từ chối mọi yêu cầu kết nối của nút mới. Sự từ chối được báo hiệu bởi quá
trình phân phát ID đặc biệt đến các nút. Danh sách nhập tất cả các nút lân cận và đường đi
sẽ được cập nhật định kỳ khi gửi gói tin HELLO. Một nút có thể nhận gói tin HELLO từ
nút ở cụm khác. Do đó, nút sẽ lưu cụm ID (CID) của nút truyền trong danh sách nút lân
cận của nó. Sau đó, nó sẽ truyền CID với ID nút lân cận bên trong gói tin LINK STATE
REPORT đến Cluster Head của nó. Sau đó, Cluster Head sẽ biết những cụm mà nó có giao
nhau. Gói tin LINK STATE REPORT cũng cho phép Cluster Head xác định bất kỳ sự cố
nào trong mạng. Nếu Cluster Head muốn cập nhật cấu trúc liên kết của mạng, nó có thể đạt
được bằng cách gửi gói TOPOLOGY UPDATE. Nếu Cluster Head dừng hoạt động thì việc
truyền gói HELLO cũng sẽ bị dừng lại. Do đó, tất cả các nút sẽ biết rằng Cluster Head
không hoạt động. Sau đó, Cluster Head mới sẽ được cấu hình lại bằng cách lặp lại quy trình
tương tự.
3.4.2 Mạng đa cụm
Mạng đa cụm bao gồm nhiều cụm đơn. Mạng đa cụm cần một thiết bị xác định (DD)
để cung cấp một CID đến mỗi Cluster Head và để tính đường ngắn nhất từ cụm đến DD.
Sau đó DD sẽ tham gia vào mạng, nó sẽ hoạt động như một Cluster Head và sẽ gửi gói
HELLO đến lân cận của nó. Nếu Cluster Head nhận gói HELLO, nó sẽ gửi một CON REQ
và kết hợp với DD để tạo thành cụm cao nhất (cụm 0). Nếu Cluster Head được kết nối trực
tiếp đến DD, Cluster Head sẽ trở thành một nút biên (Border node) với hai địa chỉ logic.

38
Hình 3. 14 Mạng đa cụm.
Như trong hình 3.15, nếu một nút thông thường nhận được gói HELLO từ DD thay
vì Cluster Head của nó, nó sẽ hoạt động như nút biên đến mẹ của nó. Cluster Head sẽ gửi
một gói NET CON REQ để thiết lập kết nối với DD. Sau đó, nút biên sẽ gửi gói CID REQ
đến DD. Nếu DD gửi gói CID RES chứa CID mới đến nút biên, nút biên sẽ gửi một gói
NET CON RES đến Cluster Head với CID mới. Thêm vào đó, Cluster Head sẽ thông báo
đến các nút của nó về CID mới.

Hình 3. 15 Cluster Head liên kết với DD bằng nút biên

39
Chương 4
Thiết kế phần mềm nhúng cho Mạng cảm biến không dây

Phát triển phần mềm nhúng là nhiệm vụ cốt lõi trong thiết kế và triển khai Mạng
cảm biến không dây. Chương bốn bắt đầu với quy trình thiết kế phần mềm nhúng, sau đó
giới thiệu kiến trúc phần mềm nhúng. Thiết kế ứng dụng ZigBee và thiết kế ứng dụng
Contiki 6LowPAN được đưa ra để minh họa cấu trúc phần mềm nhúng cho Mạng cảm biến
không dây. Thiết kế trình điều khiển cảm biến được nhấn mạnh trong chương và được minh
họa bằng thiết kế bắt nguồn cho cảm biến lưu lượng tương tự và cảm biến nhiệt độ kỹ thuật
số. Việc thực hiện quy trình thiết lập Mạng cảm biến không dây được thể hiện bằng các
đoạn mã sử dụng ngăn xếp IEEE 802.15.4. Chương này liên quan đến sự hiểu biết về quá
trình thiết kế và mã hóa cơ bản của phần mềm nhúng để thiết lập một WSN.
4.1. Giới thiệu
Thiết kế phần mềm nhúng là nhiệm vụ quan trọng và khó nhất trong thiết kế và phát
triển Mạng cảm biến không dây.
Hệ thống nhúng có mặt ở khắp mọi nơi ví dụ điển hình là điện thoại di động, lò vi
sóng, máy ảnh kỹ thuật số,v.v. Phần mềm nhúng là phần mềm máy tính đóng một vai trò
không thể thiếu trong các thiết bị điện tử. Phần mềm nhúng thường được viết cho bộ vi xử
lý dành riêng cho ứng dụng, bộ vi xử lý này có khả năng tính toán thấp, chi phí thấp, bộ
nhớ hạn chế và tiêu thụ điện năng thấp. Phần mềm nhúng thường được chạy trên hệ điều
hành thời gian thực và các giao thức truyền thông được thiết kế để sử dụng trong hệ thống
nhúng có sẵn dưới dạng mã nguồn đóng từ các công ty sản xuất bộ vi xử lý. Phần mềm
nhúng phải được tải lên, xác minh và chạy trên bộ vi xử lý thích hợp đồng thời được tích
hợp trong thiết bị điện tử sau khi hoàn thành thiết kế. Lý tưởng nhất là phần mềm nhúng
nên được thiết kế sau khi phần cứng liên quan có sẵn. Với sự phát triển của các môi trường
mô phỏng phần mềm nhúng khác nhau, thiết kế phần mềm nhúng có thể được tiến hành
song song hoặc thậm chí trước khi thiết kế phần cứng. Một ví dụ vê môi trường như vậy là
COOJA (http://www.contiki-os.org/start.html), là một trình mô phỏng Mạng cảm biến
không dây sử dụng hệ điều hành Contiki (OS).
Phần mềm nhúng và phần cứng tương ứng tạo thành một hệ thống nhúng cho một
ứng dụng cụ thể. Quá trình thiết kế hệ thống nhúng được trình bày trong hình 4.1. Bắt đầu
với một tập hợp các yêu cầu của hệ thống, sau đó chuyển sang thiết kế kiến trúc hệ thống
và lựa chọn bộ vi xử lý. Thiết kế phần mềm và thiết kế phần cứng được thực hiện song
song trước khi chúng được tích hợp với nhau.

40
System

Requirements

System

Architecture

Microprocessor

Selection

Embedded
Hardware Design
Software Design

Hardware and

Software

Integration

Hình 4. 1 Quy trình thiết kế hệ thống nhúng.

4.2. Thiết kế phần mềm nhúng cho Mạng cảm biến không dây
Như chúng ta đã biết, kiến trúc của phần mềm nhúng khác nhau giữa các hệ thống,
nó tùy thuộc vào các bộ vi điều khiển và các giao thức truyền thông được sử dụng trong
các hệ thống nhúng. Một ngăn xếp giao thức đã được đưa ra tạo thành kiến trúc phần mềm
cho Mạng cảm biến không dây. Ngăn xếp giao thức bao gồm bốn lớp, cụ thể: lớp phần
cứng, lớp MAC,lớp mạng và lớp ứng dụng (sắp xếp theo thứ tự từ dưới lên). Hình 4.2 đưa
ra cách triển khai điển hình của kiến trúc phần mềm nhúng cho Mạng cảm biến không dây.

41
Hình 4. 2 Kiến trúc phần mềm.

4.2.1. Phát triển ứng dụng Jennic ZigBee


Jennic cung cấp quy trình phát triển ứng dụng ZigBee được trình bày dưới dạng cấu
trúc phần mềm nhúng chung dựa trên vi mạch Jennic, như trong hình 4.3. Có 10 chức năng
được xác định trước như tác vụ người dùng và tác vụ BOS / Stack, sau đó là các tác vụ hệ
điều hành cơ bản (BOS) mà không cần người dùng can thiệp. Nhiệm vụ phát triển phần
mềm nhúng là thực hiện 10 chức năng được xác định trước này.
Khi một nút cảm biến được khởi động, chương trình sẽ bắt đầu bằng cách thực hiện
chức năng ‘‘AppColdStart’’, theo đó hệ thống được khởi tạo. Bất kỳ biến người dùng
hoặc thiết bị ngoại vi hệ thống nào như bộ định thời hoặc cổng UART đều có thể được
khởi tạo trong hàm này. Các tham số hệ thống ZigBee thiết yếu như kênh vô tuyến và nhận
dạng mạng cũng được định cấu hình ở đây, để cho phép nút cảm biến tham gia đúng Mạng
cảm biến không dây. Cuối cùng, BOS được khởi tạo và khởi động, buộc nút cảm biến phải
xử lý các sự kiện phần cứng. Sau khi khởi tạo hệ thống, BOS sẽ thực hiện một số chức
năng bên trong trước khi gọi hàm ‘‘JZA_vAppDefineTasks’’, đây là nơi ứng dụng người
dùng có thể đăng ký bất kỳ tác vụ bổ sung nào với BOS. Bằng cách thực thi một chức năng
khởi tạo khác ‘‘JZA_boAppStart’’, thiết bị ZigBee đã đăng ký có thể được chạy với tư

42
cách là thiết bị điều phối ZigBee, Bộ định tuyến hoặc thiết bị kết thúc thông qua lệnh gọi
đến ngăn xếp ZigBee.

Hình 4. 3 Cấu trúc phần mềm nhúng ZigBee chung.

Khi BOS và ngăn xếp ZigBee được khởi động, BOS sẽ chuyển quyền kiểm soát cho
ứng dụng người dùng thông qua các chức năng sau:
• JZA_vAppEventHander: đây là một chức năng ứng dụng người dùng,
được gọi bởi BOS theo các khoảng thời gian đều đặn. Bất kỳ mã ứng dụng
người dùng nào yêu cầu thực thi thường xuyên nên được đặt ở đây.

43
• JZA_vStackEvent: hàm này được gọi để xử lý các sự kiện khác từ các lớp
dưới của ngăn xếp.
• JZA_vPeripheralEvent: hàm này được gọi khi ngắt được tạo ra bởi thiết
bị ngoại vi của hệ thống, chẳng hạn như bộ hẹn giờ kích hoạt hoặc đường
DIO đang được xác nhận. Nó được gọi trong khi bộ xử lý đang chạy ở chế
độ gián đoạn. Thông tin về ngắt được ghi lại trong một hàng đợi FIFO đơn
giản để sau này được đọc bởi JZA_vAppEventHandler ().
• JZA_bAfKvpObject: hàm này chỉ được gọi khi khung lệnh cặp giá trị
khóa (KVP) đã được nhận từ một nút khác qua radio. Mã ứng dụng nên được
thêm vào trong hàm này để xử lý lệnh đến và tạo phản hồi nếu cần.
• JZA_bAfMsgObject: chức năng này chỉ được gọi khi khung MSG đã được
nhận từ một nút khác, qua radio. Mã ứng dụng nên được thêm vào chức năng
này để xử lý tin nhắn đến.
• JZA_vAfKvpResponse: hàm này được gọi khi một khung phản hồi KVP
đã được nhận từ một nút khác. Mã ứng dụng nên được thêm vào trong chức
năng này để nhận và hoạt động trên khung phản hồi.
• JZA_vZdpResponse: hàm này được gọi khi nhận được phản hồi từ đối
tượng ZigBee Device Profile.
Sau khi thực hiện các chức năng này, việc thiết kế mã nhúng cho một nút cảm biến
được hoàn thành. Sau đó, biên dịch và tải xuống mã nhúng vào phần cứng.
4.2.2. Phát triển ứng dụng Contiki 6LowPAN
Contiki (2012) là một môi trường phần mềm nhúng khác cho Mạng cảm biến không
dây. Tất cả các chương trình Contiki được gọi là quy trình, là một đoạn mã được thực thi
thường xuyên bởi hệ điều hành Contiki. Các quy trình trong Contiki thường được bắt đầu
khi hệ thống khởi động hoặc khi một mô-đun có chứa quy trình được tải vào hệ thống. Các
quy trình chạy khi một sự kiện xảy ra, chẳng hạn như bộ hẹn giờ kích hoạt hoặc sự kiện
bên ngoài xảy ra.
Mã nhúng trong Contiki có thể chạy một trong hai bối cảnh thực thi: hợp tác hoặc
tiên đoán. Mã chạy trong ngữ cảnh thực thi hợp tác chạy tuần tự với mã khác trong cùng
ngữ cảnh. Mã hợp tác phải chạy hoàn thành trước khi bất kỳ mã hợp tác nào khác có thể
chạy. Mã ưu tiên có thể làm gián đoạn mã hợp tác bất cứ lúc nào. Khi mã ưu tiên làm gián
đoạn mã hợp tác, mã hợp tác sẽ không tiếp tục cho đến khi việc thực thi mã ưu tiên chấm
dứt. Khái niệm về hai bối cảnh lập lịch của Contiki được minh họa trong hình 4.4. Các quy
trình luôn chạy trong bối cảnh hợp tác. Bối cảnh phủ đầu được sử dụng bởi trình xử lý ngắt

44
trong trình điều khiển thiết bị và bởi các tác vụ thời gian thực đã được lên lịch cho một thời
hạn cụ thể.

Hình 4. 4 Bối cảnh thực thi của Contiki.

Một quy trình Contiki bao gồm hai phần: khối điều khiển quy trình và luồng quy
trình. Khối điều khiển quy trình, được lưu trữ trong RAM, chứa thông tin thời gian chạy
về quá trình như tên của quá trình, trạng thái của quá trình và một con trỏ đến luồng quy
trình. Kích thước của nó có thể rất nhỏ và nó chỉ yêu cầu một vài byte bộ nhớ. Luồng quy
trình là mã của quy trình và được lưu trữ trong ROM.
Một khối điều khiển quá trình không được khai báo hoặc xác định trực tiếp mà thông
qua macro PROCESS (). Macro này nhận hai tham số: tên biến của khối điều khiển quy
trình, được sử dụng khi truy cập quy trình và tên văn bản cho quy trình, được sử dụng trong
gỡ lỗi và khi in ra danh sách các quy trình đang hoạt động cho người dùng. Định nghĩa của
khối điều khiển quá trình tương ứng với ví dụ Hello World được hiển thị bên dưới.
PROCESS(hello_world_process, ‘‘Hello world process’’);

Như đã mô tả trước đây, một chuỗi quy trình chứa mã của quy trình. Một ví dụ được
đưa ra dưới đây.
PROCESS_THREAD(hello_world_process, ev, data)
{
PROCESS_BEGIN();

45
printf(‘‘Hello, world\n’’);
PROCESS_END();
}

Hình 4.5 đưa ra một bức tranh chung về quy trình Contiki điển hình. Nó hiển thị
chuỗi các định nghĩa, vì chúng nên được đưa vào để viết một quy trình Contiki hoạt động.
Sau khi định nghĩa của khối điều khiển quá trình, ”AUTOSTART_PROCESS” được gọi
để bắt đầu quá trình, tiếp theo là định nghĩa của “PROCESS_THREAD”.
“PROCESS_BEGIN” và “PROCESS_END” phải được gọi để bắt đầu và kết thúc quá
trình. Mã quy trình được chèn vào vòng lặp.

46
Hình 4. 5 Cấu trúc phần mềm nhúng Contiki chung

Trong ví dụ sau, một bộ đếm thời gian được sử dụng để in ra một dòng văn bản cụ
thể sau mỗi ba giây. Tên quy trình là ‘‘Example process’’. Cấu trúc bộ hẹn giờ “etimer”
được triển khai để tạo sự kiện bộ hẹn giờ, có tên là “PROCESS_EVENT_TIMER”. Hàm
“PROCESS_WAIT_EVENT_UNTIL” được sử dụng trong vòng lặp “WHILE”.
#include ‘‘contiki.h’’
#include\stdio.h[
PROCESS(example_process, ‘‘Example process’’);

47
AUTOSTART_PROCESSES(&example_process);
PROCESS_THREAD(example_process, ev, data){
static struct etimer timer;
PROCESS_BEGIN();
etimer_set(&timer, CLOCK_CONF_SECOND*3); while(1){
PROCESS_WAIT_EVENT_UNTIL(ev ==
PROCESS_EVENT_TIMER);
printf(‘‘Hello Mr. Yang To Saudi Arabia\r\n’’);
etimer_reset(&timer); }
PROCESS_END();
}

4.3. Phát triển trình điều khiển cảm biến


Từ góc nhìn của các thành phần phần cứng, một Mạng cảm biến không dây điển
hình bao gồm các cảm biến và mô-đun truyền dẫn không dây. Để kích hoạt hoạt động của
các thành phần này, cần có phần mềm nhúng, các thành phần của chúng thường được gọi
là '' trình điều khiển ''. Thông qua các trình điều khiển cụ thể, phần cứng '' im lặng '' có thể
'' hoạt động '' để thực hiện các nhiệm vụ.
Các cảm biến được kết nối là các thiết bị thực tế để thu thập thông tin môi trường.
Nhiều cảm biến thường được sử dụng có khả năng được gói gọn bên trong một bộ phận
nhỏ và được điều khiển bởi một bộ phận điều khiển thu nhỏ cụ thể. Các nhà phát triển phần
mềm nhúng không cần thiết phải truy cập vào lớp vật lý của các cảm biến. Bộ phận điều
khiển sẽ chịu trách nhiệm hoàn thành các chức năng được thiết kế của cảm biến và tương
tác với hệ thống điều khiển bên ngoài.
Thiết kế phần mềm nhúng để phát triển trình điều khiển cảm biến là cho phép nút
cảm biến không dây thu nhận dữ liệu cảm biến từ các cảm biến dự định hoặc đặt hướng
dẫn người dùng cho cảm biến. Mặc dù nguyên lý hoạt động của các cảm biến khác nhau
có thể hoàn toàn khác nhau, nhưng tương tác của cảm biến (tức là giao diện đầu ra và đầu
vào) có thể được chia ngắn gọn thành hai dạng: giao diện kỹ thuật số và giao diện tương
tự. Truyền thông qua giao diện kỹ thuật số được thực hiện bằng cách sử dụng một khoảng
thời gian nhất định của điện áp mức cao và mức thấp để thể hiện tín hiệu nhị phân của ‘‘ 1
’’ và ‘‘ 0 ’’. Bằng cách kết hợp '' 0 '' và '' 1 '' có ý nghĩa bằng cách sử dụng các quy tắc cụ
thể,

48
Digital Interface ( I2C, UART , SMBus, etc.)

Internal Microprocessor

Sensor Element ADC

Hình 4. 1 Các thành phần cảm biến

Các nhà phát triển có thể gửi và nhận nội dung mà cả khối điều khiển cảm biến (bộ
vi xử lý cảm biến) và hệ thống điều khiển bên ngoài (chip không dây) có thể hiểu được.
Hình 4.6 đưa ra cấu trúc chung của cảm biến kỹ thuật số. Một bộ ADC bên trong hoạt động
với bộ vi xử lý để xuất tín hiệu kỹ thuật số thông qua giao diện kỹ thuật số. Có nhiều tiêu
chuẩn giao tiếp kỹ thuật số có sẵn để xây dựng giao diện kỹ thuật số (tức là các quy tắc
truyền thông), chẳng hạn như giao thức truyền thông nối tiếp, giao thức SMBus (Bus quản
lý hệ thống, do Intel định nghĩa), giao thức I2C (Mạch tích hợp liên thông, được xác định
bởi công ty trước đây là Philips Semiconductors, nhưng hiện nay là NXP Semiconductors),
Universal Asynchronous Receiver / Transmitter (UART), giao diện 1- Wire (được định
nghĩa bởi Maxim Integrated Products, Inc), v.v.
Giao diện truyền thông tương tự đơn giản hơn so với giao diện kỹ thuật số. Thông
thường, các cảm biến tương tự xuất ra mức điện áp tương ứng, mức điện áp này liên quan
đến sự thay đổi của hiện tượng cảm biến. Nó có thể được sử dụng bởi hệ thống điều khiển
bên ngoài khi nó đã được chuyển đổi thành dạng tín hiệu kỹ thuật số bằng cách sử dụng
ADC. Một số loại đầu ra cảm biến tương tự bao gồm việc gửi một chuỗi các xung, tương
quan với cường độ của các hiện tượng cảm nhận (giọng nói, ánh sáng, nhiệt độ, v.v.) đến
bộ điều khiển bên ngoài. Số lượng xung sẽ được lấy mẫu bởi hệ thống điều khiển bên ngoài
trong một khoảng thời gian nhất định và sau đó được chuyển đổi thành một giá trị có ý
nghĩa bằng cách sử dụng công thức xác định trước.

49
4.3.1. Quy trình chung của trình điều khiển cảm biến
Trình điều khiển cảm biến phải cung cấp cho các bộ điều khiển bên ngoài khả năng
thu được các kết quả đọc của cảm biến và truyền đạt hướng dẫn của người dùng tới các
cảm biến. Nói chung, một thiết kế trình điều khiển cảm biến hoàn chỉnh bao gồm các bước:
khởi tạo cảm biến, cài đặt thông số cảm biến, thu thập dữ liệu cảm biến và quản lý năng
lượng cảm biến (ngủ, chờ và chờ). Hình 4.7 minh họa lưu đồ chung để thiết kế trình điều
khiển cảm biến.

Start

Sensor
Initialzation
Y

Error
Error
Report

User Instructions

Reading Waking Parameter


Standby Sleep
Sensor Up Setting

Execution Y Error
Error Report

Hình 4. 7 Lưu đồ chung của trình điều khiển cảm biến.

Quy trình bao gồm:

50
• Khởi tạo cảm biến (Sensor Initialzation): quá trình đầu tiên là ‘‘Khởi tạo cảm
biến’’, có nhiệm vụ khởi tạo tất cả các thông số cảm biến mặc định. Các giai đoạn
này bao gồm: bật nguồn cảm biến, thiết lập giao diện giao tiếp và khôi phục cài đặt
mặc định cho cảm biến.
• Báo cáo lỗi (Error Report): Trong thời gian khởi động, các cảm biến có thể
không phản hồi chính xác, có nghĩa là một số loại lỗi có thể đã xảy ra. Để bảo vệ hệ
thống điều khiển bên ngoài khỏi cảm biến bị lỗi, ở giai đoạn này cần một số quy
trình xử lý lỗi tương ứng.
• Hướng dẫn sử dụng (User Instructions): Sau khi khởi tạo thành công các cảm
biến, trình điều khiển phải sẵn sàng thực hiện các hướng dẫn sử dụng. Trước khi kết
thúc thời gian làm việc, trình điều khiển cảm biến có thể ở một trong năm trạng thái
sau: Đọc Cảm biến, Chế độ chờ, Ngủ, Thức dậy và Cài đặt thông số. Các đặc tính
và cách sử dụng của các cảm biến phụ thuộc vào các yêu cầu ứng dụng. Không thể
đưa ra một mô tả chi tiết cho tất cả các trình thiết kế điều khiển cảm biến. Tuy nhiên,
năm giai đoạn trên là các đơn vị cơ bản cho dù sử dụng cảm biến nào.
+ Đọc cảm biến (Reading Sensor): là chức năng quan trọng nhất trong thiết kế
trình điều khiển cảm biến. Để có được dữ liệu cảm biến, bộ điều khiển bên ngoài sẽ gửi
lệnh yêu cầu để bắt đầu quy trình đọc. Khi hoàn thành quy trình đọc, dữ liệu cảm biến sẽ
có sẵn dưới dạng đầu ra. .
+ Chế độ chờ, Ngủ và Thức dậy (Standby, Sleep, Waking up): Mạng cảm biến
không dây thường hoạt động với tài nguyên cực kỳ hạn chế. Đặc biệt, quản lý điện năng
rất quan trọng để kéo dài tuổi thọ của hệ thống. Đặc điểm kỹ thuật thực tế của việc quản lý
điện năng có thể thay đổi theo từng trường hợp, vì các đặc tính của cảm biến là khác nhau.
Nói chung, ba chức năng (chờ, ngủ và thức dậy) phải luôn được bao gồm trong thiết kế
trình điều khiển. Các cảm biến nên được giữ ở trạng thái ngủ càng lâu càng tốt, miễn là
không cần tác vụ cảm biến.
+ Cài đặt tham số (Parameter Setting): Nếu cấu hình cảm biến có thể điều chỉnh
được, trình điều khiển cảm biến nên cho phép các ứng dụng (tức là người dùng) thay đổi
các thông số khi được yêu cầu.
+ Lỗi thực thi (Execution Error): Nếu việc thực thi các hướng dẫn của người dùng
không thành công, các thiết kế nên theo dõi lỗi trả về của các lệnh thực thi và đưa nó vào
chức năng xử lý lỗi tương ứng. Các chức năng này là một biện pháp hiệu quả để duy trì sự
ổn định của hệ thống.

51
4.3.2. Trình điều khiển cảm biến cho cảm biến dòng tương tự
Cảm biến lưu lượng FT110 (Gems Sensors 2008) được sử dụng trong phần này để
minh họa cách thiết kế và lập trình trình điều khiển cảm biến cho cảm biến tương tự có sự
cố phần cứng. Đặc điểm kỹ thuật của cảm biến lưu lượng được liệt kê trong Bảng 4.1.

Bảng 4.1. Đặc điểm kỹ thuật của cảm biến lưu lượng
Theo bảng 4.1, cảm biến lưu lượng FT110 tạo ra 2.200 xung mỗi lít. Do đó, trình
điều khiển của cảm biến lưu lượng là sử dụng bộ vi điều khiển không dây để ghi lại số
lượng xung được tạo ra bởi cảm biến lưu lượng và chuyển đổi số thành tốc độ dòng chảy.
Trong ứng dụng này, một bộ hẹn giờ chức năng chụp ảnh (Timer0ona JN5139chipis được
chọn ở đây) được sử dụng để đếm các xung. Bộ đếm thời gian được cấu hình để tạo ra sự
gián đoạn khi nó đã đếm được 22 xung. Cứ 22 xung chỉ ra 10 ml nước sử dụng.
Bước 1: kích hoạt tính năng ngắt Timer0 của bộ định thời. Hằng số
“E_AHI_TIMER_0” đại diện cho bộ định thời Timer0. Các hàm được xác định
trước “vAHI_TimerEnable” và “vAHI_TimerClockSelect” được sử dụng để
khởi tạo bộ hẹn giờ.
vAHI_TimerEnable(E_AHI_TIMER_0,
0,
FALSE,
TRUE,
FALSE); vAHI_TimerClockSelect(E_AHI_TIMER_0, TRUE, FALSE);

Bước 2: đặt trước một giá trị cho bộ định thời Timer0. Khi Timer0 đếm 22 xung từ
cảm biến FT110, nó tạo ra một sự gián đoạn. Hàm được xác định trước
“vAHI_TimerStartRepeat” được sử dụng để đặt giá trị cho bộ đếm thời gian tạo
ra sự gián đoạn.
vAHI_TimerStartRepeat(E_AHI_TIMER_0,
0x0000,

52
22); //number 22 is set for FT110 sensor

Bước 3: xử lý việc đọc cảm biến lưu lượng. Khi chip JN5139 phát hiện sự gián đoạn
được tạo ra từ Timer 0, nó sẽ xử lý việc đọc cảm biến lưu lượng. Hằng số
“E_AHI_DEVICE_TIMER0” cho biết rằng bộ vi điều khiển không dây JN5139
nhận được sự gián đoạn.
case E_AHI_DEVICE_TIMER0:
vProcessFlowMeter();
PRIVATE void vProcessFlowMeter(void)
{
/*water usage reading increase by 1 (Milliliter) when an interruption is
detected. */

/*Every 100 u32Liter increase by 1 (liter) and


interruptions,
u16MillLitre = 0*/
u16MillLitre++;
if(u16MillLitre
== 100) {
u32Litre++;
u16MillLitre = 0;
}
}

4.3.3. Trình điều khiển cảm biến cho cảm biến nhiệt độ kỹ thuật số
Cảm biến nhiệt độ kỹ thuật số Maxim DS18B20 (Maxim 2009) được chọn làm ví
dụ để chứng minh thiết kế dẫn xuất cảm biến cho cảm biến kỹ thuật số. Cảm biến DS18B20
là cảm biến kỹ thuật số tiêu thụ điện năng thấp điển hình. Tính năng yêu cầu nguồn điện
thấp (3.0–5.5VDC) và dải đo rộng (-55 đến +25 C) của nó làm cho nó phù hợp với nhiều
ứng dụng. Tất cả các hoạt động của cảm biến DS18B20 được thực hiện thông qua giao
diện 1-Wire độc đáo của nó. Hình 4.10 minh họa kết nối giữa cảm biến DS18B20 và bộ vi
điều khiển bên ngoài. Cảm biến nhiệt độ giao tiếp với bộ vi điều khiển bên ngoài (chip
JN5139 được chọn ở đây) thông qua giao diện 1-Wire, trong đó bộ vi điều khiển bên ngoài
được xác định là thiết bị chính và cảm biến DS18B20 được xác định là thiết bị phụ.

53
Hình 4.11 mô tả sơ đồ khối của cảm biến DS18B20. ‘‘ 64 -Bit ROM VÀ CỔNG 1-
Wire ’’ và ‘‘ SCRATCHPAD ’’ là hai không gian bộ nhớ mà trình điều khiển cảm biến
cần để hoạt động. Nhận dạng cảm biến 64 bit và giao thức giao diện 1 dây được lưu trữ
vĩnh viễn trong ‘‘ ROM 64-ROM VÀ CỔNG 1 dây ’’

DS18B20
Pull-up
Resistor VDD: External
Power Supply
GND:
Ground
Micro
Controller Data Line

DIO Port
(Digital Input/Output )

Hình 4. 8 Kết nối giữa cảm biến DS18B20 và bộ vi điều khiển bên ngoài

Hình 4. 9 Sơ đồ khối DS18B20.

54
Hình 4. 10 Biểu đồ thời gian khe thời gian Đọc / Ghi.
Bản đồ bộ nhớ để người dùng tiến hành cấu hình được cung cấp bởi bàn di chuột.
Bàn di chuột bao gồm 9 byte, chứa các thông số khác nhau. Ví dụ: byte đầu tiên và byte
thứ hai trong bàn di chuột lưu trữ số đọc của cảm biến, byte thứ ba và thứ tư là ngưỡng trên
và ngưỡng dưới của phép đo, byte thứ năm đến thứ bảy được dành cho mục đích sử dụng
khác như thiết lập độ phân giải, và byte cuối cùng là giá trị CRC để xác thực.
Các hoạt động cốt lõi của trình điều khiển cảm biến là khởi tạo cảm biến, cài đặt
thông số, đọc từ cảm biến và viết lệnh cho cảm biến như chuyển cảm biến sang chế độ chờ,
ngủ hoặc thức. Hình 4.12 minh họa biểu đồ thời gian khe thời gian đọc / ghi ’’ của cảm
biến DS18B20. Từ trái sang phải và từ trên xuống dưới thiết bị chính (trong trường hợp
này là JN5139) ghi logic ‘0’, ‘1’ và đọc logic ‘0’ và ‘1’ được hiển thị. Cảm biến thay đổi
trạng thái logic của nó để đáp ứng các yêu cầu hoạt động của thiết bị chủ.
Trước khi ghi hoặc đọc cảm biến nhiệt độ, cần tiến hành khởi tạo cảm biến nhiệt độ.

55
Thông thường, mỗi cảm biến DS18B20 có mã nhận dạng 64-bit duy nhất được lưu
trữ trong ‘‘ 64-ROM-ROM AND 1-Wire PORT ’’. ID cảm biến được sử dụng để phân biệt
một cảm biến riêng lẻ khi nhiều cảm biến được kết nối với bộ vi điều khiển thông qua giao
diện bus 1-Wire. Hàm u64ReadSensorID () được gọi và giá trị trả về là ID cảm biến, một
giá trị 64-bit, tức là uint64.

Tham số cấu hình thứ hai là độ phân giải nhiệt độ. Theo bảng dữ liệu của nhà sản
xuất (Maxim 2009), độ phân giải chuyển đổi có thể lập trình từ 9 đến 12 bit. Độ phân giải
chuyển đổi cao hơn sẽ mất thời gian chuyển đổi lâu hơn. Hai chức năng sau được thiết kế
để hoàn thành việc điều chỉnh độ phân giải chuyển đổi nhiệt độ: u8ReadConResolution ()
và u8SetConResolution (). Cái trước được sử dụng để đọc độ phân giải chuyển đổi từ cảm
biến và cái sau để đặt độ phân giải chuyển đổi mới. Giá trị trả về kiểu uint8 là giá trị 8 bit.

56
Sau khi khởi tạo và cấu hình cảm biến nhiệt độ, việc đọc nhiệt độ đạt được bằng
cách sử dụng hai hàm vStartConversion () và u16ReadTempe Heat (). Cảm biến DS18B20
được yêu cầu để bắt đầu chuyển đổi nhiệt độ. Khi chức năng được gọi, hệ thống phải bắt
đầu một bộ đếm thời gian, bộ hẹn giờ này sẽ hết hạn sau một khoảng thời gian nhất định.
Độ dài của khoảng thời gian được xác định bởi độ phân giải của chuyển đổi.

Việc đọc nhiệt độ thu được bằng cách gọi hàm u16Read Temperature (). Số đọc của
cảm biến được lưu trong byte đầu tiên và byte thứ hai của bàn di chuột trước khi được bộ
vi điều khiển đọc ra. Phạm vi trên và dưới của số đọc được đặt trong byte thứ ba và thứ tư
của bàn di chuột. Việc đọc được xác nhận bởi trình tạo CRC bằng cách gọi hàm
u8CRCCaculation ().

57
Tóm lại, bất kỳ trình điều khiển cảm biến kỹ thuật số nào cũng nên làm theo bảy
bước, cụ thể:
Bước 1. Khởi tạo cảm biến.
Bước 2. Đọc ID cảm biến duy nhất từ cảm biến.
Bước 3. Đọc độ phân giải chuyển đổi từ cảm biến.
Bước 4. Đặt độ phân giải chuyển đổi cho cảm biến.
Bước 5. Bắt đầu chuyển đổi đọc.
Bước 6. Đọc chỉ số cảm biến.
Bước 7. Xác nhận CRC.

58
Radio Channel
Assessment

Network
Initialization

Network
Establishment
Announcement

Listen for/Initiate Listen for/Initiate Network Command User Data


Joining Request Removal Request Transmission/Reception Transmission/Reception

Hình 4. 11 Quy trình khởi động Mạng cảm biến không dây

4.4. Triển khai Mạng cảm biến không dây với IEEE 802.15.4
Quy trình chung để thiết lập Mạng cảm biến không dây, bao gồm bảy giai đoạn: (1)
đánh giá kênh vô tuyến, (2) khởi tạo mạng, (3) thông báo thiết lập mạng, (4) lắng nghe và
bắt đầu yêu cầu tham gia, (5 ) lắng nghe yêu cầu xóa bắt đầu, (6) truyền và nhận lệnh mạng
và (7) truyền và nhận dữ liệu người dùng. Phần này trình bày việc thực hiện quy trình từ
quan điểm của thiết kế phần mềm nhúng. Quy trình được hiển thị trong hình 4.13 được áp
dụng như nhau cho việc triển khai áp dụng ngăn xếp ZigBee hoặc ngăn xếp IEEE 802.15.4.
Các quá trình xây dựng một Mạng cảm biến không dây tương tự nhau trong cả hai trường
hợp. Sự khác biệt là, ngăn xếp ZigBee cung cấp các chức năng quản lý thuận tiện hơn để
phát triển ứng dụng nhanh chóng chẳng hạn như giao thức định tuyến đa bước, v.v. Vì ngăn
xếp ZigBee được xây dựng trên ngăn xếp IEEE 802.15.4, phần này sẽ chỉ cung cấp việc
triển khai thủ tục cho ngăn xếp ZigBee, bằng cách áp dụng cú pháp của ngăn xếp Jennic
IEEE 802.15.4.
Hai lệnh gọi chức năng chính từ lớp mạng (NWK) đến lớp MAC bao gồm thực thể
quản lý lớp MAC (MLME) và lớp con phần chung MAC (MCPS) được thực hiện như sau:

59
Quy trình “vAppApiMcpsRequest” được sử dụng để chuyển các yêu cầu MCPS
từ lớp NWK hoặc Ứng dụng đến MAC. Tham số “psMcpsReqRsp” là một con trỏ đến
một cấu trúc chứa yêu cầu MCPS. Tham số “psMcpsSyncCfm” là một con trỏ đến một
cấu trúc chứa các kết quả của yêu cầu MCPS.
Có một số chức năng khác được yêu cầu khi thiết lập Mạng cảm biến không dây
IEEE 802.15.4. Hình 4.14 giới thiệu tổng quan về các chức năng (gọi và gọi lại) tạo nên
giao diện giữa các lớp mạng và lớp MAC. Các hàm gọi này cho phép các yêu cầu từ lớp
Mạng đến lớp MAC và sau đó các hàm gọi lại cho phép lớp MAC yêu cầu lớp Mạng phân
bổ không gian đệm và chuyển thông tin trở lại lớp Mạng.

Hình 4. 12 Tổng quan về giao diện giữa lớp NWK, lớp MAC và lớp PHY.
• Đánh giá kênh radio
Đánh giá kênh vô tuyến là nhiệm vụ đầu tiên được thực hiện khi một bộ PAN
Coordinator mạng IEEE 802.15.4 khởi động một Mạng cảm biến không dây. PAN
Coordinator phải đảm bảo rằng kênh vô tuyến mong muốn có sẵn để sử dụng và không có
xung đột mạng hiện có.

60
Đoạn mã sau được sử dụng để gửi yêu cầu quét năng lượng bằng cách gọi hàm
“vAppApiMlmeRequest ()”. Có hai tham số được yêu cầu bởi chức năng này. Tham số
đầu tiên là một con trỏ đến cấu trúc dữ liệu “MAC_MlmeReqRsp_s” chứa yêu cầu tới
MLME chẳng hạn như, loại quét, thời lượng quét và kênh quét, v.v. Tham số thứ hai là
một con trỏ đến cấu trúc dữ liệu “MAC_MlmeSyncCfm_s”, lưu giữ kết quả của yêu cầu
MLME.

Quét hoạt động sử dụng cấu trúc mã tương tự nhưng với kiểu quét
“MAC_MLME_SCAN_TYPE_ACTIVE”. Sau khi hoàn thành việc quét năng lượng và
hoạt động, PAN Coordinator phải biết liệu kênh và mã định danh mạng đã chỉ định có sẵn
để sử dụng hay không.
• Khởi tạo mạng
Nếu đánh giá kênh vô tuyến thành công, PAN Coordinator có thể bắt đầu quy trình
khởi tạo mạng, bao gồm số kênh, ID mạng, báo hiệu và siêu khung, v.v.

61
• Thông báo thành lập mạng
Thủ tục thông báo thiết lập mạng được xác định bởi các giao thức mạng được sử
dụng. Thông báo thực tế về sự tồn tại thường được thực hiện bằng cách gửi các tín hiệu
báo hiệu thường xuyên. Nếu giao thức không hỗ trợ phát tín hiệu báo hiệu thông thường,
giao thức phải có khả năng đáp ứng bất kỳ yêu cầu hợp lệ nào được gửi bởi các thiết bị
thực hiện đánh giá kênh vô tuyến. Thường xuyên gửi các tín hiệu báo hiệu
vAppApiMlmeRequest(&sMlmeReqRsp, &sMlmeSyncCfm);

Lắng nghe / Bắt đầu Yêu cầu Gia nhập và Lắng nghe và Bắt đầu Yêu cầu Xóa
Cũng như các mạng không dây khác, Mạng cảm biến không dây phải có thể mở
rộng phạm vi phủ sóng hoặc mở rộng dung lượng bằng cách sử dụng các thiết bị mới hoặc
loại bỏ các thiết bị kết nối mạng hiện có khi được yêu cầu làm như vậy khi nhận được
hướng dẫn hợp lệ. Ngăn xếp mạng của nó phải có một cơ chế được xác định trước để đối
phó với những thay đổi mạng như vậy.
Để tránh tạo các mục trùng lặp, một cơ chế đơn giản được cung cấp trong IEEE
802.15.4stack. Bằng cách kiểm tra địa chỉ mở rộng 64 bit duy nhất của thiết bị yêu cầu, bộ
điều phối PAN có thể xác định xem thiết bị này đã tồn tại trong danh sách cục bộ hay chưa.
Nếu đúng như vậy, nó sẽ đưa ra yêu cầu với cùng một địa chỉ mạng 16 bit. Nếu nó không
có trong danh sách cục bộ và nếu có sẵn dung lượng để sử dụng các thiết bị mạng mới, nó
62
sẽ cấp yêu cầu với địa chỉ mạng 16-bit mới được tạo bằng cách thêm 1 vào địa chỉ mạng
16-bit đã được cấp phát trước đó.
Trong đoạn mã sau, địa chỉ mạng 16 bit được lưu trong biến “u16ShortAdr”. Yêu
cầu tham gia và yêu cầu xóa được thực hiện bằng cách gửi phản hồi với loại yêu cầu
tương ứng là “MAC_MLME_RSP_ASSOCIATE” và
“MAC_MLME_RSP_DISASSOCIATE”. “MAX_END_DEVICES” là số lượng thiết
bị tối đa mà điều phối viên PAN có thể chấp nhận. Số lượng thiết bị đầu cuối hiện tại
được lưu trong trường “numEndDevices”.

Không giống như yêu cầu tham gia, yêu cầu xóa được thực hiện bởi một thiết bị
mạng. Loại yêu cầu là “MAC_MLME_RSP_ASSOCIATE” và địa chỉ mạng 16 bit sẽ là
địa chỉ ngắn điều phối viên được ký hiệu là “CoordShortAddr”.

63
• Truyền và nhận lệnh
Thông thường, các lệnh mạng được giữ ẩn đối với người dùng, nhưng đôi khi chúng
cần sự can thiệp của người dùng. Một mạng mạnh được cho là có khả năng thực hiện thuật
toán cần thiết để đối phó với các tình huống khác nhau xảy ra bên trong mạng mà không
cần bất kỳ sự can thiệp nào của người dùng. Tuy nhiên, phần mềm ứng dụng vẫn cần thiết
để duy trì khả năng quản trị trên mạng quản lý. Ví dụ: khi một hệ thống mạng bắt đầu tăng
mức độ bảo mật để áp dụng các thiết bị mới, chi tiết của bất kỳ thiết bị yêu cầu nào cần
được hệ thống quản lý lớp trên xem xét, thay vì tự động được quyết định bởi chính ngăn
xếp. Việc truyền và nhận lệnh mạng cũng được tiến hành bằng cách gửi yêu cầu tương ứng.
//Submitting the request when required
vAppApiMlmeRequest(&sMlmeReqRsp, &sMlmeSyncCfm);

• Truyền / nhận dữ liệu người dùng


Như được mô tả trong Sect. 2.3.7 Việc truyền và nhận dữ liệu người dùng chỉ có thể
là gián tiếp đối với các mạng hỗ trợ beacon sử dụng CSMA-CA có rãnh, nhưng có thể trực
tiếp hoặc gián tiếp đối với các mạng không hỗ trợ beacon sử dụng CSMA-CA không có
rãnh. Quá trình truyền gián tiếp từ bộ điều phối tới thiết bị mạng được trình bày trong đoạn
mã sau. Khi bộ điều phối có một gói để truyền tới thiết bị mạng, nó sẽ lưu trữ dữ liệu trong
bộ đệm cục bộ (trường sFrame.au8Sdu trong ví dụ sau) và liên kết '' danh sách địa chỉ đang
chờ xử lý '' (pu8Payload tại đây) với gói thông tin. Cuối cùng, nó gửi yêu cầu truyền / nhận
dữ liệu bằng cách gọi hàm vAppApiMcpsRequest, lớp mạng hoặc ứng dụng đến lớp con
phần chung MAC (MCPS).

64
4.5. Kết nối Mạng cảm biến không dây với Mạng công cộng bên ngoài
Mạng cảm biến không dây được thiết kế để thu thập dữ liệu từ các trường cảm biến
và chuyển dữ liệu đã thu thập đến trạm xử lý dữ liệu cục bộ hoặc từ xa thông qua cổng của
chúng, đây sẽ là một nút chìm được đặt tên cho mạng ZigBee và một bộ định tuyến biên
giới cho mạng 6LowPAN. Trạm xử lý dữ liệu cục bộ hoặc từ xa thường hoạt động trong
mạng công cộng với một giao thức truyền thông khác.

65
Hình 4. 13 Kết nối giữa Mạng cảm biến không dây và mạng công cộng.

Hình 4. 14 Định dạng bản tin.

Thông thường, một Mạng cảm biến không dây được liên kết với hệ thống WiFi và
sau đó thông qua hệ thống WiFi, được liên kết với Internet. Hình 4.15 minh họa kết nối
giữa Mạng cảm biến không dây 4 nút và mạng công cộng bên ngoài.
Trong hình 4.15, nút cục bộ có thể là một nút chìm hoặc một bộ định tuyến biên
giới. Tất cả thông tin thu thập được chuyển tiếp từ các nút cảm biến riêng lẻ đến nút cục
bộ. Sau đó, thông tin được chuyển đến truy cập mạng công cộng, nơi có một giao thức
được thiết kế đặc biệt để xử lý việc cung cấp dữ liệu đến thiết bị đầu cuối từ xa thông qua
mạng công cộng. Các hướng dẫn được gửi từ thiết bị đầu cuối từ xa tới Mạng cảm biến
không dây phải theo đường dẫn ngược lại. Vì mạng công cộng và Mạng cảm biến không
dây thường không sử dụng cùng một giao thức truyền thông, nên cần có một giao diện đầu
vào và đầu ra để thực hiện chức năng phiên dịch giữa hai hệ thống này. Trong hầu hết các
66
trường hợp, phần cứng được thiết kế đặc biệt được sử dụng để thực hiện giao diện đầu vào
và đầu ra của mạng. Ví dụ: kết nối giữa WiFi và ZigBee WSN được thực hiện bằng cách
nối mô-đun Digi connect Me (Digi International 2010) với chip Jennic ZigBee JN5139
thông qua giao diện nối tiếp tốc độ cao (UART) trong hệ thống tự động hóa gia đình (Gill
et năm 2009).
Đối với nhà thiết kế phần mềm nhúng, điều đặc biệt quan trọng là phải triển khai
một số loại cơ chế kiểm tra lỗi để phát hiện lỗi xảy ra trong quá trình truyền và nhận dữ
liệu. Bảng 4.2 minh họa một cách đơn giản để xác định định dạng của thông báo giao diện
ở cả hai phía.
Trong hình 4.16, định dạng bản tin bao gồm một chuỗi các byte. Byte đầu tiên chứa
độ dài của toàn bộ tin nhắn. Khi nhận byte đầu tiên, bộ nhận có thể xác định bao nhiêu byte
mà nó mong đợi trong quá trình truyền hiện tại. Nội dung thông báo chứa thông tin thông
thường, bao gồm loại lệnh và các tham số. Phần tử cuối cùng của định dạng thông báo phải
chứa giá trị CRC (kiểm tra dư thừa theo chu kỳ) của tất cả các phần tử thông báo ngoại trừ
chính trường CRC. Khi người nhận đã thu được thông điệp hoàn chỉnh, nó có thể tính toán
giá trị CRC cho (N - 1) byte đầu tiên và so sánh nó với byte cuối cùng. Nếu nó khớp, cuộc
tiếp nhận đã thành công. Nếu không, người nhận sẽ yêu cầu người gửi truyền lại hoặc thực
hiện các thuật toán xác định trước khác.

67
TÀI LIỆU THAM KHẢO

[1] Kazem Sohraby, Daniel Minoli, Taieb Znati (2007). Wireless Sensor Network
Technology,Protocol,and Application. John Wiley & Sons, Inc.
[2] Anna Hác (2003).Wireless Sensor Network Designs.John Wiley & Sons, Inc.
[3] Taub Schilling (1986). Principles of Communication Systems, 2nd Edition.
McGraw-Hill International Editions.
[4] Trần Văn Sư (2005). Truyền số liệu và mạng thông tin số. Nhà xuất bản đại Học
Quốc Gia TP.Hồ Chí Minh
[5] Vũ Đình Thành (2006). Nguyên lý thông tin tương tự - số. Nhà xuất bản đại Học
Quốc Gia TP.Hồ Chí Minh
[6] Lê Nhật Thăng, Nguyễn Quý Sỹ. Các kỹ thuật phân nhóm trong các mạng cảm
biến vô tuyến.
[7] Ngô Quang Anh (2005). Nghiên cứu chuẩn kết nối không dây ZIGBEE/IEEE
802.15.4 . Luận Văn Tốt Nghiệp, Trường đại Học Công Nghệ, đại Học Quốc Gia
Hà Nội.

68

You might also like