LED點陣顯示屏使用高亮度LED發光管構成點陣,通過編程控制可以顯示中英文字符、圖形及視頻動態圖形.LED顯示以其組構方式靈活、亮度高、技術成熟、成本低廉等特點在證券、運動場館及各種室內/外顯示場合得到廣泛的應用.隨著集成電路技術的發展,數字系統迅速朝更高集成度、超小型化、高性能、高可靠性和低功耗的方向發展.用CPLD的引入,實現了LED屏自動掃描的功能,大幅提高LED屏的頻率,同時分擔了CPU 的任務,提高了CPU 的處理能力.
1 LED 點陣顯示屏驅動機制
在加油系統中引入了點陣顯示,主要用來顯示加油的價格和計量,也可以用來顯示時間和廣告.用于發布消息、顯示漢字的點陣式LED顯示屏通常由若干塊LED點陣顯示模塊組成;用于顯示的8×8單色LED顯示點陣模塊,每塊有64個LED;為了減少引腳且便于封裝,LED顯示點陣模塊采用陣列形式排布,即在行列線的交點處接有顯示LED.因此,LED點陣顯示模塊的顯示驅動只能采用動態驅動方式,每次多只能點亮一行LED(共陽形式LED顯示點陣模塊)或一列LED(共陰形式LED顯示點陣模塊).微機通過總線操作控制來完成對每一個LED點陣顯示模塊內每個LED顯示點的亮、暗控制操作.以此類推,可實現整屏LED點陣的亮、暗控制,從而實現LED顯示屏漢字或圖像的顯示控制操作.
以一個由8個LED點陣顯示模塊組成的點陣顯示屏為例(如圖1),移位寄存器的輸入端是data引腳,pulse引腳接入移位寄存器的移位脈沖.點陣顯示控制板計算出顯示圖形的點陣碼,通過控制data和pulse引腳,輸入某行的數據,然后選通該行,LED顯示屏將得到該行的點陣顯示.這樣逐行掃描,得到整屏顯示效果.以顯示“A7我”的圖形為例,顯示的點陣碼是
“/*--A--*/0x00,0x00,0x00,0x10,0x10,0x18,0x28,0x28,
0x24,0x3C,0x44,0x42,0x42,0xE7,0x00,0x00
/*--7--*/0x00,0x00,0x00,0x7E,0x44,
0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,
0x10,0x00,0x00
/*--我--*/0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,
0xFF,0xFE,0x08,0x40,0x08,0x48,0x0E,0x28,
0x38,0x30,0xC8,0x20,0x08, 0x50, 0x09,
0x92,0x08,0x0A,0x28,0x06,0x10,0x02”。
以第10行為例,其點陣數據是“00111100 00010000 00111000 00110000”。點陣顯示控制板輸出該數據和同步移位脈沖,圖1上部的移位寄存器將接收“00111100 00010000 00111000 00110000”并鎖存,然后LED顯示板的第10行被選通,LED顯示屏第10行顯示如圖點陣(黑方塊).
2 點陣顯示系統的框架
點陣顯示在船用加油系統中主要起到顯示價格和體積的作用,要求實時性高,顯示準確.如圖2所示,PC Server控制整個加油系統,通過一個PCI卡與船用加油系統通信.PC Server實時地將顯示信息傳送給點陣顯示控制板,點陣顯示控制板接收顯示數據并轉化為點陣碼,從而進一步控制LED點陣顯示屏.點陣碼的移位和相應的行掃描是由CPLD開發的(如圖3).
3 點陣顯示板的硬件實現
點陣顯示控制板主要硬件有AT89C51,MAX232,HY62256A,AT28C256和EPM7128-SLC8組成.串口芯片MAX232負責點陣顯示控制板和PC Server的通信.EPROM 除了存放控制程序以外,還存儲了部分漢字和符號的點陣碼庫,C51收到PC傳來的漢字內碼后,會搜索這個點陣碼庫以得到相應的點陣碼.C51并行輸出點陣碼,CPLD 將接收的點陣碼串行輸出到DataH 和DataL,并為點陣顯示屏提供同步移位脈沖信號Sck.
點陣顯示板的部分外圍電路是用CPLD設計的,CPLD(complex programmable logic device,復雜可編程邏輯電路)是在PAL,GAL等基礎上發展起來的一種具有豐富的可編程I/O引腳的可編程邏輯器件,幾乎所有應用門陣列、PLD和中小規模通用數字集成電路的場合均可應用CPLD器件.CPLD同以往的PAL,GAL等相比較,具有集成度高、在線可編程、使用方便靈活的特點,且性價比合理;不但可實現常規的邏輯器件功能,還可實現復雜的時序邏輯功能.CPLD的應用使硬件開發更加靈活,可減輕系統開發時的電路調試強度,縮短開發周期,同時在硬件設計上有一定的保密性.
CPLD芯片選用Altera公司的MAX7000S系列器件EPM7128SLC84,它有128個邏輯宏單元,邏輯門數為2500門,在MAX+PLUS II軟件環境下,采用VHDL和原理圖輸入相結合的方法進行設計.設計輸入完成后,進行整體的編譯和邏輯仿真,然后進行轉換、布局、布線、延時仿真生成配置文件,以4引腳的JTAG 接口方式通過ByteBlaster下載電纜對CPLD進行在線編程(ISP),完成結構功能配置,實現其硬件功能,制成專用芯片.為了避免器件內的設計被他人復制和取出,可通過對MAX7128S內部的一個保密位編程,對設計進行加密.當對器件重新編程時,保密位連同其他的編程數據均能擦除和重寫.MAX7000系列是工業界中速度快的高集成度可編程邏輯器件系列.它的系統結構如圖4所示.它們的輸入寄存器的建立時間非常短,能提供多個系統時鐘且有可編程的速度/功率控制.
4 CPLD的設計實現
CPLD設計為總線方式,所有的功能模塊和指令控制器都掛在總線上,AT89C51通過ALE,CS,RD,WE,P0口(數據地址復用),P2口(高地址)同芯片相連接,C51可以通過讀/寫指令對訪問.如圖5所示,8根三態數據/地址復用總線,連接C51的P0口,另有8根高地址總線連接C51的P2口,實現C51對EPM7128SLC8內部模塊的讀寫操作.因為在項目中使用的是一個8×2的LED屏,每個8位移位寄存器對應一行LED顯示模塊.EPM7128SLC8內部包含兩個8位移位寄存器,兩個8位移位寄存器的地址空間分別為0xA000圖5 EPM7128SLC84同單片機接口原理圖和0xA001.對0xA000和0xA001兩個地址的寫入,就可以把點陣碼鎖存在兩個8位移位寄存器中.移位控制端口的地址是0xC000,C51向0xC000寫入指令后,鎖存在0xA000和0xA001兩個移位寄存器的數據串行輸出,并為點陣顯示屏提供同步脈沖信號.在EPM7128SLC8里設計一個8位計數器,當移位寄存器移動8位后,計數器會通知移位控制單元結束移位,準備下一次移位的到來.AD0~ AD7是三態數據/地址復用總線,A8~A15是高8位地址總線,READ和WRIT是讀寫信號.
5 AT89C51的程序實現
圖6是點陣顯示控制板AT89C51的主程序.主程序開始初始化相應的軟硬件,然后進入主循環,等待PC Server通過串口傳送的數據.數據的接收和CPLD點陣緩存區的掃描觸發程序都是C51的中斷程序.C51通過中斷1接收PCServer傳送的數據,其主循環程序不斷檢查接收緩存區,如果接收到發給新的完整數據,就會根據數據查找點陣碼庫,并將新的點陣碼寫入CPLD點陣掃描緩存區,并觸發新一輪的CPLD點陣掃描.CPLD點陣掃描緩存區是在RAM 中內建的一塊緩存數據區,其大小根據點陣顯示屏確定,點陣顯示屏的每個LED點對應內存中的一位.
將點陣掃描中的部分固化在CPLD中后,與C51相配合提高了C51的處理速度.C51在將點陣碼寫入相應緩存區后,只要向CPLD發出掃描觸發指令,具體的掃描工作將由CPLD硬件負責,點陣屏的掃描由C51軟件實現變為CPLD硬件實現,提高了掃描頻率和C51的處理能力.
6 結束語
由于功能強大、速度高、設計靈活等優點,CPLD在數字系統設計、通信領域、DSP領域、計算機系統等領域有著越來越廣泛的應用.點陣顯示控制板引入CPLD集成了分離元件的設計,實現CPLD與單片機接口以及點陣掃描功能,同時CPLD的使用也分擔了CPU 的任務,并且CPLD可根據點陣屏的不同而更改設計,使得整個系統的性能以及靈活性在原有的電路上大幅度提高.