Tải bản đầy đủ (.docx) (25 trang)

Thiết kế bộ điều khiển matrix led 2D quảng cáo đa năng dùng FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 25 trang )

MỤC LỤC
TRANG
LỜI MỞ ĐẦU……………………………………………………………………….…2
CHƯƠNG I. ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ CỦA ĐỒ ÁN…………………………3
I. ĐẶT VẤN ĐỀ…………………………………………………………………….....3
II. NHIỆM VỤ CỦA ĐỒ ÁN………………………………………………….………3
CHƯƠNG II. CƠ SỞ LÝ THUYẾT…………………………………………….……..3
I. MA TRẬN LED ……………………………………………………………..………3
1. CẤU TẠO VÀ NGUYÊN LÝ QUÉT………………………………………………..……3
2. PHÂN LOẠI MA TRẬN LED……………………………………………………..…….6
II. TỔNG QUAN QUẢNG CÁO ĐA NĂNG……………………………………….…7
III. TỔNG QUAN FPGA………………………………………………………….……8
IV. TỔNG QUAN NGÔN NGỮ VHDL…………………………………………….…9
CHƯƠNG III. THIẾT KẾ HỆ THỐNG……………………………………………....11
I. TỔNG QUAN PHẦN MỀM XILINX ISE………………………………………....11
II. SƠ ĐỒ KHỐI HỆ THỐNG………………………………………………………...12
1. KIT SPACTAN 3…………..………………………………………………………………..…….12
2. IC 74HC595………………..………………………………………………………………..…….19
3. IC ULN2803…………………..……………………………………………………………..…….21
4. BJT A1013…………………………………………………………………………………………22
5. SƠ ĐỒ NGUYÊN LÝ.......……………………………………………………………………….. 22
6. THIẾT KẾ PCB MODUL HIỂN THỊ……………………………………………….……23
III. LƯU ĐỒ GIẢI THUẬT……………………………………………………..……24
IV. CODE VHDL ……………………………………………………………...……..25
NGUỒN TÀI LIỆU THAM KHẢO………………………………………….……….29
KẾT LUẬN……………………………………………………………………………
1
LỜI MỞ ĐẦU
Ngày nay công nghệ vi điện tử đã trở thành một lĩnh vực phát triển và được rất nhiều
nước trên thế giới chú trọng phát triển.Tại sao nó lại được chú trọng đến vậy, xét về
phạm vi ứng dụng ta thấy Điện-Điện Tử nói chung và hệ thống Nhúng nói riêng có liên


quan, ảnh hưởng đến nhiều lĩnh vực trong đời sống.
Trong sinh hoạt của con người, nó làm cho cuộc sống của con người ngày càng tiện
nghi, thoải mái. Sự xuất hiện hàng loạt các thiết bị phục vụ nhu cầu đời sống của con
người không chỉ tăng về số lượng mà còn tăng về tính năng, chất lượng và độ an toàn
như máy giặt, tủ lạnh, lò vi sóng…
Trong sản xuất,nó làm tăng năng suất lao động,giảm sức lao động của con người, thay
con người hoạt động ở những nơi có điều kiện hết sức khắc nhiệt…Và nó liên quan
đến các ứng dụng công nghệ cao như viễn thông, hạt nhân, vũ trụ…
Với tầm quan trọng của công nghệ vi điện tử. Nó xứng đáng là lĩnh vực mang tầm
chiến lược trong sự phát triển của các nước trên thế giới. Đối với nước ta hiện nay Nhà
nước cũng ưu tiên trong đầu tư, đào tạo, nghiên cứu… các lĩnh vực liên quan đến Điện
–Điện Tử trong đó có hệ Nhúng, nhiều cơ sở và trung tâm đào tạo nghiên cứu đã và
đang hoạt động, phát triển.
Từ yêu cầu của mô học “Đồ Án Thiết Kế Hệ Thống Số” cũng như để hiểu kỹ hơn về
công nghệ FPGA em đã quyết định chọn để tài :
“Thiết kế bộ điều khiển matrix led 2D quảng cáo đa năng dùng FPGA”.
Nội dung đề tài :
 Tìm hiểu về LED matrix
 Thiết kế bảng ma trận Led 2D
 Tìm hiểu FPGA
 Thiết kế bộ điều khiển dùng FPGA
Em xin chân thành cảm ơn thầy NGUYỄN NGỌC MINH đã hướng dẫn chi tiết về
FPGA và phương pháp thiết kế mô hình hóa phần cứng.
Sinh viên thực hiện:
Nguyễn Đình Tuyến (Ngạo Phong Vân 90)
Hà Nội, ngày 10/02/2012
CHƯƠNG I . ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ CỦA ĐỒ ÁN
2
I – Đặt vấn đề
Trong thời đại ngày nay, công nghệ điện tử ngày càng phát triển và được ứng dụng rất

nhiều trong thực tế. Một trong những ứng dụng đó là lĩnh vực quảng cáo, trang trí
khuếch trương sản phầm. Để làm cho sản phầm hoặc hình ảnh công ty thu hút sự chú
ý, quan tâm của khách hàng thì dịch vụ quảng cáo phải thật ấn tượng, choáng ngợp, bắt
mắt… Để giải quyết vấn đề này thì có rất nhiều phương án, nhưng hiện nay phương án
được các công ty, doanh nghiệp, cửa hàng… sử dụng hiệu quả nhất là quảng cáo bằng
bảng led matrix. Chính vì vậy việc thiết kế hệ thống bảng điện tử để phục vụ nhu cầu
quảng cáo là rất cần thiết.
II – Nhiệm vụ của đồ án
Với sự lựa chọn để tài này, trước tiên cần tìm hiểu chi tiết về LED matrix cũng như các
phương pháp quét LED, hiển thị xử lý hình ảnh…Sau đó tìm hiểu về quảng cáo đa
năng là gì và kế đó là các phương pháp ứng dụng FPGA để giải quyết bài toán đặt ra.
CHƯƠNG II CƠ SỞ LÝ THUYẾT
I. LED ma trận
1. Cấu tạo và nguyên lý quét
Dựa trên nguyên tắc như quét màn hình,ta có thể thực hiện việc hiển thị ma trận đèn
bằng cách quét theo hàng và quét theo cột. Mỗi Led trên ma trận Led có thể coi như
một điểm ảnh. Địa chỉ của mỗi điểm ảnh này được xác định đồng thời bởi mạch giải
mã hàng và giải mã cột, điểm ảnh này sẽ được xác định nhờ dữ liệu đưa ra từ bộ điều
khiển.
Như vậy tại mỗi thời điểm chỉ có trạng thái của một cột được xác định(nếu thực hiện
quét cột đưa dữ liệu ra hàng). Tuy nhiên khi xác định địa chỉ và trạng thái của cột tiếp
theo thì cột trước đó sẽ chuyển về trạng thái tắt. Vì thế để hiển thị được toàn bộ hình
ảnh mà ta muốn thì ta phải quét ma trận nhiều lần với tốc độ quét rất lớn, lớn hơn nhiều
lần thời gian kịp tắt của đèn. Mắt người chỉ nhận biết được tối đa 24 hình/s do đó nếu
tốc độ quét lớn mắt người sẽ không nhận biết được sự gián đoạn hay là nhấp nháy của
đèn Led.
Một điều cũng quan trọng ở đây là điều chỉnh độ sáng của Led, thông thường Led sáng
bình thường ở điện áp 5V, dòng điện từ 10-20mA. Để đảm bảo Led sáng bình thường
thì yêu cầu mạch thiết kế phải đáp ứng đủ 2 điều kiện trên.
3

Để thực hiện được việc quét hàng và quét cột thì ma trận Led được thiết kế như sau:
 các led trên cùng một hàng sẽ được nối các chân dương với nhau.
 các led trên cùng một cột sẽ được nối các chân âm với nhau.
Sơ đồ nguyên lý của ma trận Led 8x8:
Trạng thái của một led sẽ được quyết định bởi tín hiệu điện áp đi vào cả 2 chân. Để led
nào đó sáng thì điện áp 5V phải được đưa vào chân dương (hàng), và chân âm (cột)
của nó được nối 0V.
Để ma trận có thể sáng như hình vẽ (một phần của chữ NHÓM 07 LỚP
D08ĐTXLTH1 )
Ma trận LED 1 Ma trận LED 2 Ma trận LED 3
Ta thực hiện quét cột như sau:
chọn cột 1, đưa điện áp cột 1 về 0. Sau đó xuất dữ liệu ra các hàng 1,2,3,4,5,6,7,8 như
sau:
4
Đèn 1 tắt => điện áp đưa vào hàng 1 = 0V  bit nhị phân tương ứng: 0
Đèn 2 tắt => điện áp đưa vào hàng 2 = 0V  bit nhị phân tương ứng: 0
Đèn 3 sáng => điện áp đưa vào hàng 3 = 5V  bit nhị phân tương ứng: 1
Đèn 4 sáng => điện áp đưa vào hàng 4 = 5V  bit nhị phân tương ứng: 1
Đèn 5 sáng => điện áp đưa vào hàng 5 = 5V  bit nhị phân tương ứng: 1
Đèn 6 sáng => điện áp đưa vào hàng 6 = 5V  bit nhị phân tương ứng: 1
Đèn 7 sáng => điện áp đưa vào hàng 7 = 5V  bit nhị phân tương ứng: 1
Đèn 8 sáng => điện áp đưa vào hàng 8 = 5V  bit nhị phân tương ứng: 1
=> chuỗi bit xuất ra 8 chân hàng : 0011 1111  3F trong hệ Hexa
chọn cột 2, đưa điện áp cột 2 về 0, xuất dữ liệu ra các hàng 1,2,3,4,5,6,7,8 như sau:
Đèn 1 tắt => điện áp đưa vào hàng 1 = 0V  bit nhị phân tương ứng: 0
Đèn 2 tắt => điện áp đưa vào hàng 2 = 0V  bit nhị phân tương ứng: 0
Đèn 3 tắt => điện áp đưa vào hàng 3 = 0V  bit nhị phân tương ứng: 0
Đèn 4 sáng => điện áp đưa vào hàng 4 = 5V  bit nhị phân tương ứng: 1
Đèn 5 tắt => điện áp đưa vào hàng 5 = 0V  bit nhị phân tương ứng: 0
Đèn 6 tắt => điện áp đưa vào hàng 6 = 0V  bit nhị phân tương ứng: 0

Đèn 7 tắt => điện áp đưa vào hàng 7 = 0V  bit nhị phân tương ứng: 0
Đèn 8 tắt => điện áp đưa vào hàng 8 = 0V  bit nhị phân tương ứng: 0
=> chuỗi bit xuất ra 8 chân hàng: 0001 0000  1F trong hệ Hexa
tiếp tục quét với các cột 3,4,5,6,7,8 tương tự như vậy, sau đó chuyển sang ma trận
Led tiếp theo. Với tốc độ quét cột > 24h/s thì hình ảnh sẽ liên tục không bị nhấp nháy.
2. Phân loại Led ma trận
Về kích thước thì hện nay trên thị trường có 2 loại phổ biến là matrix led 5x7 pixels và
matrix led 8x8 pixels.
5
Matrix led 5x7 Matrix led 8x8
Những bảng led kích thước lớn hơn đều được ghép lại từ những modul led có kích
thước nhỏ (8x16, 16x16, 16x32….) và những modul led thì lại cấu tạo từ 2 loại ma
trận led trên.
Về độ phân giải thì tùy vào ứng dụng cụ thể mà chọn loại P10, P16, P20, …(P16 có
nghĩa là khoảng cách điểm LED đến điểm LED là 16 mm)
Về môi trường hoạt động thì có loại indoor (trong nhà) và outdoor (ngoài trời), semi-
outdoor (bán ngoài trời). Bảng indoor không sử dụng ngoài trời được vì không đủ độ
sáng và không chịu được mưa nắng. Bảng outdoor có độ sáng cao, kết cấu chắc chắn,
chịu được mưa nắng. Bảng semi-outdoor (bán ngoài trời) có độ sáng cao, sử dụng tốt
ngoài trời nhưng chịu mưa nắng kém nên bảng quảng cáo loại này thường được đặt ở
dưới mái hiên nhà.
Về màu sắc có loại 1 màu (red, green, blue), có loại 2 màu, loại 3 màu, với mỗi loại thì
sơ đồ sắp xếp chân hàng và cột lại khác nhau.

Loại 1 màu Loại 2 màu

Loại 3 màu
6
II. Tổng quan về quảng cáo đa năng
Các biển quảng cáo đa năng dùng ma trận led 2D có nội dung thay đổi được một cách

dễ dàng linh hoạt thông qua cab usb, wifi, internet…
Nội dung quảng cáo có thể là chữ, hình ảnh, ảnh động hay là đoạn video.
Hiệu ứng dùng cho các biển quảng cáo phải đa dạng, đẹp mắt, gây sự chú ý… như
cuộn tròn, chữ chạy với nhiều tốc độ, nháy ….
Màu sắc đa dạng tạo điểm nhấn, tăng tính thẩm mỹ.
Có thể hiển thị nhiều loại Font chữ : tiếng anh, tiếng việt
Có thể tích hợp thêm tính năng audio.
Kích thước biển quảng cáo có thể thay đổi dễ dàng nhờ ghép thêm các modul led.
Trong bài đồ án này chúng em thiết kế bảng quảng cáo có các tính năng : chữ chạy từ
phải qua trái với nhiều tốc độ, vì ma trận led phổ biến trên thị trường hiện nay là loại
8x8 2 màu RG nên chúng em quyết định chọn loại này, nội dung quảng cáo thay đổi
được qua cab usb, font chữ tiếng anh và tiếng việt.
III. FPGA
Field-programmable gate array (FPGA) là vi mach dùng cấu trúc mảng phần tử logic
mà người dùng có thể lập trình được. (Chữ field ở đây muốn chỉ đến khả năng tái lập
trình “bên ngoài” của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức
tạp của nhà máy bán dẫn). Vi mạch FPGA được cấu thành từ các bộ phận:
• Các khối logic cơ bản lập trình được (logic block)
• Hệ thống mạch liên kết lập trình được
• Khối vào/ra (IO Pads)
7
• Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý...
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so
sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic
thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong khả
năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ có thể
tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút
ngắn thời gian đưa sản phẩm vào sử dụng.
Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần
tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ tái lập trình của

FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác biệt quan
trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng
logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó.
Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả
phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Xilinx,
Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế,
cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys,
Synplify... Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ
quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL).
Kiến trúc FPGA
Cấu trúc tổng thể của một FPGA được minh họa ở hình sau.
Khối logic FPGA
Phần tử chính của FPGA là các khối logic (logic block). Khối logic được cấu thành từ
LUT và một phần tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic có thể
thực hiện bất kì hàm logic nào từ 4 đầu vào, kêt quả của hàm này tùy vào mục đích mà
gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop.
8
Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang
và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm
khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, dài và rất dài. Các
đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được
(programable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập
trình được đảm bảo cho các dạng liên kết phức tạp khác nhau.
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợp
thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của
Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…,
hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP
Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex của Xilinx
chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
IV. Tổng quan ngôn ngữ VHDL

Ngôn ngữ VHDL được cung cấp để hổ trợ phát triển các hệ thống phần cứng dựa trên
các loại mạch (chip) tích hợp tốc độ cao (VHSIC-Very High Speed Integrated Circuit).
Việc sử dụng các loại chíp kiểu này đã thay thế dần các IC logic mà thường được sử
dụng trong việc thiết kế mạch số, đem lại nhiều lợi ích và thuần tiện trong việc phát
triển các hệ thống số mà phương thức thiết mạch số truyền thống khó hoặc không thể
thực hiện được.
VHDL không phải là 1 ngôn ngữ lập trình tuy vậy nó cung được hỗ trợ các cấu trúc, cú
pháp như giống như những ngôn ngữ lập trình thông dụng như C hay Basic. Do vậy
VHDL sẽ phải lược bỏ đi những phần không thích hợp khi áp dụng cho việc thiết kế 1
phần cứng chứ không phải 1 phần mềm. VHDL là ngôn ngữ miêu tả phần cứng khá
thông dụng có thể tương thích với nhiều môi trương ( công cụ) phát triển cho chip của
nhiều hãng sản xuất chip khác nhau.
Sử dụng VHDL để miêu tả phần cứng tức là chỉ rõ cách thức giao tiếp của mạch cứng
với các mạch bên ngoài và hoạt động, cấu trúc bên trong của mạch để nó có thể đáp
ứng và xử lý các tín hiệu khi lắp ghép nó vào 1 hệ thống . Cách thức giao tiếp bao gồm
việc thống kê số lượng các chân giao tiếp với mạch bên ngoài và định dạng cho chúng
là chân nhập hay là xuất tín hiệu.
Sự miêu tả ở đây có các mức như miêu tả cấu trúc (Structural) và miêu tả cách thức,
đặc tính (behavioral)
Miêu tả cấu trúc hệ thống tức là miêu tả hệ thống thông qua tập hợp các cổng logic cơ
bản hoặc các thành phần được hỗ trợ và cách thức kết nối giũa các thành phần đó với
nhau. Hình thức miêu tả này đã được sử dụng nhiều trong các công cụ thiết kế phần
cứng truyền thống. còn đối với ngôn ngữ VHDL thì việc sử dụng cách thức miêu tả này
thông qua các toán tử logic (AND, OR,..) tương ứng với các thành phần logíc cơ bản
kết hợp các toán tử này để hình thành lên cấu trúc số.
9
Hình thức miêu tả cao nhất là behavioral. Hình thức này sẽ chỉ cách thức xử lý tín hiệu
khi nó đi qua hệ thống. Mô tả behavioral được chia thành 2 hình thức miêu tả đó là
dataflow và Algorithmic. Người thiết kế có thể kết hợp các hình thức miêu tả này với
nhau trong file thiết kế của mình.

Cấu trúc của 1 file thiết kế dữa trên ngôn ngữ VHDL thông thường bao gồm 3 phần
-phần khai báo các thư viện sử dụng trong thiết kế.
-phần khai báo đối tượng thiết kế .
-phần mô tả cấu trúc của đối tượng.
Trên 1 bản thiết kê có thể có nhiều đối tượng thiết kế được lặp ghép với nhau. Mỗi đối
tượng (entity) có thể hiểu như là 1 module mạch hay 1 tổ hợp logic. Các chân giao tiếp
của đối tượng phải được định nghĩa trong phần khai báo đối tượng.
Trong phần mô tả cấu trúc của đối tượng thì người thiết kế sẽ sử dụng các mức mô tả
đã đề cập phía trên để mô tả cấu trúc bên trong hay cách thức xử lý tín hiệu của đối
tượng thiết kế.
Trong khuôn khổ của đồ án chúng em không đi sâu về cú pháp hay kỹ thuật lập trình
của ngôn ngữ VHDL mà chỉ trình bày một cách tổng quan về cách thức sử dụng ngôn
ngữ miêu tả trong thiết kế phần cứng có sử dụng các vi mạch tổ hợp.
CHƯƠNG III: THIẾT KẾ HỆ THỐNG SỬ DỤNG PHẦN MỀM XILINX ISE
I. Tổng quan phần mền Xilinx ISE
Xilinx ISE (Integrated Software Environment) là một bộ phần mềm thiết kế của hãng
Xilinx, cho phép ta thực hiện các hệ thống nhúng của Xilinx từ khâu thiết kế ban đầu
(thông qua VHDL, Verilog HDL, ABEL hoặc là vẽ Schematic) cho đến khâu cuối
cùng là nạp thiết kế của mình lên FPGA. Để bắt đầu một thiết kế, ta phải tạo một
project mới trong ISE thông qua công cụ quản lý ISE Project Navigator. Sau đó ISE
Project Navigator sẽ quản lý tất cả các quá trình thiết kế trong trong project đó.
Quy trình thiết kết trong ISE bao gồm các quá trình sau : Design Entry -> Synthesis ->
Implementation -> Verification -> Device Configuration.
* Design Entry : Đây là bước đầu tiên trong quá trình thiết kế của ISE. Trong suốt
quá trình design entry, ta sẽ thiết kế những file nguồn (Source File) theo những yêu cầu
ban đầu (những mô tả chức năng của hệ thống mà ta cần phải thiết kế). Ở bước này, ta
sẽ dùng những ngôn ngữ mô tả phần cứng như : VHDL, Verilog HDL, Abel hoặc dạng
10

×