Đề tài Thiết kế mạch quang báo đa năng matrix led dùng fpga

Thiết kế mạch quang báo đa năng matrix led dùng fpga (bản demo, no code fpga)thực hiện : Ngaophongvan90 MỤC LỤC 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 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

docx25 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2870 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế mạch quang báo đa năng matrix led dùng fpga, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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…………………………………………………………………………… 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 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. Để 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: Đè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. 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 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) 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. 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ố. 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 Schematic để thiết kế . Chúng ta có thể dùng nhiều ngôn ngữ khác nhau trong cùng mộ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 file nguồn được viết bằng VHDL,Verilog HDL, … thành file netlist. Những file netlist này cầ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 . II. SƠ ĐỒ KHỐI HỆ THỐNG ROW MATRIX LED 8X8 RG G R ULN2803 74HC595 1. Kit spactan3 1.1. Các thành phần của kit: 1. 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 10. 10/100 Ethernet PHY (requires Ethernet MAC in FPGA) 11. Two 9-pin RS-232 ports (DTE- and DCE-style) 12. On-board USB-based FPGA/CPLD download/debug interface 13. 50 MHz clock oscillator 14. SHA-1 1-wire serial EEPROM for bitstream copy protection 15. Hirose FX2 expansion connector 16. Three Digilent 6-pin expansion connectors 17. Four-output, SPI-based Digital-to-Analog Converter (DAC) 18. Two-input, SPI-based Analog-to-Digital Converter (ADC) with programmable- gain 19. pre-amplifier 20. ChipScope™ SoftTouch debugging port 21. Rotary-encoder with push-button shaft 22. Eight discrete LEDs 23. Four slide switches 1.2. Sơ đồ chân XC3S500E XC3S500E có kiểu chân BGA, 320 chân như hình: Cách đánh số chân: Vị trí của 1 chân được xác định theo qui tắc ma trận 2 chiều. Chiều ngang (dòng) là số từ 0 tới 18. Chiều dọc (cột) là chữ từ A tới V. Ví dụ: chân A1, là chân ở dòng A, cột 1. Đây là chân GND của FPGA. Tài nguyên: 10000 logic cells, có 232 chân I/O cho người dùng tự định nghĩa. 1.3. Bộ tạo dao động trên kit Có 3 nguồn cấp xung clk cho FPGA: Dùng thạch anh có sẵn 50 MHz trên board. Ngõ ra của thạch anh nối với chân C9 của chip. 2. Cấp xung clk thông qua chân cắm 8 pin trên board (hình 3.1) Ngõ ra của thạch anh nối với chân B8 của chip. 3. Cấp Cấp xung clk thông qua chân cắm SMA, chân cắm này chỉ nhận clk từ máy phát clk, không dùng trực tiếp thạch anh được . Ngõ ra clk nối với chân A10 của chip. 1.4. Các nút chuyển, nhấn , led báo XC3S500E có 4 nút chuyển Theo thứ tự là : SW0, SW1, SW2, SW3 kết nối với chân tương ứng của chip là : L13, L14, H18, N17 của chip FPGA. Để ý: đây là các chân ngõ vào của FPGA. Trên Chip chỉ có 232 chân I/O tùy chọn. Khi các nút SWx (x =0,3) ON (bật lên) thì chân FPGA tương ứng ở mức cao (3.3V) và ngược lại. XC3S500E có 4 nút nhấn Theo thứ tự là BTN_EAST (phải), BTN_NORTH ( trên), BTN_SOUTH (dưới), BTN_WEST (trái), kết nối tương ứng với các chân H13, K14, V17, D18 , là các chân input của FPGA. Khi nhấn các nút trên thì chân tương ứng với nó sẽ lên mức cao. Khi không nhấn, cần dùng 1 điện trở nội pull-down để tạo mức thấp (bắt buộc). Nút Encoder : có 3 ngõ ra: ROT_A, ROT_B, ROT_CENTER : nối với chân K18, G18, V16 của FPGA. Nút Encoder có 2 chức năng : Như nút nhấn : nhấn xuống sẽ đưa chân V16 của FPGA lên mức cao. Xoay phải (hay trái) sẽ tạo xung encoder ngõ ra tương ứng (hình 2-8). Cả 3 chân ngõ ra của encoder điều cần dùng điện trở pull-up nội. XC3S500E có 8 Led (góc dưới cùng bên phải) LD0, …, LD7 nối với 8 chân tương ứng F9, E9, D11, C11, F11, E11, E12, F12 của FPGA. Đầu còn lại của các Led nối với GND thông qua điện trở 290 ohm. (hình 2-10). 1.5. cấp nguồn Tất cả các chân của FPGA điều có 2 lựa chọn nguồn cấp 2.5 v hoặc 3.3V thông qua jumper JP9. (cắm bên trái 2.5 V, cắm bên phải 3.3 V). 1.6. Cấu hình cho FPGA Có 4 cách để nạp chương trình cho FPGA (hình 4-1). Nạp trực tiếp vào FPGA thông qua cổng JTAG hay cổng USB. Nạp vào Platform Flash PROM XCF04S (4Mbit), rồi cấu hình cho FPGA ở chế độ Master Serial Mode. Nạp vào serial Flash PROM ST Microelectronics (16 Mbit), rồi cấu hình cho FPGA ở chế độ SPI Mode. Nạp vào StrataFlash parallel PROM Intel (128 Mbit), rồi cấu hình cho FPGA ở chế độ BPI Up Mode hay BPI Down Mode. Để thiết lập các chế độ nạp cho FPGA, ta set jumper JP 30 như bảng 4-1. Mỗi lần thay đổi chế độ cấu hình phải nhấn nút PROG (hình) để restart lại cấu hình. Cách nạp trực tiếp vào FPGA thông qua cổng JTAG hay cổng USB: Set Jumper như bảng 4-1 trên. Mở Tool iMPACT rồi nạp bình thường như với CPLD. Nếu dùng cổng USB sẽ có cảnh báo: Chọn OK, rồi nạp bình thường (file có đuôi .bit). Để ý: Chương trình cấu hình cho FPGA bị mất khi cắt nguồn. 2. IC ghi dịch 74HC595 4HC595 là một thanh ghi dịch 8 bit đầu vào nối tiếp, có các đầu ra song song và nối tiếp, ngõ ra có bộ đệm 3 trạng thái. Sơ đồ chân của 74HC595 như sau: QA, QB, QC, QD, QE, QF, QG, QH: là các ngõ ra song song của 74HC595 Chân 14 (A): Dữ liệu đầu vào nối tiếp. muốn dịch bit 0 hay 1 thì tác động mức điện áp tương ứng vào đây. Ta sẽ lập trình để sau 8 xung clk vào chân 11 thì có 1 xung vào chân 14. Chân 9 (SQH) : đẩu ra nối tiếp Chân 13 (Output Enable): Tích cực mức thấp, khi chân này ở mức thấp thì tín hiệu từ bộ chốt được đưa ra đầu ra. Khi nó ở mức cao thì các đầu ra song song ở trạng thái trở kháng cao. Đầu ra nối tiếp không bị ảnh hưởng bởi chân này. Chân 12 (Latch clock): Quá trình chuyển từ mức thấp sang mức cao ở Latch clock sẽ chốt dữ liệu được dịch trong thanh ghi dich vào bộ chốt. Chân 11 (Shift Clock) : Đầu vào xung nhịp, một quá trình chuyển từ mức thấp đến mức cao ở chân này sẽ dịch dữ liệu trong thanh ghi dịch một nhịp. Chân 10 (Reset) : Reset không đồng bộ, tích cực mức thấp. Mức thấp ở chân này sẽ reset thanh ghi dịch nhưng không reset bộ chốt lối ra. Sơ đồ logic 74HC595 Hình ảnh thực tế IC chốt dich 74HC595 Nếu dùng 595 để quét thì chân clock và chân latch nối chung với nhau cũng được, giả sử có 16 cột thì cấp một xung vào chân data và cấp 16 xung clock, nếu dùng 595 để xuất dữ liệu thì bao nhiêu bit dữ liệu thì cần bấy nhiêu xung clock xuất đủ dữ liệu thì cấp xung latch. 3. IC đệm dòng ULN2803 Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy này của chuổi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức logic thấp như: TTL, CMOS hoặc PMOS/NMOS. ULN2803 có tác dụng ổn dòng trong khoảng thời gian rất ngắn. Tác dụng này làm cho các LED sáng đều vì trong khi quét do phải sáng cả hàng LED nên sự sụt dòng là rất lớn sẽ làm cho LED tối. Chú ý khi mô phỏng bằng proteus có thể ULN2803 không hoạt động(ma trận led không sáng), lắp mạch thật vẫn chạy tốt. Sơ đồ khối IC ULN2803 ULN2803 được thiết kế để phù hợp với chuẩn TTL Vài chỉ số kĩ thuật của IC ULN2803: Dòng điện ngõ vào khoảng 25mA Điện áp ngõ vào khoảng 0.5V – 30V Dòng ra tới 500 mA/ 50 V Đệm 8 kênh riêng biệt Đầu ra đảo(vào 1 ra 0 và ngược lại) Cấu tạo 1 kênh đệm dòng của ULN2803 Hình ảnh thực tế IC ULN2803 4. BJT A1013 1 hàng có nhiều LED sáng nên sự sụt dòng là rất lớn vì vậy ta dùng BJT A1013 đệm dòng cho các hàng. Nhìn trên sơ đồ phân cực của transitor lúc này Transitor làm việc ở chế độ đóng mở và sơ đồ phân cực được lắp theo hình vẽ. Để điều khiển được đóng mở Transitor thì cần phải đưa tín hiệu mức 0 vào Bazơ. Mức 1 thì transitor sẽ khóa. Phân cực cho BJT bằng trở 10k và 1k mắc như hình vẽ. 5. Sơ đồ nguyên lý 6. Thiết kế PCB modul hiển thị III. LƯU ĐỒ THUẬT TOÁN H/Ư 1: H/Ư 2: H/Ư 3: H/Ư 4: IV. CHƯƠNG TRÌNH VHDL TÀI LIỆU, PHẦN MỀM SỬ DỤNG TRONG ĐỒ ÁN Tài liệu: Thiết kế logic số: ths. Nguyễn Trung Hiếu www.dientuvietnam.net/forum www.hoiquandientu.com phần mềm: Xilinx ise, proteus 7.8, altium 10.1, Matrix led V. Kết luận Qua quá trình thực hiện đề tài : “thiết kế bộ điều khiển ma trận led 2D quảng cáo đa năng”, từ việc nghiên cứu hệ thống LED matrix, cấu tạo kết nối các phần tử đến cấu trúc cách thiết kế lập trình cho FPGA và sử dụng thành thạo phần mềm Xilinx ISE đã giúp em củng cố kiến thức và rút ra được nhiều bài học quý về FPGA.

Các file đính kèm theo tài liệu này:

  • docxThiết kế mạch quang báo đa năng matrix led dùng fpga (bản demo).docx
Luận văn liên quan