基于cyclone EP1C6的LED大屏設計方案
主控板結構如圖3所示,上位機發(fā)送的數(shù)據(jù)通過雙絞傳送到RS422接收模塊[2],經轉換后送至單片機,由單片機的IOB7口以UART中斷的方式接收上位機發(fā)送的數(shù)據(jù)。單片機將接收的串口數(shù)據(jù)以兩個字節(jié)為單位逐一寫入內置的FLASH中。單片機內部的2K字SRAM在此作為一個緩存區(qū),每次單片機要向FPGA中寫一屏新的數(shù)據(jù)時,先按特定的地址從FLASH中讀出數(shù)據(jù)并存放到SRAM中,再將SRAM的數(shù)據(jù)并行寫到FPGA的雙口RAM中。
FPGA在其內部配置一個雙口RAM緩存單片機寫入的數(shù)據(jù),同時將這些數(shù)據(jù)按照大屏的結構和掃描電路的特點,從雙口RAM中有選擇性地讀出,并將讀出的數(shù)據(jù)由并轉串,按照一定的時序對大屏點陣進行、列掃描,這個時序也是由FPGA產生的。掃描數(shù)據(jù)和時序控制信號從FPGA的I/O口輸出后,經過一個由74LS245構成的隔離驅動電路送至大屏幕。
2.3基于FPGA的雙口RAM的配置
基于FPGA的雙口RAM的配置是本設計的獨特之處。RAM作為中介將單片機送來的數(shù)據(jù)在LED電子屏上顯示出來,由于數(shù)據(jù)顯示是一種動態(tài)掃描方式,若采用一個RAM 區(qū),單片機在寫RAM 時,F(xiàn)PGA只能處于等待狀態(tài),F(xiàn)PGA讀RAM時,單片機寫數(shù)據(jù)也無法同時進行,導致屏幕刷新頻率降低,動態(tài)掃描不連續(xù),影響屏幕的顯示效果。因此設計了兩個同樣大小的RAM 區(qū):A區(qū)和B區(qū)。當單片機寫A區(qū)時, FPGA讀B區(qū)的數(shù)據(jù),單片機寫B(tài)區(qū)時,F(xiàn)PGA讀A區(qū)的數(shù)據(jù)。此外,由于FPGA掃描模塊可以達到很高的掃描速率,而單片機的運行速率則相對較低,且兩個模塊間有大量的數(shù)據(jù)交換,為此選擇高速雙口RAM,一方面保證單片機和FPGA同時讀寫數(shù)據(jù),另一方面保證了數(shù)據(jù)的處理速度。
cyclone EP1C6提供了20個具有異步p雙端口p帶寄存器輸入口p可選擇的帶寄存器輸出口的存儲模塊―M4K模塊,每個M4K模塊的存儲容量為4Kbit。在QUARTUS軟件中進行簡單的設置,就可以將M4K模塊配置成雙口RAM,數(shù)據(jù)和地址的位寬可根據(jù)實際需要進行選擇。本文設計的RAM可容納兩屏的數(shù)據(jù),數(shù)據(jù)位寬為16位,地址為12位,其中地址的最高位作RAM分區(qū)用,每個區(qū)存儲一屏的數(shù)據(jù),兩屏讀寫同時進行,雙口RAM的配置如圖4所示。
本文引用地址:http://www.biyoush.com/article/169530.htm
其中wren是單片機往FPGA中寫入數(shù)據(jù)的寫使能信號,wraddress[11..0]是寫的地址信號, wrclock是寫時鐘,data[15..0]是寫的數(shù)據(jù),rdaddress[11..0]是讀的地址信號,rdclock是讀數(shù)據(jù)的時鐘信號,q[15..0]是讀出的數(shù)據(jù)。
2.4基于FPGA的獨立掃描單元
點陣模塊是紅色LED共陰模塊,4塊16×16點陣模塊連接成64×16點陣作為一個單元進行控制,整個大屏有3×8個這樣的單元。將LED的公共接口作為行控制,行掃描信號同時控制著一行中多個LED的通斷,以每個LED流過的電流為10mA計算,一個單元有64列,行掃描信號至少得提供1A左右的電流,因此,在掃描信號送到LED之前必須經過一個三極管以提高驅動能力。三極管選用高速中功率達林頓管TIP127,它的集電極吸收電流最大可達5A,保證行驅動能力。由于點陣的每行需要一個三極管驅動,所以一個64×16的單元塊需要16個TIP127。行掃描電路采用帶鎖存的移位寄存器74LS595來控制,每片74LS595控制 8行點陣的選通與否。由于采用的掃描方式為每隔8行數(shù)據(jù)同時掃描,一片74LS595每次只能點亮一行的數(shù)據(jù),每行點亮的時間相等即占空比為1/8,因此屏幕亮度非常均衡。
列掃描電路的功能是把要顯示的行對應的列數(shù)據(jù)送到LED的陰極,列掃描也是由74LS595控制的。本文設計的屏幕的硬件結構特點是:每8行LED的陰極是連在一起的,每片74LS595控制8列數(shù)據(jù),每隔8行同時掃描,對于一個64×16的點陣單元,共需要8×2個74LS595控制,每行上的74LS595都是級聯(lián)起來的。每完成一次列掃描,F(xiàn)PGA都要輸出一個鎖存信號給74LS595以鎖存列數(shù)據(jù),接著輸出行掃描信號點亮對應的行,再對行掃描數(shù)據(jù)進行鎖存,如此循環(huán)往復實現(xiàn)整個大屏幕的動態(tài)實時顯示功能[4]。
由于FPGA在行列掃描之前已經對數(shù)據(jù)進行并串轉換,數(shù)據(jù)都是串行輸出的,每隔8行同時掃描,整個屏幕行掃描只需占用1個I/O口,列掃描只需占用16個I/O口,從而大大減少了對I/O的占用。采用FPGA設計掃描邏輯,掃描的關鍵不在是硬件連接,而是對芯片資源的配置。
3 軟件設計
系統(tǒng)的軟件設計由三部分組成:上位機圖象/文字編輯與發(fā)送軟件設計,單片機控制單元軟件設計,F(xiàn)PGA控制單元軟件設計。
3.1 上位機軟件設計
上位機的圖象/文字編輯與發(fā)送軟件由Visual Basic編寫,只須在界面中將屏幕大小設置為192×128,串口選擇COM1或COM2,波特率設置為9600,設置每屏起始地址和要發(fā)送的屏數(shù),調入包含相關信息的文件,點擊“發(fā)送”按鈕即可。該軟件適用于任何大小彩色/單色屏,提供了豐富的圖形/文字編輯p修改功能,也可以直接調用WINDOWS中的16色畫圖文件(*.bmp)。
3.2 單片機控制單元軟件設計
單片機控制單元的軟件設計主要實現(xiàn)三大功能:串行數(shù)據(jù)接收和存儲、數(shù)據(jù)輸出和圖象顯示方式變換。串行數(shù)據(jù)接收部分主要是通過UART中斷接收并保存數(shù)據(jù)。圖象顯示方式變換部分實現(xiàn)圖象的變換如上移、下移、左移、右移等以實現(xiàn)豐富多彩的圖象顯示效果。單片機軟件設計是在凌陽科技的集成開發(fā)環(huán)境unSP IDE下完成的,主要由一個C文件和一個ASM文件組成,C文件包括5屏數(shù)據(jù)的循環(huán)送顯和圖像顯示方式變換,匯編文件包括中斷服務子程序和其他函數(shù)調用的子程序。
評論