1.4.1. Các lý do chọn vi điều khiển CC1010
Lựa chọn loại vi điều khiển để xây dựng nút mạng đáp ứng đƣợc các yêu cầu về nút mạng và chỉ tiêu của hệ thống mạng đã đƣa ra trên đây là một vấn đề quan trọng. Vì khi chọn đƣợc một vi điều khiển thích hợp sẽ làm cho quá trình xây dựng hệ thống dễ triển khai hơn, dễ phát triển chức năng hơn, mạng hoạt động ổn định trong khoảng thời gian dài hơn và có thể sử dụng trong các ứng dụng mới.
Vi điều khiển CC1010 của hãng Chipcon (tham khảo tại trang web
www.chipcon.com hoặc www.ti.com) có chứa nhân CPU 8051, đƣợc tích hợp bộ thu phát sóng vô tuyến và các thành phần phụ khác và có mức tiêu thụ
năng lƣợng thấp. CC1010 còn có các chế độ làm việc tiêu thụ ít năng lƣợng, có thể lập trình điều khiển chế độ làm việc. Do đó, CC1010 rất phù hợp để trở thành nút mạng cảm nhận không dây, đặc biệt trong các mạng đo các thông số môi trƣờng. Cụ thể hơn, ta sẽ xét các thành phần và những đặc điểm quan trọng nhất của vi điều khiển này [11]:
Phần lõi MCU:
- Vi xử lý 8051 có tốc độ bằng 2,5 lần vi xử lý 8051 tiêu chuẩn
- Có các chế độ tiết kiệm năng lƣợng (nghỉ và ngủ), có thể lập trình để vi điều khiển hoạt động trong các chế độ này. Đặc điểm này sẽ đƣợc khai thác trong đề tài này để thiết lập chế độ làm việc tiết kiệm năng lƣợng. Nội dung cụ thể sẽ đƣợc trình bày chi tiết ở các chƣơng sau. - 32 KB bộ nhớ Flash, 2048 + 128 byte bộ nhớ trong SRAM
- 3 kênh ADC 10 bit, 4 bộ định thời, 2 cổng UART, RTC, Watchdog, SPI, mã hoá DES, 26 chân vào ra chung
- Tích hợp bộ gỡ rối hỗ trợ môi trƣờng phát triển Keil µVision2 IDE qua giao diện cổng nối tiếp.
Bộ thu phát sóng vô tuyến:
- Tần số 300 – 1000 MHz
- Tiêu thụ dòng rất thấp (9.1 mA trong chế độ thu)
- Công suất phát có thể lập trình đƣợc (lên đến +10dBm) - Tốc độ thu phát dữ liệu lên đến 76,8 kbps
- Độ nhạy cao (thông thƣờng -107 dBm)
Hãng Chipcon còn đƣa ra các thƣ viện để hỗ trợ làm việc với CC1010, do đó việc viết chƣơng trình cho CC1010 trở nên dễ dàng và thuận tiện hơn [12].
Với những đặc điểm trên, ta có thể thấy khi đƣợc tích hợp thêm bộ cảm biến, vi điều khiển CC1010 sẽ có những phẩm chất tốt để trở thành một nút mạng, đáp ứng đƣợc các yêu cầu cho hệ thống mạng WSN đã nêu ở phần trên.
Hiện nay, hãng Chipcon cung cấp Module CC1010EM (Evaluation Module) để phát triển thêm các ứng dụng của CC1010. Trên CC1010EM có tích hợp hầu hết các linh kiện cần cho một nút mạng nhƣ: CC1010, các chân cổng, một cảm biến nhiệt độ đƣa vào chân AD1, anten, dao động thạch anh. Module CC1010EM nhỏ gọn và đáp ứng đầy đủ các chức năng của nút mạng là chức năng mạng và chức năng cảm nhận. Trong luận văn này, CC1010EM đƣợc lựa chọn làm nút mạng để đo thông số nhiệt độ môi trƣờng và thử nghiệm chƣơng trình tiết kiệm năng lƣợng nhúng trên đó. Trong chƣơng hai sẽ đề cập chi tiết hơn về giải pháp tiết kiệm năng lƣợng cho nút mạng WSN sử dụng CC1010.
1.4.2. Kiến trúc mạng cảm nhận đo nhiệt độ sử dụng CC1010
Phần này sẽ đề xuất xây dựng một mạng WSN thực tế thu thập thông tin về nhiệt độ, sử dụng vi điều khiển CC1010, module CC1010EM và bo mạch ghép nối CC1010EB. Topology sử dụng cho mạng kết hợp cả topology dạng cây và dạng tuyến tính để truyền dữ liệu đi xa, với khoảng cách trên 1 km (hình 1.6). Các nút mạng CC1010 giao tiếp với nhau qua sóng vô tuyến 300 – 1000MHz, có ba loại nút mạng: trạm gốc, nút mạng chuyển tiếp và nút mạng cảm nhận [4].
Hình 1.6. Mạng WSN có topology kết hợp dạng cây và dạng tuyến tính
Trạm gốc nhận dữ liệu và chuyển và máy tính để xử lý. Trong mô hình xây dựng, module CC1010EB là bo mạch giúp kết nối CC1010 với các thiết bị ngoại vi, trong trƣờng hợp này là kết nối với máy tính, các module CC1010EM thu thập thông tin về nhiệt độ và truyền về cho trạm gốc qua các nút trung gian. Một số vi điều khiển CC1010 đƣợc sử dụng làm nút trung gian để chuyển tiếp dữ liệu về trạm gốc và không gắn đầu cảm biến. Mô hình cụ thể về mạng này đƣợc trình bày trên hình 1.7.
Việc xây dựng một mạng WSN không phức tạp, khó khăn chủ yếu vẫn là vấn đề tối ƣu hoá hoạt động tại mỗi nút mạng để giảm đến mức thấp nhất sự tiêu thụ năng lƣợng. Vi điều khiển CC1010 có thể lập trình đƣợc và có hỗ trợ các chế độ hoạt động ở mức năng lƣợng thấp, cụ thể là chế độ nghỉ và chế độ tắt nguồn. Những đặc điểm này sẽ đƣợc khai thác để viết các chƣơng trình tiết kiệm năng lƣợng cho nút mạng WSN.
Hình 1.7. Mô hình triển khai WSN theo dõi nhiệt độ sử dụng CC1010
1.5. Kết luận
Nhƣ vậy chƣơng đầu tiên của luận văn này đã trình bày đƣợc các vấn đề cơ bản về mạng cảm nhận không dây: các thành phần, đặc điểm, kiến trúc, các chỉ tiêu cần đáp ứng đối với một WSN. Ngoài các phần lý thuyết chung, chƣơng này còn hƣớng đến mô hình thực tế và đặt ra vấn đề trọng tâm cần nghiên cứu, vấn đề xuyên suốt trong toàn bộ luận văn này, là giải pháp tiết kiệm năng lƣợng cho nút mạng WSN.
Mạng WSN đƣợc tạo thành từ một tập hợp các thiết bị có khả năng cảm biến, xử lý và phu phát tín hiệu qua sóng vô tuyến. Các nút mạng hoạt động mà không cần tác động của con ngƣời với một nguồn năng lƣợng chỉ đƣợc cung cấp trong lần đầu. Trong các yếu tố ảnh hƣởng đến WSN thì yếu tố năng lƣợng là quan trọng nhất, có ý nghĩa sống còn đối với WSN và việc nghiên
CC101 CC101E M sensor CC101 CC1010EB CC101 CC101E M sensor CC101E M sensor CC101E M sensor CC101E M sensor CC101E M sensor CC101E M sensor Internet
cứu tiết kiệm năng lƣợng là chủ đề đƣợc quan tâm nhiều nhất khi nghiên cứu về WSN.
Vi điều khiển CC1010 đƣợc chọn làm nút mạng WSN đo thông số môi trƣờng do các phẩm chất nổi bật của nó. Vấn đề đặt ra là làm thế nào để tối ƣu hoá hoạt động của vi điều khiển nhằm tiết kiệm đƣợc nhiều năng lƣợng nhất cho nút mạng. Vấn đề này sẽ dần đƣợc giải quyết trong các chƣơng sau của luận văn này. Trong chƣơng hai, tác giả sẽ trình bày các phƣơng pháp chung để tiết kiệm năng lƣợng và các giải pháp tiết kiệm năng lƣợng cụ thể áp dụng cho nút mạng cảm nhận sử dụng vi điều khiển CC1010.
CHƢƠNG 2. GIẢI PHÁP TIẾT KIỆM NĂNG LƢỢNG CHO MẠNG CẢM NHẬN KHÔNG DÂY SỬ DỤNG VI ĐIỀU KHIỂN CC1010
Phần đầu của chƣơng này sẽ tập trung vào phân tích sự tiêu thụ năng lƣợng tại nút mạng qua đó chỉ ra các yếu tố làm tiêu tốn năng lƣợng cho nút mạng. Tiếp đến là khái quát các giao thức điều khiển truy cập môi trƣờng đáp ứng yêu cầu tiết kiệm năng lƣợng, từ những yêu cầu đó chọn phân tích một linh kiện tƣơng ứng để thiết kế một WSN mà cụ thể loại linh kiện đƣợc chọn ở đây là vi điều khiển CC1010. Một phần quan trọng của chƣơng này là phân tích các chế độ hoạt động của vi điều khiển CC1010 và đƣa ra các giải pháp nhằm tiết kiệm năng lƣợng cho nút mạng sử dụng CC1010.
2.1. Mở đầu
Các công nghệ gần đây đột phá trong lĩnh vực siêu tích hợp và điện tử năng lƣợng thấp đã cho phép phát triển các loại sensor cực nhỏ hoạt động dựa trên nguồn năng lƣợng pin (0,5 ~ 1,5 Ah, 1,5 ~ 3,6 V). Các sensor trên đƣợc sử dụng trong các ứng dụng triển khai không cần có mặt của con ngƣời với điều kiện môi trƣờng khắc nghiệt, sự cung cấp thêm năng lƣợng cho pin của sensor là không thể thực hiện đƣợc, do đó sensor đƣợc khống chế tiêu thụ năng lƣợng và tuổi của nó phụ thuộc chủ yếu vào thời gian hoạt động của pin. Ngoài chức năng cảm nhận, các sensor trong mạng còn thực hiện việc xử lý thông tin và truyền dữ liệu, gọi là nút mạng cảm nhận không dây.
Các bộ phận tiêu thụ năng lƣợng chủ yếu trong nút mạng cảm nhận không dây là bộ thu phát sóng vô tuyến và bộ vi xử lý. Có bốn trạng thái hoạt động chính của nút mạng, bao gồm: nghỉ (idle), nhận, truyền và ngủ (sleep), trong đó nút tiêu tốn năng lƣợng tối đa khi truyền và nhận dữ liệu. Khi ở trạng thái ngủ, các nút mạng hầu nhƣ không tiêu tốn năng lƣợng, còn ở trạng thái
nghỉ, nút mạng tiêu thụ năng lƣợng ít hơn đáng kể so với trạng thái nhận và truyền. Ngoài ra, nút mạng khi tham gia vào hệ thống mạng sẽ tiêu tốn thêm nhiều năng lƣợng cho các hoạt động khác nhƣ điều khiển truy cập, xung đột với nút mạng khác, nhiễu từ hệ thống khác,…
Nhƣ vậy vấn đề đặt ra là làm sao cho nút mạng hoạt động ở chế độ tiết kiệm năng lƣợng nhất và cần có các cơ chế điều khiển truy cập môi trƣờng tối ƣu để tránh mất mát năng lƣợng khi hoạt động trên mạng cùng các nút khác. Điều này có thể thực hiện bằng nhiều cách khác nhau, có thể viết chƣơng trình chuyển đổi chế độ làm việc riêng cho mỗi WSN cụ thể, cũng có thể phát triển các giao thức tiết kiệm năng lƣợng và áp dụng triển khai WSN thực tế.
Đối với giải pháp sử dụng các giao thức tiết kiệm năng lƣợng, hầu hết các công trình nghiên cứu tập trung vào các giao thức điều khiển truy cập môi trƣờng (MAC), theo đó MAC phải có cơ chế quản lý quá trình hoạt động thu phát vô tuyến một cách tối ƣu, tránh đƣợc sự mất mát năng lƣợng một cách vô ích nhƣ xung đột trong mạng, truyền dƣ thừa, truyền lại do mất mát và cả do thời gian nút mạng ở chế độ tích cực quá lâu.
Còn đối với giải pháp viết phần mềm cho nút mạng, tuỳ thuộc vào ứng dụng của WSN và loại vi điều khiển đƣợc sử dụng cho nút mạng mà có các chƣơng trình khác nhau, thay đổi một cách linh hoạt.
Trong chƣơng này, tác giả sẽ đƣa ra cả hai giải pháp: nghiên cứu, áp dụng giao thức điều khiển truy cập môi trƣờng tiết kiệm năng lƣợng và sử dụng chƣơng trình phần mềm tác động vào chế độ làm việc của nút mạng. Tuy nhiên do hạn chế về thiết bị nên chỉ tác giả chỉ chọn thử nghiệm phƣơng pháp tiết kiệm năng lƣợng cho nút bằng cách sử dụng phần mềm, cụ thể sử dụng vi điều khiển CC1010 của hãng Chipcon để lập trình và thử nghiệm.
Các phần sau đây sẽ diễn giải chi tiết các nội dung trên.
2.2. Các hoạt động tiêu thụ năng lƣợng trong mạng cảm nhận không dây dây
Phần này sẽ phân tích các chế độ năng lƣợng của mạch thu phát vô tuyến nói riêng và nút mạng nói chung cùng các nhân tố ảnh hƣởng đến mức tiêu thụ năng lƣợng của nút trong hệ thống mạng WSN.
Thông thƣờng, thiết bị thu phát vô tuyến hoạt động ở bốn chế độ khác nhau: nghỉ, nhận, truyền và ngủ. Trong chế độ tích cực (gồm truyền và nhận), mạch tiêu tốn năng lƣợng nhiều nhất. Chế độ nghỉ tiêu thụ năng lƣợng ít hơn, tuy nhiên nếu nút mạng ở chế độ tắt nguồn thì việc tiết kiệm năng lƣợng sẽ là triệt để nhất. Do vậy, điều mong muốn là hoàn toàn tắt nút mạng (chế độ ngủ) hơn là để nó trong chế độ tích cực hoặc nghỉ. Tuy nhiên, việc bật, tắt liên tục mạch thu phát radio đôi khi có thể làm năng lƣợng tiêu thụ nhiều hơn là để nguyên nó trong chế độ nghỉ do mất năng lƣợng khởi động. Thêm vào đó, khi kích thƣớc gói tin truyền nhỏ, năng lƣợng chuyển đổi này trở nên lớn hơn năng lƣợng tiêu thụ để truyền và nhận gói tin [9].
Do vậy để có thể tiết kiệm năng lƣợng một cách hiệu quả cho nút mạng, cần áp dụng nhiều giải pháp khác nhau. Ngoài nguyên tắc chuyển chế độ làm việc cho mỗi nút mạng cụ thể, cần thiết phải tính toán khi thiết kế các giao thức MAC tiết kiệm năng lƣợng cho toàn bộ mạng WSN. Phần sau của chƣơng này sẽ phân tích một số giao thức MAC tiết kiệm năng lƣợng cho WSN. Sau đây sẽ phân tích khái quát định tính và định lƣợng sự tiêu thụ năng lƣợng trong nút mạng WSN.
Năng lƣợng tiêu thụ của mạch thu phát vô tuyến Eradio có thể tính đơn giản theo công thức sau:
Eradio = [(c Ptx) + b] T [5]
trong đó: c là hệ số năng lƣợng truyền dẫn, b là hằng số offset năng lƣợng, Ptx
là năng lƣợng sử dụng trong truyền tín hiệu và T là thời gian truyền dẫn.
Một công thức khác để tính năng lƣợng tiêu thụ chính xác hơn và phức tạp hơn:
Eradio = [Ptx(Ttx + Ntx Tst) +Pout Ttx] + [Prx (Trx + Nrx Tst] Pidle Tidle [6]
Trong đó:
Ptx/rx là năng lƣợng tiêu thụ khi truyền/nhận tƣơng ứng của bộ thu phát.
Pout là năng lƣợng đầu ra bộ phát, Pout phụ thuộc vào khoảng cách tín hiệu truyền đến đích và địa hình xung quanh.
Pidle là năng lƣợng nút mạng sử dụng trong chế độ nghỉ. Pidle có giá trị nhỏ hơn đáng kể so với Ptx
Ttx/rx là thời gian trung bình mà bộ thu phát đƣợc sử dụng trong mỗi giây. Ttx/rx phụ thuộc vào kích thƣớc gói tin, tốc độ kênh truyền dữ liệu và số trung bình gói tin truyền nhận trong 1 giây.
Tidle là thời gian trung bình trong một giây một nút mạng ở chế độ nghỉ.
Tst là thời gian khởi động của transceiver
Ntx/rx thể hiện số trung bình số lần trong 1 giây bộ thu phát đƣợc bật lên (kích hoạt chế độ truyền nhận). Ntx/rx chủ yếu phụ thuộc vào chế độ truyền nhận của ứng dụng và cơ chế điều khiển truy cập môi trƣờng.
Từ công thức tính năng lƣợng tiêu thụ cho mạch thu phát ở trên, ta thấy để giảm năng lƣợng này, cần phải giảm các yếu tố Ttx/rx, Ptx/rx, có nghĩa là phải giảm càng nhiều càng tốt thời gian nút mạng hoạt động ở chế độ tích cực. Tuy nhiên trong công thức tính toán trên vẫn còn hạn chế là chƣa đƣa ra cụ thể cách tính và giá trị thƣờng gặp của các tham số nhƣ Ptx/rx, Pidle. Tác giả đã cố gắng tìm kiếm các công thức định lƣợng cụ thể biễu diễn sự tiêu thụ năng
lƣợng cho nút mạng nhƣng do tài liệu về WSN còn hạn chế nên chƣa thực hiện đƣợc.
Trong công thức trên, năng lƣợng tiêu thụ đƣợc tính trong trƣờng hợp nút mạng chƣa chịu ảnh hƣởng của các yếu tố khác khi tham gia vào mạng WSN. Sau đây sẽ tổng hợp các nguyên nhân tiêu tốn năng lƣợng cho nút khi hoạt động trong WSN [9]:
- Nguyên nhân thứ nhất gây ra sự lãng phí năng lƣợng là khoảng thời gian mỗi nút mạng hoạt động ở chế độ truyền nhận quá lâu hoặc không hoạt động ở chế độ năng lƣợng thấp. Mạch thu phát luôn luôn bật và nút mạng luôn mất năng lƣợng để duy trì mạch mặc dù nút chỉ thu hoặc phát tín hiệu trong những thời điểm nhất định.
- Thứ hai là overhearing, nghĩa là nút mạng nhận gói tin mà đúng ra đích đến là nút khác.
- Thứ ba là năng lƣợng bị tiêu tốn trong qúa trình gửi và nhận các gói tin điều khiển truy cập môi trƣờng.
- Thứ tƣ là xung đột trong việc truyền đồng thời nhiều gói tin làm khuếch đại tín hiệu nhiễu và do đó gây nên việc truyền lại gói tin. - Nguyên nhân thứ năm là nhiễu sóng vô tuyến từ các hệ thống khác
làm các gói tin bị gián đoạn và cần truyền lại hoặc phải tăng công suất truyền để khắc phục nhiễu đó.
- Cuối cùng, việc chuyển đổi liên tục các mode làm việc, đặc biệt là từ mode ngủ sang mode tích cực dẫn đến tiêu tốn năng lƣợng đáng kể. Nhƣ vậy có thể thấy có rất nhiều yếu tố ảnh hƣởng đến việc tiêu thụ năng lƣợng của nút mạng cảm nhận. Tuỳ vào mỗi ứng dụng cụ thể và từng