ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN VĂN BA
NGHIÊN CỨU MÃ ĐIỀU KHIỂN LỖI TRONG
MẠNG CẢM BIẾN KHÔNG DÂY ĐỂ NÂNG CAO
HIỆU QUẢ VIỆC SỬ DỤNG NĂNG LƯỢNG
Ngành: Công nghệ Điện tử - Viễn Thông
Chuyên ngành: Kỹ thuật điện tử
Mã ngành: 60 52 70
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: Pgs.Ts Vương Đạo Vy
HÀ NỘI - 2010
MỤC LỤC
MỞ ĐẦU 1
Chương 1. TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY (WSN) 3
1.1 Giới thiệu 3
1.2 Cấu trúc cho mạng cảm biến 5
1.2.1 Cấu trúc phẳng (Flat Architecture) 6
1.2.2 Cấu trúc tầng (Tiered Architecture) 6
1.2.3 Lựa chọn cấu trúc cho mạng cảm biến 9
1.3 Các giao thức đặc trưng của mạng cảm biến 11
1.3.1 Giao thức đồng bộ thời gian 11
1.3.1.1 Đồng hồ trong các node cảm biến 12
1.3.1.2 Đồng bộ thời gian trong mạng cảm biến 12
1.3.2 Giao thức vị trí 14
1.3.2.1 Định vị dựa vào mốc có sẵn 15
1.3.2.2 Định vị dựa vào vị trí tương đối 15
1.3.3 Định tuyến trong mạng cảm biến 16
1.3.3.1 Định tuyến trung tâm dữ liệu (Data Center Protocol) 17
1.3.3.1.1 SPIN (Sensor Protocols for Information via
Negotiation) 17
1.3.3.1.2 Truyền trực tiếp Directed Diffusion 18
1.3.3.2 Định tuyến phân cấp 20
1.4 Kiến trúc giao thức mạng 22
1.5 Lỗi trong quá trình tuyền tin 25
1.6 Một số ứng dụng trong mạng cảm biến 28
1.6.1 Ứng dụng trong quân đội 29
1.6.2 Ứng dụng trong môi trường 31
1.6.3 Ứng dụng trong chăm sóc sức khỏe 32
1.6.4 Ứng dụng trong gia đình 34
1.6.5 Ứng dụng trong giao thông 35
1.7 Những khó khăn trong việc phát triển mạng WSN 36
1.7.1 Giới hạn năng lượng 36
1.7.2 Bị giới hạn về dải thông 36
1.7.3 Bị giới hạn về phần cứng 36
1.7.4 Kết nối mạng không ổn định 37
1.7.5 Sự kết hợp chặt chẽ giữa sensor và môi trường tự nhiên 37
Chương 2: PHÁT HIỆN VÀ SỬA LỖI TRONG MẠNG CẢM BIẾN WSN 38
2.1 Giới thiệu 38
2.2 Các loại lỗi bit 41
2.3 Phát hiện lỗi 41
2.4 Sửa lỗi 45
Chương 3: MÃ ĐIỀU KHIỂN LỖI SỬ DỤNG TRONG WSN 52
3.1 Giới thiệu 52
3.2 Lý thuyết về mã hoá 52
3.3 Phương pháp sửa lỗi chuyển tiếp FEC 54
3.3.1 Mã hoá khối tuyến tính Linear Block Codes 56
3.3.1.1 Cách mã hoá 58
3.3.1.2 Cách giải mã 58
3.3.1.3 Các phát hiện lỗi 59
3.3.1.4 Cách sửa lỗi 60
3.3.2 Kỹ thuật ghép xen Interleaving 64
3.3.2.1 Khối xen dữ liệu 65
3.3.2.2 Kỹ thuật xen chập Convolution Interleaving 67
3.3.3 Mã sửa lỗi kép - Double error correction codes 68
3.4 Hiệu quả trong việc sử dụng năng lượng 70
3.4.1 Kiểm tra ngoài trời 71
3.4.2 Kiểm tra trong nhà 72
Chương 4. ĐIỀU KHIỂN LỖI ỨNG DỤNG CHIPCON CC1010 73
4.1 Giới thiệu 73
4.2 Tìm hiểu chương trình truyền nhận dữ liệu trong CC1010 74
4.2.1 Quá trình truyền dữ liệu giữa 2 nút mạng [14]: 74
4.2.2 Quá trình nhận dữ liệu giữa 2 nút mạng [14]: 77
4.3 Đề xuất sử dụng FEC cho tuyến truyền nhận dữ liệu giữa các node mạng
CC1010 82
4.3.1 Giả định bài toán và cách tính các từ mã 83
4.3.2 Chương trình truyền dữ liệu sử dụng các từ mã 85
4.4 Kết luận chương 4 86
KẾT LUẬN 87
TÀI LIỆU THAM KHẢO 88
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
STT
Từ viết tắt
Tên tiếng anh
1
ADC
Analogue-to-Digital Converter
3
APL
Application Layer
4
CMOS
Complementary Metal Oxide Semiconductor
5
CPU
Central Processing Unit
6
D-MAC
Data-Gathering Media Access Control
7
FEC
Forward Error Correction
8
FIFO
First-In, First-Out
9
GPS
Global Positioning System
10
I/O
Input/Output
11
LEACH
Low-Energy Adaptive Clustering Hierarchy
12
LED
Light-Emitting Diode
13
MAC
Medium Access Control
14
OS
Operating System
15
OSI
Open Systems Interconnection
16
RF
Radio Frequency
17
ROM
Read Only Memory
18
RSSI
Received Signal Strength Indicator
19
TCP
Transmission Control Protocol
21
WSN
Wireless Sensor Network
MỞ ĐẦU
Với sự phát triển không ngừng của công nghệ, con người luôn muốn ứng
dụng những công nghệ tiên tiến nhất phục vụ cho cuộc sống. Xu hướng mạnh là
phát triển các công nghệ không dây để thuận tiện hơn, các kỹ sư, nhà nghiên cứu đã
nghiên cứu những hệ thống mạng cảm biến không dây có thể nói là làm thay đổi
cuộc sống, bao gồm các cảm biến giá thành rẻ, tiêu thụ ít năng lượng và đa chức
năng đã nhận được những sự chú ý đáng kể. Hiện nay người ta đang tập trung triển
khai các mạng cảm biến để áp dụng vào trong cuộc sống hàng ngày. Đó là các lĩnh
vực về y tế, quân sự, môi trường, giao thông… Trong một tương lai không xa, các
ứng dụng của mạng cảm biến sẽ trở thành một phần không thể thiếu trong cuộc
sống con người nếu chúng ta phát huy được hết các điểm mạnh mà không phải
mạng nào cũng có được như mạng cảm biến.
Tuy nhiên mạng cảm ứng đang phải đối mặt với rất nhiều thách thức, một
trong những thách thức lớn nhất đó là nguồn năng lượng bị giới hạn và không thể
nạp lại. Hiện nay rất nhiều nhà nghiên cứu đang tập trung vào việc cải thiện khả
năng sử dụng hiệu quả năng lượng của mạng cảm biến trong từng lĩnh vực khác
nhau.
Đề tài “Nghiên cứu mã điều khiển lỗi trong mạng cảm biến không dây để
nâng cao hiệu quả việc sử dụng năng lượng” do PGS.TS Vương Đạo Vy hướng
dẫn, đã được tác giả nghiên cứu và thực hiện với mục tiêu đưa ra các phương pháp
phát hiện và sửa lỗi, từ đó đưa phương pháp phù hợp cho mạng cảm biến.
Luận văn gồm bốn chương. Chương 1 giới thiệu về mạng cảm biến WSN.
Chương 2 nghiên cứu về các phương pháp phát hiện và sửa lỗi. Chương 3 nghiên
cứu về mã điều khiển lỗi trong WSN. Dựa trên cơ sở lý thuyết chương 1, và nghiên
cứu các phương pháp phát hiện và sửa lỗi ứng dụng trong mạng cảm biến ở chương
2 và chương 3, tác giả đưa ra kết luận khách quan về hiệu quả của việc sử dụng
năng lượng.
Mặc dù đã cố gắng rất nhiều nhưng do hạn chế về tài liệu, trình độ nên tác
giả còn rất nhiều thiếu sót. Tác giả rất mong các thầy, các cô và các bạn đóng góp ý
kiến để đề tài được hoàn thiện hơn.
Trong suốt quá trình làm luận văn này, tác giả đã nhận được sự giúp đỡ của
rất nhiều người. Đầu tiên, tác giả xin trân trọng gửi lời cảm ơn đến PGS.TS Vương
Đạo Vy , người luôn tận tình chỉ bảo và giúp đỡ tác giả từ khi tác giả bắt tay vào
thực hiện đến khi hoàn thành. Không có sự hướng dẫn và giúp đỡ tận tình của thầy,
chắc chắn tác giả sẽ không thể nào hoàn thành được đề tài này.
Tác giả cũng xin chân thành cảm ơn tới gia đình, bạn bè, những người luôn
động viên tác giả trong suốt quá trình học tập và nghiên cứu để hoàn thành luận văn
này.
Học viên
Chương 1. TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY (WSN)
1.1 Giới thiệu
Một mạng cảm biến không dây WSN bao gồm nhiều node cảm biến nhỏ có
giá thành thấp và tiêu thụ năng lượng thấp, giao tiếp thông qua các kết nối không
dây có nhiệm vụ cảm nhận, đo đạc, tính toán, xử lý thông tin và các thành phần
liên lạc. Tạo khả năng quan sát, phân tích và phản ứng lại với các sự kiện và hiện
tượng xảy ra trong môi trường cụ thể nào đó. Môi trường có thể là tự nhiên hay các
hệ thống sinh học. Các ứng dụng cơ bản của mạng cảm biến chủ yếu gồm thu thập
dữ liệu, giám sát, theo dõi và các ứng dụng trong y học. Tuy nhiên ứng dụng của
mạng cảm biến tùy theo yêu cầu sử dụng còn rất đa dạng và không bị giới hạn.
Mô hình mạng cảm biến được chia thành nhiều tầng, mỗi tầng có một nhiệm
vụ riêng:
Hình 1.1 Mô hình phân tầng mạng WSN
+ Tầng ứng dụng (Application Layer): cung cấp một giao diện (interface)
đến người sử dụng.
+ Tầng hỗ trợ ứng dụng (Application Support Layer): có nhiệm vụ phân chia
và quản lý truyền thông giữa hai node đang hoạt động.
+ Tầng mạng (Network Layer): làm nhiệm vụ định tuyến truyền thông giữa
các mạng.
+ Tầng MAC (MAC Sub-Layer): thực hiện hai nhiệm vụ cơ bản đó là:
- Sử dụng các kỹ thuật đóng khung để cho phép các tầng trên truy cập môi
trường.
- Sử dụng kỹ thuật truy nhập môi trường và dò lỗi để điều khiển làm sao cho
dữ liệu được đặt vào môi trường và được nhận từ môi trường.
+ Tầng vật lý (Physical Layer): có nhiệm vụ mã hóa các bit nhị phân trong
các frame của tầng liên kết dữ liệu thành tín hiệu và thực hiện truyền và nhận các
tín hiệu này qua môi trường vật lý (môi trường không dây).
Quá trình đóng gói dữ liệu trong mạng cảm biến như sau: Dữ liệu được đưa
xuống ngăn xếp giao thức trên đường đi của nó để truyền qua môi trường mạng,
mỗi giao thức khác nhau thêm thông tin vào dữ liệu với các mức khác nhau.
Hình 1.2 Quá trình đóng gói dữ liệu
Trong mạng cảm biến không dây, các node mạng liên tục nhận và truyền dữ
liệu về các node trung tâm để xử lý. Các node trung tâm sau khi nhận được khung
dữ liệu từ các node trong mạng sẽ phải thực hiện nhiệm vụ tách các thành phần
thông tin có ích trong khung đó. Để có thể tách được các thông tin có ích thì phải
có sự đồng bộ về dạng khung dữ liệu giữa các node truyền và node trung tâm. Quá
trình đồng bộ này hoàn toàn thực hiện được vì cả bên truyền và bên nhận đều được
lập trình bởi người sử dụng. Do đó, các lập trình viên định nghĩa các dạng khung cố
định cho các khung dữ liệu được truyền trong mạng. Nhờ vậy, các node mạng có
thể phân biệt rõ các trường dữ liệu trong khung đã nhận và quá trình chọn lọc để
tách các thông tin có ích trở nên nhanh chóng và đơn giản.[10]
Khi nghiên cứu về mạng cảm biến không dây, một trong những đặc điểm
quan trọng và then chốt đó là thời gian sống của các node cảm biến hay chính là sự
giới hạn về năng lượng của chúng. Do đó khi truyền dữ liệu trong mạng cảm biến
có lỗi xảy ra, phải có cơ chế phù hợp để làm tăng thời gian sống của node mạng
lên.
1.2 Cấu trúc cho mạng cảm biến
Cấu trúc mạng cảm biến không dây cần phải thiết kế sao cho sử dụng có
hiệu quả nguồn tài nguyên hạn chế của mạng, kéo dài thời gian sống của mạng. Vì
vậy thiết kế cấu trúc mạng cần phải dựa vào những đặc thù sau:
- Giao tiếp không dây multihop: Khi giao tiếp không dây được sử dụng cho
các node mạng, thì giao tiếp trực tiếp giữa hai node sẽ có nhiều hạn chế do khoảng
cách hay các vật cản. Đặc biệt là khi node phát và node thu cách xa nhau thì cần
công suất phát lớn. Vì vậy cần các nút trung gian làm nút chuyển tiếp để giảm công
suất tổng thể. Do vậy các mạng cảm biến không dây cần phải dùng giao tiếp
multihop.
Hình 1.3 Giao tiếp không dây multihop
- Điều khiển lỗi: Nếu việc truyền dữ liệu kéo dài do gặp phải lỗi thì làm giảm
thời gian sống của mạng, để hỗ trợ kéo dài thời gian sống của toàn mạng, ta phải
đưa ra giải pháp hợp lý.
- Cộng tác, xử lí trong mạng và tập trung dữ liệu: Trong một số ứng dụng
một node cảm biến không thu thập đủ dữ liệu mà cần phải có nhiều node cùng cộng
tác hoạt động thì mới thu thập đủ dữ liệu, khi đó nếu từng node thu dữ liệu gửi
ngay đến node chính thì sẽ rất tốn băng thông và năng lượng. Cần phải kết hợp các
dữ liệu của nhiều nút trong một vùng rồi mới gửi tới node chính thì sẽ tiết kiệm
băng thông và năng lượng.[8]
Sau đây xét hai cấu trúc đặc trưng của mạng cảm biến không dây:
1.2.1 Cấu trúc phẳng (Flat Architecture)
Đây là cấu trúc đơn giản nhất, tất cả các node đều ngang hàng và đồng nhất
về hình dạng và chức năng. Các node giao tiếp qua multihop sử dụng các nút ngang
hàng làm bộ tiếp sóng. Với phạm vi truyền cố định, các nút gần hơn sẽ đảm bảo vai
trò của bộ tiếp sóng đối với một số lượng lớn nguồn.
Hình 1.4 Cấu trúc phẳng
1.2.2 Cấu trúc tầng (Tiered Architecture)
Với cấu trúc này các cụm được tạo ra giúp các tài nguyên trong cùng một
cụm gửi dữ liệu single hop hay multihop tùy thuộc vào kích cỡ của cụm đến một
node định sẵn, thường gọi là node chủ (cluster head). Trong cấu trúc này các node
tạo thành một hệ thống cấp bậc mà ở đó mỗi node ở một mức xác định thực hiện
các nhiệm vụ đã định sẵn.
Hình 1.5 Cấu trúc phân tầng
Trong cấu trúc tầng thì được chia thành nhiều cấp và mỗi cấp được phân một
chức năng cụ thể, các chức năng như cảm nhận, tính toán và đưa ra kết quả.
- Cấp thấp nhất: thực hiện tất cả nhiệm vụ cảm nhận như đo đạc áp suất,
nhiệt độ, độ ẩm, nồng độ, độ sâu,…
- Cấp giữa: thực hiện tính toán tức là thu nhận dữ liệu từ nhiều node khác
nhau rồi đưa ra quyết định.
- Cấp trên cùng: thực hiện thu thập tất cả thông tin ở cấp giữa rồi đưa thông
tin về trạng thái ban đầu như nhiệt độ, áp suất,… tại node thấp nhất đã đo được.
Hình 1.6 Cấu trúc mạng phân cấp theo chức năng
Các nhiệm vụ xác định có thể được chia không đồng đều giữa các lớp, ví dụ
mỗi lớp có thể thực hiện một nhiệm vụ xác định trong tính toán. Trong trường hợp
này, các sensor ở cấp thấp nhất đóng vai trò một bộ lọc thông dải đơn giản để tách
nhiễu ra khỏi dữ liệu, trong khi đó các nút ở cấp cao hơn ngừng việc lọc dữ liệu
này. Sự phân tích chức năng của các mạng cảm ứng có thể phản ánh các đặc điểm
tự nhiên của các node, hoặc có thể gọi đơn giản là sự phân biệt theo logic. Một tập
hợp con các node với khả năng truyền thông ở phạm vi rộng có thể tạo nên cấu hình
mạng kiểu phân lớp xếp chồng vật lý.
Hình 1.7 Cấu trúc mạng phân lớp xếp chồng vật lý
Một tập hợp con các nút trong mạng có thể được phân biệt một cách logic
khi chúng thực hiện một nhiệm vụ đại diện cho các node khác. Những chức năng
như vậy phải bao gồm sự tập trung dữ liệu, truyền thông qua mạng xương sống,
hoặc kết hợp định tuyến giữa các node. Những quy tắc logic này tạo nên mạng phân
cấp logic.
Hình 1.8 Cấu trúc mạng phân cấp logic
Những quy tắc logic này có thể thay phiên nhau định kì để đảm bảo sự công
bằng. Khi các nút với khả năng tính toán cao hơn hoạt động thì các nút ít khả năng
hơn sẽ chuyển các nhiệm vụ tính toán sang các nút này. Nếu không có “computer
servers” như vậy, một cụm các sensor cần thiết phải chọn ra một nút để thực hiện
các nhiệm vụ như là tập trung dữ liệu. Tuy nhiên trong một số trường hợp chỉ có
mỗi nút có tài nguyên vật lý thích hợp mới thích hợp để thực hiện các nhiệm vụ
định sẵn.[9]
1.2.3 Lựa chọn cấu trúc cho mạng cảm biến
Mỗi một cấu trúc mạng đều có nhược điểm của nó, tuy nhiên việc chọn ra
một cấu trúc mạng sao cho nó tối ưu nhất là vấn đề cần thiết. Mạng cảm ứng xây
dựng theo cấu trúc tầng hoạt động hiệu quả hơn cấu trúc phẳng, với các lý do như
sau:
- Cấu trúc tầng có thể giảm chi phí mạng cảm ứng bằng việc định vị các tài
nguyên ở vị trí mà chúng hoạt động hiệu quả nhất. Rõ ràng là nếu triển khai các
phần cứng thống nhất, mỗi nút chỉ cần một lượng tài nguyên tối thiểu để thực hiện
tất cả các nhiệm vụ. Vì số lượng các nút cần thiết phụ thuộc vào vùng phủ sóng xác
định, chi phí của toàn mạng vì thế sẽ không cao. Thay vào đó, nếu một số lượng lớn
các nút có chi phí thấp được chỉ định làm nhiệm vụ cảm nhận, một số lượng nhỏ
hơn các nút có chi phí cao hơn được chỉ định để phân tích dữ liệu, định vị và đồng
bộ thời gian, chi phí cho toàn mạng sẽ giảm đi.
- Mạng cấu trúc tầng sẽ có tuổi thọ cao hơn mạng phẳng. Khi cần phải tính
toán nhiều thì một bộ xử lý nhanh sẽ hiệu quả hơn, phụ thuộc vào thời gian yêu cầu
thực hiện tính toán. Tuy nhiên, với các nhiệm vụ cảm nhận cần hoạt động trong
khoảng thời gian dài, các nút tiêu thụ ít năng lượng phù hợp với yêu cầu xử lý tối
thiểu sẽ hoạt động hiệu quả hơn. Do vậy với cấu trúc tầng mà các chức năng mạng
phân chia giữa các phần cứng đã được thiết kế riêng cho từng chức năng sẽ làm
tăng tuổi thọ của mạng.
- Về độ tin cậy: Mỗi mạng cảm ứng phải phù hợp với với số lượng các nút
yêu cầu thỏa mãn điều kiện về băng thông và thời gian sống. Với mạng cấu trúc
phẳng, qua phân tích người ta đã xác định thông lượng tối ưu của mỗi nút trong
mạng là:
Trong đó:
- W là độ rộng băng tần của kênh chia sẻ
- n là số lượng node mạng
Do đó khi kích cỡ mạng tăng lên thì thông lượng của mỗi nút sẽ giảm về 0.
Việc nghiên cứu các mạng cấu trúc tầng đem lại nhiều triển vọng để khắc phục vấn
đề này. Một cách tiếp cận là dùng một kênh đơn lẻ trong cấu trúc phân cấp, trong
đó các nút ở cấp thấp hơn tạo thành một cụm xung quanh trạm gốc. Mỗi một trạm
gốc đóng vai trò là cầu nối với cấp cao hơn, cấp này đảm bảo việc giao tiếp trong
cụm thông qua các bộ phận hữu tuyến. Tóm lại, việc tương thích giữa các chức
năng trong mạng có thể đạt được khi dùng cấu trúc tầng. Đặc biệt người ta đang tập
trung nghiên cứu về các tiện ích về tìm địa chỉ. Những chức năng như vậy có thể
phân phối đến mọi nút, một phần phân bố đến tập con của các nút. Giả thiết rằng
các nút đều không cố định và phải thay đổi địa chỉ một cách định kì, sự cân bằng
giữa những lựa chọn này phụ thuộc vào tân số thích hợp của chức năng cập nhật và
tìm kiếm. Hiện nay cũng đang có rất nhiều mô hình tìm kiếm địa chỉ trong mạng
cấu trúc tầng.
1.3 Các giao thức đặc trưng của mạng cảm biến
Trong phần này ta đi sâu nghiên cứu về hai giao thức đó là giao thức đồng bộ
thời gian và giao thức vị trí. Hai giao thức này có ý nghĩa rất quan trọng trong mạng
cảm biến.
1.3.1 Giao thức đồng bộ thời gian
Vấn đề thời gian rất quan trọng trong nhiều ứng dụng và giao thức trong
mạng cảm biến. Các nút có thể đo thời gian bằng cách dùng các xung đồng hồ cục
bộ lấy từ các bộ dao động. Bởi vì các pha ngẫu nhiên làm dịch chuyển và làm trôi
tốc độ của bộ dao động, do vậy thời gian cục bộ của các nút sẽ bắt đầu sai khác đi
làm cho mạng mất đi sự đồng bộ. Do vậy việc đồng bộ thời gian có vai trò rất quan
trọng trong hoạt động của mạng cảm biến.
Đồng bộ thời gian là phương thức cho phép các thực thể riêng biệt trong một
nhóm đồng bộ xung đồng hồ của chúng hoặc đồng bộ với thời gian toàn cầu phối
hợp. Phần này sẽ giải thích tại sao cần đồng bộ thời gian và đưa ra một số giao thức
đồng bộ khác nhau.
Đồng bộ thời gian trong mạng cảm biến với các lý do sau:
- Mạng cảm biến cần liên kết với thế giới thực để biết khi nào một hiện
tượng xảy ra.
- Dịch vụ cơ bản chính của mạng cảm biến là tích hợp dữ liệu. Do đó cần
đồng bộ giữa các nút để có thể tích hợp dữ liệu truyền đến mạng.
- Một vài giao thức yêu cầu đồng bộ thời gian: quản lý cấu hình
- Các nút cảm biến thường nhỏ, giá thành thấp nên bộ dao động thường
không chính xác, hơn nữa chúng bị giới hạn về năng lượng nên thường có chế độ
sleep để tiết kiệm năng lượng.
Thời gian dùng trong mạng cảm biến phải là thời gian tự nhiên (physical
time), đó là hai nút cảm biến phải có sự cảm nhận như nhau, thời gian tự nhiên phải
được phân biệt với khái niệm về thời gian logic (logical time) là thời gian mà cho
phép quyết định việc sắp xếp các sự kiện trong hệ thống phân bố nhưng không cần
thiết phải chỉ ra bất kì sự liên quan nào đến thời gian thực.
1.3.1.1 Đồng hồ trong các node cảm biến
Hầu hết các thiết bị đồng hồ của các nút cảm biến và máy tính đều có cấu tạo
giống nhau. Mỗi nút có một bộ dao động ở một tần số xác định và một máy đếm
xung dao động. Phần mềm của các nút chỉ truy nhập tới giá trị của bộ đếm này và
thời gian giữa hai lần tăng này quyết định cách giải quyết vấn đề thời gian: các sự
kiện xảy ra giữa hai lần tăng này không thể được phận biệt từ các nhãn thời gian
của chúng.
Bộ dao động thường có độ trôi, đó là sự dịch ngẫu nhiên so với tần số trên lý
thuyết, hay còn gọi là độ lệch đồng hồ. Điều này phụ thuộc vào sự không trong suốt
của tinh thể, hay các điều kiện môi trường như áp suất, nhiệt độ… do vậy việc triển
khai mạng cảm biến trên thực tế khác nhiều so với trong phòng thí nghiệm. Độ lệch
đồng hồ được đo bằng ppm (parts per million), nó đưa ra con số về số dao động
thêm vào hoặc số dao động bị mất mà đồng hồ tạo ra trong lượng thời gian cần cho
một triệu dao động ở tốc độ lý thuyết.
Tần số dao động thay đổi theo thời gian. Có 2 kiểu thay đổi:
- Thay đổi ngắn hạn: do thay đổi nhiệt độ, do thay đổi trong điện áp nguồn
cung cấp, áp suất không khí…
- Thay đổi dài hạn: do sự lão hóa của các bộ dao động.
Người ta thường giả định tần số các bộ dao động là ổn định vừa phải trong
phạm vi từ vài phút đến vài chục phút. Điều này cũng nói lên rằng các thuật toán
đồng bộ thời gian phải đồng bộ lại vài phút một lần để theo kịp sự thay đổi của tần
số. Vì thế giao thức đồng bộ thời gian là rất cần thiết.[11]
1.3.1.2 Đồng bộ thời gian trong mạng cảm biến
Trong mạng cảm biến có một số đặc điểm mà ảnh hưởng đến yêu cầu thiết kế
của các thuật toán đồng bộ thời gian:
- Thuật toán phải phù hợp với phạm vi mạng mutilhop rộng lớn, các nút bị
ràng buộc về mặt năng lượng. Yêu cầu về phạm vi bao hàm cả số lượng các nút
trong mạng và mật độ các nút.
- Yêu cầu về độ chính xác có thể thay đổi khác nhau từ mili giây cho đến vài
giây.
- Không sử dụng thêm phần cứng chỉ giành cho mục đích đồng bộ vì tốn chi
phí và năng lượng thêm vào cho phần phụ đó.
- Mức độ di động là rất thấp.
- Hầu như không có giới hạn trên cố định về trễ truyền gói vì phụ thuộc lớp
MAC, lỗi các gói, và truyền lại.
- Trễ truyền giữa hai nút hàng xóm là không đáng kể.
Có rất nhiều giao thức đồng bộ thời gian truyền thống cố gắng giữ việc đồng
bộ giữa các nút ở mọi thời điểm nhưng lại không quan tâm đến năng lượng và cấu
hình mạng cho nên không thể áp dụng vào mạng cảm biến. Vì đặc điểm của mạng
cảm biến cho nên giao thức đồng bộ thời gian cần chú ý về các vấn đề về độ chính
xác, chi phí năng lượng và các yêu cầu về bộ nhớ.
Phương pháp cơ bản để đồng bộ thời gian trong mạng cảm biến là cộng tác
giữa các nút trong toàn mạng. Có hai cách thiết lập sự cộng tác giữa hai nút trong
mạng đó là đồng bộ giữa bên gửi và bên nhận (Sender-Receiver) và giữa bên nhận
và bên nhận (Receiver-Receiver). Đồng bộ giữa bên gửi và bên nhận yêu cầu liên
kết hai chiều giữa hai nút lân cận. Trong phương pháp đồng bộ giữa bên nhận và
bên nhận, nhiều nút nhận của các gói có nhãn thời gian như nhau đồng bộ với nhau
mà không yêu cầu đồng bộ với bên gửi.
Hình 1.9 Đồng bộ bên phát-bên nhận và bên nhận-bên nhận
+ Giao thức đồng bộ giữa bên nhận và bên phát
Trong giao thức này, một nút gọi là bên nhận, trao đổi gói dữ liệu với nút
khác gọi là bên phát, làm cho bên nhận đồng bộ với đồng hồ của bên phát. Giao
thức đồng bộ giữa bên nhận và bên phát nói chung là đòi hỏi đường nối 2 chiều
giữa các nút lân cận.
Điển hình của giao thức đồng bộ giữa bên phát và bên nhận là Lightweight
time synchronization protocol (LTS). Trong khi hoạt động nó điều khiển các nút để
sử dụng năng lượng hiệu quả, đạt được độ chính xác cao, và đưa ra những giới hạn
tương đối chính xác về các phần cứng cơ sở và các hệ thống. LTS không yêu cầu
phải update đồng hồ cục bộ và nó cũng không ước lượng tốc độ trôi thực sự.
LTS chia quá trình đồng bộ làm 2 giai đoạn:
- Giao thức đồng bộ 2 chiều để đồng bộ 2 nút lân cận.
- Để giữ các nút hoặc một tập hợp các nút cần quan tâm đồng bộ theo một
tham chiếu chung, LTS xây dựng một cây phân tán từ các nút tham chiếu đến tất cả
các nút.
+ Giao thức đồng bộ giữa bên nhận và bên nhận
Trong giao thức này nhiều bên nhận của các gói có nhãn thời gian như nhau
đồng bộ với nhau nhưng không đồng bộ với bên gửi. Chúng ta xem xét một giao
thức cơ bản đó là đồng bộ quảng bá tham chiếu RBS (Reference broadcast
synchronization).
Giao thức này bao gồm hai thành phần: thành phần đầu tiên là một tập hợp
các nút nằm trong vùng broadcast đơn, ví dụ như một tập hợp các nút có thể nghe
thấy nhau, đánh giá xung đồng hồ của các nút ngang hàng với chúng. Thành phần
thứ hai cho phép liên kết các nhãn thời gian giữa các nút ở xa với một vài khu vực
broadcast giữa chúng. Đồng bộ trong một khu vực broadcast với ý tưởng cơ bản
như sau: Bên gửi sẽ gửi theo chu kỳ một gói không cần thiết đánh dấu nhãn thời
gian vào kênh broadcast và tất cả các bên nhận sẽ đánh dấu nhãn thời gian cho gói
này. Các bên nhận trao đổi nhãn thời gian của chúng và có thể sử dụng dữ liệu này
để biết được đồng hồ của nút hàng xóm. Bằng việc lặp lại quá trình này các nút
không chỉ biết về độ lệch pha của nhau mà còn cả tốc độ trôi nữa. Các nút không
điều chỉnh đồng hồ cục bộ của nó nhưng đối với mỗi nút hàng xóm nó xây dựng
một bảng lưu trữ các tham số cần thiết để chuyển đổi giá trị xung đồng hồ.
1.3.2 Giao thức vị trí
Trong nhiều trường hợp việc xác định vị trí của các nút trong mạng cảm biến
là rất cần thiết. Ví dụ như trong ứng dụng quan sát môi trường và khí tượng học, dữ
liệu sẽ không còn có ý nghĩa nếu như không được đánh dấu thời gian và vị trí. Hay
như trong các ứng dụng: theo dõi việc đóng gói hàng, lưu trữ sách trong thư viện,
tất cả các ứng dụng này đều cần xác định vị trí của các nút cảm biến. Ngoài ra
thông tin về vị trí cũng rất quan trọng trong một vài giao thức định tuyến, đặc biệt
là định tuyến dựa vào vị trí.
Trong mạng cảm biến, có một số lượng rất lớn các nút, được triển khai một
cách ngẫu nhiên trong khu vực quan sát. Việc xác định vị trí tuyệt đối của một nút
thường rất khó. Chúng ta có thể trang bị thiết bị GPS cho các nút. Tuy nhiên cách
này không khả thi đối với mạng cảm biến vì GPS tương đối đắt và không thể hoạt
động trong môi trường đặc biệt như trong nhà, hay dưới lòng đất.
Hiện nay có hai kỹ thuật định vị được xem xét chủ yếu trong mạng cảm biến
là:
- Định vị dựa vào mốc có sẵn.
- Định vị dựa vào vị trí tương đối.
Cả hai kỹ thuật này đều sử dụng sự ước lượng phạm vi và góc đối với việc
định vị các nút cảm ứng thông qua cường độ tín hiệu thu được (Seceived Signal
Strength – RSS), thời gian đến (time of arrival – TOA), sự chênh lệch thời gian đến
(time difference of arrival – TDOA), và góc tới (angle of arrival – AOA).
1.3.2.1 Định vị dựa vào mốc có sẵn
Phương pháp này giả sử như sau:
Có một vài node cảm biến đã biết vị trí.
Những nút này sẽ gửi tín hiệu mốc(dẫn đường) theo chu kỳ.
Các nút khác sẽ đo tín hiệu này, sử dụng phép đo tam giác , đa trễ để đánh
giá vị trí.
RSSI (Receiver Signal Strength Indicator ) được dùng để xác định sự tương
quan tín hiệu với khoảng cách.
Tuy nhiên phương pháp này rất nhạy cảm với vật cản, nhiễu đa đường, ảnh
hưởng của môi trường (nắng, mưa,…). Hơn nữa tín hiệu RF phải có phạm vi tốt:
khoảng vài chục mét.
1.3.2.2 Định vị dựa vào vị trí tương đối
Một số mạng cảm ứng khác có thể được triển khai ở vùng mà không thể bị
ảnh hưởng bởi vật chắn như nhà cửa, đồi núi,… lúc đó chúng có thể bị ảnh hưởng
bởi nhiễu môi trường hay là do sai số khi điều khiển. Hơn nữa, các nút cảm ứng
loại bình thường có thể hoạt động ở chế độ không tuyến tính hoặc nhiễu không tuân
theo phân bố Gauss. Để khắc phục những khó khăn này, các thông tin vùng được
đặt theo từng bước truyền từ nguồn cho đến đích. Để thu được các thông tin vùng
chính xác, các nút cảm ứng phải kết hợp để hỗ trợ cho nhau. Hơn nữa, năng lượng
có thể được dự trữ thêm bằng việc cho phép các nút cảm ứng dò theo vị trí của các
nút lân cận. Kỹ thuật xác định vị trí tương đối này được nghiên cứu kĩ hơn bởi cơ
cấu vị trí thụ cảm (perceptive localization framework -PLF). Trong cơ cấu này, một
nút có thể phát hiện và dò theo vị trí của của nút lân cận bằng cách dùng kỹ thuật
ước đoán kết hợp với một bộ lọc từng phần được ghép vào một dãy các sensor. Để
tăng độ chính xác của việc ước lượng vị trí, node chính có thể yêu cầu tất cả các nút
dọc theo đường từ nguồn phải lọc từng phần để tăng số lượng vật mẫu. Quá trình
tác động cục bộ này không yêu cầu bất kì một vật mốc nào. Hơn nữa, phần xử lý
trung tâm không cần phải quyết định vị trí của các nguồn. Cho dù dùng giao thức
định vị dựa trên vật mốc hay là dựa trên vị trí tương đối thì thông tin vùng đều cần
thiết trong các giao thức lớp vận chuyển, lớp mạng và lớp liên kết dữ liệu. Mỗi một
loại giao thức định vị có những yêu cầu khác nhau. Các ứng dụng mạng cảm ứng
sau này sẽ sử dụng kết hợp các kỹ thuật định vị này.
1.3.3 Định tuyến trong mạng cảm biến
Chính vì những đặc điểm riêng biệt của mạng cảm biến mà việc định tuyến
trong mạng cảm biến phải đối mặt với rất nhiều thách thức sau:
- Mạng cảm biến có một số lượng lớn các nút, cho nên ta không thể xây dựng
được sơ đồ địa chỉ toàn cầu cho việc triển khai số lượng lớn các nút đó vì lượng
mào đầu để duy trì ID quá cao.
- Dữ liệu trong mạng cảm biến yêu cầu cảm nhận từ nhiều nguồn khác nhau
và truyền đến node master.
- Các nút cảm biến bị ràng buộc khá chặt chẽ về mặt năng lượng, tốc độ xử
lý, lưu trữ.
- Hầu hết trong các ứng dụng mạng cảm biến các nút nói chung là tĩnh sau
khi được triển khai ngoại trừ một vài nút có thể di động.
- Việc nhận biết vị trí là vấn đề rất quan trọng vì việc tập hợp dữ liệu thông
thường dựa trên vị trí.
- Khả năng dư thừa dữ liệu rất cao vì các nút cảm biến thu lượm dữ liệu dựa
trên hiện tượng chung.
Trong phần này sẽ nghiên cứu hai loại giao thức định tuyến chính hay được
dùng trong mạng cảm biến, đó là định tuyến trung tâm dữ liệu (Data Center
Protocol), định tuyến phân cấp (Hierarchical Protocol).
1.3.3.1 Định tuyến trung tâm dữ liệu (Data Center Protocol)
Trong nhiều ứng dụng của mạng cảm ứng thì việc xác định số nhận dạng
toàn cầu cho từng nút là không khả thi. Việc thiếu số nhận dạng toàn cầu như vậy,
cùng với việc triển khai ngẫu nhiên các nút gây khó khăn trong việc chọn ra tập hợp
các nút chuyên dụng để đưa yêu cầu. Vì thế dữ liệu được truyền từ mọi nút trong
vùng triển khai với độ dư thừa đáng kể, do vậy việc sử dụng năng lượng sẽ không
hiệu quả. Do vậy người ta đã đưa ra các giao thức định tuyến mà có khả năng chọn
ra tập hợp các nút và thực hiện tập trung dữ liệu trong suốt quá trình truyền. Điều
này đã dẫn đến ý tưởng về giao thức trung tâm dữ liệu. Trong giao thức định tuyến
này, node master gửi yêu cầu đến các vùng xác định và đợi dữ liệu từ các sensor đã
được chọn trước trong vùng. SPIN là giao thức đầu tiên thuộc loại này mà đã đề
cập đến việc dàn xếp dữ liệu giữa các nút để giảm bớt sự dư thừa dữ liệu và tiết
kiệm năng lượng. Sau đó Directed Diffusion (truyền tin trực tiếp) được phát triển
và là một giao thức rất đáng chú ý trong định tuyến trung tâm dữ liệu.[10]
1.3.3.1.1 SPIN (Sensor Protocols for
Information via Negotiation)
Ý tưởng của SPIN là đặt tên dữ liệu sử dụng ký hiệu mô tả ở mức độ cao hay
còn gọi là thông tin về dữ liệu (meta-data). Trước khi truyền, thông tin về dữ liệu
được trao đổi giữa các sensor qua một cơ chế thông báo dữ liệu, đó chính là đặc
điểm chính của SPIN. Mỗi một nút nhận dữ liệu mới, thông báo tới các nút lân cận
của nó và các nút lân cận quan tâm đến dữ liệu này, ví dụ như các nút mà không có
dữ liệu, lấy được dữ liệu nhờ gửi bản tin yêu cầu. Sự dàn xếp các thông tin về dữ
liệu của SPIN giải quyết được các vấn đề của flooding như là thông tin dư thừa,
chồng chéo các vùng cảm nhận, vì vậy đạt được hiệu quả về mặt năng lượng.
Có 3 bản tin được xác định trong SPIN dùng để trao đổi dữ liệu giữa các nút,
đó là bản tin ADV cho phép các nút thông báo một meta-data cụ thể, bản tin REQ
để yêu cầu các dữ liệu đặc biệt và bản tin DATA để mang thông tin thực. Hình dưới
miêu tả tổng kết lại các quá trình của SPIN.
Hình 1.10 Giao thức SPIN
Nút A bắt đầu quảng bá dữ liệu tới nút B (a). Nút B trả lời bằng cách gửi yêu
cầu tới nút A (b). Sau khi nhận dữ liệu yêu cầu (c), nút B bản tin quảng bá đến các
nút lân cận (d), sau đó các nút này gửi yêu cầu lại cho B (e-f)
Một ưu điểm của SPIN là các thay đổi về cấu hình được khoanh vùng vì thế
các nút chỉ cần nhận biết các nút lân cận của chúng. Tuy nhiên cơ chế thông báo dữ
liệu của SPIN không thể đảm bảo được việc phân phối dữ liệu. Ví dụ trong trường
hợp nếu các nút cần dữ liệu ở xa so với nút nguồn trong khi các nút ở giữa nguồn
và đích lại không cần (interested) dữ liệu thì dữ liệu sẽ không được phân phối đến
tận địch. Vì thế SPIN không được sử dụng cho các ứng dụng như là phát hiện xâm
nhập mà yêu cầu độ tin cậy trong việc phân phối các gói dữ liệu qua các khoảng
thời gian đều đặn.
1.3.3.1.2 Truyền trực tiếp Directed Diffusion
Ý tưởng của phương pháp này là truyền dữ liệu qua các nút cảm ứng bằng
việc sử dụng lược đồ đặt tên cho dữ liệu. Mục đích chính của việc sử dụng lược đồ
này là loại bỏ những hoạt động không cần thiết của định tuyến lớp mạng để tiết
kiệm năng lượng. Directed Diffusion đưa ra việc sử dụng cặp giá trị thuộc tính cho
dữ liệu và gửi yêu cầu đến các sensor dựa trên các cặp địa chỉ này. Để tạo ra một
yêu cầu, người ta tạo ra các thông tin yêu cầu được xác định dùng các cặp giá trị
thuộc tính như là tên vật thể, vị trí địa lý, khoảng thời gian… các thông tin này
được quảng bá thông qua sink đến các nút lân cận. Mỗi một nút nhận được thông
tin đó sẽ giữ lại để dùng sau này. Các thông tin được giữ lại này dùng để so sánh dữ
liệu nhận được với giá trị trong thông tin đó. Các thông tin này cũng bao gồm các
trường gradient. Gradient là đường trả lời đến nút lân cận từ nơi mà nhận được
thông tin yêu cầu. Nó được mô tả bởi tốc độ dữ liệu, khoảng thời gian và thời gian
mãn hạn nhận được từ các thông tin yêu cầu. Vì thế nhờ việc sử dụng các thông tin
yêu cầu và gradient thiết lập được các đường truyền giữa sink và các nguồn. Có thể
thiết lập được nhiều đường vì thế có thể chọn một trong số các đường đó bằng cách
reinforcement. Node master gửi lại các bản tin gốc qua những đường đã được chọn
với khoảng thời gian giữa hai sự kiện ngắn hơn vì vậy tăng cường nút nguồn trên
đường đó để gửi dữ liệu đều đặn hơn.