Đồ án "Nghiên cứu hệ thống nhúng và xây dựng ứng dụng giao tiếp Webcam" doc - Pdf 16

1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ VIỄN THÔNG

ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI:
NGHIÊN CỨU HỆ THỐNG
NHÚNG VÀ XÂY DỰNG ỨNG
DỤNG GIAO TIẾP WEBCAM
GVHH: THẦY TRƯƠNG NGỌC SƠN
SVTH: ĐÀO THANH MAI MSSV: 06119058
TRƯƠNG XUÂN KIM MSSV: 06119023
Tp. Hồ Chí Minh - Tháng 7/2010
2
Mục LỤc
3
TÓM TẮT NỘI DUNG ĐỀ TÀI VÀ BÁO CÁO
TÓM TẮT NỘI DUNG ĐỀ TÀI
 Đồ án tốt nghiệp “nghiên cứu hệ thống nhúng và xây dựng ứng
dụng giao tiếp webcam” là đề tài nghiên cứu về một lĩnh vực mới
của Việt Nam. Đó là lập trình nhúng
Qua thực tế và khoa học ngày càng phát triển thì nhóm đề tài tốt
nghiệp đả quyết định chọn đề tài hướng về lập trình nhúng này để
tìm hiểu về các kiến thức nền, kiến thức cơ bản về lập trình nhúng,
hệ thống nhúng, vi điều khiển nhúng và hệ điều hành mã nguồn
mở là linux.
Nội dung đề tài có hai phần:
 Phần I là nghiên cứu về lý thuyết
phần lý thuyết có những nội dung sau :

- Giao tiếp với các thiết bị khác như MOUSE, nút nhấn ,
led đơn.
Đó là những nội dung cơ bản mà nhóm làm đồ án tốt
nghiệp đả hoàn thành . mặt dù còn hạn chế về kiến thức
và khả năng nhiên cứu nhưng nhóm đả cố gắn hoàn
thành và xây dựng nhiều ứng dụng mô phỏng để có thể
hiểu sâu về lập trình nhúng và vi điều khiển nhúng.
TÓM TẮT NỘI DUNG BÁO CÁO
 Lý thuyết về các vấn đề nghiên cứu trong đồ án
 Mô phỏng chạy tập tin mp3
 Mô phỏng chạy ứng dụng giao tiếp webcam
5
 PHỤ LỤC XÂY DỰNG CÁC HƯỚNG DẪN THỰC HIỆN
TRÊN BOARD PHÁT TRIỂN HỆ THỐNG NHÚNG
1 .BOOT LOADER CHO KM9260
Boot loader có vai trò quan trọng trong hệ thống nhúng. Tùy theo loại MPU khác nhau
mà ta có cơ chế, trình tự boot khách nhau. Đối với AT91SAM9260, Khi cấp nguồn,
AT9260 chạy chương trình boot bên trong ROM (được xây dựng sẵn trong quá trình sản
xuất chíp). Hình sau thể hiện lưu đồ ROM boot của AT91SAM9260:
6
Hình: Trình tự boot của MPU AT91SAM9260.
B1> Chương trình chạy với bộ dao động nội, hoặc với bộ dao động thạch anh.
B2> Kiểm tra sự tồn tại của chương trình AT91BootStrap trong SPI serial dataflash
device (NPCS0) hay không, nếu tồn tại, MPU thực hiện chép mã thực thi của
AT91BootStrap từ SPI serial dataflash device vào SRAM nội của MPU, sau đó thực thi
lệnh nhảy đến địa chỉ đầu tiên của SRAM để thực thi chương trình AT91BootStrap. Nếu
không tồn tại chương trình boostrap trong SPI serial dataflash device, MPU thực hiện
bước B3 sau đây.
B3> Kiểm tra sự tồn tại của chương trình AT91BootStrap trong SPI serial dataflash
device (NPCS1) hay không, nếu tồn tại, MPU thực hiện chép mã thực thi của

(3) U-Boot load kernel uImage từ nhiều nguồn khác nhau (TFTP, NAND FLASH )
chép vào địa chỉ 0x20000000 trên SDRAM, sau đó thực hiện lệnh boot hệ điều hành
Linux.
8
2. CÀI ĐặT CHO BOARD PHÁT TRIỂN NHÚNG
1. Tổ chức phần mềm trong hệ thống nhúng KM9260
2. Cài đặt chương trình cho hệ thống
2.1. Cài đặt BootStrap và U- boot .
- BootStrap là một chương trình khởi động được nạp xuống trước tiên cho các
vi điều khiển dòng ARM 9 của Atmel.
- BootStrap là một module ứng dụng, nó được sử dụng để thực hiện các chức
năng sau:
o Khởi tạo phần cứng như tần số xung clock, thiết lập các PIO
(programmable Input Output).
o Thiết lập các ngoại vi như PIO, PCM, SDRAMC,
o Thực hiện các thực toán truy xuất vật lý các ngoại vi như DataFlash,
NANDFlash, Paralell Flash
o Điều khiển các tập tin hệ thống như JFFS2, FAT
o Thực thi các ứng dụng như ELF, Linux,
- BootStrap có thể được đặt trong vùng bootLoader, cụ thể là được đặt trong
vùng DataFlash. BootStrap được chép lên RAM nội bởi trình SAM-BA Boot.
BootLoader thực hiện khởi tạo vi xử lý (PLL, PIO, SDRAMC, SPI).
- BootStrap thực hiện load U-boot từ DataFlash lên SRAM và trỏ đến thực hiện
chương trình U-Boot.
- Cài đặt BootStrap và u-boot thực hiện theo hướng dẫn trong tài liệu kèm theo
board.
- U-boot (universal bootLoader) là một tập mã nguồn mở, hổ trợ bootLoader
cho nhiều kiến trúc nền khác nhau. U-boot hổ trợ các lệnh tương tác, các biến
môi trường, các lệnh thực thi và boot hệ thống từ các thiệt bị media bên ngoài.
BootStrap

command cho phép người sử dụng có thể giao tiếp với hệ thống thông qua các
lệnh u-boot hổ trợ.
- Trước hết cần thiết lập các thông số môi trường cho hệ thống
- Để thiết lập các thông số môi trường chúng ta sử dụng command setenv như
sau
o Thiết lập địa chỉ IP cho board: setenv ipaddr <địa chỉ IP cho board>
o Thiết lập địa chỉ IP cho host : setenv serverip <địa chỉ host>
o Thiết lập địa chỉ ethernet(MAC): setenv ethaddr <MAC address>
10
o Thiết lập mặt nạ : setenv netmask <submask net>
o Lưu lại các biến môi trường vào dataflash : save
- Chuẩn bị kernel cho hệ thống
- Tại command line của uboot:
o Xóa vùng nhớ NAND FLASH để chuẩn bị cho kernel:
 nand erase offset length
 nand erase 0x0 0x200000
 lệnh trên cho phép xóa 2 Mbyte bộ nhớ Nand Flash ở địa chỉ
offset là 0. (vùng nhớ đầu tiên của NandFlash)
o Chép uImage từ máy tính vào SRAM ở địa chỉ 0x20000000
 Tftp 0x20000000 uImage
 Để có thể chép thông qua giao thức tftp thì trên máy tính host
phải cài đặt và chạy dịch vụ tftp, file uImage được lưu trong
thưc mục của tftp server.
 U-boot sẽ dò trong biến môi trường xem địa chỉ của server là
bao nhiêu và nó sẽ lên sever này tìm file có tên uImage và chép
vào bộ nhớ SRAM từ địa chỉ 0x20000000.
o Thực thi kernel
 Bootm 0x20000000
 Hệ thống sẽ chuyển đến địa chỉ SRAM 0x20000000 để boot
Umage

dịch vụ truyền file của SSH server – client, hoặc có thể chép bằng các thiết bị
lưu trữ như USB
- Biên dịch uboot cho arm không sử dụng trình biên dịch gcc có sẵn trên máy
tính cài linux. Trước hết bạn cần cài gói phần mềm biên dịch arm-linux-gcc.
- Gói phần mềm biên dịch bạn có thể tải về từ trên mạng.
- Trước khi biên dịch, cần thiết lập biến môi trường về đường dẫn cho trình
biên dịch, ví dụ như sau
- PATH=/usr/local/arm/3.4/bin:$PATH
- Trong đó thư mục PATH=/usr/local/arm/3.4/bin chứa các trình biên dịch như
arm-linux-gcc….
- Biên dịch uboot cho hệ thống
o Make clean : xóa hết các cấu hình biên dịch trước đo
o Make at91sam9260ek_config : khai báo biên dịch uboot cho hệ thống
board at91sam9260ek
o Make all
- Nếu quá trình biên dịch thành công trong thư mục u-boot-1.3.4 sẽ tồn tại file
u-boot.bin
- Một điều chú ý là ở đây chúng ta sử dụng make at91sam9260ek_config vì
board KM9260 co thiết kế gần giống board chuẩn at91sam9260ek, nhưng do
các file cấu hình cho board KM9260 chưa update lên nên tạm thời có thể sử
dụng at91sam9260 để biên dịch cho hệ thống. Chính vè điều đó mà khi tạo ra
uboot.bin sẽ có một số module không hoạt động được.
- Để khắc phục trường hợp trên trước khi biên dịch chúng ta cần sửa một số cấu
hình trong tập mã nguồn uboot1.3.4.
- Biên dịch lại uboot.
3. PHÁT TRIỂN LINUX TRÊN KM9260
G

IỚ


Sau khi điền thông tin, ấn nút "Save" và thực hiện kết nối.
14
Hình : Thao tác file trên WinSCP.
Ta có thể drop, drap file vào-ra từ màn hình destop WinXP để thực hiện sao lưu file với
máy Linux.
Cross Toolchians (Linux):
Là trình biên dịch cho AT91SAM, chạy trên môi trường Linux. Phần sau hướng dẫn cách
cài đặt toolchains trên máy host Linux PC:
Trước tiên ta tạo thư mục làm việc như sau:
$ mkdir -p /home/km9260-project/tool
Chép file arm-2007q3.tar.bz2 vào thư mục vừa tạo ở trên và thực hiện giải nén gói tarball
của toolchains:
$ cd /home/km9260-project/tool
$ tar –jcvf arm-2007q3.tar.bz2
15
Để có thể sử dụng toolchains, ta khai báo biến môi trường như lệnh sau:
$
export PATH=$PATH:/home/km9260-project/tool/arm-2007q3/bin
Để ý rằng trong thư mục “arm-2007q3/bin” chứa những file cần thiết phục vụ cho việc
biên dịch cho KM9260, có thể xem tên các file này bằng cách dùng lệnh “ls”. Các file
này được đặt tên theo quy luật. Prefix bao gồm chuỗi ký tự “arm-none-linux-gnueabi-“
Và các suffix bao gồm: gcc, ld, as …
Ta có thể kiểm tra việc export biến môi trường PATH thành công hay không bằng cách
type lệnh shell như sau:
$ arm-none-linux-gnueabi-gcc
$ arm-none-linux-gnueabi-gcc: no input files
Nếu có xuất hiện thông báo “no input files” thì thao tác export trên thành công, nếu có
thông báo “command not found” có nghĩa là ta chưa export đúng đường dẫn. Chú ý rằng
bước export PATH rất quan trọng, mỗi lần khởi động máy Linux hoặc sử dụng console
khác ta bắt buộc phải export lại để đảm bảo toochains có thể hoạt động được.

với Workstation hoặc KM9260 thông qua giao thức của SSH server.
Workstation (host) :
Là máy tính Linux, có nhiệm vụ biên dịch source code từ các Developer bằng cách sử
dụng cross-compiler (toolchains). Do host có chạy SSH server, các Developer có thể sử
dụng console của host thông qua SSH client. Ngoài ra TFTP server có vai trò lưu trữ các
file ảnh sau khi đã biên dịch xong, sẵn sang cho việc boot, chạy chương trình ứng dụng
trên target.
Target
Là đích mà chúng ta cần phát triển đến. TFTP client trên target có nhiệm vụ
download các file ảnh từ TFTP server (ở host) và boot kernel thông qua bootloader (U-
Boot, RedBoot…). Console chính của target được nối với máy host (hoặc là Developer)
thông qua đường UART.
CÀI ĐẶT DEBIAN CHO KM9260:
Đối với user mới làm quen với embedded Linux, thì Debian rootfs là lựa chọn hoàn hảo,
do tính ưu việt về số lượng lớn gói phần mềm mà Debian support, cơ chế quản lý các gói
phần mềm chặt chẽ và hệ thống, cộng đồng phát triển rộng. Debian rootfs có dung lượng
khá lớn, vì thế ta nên dùng thẻ nhớ có dung lượng 2GB trở lên. Phần này chỉ cách cài đặt
và boot Debian trên KM9260 sử dụng thẻ nhớ microSD.
Trước tiên ta chép “Debian_km9260_rootfs_121209.tar.bz2” vào máy PC Linux, gắn đầu
đọc thẻ microSD vào. Giả sử khi cắm vào máy PC Linux có thiết bị mới có tên gọi là
/dev/sdb1, trước tiên ta format card microSD theo định dạng ext2, và mount vào thư mục
“mnt/rootfs” chẳng hạn.
$ mkfs.ext2 /dev/sdb1
$ mkdir –p /mnt/rootfs
$ mount /dev/sdb1 /mnt/rootfs
Copy gói tarball Debian rootfs vào thư mục mnt và tiến hành giải nén.
$ cp Debian_km9260_rootfs_121209.tar.bz2 /mnt
$ cd /mnt/rootfs
$ tar –jxvf /
Debian_km9260_rootfs_121209.tar.bz2

pre-up ifconfig eth0 hw ether AA:AA:AA:AA:AA:AA
Trong đó AA:AA:AA:AA:AA:AA là địa chỉ MAC address.
Hoặc dùng IP tĩ

nh:
# Use for home network
auto eth0
iface eth0 inet static address
192.168.1.35 netmask
255.255.255.0 network
192.168.1.1 broadcast
192.168.1.255 gateway
192.168.1.1
Khai báo nameserver:
$ nano /etc/resolv.conf
nameserver 192.168.1.1
Lưu file bằng cách ấn CTR-O, Enter, CTR-X




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status