1. Trang chủ
  2. » Công Nghệ Thông Tin

NGHIÊN cứu mã điều KHIỂN lỗi TRONG

93 370 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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 i0 Đ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 i0 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

Ngày đăng: 08/10/2015, 14:25

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w