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
TÓM TẮT NỘI DUNG ĐỀ TÀI VÀ BÁO CÁO
I. 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 :
- Nghiên cứu về thống nhúng bao gồm nghiên cứu những
đặt trưng, đặt điểm kiến truc phần mềm hệ thống nhúng,
- Nghiên cứu về hệ điều hành thời gian thực , phân tích
quy trình xử lý của hệ điều hành
-
Phân tích một hệ thống nhúng chạy hệ điều hành thời
gian thực
- Giới thiệu kiến thức cơ bản về hệ điều hành linux
- Nghiên cứu về vi điều khiển arm là vi điều khiển ứng
dụng nhiều nhất trong hệ thống nhúng.
- Nghiên cứu các tính năng , cấu trúc, kiến trúc và ưu
nhược điểm của vi điều khiển arm so với các dóng vi
điều khiển khác
- Và nhóm tiến hành nghiên cứu và biên dịch lại nhân linux
để chạy trên board phát triển hệ thống nhúng, chạy vi
điều khiển arm AT91SAM9260.
3
Phần 2 là phần xây dựng các ứng dụng
chạy trên board phát triển hệ thống
nhúng
- Trươc tiên là nghiên cứu cài đặt cho board phát triển hệ
thống nhúng KM9260. Từ việc nghiên cứu quá trình hoặt
động chạy hệ điều hành nhúng mà nhóm tiến hành cài đặt
hệ điều hành cho board.
- Sau đó phát triển các ứng dụng mô phỏng về giao tiếp ,
lập trình C/C++ . lập trình I/O , lập trình driver
- Ứng dụng nhóm đồ án làm gồm có xây dựng board phát
triển nhúng chạy tập tin multimedia
- Trong đó gồm chạy file audio phát nhạc
- Giao tiếp với Webcam USB truyền và nhận ảnh để ứng
dụng vào xử lý ảnh
- 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.
II.
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
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
44
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:
5
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
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
B4 sau đây.
B4> Kiểm tra sự tồn tại của chương trình AT91BootStrap trong NAND FLASH device
hay không, nếu tồn tại, MPU thực hiện chép mã thực thi của AT91BootStrap từ NAND
FLASH 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 B5 sau đây.
B5> Nếu MPU nhận được ký tự bất kỳ từ bàn phím máy tính (qua cổng DBGU). Hoặc
khi cắm cable USB vào máy tính chương trình sẽ nhảy sang SAM-BA boot.
Từ lưu đồ trên, ta có thể lưu trữ AT91BootStrap.bin theo 3 cách: SPI serial dataflash
(NPCS0 or NPCS2) hoặc lưu trữ trên NAND Flash. KM9260 sử dụng SPI serial dataflash
(NPCS1) và NAND FLASH.
6
TRÌNH TỰ BOOT LINUX CỦ A KM9260:
Quá trình boot kernel Linux trên KM9260 được thực thi qua 3 tầng, hình sau biểu thị
cách hoạt động của board:
Hình : Trình tự boot kernel của KM9260.
(1) KM9260 thực thi ROM boot, load AT91AT91BootStrap.bin từ AT45DB041D-SU
(SPI NPCS1) vào SRAM, thực hiện lệnh nhảy và thự thi chương trình AT91BootStrap.
(2) KM9260 thực hiện khởi động PLL cho system clock, khởi động SDRAM controller,
load u-boot.bin từ AT45DB041D-SU tại offset 0x8400 vào địa chỉ 0x21F00000 của
SDRAM. Sau đó thực hiện lệnh nhảy vào vùng SDRAM để chạy chương trình U-Boot.
(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.
7
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. U-
BootStrap
U-boot
Kernel
File System