Chíp vi xử lý ARM9 hồ trợ chuân SSL và mã hóa IPsec đồng thời cũng hồ
Hình 6 Sơ đồ khối của Armadillo-300
2.2.2 Cách boot board mạch mạch
- Trước hết phải thiết lập jump trên board mạch như hình vẽ, JP1 và JP2 đều về vị trí 1
Hình 8 So’ đồ cáp nối
- Phần mềm sử dụng đế boot board mạch: hypcr terminal; Tera Term Pro (Window PC), hay minicom (Linux).
- Thiết lập các thông số khi boot: Transfer rate: 115,2kbps
Data length: 8bit
Parity: none
Stop: lbit
Nguyễn Thành Nam ĐT4-K49 Trang 29
2.2.3 Cách nạp file image vào board mạch
Hình 9 Hermit-at-WIN32 trên Windo\v
- Lựa chọn vùng nạp file ảnh:
- Đối với hệ điều hành Linux ta sử dụng lệnh sau [PC ~]$ hermit download -i linux.bin.gz -r kemel
Hình 10 Kiến trúc chức năng của hệ thống
Hệ thống cho phép truyền video từ các thiết bị nhúng đặt tại hiện
trường trên
mạng Ad-hoc. Người dùng có thể tưong tác với các thiết bị thông qua bàn phím,
cổng COM được gắn trực tiếp hoặc laptop thông qua mạng Ad-hoc, WLAN.
2.4 Mô tả chửc năng và hoạt động
(ATDE)
3.1 Giới thiệu về ATDE
bp.USibe r.
'<ỉí Ể fil5WindowsE... ' ộ V/rdowMed.. §MơosoftPoM... 2AdobeRea... • í Thante-Bâbỵtíi ìị' connpiie-
Hình 11 ATDE
Atmark Techno Development Environment (ATDE) là một máy ảo Linux
cung cấp môi trường phát triển cho các board mạch dòng Armadillo.
ATDE bao
gồm các công cụ biên dịch chéo (cross-compile) và rất nhiều các gói công cụ
phát triển cần thiết khác. Dùng ATDE ta không phải tự cài đặt môi trường phát
triên trên PC.
3.2 Biên dịch file image cho board nhúng trên ATDE
- Các gói phần mềm cần thiết download:
-Atmark-dist-20081018.tar.gz, Linux-2.6.12.5-at5 .tar.gz
- Ta tiến hành các bước như sau trên ATDE:
[PC ~]$ ls Linux-2.6.12.5-at5.tar.gz Atmark-dist- 20081018.tar.gz [PC ~]$ tar xvzf Atmark-dist-20081018.tar.gz [PC ~]$ tar xvzf Linux-2.6.12.5-at5.tar.gz [PC ~]$ cd Atmark-dist-20081018
3.3.1 Giói thiệu Cross-compỉle trên Linux
Cross Compile là một cách thực hiện việc viết codc, và compile
chương trình
trên máy tính chạy trên những kiến trúc khác nhau và những hệ điều hành khác
nhau. Chẳng hạn ta có thể lập trình và compile chương trình trên Linux x86, đế
chạy được trên Solaris Ultra Sparc.
Trên Linux các công cụ hỗ trợ cho việc cross-compile là miễn phí và dễ dàng
tìm kiếm. Đe phân biệt với các trình dịch sằn có trên máy, các trình biên dịch chco
thường có tiền tố là tên của kiến trúc hệ thông đích, đôi khi còn có cả tên của thư
viện. Ví dụ có các trình biên dịch chéo như sau: Mips-linux-gcc , M86k-linux- uclibc-gcc, Arm-linux-gnueabi-gcc...
Đê có thê cross-compile thì ta phải chỉ rõ trình biên dịch chéo đê hệ điêu
hành có thể gọi đến trong quá trình biên dịch. Ta có 3 cách để chỉ ra trình biên dịch
chéo như sau:
(b) Sử dung lcnh makc
Cách thứ hai để thiết lập giá trị cho các biến ARCH và CROSSCOMPILE
là thông qua lệnh make. Các giá trị của 2 biến này được gán thông qua lệnh
make sẽ
ghi đè lên các giá trị đã được thiết lập trước trong Makeĩile. Ví dụ
Make ARCH=sh CROSS_COMPILE=sh-linux- xcontig
Make ARCH=sh CROSS_COMPILE=sh-linux
Make ARCH=sh CROSS_COMPILE=sh-linux modules_install
Điều chú ý khi dùng cách này là ta luôn phải nhớ thiết lập giá trị cho
các biến
ARCH và CROSS COMPILE mỗi khi đánh lệnh make. (c) Thiết lâp biến môi trường
Cách thứ 3 đê chỉ ra trình biên dịch chéo là thiêt lập ARCH và CROSS_COMPILE như là biến môi trường trên terminal:
export ARCH=arm
Bình thường khi ta biên dịch để chương trình có thể chạy trên PC ta làm như
sau:
$ gcc hello.c —o hello
Muốn biên dịch chéo để có thể tạo ra fíle để chạy được trên Armadillo-
3.3.3 Nạp các ứng dụng xuống Armadillo-300
Như đã thực hiện ở trên, sau khi cross-compile ta thu được file chạy helloworld có thể chạy được trên board Armadillo-300 và cách đưa các ứng dụng
này xuống board như sau:
Ta copy các file chạy này vào thư mục
Atmark-dist-20081018/romfs/bin/
Cấu trúc thư mục romfs là ánh xạ tương ứng với cấu trúc thư mục của Armadillo-300 do đó sau khi copy xong ta chỉ việc dùng lệnh (make image)
để tạo
lại các file image mới có chứa các ứng dụng mới nạp vào. Các fíle image này
4. Triển khai thưc hiên.
• •
4.1Tiến trình nghiên cứu triển khai
Quá trình nghiên cứu và triên khai hệ thống được thực hiện qua các bước cơ bản Nguyễn Thành Nam ĐT4-K49
- Nghiên cứu về hệ nhúng, mạng Ad-hoc.
- Nghiên cứu triển khai ứng dụng và driver trên hệ nhúng ( webcam, wifì,
Nghiên cứu về hệ nhúng và mạng Ad-hoc và mạng Ad-hoc I f > Webcam Driver < 1 > Thiết lập, cấuhình mạng Ad-hoc V_______ ) I "
- Nghiên cứu tổng quan về hệ nhúng
- Nghiên cứu cấu trúc hệ nhúng
- Nghiên cứu về mạng Ad-hoc (mạng, giao thức, định tuyến..)
-Triển khai webcam driver trên hệ nhúng -Thiết lập, cấu hình mạng Ad-hoc cho hệ nhúng
-Triển khai OLSRD trên bo nhúng
7~ \ I Thiết kế web ĩ 3 giao tiếp rs232 để điều chỉnh resolution Tích hợp hệ thống ^Tếtthú^ 3
-Triển khai video streaming trên hệ nhúng
- Cài đặt webserver trên hệ nhúng -Tìm hiều giao tiếp RS232
- Xây dựng chương trình giao tiếp bằng RS232 điều chỉnh resolution
- Ghép các module chạy mạng Ad-hoc
- Xâỵ dựng mạng Ad-hoc truyền video với
giao diện web và
truyền thông RS232 điều chỉnh resolution
Hình 12 Tiến trình xây dựng video streaming trên hệ nhúng
4.2Cấu hình mạng Ad-hoc cho hệ nhúng
Đê có thê triên khai các ứng dụng trên mạng Ad-hoc thì trước hêt ta phải
thiết lập cấu hình mạng như sau
• wlanconfìg atho destroy
• wlanconfìg atho create wlandev wifìO wlanmode adhoc
• iwconfig athO essid <tên mạng>
• iwconfíg atho enc <mã hóa>
• ifconfig atho x.x.x.x <IP address>
4.3Triển khai phần mềm định tuyến trên hệ nhúng 4.3.1 Giói thiệu về OLSRD
Optimized Link State Routing Protocol (OLSR) là giao thức định tuyến được
phát triển cho mạng Mobile Adhoc Network (MANET). OLSR hoạt động như một
định tuyến hop-by-hop ( mồi node sử dụng thông tin nội bộ của mình đê định tuyến
cho gói tin ).
OLSR được phát triên đê hoạt động độc lập từ các giao thức khác. OLSR
không hề đưa ra một giả định nào về lóp dưới link-layer.
Giao thức định tuyến này thừa kế sự ổn định của thuật toán link-state
và có
thuận lợi khi luôn có tuyến sẵn có khi cần.
4.3.2 Triển khai OLSRD trên hệ nhúng
Sử dụng giao thức định tuyến giúp cho board nhúng có thể truyền
vidco tới
các nút mạng khác thông qua các nút trung gian trên mạng Ad-hoc
a) Cross-compile OLSRD
- Download gói phần mềm olsrd-0.5.6-r2.tar.bz2 - Giải nén bàng lệnh:
$ tar xvjf olsrd-0.5.6- r2.tar.bz2
b) Nạp olsrd xuống board nhúng
Đối với gói OLSRD ta phải bô xung các thư viện hỗ trợ lập trình tuyến và
fíle cấu hình trước khi tạo lại file image (make image) như sau:
cp / usr/arm-linux/lib/libpthread-0.10.so Atmark-dist- 20081018/romfs/lib
ln-s ./libpthreadO.lO.so ./libpthread.so.O
4.4.1 Tiến trình thực hiện
- Test thử với phần mềm capture vvebcam
Hình 14 Tiến trình triển khai Webcam driver 4.4.2 Giói thiệu gói phần mềm GSPCA
GSPCA là gói phần mềm chạy trên nền Linux cho phép triển khai
driver cho
một số lượng lớn webcam. Ngoài ra tùy tùng loại webcam sẽ có driver riêng tương
ứng.
Do đó việc triển khai GSPCA sẽ giúp bo nhúng có thế chạy tốt các ứng dụng
video với nhiều loại webcam khác nhau
4.4.3 Triển khai GSPCA
- Thực hiện biên dịch chéo (cross-compile)
# make CC=arm-linux-gcc LD=arm-linux-ld
- Sau khi biên dịch chéo thành công ta có kết quả là kernel module gspcav.ko. Đây là driver cho webcam trên bo nhúng.
- Tiếp sau đó ta thực hiện các lệnh sau để chuẩn bị cho việc tạo ra fíle ảnh
(image) cho bo nhúng
make install
/sbin/depmod -ae
cd /lib/modules
Hình 15 Thư mục /dev trên bo nhúng
Giáo viên hướng dẫn: T.s Phạm Văn Tiến Telnet 192.168.7.213
PHl
RẼTĨRegisteredprotocolfamily 1 |NET:Registeredprotocolfamily 10
TDisabled Privacy Extensions on deuỉce C0342978<lo> IPw6 oụẹr IPu4 tunneling driver
ip6_tables: <c> 2000-2002 Netíilter
core tean
|NÊT:Registeredprotocolfamily 17 |NET:Registeredprotocolfanily 15 iBrỉdge fireMailing registered
ISCTPT Hash tables coníigured <established 2048 bỉnd 4096> Ễ
Ễspca: Unknown synbol ựideo_unregister_deoicespca: Unknoun synbol uideo_deuice_alloc gspca: Unknown synbol ưideo_i*egister_dewice gspca: Unknoun synbol uỉdeo_usercopy
gspca: Unknoun sỹnbol oỉdeo_deyỉceLrelease
Linux ụideo capture interface: ụl.00 usbcore: regietsrsd new driver gspca
/hone/nan/gspcaụl-20071220/gspcă_core.c: gspca driuer
01.00.20-rc3 registered
u.sb 1—1: nêu full speed USB dêuice usỉng ns9750-obcỉ and
address 2
/bone/nan/gspcawl-20071220/gspca_core.c: USB GSPCA canera
Hình 16 Driver nhận ra vvebcam khi cắm vào bo nhúng 4.5 Triến khai phần mềm truyền video
4.5.1 Giói thiệu về các phần mềm truyền video
Hiện tại có rất nhiều các phần mềm mã nguồn mở chạy trên Linux cho phép
truyền video (streaming video) tuy nhiên với tài nguyên hạn hẹp của hệ nhúng thì
việc lựa chọn phần mềm vừa phù hợp với nhu cầu vừa đảm bảo có thể chạy thành
công cũng là một thử thách.
Qua quá trình tìm hiêu, mjpeg-streamer là một phân mêm nhỏ gọn có thê
Giáo viên hướng dẫn: T.s Phạm Văn Tiến
Make CC=arm-linux-gcc LD=arm-linux-ld
- Sau khi biên dịch thành công ta thu kết quả như sau
o Các thư viện động: input_gspcavl .so input_testpicture.so
input uvc.so output_autofocus.so output_file.so output_http.so
o File thực thi mjpg_streamer
- Sau đó ta copy các thư viện động vào thư mục romfs/lỉb; file thực thi và thư
Cách hàn dây cáp cồng COM cho bo nhúng được mô tả như trong hình vẽ
Hình 17 Sơ đồ chân cổng COM1 trên bo nhúng
Giáo viên hướng dẫn: T.s Phạm Văn Tiến
ã 5-6 C0N6í|§ra
Hình 18 Sơ đồ chân cống COM2 trên bo nhúng
I D^ub9pin DinlOpin conversion) Conversion-pin connector connection Hình 19 Sơ đồ nối chân cống COM
4.6.2 Lập trình nối tiếp trên Linux
a. Cơ sở giao tiếp nối tiếp
Máy tính truyền dừ liệu một hay nhiều bit cùng một lúc và giao tiếp nối tiếp
ám chi tới việc truyền dừ liệu một bit. Các giao tiếp nối tiếp bao gồm các thiết bị
mạng, bàn phím, chuột, MODEM, ...
Tốc độ của dữ liệu nối tiếp thường được thể hiện thông qua bit trên giây
(“bps”) hay còn gọi là baudot rate (“baud”). Tham số này thể hiện số lượng số
0 và
1 có thê được gửi đi trong một giây. Vào thời kỳ đầu của kỷ nguyên máy tính, baud
rate 300 được coi là nhanh nhưng máy tình ngày nay có thể có tốc độ baud
rate lên
tới 430,800. Khi baud rate vượt quá 1000 người ta dùng đơn vị kilo baud, với baud
rate vượt quá 1000,000 thì có đơn vị là mega baud.
b. RS232
RS-232 là giao diện chuẩn cho các giao tiếp nối tiếp được định nghĩa bởi
- GND
về mặt kỳ thuật, chân đất không phải là một tín hiệu nhung nếu thiếu nó thì
các mức tín hiệu khác sẽ không hoạt động, về cơ bản, chân đất đóng vai trò
là một mức điện áp tham chiếu mà qua đó các thành phần điện tử biết
đâu là
mức điện áp dưong đâu là mức điện áp âm.
- TXD Dữ liệu truyền
Chân này dung để truyền dữ liệu
- TXD Dữ liệu nhận
Chân này dùng để nhận dữ liệu
- DCD - Data Carrier Detect
Tín hiệu DCD dùng đề xác định xem liệu có thiết bị nối vào máy tính qua
cổng nối tiếp hay không
- Các íĩle cống nối tiếp
Mỗi cổng nối tiếp trong hệ điều hành UNIX, hay Linux có một hay
nhiều các
file tương ứng với chúng
Ví dụ: cổng COM1 là /dev/ttySO
cổng COM2 là /dev/ttySl
- Truv nhập cổng COM
Cổng COM được gắn kết với file, hàm open() được dùng để truy nhập nó.
Giả thiết tất cả người dùng đều có quyền truy nhập vào fíle thiết bị thì lập
trình để truy nhập cổng COM1 trên UNIX, Linux như sau;
#include <stdio.h>
#include <string.h>
#include <unistd.h> Nguyễn Thành Nam ĐT4-K49
*/
perror("open_port: Unable to open /dev/ttySO - ");
} else
fcntl(fd, F_SETFL, 0);
retum (fd); }
- Ghi dữ liệu qua cổng COM
Ghi dữ liệu qua cồng COM bàng cách sư dụng hàm hệ thống write() đế ghi
n = write(fd, "ATZ\r", 4);
if (n < 0)
fputs("ghi 4 bytes lỗi !\n", stderr);
Hàm write() trả về số byte ghi thành công và trả về -1 nếu có lỗi xảy ra. - Đóng cổng COM
Đe đóng cổng COM ta dùng hàm
close(fd);
Đóng cổng COM cũng đồng thời thiết lập tín hiệu DTR về 0
e. Cấu hình cho cổng COM
- Giao diện nối tiếp
Hình 20 Bảng các cờ điều khiến
cống COM
Điều
này đảm bảo chương trình sẽ không chiếm quyền sử dụng cồng nối tiếp và
driver cho cổng nối tiếp có thể đọc được dừ liệu đầu vào.
Các tùy chọn B9600, BI 15200, ...được dùng cho các phiên bản cù khi thiếu
các tham số tùy chọn c_ispeed và c_ospeed đế thiết lập tốc độ bit. - Thiết lập kích thước kí tự
Không giống như tốc độ bit, không có hàm trưc tiếp thiết lập kích thước
kí tự
mà thay vào đó ta phải thực hiện như sau:
options.c_cflag &= ~CSIZE; /* tắt các bit kích thước kí tự */
options.c_cflag 1= CS8; /* chọn 8 bit dữ liệu */
- Thiết lập chế độ đọc truyền thống
options.c lílag &= -(ICANON I ECHO I ECHOE IISIG);
4.6.3 Phát triển chương trình điều khiến độ phần giải video qua cổng COM
Chưong trình truyền vidco trên bo nhúng phải chạy từ dòng lệnh do đó bất
tiện trong việc sử dụng. Việc phát triển một tiện ích qua cổng COM sẽ giúp người
dùng có thể dễ dàng thao tác với giao diện thân thiện để điều chỉnh một sổ
Bị tắt bời tiến trình cha
Hình 22 Lưu đồ thuật toán thav đổi độ phân giải
4.7Các module chính
Tìm hiều về hệ nhúng, các board , các kiến trúc. Việc xây dựng mạng ad-hoc
dựa trên hệ nhúng. Việc triên khai là rất khả thi vì hệ nhúng tiết kiệm năng lượng.
Phù hợp với việc xây dựng mạng ớ những khu vực địa hình hiêm trở. Đặc biệt mạng
Ad-hoc không cần cơ sở hạ tầng.
4.7.2 Module triến khai video streaming trên server.
Hệ thống mạng Ad-hoc phù hợp để truyền video thời gian thực, ứng
dụng hệ
thống vào việc quan sát hiện trường. Video từ hiện trường được đưa lên server.
Module kết nối mạng
nhúng.
Quan sát hiện trường thông qua trình duyệt
We Người dùng
Web Brovvser
Hình 23 Giao diện người máy web browser
Xây dựng chương trình thay đổi độ phân giải “Resolution changing” cho
phép người ở hiện trường có thể thay đổi độ phân giải (resolution) của video
Hình 24 Giao diện nguửi máy thav đối độ phân giải 4.9Tích họp hệ thống
- Ket nối webcam vào Armadillo 300 đã cài driver hỗ trợ.
- Triên khai chương trình video streaming.
- Triên khai webserver trên Armadillo 300, Triên khai Webpage.
__ r
5. Kêt quả đạt được
Các máy Client trên mạng Ad-hoc đã theo dõi được hiện trường qua trang web được
truy cập vào địa chỉ của server.
Tín hiệu thu được tưong đối rõ nét. Khi khoảng cách quá xa hoặc chất lượng đường
Hình 25 Webcam Lab Tech
Hình 26 Giao tiếp RS232 giữa máy tính với bo nhúng
Giáo viên hướng dẫn: T.s Phạm Văn Tiến
5.2 Phần mềm
- Giao diện web quan sát hiện trường:
(ị Su dung he nhung noi mang Ad-hoc cho C3C ung dung video hĩen truong - MozílU Rreíox □ I i’ T-Ị
Hình 27 Giao diện web giói thiệu
^ Sudung he nhung noi mang Ad-hoc tho cac ung dung video hien
tiuong • Mciilla Fiiefox § 8
File Ẹdit View Histoty