ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: DƢƠNG VIỆT ANH Số hiệu sinh viên: 20070063
NGUYỄN VĂN KHÁNH 20071548
NGUYỄN MẠNH HÙNG 20071408
Khoá: 52 Viện: Điện tử - Viễn thông Ngành : Điện tử - Viễn thông
1. Đầu đề đồ án:
Thiết kế hệ thống hiển thị video trên bảng LED đa sắc – hỗ trợ Flash USB, thẻ nhớ SD và
giao tiếp Ethernet
2. Các số liệu và dữ liệu ban đầu:
…………………………………… …………………………………………… …… ……………
………………………………………………………………………………………………………
……………………….… ……………………… …………………………………………………
3. Nội dung các phần thuyết minh và tính toán:
………………………………………………………………………………………………………
……… ….……………………………………………………………………………………………
……………………………………… ….……………………………………………………………
………………………………………………………………………… ….…………………………
…………………………………………………………………
4. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
………………………………………………………………………………………………………
……………… ….……………………………………………………………………………………
…………………………………… ……….…………………………………………………………
5. Họ tên giảng viên hướng dẫn: TS. PHẠM NGỌC NAM
TS. PHẠM DOÃN TĨNH
6. Ngày giao nhiệm vụ đồ án:
7. Ngày hoàn thành đồ án:
Ngày tháng năm
Chủ nhiệm Bộ môn
Giảng viên hướng dẫn
Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm
Cán bộ phản biện
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Số hiệu sinh viên:
Ngành: Khoá:
Giảng viên hướng dẫn:
Cán bộ phản biện:
1. Nội dung thiết kế tốt nghiệp:
2. Nhận xét của cán bộ phản biện:
Ngày tháng năm
Cán bộ phản biện
( Ký, ghi rõ họ và tên )
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
3
Lời nói đầu
Trong thời đại ngày nay, lĩnh vực công nghệ thông tin - truyền thông đang ngày
càng nóng bỏng với tốc độ phát triển đến chóng mặt, do đó nhu cầu quảng bá tin
tức, hình ảnh trở nên cần thiết hơn bao giờ hết. Tại những trung tâm kinh tế lớn trên
thế giới, chiến dịch quảng cáo được tiến hành rầm rộ trên màn hình cỡ siêu lớn tại
các quảng trường, khu phố đông người qua lại tạo ra những diện mạo mới cho khu
phố, sang trọng hơn và đẹp mắt hơn nhất là khi về đêm. Các màn hình quảng cáo
này giải quyết tốt vấn đề bộ mặt đô thị thay vì những áp phích lớn treo lộn xộn
ngoài đường và có khả năng hiển thị bất kì thông tin gì một cách nhanh chóng.
Nhận thấy vai trò to lớn của FPGA trong lĩnh vực nghiên cứu, thiết kế các vi
mạch điều khiển có khả năng cấu hình cao, nhóm tác giả đã tìm hiểu công nghệ này
và ứng dụng vào việc xây dựng hệ thống điều khiển bảng LED đa sắc, cho phép
hiển thị nội dung của video, được lấy từ nhiều nguồn khác nhau.
Sau một thời gian làm việc tích cực trên “Phòng thiết kế hệ nhúng và tính toán
có thể cấu hình lại” (Embedded System and Reconfigurable Computing Lab), dưới
sự hướng dẫn tận tình của thầy giáo TS. Phạm Ngọc Nam, TS. Phạm Doãn Tĩnh, sự
hỗ trợ từ kỹ sư Phạm Văn Hà và kỹ sư Nguyễn Ngọc Dũng, nhóm đã hoàn thành đồ
án với đề tài “Thiết kế hệ thống hiển thị video trên bảng LED đa sắc hỗ trợ
Flash USB, thẻ nhớ SD và giao tiếp Ethernet”.
Trong quá trình thực hiện đồ án, nhóm đã gặt hái được một số kết quả nhất
định. Mặc dù vậy, do thời gian có hạn nên một số ý tưởng vẫn chưa được thực hiện
và hệ thống không tránh khỏi một vài sai sót. Vì vậy, chúng em rất mong nhận được
ý kiến đóng góp của các thầy cô giáo và bạn bè để hệ thống có thể tiến sát hơn với
ứng dụng thực tiễn.
Nhóm tác giả xin được gửi lời cảm ơn chân thành và sâu sắc nhất tới:
Thầy giáo TS. Phạm Ngọc Nam
Thầy giáo TS. Phạm Doãn Tĩnh
Kỹ sư Phạm Văn Hà
Kỹ sư Nguyễn Ngọc Dũng
Viện Điện Tử - Viễn Thông, trường ĐH Bách Khoa Hà Nội
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
4
Cùng toàn thể gia đình, bạn bè đã giúp đỡ và tạo mọi điều kiện thuận
lợi cho nhóm trong quá trình nghiên cứu.
Nhóm sinh viên thực hiện: DƢƠNG VIỆT ANH
NGUYỄN MẠNH HÙNG
NGUYỄN VĂN KHÁNH
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
5
Tóm tắt đồ án
“Thiết kế hệ thống hiển thị video trên bảng LED đa sắc hỗ trợ Flash USB,
thẻ nhớ SD và giao tiếp Ethernet”
Thực tế, LED full color không còn là quá mới, nhưng việc thiết lập và điều
khiển một bảng LED khổ rộng còn khá phức tạp và tốn nhiều công sức cũng như
tiền của. Với mong muốn đem kiến thức học được từ nhà trường vào phục vụ đời
sống, nhóm tác giả đã nghiên cứu, thiết kế và triển khai hệ thống hiển thị video trên
ma trận LED full color kích thước lớn, sử dụng bo nhúng có khả năng tái cấu hình
FPGA. Đề tài của nhóm tập trung vào việc giao tiếp với các thiết bị ngoại vi rất phổ
biến hiện nay như USB, thẻ nhớ SD và chuẩn Ethernet. Đồng thời, hệ thống cũng có
thể điều khiển bảng LED với nhiều chế độ hiển thị thích hợp với môi trường
(tăng/giảm độ sáng - tối, màu sắc…). Ngoài ra, nhóm đã nhúng thành công hệ điều
hành uClinux lên vi xử lý Nios II, tạo ra khả năng mở rộng cho đề tài. Từ đó, nhóm
đã xây dựng thành công hệ thống hiển thị video trên ma trận LED full color với
kích thước kiểm thử là 64x64.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
6
Abstract
“ Designing the video displaying system on full color LED matrix, supports
Flash USB, SD card and Ethernet protocol”
In fact, full color LED is no longer new, however, to install and control a wide
LED frame is still complex and taking high cost. With the hope of applying theory
as well as experiment during 5-year studying in HUST to a real life, we have
together researched, designed and deployed the video displaying system on large
size of full color LED matrix screen using re-configurable FPGA board. Our
project focused on communicating with very common peripherals such as Flash
USB, SD card and Ethernet protocol. Moreover, the system is able to control the
LED matrix with different display modes suitable for environment, for instance,
increasing or decreasing dark-light level, colors Additionally, the team
successfully embedded uClinux Operation System on Nios II microprocessor, this
make a capability of development for the project. As the result, we made a success
of building Video Display Control System on full-color LED matrix with tested
frame of 64x64.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
7
Mục lục
Lời nói đầu 3
Tóm tắt đồ án 5
Mục lục 7
Danh mục hình vẽ 10
Danh mục bảng biểu 12
Danh sách từ viết tắt 13
Chƣơng 1. Giới thiệu chung 15
1.1 Mục đích 15
1.2 Mô hình tổng quan hệ thống 16
1.3 Yêu cầu của hệ thống 17
1.3.1 Yêu cầu chức năng 17
1.3.2 Yêu cầu phi chức năng 17
1.4 Sơ đồ khối và chức năng từng khối của hệ thống 18
1.4.1 Sơ đồ khối hệ thống 18
1.4.2 Chức năng từng khối 18
1.5 Tổ chức công việc trong nhóm 19
1.6 Tóm tắt nội dung các chương 20
Chƣơng 2. Giới thiệu công nghệ FPGA và đánh giá các giải pháp khả thi 22
2.1 Giới thiệu chung 22
2.2 Kit DE2 và các công cụ sử dụng 24
2.2.1 Tài nguyên phần cứng 25
2.2.2 Vi xử lý mềm Nios II 26
2.2.3 Các công cụ hỗ trợ 28
2.3 Quy trình thiết kế hệ thống Nios II 31
2.4 Phân tích, đánh giá các giải pháp thiết kế hệ thống 34
Chƣơng 3. Triển khai và ứng dụng hệ điều hành uClinux trên kit DE2 36
3.1 Tổng quan hệ điều hành nhúng uClinux [5] 36
3.1.1 Lịch sử phát triển hệ điều hành nhúng uClinux 37
3.1.2 Kiến trúc hệ điều hành uClinux [5] 38
3.2 Các đặc điểm của hệ điều hành uClinux 39
3.2.1 Ưu điểm và nhược điểm của hệ điều hành uClinux 39
3.2.2 Đơn vị quản lý bộ nhớ MMU 39
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
8
3.2.3 Runtime linker and loader 41
3.2.4 Ethernet 42
3.2.5 Các thư viện được sử dụng để phát triển hệ điều hành uClinux 43
3.2.6 Driver của các ngoại vi 43
3.2.7 Mã nguồn hệ điều hành uClinux 44
3.3 Biên dịch mã nguồn hệ điều hành uClinux 46
3.3.1 Toolchains 46
3.3.2 Tạo file ảnh zImage 47
3.3.3 Quá trình khởi động nhân Linux 48
3.4 Xây dựng hệ thống uClinux 50
3.4.1 Cấu hình tích hợp hệ thống 50
3.4.2 Khái niệm về device driver 54
3.4.3 Thêm một driver đơn giản 55
3.4.4 Tích hợp gói driver điều khiển ngoại vi 57
3.4.5 Xây dựng ứng dụng 60
3.5 Kết luận 61
Chƣơng 4. Giao tiếp với thẻ nhớ SD và Flash USB 62
4.1 Lý thuyết về định dạng FAT [7] 62
4.1.1 Đơn vị dữ liệu 63
4.1.2 Cấu trúc dữ liệu [8] 63
4.1.3 LBA và CHS 65
4.2 Giao tiếp thẻ nhớ SD/MMC 66
4.2.1 Sơ đồ chân 66
4.2.2 Các thanh ghi 67
4.2.3 Các lệnh giao tiếp SD card 67
4.2.4 Một số thủ tục với SD card 69
4.3 Giao tiếp flash USB 71
4.4 Cấu hình sử dụng flash USB và thẻ nhớ SD với uClinux 74
4.4.1 Tích hợp driver USB (ISP1362) [19] 74
4.4.2 Tích hợp SD card (SPI) [20] 76
4.5 Kết luận 77
Chƣơng 5. Truyền video từ PC xuống kit FPGA qua mạng LAN 78
5.1 Lý do lựa chọn giao thức 78
5.2 Lý thuyết cơ sở về giao thức RTP 79
5.2.1 Tổng quan về giao thức 79
5.2.2 Các định dạng của Payload và Profile [10] 80
5.2.3 Cấu trúc tiêu đề gói tin RTP 81
5.3 Cấu trúc cổng Ethernet 83
5.3.1 Sơ lược về hệ thống Ethernet 83
5.3.2 Cấu trúc cổng Ethernet 84
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
9
5.4 Giới thiệu công cụ VLC và Wireshark 86
5.5 Thư viện lập trình socket 87
5.5.1 Giới thiệu chung [11] 87
5.5.2 Socket API 88
5.6 Xây dựng chương trình nhận video trên kit 89
5.6.1 Truyền video giữa hai PC 89
5.6.2 Xây dựng chương trình trên kit 90
5.7 Kết luận 91
Chƣơng 6. Thực hiện khối giải mã JPEG và hiển thị video trên màn hình 92
6.1 Mục đích của khối giải mã JPEG 92
6.2 Cấu trúc ảnh nén JPEG [13] 92
6.2.1 Cấu tạo header 93
6.2.2 Các khâu thực hiện với ảnh mã hóa JPEG 94
6.3 Thực hiện khối giải mã ảnh 98
6.3.1 Tổng quan khối giải mã 99
6.3.2 Sơ đồ khối 101
6.3.3 Kết quả mô phỏng 103
6.4 Kết luận 105
Chƣơng 7. Kết quả nghiên cứu, kết luận và hƣớng phát triển đề tài 106
7.1 Kết quả đạt được 106
7.1.1 Nhúng hệ điều hành uClinux và giao tiếp với USB, thẻ nhớ SD 106
7.1.2 Xây dựng chương trình truyền file xuống kit qua mạng LAN 106
7.1.3 Xây dựng khối giải mã JPEG 106
7.2 Kết luận 106
7.3 Hướng nghiên cứu tiếp theo 107
Tài liệu tham khảo 108
Bảng đối chiếu thuật ngữ Anh - Việt 110
Phụ lục 112
Phụ lục 1: Chương trình đọc file MJPEG từ một phân vùng trong uClinux và
truyền tới khối hiển thị 112
Phụ lục 2: Chương trình đọc file trong thẻ nhớ SD 114
Phụ lục 3: Chương trình convert chuỗi ảnh JPEG thành file MJPEG 117
Phụ lục 4: Cấu hình cho các driver ngoại vi trong hệ thống uClinux 118
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
10
Danh mục hình vẽ
Hình 1.1 Mô hình tổng quan hệ thống 16
Hình 1.2 Sơ đồ khối hệ thống 18
Hình 2.1 Kiến trúc cơ bản của FPGA [1] 23
Hình 2.2 Kit phát triển DE2 24
Hình 2.3 Sơ đồ khối của kit DE2 [2] 25
Hình 2.4 Kiến trúc cơ bản của vi xử lý Nios II [3] 27
Hình 2.5 Phần mềm Quartus II 28
Hình 2.6 Công cụ SOPC Builder – xây dựng hệ thống Nios II 29
Hình 2.7 Công cụ Nios II Command Shell 30
Hình 2.8 Trình soạn thảo và biên dịch phần mềm Nios II for Eclipse 30
Hình 2.9 Quy trình thiết kế hệ thống Nios II [3] 32
Hình 3.1 Một số thiết bị ứng dụng hệ điều hành uClinux 36
Hình 3.2 Bộ nhớ ảo và bộ nhớ vật lý trên hệ điều hành Linux [8] 40
Hình 3.3 Ethernet trong uClinux 42
Hình 3.4 Cấu trúc thư mục của gói mã nguồn uClinux-dist 45
Hình 3.5 Cấu trúc thư mục trong ROM 46
Hình 3.6 Lưu đồ quá trình khởi động 49
Hình 3.7 Giao diện make menuconfig 51
Hình 3.8 Giao diện Kernel/Library/Defaults Selection 52
Hình 3.9 Giao diện khi khởi động uClinux 53
Hình 3.10 Cách lựa chọn biên dịch module hello3 56
Hình 3.11 Kết quả thêm module hello3 57
Hình 3.12 Cách lựa chọn biên dịch gói các ngoại vi 59
Hình 3.13 Cách lựa chọn ứng dụng người dùng hello1 60
Hình 3.14 Kết quả thêm ứng dụng người dùng hello1 61
Hình 4.1 Cấu trúc phân vùng trong định dạng FAT 63
Hình 4.2 Lưu trữ của một file trong FAT [8] 65
Hình 4.3 Cấu tạo chân thẻ nhớ SD 66
Hình 4.4 Quá trình khởi tạo thẻ nhớ SD 69
Hình 4.5 Quá trình chuyển chế độ data tranfer 70
Hình 4.6 Quá trình đọc 1 block trong SD card 70
Hình 4.7 Giao tiếp giữa khối vi xử lý và chip ISP 1362 [15] 71
Hình 4.8 Sơ đồ khối các thành phần ISP 1362 [15] 72
Hình 4.9 Chu kì truy cập thanh ghi 32 bit mode 73
Hình 4.10 Ví dụ đọc dữ liệu thanh ghi 32 bit. 73
Hình 4.11 Kiến trúc phân tầng software cho giao tiếp USB 74
Hình 4.12 Đọc file text trong USB 75
Hình 4.13 Đọc file text trên thẻ SD 76
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
11
Hình 5.1 Quá trình truyền video từ PC xuống kit 78
Hình 5.2 Cấu trúc tiêu đề gói tin RTP 81
Hình 5.3 Tiêu đề mở rộng của gói tin RTP 82
Hình 5.4 Sơ đồ chân cổng Ethernet 84
Hình 5.5 Giao diện phần mềm VLC 86
Hình 5.6 Bắt gói tin RTP bằng WireShark 87
Hình 5.7 Mô hình phân lớp OSI và mô hình TCP/IP 88
Hình 5.8 Cấu trúc gói tin RTP được truyền đi 89
Hình 5.9 Quá trình khởi tạo và nhận dữ liệu của socket 90
Hình 6.1 Cấu trúc khung của định dạng JPEG [13] 93
Hình 6.2 Một MCU với tỉ lệ lấy mẫu 4:2:0 [13] 95
Hình 6.3 Lượng tử hóa ảnh DCT và quét zigzag [14] 97
Hình 6.4 Header của một ảnh JPEG [14] 98
Hình 6.5 Sơ đồ các cổng vào ra 100
Hình 6.6 Sơ đồ tín hiệu đầu vào 101
Hình 6.7 Sơ đồ khối giải mã JPEG 101
Hình 6.8 Khối hiển điều khiển hiển thị 103
Hình 6.9 Kết quả mô phỏng các tín hiệu trên Modelsim 104
Hình 6.10 Kết quả đầu ra khi mô phỏng với Modelsim 105
Hình 7.1 Tài nguyên sử dụng của hệ thống 107
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
12
Danh mục bảng biểu
Bảng 4.1 Khả năng lưu trữ của các định dạng FAT [8] 62
Bảng 4.2 Các thành phần trong boot sector 64
Bảng 4.3 Mô tả các chân SD/MMC Card [9] 66
Bảng 4.4 Cấu trúc 1 command [9] 67
Bảng 4.5 Danh sách lệnh SD card trong chuẩn SPI [18] 69
Bảng 4.6 Địa chỉ thanh ghi ISP-1362 [15] 72
Bảng 5.1 Bảng các chân tín hiệu cổng Ethernet 85
Bảng 5.2 Thống kê tỉ lệ mất gói khi truyền qua Ethernet 90
Bảng 6.1 Một số Marker của ảnh [14] 94
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
13
Danh sách từ viết tắt
STT
Từ viết tắt
Thuật ngữ tiếng Anh
Thuật ngữ tiếng Việt
1
SOPC
System On Programable Chip
Hệ thống tích hợp trên chíp
khả trình
2
MCU
MicroController Unit
Vi điều khiển
3
SD/MMC
Secure Digital/MultiMedia
Card
Thẻ nhớ SD/ Đa phương
tiện
4
USB
Universal Serial Bus
5
IDE
Integrated Development
Environment
Môi trường phát triển tích
hợp
6
DE2 board
Development and Education 2
board
Kit hỗ trợ phát triển và giáo
dục số 2
7
FIFO
First In First Out
Vào trước - ra trước
8
SPI
Serial Peripheral Interface
Giao tiếp nối tiếp
9
DMIPS
Dhrystone Million
Instructions Per Second
Triệu lệnh Dhrystone trên
giây
10
RISC
Reduced Instruction Set
Computer
Máy tính tập lệnh thu gọn
11
IC
Integrated Circuit
Mạch tích hợp
12
FPGA
Field-Programmable Gate
Array
Mảng cổng khả trình
13
DDR
SDRAM
Double Data Rate SDRAM
SDRAM có tốc độ truyền
tải dữ liệu gấp đôi
14
BSD
Berkeley Socket Distribution
Phiên bản socket Berkeley
15
RTP
Real time Transfer Protocol
Giao thức truyền thời gian
thực
16
LAN
Local Aera Network
Mạng nội bộ
17
IP
Intellectual Property
Sở hữu trí tuệ
18
MPU
Memory Protection Unit
Đơn vị bảo vệ bộ nhớ
19
ELF
Executable Linkable Format
Định dạng file chạy
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
14
20
FAT
File Allocation Table
Bảng cấp phát file
21
LBA
Logical Block Address
Địa chỉ khối logic
22
CHS
Cylinder/Header/Sector
23
HDL
Hardware Description
Language
Ngôn ngữ môt tả phần
cứng
24
M-JPEG
Motion Join Photographic
Experts Group
Định dạng video
25
MMU
Memory Management Unit
Đơn vị quản lý bộ nhớ
26
DCT
Discrete Cosine Transform
Biến đổi cosin rời rạc
27
FSM
Finite State Machine
Máy trạng thái
28
DQT
Decoder Quantization Table
Bảng lượng tử
29
DHT
Decoder Huffman Table
Bảng Huffman
30
VM
Virtual Memory
Bộ nhớ ảo
31
ROM
Read-only Memory
Bộ nhớ chỉ đọc
32
I/O
Input/Output
Đầu vào/Đầu ra
33
DAC
Digital to Analog Converter
Bộ chuyển đổi số/tương tự
34
HAL
Hardware Abstraction Layer
Lớp trừu tượng phần cứng
35
API
Application Programming
Interface
Giao diện lập trình ứng
dụng
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
15
Chƣơng 1. Giới thiệu chung
1.1 Mục đích
Sự phát triển nhanh của lĩnh vực công nghệ thông tin và truyền thông trong
những thập niên gần đây đã và đang mở ra những thay đổi lớn trong cuộc sống hàng
ngày của chúng ta, từ hoạt động sản xuất tới kinh doanh, giải trí. Mạng Internet đã
kết nối các thiết bị điện tử thông minh (PC, mobile, ô tô,…) lại với nhau thành một
mạng lưới thông tin toàn cầu. Khả năng xử lý của các thiết bị điện tử thì ngày càng
nhanh, với giá thành rẻ nên chúng có mặt ở khắp mọi nơi.
Tại những trung tâm kinh tế lớn trên thế giới, chiến dịch quảng cáo được tiến
hành rầm rộ trên màn hình cỡ siêu lớn tại các quảng trường, khu phố đông người
qua lại tạo ra những diện mạo mới cho khu phố, sang trọng hơn và đẹp mắt hơn
nhất là khi về đêm.
Dựa trên những nhận định về thị trường, nhóm tác giả nhận thấy nhu cầu về
những màn hình quảng cáo như vậy ở nước ta là rất lớn. Thị trường quảng cáo trên
bảng led cỡ lớn còn rất nhiều tiềm năng do đa phần các hệ thống bảng LED video
triển khai tại Việt Nam đều là các sản phẩm đã “đóng vỏ”, bản thân các công ty
triển khai hệ thống này cũng có thể không hiểu rõ được công nghệ bên trong mà chỉ
đóng vai trò lắp ráp sản phẩm. Điều này sẽ làm tăng chi phí đầu vào lên rất nhiều so
với giá thành gốc.
Trên quan điểm kĩ thuật, thứ nhất, những màn hình cỡ lớn ngoài trời yêu cầu
công suất lớn và những kĩ thuật thiết kế mới mà các màn hình LCD, CRT không thể
đáp ứng được. Thứ hai, các thiết bị ngày nay không thể đứng độc lập với các thiết bị
khác, mạng Internet đã kết nối các thiết bị với nhau không khoảng cách, đồng thời
tiết kiệm được chi phí truyền tin do dùng chung đường truyền Internet. Thứ ba,
nhúng hệ điều hành lên vi điều khiển đang trở thành xu hướng hiện nay nhằm tăng
khả năng mở rộng cho hệ thống và khả năng giao tiếp với người dùng. Với sự phát
triển của kiến trúc chip FPGA (Field-Programmable Gate Array) và các phương
pháp phát triển hệ thống, công cụ hỗ trợ, nhóm nhận thấy có thể áp dụng thành tựu
mới của công nghệ FPGA để giải quyết vấn đề kĩ thuật cho bài toán đã đặt ra.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
16
Trong khuôn khổ của đề tài, nhóm tác giả tập trung vào việc lấy dữ liệu video
nén theo chuẩn MJPEG từ nhiều nguồn khác nhau: USB, thẻ nhớ SD hoặc từ mạng
LAN và hiển thị lên bảng LED. Hệ thống được nhúng trên kit phát triển DE2 và hỗ
trợ hệ điều hành uClinux.
1.2 Mô hình tổng quan hệ thống
Hệ thống sử dụng bo mạch DE2 với chip Cyclone II 2C35 của Altera làm khối
điều khiển trung tâm. Mô hình hệ thống được mô tả trên Hình 1.1.
Hình 1.1 Mô hình tổng quan hệ thống
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
17
Mô hình hệ thống bao gồm:
Các thiết bị đầu vào tín hiệu số: thẻ nhớ SD, Flash USB, video LAN.
Bo xử lý trung tâm: Kit DE2 – Altera.
Thiết bị đầu ra: bảng LED đa sắc 64x64 và màn hình hiển thị chuẩn VGA.
1.3 Yêu cầu của hệ thống
1.3.1 Yêu cầu chức năng
Hệ thống có một số chức năng sau:
Lấy dữ liệu video từ thẻ nhớ SD, Flash USB hoặc từ mạng LAN.
Hiển thị video trên bảng LED full-color 64×64.
Chọn lựa các nguồn dữ liệu đầu vào: do dữ liệu vào hệ thống có thể được lấy
từ nhiều nguồn khác nhau, nên hệ thống phải có khả năng chọn lựa các
nguồn dữ liệu đầu vào tại một thời điểm.
Điều chỉnh độ sáng tối của màn hình: hệ thống có thể được triển khai tại các
môi trường có cường độ sáng khác nhau như: ngoài trời, trong phòng nên
việc hệ thống có khả năng điều chỉnh độ sáng tối của màn hình là hết sức cần
thiết để phù hợp với thị giác của người quan sát.
1.3.2 Yêu cầu phi chức năng
Hệ thống có một số yêu cầu phi chức năng sau:
Nguồn nuôi FPGA luôn đảm bảo ổn định ở điện áp: +5V.
Trễ xử lý tín hiệu từ 20-30ns để đảm bảo cho hình ảnh được hiển thị trên
màn hình luôn liên tục.
Tốc độ hiển thị của tín hiệu video 15 hình trên giây đối với dữ liệu lấy từ thẻ
nhớ SD, Flash USB hoặc từ mạng LAN.
Hệ thống phải có độ ổn định cao trong điều kiện khí hậu nóng ẩm.
Nhận thiết bị được kết nối với hệ thống trong thời gian trễ chấp nhận được.
Khoảng cách quan sát từ 8 – 30 m.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
18
1.4 Sơ đồ khối và chức năng từng khối của hệ thống
1.4.1 Sơ đồ khối hệ thống
Sau khi phân tích yêu cầu của hệ thống và tài nguyên hiện có, nhóm đã xác định
được sơ đồ khối được mô tả trên Hình 1.2.
Hình 1.2 Sơ đồ khối hệ thống
1.4.2 Chức năng từng khối
Với sơ đồ khối như trên, mỗi khối có chức năng, nhiệm vụ như sau:
Khối MCU: Khối xử lý trung tâm, điều khiển và truyền/nhận dữ liệu từ các
ngoại vi thông qua đường Bus Avalon.
Khối Ethernet: Điều khiển giao tiếp với khối phần cứng Ethernet-MAC trên
kit thông qua chip điều khiển DM9000A.
Khối USB Host: Điều khiển giao tiếp truyền nhận dữ liệu đối với chip
ISP1362, là một vi điều khiển có chức năng điều khiển giao tiếp chuẩn USB.
Khối SPI: Điều khiển giao tiếp với thẻ nhớ SD thông qua chuẩn giao tiếp
SPI.
Khối JPEG Decoder: Giải mã ảnh JPEG, giúp hiển thị video Motion-JPEG
trên bảng LED.
MCU
NIOS 2
Display
Controller
JPEG
Decoder
SPI Controller
(SD Card Controller)
Ethernet
Controller
USB Host
Controller
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
19
Khối Display Controller: Đọc dữ liệu hình ảnh truyền đến và hiển thị trên
màn hình LED.
Nhóm tác giả đã phát triển đồ án này dựa trên kết quả nghiên cứu của một dự án
trước đây tại phòng ESRC Lab và kế thừa khối chức năng Display Controller. Từ
đó, nhóm tập trung phân tích và thiết kế các khối còn lại sau đó tiến hành tích hợp
hệ thống nhằm đạt được hiệu quả cao nhất.
1.5 Tổ chức công việc trong nhóm
Sau khi phân tích đề tài và dựa vào năng lực, sở trường của các thành viên,
nhóm tác giả đã thống nhất công việc cụ thể như sau:
1. Dƣơng Việt Anh:
Nhiệm vụ: Tìm hiểu chuẩn giao tiếp thẻ nhớ SD, xây dựng khối giải mã
ảnh nén JPEG.
Công việc:
Tìm hiểu định dạng FAT.
Xây dựng chương trình giao tiếp thẻ nhớ SD.
Tìm hiểu ngôn ngữ mô tả phần cứng Verilog.
Xây dựng khối giải mã JPEG.
Viết chương trình hiển thị video Motion-JPEG từ Flash USB và
thẻ nhớ SD trên hệ điều hành nhúng uClinux.
2. Nguyễn Mạnh Hùng:
Nhiệm vụ: Tìm hiểu hệ điều hành nhúng uClinux, giao tiếp Flash USB
với hệ điều hành.
Công việc:
Cấu hình và biên dịch hệ điều hành uClinux.
Tìm hiểu cách viết các chương trình ứng dụng, driver trên
uClinux.
Kiểm thử, đánh giá tốc độ hiển thị video MPEG-1 với chương
trình phần mềm trên hệ điều hành.
Thực hiện truy xuất file trong Flash USB qua hệ điều hành.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
20
3. Nguyễn Văn Khánh
Nhiệm vụ: Tìm hiểu quy trình thiết kế hệ nhúng trên kit Altera, truyền dữ
liệu video qua giao thức mạng Ethernet.
Công việc:
Xây dựng hệ thống SOPC bao gồm các khối giao tiếp với ngoại vi.
Tìm hiểu công nghệ FPGA và quy trình xây dựng một hệ thống
nhúng NIOS II.
Tìm hiểu về giao tiếp mạng Ethernet trên hệ thống, lập trình
Socket.
Tìm hiểu một số giao thức mạng dùng để streaming video.
Tìm hiểu về lập trình cho chip ISP1362 điều khiển giao tiếp USB.
1.6 Tóm tắt nội dung các chƣơng
Đồ án bao gồm bảy chương và bốn phụ lục với nội dung cơ bản như sau:
Chƣơng 1: Nêu rõ mục đích của đề tài, đưa ra sơ đồ khối tổng quan của toàn
hệ thống và bản phân công công việc trong nhóm.
Chƣơng 2: Trình bày những vấn đề cơ bản liên quan tới việc phân tích và
thiết kế hệ thống trên công nghệ FPGA. Đồng thời giới thiệu các công cụ
quan trọng và các giải pháp thiết kế hệ thống mà nhóm tác giả đã phân tích
và đánh giá trong suốt thời gian thực hiện.
Chƣơng 3: Quy trình cấu hình biên dịch nhân hệ điều hành nhúng uClinux
trên lõi vi xử lý mềm NIOS II, thêm các ứng dụng người dùng và cách thức
viết một driver giao tiếp với các ngoại vi.
Chƣơng 4: Giới thiệu về cấu tạo, phương thức giao tiếp với thẻ nhớ và flash
USB. Ngoài ra, định dạng FAT (File Alocation Table) được sử dụng rộng rãi
cho định dạng của các thiết bị lưu trữ cũng sẽ được trình bày trong nội dung
của chương.
Chƣơng 5: Giới thiệu giao thức RTP và các công cụ sử dụng trong việc
streaming video xuống kit. Đồng thời trình bày quy trình xây dựng phần
mềm nhận video trên kit.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
21
Chƣơng 6: Trình bày quy trình xây dựng, tích hợp khối giải mã JPEG, từ đó
hiển thị video MJPEG lên bảng LED.
Chƣơng 7: Tổng kết những kết quả mà nhóm đã đạt được trong quá trình
nghiên cứu và hướng phát triển tiếp theo cho đề tài.
Các phụ lục 1 đến 3 là một số đoạn code chính trong hệ thống.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
22
Chƣơng 2. Giới thiệu công nghệ FPGA và đánh
giá các giải pháp khả thi
_* Nguyễn Văn Khánh *_
Chương này trình bày những vấn đề cơ bản liên quan tới việc phân tích, thiết kế
hệ thống trên công nghệ FPGA nói chung và triển khai trên kit DE2 của Altera nói
riêng. Đồng thời giới thiệu các công cụ quan trọng được sử dụng trong quá trình
thực hiện đề tài cũng như các giải pháp thiết kế hệ thống mà nhóm tác giả đã phân
tích và đánh giá trong suốt thời gian thực hiện.
2.1 Giới thiệu chung
Từ những chiếc smartphone tới thiết bị y tế, từ lò vi sóng tới các hệ thống điện
tử thông minh xuất hiện khắp mọi nơi, các nhóm dự án hệ thống nhúng đã phát triển
ra những chiếc máy tính nhúng mà chúng giờ đây là một phần tích hợp không thể
thiếu trong xã hội. Để phát triển những sản phẩm đó, các kĩ sư thiết kế phải sử dụng
rất nhiều công cụ và công nghệ để cấu thành những hệ thống nhúng từ phần cứng
tới phần mềm. FPGA chính là một công cụ đang trở nên ngày càng phổ biến.
FPGA là một IC được thiết kế để có thể cấu hình (hay lập trình) bởi khách hàng
sau khi nó được sản xuất, và do đó được gọi là “field-programmable”. Việc cấu
hình FPGA nói chung được thực hiện bằng cách sử dung ngôn ngữ mô tả phần cứng
(Hardware Description Language – HDL) như VHDL, Verilog, JHDL, tương tự như
phương pháp thiết kế các IC chuyên dụng ASIC (Application-Specific Integrated
Circuit).
Nói một cách tổng quan, FPGA là “chip trắng” nhưng có thể thực hiện bất kì
chức năng phần cứng số nào, và đặc biệt có thể cấu hình lại tại chỗ ngay cả khi sản
phẩm đã phát triển và chuyển tới người dùng. Điều đó khiến FPGA có sự khác biệt
cơ bản so với các chip ASIC, nó có thể được sử dụng trong quá trình thiết kế bản
mẫu hoặc được dùng như sản phẩm hoàn chỉnh. Nói ngắn gọn, FPGA cung cấp nền
tảng phần cứng lập trình được cho người phát triển hệ nhúng.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
23
FPGA được cấu tạo từ các thành phần được mô tả như Hình 2.1[1], bao gồm:
Các thành phần logic cơ bản lập trình được (logic block) : các khối này chứa
các cổng logic cơ bản như AND và XOR. Trong hầu hết các loại FPGA, các
logic block thường bao gồm cả các phần tử nhớ.
Hệ thống liên kết tái cấu trúc (Interconnection Resources): cho phép kết nối
các block với nhau.
Các khối vào ra (I/O Cell).
Hình 2.1 Kiến trúc cơ bản của FPGA [1]
Vai trò của FPGA ngày càng mở rộng dần theo thời gian. Ban đầu, FPGA được
dùng để thay thế các mạch IC rời rạc họ 7400. Giờ đây, các nhà sản xuất chip
FPGA đã cải thiện đáng kể khả năng logic và chức năng của FPGA. Về khả năng
logic, số lượng thành phần cấu hình được CLB (Configurable Logic Block hay
Logic Element) ngày càng tăng, trung bình gấp đôi sau 10 tháng, vượt xa định luật
Moore. Về mặt chức năng, chip FPGA có khả năng hỗ trợ các khối chức năng như
vi xử lý, đường bus, bộ điều khiển bộ nhớ, giao tiếp mạng, và rất nhiều các ngoại vi
- tất cả trên một chip. Cùng với sự phát triển của các hệ điều hành hiện đại như
Linux, những chip FPGA giờ đây ngày càng có vai trò như những chiếc PC về chức
năng và khả năng tính toán.
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
24
Nói tóm lại, công nghệ FPGA cung cấp nền tảng linh hoạt cho người thiết kế hệ
nhúng, giảm số lượng chip của hệ thống và đáp ứng được những hệ thống yêu cầu
cao về hiệu năng, băng thông nhờ việc kết hợp mô hình thiết kế SW-HW codesign.
2.2 Kit DE2 và các công cụ sử dụng
Theo yêu cầu đặt ra của hệ thống, nhóm đã tiến hành phân tích và đánh giá tài
nguyên cần thiết để thực hiện các yêu cầu chức năng. Bo mạch sử dụng tối thiểu cần
có giao tiếp SD card, Ethernet và giao diện USB host – ngoài ra cần phải đảm bảo
có thể phát triển hệ thống ở mức hoàn chỉnh hơn. Theo đó, nhóm đã lựa chọn kit
phát triển DE2 của hãng Altera với cấu hình phần cứng thỏa mãn và có nhiều khả
năng mở rộng hệ thống.
Kit DE2 (Development and Education board) là một bo mạch được Altera thiết
kế với mục đích phục vụ cho việc nghiên cứu các hệ thống nhúng, kiến trúc máy
tính và FPGA (Hình 2.2). Kit có nhiều đặc tính phù hợp với việc nghiên cứu trên
các phòng thí nghiệm, các khóa học về thiết kế số tại các trường đại học, cao đẳng
cũng như là công cụ để phát triển các hệ thống số phức tạp [2].
Bên cạnh đó, Altera cũng cung cấp các công cụ phát triển phù hợp với DE2 và
một cộng đồng mạng chuyên phát triển ứng dụng trên các bo mạch này.
Hình 2.2 Kit phát triển DE2
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2012
25
2.2.1 Tài nguyên phần cứng
Với chip FPGA Cyclone II, nhiều lựa chọn bộ nhớ, cổng I/O đa dạng, số phần
tử logic là khá lớn – kit DE2 là nền tảng lý tưởng để thực hiện nhiều loại hệ thống
số từ những mạch đơn giản tới các hệ thống đa phương tiện phức tạp. Sơ đồ khối
của KIT DE2 được mô tả trên Hình 2.3.
Hình 2.3 Sơ đồ khối của kit DE2 [2]
Chip FPGA: Cyclone II EP2C35F672C6 và chip cấu hình tuần tự EPCS16
33.216 Logic Elements (LEs)
105 khối RAM M4K với 483.840 bit có thể lập trình
4 vòng khóa pha
Thạch anh 27 MHz và 50 MHz
Cyclone
II
FPGA
2C35
EPCS16
Config
Device
USB
Blaster
User Green LEDs (8)
User Red LEDs (18)
16x2 LCD Module
PS2 & RS-232 Ports
Toggle Switches (18)
Pushbutton Switches (4)
50 Mhz / 27 Mhz / Ext In
USB 2.0 Host/Device
10/100 Ethernet Phy/MAC
SD Card
IrDA Transceiver
Flash (1 Mbyte)
SDRAM (8 Mbytes)
SRAM (512 Kbytes)
7-Segment Display (8)
Expansion Headers (2)
16-bit Audio CODEC
VGA 10-bit Video DAC
TV Decoder