Trong thời đại bùng nổ thông tin hiện nay, khả năng ứng dụng và tiềm lực phát triển của hệ thống này là rất lớn, đặc biệt ở Việt Nam, các hệ thống như vậy còn rất ít, hầu hết đều được nh
Trang 2Từ yêu cầu của môn học đồ án thiết kế hệ thống số và thực tiễn như trên, chúng em quyết định chọn đề tài cho bài tập lớn môn học là:
Thiết kế được bộ điều khiển matrix led 2D quảng cáo đa năng dùng FPGA
Khi đề tài được mở rộng thì sẽ có khả năng ứng dụng thực tiễn rất lớn Trong thời đại bùng nổ thông tin hiện nay, khả năng ứng dụng và tiềm lực phát triển của hệ thống này là rất lớn, đặc biệt ở Việt Nam, các hệ thống như vậy còn rất ít, hầu hết đều được nhập từ nước ngoài với giá thành khá cao.
Và trong quá trình thực hiện đề tài, nhóm em xin chân thành cảm ơn thầy NGUYỄN NGỌC MINH đã giúp đỡ để giúp chúng em hoàn thành
đồ án này.
Hà Nội , 10/4/2013.
MỤC LỤC
MỤC LỤC 2 I.Đặt vấn đề và nhiệm vụ của đồ án 4
Trang 31.1 Đặt vấn đề 4
1.2 Nhiệm vụ của đồ án 5
Chương I : TÌM HIỂU VỀ LED MATRIX 5
1.1 Led matrix 5
1.2 Phân loại Led matrix 6
1.3 Nguyên tắc làm sáng đèn trên bảng LED 8
1.4 Nguyên tắc quét bảng ma trận LED 8
1.5 Phương pháp tạo mã chữ 10
Chương II : TỔNG QUAN VỀ FPGA 11
2.1 Giới thiệu FPGA 11
2.1.1Ý nghĩa và vai trò của FPGA 11
2.2.2 Tại sao phải dùng FPGA 12
2.2 Kiến trúc FPGA 12
Chương III : NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL 13
3.1 Giới thiệu về VHDL 13
3.2 Cấu trúc của chương trình mô tả bằng VHDL 13
3.2.1 Khai báo thư viện 14
3.2.2.Mô tả thực thể 15
3.2.3 Kiến trúc của mô hình 15
Chương IV : Thiết kế hệ thống 17
4.1.Giới thiệu về Xilinx ISE Design Suite 13.2 17
4.2 Sơ đồ hệ thống 19
4.2.2 IC đệm dòng ULN 2803 25
4.2.3 Tranzito 2n3904 26
Trang 44.4 Lưu đồ thuật toán 28
Kết luận 28
Hình ảnh thực tế của mạch 29
Phụ lục 30
1.Tài liệu tham khảo 30
2 Các thiết bị đã sử dụng 30
3.Code cho Module điều khiển (chạy chữ DTMT từ phải qua trái) 30
I.Đặt vấn đề và nhiệm vụ của đồ án
1.1 Đặt vấn đề
Sự phát triển của nền kinh tế thị trường ngày nay của đất nước ta tới những năm gần đây có nhiều sự thay đổi , các mặt hàng phục vụ đời sống con người ngày càng
đa dạng và phong phú trong đời sống sinh hoạt ,các hoạt động kinh tế kết hợp sự phát triển của công nghệ hiện đại đã làm cho cuộc sống đầy đủ tiện nghiw
hơn.Việc đưa thông tin quảng cáo đến với người tiêu dùng thông qua nhiều hình thức khác nhau
Trong nhiều hình thức đa dạng của thông tin quảng cáo như : báo ,đài tivi, tờ rơi ,áp phích thì việc dùng bảng thông tin điện tử là một cách đơn giản và hiệu quả để quảng cáo.Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế Một số hình ảnh biển điện tử trong thực tế :
Trang 5-Biển quảng cáo
đường điều khiển ,trong các ma trận Led các Led được nối chung với nhau theo hàng và theo cột Số lượng Led trên ma trận Led là axb trong khi số lượng ngõ ra bằng tổng số hàng và cột : a+b Việc điều khiển 1 ma trận Led kích thước lớn đòi hỏi thiết kế mạch driver và điều khiển rất phức tạp
Trang 61.2 Phân loại Led matrix
Bảng hiển thị ma trận LED (diot-matrix display) có rất nhiều loại và đủ kích cỡ tonhỏ khác nhau, mỗi bảng gồm có rất nhiều LED đơn được ghép lại với nhau trong một khối Trong khối đó các LED đơn được sắp sếp theo các hàng và các cột, tại mỗi giao điểm của hàng với cột là một LED đơn, và người ta thường phân biệt các loại bảng LED theo số hàng và cột Một bảng LED 5x7 tức là có 5cột dọc và 7 hàng ngang, tổng cộng sẽ có 5x7=35 LED đơn được ghép lại Cũng như vậy một bảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn ghép lại Và nhiều loại cỡ to hơn như 16x16 hay 32x32…
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)
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
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)
Trang 7Hình 1: Minh họa một bảng led matrix 8x8
Sơ đồ cấu tạo: một ma trận led có 16 chân được sắp xếp theo thứ tự 8 hàng 8 cột được đánh số từ 1 đến 8, số chân của led được đánh từ 1 đến 16 theo sơ đồ hình vẽ
Hình 2: Sơ đồ ghép nối của bảng led matrix 8x8
Trang 8Khi đóng vỏ, sự phân bố chân các hàng và cột là không theo thứ tự (do tính phức tạp trong ghép nối), do đó ta cần tìm hiểu kỹ để mắc mạch cho đúng, nên theo thứ
tự đó ta có các chân số cột gồm: 13,3,4,10,6,11,15,16;các chân số hàng theo thứ tự là: 9,14,8,12,1,7,2,5 Bảng ma trận LED có hai loại, loại có các cột là các chân Anode, còn hàng là các chân Cathode và loại kia thì ngược lại các cột là Cathode, hàng là Anode Khi sử dụng LED ta cần chú ý điều này để điều khiển cho đúng
1.3 Nguyên tắc làm sáng đèn trên bảng LED
Khi muốn làm sáng LED đơn, ta cần đưa điên áp dương vào chân Anode và điện
áp âm vào chân Cathode với giá trị thích hợp, khi đó LED sáng Giá trị điện áp và dòng điện tuỳ thuộc vào màu sắc từng loại LED
Dòng chảy qua các LED để đảm bảo độ sáng bình thường là từ 10mA cho đến 25mA.Khi ta muốn làm sáng một điểm trên bảng ma trận LED ta cũng làm tương tự
1.4 Nguyên tắc quét bảng ma trận LED
Trong đề tài này em sử dụng 4 bảng LED 8x8 ghép lại thành một bảng cỡ 8x32 (8 hàng và 32 cột) Để hiển thị ký tự lên bảng LED, ở đây ta dùng phương pháp quét cột và xuất dữ liệu hàng Quá trình quét cột là ta gửi tín hiệu cho phép đến từng cộttrong từng thời điểm Cùng lúc đó ta gửi dữ liệu hàng đến 8 hàng.Trong đề tài này tín hiệu cho phép cột là mức logic ‘0’, và dữ liệu hàng tươngứng là mức ‘1’ hay ‘1’của từng hàng, mức ‘0’ ứng với LED sáng (on) và mức‘1’ là tắt (off)
• Đầu tiên ta đưa dữ liệu cần hiển thị đến 8 hàng, ví dụ 11100110
• Kích hoạt cột thứ nhất và các LED tương ứng sẽ sáng Tạo một thời gian trễ,sau đó tắt cột thứ nhất
• Gửi tiếp giá trị dữ liệu 8 hàng của cột thứ 2, kích hoạt cột thứ 2, tạo trễ vàlại tắt cột thứ 2
• Quá trình quét đó cứ tiếp diễn cho đến khi quét hết 32 cột của bảng
LED.Việc quét hiển thị này diễn ra trong thời gian rất ngắn, cỡ vài chục ms,
ta sẽ thấy hình ảnh hay chữ hiển thị trên bảng LED Tuy rằng trong mỗi thời điểm chỉ có một cột được sáng nhưng do thời gian quét rất nhanh và dohiện tương lưu ảnh trong võng mạc của mắt nên ta thấy hình ảnh xuất hiện liên
Trang 9tục Tần số quét cần phải đảm bảo sao cho đủ hoặc lớn hơn 24hình/s.Thường
ta chọn tần số quét từ 40Hz đến 100Hz hoặc có thể lớn hơn
Dữ liệu hiển thị của hàng được lấy từ StrataFlash ROM của Kit hoặc từ ROM ngoài
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 đồng thời cả 2 chân Ví dụ để LED sáng thì điện áp 5V phải đưa vào chân dương và chân âm phải được nối mass, LED sẽ tắt khi chân âm nối với điện áp mức caoVới đề tài này, chúng em chọn loại ma trận LED 8x8 để hiển thị.Ta có sơ đồ nguyên lý của Ma trận LED 8x8:
Để 1 phần ma trận có thể sáng như hình vẽ Thực hiện quét dòng và cột:Chọn cột 1,đưa điện áp cột 1 về 0
• Đèn 1 tắt =>Điện áp đưa vào hàng 1 là 0V
• Đèn 2 tắt =>Điện áp đưa vào hàng 2 là 0V
• Đèn 3 tắt =>Điện áp đưa vào hàng 3 là 0V
• Đèn 4 tắt =>Điện áp đưa vào hàng 4 là 0V
• Đèn 5 tắt =>Điện áp đưa vào hàng 5 là 0V
Trang 10• Đèn 6 tắt =>Điện áp đưa vào hàng 6 là 0V
• Đèn 7 tắt =>Điện áp đưa vào hàng 7 là 0V
• Đèn 8 tắt =>Điện áp đưa vào hàng 8 là 0V
• Chọn cột 2 : đưa điện áp cột về 0.Sau đó quét lần lượt các hàng
1,2,3,4,5,6,7,8
• Đèn 1 sáng =>Điện áp đưa vào hàng 1 là 5V
• Đèn 2 sáng=>Điện áp đưa vào hàng 2 là 5V
• Đèn 3 sáng =>Điện áp đưa vào hàng 3 là 5V
• Đèn 4 sáng=>Điện áp đưa vào hàng 4 là 5V
• Đèn 5 sáng =>Điện áp đưa vào hàng 5 là 5V
• Đèn 6 sáng => Điện áp đưa vào hàng 6 là 5V
• Đèn 7 sáng => Điện áp đưa vào hàng 7 là 5V
• Đèn 8 sáng =>Điện áp đưa vào hàng 8 là 5V
Tiếp tục quét với các cột từ 3 đến 8 bằng cách như trên, sau đó chuyển sang quét đèn LED thứ hai một cách tương tự
Để mắt người nhận biết được toàn bộ hình ảnh của ma trận ta phải tiến hànhquét nhiều lần Do mắt người không phân biệt được sự thay đổi ảnh nếu ảnh đóđược quét với tốc độ 24 hình/s nên nếu ta quét ảnh với tốc độ lớn hơn hoặc bằng24 hình/s thì ảnh sẽ chạy liên tục và không bị giật
1.5 Phương pháp tạo mã chữ
Tạo mã chữ có thể thực hiện thủ công hay sử dụng phần mêm Matix.Để đơn giản,nhanh ,thuận tiện,và chính xác dùng phần mềm matix tiết kiệm thời gian tạo
mã chữ.Phần mềm có thể tạo mã chữ cho ma trận led 8x8
• Với dữ liệu tích cực ở mức 0(chữ cần hiển thị là những đèn tắt trên lền đèn sáng)
• Với dữ liệu tích cực ở mức 1(chữ cần hiển thị là những đèn sang trên lền đèn tắt)
Trang 11Ở đây ,để tạo font chữ D (thủ công)-mức tích cực thấp:
Font chữ D là:
1111111100000000011111100111111001111110100000011111111111111111
Chương II : TỔNG QUAN VỀ FPGA
2.1 Giới thiệu FPGA
FPGA là viết tắt của thuật ngữ tiếng anh “Field programmable Gate Array”, nghĩa
là Mảng cổng lập trình được dạng trường FPGA thuộc họ ASIC lập trình được
2.1.1Ý nghĩa và vai trò của FPGA
ASIC lập trình được đã xuất hiện từ lâu dưới dạng PLD (Programmable Logic Device), nhưng vai trò của các dạng ASIC này là không nhiều vì số lượng cổng trên Chip rất ít dẫn tới chức năng của các PLD này cũng nghèo nàn và thường chỉ
sử dụng với những nhiệm vụ rất hạn chế trong toàn hệ thống Kể từ năm 1980,Các công ty sản xuất PLD hàng đầu đã đẩy mạnh quá trình nghiên cứu về FPGA và nhanh chóng cho ra các thế hệ FPGA với số lượng cổng và tốc độ ngày càng
cao.các FPGA hiện nay có số lượng cổng đủ lớn để có thể thay thế cả một hệ thốngbao gồm lõi CPU, Bộ điều khiển bộ nhớ (Memory Controller), các ngoại vi như SPI,Timer, I2C, GPIO, PWM, Video/Audio Controller… (nghĩa là tương đương với các SoC hiện đại).Tuy nhiên,FPGA không thể nào so sánh được với ASIC và SoC cả về kinh tế lẫn tốc độ hoạt động Nhưng bù lại, với khả năng tái cấu hình mạnh, FPGA đóng một vai trò vô cùng to lớn trong việc giảm giá thành và thời gian chế tạo ASIC bằng cách sử dụng FPGA trong quá trình thiết kế luận lý trước khi đưa ra sản xuất các ASIC mẫu Quy trình sản xuất Chip ASIC bằng cách này
Trang 12gọi là fabless rất phổ biến hiện nay trên thế giới, giúp các công ty nhỏ và vừa và đặc biệt là các nước yếu về công nghệ như Việt nam tham gia vào thế giới của IC.
2.2.2 Tại sao phải dùng FPGA
• Để điều khiển VGA sử dụng CPU làm controller cần CPU với tốc độ 27Mhzhoạt động 100% CPU
• MCU/CPU/DSP vẫn cần các hardware khác bên cạnh trong các ứng dụng chuyên dụng
• Các ứng dụng xử lý hình ảnh/video, các ứng dụng mạng neuron,IA cần tốc
độ xử lý rất lớn Mặc dù các DSP đủ mạnh và các SoC mạnh có thể thực hiện được, nhưng sự lựa chọn còn phụ thuộc vào vấn đề kinh tế
• Có thể thiết kế ra 1 con CPU của chính mình với FPGA
• Đến với FPGA,sẽ có cơ hội để tiếp cận gần nhất thế giới của IC
• Có thể thực hiện một hệ thống với đầy đủ CPU/Peripheral/IO… và kết nối chúng theo ý muốn,hoặc thậm chí một hệ thống đầy đủ không cần cả CPU như các Chip giải mã/nén Video/Audio, các Chip xử lý hình ảnh/giọng nói, các Chip PID Motor Controller, networking chip …
2.2 Kiến trúc FPGA
FPGA được cấu thành từ các khối logic(logic Block) được bố trí dưới dạng ma trận,chúng được nối với nhau thông qua hệ thống các kênh kết nối lập trình được.Hệ thống này còn có nhiệm vụ kết nối với các cổng giao tiếp IO_PAD củaFPGA
Trang 13PGA là công nghệ IC lập trình mới nhất và tiên tiến nhất hiện nay Thuật ngữ Field Programmable chỉ quá trình tái cấu trúc IC có thể đƣợc thực hiện bởi người dùng cuối, trong điều kiện bình thường Ngoài khả năng đó FPGA có mật độ tích hợp logic lớn nhất trong số các IC khả trình với số cổng tương đương lên tới hàng trăm nghìn, hàng triệu cổng FPGA không dùng các mảng lập trình giống như trong cấu trúc của PAL, PLA mà dùng ma trận các khối logic Điểm khác biệt cơ bản thứ ba của FPGA so với các IC kể trên là ở cơ chế tái cấu trúc,toàn bộ cấu hình của FPGAthường được lưu trong một bộ nhớ động (RAM),chính vì thế mà khi ứng dụng FPGA thường phải kèm theo một ROM ngoại vi để nạp cấu hình cho FPGA mỗi lần làm việc
VHDL ra đời trên yêu cầu của bài toán thiết kế phần cứng lúc bây giờ ,nhờ sử dụngngôn ngữ này mà thời gian thiết kế của sản phẩm bán dẫn giảm đi đáng kể ,đồng thời với giảm thiểu chi phí cho quá trình này do đặc tính độc lập với công nghệ ,với các công cụ mô phỏng và khả năng tái sử dụng các khối đơn lẻ Các ưu điểm chỉnh của VHDL có thể liệt kê như là : tính công cộng ,được hỗ trợ bởi nhiều công nghệ,tính độc lập với công nghệ,khả năng mô tả mở rộng ,khả năng trao đổi ,tái sử dụng
3.2 Cấu trúc của chương trình mô tả bằng VHDL
Cấu trúc tổng thể của một khối thiết kế VHDL gồm ba phần :
• Phần khai báo thư viện
• Phần mô tả thực thể
• Phần mô tả kiến trúc
Trang 14Cấu trúc của một thiết kế VHDL
3.2.1 Khai báo thư viện
Khai báo thư viện phải đặt đầu tiên trong mỗi thiết kế VHDL ,lưu ý rằng nếu ta sử dụng một tệp mã nguồn để chứa nhiều khối thiết kế khác nhau thì mỗi khối đều phải yêu cầu có khai báo thư viện đầu tiên nếu không khi biên dịch sẽ phát sinh ra lỗi
Ví dụ về khai báo thư viện
Trang 153.2.2.Mô tả thực thể
Thực thế (entity) của mô hình
Phần khai báo thực thể chỉ rõ TÊN của thực thể và liệt kê các lối vàovà ra và có dạng chung như sau
Entity tên_thực_thể is
Generic (khai báo generic);
Port (khai báo các tín hiệu vào ra);
End tên_thực_thể;
Một thực thể luôn bắt đầu với từ khóa entity, theo sau là tên của thực thể và
từ khóa is Rồi đến các khai báo cổng với từ khóa port Mộtthực thể luôn kết thúc với từ khóa end và tên của thực thể
Tên thực thể là tên của thực thể do người dùng đặt
Các tín hiệu vào ra: tên của các tín hiệu do người dung đặt, ngăncách với nhau bởi dấu phẩy, chỉ ra các tín hiệu nối với bên ngoài
Các chế độ của tín hiệu khai báo trong “port”: chỉ ra chiều của tínhiệu, có các mode sau:
• in: chỉ ra rằng tín hiệu là một tín hiệu vào
• out : chỉ ra rằng tín hiệu là một tín hiệu ra khỏi thực thể và chỉ các thựcthể khác dùng đến tín hiệu này mới có thể đọc giá trị của nó
• buffer : tín hiệu là tín hiệu ra và giá trị của nó có thể được đọc cả ở bên trong thực thể
• inout : tín hiệu có thể là tín hiệu vào hoặc tín hiệu ra
3.2.3 Kiến trúc của mô hình.
Cấu trúc của nó như sau:
ARCHITECTURE tên_architecture OF tên_entity IS
Trang 16[các phần khai báo:signal, component…]
BEGIN
[code]
ENDtên_architecture;
Trong kiến trúc mô hình chúng ta có thể khai báo tất cả mọi thứ liên quan tới
chương trình, trong đó có các process, các chương trình con với lời gọi hàm
component, và khai báo các signal và các câu lệnh“port map” để kết nối các thành phần con có trong kiến trúc Nói chung cũng như ngôn ngũ C thì ở đây kiến
trúc(architecture) là thân của chương trình của ta
1.Mô tả hành vi
Mô tả hành vi gần giống như mô tả bằng lời cách thức tính toán kết quảđầu ra dựavào các giá trị đầu vào Toàn bộ mô tả hành vi phải được đặt trongmột khối quá trình {process (sensitive list) end process;} ý nghĩa của khối này là nó tạo một quá trình để ―theo dõi sự thay đổi của tất cả các tín hiệu có trong danh sách tín hiệu (sensitive list), khi có bất kỳ một sự thay đổi giá trị nào của tín hiệu trong danh sách thì nó sẽ thực hiện quá trình tínhtoán ra kết quả tương ứng ở đầu ra Chính vì vậy trong đó rất hay sử dụng cácphát biểu tuần tự như if, case, hay các vòng lặp loop.Việc mô tả bằng hành vi không thể hiện rõ được cách thức cấu tạo phầncứng của vi mạch như các dạng mô tả khác và tùy theo những cách viết
khácnhau thì có thể thu được những kết quả tổng hợp khác nhau.Trong các mạch dãy đồng bộ, khối làm việc đồng bộ thường được mô tả bằng hành vi, ví dụ như trong đoạn mã sau mô tả thanh ghi sau:
Trang 172.Mô tả luồng dữ liệu
Mô tả luồng dữ liệu (dataflow)là dạng mô tả tương đối ngắn gọn và rất hay được
sử dụng khi mô tả các khối mạch tổ hợp Các phát biểu trong khối begin end là các phát biểu đồng thời (concurrent statements) nghĩa là không phụ thuộc thời gian thực hiện của nhau, nói một cách khác không có thứtự ưu tiên trong việc sắp xếp các phát biểu này đứng trước hay đứng sau trong đoạn mã mô tả Ví dụ cho khối full_adder thì mô tả luồng dữ liệu như sau:
architecture dataflow of full_adder is
begin
sum <= (a xor b) xor Cin;
Cout <= (a and b) or (Cin and (a xor b));
end dataflow;
3 Mô tả cấu trúc
Mô tả cấu trúc (structure) là mô tả sử dụng các mô tả có sẵn dưới dạng khối con(component) Dạng mô tả này cho kết quả sát với kết quả tổng hợp nhất.Mô tả cụ thể về cấu trúc mạch, ưu điểm của phương pháp này là khi tổng hợp trên thư viện cổng sẽ cho ra kết quả đúng với ý tưởng thiết kế nhất
Chương IV : Thiết kế hệ thống
4.1.Giới thiệu về Xilinx ISE Design Suite 13.2
Xilinx ISE (Integrated Software Environment) là một bộ phần mềm thiết kế củaXilinx , 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âucuố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ạomộ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đó
Với sự hỗ trợ sản xuất đầy đủ cho các họ FPGA Xilinx Virtex-6 và Spartan-6, sảnphẩm ISE tiếp tục sự tiến triển như là bộ phần mềm thiết kế của ngành công nghiệp