Giới thiệu hệ điều hành Contiki: 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ểnbởi một nhóm các nhà phát triển từ viện khoa học máy tính Thụy Đ
Trang 1M c l c ụ ụ
I Giới thiệu về contiki và Cooja: 2
1 Giới thiệu hệ điều hành Contiki: 2
2 Giới thiệu phần mềm mô phỏng Cooja: 3
II Hướng dẫn Download và Install 4
1 Download 4
2 Cài đặt: 5
a Cài đặt VMWare: 5
b Cài đặt Contiki: 7
c Download và cài đặt phần mềm Elipse 10
d Install the Sun Java SDK 1.6 15
e Cài đặt cooja 17
III Hệ điều hành Contiki: 19
1 Tích hợp một platform mới vào hệ điều hành contiki: 19
a Platform: 19
b Platform trong Contiki: 19
c Các bước tiến hành: 19
2 Tmode Sky trong hệ điều hành Contiki: 20
a Giới thiệu Tmode Sky: 20
b Khác biệt giữa Tmote Sky và native: 21
3 Sentilla nodes: 22
a Giới thiệu Sentila node: 22
b Các bước thiết lập Sentilla node: 22
Trang 2I Giới thiệu về contiki và Cooja:
1 Giới thiệu hệ điều hành Contiki:
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ểnbở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à AdamDunkels 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ố 2KBRAM và 40KB ROM Nhờ đó, Contiki được sử dụng cho các hệ thống nhúng và các ứng dụngtrong 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ànhphiê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 trongnhữ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ểnvượ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ìnhnhư 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àngtrăm công ty trong các lĩnh vực hàng hải, thông tin vệ tinh, khai thác dầu mỏ,…; mô hìnhProtothreads được công bố lần đầu tiên năm 2005, đến nay đã được sử dụng trong nhiều ứngdụng như bộ giải mã kỹ thuật số và thiết bị cảm biến rung không dây
Hình 1.1: Lịch sử phát triển Contiki
Trang 3Hệ đ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ựatrê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 thấp mộtcách hiệu quả
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 đơngiả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
2 Giới thiệu phần mềm mô phỏng Cooja:
Cooja là phần mềm mô phỏng hệ thống mạng được tích hợp trong hệ điều hành Contiki.Công cụ này cho phép người sử dụng thay đổi các thông số như vị trí, phạm vi kết nối, tỉ lệtruyền gói thành công,… Nhờ đó người sử dụng có thể mô phỏng và đánh giá kết quả một cáchhiệu quả hơn
Dưới đây là giao diện của chương trình mô phỏng bằng Cooja:
Trang 5Hình 2.1: Trang web sics.seDownload Install Contiki here
Download VMWare Player here (Windows download
Trang 6- Click Next
Hình 2.3: Cài đặt chương trình VMWare
- Click Next
Hình 2.4: Cài đặt chương trình VMWare
- Chọn các shortcuts rồi Click Next
Trang 7Hình 2.5: Cài đặt chương trình VMWare
Trang 8Hình 2.7: Giao diện chương trình VMware Player
- Click Cancel
Trang 9Hình 2.8: Giao diện chương trình VMware Player
- Click Open và chọn đường dẫn đến thư mục Contiki vừa giải nén Chọn install – contiki
Hình 2.9: Chọn thư mục Contiki trong VMWare
- Điền username là user rồi ấn enter (bạn có thể chọn username khác, đây chỉ là ví dụ)
Hình 2.10: Màn hình điền username
Trang 10- Điền password là user rồi ấn enter (bạn có thể chọn password khác, đây chỉ là ví dụ Password này sẽ dung cho cả sau này, nếu như có hỏi password thì bạn điền password đã thiết lập ở đây vào)
Hình 2.11: Điền password
- Giao diện của chương trình
Hình 2.12: Giao diện của chương trình
Trang 11c Download và cài đặt phần mềm Elipse
- Vào link
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.6-201006080911/eclipse-SDK-3.6-win32.zip
- Download bằng Torrent hoặc download trực tiếp
Hình 2.13: Trang web download Eclipse
- Click [Korea, Republic Of] KAIST (http) và download 170 MB
- Giải nén
- Cài đặt
- Thiết lập workspace (tìm đến một thư mục để chứa các project)
Hình 2.14: Cài đặt Eclipse
Trang 12Hình 2.15: Giao diện ban đầu Eclipse
Từ menu, chọn window > other perspectives > other > chọn cvs repository exploring
Hình 2.16: Cửa sổ Open Perspective
- Giao diện
Trang 13Hình 2.17: Giao diện chương trình Eclipse
- Chọn check out from CVS (mũi tên đỏ chỉ vào)
Trang 14- Điền các thông số (chú ý không có khoảng cách trống trước và sau các từ điền vào.Host : contiki.cvs.sourceforge.net
Repository path : /cvsroot/contiki
User : anonymous
Server : pserver ,
tick use default port
Để trống mật khẩu rồi click Next
Trang 15- Chọn Use an existing module (this will alow you to browse the modules in the repository)
- Chọn contiki-2.x
Trang 16- Chọn Check out as a project in the workspace
- Finish
d Install the Sun Java SDK 1.6
System->Administration -> Synaptic Package Manager
Trang 17Điền password user
Nếu libgtk1.2-dev chưa đánh dấu (màu xanh) thì đánh dấu lại để cài đặt Đánh dấu rồi tức là đã cài đặt
Trang 18e Cài đặt cooja
Điền pass user rồi ấn enter (chú ý là user sẽ không hiện lên trên màn hình Bạn chỉ cần chú ý là điền đúng là được) để cài đặt user
Đưa dòng lệnh vào foder home/user/contiki-2.x/tools/cooja
Chú ý rằng bình thường thì dòng lệnh đang ở home/user
Trang 19Bạn sử dụng lệnh cd [foder name] để truy cập vào foder con của foder bạn đang ở Khi vào được tới foder cooja rồi thì chạy lệnh
+Manager Project Directories:
+Compiler Configuration Wizard
Hoàn tất quá trình cài đặt Contiki và Cooja
Trang 20III Hệ điều hành Contiki:
1 Tích hợp một platform mới vào hệ điều hành contiki:
a Platform:
Platform trong hệ điều hành contiki là những thư mục chứa các file nền tảng của một platform và hệ điều hành Contiki chạy trên đó
b Platform trong 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:
- Copy toàn bộ các file trong thư mục platform/native vào thư mục platform mới và sửa
- Copy toàn bộ các file trong thư mục cpu/[tên vi xử lý] vào thư mục cpu của thiết bị mới
Trang 21 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 fileclock.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
- contiki-conf.h:
o Nằm trong thư mục platform/(tên platform)
o Chứa các tùy chọn cấu hình:
Cấu hình cho C compiler
C types
Cấu hình cho uIP
Clock configuration: clock_time_t, CLOCK_CONF_SECOND
o copy từ platform/native/contiki-conf.h và chỉnh sửa
- 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 trong
thư mục core/dev
2 Tmode Sky trong hệ điều hành Contiki:
a Giới thiệu Tmode Sky:
Trang 22Tmote 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
Để chạy một chương trình trên một Tmote sky chúng ta cần phải có
- msp430-gcc (the gcc C compiler for the MSP430 microcontroller) installed
Các thư viện:
- 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 Collects sensor data and energy profile values to a sink Press the "user" button on the Tmote Sky that is connected to the PC to make the node a 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
b 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ăngphù hợp với Sky
o Thư mục CVS không hề thay đổi,
o Thư mục dev có thêm các file tích hợp cho các devices trong Tmote Sky Ngoài ratrong Sky còn có thêm thư mục apps chứa các file application cụ thể của platform sky
Trang 233 Sentilla nodes:
a Giới thiệu Sentila 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
- Hiện nay Contiki hỗ trợ rất nhiều cho sky platform nhưng chưa kịp update cho tất cả các đặc tính của Sentilla node
b Các bước thiết lập Sentilla node:
- Bướ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ó msp430-gcc.
Chúng ta cần kiểm tra xem contiki đã cài đặt các file cần thiết của msp430 chưa Các file đó bao gồm:
binutils-msp430
gcc-msp430
msp430-libc
Để kiểm tra chúng ta gõ: $ dpkg –l *msp*
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:
Bước 2: Install the Sentilla bootstrap loader and update the PATH variable
Trang 24Lấy file tmote-bsl từ diễn đàn sentilla
- Ghi danh vào diễn đàn http://dev.sentilla.com/forums/index.php
- Download file SentillaWork.targ.gz theo link
Bằng cách gõ dòng lệnh
$ export PATH=$PATH:~/Desktop/contiki-2.x/tools/sky
Đến đây bạn đã hoàn thành việc tích hợp platform Sentila vào hệ điều hành Contiki Bạn có thể tiếp tục chạy một ví dụ đơn giản trên Sentila node theo bước 3 và 4 trong hướng dẫn tại địa chỉ sau:
8.10.html