Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
2,12 MB
Nội dung
1
ĐẠ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:
Chuyên ngành:
Mã ngành:
Công nghệ Điện tử - Viễn Thông
Kỹ thuật điện tử
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
2
LỜI CAM ĐOAN
Kính gửi : Hội đồng bảo vệ luận văn Thạc sĩ, khoa Điện Tử-Viễn Thông,
trường Đại học Công Nghệ- Đại học Quốc Gia Hà Nội.
Tôi tên là : Nguyễn Văn Ba
Tên đề tài luận văn Thạc sĩ:
“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”
Trong thời gian dài qua quá trình nghiên cứu và học tập, tôi đã hoàn thành
luận văn của mình với sự giúp đỡ của các thày, cô trong khoa và các bạn cùng
lớp. Tôi cam đoan luận văn không có sự trùng lặp với các công trình khoa học,
luận văn đã công bố trong và ngoài nước, đảm bảo tính trung thực, rõ ràng và
trích dẫn đầy đủ trong tài liệu tham khảo.
Hà Nội, tháng 05 năm 2010
Học viên thực hiện
Nguyễn Văn Ba
3
MỞ ĐẦU .............................................................................................................................. 7
Chương 1. TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY (WSN) ....................... 9
1.1 Giới thiệu .................................................................................................................... 9
Hình 1.1 Mô hình phân tầng mạng WSN................................................................................ 9
Hình 1.2 Quá trình đóng gói dữ liệu ..................................................................................... 10
1.2 Cấu trúc cho mạng cảm biến ................................................................................... 11
Hình 1.3 Giao tiếp không dây multihop................................................................................ 11
1.2.1 Cấu trúc phẳng (Flat Architecture) .................................................................. 12
Hình 1.4 Cấu trúc phẳng ..................................................................................................... 12
1.2.2 Cấu trúc tầng (Tiered Architecture)................................................................. 12
Hình 1.5 Cấu trúc phân tầng................................................................................................. 13
Hình 1.7 Cấu trúc mạng phân lớp xếp chồng vật lý .............................................................. 14
Hình 1.8 Cấu trúc mạng phân cấp logic................................................................................ 15
1.2.3 Lựa chọn cấu trúc cho mạng cảm biến ............................................................. 15
1.3 Các giao thức đặc trưng của mạng cảm biến .......................................................... 17
1.3.1 Giao thức đồng bộ thời gian .............................................................................. 17
1.3.1.1 Đồng hồ trong các node cảm biến .......................................................................... 18
1.3.1.2 Đồng bộ thời gian trong mạng cảm biến................................................................ 18
Hình 1.9 Đồng bộ bên phát-bên nhận và bên nhận-bên nhận ................................................ 19
1.3.2 Giao thức vị trí................................................................................................... 20
1.3.2.1 Định vị dựa vào mốc có sẵn.................................................................................... 21
1.3.2.2 Định vị dựa vào vị trí tương đối............................................................................. 21
1.3.3 Định tuyến trong mạng cảm biến...................................................................... 22
1.3.3.1 Định tuyến trung tâm dữ liệu (Data Center Protocol) .......................................... 23
1.3.3.1.1 SPIN (Sensor Protocols for Information via Negotiation) ................................ 23
Hình 1.10 Giao thức SPIN ................................................................................................... 24
1.3.3.1.2 Truyền trực tiếp Directed Diffusion .................................................................. 24
Hình 1.11 Các pha của giao thức truyền tin trực tiếp ............................................................ 25
1.3.3.2 Định tuyến phân cấp .............................................................................................. 26
Hình 1.12 Mô hình mạng LEACH........................................................................................ 28
1.4 Kiến trúc giao thức mạng ........................................................................................... 28
Hình 1.13 Kiến trúc giao thức của mạng cảm biến ............................................................... 29
1.5 Lỗi trong quá trình tuyền tin ................................................................................... 31
Hình 1.14a Cơ chế phát lại dừng và đợi Stop and Wait ARQ............................................... 32
Tx gửi 1 frame và đợi ACK từ Rx trước khi truyền next frame............................................. 32
Hình 1.14b Cơ chế phát lại theo nhóm Go back N ARQ....................................................... 33
Tx có thể truyền liên tiếp các frame...................................................................................... 33
Hình 1.15 Cơ chế phát lại có lựa chọn Selective Repeat ARQ .............................................. 33
Tx có thể truyền liên tiếp các frame...................................................................................... 33
1.6 Một số ứng dụng trong mạng cảm biến................................................................... 34
1.6.1 Ứng dụng trong quân đội .................................................................................. 35
Hình 1.16 Node cảm biến được gán lên mũ .......................................................................... 36
Hình 1.17 Ứng dụng mạng cảm biến trong quân đội............................................................. 36
1.6.2 Ứng dụng trong môi trường .............................................................................. 37
Hình 1.18 Ứng dụng trong môi trường ................................................................................. 37
Hình 1.19 Cảnh báo cháy rừng ............................................................................................. 38
1.6.3 Ứng dụng trong chăm sóc sức khỏe .................................................................. 38
Hình 1.20 Gán node cảm biến lên cơ thể người .................................................................... 39
Hình 1.21 Ứng dụng trong chăm sóc sức khỏe ..................................................................... 40
1.6.4 Ứng dụng trong gia đình ................................................................................... 40
4
Hình 1.22 Ứng dụng trong gia đình ...................................................................................... 41
1.6.5 Ứng dụng trong giao thông ............................................................................... 41
Hình 1.23 Ứng dụng trong giao thông .................................................................................. 41
1.7 Những khó khăn trong việc phát triển mạng WSN................................................. 42
1.7.1 Giới hạn năng lượng.......................................................................................... 42
1.7.2 Bị giới hạn về dải thông..................................................................................... 42
1.7.3 Bị giới hạn về phần cứng ................................................................................... 42
Hình 1.24 Cấu trúc phần cứng của sensor............................................................................. 42
1.7.4 Kết nối mạng không ổn định ............................................................................. 43
1.7.5 Sự kết hợp chặt chẽ giữa sensor và môi trường tự nhiên................................. 43
Chương 2: PHÁT HIỆN VÀ SỬA LỖI TRONG MẠNG CẢM BIẾN WSN .................. 44
2.1 Giới thiệu .................................................................................................................. 44
Hình 2.1 Giao tiếp các node trong mạng cảm biến................................................................ 44
Hình 2.2 Mã hoá NRZ và mã hoá Manchester...................................................................... 46
Hình 2.3 Mã hoá bit ............................................................................................................. 46
2.2 Các loại lỗi bit........................................................................................................... 47
................................ 47
Hình 2.4 Lỗi bit trong quá trình truyền nhận dữ liệu............................................................. 47
2.3 Phát hiện lỗi .............................................................................................................. 47
Hình 2.5 Phương pháp sử dụng bit dư thừa .......................................................................... 48
Kiểm lỗi dư thừa tuần hoàn CRC.............................................................................. 48
Hình 2.6 Quá trình kiểm lỗi CRC ......................................................................................... 49
Hình 2.7 Phép chia nhị phân để tìm CRC ............................................................................. 50
2.4 Sửa lỗi ................................................................................................................... 51
Mã Hamming.............................................................................................................. 51
Hình 2.8 Cách chèn các bit dư thừa vào dữ liệu.................................................................... 51
Hình 2.9 Cách tính các bit chẵn lẻ trong mã Hamming ......................................................... 52
Hình 2.10 Kiểm tra các bit chẵn lẻ ....................................................................................... 53
Chương 3: MÃ ĐIỀU KHIỂN LỖI SỬ DỤNG TRONG WSN........................................ 58
3.1 Giới thiệu .................................................................................................................. 58
Bảng 3.1 Sự tiêu thụ điện năng trong các node cảm biến ...................................................... 58
3.2 Lý thuyết về mã hoá ................................................................................................. 58
3.3 Phương pháp sửa lỗi chuyển tiếp FEC .................................................................... 60
Hình 3.2 Cơ chế sửa lỗi FEC................................................................................................ 60
Mục tiêu của phương pháp này là xây dựng nguyên tắc sửa lỗi dựa vào khoảng cách
Hamming. Trên nguyên tắc này, phương pháp sửa lỗi “kiểm tra chẵn lẻ (parity check)” được
xây dựng và tạo ra quy trình sửa lỗi tối ưu và phù hợp với công nghệ truyền tin hiện nay..... 60
Xét v1 và v2 là 2 dãy nhị phân dài n bit, ta gọi khoảng cách Hamming giữa 2 dãy v1 và v2 là
số bit tương ứng khác nhau. Ký hiệu d(v1, v2). .................................................................... 61
Ví dụ :.................................................................................................................................. 61
v1 = 10101010 ..................................................................................................................... 61
v2 = 10101111 ..................................................................................................................... 61
Ta nhận thấy rằng bit thứ 6 và bit thứ 8 giữa v1 và v2 là khác nhau nên số bit tương ứng khác
nhau giữa v1 và v2 là 2. Do đó ta nói khoảng cách Hamming giữa v1 và v2 là 2 hay d(v1,v2)
= 2. ...................................................................................................................................... 61
Bổ đề tự sửa lỗi được ứng dụng trong FEC .......................................................................... 61
5
Xét bộ mã W= {w1 , w2, … , ws} gồm có s từ mã nhị phân dài n bit và 1 số nguyên dương e.
............................................................................................................................................ 61
- Nếu khoảng cách hamming nhỏ nhất dmin >= 2e+1........................................................... 61
Khi đó thì tất cả các dãy nhận được v có thể tự sửa được tối đa e bit lỗi. .............................. 61
- Nếu dmin >= 2e................................................................................................................. 61
Thì tất cả các dãy nhận được v sẽ có khả năng phát hiện tối đa e lỗi; nếu tổng số bit lỗi < e thì
v có thể tự điều chỉnh được, nếu số bit lỗi = e thì chỉ phát hiện được lỗi và không thể điều
chính được. .......................................................................................................................... 61
Trong bộ mã khối , gọi n là số bit trong một từ mã, k là số bit thông tin và m là bit kiểm tra
chẵn lẻ, e là số lỗi. khi đó:.................................................................................................... 61
Error! Objects cannot be created from editing field codes..................................................... 61
Điều kiện cần để bộ mã có thể tự sửa lỗi là........................................................................... 61
Điều kiện đủ để bộ mã có thể tự sửa lỗi (theo Vasharmov-Gilbert-Sacks)............................ 61
Error! Objects cannot be created from editing field codes. ............................................. 61
Với:
Error! Objects cannot be created from editing field codes. ............................ 62
Ví dụ:................................................................................................................................... 62
Mã 3 chiều (x, y, z) bắt đầu từ gốc 000. Cứ một tín hiệu t hay đổi thì mã bị đẩy đi theo 1 cạnh,
chẳng hạn :........................................................................................................................... 62
000 cách 010, 001 bởi 1 cạnh ............................................................................................... 62
011 cách 010, 111 và 001 bởi 1 cạnh.................................................................................... 62
Như vậy, nếu ta chọn w1 = 010, w2 = 001, w3 = 111 thì khoảng cách giữa chúng là 2 ; tức là
d(w1,w2)=(w1,w3)=d(w2,w3)=2 ............................................................................................. 62
Vậy nếu có lỗi phát sinh thì chỉ phát hiện chứ không sửa được............................................. 62
Như vậy ta có thể phân dạng các loại lỗi sau: ....................................................................... 62
- Lỗi có thể tự điều chỉnh: Gọi Error! Objects cannot be created from editing field codes.là
từ mã đúng được truyền tại nơi phát; v là từ mã nhận được tại nơi thu (truyền đúng thì wi = v).
............................................................................................................................................ 62
Trường hợp v # w; có thể xác định và tự điều chỉnh lại lỗi khi và chỉ khi tồn tại duy nhất từ
mã Error! Objects cannot be created from editing field codes.sao cho d(vj, w*i)=min d(vj,
wi) => khi đó dựa theo nguyên tắc ngần vẫn đúng vj được gải mã về w*i .............................. 62
- Lỗi chỉ phát hiện không thể tự điều chỉnh: Trong trường hợp này tồn tại w* và w** sao cho
d(vj,w*) = d(vj,w**) = min d(vj,wi) với mọi wi thuộc W....................................................... 62
=> không thể giải mã chính xác............................................................................................ 62
- Lỗi không phát hiện được: Trong trường hợp này ta giải mã ra w*I nhưng khác với wi đã
truyền................................................................................................................................... 62
3.3.1 Mã hoá khối tuyến tính Linear Block Codes .................................................... 62
Hình 3.3 Mã hoá, truyền dẫn và giải mã dữ liệu ................................................................... 63
3.3.1.1 Cách mã hoá ........................................................................................................... 64
3.3.1.2 Cách giải mã ........................................................................................................... 64
Hệ phương trình này gọi là hệ phương trình giải mã............................................................. 65
Do đó dữ liệu thu được ở bên nhận....................................................................................... 65
3.3.1.3 Các phát hiện lỗi..................................................................................................... 65
3.3.1.4 Cách sửa lỗi............................................................................................................. 66
Nếu d = 0 không lỗi ............................................................................................................. 69
Suy ra không lỗi................................................................................................................... 69
Suy ra có lỗi bit thư 7 bị truyền lỗi ....................................................................................... 70
3.3.2 Kỹ thuật ghép xen Interleaving......................................................................... 70
Hình 3.4 Không có ghép xen dữ liệu .................................................................................... 70
Hình 3.5 Hiệu quả của việc ghép xen dữ liệu........................................................................ 71
3.3.2.1 Khối xen dữ liệu...................................................................................................... 71
Hình 3.6 Đặc trưng khối xen từ bộ FEC tới kênh với D=3, N=7 ........................................... 72
Hình 3.7 Đặc trưng bộ giải xen từ kênh tới FEC với D=3, N=7 ............................................ 72
6
Hình 3.8. Mô tả kết quả các giá trị xen dữ liệu ..................................................................... 73
3.3.2.2 Kỹ thuật xen chập Convolution Interleaving ........................................................ 73
Hình 3.9 Bộ xen chập N=7, D=3 .......................................................................................... 73
3.3.3 Mã sửa lỗi kép - Double error correction codes ...................................................... 74
Một mã Double-Error-Correcting và Triple-Error-Detecting (DEC-TED) (16,8) được đề xuất
bởi Gulliver và Bhargave [5] với ma trận nhị phân P............................................................ 74
................................................................................ 74
Ma trận sinh G được tạo ra với dạng G=[I8 , P] và ma trận chẵn lẻ H có dạng H = [PT , I8].
Nếu 1 hay 2 bit lỗi xuất hiện, syndrome s sẽ hoặc là giống với 1 cột trong H hoặc là bằng phép
cộng tuyệt đối của 2 cột trong h; chỉ số của các cột này chính là vị trí của bit lỗi. ................. 75
Ví dụ:................................................................................................................................... 75
Với ma trận sinh G được cho như sau : ................................................................................ 75
Error! Objects cannot be created from editing field codes............................... 75
Error! Objects cannot be created from editing field codes............................... 75
Khi đó nếu cho bản tin u = [0100 0010] thì từ mã v sẽ là:..................................................... 75
v = uG = [0100 0010 1001 1100] ......................................................................................... 75
giả sử rằng bít thứ 2 và thứ 3 bị đảo do noise trong kênh không dây. Do đó, thông tin nhận
được sẽ là v’ = [0010 0010 1001 1100]. Bằng việc nhận v’ với ma trận chuyển vị của ma trận
chẵn lẻ H, chúng ta sẽ tính được s: ....................................................................................... 75
s = v’HT = [1010 1111] ........................................................................................................ 75
Hãy chú ý rằng syndrome đạt được bằng việc cộng tuyệt đối hàng thứ 2 và thứ 3 của ma trận
HT . Do đó ở thiết bị đầu cuối bộ thu thì các bít thứ 2 và thứ 3 đã bị đảo, để sửa lỗi, từ nhận
định trên ta sẽ có từ mã đúng là v = [0100 0010 1001 1100]. Bởi vì ma trận sinh G là một mã
hệ thống, nên chúng ta sẽ có 8 bit đầu tiên là dạng của dữ liệu nhận đúng là u =[0100 0010] 75
3.4 Hiệu quả trong việc sử dụng năng lượng .................................................................... 76
Hình 3.11 Bit lỗi đơn và lỗi kép .......................................................................................... 76
Hình 3.12 Tính toán tỷ lệ mất gói tin.................................................................................... 77
3.4.1 Kiểm tra ngoài trời.................................................................................................... 77
3.4.2 Kiểm tra trong nhà.................................................................................................... 78
Hình 3.13 Các vị trí các node ở trong nhà............................................................................. 78
7
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
8
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
9
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.
10
+ 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
11
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
12
- Đ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
13
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.
14
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ý
15
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 để
16
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.
17
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.
18
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.
19
- 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ệ
20
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í.
21
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
22
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).
23
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.
24
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
25
đồ 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.
Hình 1.11 Các pha của giao thức truyền tin trực tiếp
26
(a) truyền yêu cầu (interest)
(b) thiết lập gradient ban đầu
(c) phân phối dữ liệu theo reinforcement
Trong Directed Diffusion ta cũng có thể sửa lại đường đi. Khi một đường
giữa nguồn và sink hỏng thì cần phải tạo ra một đường mới hoặc đường thay thế.
Trong trường hợp này, Directed Diffusion về cơ bản phải tái thiết lập lại sự củng
cố bằng việc tìm giữa những đường khác mà đang gửi dữ liệu ở tốc độ thấp hơn.
Ganesan có ý kiến áp dụng cơ chế đa đường, trong trường hợp một đường bị
hỏng thì sẽ chọn một trong số các đường thay thế đó mà không cần tốn chi phí
để tìm một đường khác. Trong trường hợp này tất nhiên sẽ có một số lượng lớn
mào đầu để giữ cho những đường thay thế này tồn tại bằng cách dùng tốc độ dữ
liệu thấp, cách này sẽ tiêu hao khá nhiều năng lượng nhưng sẽ tiết kiệm nhiều
năng lượng hơn trong trường hợp một đường bị hỏng và phải chọn một đường
mới khác.
Directed Diffusion khác SPIN ở cơ chế gửi dữ liệu theo yêu cầu. Trong
Directed Diffusion, khi có dữ liệu nào đó thích hợp thì sink gửi yêu cầu đến các
nút cảm ứng bằng việc flooding một vài nhiệm vụ. Với SPIN thì các sensor
quảng bá các dữ liệu thích hợp cho phép các nút quan tâm yêu cầu dữ liệu đó.
Directed Diffusion có nhiều ưu điểm, vì là tập trung dữ liệu nên tất cả các giao
tiếp từ nút lân cận này đến nút lân cận khác không cần một cơ chế xác định nút.
Ngoài nhiệm vụ cảm nhận thì mỗi một nút còn có thể tập trung và dự trữ dữ liệu.
Dự trữ là một thuận lợi lớn trong sử dụng hiệu quả năng lượng và trễ. Hơn nữa,
Directed Diffusion có hiệu quả sử dụng năng lượng cao vì nó hoạt động theo yêu
cầu và không cần một cấu hình mạng duy trì toàn cầu.
Tuy nhiên Directed Diffusion không thể được áp dụng cho tất cả các ứng
dụng của mạng cảm ứng vì nó dựa trên mô hình phân phối dữ liệu theo hướng
đưa ra yêu cầu. Các ứng dụng mà yêu cầu phân phối dữ liệu liên tiếp đến sink sẽ
không hoạt động hiệu quả với mô hình này. Vì vậy, Directed Diffusion không
phải là một lựa chọn tốt cho giải thuật định tuyến cho các ứng dụng như là kiểm
tra môi trường. Hơn nữa, lược đồ đặt tên dùng trong Directed Diffusion là không
phải là một ứng dụng độc lập. Hơn nữa, quá trình phù hợp giữa dữ liệu và các
yêu cầu đòi hỏi thêm các mào đầu ở các sensor.
1.3.3.2 Định tuyến phân cấp
Khả năng mở rộng là một vấn đề cần quan tâm của mạng cảm ứng. Mạng
đơn cấp có thể gây ra quá tải ở các cổng giao tiếp khi mật độ các sensor tăng lên.
27
Những sự quá tải như vậy có thể làm cho sự kiện được theo dõi không đầy đủ.
Hơn nữa cấu trúc cổng đơn không thể mở rộng khi có một số lượng lớn hơn
sensor trong một vùng rộng hơn vì các sensor không có khả năng giao tiếp qua
khoảng cách lớn. Để cho phép hệ thống có thể phục vụ với những tải thêm vào
và có khả năng bao phủ một vùng rộng mà không giảm chất lượng dịch vụ thì
người ta đưa ra định tuyến phân cấp.
Mục đích chính của định tuyến phân cấp là để duy trì hiệu quả việc tiêu
thụ năng lượng của các nút cảm ứng bằng việc đặt chúng trong giao tiếp
multihop trong một cụm cụ thể và bằng việc thực hiện tập trung và hợp nhất dữ
liệu để giảm số bản tin được truyền đến node chính. Sự hình thành các cụm chủ
yếu dựa trên năng lượng dự trữ của sensor và vùng lân cận của sensor so với các
nút chủ của cụm. LEACH là một trong số những cách tiếp cận định tuyến phân
cấp đầu tiên cho mạng cảm ứng. Ý tưởng của LEACH là động lực cho rất nhiều
giao thức định tuyến phân cấp khác phát triển.
Phân cấp theo cụm thích ứng năng lượng thấp LEACH (Low-Energy
Adaptive Clustering Hierarchy) là một trong những giải thuật định tuyến phân
cấp cho mạng cảm ứng. Ý tưởng là để hình thành các cụm nút cảm ứng dựa vào
cường độ tín hiệu nhận và dùng các nút chủ của cụm như là các router đến các
sink. Việc này sẽ tiết kiệm năng lượng vì quá trình truyền chỉ có thể thực hiện
bằng các nút chủ của cụm thay cho việc sử dụng tất cả các nút cảm ứng.
Mục tiêu chính của LEACH là:
- Mở rộng thời gian sống của mạng
- Giảm sự tiêu thụ năng lượng bởi mỗi nút mạng
- Sử dụng tập trung dữ liệu để giảm bản tin truyền dẫn trong mạng
Quá trình hoạt động của LEACH được chia thành hai bước là bước thiết
lập và bước ổn định. Thời gian của bước ổn định kéo dài hơn so với thời gian
của bước thiết lập để giảm thiểu phần điều khiển.
28
Hình 1.12 Mô hình mạng LEACH
Khi dùng LEACH thì giảm được sự hao phí năng lượng so với truyền trực
tiếp và so với các giải thuật định tuyến truyền năng lượng tối thiểu. Các nút có
thể ngừng hoạt động ngẫu nhiên và các cụm động sẽ làm tăng thời gian sống của
mạng.
Tuy nhiên LEACH dùng định tuyến đơn điểm, các nút có thể truyền trực
tiếp đến các nút chủ và sink. Vì thế nó sẽ không thích hợp với mạng mà triển
khai trên diện rộng. Hơn nữa, ý tưởng về các cụm động đòi hỏi số lượng mào
đầu lớn, ví dụ như các sự thay đổi nút chủ, quảng bá… Ngoài ra 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.
1.4 Kiến trúc giao thức mạng
Trong mạng cảm ứng, dữ liệu sau khi được thu thập bởi các nút sẽ được
định tuyến gửi đến sink. Sink sẽ gửi dữ liệu đến người dùng đầu cuối thông qua
internet hay vệ tinh. Kiến trúc giao thức được sử dụng bởi nút gốc và các nút
cảm biến được trình bày trong hình:
29
Hình 1.13 Kiến trúc giao thức của mạng cảm biến
Kiến trúc giao thức này kết hợp giữa công suất và chọn đường, kết hợp số
liệu với các giao thức mạng, sử dụng công suất hiệu quả với môi trường vô
tuyến và sự tương tác giữa các nút cảm biến. Kiến trúc giao thức bao gồm lớp
vật lý, lớp liên kết dữ liệu, lớp mạng, lớp truyền tải, lớp ứng dụng, phần quản lý
công suất, phần quản lý di động và phần quản lý nhiệm vụ.
- Lớp ứng dụng : Tùy vào từng nhiệm vụ của mạng cảm biến mà các
phần mềm ứng dụng khác nhau được xây dựng và sử dụng trong lớp ứng
dụng.Trong lớp ứng dụng có mốt số giao thức quan trọng như giao thúc quản lí
mạng sensor (SMP), giao thức quảng bá dữ liệu và chỉ định nhiệm vụ cho từng
sensor (TADAP),giao thức phân phối dữ liệu và truy vấn cảm biến (SQDDP).
-Lớp vận chuyển: Lớp truyền tải giúp duy trì luồng số liệu nếu ứng dụng
mạng cảm biến yêu cầu.Lớp truyền tải đặc biệt cần khi mạng cảm biến kết nối
với mạng bên ngoài, hay kết nối với người dùng qua internet. Giao thức lớp vận
chuyển giữa sink với người dùng (nút quản lý nhiệm vụ) thì có thể là giao
thức UDP hay TCP thông qua internet hoặc vệ tinh. Còn giao tiếp giữa sink và
các nút cảm biến cần các giao thức kiểu như UDP vì các nút cảm biến bị hạn
30
chế về bộ nhớ. Hơn nữa các giao thức này còn phải tính đến sự tiêu thụ công
suất, tính mở rông và định tuyến tập trung dữ liệu .
- Lớp mạng: Lớp mạng quan tâm đến việc định tuyến dữ liệu được cung
cấp bởi lớp truyền tải.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 như mật độ các nút dày đặc, hạn chế về năng lượng… Do vậy
thiết kế lớp mạng trong mạng cảm biến phải theo các nguyên tắc sau:
Tính hiệu quả về năng lượng luôn được xem là vấn đề quan
trọng hàng đầu.
Các mạng cảm biến gần như là tập trung dữ liệu
Tích hợp dữ liệu và giao thức mạng.
Phải có cơ chế địa chỉ theo thuộc tính và biết về vị trí
Có rất nhiều giao thức định tuyến được thiết kế cho mạng cảm biến
không dây. Nhìn tổng quan, chúng được chia thành ba loại dựa vào cấu trúc
mạng, đó là định tuyến ngang hàng, định tuyến phân cấp, định tuyến dựa theo vị
trí. Xet theo hoạt động thì chúng được chia thành định tuyến dựa trên đa đường
(multipath-based), định tuyến theo truy vấn (query- based), định tuyến
negotiation-based, định tuyến theo chất lượng dịch vụ (QoS-based), định tuyến
kết hợp (coherent-based).
-Lớp kết nối dữ liệu: Lớp kết nối dữ liệu chịu trách nhiệm cho việc ghép
các luồng dữ liệu, dò khung dữ liệu, điều khiển lỗi và truy nhập môi trường. Nó
đảm bảo cho giao tiếp điểm -điểm, điểm-đa điểm tin cậy.Vì môi trường có tạp
âm và các nút cảm biến có thể di động, giao thức điều khiển truy nhập môi
trường (MAC) phải xét đến vấn đề công suất và phải có khả năng tối thiểu hoá
việc va chạm với thông tin quảng bá của các nút lân cận.
- Lớp vật lý: Lớp vật lý chịu trách nhiệm lựa chọn tần số, phát tần số sóng
mang, điều chế, lập mã và tách sóng.
Ngoài ra, các phần quản lý công suất, quản lý di chuyển và quản lý
nhiệm vụ sẽ giám sát việc sử dụng công suất, sự di chuyển và thực hiện nhiệm
vụ giữa các nút cảm biến. Những phần này giúp các nút cảm biến phối hợp
nhiệm vụ cảm biến và tiêu thụ công suất tổng thể thấp hơn.
- Phần quản lý công suất điều khiển việc sử dụng công suất của nút cảm
biến. Ví dụ, nút cảm biến có thể tắt khối thu của nó sau khi thu được một bản
tin từ một nút lân cận. Điều này giúp tránh tạo ra các bản tin giống nhau.
Cũng vậy, khi mức công suất của nút cảm biến thấp, nút cảm biến phát quảng
31
bá tới các nút lân cận để thông báo nó có mức công suất thấp và không thể
tham gia vào các bản tin chọn đường. Công suất còn lại sẽ được dành riêng cho
nhiệm vụ cảm biến.
- Phần quản lý di động phát hiện và ghi lại sự di chuyển của các nút cảm
biến để duy trì tuyến tới người sử dụng và các nút cảm biến có thể lưu vết của
các nút cảm biến lân cận. Nhờ xác định được các nút cảm biến lân cận, các nút
cảm biến có thể cân bằng giữa công suất của nó và nhiệm vụ thực hiện.
- Phần quản lý nhiệm vụ dùng để làm cân bằng và lên kế hoạch các nhiệm
vụ cảm biến trong một vùng xác định. Không phải tất cả các nút cảm biến trong
vùng đó điều phải thực hiện nhiệm vụ cảm biến tại cùng một thời điểm. Kết quả
là một số nút cảm biến thực hiện nhiệm vụ nhiều hơn các nút khác tuỳ theo mức
công suất của nó.
Những phần quản lý này là cần thết để các nút cảm biến có thể làm
việc cùng nhau theo một cách thức sử dụng hiệu quả công suất, chọn đường
số liệu trong mạng cảm biến di động và phân chia tài nguyên giữa các nút
cảm biến.
Ngoài ra, còn có các giao thức đặc trưng hỗ trợ cho mạng WSN: giao
thức định vị (Location protocol), giao thức đồng bộ thời gian (Time
synchronization protocol), giao thức điều khiển cấu hình mạng (topology
control).Trong nhiều trường hợp việc xác định vị trí trong thế giới tự nhiên của
các nút cảm biến là rất cần thiết. Ví dụ các ứng dụng kiểm tra và phát hiện sự
kiện sảy ra ở đâu, nếu không có thông tin vị trí thì không thể báo cáo chính xác.
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 ứng.Giao thức đồng bộ thời gian đảm bảo cho mạng hoạt động đồng bộ,
giảm các sai lệch về thời gian, hoạt động hiệu quả và báo cáo kết quả chính xác
về thời gian. Còn việc điều khiển cấu hình mạng cũng rất quan trọng. Như đã
trình bày trong các phần trên, mạng WSN có thể triển khai ngẫu nhiên, mật độ
các nút rất dày dặc nếu không có cơ chế điều khiển topo tốt các nút sẽ cản trở
nhau trong việc giao tiếp, giao tiếp trực tiếp giữa các nút sẽ làm giảm công suất
truyền dẫn. Hơn nữa, khi các nút cảm biến mà di chuyển thì cần phải điều khiển
lại cấu hình và định tuyến lại.
1.5 Lỗi trong quá trình tuyền tin
Khi truyền thông tin trong mạng, thông tin truyền từ phía phát sang phía
thu có thể bị sai, lỗi hoặc mất. Trong trường hợp thông tin bị mất, cần phải thực
32
hiện truyền lại thông tin. Với trường hợp thông tin bị sai, có thể sửa sai bằng
một trong hai cách:
Sửa lỗi trực tiếp bên thu: phía thu sau khi phát hiện lỗi có thể sửa lỗi trực
tiếp ngay bên thu mà không yêu cầu phải phát lại. Để có thể thực hiện được điều
này, thông tin trước khi truyền đi phải được cài các mã sửa lỗi (bên cạnh việc có
khả năng phát hiện lỗi, cần có khả năng sửa lỗi). Đó là cơ chế sửa lỗi chuyển
tiếp FEC (Forward Error Correction)
Yêu cầu phía phát truyền lại: phía thu sau khi kiểm tra và phát hiện có lỗi
sẽ yêu cầu phía phát truyền lại thông tin. Đó là sử dụng cơ chế yêu cầu trả lời tự
động ARQ (Automatic Repeat Request)
+ Cơ chế yêu cầu trả lời tự động ARQ hoạt động như sau:
- Phát hiện lỗi
- Positive acknowledgement (ACK): frame nhận OK tại Rx
- Truyền lại sau timeout
- Negative acknowledgement (NACK): truyền lại
được chia ra làm 3 loại chính:
- Cơ chế phát lại dừng và đợi (Stop-and-Wait ARQ)
Hình 1.14a Cơ chế phát lại dừng và đợi Stop and Wait ARQ
Tx gửi 1 frame và đợi ACK từ Rx trước khi truyền next frame
Tx phải giữ bản copy của frame đã gửi đến khi nhận đươc ACK
Sử dụng timeout cho các frame hoặc ACK bị mất
33
Đánh số các frame gửi và nhận để nhận biết khi lặp frame
- Cơ chế phát lại theo nhóm (Go-back-N ARQ)
Hình 1.14b Cơ chế phát lại theo nhóm Go back N ARQ
Tx có thể truyền liên tiếp các frame
Rx gửi negative acknowledgement (REJ) khi phát hiện lỗi
Tx phải truyền lại tất cả các frame từ frame bi lỗi
Tx phải giữ bản copy của tất cả các frame đã gửi
- Cơ chế phát lại có lựa chọn (Selective Repeat ARQ)
Hình 1.15 Cơ chế phát lại có lựa chọn Selective Repeat ARQ
Tx có thể truyền liên tiếp các frame
Rx gửi negative acknowledge (SREJ) khi phát hiện lỗi
34
Rx lưu lại tất cả các frame OK sau frame bị lỗi
Tx chỉ gửi lại duy nhất frame bị lỗi
Rx phải sắp xếp lại các frame đã lưu sau khi nhận được frame truyền lại
+ Cơ chế sửa lỗi chuyển tiếp FEC: là một hệ thống quản lý và sửa lỗi
trong truyền thông kỹ thuật số. Nguyên tắc của FEC là người gửi thêm thông tin
trùng lặp vào trong thông điệp gửi đi, điều đó cho phép người nhận có thể tự
kiểm tra và sửa lỗi (nếu có) gây ra do kênh truyền. Lợi điểm của FEC là không
yêu cầu gửi lại thông tin.
Do năng lượng trong mỗi node của mạng cảm biến bị hạn chế nên cơ chế
sửa lỗi chuyển tiếp FEC tỏ ra hiệu quả hơn cơ chế ARQ.
1.6 Một số ứng dụng trong mạng cảm biến
Mạng cảm biến không dây được ứng dụng cho nhiều lĩnh vực khác nhau
như cảm biến động đất, cảm biến từ trường tốc độ lấy mẫu thấp, cảm biến thị
giác, cảm biến hồng ngoại, cảm biến âm thanh, radar… và có thể quan sát vùng
rộng các điều kiện xung quanh đa dạng như:
- Nhiệt độ.
- Độ ẩm.
- Sự chuyển động của xe cộ.
- Điều kiện ánh sáng.
- Áp suất.
- Sự hình thành đất.
- Mức nhiễu.
- Sự có mặt hay vắng mặt một đối tượng nào đó.
- Mức ứng suất trên các đối tượng bị gắn.
- Đặc tính hiện tại như tốc độ, chiều và kích thước của đối tượng.
Các nút cảm biến có thể được sử dụng để cảm biến liên tục hoặc là phát
hiện sự kiện, số nhận dạng sự kiện, cảm biến vị trí và điều khiển cục bộ bộ phận
phát động. Khái niệm vi cảm biến và kết nối không dây của những nút này hứa
hẹn nhiều vùng ứng dụng mới. Các ứng dụng được ứng trong quân đội, môi
trường, sức khỏe, gia đình và các lĩnh vực thương mại khác.
35
1.6.1 Ứng dụng trong quân đội
Mạng cảm biến không dây có thể tích là một phần tích hợp trong hệ thống
điều khiển quân đội, giám sát, giao tiếp, tính toán thông minh, trinh sát, theo dõi
mục tiêu. Đặc tính triển khai nhanh, tự tổ chức và có thể bị lỗi của mạng cảm
biến làm cho chúng hứa hẹn kỹ thuật cảm biến cho hệ thống trong quân đội. Vì
mạng cảm biến dựa trên sự triển khai dày đặc của các nút cảm biến có sẵn, chi
phí thấp và sự phá hủy của một vài nút bởi quân địch không ảnh hưởng đến hoạt
động của quân đội cũng như sự phá hủy các cảm biến truyền thống làm cho khái
niệm mạng cảm biến là ứng dụng tốt đối với chiến trường. Một vài ứng dụng
quân đội của mạng cảm biến là quan sát lực lượng, trang thiết bị, đạn dược, theo
dõi chiến trường do thám địa hình và lực lượng quân địch, mục tiêu, việc đánh
giá mức độ nguy hiểm của chiến trường, phát hiện và do thám việc tấn công
bằng hóa học, sinh học, hạt nhân.
Giám sát lực lượng , trang thiết bị và đạn dược: Các người lãnh đạo, sĩ
quan sẽ theo dõi liên tục trạng thái lực lượng quân đội, điều kiện và sự có sẵn
của các thiết bị và đạn dược trong chiến trường bằng việc sử dụng mạng cảm
biến. Quân đội, xe cộ, trang thiết bị và đạn dược có thể gắn liền với các thiết bị
cảm biến nhỏ để có thể thông báo về trạng thái. Những bản báo cáo này được tập
hợp lại tại các nút sink để gửi tới lãnh đạo trong quân đội. Dữ liệu cũng có thể
được chuyển tiếp đến các cấp cao hơn.
Giám sát chiến trường: địa hình hiểm trở, các tuyến đường, đường mòn và
các chỗ eo hẹp có thể nhanh chóng được bao phủ bởi mạng cảm biến và gần như
có thể theo dõi các hoạt động của quân địch. Khi các hoạt động này được mở
rộng và kế hoạch hoạt động mới được chuẩn bị một mạng mới có thể được triển
khai bất cứ thời gian nào khi theo dõi chiến trường.
Giám sát địa hình và lực lượng quân địch: mạng cảm biến có thể được
triển khai ở những địa hình then chốt và một vài nơi quan trọng, các nút cảm
biến cần nhanh chóng cảm nhận các dữ liệu và tập trung dữ liệu gửi về trong vài
phút trước khi quân địch phát hiện và có thể chặn lại chúng. Hình cho ta hình
dung được về ứng dụng của mạng cảm biến trong hoạt động quân đội.
36
Hình 1.16 Node cảm biến được gán lên mũ
Hình 1.17 Ứng dụng mạng cảm biến trong quân đội
Đánh giá sự nguy hiểm của chiến trường: trước và sau khi tấn công
mạng cảm biến có thể được triển khai ở những vùng mục tiêu để nắm được mức
độ nguy hiểm của chiến trường.
37
Phát hiện và thăm dò các vụ tấn công bằng hóa học, sinh học và hạt nhân.
Trong các cuộc chiến tranh hóa học và sinh học đang gần kề, một điều rất quan
trọng là sự phát hiện đúng lúc và chính xác các tác nhân đó. Mạng cảm biến
triển khai ở những vùng mà được sử dụng như là hệ thống cảnh báo sinh học và
hóa học có thể cung cấp các thông tin mang ý nghĩa quan trọng đúng lúc nhằm
tránh thương vong nghiêm trọng.
1.6.2 Ứng dụng trong môi trường
Một vài ứng dụng môi trường của mạng cảm biến bao gồm theo dõi sự di
cư của các loài chim, các động vật nhỏ, các loại côn trùng, theo dõi điều kiện
môi trường mà ảnh hưởng đến mùa màng và vật nuôi, việc tưới tiêu, các thiết bị
đo đạc lớn đối với việc quan sát diện tích lớn trên trái đất, sự thăm dò các hành
tinh, phát hiện sinh-hóa, nông nghiệp chính xác, quan sát môi trường, trái đất,
môi trường vùng biển và bầu khí quyển, phát hiện cháy rừng, nghiên cứu khí
tượng học và địa lý, phát hiện lũ lụt, sắp đặt sự phức tạp về sinh học của môi
trường và nghiên cứu sự ô nhiễm.
Hình 1.18 Ứng dụng trong môi trường
38
Phát hiện cháy rừng: vì các nút cảm biến có thể được triển khai một cách
ngẫu nhiên, có chiến lược với mật độ cao trong rừng, các nút cảm biến sẽ dò tìm
nguồn gốc của lửa để thông báo cho người sử dụng biết trước khi lửa lan rộng
không kiểm soát được. Hàng triệu các nút cảm biến có thể được triển khai và
tích hợp sử dụng hệ thống tần số không dây hoặc quang học. Cũng vậy, chúng
có thể được trang bị cách thức sử dụng công suất có hiểu quả như là pin mặt trời
bởi vì các nút cảm biến bị bỏ lại không có chủ hàng tháng và hàng năm. Các nút
cảm biến sẽ cộng tác với nhau để thực hiện cảm biến phân bố và khắc phục khó
khăn, như các cây và đá mà ngăn trở tầm nhìn thẳng của cảm biến có dây.
Hình 1.19 Cảnh báo cháy rừng
Phát hiện lũ lụt: một ví dụ đó là hệ thống báo động được triển khai tại Mỹ.
Một vài loại cảm biến được triển khai trong hệ thống cảm biến lượng mưa, mức
nước, thời tiết. Những con cảm biến này cung cấp thông tin để tập trung hệ
thống cơ sở dữ liệu đã được định nghĩa trước.
1.6.3 Ứng dụng trong chăm sóc sức khỏe
Một vài ứng dụng về sức khỏe đối với mạng cảm biến là giám sát bệnh
nhân, các triệu chứng, quản lý thuốc trong bệnh viện, giám sát sự chuyển động
và xử lý bên trong của côn trùng hoặc các động vật nhỏ khác, bác sĩ theo dõi và
kiểm tra bệnh nhân trong bệnh viện.
39
Hình 1.20 Gán node cảm biến lên cơ thể người
Mỗi bệnh nhân được gắn một nút cảm biến nhỏ và nhẹ, mỗi một nút cảm
biến này có nhiệm vụ riêng, ví dụ có nút cảm biến xác định nhịp tim trong khi
con cảm biến khác phát hiện áp suất máu, bác sĩ cũng có thể mang nút cảm biến
để cho các bác sĩ khác xác định được vị trí của họ trong bệnh viện.
40
Hình 1.21 Ứng dụng trong chăm sóc sức khỏe
1.6.4 Ứng dụng trong gia đình
Trong lĩnh vực tự động hóa gia đình, các nút cảm biến được đặt ở các
phòng để đo nhiệt độ. Không những thế, chúng còn được dùng để phát hiện
những sự dịch chuyển trong phòng và thông báo lại thông tin này đến thiết bị
báo động trong trường hợp không có ai ở nhà.
41
Hình 1.22 Ứng dụng trong gia đình
1.6.5 Ứng dụng trong giao thông
Các cảm biến được đặt trong các ô tô để người dùng có thể điều khiển,
hoặc được gắn ở vỏ của ô tô, các phương tiện giao thông để chúng tương tác
với nhau và tương tác với đường và các biển báo để giúp các phương tiện đi
được an toàn, tránh tai nạn giao thông và giúp việc điều khiển luồng tốt hơn.
Hình 1.23 Ứng dụng trong giao thông
42
1.7 Những khó khăn trong việc phát triển mạng WSN
Vì mạng cảm ứng không dây có những ứng dụng vô cùng to lớn trong
cuộc sống, và để tận dụng hết những thuận lợi này chúng ta phải xác định rõ
những hạn chế của mạng cảm ứng và các vấn đề kĩ thuật mà ta sẽ gặp phải khi
triển khai:
1.7.1 Giới hạn năng lượng
Khi các thiết bị tính toán tăng hiệu quả nhanh chóng thì sự tiêu thụ năng
lượng của mạng cảm ứng không dây giống như một nút cổ chai. Do các sensor
có kích cỡ nhỏ và giá thành rẻ nên có thể triển khai hàng nghìn sensor trong
mạng, do đó ta không thể nối dây từ các sensor này đến nguồn năng lượng.
Đồng thời để có thể vận hành tự động thì các sensor cần phải có nguồn pin. Vì
lượng năng lượng có sẵn trong mỗi sensor chỉ giới hạn ở một mức nào đó nên sự
đồng bộ hóa chỉ nhận được khi duy trì đủ năng lượng để các sensor này hoạt
động hiệu quả.
1.7.2 Bị giới hạn về dải thông
Trong mạng cảm ứng, năng lượng được dùng trong xử lý dữ liệu ít hơn
nhiều so với việc truyền nó đi. Hiện nay việc truyền thông vô tuyến bị giới hạn
bởi tốc độ dữ liệu khoảng 10-100 Kbits/s. Sự giới hạn về băng thông này ảnh
hưởng trực tiếp đến việc truyền thông tin giữa các sensor, và nếu không có sự
truyền thông tin này thì không thể đồng bộ hóa được.
1.7.3 Bị giới hạn về phần cứng
Hình 1.24 Cấu trúc phần cứng của sensor
43
Phần cứng của các nút cảm ứng thường bị giới hạn do kích cỡ nhỏ của nó.
Một nút cảm ứng tiêu biểu như hạt bụi Berkeley Mica2 (hình 1.19) có một pin
mặt trời nhỏ, CPU 8 bit hoạt động ở tốc độ 10MHz, bộ nhớ từ 128KB đến 1MB,
và phạm vi truyền dưới 50m. Sự hạn chế về năng lượng tính toán và không gian
lưu trữ đặt ra một thách thức to lớn. Đó là ta không thể tăng kích cỡ của nút cảm
ứng vì như vậy sẽ tăng chi phí và tiêu thụ thêm năng lượng, đồng thời sẽ gây
khó khăn trong việc triển khai hàng nghìn nút trong mạng.
1.7.4 Kết nối mạng không ổn định
Mạng cảm ứng có ưu điểm là tính di động, nhưng mạng vẫn phải đối mặt
với những nhược điểm sau:
- Giới hạn trong phạm vi truyền của các sensor di động (khoảng 10100m), dẫn đến việc truyền thông tin giữa các nút cảm ứng trở nên khó khăn.
- Các phương tiện truyền không dây không được bảo vệ khỏi nhiễu bên
ngoài nên có thể dẫn đến mất mát một lượng lớn thông tin.
- Giới hạn dải thông khi truyền vô tuyến và kết nối không liên tục.
- Cấu hình mạng thay đổi thường xuyên phụ thuộc vào sự di động của các
nút nên việc định lại cấu hình động trở nên cần thiết.
1.7.5 Sự kết hợp chặt chẽ giữa sensor và môi trường tự nhiên
WSNs dùng để giám sát các hiện tượng trong thế giới thực nên việc thiết
kế mạng phải thích ứng với các các đặc trưng của môi trường mà nó cảm nhận.
WSNs được dùng cho các ứng dụng khác nhau như là kiểm tra trong quân đội,
cảnh báo cháy rừng… nên phải được thiết kế phù hợp với từng ứng dụng. Ví dụ
như sensor có thể dùng để đo nhiệt độ, ánh sáng, âm thanh hay độ ẩm và tùy
từng loại ứng dụng sẽ quyết định dùng loại sensor nào.
Thách thức lớn nhất trong mạng cảm ứng 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 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 trong từng lĩnh vực khác nhau.
Trong mạng cảm ứng, năng lượng được sử dụng chủ yếu cho 3 mục đích: truyền
dữ liệu, xử lý dữ liệu và đảm bảo cho phần cứng hoạt động.
Hiện nay người ta cũng đang mong muốn phát triển quá trình xử lý năng
lượng một cách hiệu quả mà giảm tối thiểu các yêu cầu về năng lượng qua qua
việc xử lý lỗi, đồng thời tối thiểu hóa các bản tin truyền qua mạng để điều khiển
và phối hợp mạng.
44
Chương 2: PHÁT HIỆN VÀ SỬA LỖI TRONG MẠNG CẢM BIẾN WSN
2.1 Giới thiệu
Cũng như trong các hệ thống mạng không dây khác, khi truyền dữ liệu từ
vị trí này đến vị trí khác. Có nhiều yếu tố tác động trên đường truyền như môi
trường, ồn, nhiễu đường truyền,… có thể làm hỏng một hay nhiều bit của khối
dữ liệu đang truyền. Do đó muốn thông tin ở nơi nhận, nhận được chính xác thì
phải có cơ chế phát hiện và sửa lỗi các đó hoặc là yêu cầu truyền lại nếu lỗi quá
lớn.
Hình 2.1 Giao tiếp các node trong mạng cảm biến
Một nút cảm nhận không dây giao tiếp với các nút cảm nhận khác bằng
việc sử dụng Network- Stack như hình trên.
Ở lớp ứng dụng (Application), dữ liệu có thể được gửi ở dạng gói , do
chip radio ở lớp phần cứng có thể truyền và nhận dữ liệu dạng byte, nên các gói
tin này cần được phân đoạn trước khi chúng có thể được gửi và phải được gép
lại sau khi chúng được nhận.
Lớp điều khiến đa truy cập Media – Access – Control (MAC) chuyển tiếp
lớp ứng dụng với radio chip :
+ Khi 1 gói tin được gửi đi nhờ 1 ứng dụng, gói tin được phân nhỏ thành
các byte. 1 chuỗi liên tiếp các byte đặc biệt được gọi là Preamble (phần mở đầu)
được gửi đi trước các byte dữ liệu do đó phía thu có thể đồng bộ và xác định
phần bắt đầu của 1 gói tin.
45
+ Sau khi nhận 1 byte, radio chip mã hoá bit dữ liệu và truyền chúng. Ở
phía nhận, radio chip báo hiệu việc đến của các byte sau khi xác định và giải mã
các bit dữ liệu.
+ Sau đó lớp MAC hợp lại gói đầu tiên sau gói preamble. Tiếp theo lớp
MAC báo hiệu việc đến của gói tin cho lớp trên.
Các byte dữ liệu có thể được mã hoá một cách tuỳ ý sau khi được phân
đoạn cùng với mã sửa lỗi (ECC – Error correction code) để khôi phục các bit dữ
liệu trong trường hợp có số lượng nhỏ các bit bị lỗi. Có một hay nhiều các byte
dữ liệu được xếp về phía trong của chuỗi các byte dữ liệu khác cái mà sau đó
cũng đã được truyền qua radio chip. Ở phía bộ thu, các byte dữ liệu đã được
nhận , và được mã hoá để trở về dạng các byte dữ liệu gốc.
Bộ điều biến bit chuyển 1 bit vào thành 1 chuỗi bit trong dạng tương tự.
Lược đồ điều biến bit đơn giản nhất là mã hoá NRZ (Non-Return to Zero). Mã
hoá NRZ 1 cách đơn giản tạo ra 1 dạng sóng (của tín hiệu) với mức điện áp
tương ứng: A cho đầu vào bit 0 và B cho đầy vào bit 1. Bộ thu phát radio giữ vết
của tín hiệu tương tự có nghĩa để phân biệt với các bit đang dồn đến. Bằng việc
so sánh các tính hiệu thu được với mức trung bình, bộ thu phát truyển đổi dạng
sóng tương tự thành bit nhị phận 0 hay 1. Việc này có thể sinh ra 1 vấn đề khi có
một chuỗi dài là 0 hay 1, cái mà lệch với mức tín hiệu tương tự có nghĩa, do đó
giảm khả năng phiên dịch đúng của bộ thu phát đối với tính hiệu số được truyền.
Trong mã hoá NRZ, việc nhồi bit, chính là chúng ta thêm vào phần bổ sung sau
chính bit đầu vào đó, nó là cần để thực hiện loại bỏ vấn đề này. Mã hoá
Manchester loại bỏ vấn đề này nhờ việc tạo ra các số 0 và 1 giống nhau cho bất
kỳ chuỗi bit nào. Lược đồ mã hoá này mã hoá một 0 thành sự chuyển đổi từ A
B và 1 thành sự chuyển đổi từ B A. Ví dụ được chỉ ra ở hình.
46
Hình 2.2 Mã hoá NRZ và mã hoá Manchester
ChipCon radio là bộ thu phát radio mà hiện tại được sử dụng trong phiên
bản mới nhất của các nút mạng cảm nhận không dây. Được so sánh với radio
RFM cái mà được sử dụng trong platform sớm hơn, ChipCon radio có một số
đặc tính được cải tiến. Đầu tiên, đó là các nút cảm biến không dây với các radio
ChipCon có phạm vi lớn hơn radio RFM. Trong quá trình kiểm nghiệm ngoài
trời, các nút cảm biến ChipCon đã có phạm vi khoảng 1000 feet, trong khi các
nút cảm biến RFM vào khoảng 400 feet. Thứ 2 đó là, các bit dữ liệu được điểu
chế sử dụng FSK (Frequency Shift Keying) khiến cho dữ liệu truyền đi có tính
đàn hồi so với ồn (noise). Cuối cùng , radio ChipCon hỗ trợ mã hoá Manchester
ở thiết bị phần cứng, cho phép các bit dữ liệu được truyền dẫn mà không cần
phải rõ ràng ; phần mềm sử dụng cân bằng DC (software-level DC balancing).
Hình 2.3 Mã hoá bit
47
Mã sửa lỗi của radio RFM không phù hợp so với radio ChipCon bởi vì nó
nhồi bít một cách không cần thiết cho sự cân bằng DC. Hình trên chỉ ra cách mà
1 byte được mã hoà thành 3 byte từ mã. Ví dụ, nếu bit thứ 8 của byte dữ liệu là
1, thì từ mã có 1 trong bit thứ 8 của byte thứ 3 và 0 trong bit thứ 7. Nếu bít thứ 8
của byte là 0, thì từ mã có 0 và 1 trong bit thứ 8 và 7 trong byte thứ 3.
2.2 Các loại lỗi bit
Khi truyền dữ liệu từ node này đến node khác, các tín hiệu dạng nhị phân
“0” và “1” nếu bị lỗi có thể biến đổi từ “0” thành “1” và từ “1” thành “0”, có ba
loại lỗi thường gặp đó là lỗi đơn bit, đa bit và đảo bit.
Hình 2.4 Lỗi bit trong quá trình truyền nhận dữ liệu
2.3 Phát hiện lỗi
Khi một node nhận gói tin từ node khác gửi đến, làm thế nào để nó có thể
biết một trong những lỗi trên xảy ra, trừ trường hợp nó phải gửi mỗi đơn vị dữ
liệu hai lần rồi node nhận so sánh hai đơn vị dữ liệu nhận được theo từng bit
một, từ đó phát hiện ra lỗi. Nhưng như vậy thì làm mất hai lần thời gian để so
sánh từng bit dữ liệu, cộng thêm thời gian để so sánh từng bit dữ liệu. Phương
pháp này không hiệu quả do thời gian xử lý một gói tin gấp hai lần bình thường,
và dữ liệu đến lần trước và lần sau cũng không biết được lần nào bị lỗi. Rõ ràng
phải có cơ chế phát hiện lỗi vừa đơn giản mà không làm tốn thời gian truyền của
gói tin trong mạng hay làm giảm hiệu năng mạng.
Chỉ bằng cách đưa vào các thông tin dư thừa trong quá trình truyền nhằm
mục đích so sánh, thay thế việc lặp toàn bộ dữ liệu, chỉ cần một nhóm nhỏ các
bit thêm vào cuối mỗi đơn vị dữ liệu. Kỹ thuật này gọi là dư thừa bởi vì một số
bit bên ngoài được thêm vào là thừa so với thông tin cần gửi đi. Những bit dư
48
thừa này sẽ được bỏ đi, khi thông tin truyền tới nơi nhận đã được kiểm tra và xác
nhận là không bị lỗi.
Hình 2.5 Phương pháp sử dụng bit dư thừa
Mỗi khi chuỗi bit dữ liệu được phát đi đều phải đi qua một thiết bị phân
tích và bổ sung vào một chuỗi dữ liệu đó, mã kiểm tra dư thừa thích hợp. Đơn vị
dữ liệu trở nên lớn hơn bởi một số bit thêm vào, tất cả được truyền lên đường
liên kết đến nơi nhận. Thiết bị nhận đặt toàn bộ chuỗi này vào một khối kiểm tra.
Nếu chuỗi dữ liệu nhận được, đi qua được khối kiểm tra thì phần dữ liệu sẽ được
nhận còn các bit dư thừa sẽ được bỏ qua.[4]
Có 4 cách để kiểm tra dư thừa đó là:
- Kiểm tra dư thừa đứng VRC, hay còn gọi là kiểm tra chẵn lẻ
- Kiểm tra dư thừa dài LRC
- Kiểm tra dư thừa tuần hoàn CRC
- Tổng kiểm tra Checksum
Kiểm lỗi dư thừa tuần hoàn CRC
Phương pháp kiểm lỗi này có độ tin cậy cao nhất. VRC và LRC dựa vào
việc bổ sung thêm số bit, còn CRC dựa vào phép chia nhị phân. Trong CRC
chuỗi các bit dư thừa được gọi là số dư CRC, sẽ bổ sung thêm vào cuối đơn vị
dữ liệu sao cho đơn vị dữ liệu mới này là chia không dư cho số nhị phân được
quy định trước và sử dụng ở nơi gửi. Khi đó đơn vị dữ liệu được xem là không
49
lỗi và sẽ được nhận. Trường hợp phép chia có dư, nghĩa là đơn vị dữ liệu đã bị
lỗi và không được nhận.
Các bit dư thừa CRC được nơi gửi tính bằng cách chia đơn vị dữ liệu cho
một số chia xác định trước, số dư chính là CRC. CRC phải có ít hơn số chia một
bit và phải bổ sung vào cuối dữ liệ. Hình dưới minh hoạ quá trình kiểm lỗi CRC:
Hình 2.6 Quá trình kiểm lỗi CRC
Đầu tiên thêm n bit “0” vào cuối đơn vị dữ liệu, số n ít hơn số chia 1 bit.
Tiếp theo đơn vị dữ liệu mới này được chia cho số chia. Số dư của phép chia
chính là CRC. CRC thu được, thay cho các bit “0” ở cuối đơn vị dữ liệu. Nếu số
dư ít hơn n bit thì bổ sung thêm số 0 vào các bit bên trái. Nếu phép chia không
dư thì n số 0 được đặt làm số dư và nó là CRC..
Đơn vị dữ liệu chuyển tiếp đến thiết bị nhận, dữ liệu đến trước và theo sau
là CRC. Thiết bị nhận xem toàn bộ dữ liệu này như một đơn vị và chia nó cho
cùng một số chia đã được sử dụng ở bên gửi.
Nếu chuỗi dữ liệu khi được kiểm tra CRC cho số dư bằng 0 được xem là
không lỗi và được nhận. Nếu chuỗi dữ liệu bị thay đổi trong quá trình truyền, số
dư sẽ khác 0 và đơn vị dữ liệu bị lỗi, không nhận được.
50
CRC phát hiện tất cả các lỗi, trừ khi giá trị các bit của khối chính xác bằng
giá trị của số chia. Số chia CRC thông dụng là 13, 17 và 33, bảo đảm phát hiện
hết lỗi.
Hình 2.7 Phép chia nhị phân để tìm CRC
Hình trên mô tả quá trình tạo ra CRC, dữ liệu là 111001, số chia là 11001.
Số chia trong phép chia phải được chọn sao cho thực hiện phép chia
nhị phân được dễ dàng và kết quả phép chia có dư. Nó được suy từ một đa
thức sinh:
Đa thức có thể biểu diễn dưới dạng khác:
51
Các hệ số trong đa thức lập thành 1011 là số chia. Do đó với CRC-12 thì
số chia có 13 bậc nhị phân, CRC-16 thì số chia có 17 bậc nhị phân, CRC-32 thì
số chia có 33 bậc nhị phân.
2.4 Sửa lỗi
Sửa lỗi được thực hiện bằng hai cách đó là thiết bị nhận yêu cầu thiết bị
gửi truyền lại toàn bộ dữ liệu đã gửi. Cách khác, thiết bị nhận sử dụng mã sửa lỗi
tự động sửa một số lỗi nhất định.[3]
Trên lý thuyết, có thể tự động sửa lỗi bất kỳ lỗi nhị phân nào. Mã sửa lỗi
đòi hỏi nhiều bit dư thừa hơn so với mã phát hiện lỗi. Số bit cần để sửa các lỗi
đa bit và lỗi đảo bit lớn đến nỗi trong nhiều trường hợp nó trở nên không còn
hiệu quả. Vì vậy trong hầu hết các thao tác sửa lỗi chỉ giới hạn ở một, hai, hoặc
ba bit lỗi trong một đơn vị dữ liệu.
Mã Hamming
Mã Hamming là một mã sửa lỗi tuyến tính (linear error-correcting code),
được đặt tên theo tên của người phát minh ra nó, Richard Hamming. Mã
Hamming có thể phát hiện một bit hoặc hai bit bị lỗi (single and double-bit
errors). Mã Hamming còn có thể sửa các lỗi do một bit bị sai gây ra.[4]
Xét dữ liệu 7 bit thì cần 4 bit dư thừa để thêm vào cuối đơn vị dữ liệu
hoặc chèn vào những bit dữ liệu gốc
Hình 2.8 Cách chèn các bit dư thừa vào dữ liệu
Trên hình vẽ, các bit dư thừa được đặt vào vị trí 1, 2, 4 và 8 và được ký
hiệu là r1, r2, r4, r8.
Trong mã Hamming mỗi bit r là VRC của một tổ hợp các bit dữ liệu. Các
tổ hợp được sử dụng để tính một trong bốn giá trị của r như sau:
r1: bit 1, 3, 5, 7, 9, 11
52
r2: bit 2, 3, 6, 7, 10, 11
r4: bit 4, 5, 6, 7
r8: bit 8, 9, 10, 11
Mỗi bit dữ liệu có thể tham gia vào nhiều tính toán VRC. Sự thể hiện nhị
phân của mỗi vị trí: ví dụ như bit r1 có đại diện nhị phân chứa 1 ở vị trí bên phải
nhất của các vị trí 1, 3, 5, 7, 9, 11
Lấy ví dụ chúng ta có một từ dữ liệu dài 7 bit với giá trị là "0110101". Để
chứng minh phương pháp các mã Hamming được tính toán và được sử dụng để
kiểm tra lỗi, xin xem bảng liệt kê dưới đây. Chữ d (data) được dùng để biểu thị
các bit dữ liệu và chữ p (parity) để biểu thị các bit chẵn lẻ (parity bits).
Đầu tiên, các bit của dữ liệu được đặt vào vị trí tương thích của chúng, sau
đó các bit chẵn lẻ cho mỗi trường hợp được tính toán dùng quy luật bit chẵn lẻ
số chẵn
Hình 2.9 Cách tính các bit chẵn lẻ trong mã Hamming
Nhóm dữ liệu mới (new data word) - bao gồm các bit chẵn lẻ - bây giờ là
"10001100101". Nếu chúng ta thử cho rằng bit cuối cùng bị thoái hóa (gets
corrupted) và bị lộn ngược từ 1 sang 0. Nhóm dữ liệu mới sẽ là "10001100100".
Dưới đây, sẽ phân tích quy luật kiến tạo mã Hamming bằng cách cho bit chẵn lẻ
giá trị 1 khi kết quả kiểm tra dùng quy luật số chẵn bị sai.
53
Hình 2.10 Kiểm tra các bit chẵn lẻ
Bước cuối cùng là định giá trị của các bit chẵn lẻ (nên nhớ bit nằm dưới
cùng được viết về bên phải - viết ngược lại từ dưới lên trên). Giá trị số nguyên
của các bit chẵn lẻ là 11, và như vậy có nghĩa là bit thứ 11 trong nhóm dữ liệu
(data word) - bao gồm cả các bit chẵn lẻ - là bit có giá trị không đúng, và bit này
cần phải đổi ngược lại.
Việc đổi ngược giá trị của bit thứ 11 làm cho nhóm 10001100100 trở lại
thành 10001100101. Bằng việc bỏ đi phần mã Hamming, chúng ta lấy được
phần dữ liệu gốc với giá trị làn0110101. Các bit chẵn lẻ không kiểm tra được lẫn
nhau, nếu chỉ một bit chẵn lẻ bị sai thôi, trong khi tất cả các bit khác là đúng, thì
chỉ có bit chẵn lẻ nói đến là sai mà thôi và không phải là các bit nó kiểm tra (not
any bit it checks). Cuối cùng, giả sử có hai bit biến đổi, tại vị trí x và y. Nếu x và
y có cùng một bit tại vị trí 2k trong đại diện nhị phân của chúng, thì bit chẵn lẻ
tương ứng với vị trí đấy kiểm tra cả hai bit, và do đó sẽ giữ nguyên giá trị, không
thay đổi. Song một số bit chẵn lẻ nào đấy nhất định phải bị thay đổi, vì x ≠ y, và
do đó hai bit tương ứng nào đó có giá trị x và y khác nhau. Do vậy, mã
Hamming phát hiện tất cả các lỗi do hai bit bị thay đổi, song nó không phân biệt
được chúng với các lỗi do 1 bit bị thay đổi.
Hiện thời, khi nói đến mã Hamming chúng ta thực ra là muốn nói đến mã
(7,4) mà Hamming công bố năm 1950. Với mỗi nhóm 4 bit dữ liệu, mã
Hamming thêm 3 bit kiểm tra. Thuật toán (7,4) của Hamming có thể sửa chữa
54
bất cứ một bit lỗi nào, và phát hiện tất cả lỗi của 1 bit, và các lỗi của 2 bit gây ra.
Điều này có nghĩa là đối với tất cả các phương tiện truyền thông không có chùm
lỗi đột phát (burst errors) xảy ra, mã (7,4) của Hamming rất có hiệu quả (trừ phi
phương tiện truyền thông có độ nhiễu rất cao thì nó mới có thể gây cho 2 bit
trong số 7 bit truyền bị đảo lộn). Nguyên lý của mã Hamming bắt nguồn từ việc
khai triển và mở rộng quan điểm chẵn lẻ. Việc khai triển này bắt đầu bằng việc
nhân các ma trận, được gọi là Ma trận Hamming (Hamming matrices), với nhau.
Đối với mã Hamming (7,4), chúng ta sử dụng hai mã trận có liên quan gần gũi,
và đặt tên cho chúng là:
và
Các cột vectơ trong He là nên tảng hạch của Hd và phần trên của He (4
hàng đầu) là một ma trận đơn vị (identity matrix). Ma trận đơn vị cho phép vectơ
dữ liệu đi qua trong khi làm tính nhân, và như vậy, các bit dữ liệu sẽ nằm ở 4 vị
trí trên cùng (sau khi nhân). Sau khi phép nhân hoàn thành, khác với cách giải
thích ở phần trước (các bit chẵn lẻ nằm ở vị trí 2k), trật tự của các bit trong từ
mã (codewords) ở đây khác với cách bố trí đã nói (các bit dữ liệu nằm ở trên,
các bit kiểm chẵn lẻ nằm ở dưới).
Chúng ta dùng một nhóm 4 bit dữ liệu (số 4 trong cái tên của mã là vì
vậy) chủ chốt, và cộng thêm vào đó 3 bit dữ liệu thừa (vì 4+3=7 nên mới có số 7
trong cái tên của mã). Để truyền gửi dữ liệu, chúng ta hãy nhóm các bit dữ liệu
55
mà mình muốn gửi thành một vectơ. Lấy ví dụ, nếu dữ liệu là "1011" thì vectơ
của nó là:
Giả sử, chúng ta muốn truyền gửi dữ liệu trên. Chúng ta tìm tích của He
và p, với các giá trị môđulô 2:
Máy thu sẽ nhân Hd với r, để kiểm tra xem có lỗi xảy ra hay không. Thi
hành tính nhân này, máy thu được:
Vì chúng ta được một vectơ toàn số không cho nên máy thu có thể kết
luận là không có lỗi xảy ra
Sở dĩ một vectơ toàn số không có nghĩa là không có lỗi, bởi vì khi He
được nhân với vectơ dữ liệu, một sự thay đổi trong nền tảng xảy ra đối với
không gian bên trong vectơ (vector subspace), tức là hạch của Hd. Nếu không có
vấn đề gì xảy ra trong khi truyền thông, r sẽ nằm nguyên trong hạch của Hd và
phép nhân sẽ cho kết quả một vectơ toàn số không.
Trong một trường hợp khác, nếu chúng ta giả sử là lỗi một bit đã xảy ra.
Trong toán học, chúng ta có thể viết:
56
trong đó ei là vectơ đơn vị đứng thứ i (ith unit vector), có nghĩa là, một
vectơ số 0 có một giá trị 1 trong vị trí i. Biểu thức trên nói cho chúng ta biết rằng
có một bit bị lỗi tại vị trí i.
Nếu bây giờ chúng ta nhân Hd với cả hai vectơ này:
Vì r là dữ liệu thu nhận được không có lỗi, cho nên tích của Hd và r bằng
0. Do đó
Vậy, tích của Hd với vectơ nền chuẩn tại cột thứ i (the ith standard basis
vector) làm lộ ra cột ở trong Hd, vì thế mà chúng ta biết rằng lỗi đã xảy ra tại vị
trí cột này trong Hd. Vì chúng ta đã kiến tạo Hd dưới một hình thức nhất định,
cho nên chúng ta có thể hiểu giá trị của cột này như một số nhị phân - ví dụ,
(1,0,1) là một cột trong Hd, tương đồng giá trị với cột thứ 5, do đó chúng ta biết
lỗi xảy ra ở đâu và có thể sửa được nó.
Lấy ví dụ, giả sử chúng ta có:
Nếu thi hành phép nhân:
Tích của phép nhân cho chúng ta một kết quả tương đương với cột thứ 2
("010" tương đương với giá trị 2 trong số thập phân), và do đó, chúng ta biết
rằng lỗi đã xảy ra ở vị trí thứ 2 trong hàng dữ liệu, và vì vậy có thể sửa được lỗi.
57
Chúng ta có thể dễ dàng thấy rằng, việc sửa lỗi do 1 bit bị đảo lộn gây ra,
dùng phương pháp trên là một việc thực hiện được. Bên cạnh đó, mã Hamming
còn có thể phát hiện lỗi do 1 bit hoặc 2 bit bị đảo lộn gây ra, dùng tích của Hd
khi tích này không cho một vectơ số không. Tuy thế, song mã Hamming không
thể hoàn thành cả hai việc.
58
Chương 3: MÃ ĐIỀU KHIỂN LỖI SỬ DỤNG TRONG WSN
3.1 Giới thiệu
Các nút cảm nhận thường nhỏ, và khi được lắp với các cảm nhận khác
như các cảm nhận nhiệt độ số nó sẽ làm việc giống như các truyền thông không
dây. Những tính năng này cho phép các mạng cảm cảm nhận dễ dàng được thực
hiện trong tất cả các kiểu môi trường, và chúng ta mong rằng các mạng trở nên
phổ dụng ở khắp mọi nơi trong tương lai không xa. Tuy nhiên, có một yếu tố
nhỏ khiến cho các cảm nhận bị giới hạn về năng lượng. Bảng sau cho thấy sự
tiêu thụ điện năng do các kiểu lệnh khác nhau được xác định:
Bảng 3.1 Sự tiêu thụ điện năng trong các node cảm biến
Từ bảng trên đã cho thấy rằng hầu hết điện năng bị tiêu thụ trong suốt quá
trình truyền dẫn và tiếp nhận dữ liệu. Bằng việc sử dụng mã sửa lỗi (ECC) mà ở
đây cụ thể là FEC, sẽ giảm được số lượng gói dữ liệu tái truyền phát, theo cách
đó giảm được sự tiêu hao năng lượng trong quá trình xử lý.
3.2 Lý thuyết về mã hoá
Lý thuyết mã hóa (Coding Theory) nhằm giải quyết tình trạng lỗi dễ xảy
ra trong quá trình truyền thông số liệu trên các kênh truyền có độ nhiễu cao
(noisy channels), dùng những phương pháp tinh xảo khiến phần lớn các lỗi xảy
ra có thể được chỉnh sửa. Nó còn xử lý những đặc tính của mã (codes), và do
vậy giúp phù hợp với những ứng dụng cụ thể.
Có hai loại mã hoá:
- Mã hóa nguồn (Mã hóa Entropy - Entropy encoding)
59
- Mã hóa trên kênh truyền (Sửa lỗi chuyển tiếp - Forward Error
Correction)
Mã hóa nguồn mục đích của phương pháp này là nén dữ liệu từ chính
nguồn của nó, trước khi truyền đi, giúp cho việc truyền thông có hiệu quả hơn.
Mã hóa trên kênh truyền thực hiện việc cộng thêm những bit mới vào
trong dữ liệu được truyền, còn gọi là bit chẵn lẻ (parity bits), kỹ thuật này giúp
cho việc truyền thông tín hiệu chính xác hơn trong môi trường nhiễu loạn của
kênh truyền thông. Có nhiều chương trình ứng dụng, sử dụng mã hóa trên kênh
truyền.
Vì mã hoá nguồn không phù hợp trong mạng cảm biến nên ở trong phần
này ta chỉ xét đến mã hoá kênh truyền. Mục đích lý thuyết của mã hóa trên kênh
truyền (channel encoding theory) là tìm những mã có thể truyền thông nhanh
chóng, chứa đựng nhiều mã ký (code word) hợp lệ và có thể sửa lỗi (error
correction) hoặc ít nhất phát hiện các lỗi xảy ra (error detection). Các mục đích
trên không phụ thuộc vào nhau, và mỗi loại mã có công dụng tối ưu cho một ứng
dụng riêng biệt. Những đặc tính mà mỗi loại mã này cần còn tuỳ thuộc nhiều
vào xác suất lỗi xảy ra trong quá trình truyền thông.
Mã hoá kênh truyền được chia làm hai loại chính:
- Mã khối tuyến tính (Linear block codes)
- Mã kết hợp (Convolutional codes)
Mã khối tuyến tính mang tính năng tuyến tính (linearity), chẳng hạn tổng
của hai mã ký nào đấy lại chính là một mã ký và chúng được ứng dụng vào các
bit của nguồn trên từng khối một.
Bất cứ mã khối tuyến tính nào cũng được đại diện là (n,m,dmin), trong đó:
- n là chiều dài của mã ký, ký hiệu symbols
- m là số ký hiệu nguồn (source symbols) được dùng để mã hóa tức thời
- dmin là khoảng cách Hamming tối thiểu của mã (The Minimum
Hamming Distance For The Code)
Có nhiều loại mã khối tuyến tính, như:
- Mã tuần hoàn (Cyclic codes) (Mã Hamming là một bộ phận nhỏ của mã
tuần hoàn)
- Mã tái diễn (Repetition codes)
- Mã chẵn lẻ (Parity codes)
60
- Mã Reed-Solomon (Reed Solomon codes)
- Mã BCH (BCH code)
- Mã Reed-Muller
- Mã hoàn hảo (Perfect codes)
Mã kết hợp (Convolutional Codes) được sử dụng trong các modem dải tần
âm (voiceband modems) và trong các điện thoại di động, cũng như trong các
thiết bị truyền thông của quân đội vũ trang và trong các thiết bị truyền thông với
vệ tinh.
3.3 Phương pháp sửa lỗi chuyển tiếp FEC
FEC được liên kết với một mã nhân chập khối bên trong để truyền dữ liệu
tới hạn một cách thông suốt, như các truy nhập điều khiển khung và truy nhập
khởi đầu.
Hình 3.2 Cơ chế sửa lỗi FEC
Mục tiêu của phương pháp này là xây dựng nguyên tắc sửa lỗi dựa vào
khoảng cách Hamming. Trên nguyên tắc này, phương pháp sửa lỗi “kiểm tra
chẵn lẻ (parity check)” được xây dựng và tạo ra quy trình sửa lỗi tối ưu và phù
hợp với công nghệ truyền tin hiện nay.
61
Xét v1 và v2 là 2 dãy nhị phân dài n bit, ta gọi khoảng cách Hamming
giữa 2 dãy v1 và v2 là số bit tương ứng khác nhau. Ký hiệu d(v1, v2).
Ví dụ :
v1 = 10101010
v2 = 10101111
Ta nhận thấy rằng bit thứ 6 và bit thứ 8 giữa v1 và v2 là khác nhau nên số
bit tương ứng khác nhau giữa v1 và v2 là 2. Do đó ta nói khoảng cách Hamming
giữa v1 và v2 là 2 hay d(v1,v2) = 2.
Bổ đề tự sửa lỗi được ứng dụng trong FEC
Xét bộ mã W= {w1 , w2, … , ws} gồm có s từ mã nhị phân dài n bit và 1
số nguyên dương e.
- Nếu khoảng cách hamming nhỏ nhất dmin >= 2e+1
Khi đó thì tất cả các dãy nhận được v có thể tự sửa được tối đa e bit lỗi.
- Nếu dmin >= 2e
Thì tất cả các dãy nhận được v sẽ có khả năng phát hiện tối đa e lỗi; nếu
tổng số bit lỗi < e thì v có thể tự điều chỉnh được, nếu số bit lỗi = e thì chỉ phát
hiện được lỗi và không thể điều chính được.
Trong bộ mã khối , gọi n là số bit trong một từ mã, k là số bit thông tin và
m là bit kiểm tra chẵn lẻ, e là số lỗi. khi đó:
e
m
2 Cni
i0
Điều kiện cần để bộ mã có thể tự sửa lỗi là
Điều kiện đủ để bộ mã có thể tự sửa lỗi (theo Vasharmov-GilbertSacks)
e
m
2 Cni 1
i0
62
Với:
Cni
n!
i !*(n i )!
Ví dụ:
Mã 3 chiều (x, y, z) bắt đầu từ gốc 000. Cứ một tín hiệu t hay đổi thì mã
bị đẩy đi theo 1 cạnh, chẳng hạn :
000 cách 010, 001 bởi 1 cạnh
011 cách 010, 111 và 001 bởi 1 cạnh.
Như vậy, nếu ta chọn w1 = 010, w2 = 001, w3 = 111 thì khoảng cách giữa
chúng là 2 ; tức là d(w1,w2)=(w1,w3)=d(w2,w3)=2
Vậy nếu có lỗi phát sinh thì chỉ phát hiện chứ không sửa được.
Như vậy ta có thể phân dạng các loại lỗi sau:
- Lỗi có thể tự điều chỉnh: Gọi w i W là từ mã đúng được truyền tại
nơi phát; v là từ mã nhận được tại nơi thu (truyền đúng thì wi = v).
Trường hợp v # w; có thể xác định và tự điều chỉnh lại lỗi khi và chỉ khi
tồn tại duy nhất từ mã w*i W sao cho d(vj, w*i)=min d(vj, wi) => khi đó dựa
theo nguyên tắc ngần vẫn đúng vj được gải mã về w*i
- Lỗi chỉ phát hiện không thể tự điều chỉnh: Trong trường hợp này tồn
tại w* và w** sao cho d(vj,w*) = d(vj,w**) = min d(vj,wi) với mọi wi thuộc
W
=> không thể giải mã chính xác.
- Lỗi không phát hiện được: Trong trường hợp này ta giải mã ra w*I
nhưng khác với wi đã truyền.
3.3.1 Mã hoá khối tuyến tính Linear Block Codes
Mã hoá khối tuyến tính là một lớp mã được dùng rất phổ biến trong việc
chống nhiễu. Loại mã này được xây dựng dựa trên các kết quả của đại số tuyến
tính. Ở đây chúng ta chỉ nghiên cứu về mã nhị phân vì dữ liệu ở dạng nhị phân.
63
Hình 3.3 Mã hoá, truyền dẫn và giải mã dữ liệu
Mã hoá thông điệp m thành từ mã v có thể được thực hiện bằng việc nhân
m với ma trận sinh G. Xét một đơn vị dữ liệu gồm k bit, và r là số bit chẵn lẻ
được thêm vào.[5]
Ma trận sinh G sẽ có dạng:
Với Ik là ma trận đơn vị dạng kxk và C ma trận nhị phân dạng k x r.
Khi đó ta sẽ có phương trình : v = uG
Ở phía đầu cuối của bộ thu, syndrome s được tính toán để xác định khả
năng sửa các lỗi. Ma trận chẵn lẻ H được tạo ra từ ma trận sinh G với :
Nếu gọi vector lỗi là e thì chúng ta có:
Ở đây
64
s ≠ 0 nghĩa là có lỗi, sau đó tuỳ thuộc vào khả năng của mã sửa lỗi, s được
so sánh với hàng hay tổng của các hàng trong H.
Phía thu sau đó có thể giải mã các từ mã đã được sửa lỗi bằng việc giả
phương trình v=uG . Một cách đặc biệt, cho mã hệ thống đó là k cột đầu tiên của
ma trận sinh G chính là dạng của ma trận đơn vị v.
3.3.1.1 Cách mã hoá
Nếu:
là thông tin cần được mã hoá thì từ mã v tương ứng với u được xác định
công thức uxG
hay
Vì các từ mã tương ứng với các thông báo được sinh ra bởi G theo cách
như trên nên G được gọi là ma trận sinh của bộ mã.
3.3.1.2 Cách giải mã
Gọi thông báo là u = (a0,a1,a2,a3) và từ mã tương ứng là v =
(b0,b1,b2,b3,b4,b5,b6), ta có phương trình sau liên hệ giữa u và v:
65
Suy ra:
Hệ phương trình này gọi là hệ phương trình giải mã
Giải hệ phương trình trên thu được kết quả là:
Do đó dữ liệu thu được ở bên nhận
3.3.1.3 Các phát hiện lỗi
Nếu v là một từ mã được sinh ra từ ma trận sinh G có ma trận trực giao
tương
ứng là H, thì do v là một tổ hợp tuyến tính của các vectơ hàng của G nên:
Và ngược lại nếu:
thì v phải là một tổ hợp tuyến tính của các vectơ hàng của G do đó v là
một từ mã.
66
Syndrome – vectơ sửa sai (corrector) có dạng
Do đó ta có v là từ mã khi và chỉ khi s(v) = 0
Với tính chất này ta có H có thể được sử dụng để kiểm tra một tổ hợp có
phải là từ mã không hay nói cách khác H có thể được dùng để phát hiện sai. Vì
lý do này mà ma trận H còn được gọi là ma trận kiểm tra
Ma trận kiểm tra của một bộ mã ma trận sinh G(kxn) là ma trận H có kích
thước (n – k)xn sao cho:
3.3.1.4 Cách sửa lỗi
Xét vector lỗi là vectơ biểu diễn các vị trí lỗi giữa từ mã truyền và tổ hợp
nhận, mỗi vị trí lỗi được biểu diễn bằng bit 1, các vị trí còn lại sẽ có giá trị 0.
Nếu từ mã được truyền đi là w, vectơ lỗi là e và vectơ nhận là v thì:
Ví dụ nếu từ mã w = 1011011, vectơ lỗi là e = 0010100 có nghĩa là sai ở
vị trí số 3 và 5 (tính từ trái, bắt đầu bằng 1) thì vectơ nhận sẽ là v = w + e =
1001111. Ngược lại nếu từ mã w = 0110010 còn vec tơ nhận là v = 0010011 thì
vectơ lỗi là e = w + v = 0100001 có nghĩa là đã có sai xảy ra ở các vị trí số 2 và
số 7.
Trọng số của vectơ lỗi biểu diễn khoảng cách Hamming giữa từ mã phát
và tổ hợp nhận. Khái niệm trên gợi ý cho chúng ta một điều như sau, nếu vectơ
nhận là v thì chúng ta có thể tính được vectơ lỗi tương ứng với mỗi từ mã bằng
cách cộng v với lần lượt các từ mã và rồi dựa vào nguyên lý khoảng cách
Hamming tối thiểu chúng ta thấy rằng vectơ lỗi nào có trọng số nhỏ nhất thì từ
mã tương ứng chính là từ mã đã được phát đi.
Xét một mã tuyến tính C(7x4) có ma trận hệ thống như sau:
67
Với bộ ma trận kiểm tra của bộ mã trên như sau:
Bộ mã trên có khoảng cách Hamming d = 3. Vì vậy có thể phát hiện sai 2
bit và sửa sai được 1 bit. Giả sử đường truyền sai tối đa 1 bit. Và vectơ nhận là v
= 1010110, tìm từ mã đúng đã được phát đi. Để giải bài này chúng ta tính:
Trong đó hi (i = 1,2,3,…) là cột thứ i của H Chúng ta thấy s(v) ≡ h1 nên
suy ra lỗi sai ở vị trí số 1, vì vậy từ mã đúng đã được phát đi là
w = v + e = 1010110 + 1000000 = 0010110
Từ ý tưởng này gợi ý cho chúng ta một loại mã cho phép phát hiện sai 1
bit nhanh nhất. Mã này có tên gọi là mã tuyến tính Hamming.
Xét ví dụ về sửa lỗi theo mã tuyến tính Hamming
68
Xác định ma trận kiểm tra của mã Hamming với ma trận sinh G:
Giả sử có ma trận sinh G như sau:
Với:
Ma trận kiểm tra của mã Hamming (7x4) là:
69
Quá trình kiểm tra như sau:
Nếu d = 0 không lỗi
Nếu d ≠ 0 có lỗi, và bit ri bị lỗi trong quá trình truyền
Ví dụ r = 1100011
Suy ra không lỗi
Với r = 1010011
70
Suy ra có lỗi bit thư 7 bị truyền lỗi
Sửa lỗi 1010011 => 1010010
3.3.2 Kỹ thuật ghép xen Interleaving
Kỹ thuật ghép xen dữ liệu để nhận được sự phân tập không gian mà không
thêm bất kỳ thông tin overhead nào. Kỹ thuật này dùng để giải quyết vấn đề lỗi
cụm (bursty errors), các bit được phân tán nên không bị lỗi đồng thời khi xảy ra
fading sâu hay cụm nhiễu (bursty noise)[12]
Nếu khối sửa lỗi hướng trước FEC chỉ sửa được lỗi từ 1 đến 3 bit thì kỹ
thuật ghép xen lại sửa được lỗi với các chuỗi dài. Có hai kỹ thuật ghép xen dữ
liệu:
- Khối xen dữ liệu Interleaver
- Khối xen chập Convolution Interleaver
Để minh hoạ kỹ thuật này ta xét đoạn dữ liệu được truyền đi không áp
dụng kỹ thuật ghép xen và có kỹ thuật ghép xen.
Hình 3.4 Không có ghép xen dữ liệu
71
Hình trên là đoạn dữ liệu không ghép xen, khi xảy ra lỗi dữ liệu bị phá
huỷ hoàn toàn.
Hình 3.5 Hiệu quả của việc ghép xen dữ liệu
Hình trên mô tả có sử dụng xen dữ liệu, các block tín hiệu được tản đều,
khi bị nhiễu phá huỷ, thì các block tín hiệu không bị phá huỷ hoàn toàn.
3.3.2.1 Khối xen dữ liệu
Xét một khối interleaver với số cột D = 3, số hàng N = 7
72
Hình 3.6 Đặc trưng khối xen từ bộ FEC tới kênh với D=3, N=7
Các số trong khối biểu trưng sự xắp xếp các bit vào bộ xen. Các bit được
viết theo hàng và đọc ra theo cột. Một hàng đơn chứa hoàn toàn một từ mã FEC,
từ mã trong ví dụ trên là 7.
Hình 3.7 Đặc trưng bộ giải xen từ kênh tới FEC với D=3, N=7
Các bit ở đây đến từ kênh, được viết vào trong bộ giải xen theo cột và đọc
ra theo hàng. Hàng sắp xếp hợp thức các bit như định trước cho khối FEC.
73
Hình 3.8. Mô tả kết quả các giá trị xen dữ liệu
Hai hàng đầu tiên của bảng trình bày sự sắp xếp các bit này sẽ được gởi
lên kênh mà không cần thực hiện xen ở bộ xen. Nếu có lỗi xảy ra trong kênh thì
được chỉ ra ở hàng thứ 3 của bảng, hai hàng cuối của bảng chỉ các bit sẽ được
gửi tới khối FEC trong bộ thu trên cùng kênh. Khi dùng kỹ thuật xen, các bit bị
phá huỷ, thì FEC sẽ tự sửa lỗi.
3.3.2.2 Kỹ thuật xen chập Convolution Interleaving
Xét bộ xen chập với một từ mã có size N=7 và độ sâu D=3.
Hình 3.9 Bộ xen chập N=7, D=3
74
Các từ mã được viết vào trong bộ xen theo hàng và đọc ra theo côt. Sự
khác nhau giữa cách thực hiện này và cách thực hiện của bộ khối xen là từ mã
không luôn bắt đầu cùng cột trong xen chập như nó đã làm trong khối bộ xen.
Hơn nữa, các hàng không có kết thúc. Độ sâu và độ dài của bộ xen quyết định có
hoặc không từ mã tiếp theo sẽ được viết ở hàng kế tiếp hay hàng đầu tiếp theo
sau từ mã đã được viết trước đó.
Hình 3.10 Mô tả bộ giải xen chập trong bộ thu khi bộ phát dùng xen chập
Các giá trị đọc ra của bộ giải xen không rõ ràng như trong khối giải xen.
Các bit ở đây được viết theo cột và đọc ra theo hàng với sự xử lý lỗi của FEC.
Bộ giải xen chỉ đọc một từ mã đơn từ mỗi hàng và rồi xử lý tới hàng kế tiếp cho
đến hàng cuối cùng được đọc.
Sau khi đọc số hàng cuối cùng, bộ giải xen quay trở lại hàng đầu và đọc
tiếp từ mã ở vị trí kế tiếp chưa đọc.
3.3.3 Mã sửa lỗi kép - Double error correction codes
Một mã Double-Error-Correcting và Triple-Error-Detecting (DEC-TED)
(16,8) được đề xuất bởi Gulliver và Bhargave [5] với ma trận nhị phân P.
75
Ma trận sinh G được tạo ra với dạng G=[I8 , P] và ma trận chẵn lẻ H có
dạng H = [PT , I8]. Nếu 1 hay 2 bit lỗi xuất hiện, syndrome s sẽ hoặc là giống
với 1 cột trong H hoặc là bằng phép cộng tuyệt đối của 2 cột trong h; chỉ số của
các cột này chính là vị trí của bit lỗi.
Ví dụ:
Với ma trận sinh G được cho như sau :
1
0
0
0
G [ I8 : P]
0
0
0
0
0 0 0 0 0 0 0 0 1 1 0 1 0 1 0
1 0 0 0 0 0 0 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 1 0 0 1 1 0 1 0
0 0 1 0 0 0 0 0 1 0 0 1 1 0 1
0 0 0 1 0 0 0 1 0 1 0 0 1 1 0
0 0 0 0 1 0 0 0 1 0 1 0 0 1 1
0 0 0 0 0 1 0 1 0 1 0 1 0 0 1
0 0 0 0 0 0 1 1 1 0 1 0 1 0 0
0
1
1
0
H [PT :I8 ] =
1
0
1
0
0 1 0 1 0 1 1 1 0 0 0 0 0 0 0
0 0 1 0 1 0 1 0 1 0 0 0 0 0 0
1 0 0 1 0 1 0 0 0 1 0 0 0 0 0
1 1 0 0 1 0 1 0 0 0 1 0 0 0 0
0 1 1 0 0 1 0 0 0 0 0 1 0 0 0
1 0 1 1 0 0 1 0 0 0 0 0 1 0 0
0 1 0 1 1 0 0 0 0 0 0 0 0 1 0
1 0 1 0 1 1 0 0 0 0 0 0 0 0 1
Khi đó nếu cho bản tin u = [0100 0010] thì từ mã v sẽ là:
v = uG = [0100 0010 1001 1100]
giả sử rằng bít thứ 2 và thứ 3 bị đảo do noise trong kênh không dây. Do
đó, thông tin nhận được sẽ là v’ = [0010 0010 1001 1100]. Bằng việc nhận v’
với ma trận chuyển vị của ma trận chẵn lẻ H, chúng ta sẽ tính được s:
s = v’HT = [1010 1111]
Hãy chú ý rằng syndrome đạt được bằng việc cộng tuyệt đối hàng thứ 2
và thứ 3 của ma trận HT . Do đó ở thiết bị đầu cuối bộ thu thì các bít thứ 2 và
thứ 3 đã bị đảo, để sửa lỗi, từ nhận định trên ta sẽ có từ mã đúng là v = [0100
0010 1001 1100]. Bởi vì ma trận sinh G là một mã hệ thống, nên chúng ta sẽ có
8 bit đầu tiên là dạng của dữ liệu nhận đúng là u =[0100 0010]
76
3.4 Hiệu quả trong việc sử dụng năng lượng
Forward Error Correction (sửa lỗi hướng trước) là 1 cách của việc sửa lỗi
các gói tin bằng cách thêm các bit thông tin vào quá trình truyền dẫn. Tiến hành
thí nghiệm và kiểm tra sự khác nhau giữa các mã sửa lỗi trong radio ChipCon.
Do sự hạn chế của việc tiêu thụ điện năng thấp và yếu tố về hình thức là nhỏ,
nên các mã sửa lỗi được thiết kế đơn giản và có thể sửa lỗi đơn bít hoặc lỗi kép.
Các thí nghiệm ECC của có hiệu quả khi tỷ lệ bít lỗi không cao và là các lỗi đơn
bit. Khi các lỗi là chùm thì các mã của chúng tôi không hiệu quả trong việc giảm
đi những mất mát trong gói tin. Tuy nhiên cũng như nhiều lược đồ khác thì nó
khá là phức tạp và yêu cầu năng lượng xử lý cao và bộ nhớ lưu trữ tính toán lớn.
Để xác định các đặc tính lỗi của radio ChipCon, chúng ta thực hiện vài
phép đo sơ bộ. 1 nút gửi 1000 lần 1 gói tin không được mã hoá, với các gói thu
được nhập vào trong PC ở thiết bị đầu cuối là bộ thu. Các thí nghiệm đã được
tiến hành bên ngoài trời. Hình dưới mô tả hầu hết các lỗi bit là đơn hoặc là lỗi
kép. Các chùm lỗi cũng có nhưng hiếm gặp. Do đó, cũng có thể coi rằng lược đồ
mã hoá mà sửa lỗi đơn và lỗi kép có thể giảm thiểu các lỗi.[12]
Hình 3.11 Bit lỗi đơn và lỗi kép
77
Phần tiếp theo là các tính toán để xác định tỷ lệ mất các gói tin, sự mất là
rất nhỏ khoảng 0.4 % trong khoảng cách là 135 feet.
Hình 3.12 Tính toán tỷ lệ mất gói tin
3.4.1 Kiểm tra ngoài trời
Khi không sử dụng FEC thì ta thấy với 5000 gói tin ở khoảng cách 600 ft
thì tỷ lệ mất gói tin ở môi trường ngoài trời là 0,26%[12]
78
3.4.2 Kiểm tra trong nhà
Khi thực hiện truyền dữ liệu ở 3 vị trí khác nhau trong nhà không sử dụng
FEC thì tỷ lệ mất gói tin cũng khá lớn.[12]
Hình 3.13 Các vị trí các node ở trong nhà
79
Chương 4. ĐIỀU KHIỂN LỖI ỨNG DỤNG CHIPCON CC1010
4.1 Giới thiệu
Trong khi 1 mã sửa lỗi ECC có thể được chỉ định trong bất kỳ lớp nào
trong network stack, thì thực tế ECC được sử dụng trong lớp MAC [4] như hình
minh hoạ :
Hình 4.1 Interfacing ECC module with network stack
Bởi vì với vị trí này sẽ không làm thay đổi sự chuyển giao với lớp ứng
dụng. Do đó, bất kỳ ứng dụng nào được viết mà không dùng ECC trong MAC
cũng có thể thực hiện mà không cần điểu chỉnh mã nguồn.
Quá trình thực hiện mã sửa lỗi ECC tương tác với network stack qua giao
diện RadioEncoding – Giao diện là 1 file được sử dụng ngôn ngữ TinyOS-nesC
chỉ rõ toàn bộ các phương pháp và những bộ điều khiển sự việc cái mà 1 module
sử dụng từ các module khác hay 1 module hiện hữu :
interface RadioEncoding
{
command result_t encode_flush();
command result_t encode(char data);
command result_t decode(char data);
event result_t decodeDone(char data, char error);
event result_t encodeDone(char data);
80
}
Mã hoá được thực hiện ở lớp MAC (ChannelMonC module) cho mỗi byte
dữ liệu trong gói tin. Dữ liệu vào được thông qua như một thông số được lưu trữ
trong cấu trúc dữ liệu của mô-đun ECC. Sau khi một số lượng đủ của các byte
dữ liệu vào – input được nhận, các byte dữ liệu đầu vào được mã hoá bởi hàm
radio_encode_thread (mạch mã hoá radio) và từ mã được chuyển tới
ChannelMonC qua hàm encodeDone.
Tương tự như trên, ChannelMonC đưa ra quá trình giải mã cho từng byte
của các gói tin nhận được. Sau khi đủ số lượng các byte dữ liệu vào được nhận,
các byte dữ liệu được nhận sẽ được giải mã nhờ hàm radio_decode_thread (
mạch giả mã radio ) và các byte dữ liệu gốc được gửi tới ChannelMonC qua
DecodeDone.
Quá trình thực thi của radio_encode_thread và radio_decode_thread
phụ thuộc vào loại mã sửa lỗi. radio_encode_thread tính toán các bit chẵn lẻ
nhờ vào việc so sánh từng bit trong các byte dữ liệu đầu vào. Quá trình này
tương đương với uG. Trong đó u là thông tin cần truyền và G là ma trận sinh.
Trong quá trình radio_decode_thread , syndrome – s được tính nhờ vào các bit
dữ liệu nhận được. Việc này cũng tương đương với thực hiện vHT , với v là dữ
liệu nhận được và HT là ma trận chuyển vị của ma trận H. Nếu syndrome – s
khác không (s # 0) có nghĩa là tồn tại lỗi và vị trí của các bit lỗi có thể được tìm
thấy bằng việc so sánh syndrome – s với các vec-tơ cột trong ma trận H . Và quá
trình tìm kiếm này có thể được thực hiện một cách nhanh chóng với việc sử
dụng các biểu đồ tương ứng giữa các giá trị syndrome – s với các vị trí bit lỗi
tương ứng.
4.2 Tìm hiểu chương trình truyền nhận dữ liệu trong CC1010
Thuật toán để xác định và sửa lỗi cho dữ liệu là CRC – 16 . Ta sẽ xem xét
từng quá trình truyền và nhận giữa hai nút mạng.
4.2.1 Quá trình truyền dữ liệu giữa 2 nút mạng [14]:
- Sử dụng hàm halRFSendPacket (…) để điều khiển việc gửi gói tin sử
dụng trong cấu hình RF hiện thời:
void halRFSendPacket(byte numPreambles, byte* packetData, byte
length) {
byte crcData, i;
word crcReg;
81
// Set the first byte to transmit & turn on TX
RFCON|=0x01;
// Ensure that bytemode is selected
RF_SEND_BYTE(RF_PREAMBLE_BYTE);
RF_START_TX();
// Send remaining preambles
while (--numPreambles)
RF_WAIT_AND_SEND_BYTE(RF_PREAMBLE_BYTE);
// Send sync byte + length byte
RF_WAIT_AND_SEND_BYTE(RF_SUITABLE_SYNC_BYTE);
RF_WAIT_AND_SEND_BYTE(length);
- Nếu xuất hiện lệnh yêu cầu truyền ( tức là hàm halRFSendPacket được
gọi ) cùng với cặp RX/TX phù hợp với chế độ RF_TX thì quá trình truyền sẽ
được thực hiện : đầu tiên một byte đồng bộ sẽ được truyền đi để đảm bảo sự
đồng bộ giữa bên truyền và bên nhận, sau đó là byte Preamble ( byte này có vai
trò báo hiệu phần bắt đầu của gói tin ) và tiếp sau là dữ liệu cần truyền. Phần
kiểm lỗi CRC sẽ được đặt ở vị trí cuối cùng trong gói tin để thuận tiện cho việc
kiểm tra sau này.
word culFastCRC16(byte crcData, word crcReg) {
return (crcReg > 8)) ^ crcData];
} // culFastCRC16
word culFastCRC16Block(byte *crcData, word length, word crcReg) {
word i;
for (i = 0; i < length; i++) {
crcReg = (crcReg > 8)) ^
crcData[i]];
}
return crcReg;
}
// culFastCRC16Block
82
crcReg=CRC16_INIT;
// Update CRC
RF_WAIT_AND_SEND_BYTE(crcData);
for (i=0; i>8) ^ (crcData&0x80) )
crcReg=(crcReg[...]... hình và định tuyến lại 1.5 Lỗi trong quá trình tuyền tin Khi truyền thông tin trong mạng, thông tin truyền từ phía phát sang phía thu có thể bị sai, lỗi hoặc mất Trong trường hợp thông tin bị mất, cần phải thực 32 hiện truyền lại thông tin Với trường hợp thông tin bị sai, có thể sửa sai bằng một trong hai cách: Sửa lỗi trực tiếp bên thu: phía thu sau khi phát hiện lỗi có thể sửa lỗi trực tiếp ngay bên... thời gian Còn việc điều khiển cấu hình mạng cũng rất quan trọng Như đã trình bày trong các phần trên, mạng WSN có thể triển khai ngẫu nhiên, mật độ các nút rất dày dặc nếu không có cơ chế điều khiển topo tốt các nút sẽ cản trở nhau trong việc giao tiếp, giao tiếp trực tiếp giữa các nút sẽ làm giảm công suất truyền dẫn Hơn nữa, khi các nút cảm biến mà di chuyển thì cần phải điều khiển lại cấu hình và... chế sửa lỗi chuyển tiếp FEC: là một hệ thống quản lý và sửa lỗi trong truyền thông kỹ thuật số Nguyên tắc của FEC là người gửi thêm thông tin trùng lặp vào trong thông điệp gửi đi, điều đó cho phép người nhận có thể tự kiểm tra và sửa lỗi (nếu có) gây ra do kênh truyền Lợi điểm của FEC là không yêu cầu gửi lại thông tin Do năng lượng trong mỗi node của mạng cảm biến bị hạn chế nên cơ chế sửa lỗi chuyển... bên thu mà không yêu cầu phải phát lại Để có thể thực hiện được điều này, thông tin trước khi truyền đi phải được cài các mã sửa lỗi (bên cạnh việc có khả năng phát hiện lỗi, cần có khả năng sửa lỗi) Đó là cơ chế sửa lỗi chuyển tiếp FEC (Forward Error Correction) Yêu cầu phía phát truyền lại: phía thu sau khi kiểm tra và phát hiện có lỗi sẽ yêu cầu phía phát truyền lại thông tin Đó là sử dụng cơ chế... nhiều mô hình tìm kiếm địa chỉ trong mạng cấu trúc tầng 17 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... dạng sự kiện, cảm biến vị trí và điều khiển cục bộ bộ phận phát động Khái niệm vi cảm biến và kết nối không dây của những nút này hứa hẹn nhiều vùng ứng dụng mới Các ứng dụng được ứng trong quân đội, môi trường, sức khỏe, gia đình và các lĩnh vực thương mại khác 35 1.6.1 Ứng dụng trong quân đội Mạng cảm biến không dây có thể tích là một phần tích hợp trong hệ thống điều khiển quân đội, giám sát, giao... 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... 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. .. synchronization protocol), giao thức điều khiển cấu hình mạng (topology control) .Trong nhiều trường hợp việc xác định vị trí trong thế giới tự nhiên của các nút cảm biến là rất cần thiết Ví dụ các ứng dụng kiểm tra và phát hiện sự kiện sảy ra ở đâu, nếu không có thông tin vị trí thì không thể báo cáo chính xác 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 ứng.Giao thức đồng... 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 12 - Đ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 ... biến WSN Chương nghiên cứu phương pháp phát sửa lỗi Chương nghiên cứu mã điều khiển lỗi WSN Dựa sở lý thuyết chương 1, nghiên cứu phương pháp phát sửa lỗi ứng dụng mạng cảm biến chương chương 3,... bit lỗi 61 - Nếu dmin >= 2e 61 Thì tất dãy nhận v có khả phát tối đa e lỗi; tổng số bit lỗi < e v tự điều chỉnh được, số bit lỗi = e phát lỗi điều 61 Trong mã. .. Ba Tên đề tài luận văn Thạc sĩ: Nghiên cứu mã điều khiển lỗi mạng cảm biến không dây để nâng cao hiệu việc sử dụng lượng” Trong thời gian dài qua trình nghiên cứu học tập, hoàn thành luận văn