Hệ Điều Hành Contiki và ứng dụng mô phỏng CoojaHỆ ĐIỀU HÀNH CONTIKI VÀ ỨNG DỤNG MÔ PHỎNG COOJA 1.Contiki Với số lượng dày đặc các nút cảm biến, việc kiểm nghiêm và đánh giá chính xác hiệ
Trang 2Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
HỆ ĐIỀU HÀNH CONTIKI VÀ ỨNG DỤNG MÔ PHỎNG COOJA
1.Contiki
Với số lượng dày đặc các nút cảm biến, việc kiểm nghiêm và đánh giá chính xác hiệu quả hoạt động là một trong những thách thức của mạng cảm biến không dây trong quá trình triển khai trên thực tế Nhằm khắc phục những khó khăn này, nhiều hướng nghiên cứu đã tập trung vào phát triển những công cụ mô phỏng cách thức hoạt động các nút trong hệ thống mạng cảm biến Trong phần này sẽ trình bày về hệ điều hành contiki
1.1.Giới thiệu
Hệ điều hành contiki là hệ điều hành mã nguồn mở, được nghiên cứu, thiết kế và phát triển bởi một nhóm các nhà phát triển từ viện khoa học máy tính Thụy Điển, người đứng đầu là Adam Dunkels Nhóm phát triển Contiki gồm nhiều thành viên đến từ SICS, CISCO, cùng nhiều tổ chức và các trường đại học khác trên thế giới Hệ điều hành Contiki được thiết kế cho các vi điều khiển có bộ nhớ nhỏ, với thông số 2KB RAM và 40KB ROM Nhờ đó, Contiki được sử dụng cho các hệ thống nhúng và các ứng dụng trong mạng cảm biến không dây Contiki bắt đầu được nghiên cứu từ năm 2001 và phát hành phiên bản đầu tiên Contiki 1.0 năm 2003 Hình 3.1 cho thấy lịch sử phát triển của Contiki trong những năm qua Phiên bản hiện nay của Contiki là 2.4, với nhiều thay đổi,
bổ sung và phát triển vượt bậc Trong thực tế, Contiki đã được ứng dụng trong nhiều dự
án như giám sát đường hầm xe lửa, theo dõi nước trong biển Baltic,… Nhiều cơ chế, ý tưởng trong Contiki đã được ứng dụng rộng rãi trong công nghiệp Điển hình như mô hình uIP được phát hành năm 2001 đã được sử dụng trong hệ thống ứng dụng của hàng
Trang 3Hình 1.1 Lịch sử phát triển Contiki
Hệ điều hành Contiki được lập trình bằng ngôn ngữ C, hoạt động dựa trên cơ chế event - driven và có những đặc điểm phù hợp với các hệ thống nhúng và mạng cảm biến không dây:
• Contiki được chia thành nhiều modul hoạt động độc lập Nhờ đó các ứng dụng có thể sử dụng các modul một cách linh động và chỉ load những modul cần thiết
• Cơ chế hoạt động điều khiển sự kiện làm giảm năng lượng tiêu hao và hạn chế dung lượng bộ nhớ cần sử dụng
• Có thể sử dụng IP trong mạng cảm biến thông qua uIP stack được xây dựng dựa trên nền TCP/IP
• Có những modul cho phép ước lượng và quản lý năng lượng một cách hiệu quả
• Các giao thức tương tác giữa các lớp và các node trong mạng dễ dàng hơn
• Sử dụng RIME stack phục vụ các giao thức dành cho mạng năng lượng
Trang 4Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
Bên cạnh đó, Contiki còn cung cấp những công cụ hỗ trợ mô phỏng với giao diện đơn giản, dễ sử dụng và hỗ trợ tốt những thiết bị trong thực tế, phục vụ những mục đích nghiên cứu, mô phỏng và triển khai những giao thức mới
1.2.Hướng dẫn tải và cài đặt
Trang 5- Click Next
- Click Next
Trang 6Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
- Chọn các shortcuts rồi Click Next
- Click Install
Trang 8Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
- Điền username là “user” rồi ấn enter Màn hình đăng nhập hiện lên:
- Điền password là “user” rồi ấn enter
Trang 9- Giao diện của chương trình
c. Download và cài đặt phần mềm Elipse
- Vào link http://www.eclipse.org/downloads/download.php?
gtk.tar.gz
Trang 10file=/technology/epp/downloads/release/helios/SR1/eclipse-cpp-helios-SR1-linux-Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
-Ấn vào biểu tượng mũi tên màu xanh để tải về
-Copy file nén vừa tải được vào trong Contiki (Dùng Usb)
-Giải nén ra và vào thư mục eclipse,ấn vào eclipse.exe để chạy chương trình.Màn hình hiện ra chọn OK (thiết lập work space)
-Giao diện trương trình hiện lên:
-Đóng cửa sổ giới thiệu vào,giao diện chính của trương trình:
Trang 11-Chọn File New C++ Project.Điền tên project (ví dụ là “ctk-2.4”):
-Nhấn Finish.Sau đó copy thư mục contiki-2.4 (code) vào trong thư mục ctk-2.4 vừa tạo : user/workspace/ctk-2.4 Sau đó trở lại giao diện eclipse nhấn F5 :
Trang 12Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
Vậy là chúng ta đã cài xong eclipse
1.3.Cấu trúc hệ điều hành Contiki
Bất kỳ bản Contiki nào cũng gồm 7 thư mục : apps, core, cpu, docs, example, platform và tools
“apps” chứa các tập tin nguồn của các tiện ích phát triển cho Contiki Chúng có sẵn để sử
dụng và bao gồm các thiết lập cơ bản của các ứng dụng cho mạng cảm biến không dây ứng dụng tiêu biểu trong thư mục này là trình duyệt web, máy chủ Web, FTP, email, và máy tính
“core”, như tên gọi cho thấy, nó chứa các hạt nhân của hệ điều hành Contiki.
Nó chứa khoảng 300 file, gần một nửa trong số đó là tập tin tiêu đề chứa các khai báo và còn lại là các tập tin nguồn chứa cài đặt
“cpu” chứa bộ xử lý cụ thể việc thực hiện các chức năng khác nhau được sử dụng trong
Trang 13dụ điển hình là các công cụ cho Sky
1.4.Tích hợp một platform mới vào hệ điều hành contiki
“Platform native” là platform chuẩn được xây dựng để việc tích hợp một platform mới vào hệ điều hành contiki trở nên thuận tiện hơn
Bao gồm các thư mục và các file:
Trang 14Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
clock_time(): Thực hiện đếm mỗi khi xảy ra ngắt,
clock_delay(): tạo trễ một khoảng thời gian, chỉ được sử dụng cho các driver
o Bước 1: Copy file clock.c tại thư mục cpu/msp430/dev/clock.c
o Bước 2: Tìm hiểu cách thức ngắt thời gian của các ứng dụng và thay đổi trong file clock.c
- Sensors:
o Khi sensors thay đổi, một sự kiện được truyền đến tất cả các quy trình như: nút bấm, PIR phát hiện chuyển động…
o Code chuẩn để truyền sự kiện nằm tại thư mục core/lib/sensors.c
o Các sensor tương lai sẽ là các sensor số thay thế cho các sensor tương tự
o Bước 1: Chọn các code sensor trong thư mục core/lib/sensors.c
o Bước 2: Thay đổi cho phù hợp với platform mới
- Network device drivers:
o Chức năng là gửi và nhận các gói tin (packet) giữa các node mạng với nhau
o Ví dụ: CC2420, CC1000
o Thiết lập đơn giản bằng cách copy driver có sẵn như simple-cc2420, tr1001
Trang 151.4.2 Case study: Tích hợp Sentilla Jcreate vào Contiki
a Tmode Sky platform trong HĐH Contiki
* Giới thiệu Tmode Sky:
Tmote Sky là mạch cảm biến không dây được phát triển bởi tập đoàn Moteiv Nó được tích hợp vi xử lý MSP430 với chuẩn 802.15.4 tương thích trên chip radio CC2420 Tmode Sky có 1Mb bộ nhớ flash ngoài và hai cảm biến ánh sáng Tmote Sky được tích hợp vào trong hệ điều hành Contiki vào tháng ba năm 2007
Để biên dịch một chương trình trên một Tmote sky chúng ta cần phải có
Trang 16Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
Các ứng dụng để test các chức năng của sky:
- blink.c : một chương trình đơn giản điều khiển LED trên node
- sky-collect.c : Thu thập dữ liệu của sensor và giá trị thông tin năng lượng tới sink
- test-button.c : bật tắt các led khi bấm nút
- test-cfs.c : Thử 1 mb bộ nhớ flash của Tmode Sky
* Khác biệt giữa Tmote Sky và native:
o File Cfs-coffee-arch.h, Contiki-conf.h, Contiki-main.c: về cơ bản trong Sky có sự thay đổi so với native để tùy chỉnh thêm các thư viện devices, thêm các chức năng phù hợp với Sky
o Thư mục dev có thêm các file tích hợp cho các thiết bị trong Tmote Sky như button-sensor, buttery-sensor, i2c, light, light-sensor, radio-sensor, temperature-sensor Ngoài ra trong Sky còn có thêm thư mục apps chứa các file ứng dụng cụ thể của platform sky
b Sentilla Jcreate nodes (motes)
* Giới thiệu Sentila Jcreate node:
Sentilla nodes là thế hệ sau của Tmode sky node Những điểm khác biệt giữa hai loại node này là:
- Trong khi sky node có 3 Led và 1 nút bấm thì sentilla có 8 led, 1 gia tốc kế và không có nút bấm
Trang 17Bước 1: Cài đặt msp430 compiler
Sentilla node giống như sky node, cũng có vi điều khiển msp430 của hãng Texas
Instrument Để chạy chương trình cho vi điều khiển, chúng ta cần có
Nếu chương trình đã có đầy đủ các file đó thì nó sẽ tự động liệt kê trong cửa sổ terminal
Còn nếu chưa có thì sẽ có thông báo: “No packages found matching *msp*”
Nếu các bạn cài đặt đầy đủ từ đầu tới giờ thì đảm bảo sẽ được như hình sau:
Trang 18Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
Bước 2: Install the Sentilla bootstrap loader and update the PATH variable
- Lấy file tmote-bsl từ diễn đàn sentilla
o Ghi danh vào diễn đàn http://dev.sentilla.com/forums/index.php
o Download file SentillaWork.targ.gz theo link
http://dev.sentilla.com/forums/viewtopic.php?f=9&t=96
o Click đúp vào để mở file vừa tải xuống, tìm file
msp430-bsl-linux trong folder SentillaWork/SentillaHostserver/bin
Trang 19dẫn tại địa chỉ sau:
8.10.html
http://www.sics.se/contiki/tutorials/tutorial-getting-started-with-sentilla-nodes-on-ubuntu-* Cách tích hợp led vào platform sentilla jcreate:
Mục đích: xây dựng thư viện cho sentilla node để có thể sử dụng với 8 led dựa vào
platform Tmotesky node
Trang 20Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
#define LEDS_8 8
- Bước 2: gán lại chân cho các leds bằng cách sửa lại file leds-arch.c trong
platform/skymicaz/dev sau đó lưu lại với tên driver.c gán lại chân các led dựa vào các thanh ghi trong file cc2430_sfr.h trong cpu
LEDS_CONF_4| LEDS_CONF_5| LEDS_CONF_6| LEDS_CONF_7| LEDS_CONF_8);
LEDS_CONF_4| LEDS_CONF_5| LEDS_CONF_6| LEDS_CONF_7| LEDS_CONF_8);
- Bước 3: gán chân các led trong file contiki-conf.h
Trang 21Hình 2.1 Màn hình mô phỏng Cooja.
Từ hình có thể nhận thấy giao diện của chương trình than thiện và dễ sử dụng, với một màn hình cho phép hiển thị các quá trình hoạt động của node, có khả năng thay đổi vị trí, phạm vi phủ sóng của mỗi node Bên cạnh đó Cooja cung cấp một số các cửa sổ theo dõi sự kiện như Log listener, Radio listener cho phép người sử dụng tìm
Trang 22Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
node cụ thể, ….Có thể nói, đây là một công cụ mô phỏng khá trực quan và dễ sử dụng, phục vụ tốt cho quá trình nghiên cứu, mô phỏng, đánh giá
Trang 23Tuy nhiên sau khi mở được chương trình cooja, điều đầu tiên nên làm là thiết lập thông
số cho cooja bằng cách mở tab Settings:
+External Tools Path: Ở đây có thể thiết lập các thông số về đường dẫn cho cooja, đường dẫn các file liên quan
+Manager Project Directories:
+Compiler Configuration Wizard
Một diều rất thuận lợi khi sử dụng linux, dó là có thể cài dặt các gói dữ liệu còn thiếu 1 cách dễ dàng bằng công cụ Synaptic Package Manager: System>Administration-
>Synaptic Package Manager Nhập password quyền admin Ấn Search->Nhập tên file cần tìm và cài dặt
2.3.Ví dụ mô phỏng
Thực hiện mô phỏng: Vào File->New Simulation.Simulation title: (Nhập tên cho
mô phỏng) và nhấn Create ta được :
Trang 24Hệ Điều Hành Contiki và ứng dụng mô phỏng Cooja
Lúc này sẽ có 4 cửa sổ xuất hiện: Control Panel, Simulation Visualizer, Log Listener và Timeline
Vào Mote Types->Creat mote type: mỗi loại mote type ứng với các lớp mô phỏng khác nhau là: Application level, OS level và Emulated level Ở dây chọn Sky mote type (Emulated level).Cửa sổ Create Mote Type hiện ra:
Trang 25Ấn Start để bắt đầu mô phỏng.
2.4.Cấu trúc thư mục