Thiết kế bộ điều khiển matrix led 2D quảng cáo đa năng dùng FPGA
Trang 1MỤ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
Trang 2KẾT LUẬN………
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ềunướ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ênquan, ả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ệnnghi, 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 conngườ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ànnhư 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, thaycon 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ầmchiế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:
Trang 3ý, 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ắtmắ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ằngbả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ầuquả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ácphương pháp quét LED, hiển thị xử lý hình ảnh…Sau đó tìm hiểu về quảng cáo đană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 đènbằ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ềukhiể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ệnqué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ếptheo 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ềulầ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ếutố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
Trang 4Mộ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ángbình thường ở điện áp 5V, dòng điện từ 10-20mA Để đảm bảo Led sáng bình thườngthì yêu cầu mạch thiết kế phải đáp ứng đủ 2 điều kiện trên.
Để 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 Để lednà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ỚPD08ĐTXLTH1 )
Trang 5Ta 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:
Đè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ậnLed 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
Trang 62 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
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íchthước nhỏ (8x16, 16x16, 16x32….) và những modul led thì lại cấu tạo từ 2 loại matrậ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), 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ốtngoà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à
semi-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
Trang 7
Loại 3 màu
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ại8x8 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
Trang 8III 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ứctạ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)
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 sosánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logicthì 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útngắ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ủaFPGA 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 quantrọ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
Trang 9Khố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
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ómkhá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ợpthêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 củaXilinx 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 DSPSlide 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 Xilinxchứ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êncá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áttriể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ậyVHDL 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ế 1phầ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ủanhiều hãng sản xuất chip khác nhau
Trang 10Sử 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ứngvớ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ồmviệ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ớinhau 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ầncứ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ố
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 đốitượng (entity) có thể hiểu như là 1 module mạch hay 1 tổ hợp logic Các chân giao tiếpcủ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 đốitượ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ìnhcủ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ônngữ miêu tả trong thiết kế phần cứng có sử dụng các vi mạch tổ hợp
Trang 11CHƯƠ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ãngXilinx, 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ốicù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ộtproject mới trong ISE thông qua công cụ quản lý ISE Project Navigator Sau đó ISEProject 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ầuban đầ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ạngSchematic để thiết kế Chúng ta có thể dùng nhiều ngôn ngữ khác nhau trong cùngmột thiết kế Ví dụ như : thiết kế các module chức năng bằng Verilog HDL, sau đódùng dạng schematic (sơ đồ khối) để thiết kế hệ thống chính
* Synthesis : Sau khi thiết kế hệ thống và thực hiện những mô phỏng để kiểm tra
chức năng logic của hệ thống, chúng ta phải chạy synthesis để chuyển đổi những filenguồn được viết bằng VHDL,Verilog HDL, … thành file netlist Những file netlist nàycần thiết để đưa vào quá trình Implementation
* Implementation : Quá trình này sẽ chuyển đổi thiết kế ở mức logic thành các file
định dạng vật lý để có thể download xuống FPGA Sau khi chạy Synthesis, chúng ta
sẽ có những file netlist, quá trình Implementation sẽ chuyển đổi những file netlist đóthành những file cấu hình vật lý cụ thể dựa vào linh kiện FPGA cụ thể mà ta đang sửdụng, do đó quá trình này đòi hỏi chúng ta phải chỉ rõ linh kiện FPGA nào đang được
sử dụng
* Verification: Sau khi chạy bước Implementation, chúng ta sẽ có thể mô phỏng thiết
kế của mình một cách chính xác hơn Vì quá trình mô phỏng ở bước Design Entry chỉ
có thể mô phỏng chức năng của mạch chứ nó chưa thể mô phỏng thời gian (timing),timing tùy thuộc vào linh kiện vật lý cụ thể
* Device Configuration: Đây là bước cuối cùng trong suốt quá trình thiết kế Ở
bước này các file định dạng cấu hình sẽ được dùng để tạo ra những file bitstream đểnạp xuống chip FPGA
Trang 121 Xilinx XC3S500E Spartan-3E FPGA
2 Xilinx 4 Mbit Platform Flash configuration PROM
3 Xilinx 64-macrocell XC2C64A CoolRunner CPLD
4 64 MByte (512 Mbit) of DDR SDRAM, x16 data interface, 100+ MHz
5 16 MByte (128 Mbit) of parallel NOR Flash (Intel StrataFlash)
6 16 Mbits of SPI serial Flash (STMicro)
7 2-line, 16-character LCD screen
8 PS/2 mouse or keyboard port
9 VGA display port
MATRIX LED 8X8 RG
ULN2803
74HC595