江 玲,鄧郭強(qiáng),熊小平
(1湖北理工學(xué)院 電氣與電子信息工程學(xué)院,湖北 黃石 435003;2江西省電力公司貴溪市供電分公司,江西 貴溪 335499; 3黃石電力勘測(cè)設(shè)計(jì)有限公司,湖北 黃石 435000)
FPGA點(diǎn)陣顯示屏的設(shè)計(jì)
江 玲1,鄧郭強(qiáng)2,熊小平3
(1湖北理工學(xué)院 電氣與電子信息工程學(xué)院,湖北 黃石 435003;2江西省電力公司貴溪市供電分公司,江西 貴溪 335499;3黃石電力勘測(cè)設(shè)計(jì)有限公司,湖北 黃石 435000)
基于可編程片上系統(tǒng)(SOPC)技術(shù),設(shè)計(jì)了一款以FPGA處理器為核心的嵌入式控制系統(tǒng)。將MC8051軟 IP 核及必要的外圍IP模塊集成在 FPGA 芯片中,對(duì)溫度顯示和屏幕花樣滾動(dòng)顯示進(jìn)行了重點(diǎn)設(shè)計(jì)。通過(guò)軟件代碼,極大簡(jiǎn)化了硬件電路設(shè)計(jì),系統(tǒng)穩(wěn)定性得到了很大提高。
FPGA;MC8051內(nèi)核;可編程片上系統(tǒng);LED點(diǎn)陣顯示
LED大型顯示器件由于具有節(jié)能環(huán)保、色彩豐富、使用壽命長(zhǎng)等諸多優(yōu)點(diǎn),在裝飾及照明等各個(gè)領(lǐng)域備受業(yè)界關(guān)注,其市場(chǎng)占有率也逐年走高[1]。隨著FPGA相關(guān)技術(shù)的快速發(fā)展,可編程片上系統(tǒng)(SOPC)技術(shù)隨即被提出和認(rèn)可,采用該技術(shù)設(shè)計(jì)的電路系統(tǒng)具有軟件可移植性好、開(kāi)發(fā)周期短、后期系統(tǒng)升級(jí)簡(jiǎn)單等特點(diǎn)[2]。該芯片工作頻率較高(能達(dá)到400 MHz),完全能夠滿足大型顯示屏的顯示刷新要求,控制方便,效果較好,其缺點(diǎn)是單片芯片較單片機(jī)成本高,但其產(chǎn)品開(kāi)發(fā)周期及后期維護(hù)成本低,可批量生產(chǎn),系統(tǒng)成本會(huì)降低不少。若采用ASIC工藝則產(chǎn)品成本會(huì)更低,故設(shè)計(jì)開(kāi)發(fā)了一套基于FPGA的LED顯示屏,具有較高的經(jīng)濟(jì)價(jià)值。
本設(shè)計(jì)主要以FPGA為處理核心,采用基于FPGA的SOPC(System on a Programmable Chip,即可編程片上系統(tǒng))技術(shù),結(jié)合簡(jiǎn)單的外圍IP模塊搭建了一款基于MC8051內(nèi)核的嵌入式系統(tǒng)。在軟件設(shè)計(jì)方面采用高級(jí)語(yǔ)言(C語(yǔ)言)對(duì)整個(gè)系統(tǒng)進(jìn)行功能描述,從而達(dá)到驅(qū)動(dòng)LED點(diǎn)陣顯示屏的目的。搭建的片上系統(tǒng)采用高級(jí)語(yǔ)言編程,可優(yōu)化系統(tǒng)電路的硬件結(jié)構(gòu),最終使得LED顯示屏能夠穩(wěn)定、無(wú)閃爍、無(wú)干擾地顯示,具有控制簡(jiǎn)便及顯示效果較好等優(yōu)點(diǎn)。
在系統(tǒng)硬件電路設(shè)計(jì)方面,顯示屏采用最小的LED(8×8)點(diǎn)陣單元模塊進(jìn)行搭建。其中,單元模塊在硬件物理結(jié)構(gòu)組織上應(yīng)使I/O口達(dá)到最小占用率,其次是顯示屏應(yīng)具有控制方便、易于擴(kuò)展及設(shè)計(jì)簡(jiǎn)便等特點(diǎn);由于良好的工作電源是保證數(shù)字電路能夠可靠工作的基本條件,還應(yīng)設(shè)計(jì)出適合數(shù)字電路系統(tǒng)穩(wěn)定工作的工作電源。對(duì)于PCB線路板的設(shè)計(jì),應(yīng)盡量使得各器件布局合理,走線符合相應(yīng)標(biāo)準(zhǔn)要求,增強(qiáng)系統(tǒng)工作穩(wěn)定性,防止信號(hào)干擾等[3]。
本設(shè)計(jì)主要基于Altera公司的FPGA芯片,采用內(nèi)核嵌入的方法構(gòu)建基于MC8051軟核的嵌入式系統(tǒng),再利用片上編程技術(shù)(采用C語(yǔ)言編程),最終能夠?qū)崿F(xiàn)對(duì)溫度的實(shí)時(shí)測(cè)量及顯示,LED顯示屏能夠?qū)崿F(xiàn)上下左右、開(kāi)簾等各種動(dòng)態(tài)移動(dòng)顯示。具體設(shè)計(jì)內(nèi)容如下:
1)對(duì)LED顯示屏硬件控制板進(jìn)行設(shè)計(jì)。
2)在FPGA芯片上搭建基于MC8051軟核的嵌入式系統(tǒng)。
3)利用高級(jí)語(yǔ)言(C語(yǔ)言)進(jìn)行片上系統(tǒng)編程,編寫控制軟件。
4)對(duì)系統(tǒng)軟硬件整體進(jìn)行調(diào)試。
5)測(cè)試系統(tǒng)功能。
本設(shè)計(jì)構(gòu)建的基于MC8051內(nèi)核的嵌入式系統(tǒng),主要由MC8051軟IP核、PLL鎖相環(huán)、內(nèi)部ROM存儲(chǔ)器IP模塊、內(nèi)部RAM存儲(chǔ)器IP模塊、外部RAM存儲(chǔ)器IP模塊和必要的輸入/輸出控制模塊搭建而成。硬件部分主要由DS18B20溫度采集器、16×16×3的LED點(diǎn)陣顯示屏、驅(qū)動(dòng)模塊、鍵盤模塊和供電系統(tǒng)組成。軟件控制系統(tǒng)與硬件設(shè)備共同組成了基于FPGA的LED點(diǎn)陣顯示屏系統(tǒng),系統(tǒng)基本原理結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)基本原理結(jié)構(gòu)框圖
MC8051軟IP核與普通的MCS-51系列單片機(jī)在邏輯功能上并無(wú)差別,均含有8位CPU、16位的定時(shí)器/計(jì)數(shù)器、中斷響應(yīng)結(jié)構(gòu)、全雙工串口、低功耗工作模式等,其特點(diǎn)主要有以下幾點(diǎn):
1)MC8051軟核以網(wǎng)表文件的形式存在,只有在FPGA中構(gòu)建并通過(guò)編譯綜合等過(guò)程才能以硬件形式工作。
2)MC8051軟核內(nèi)部并無(wú)RAM和ROM存儲(chǔ)器,要想構(gòu)建一個(gè)完整的系統(tǒng)必須通過(guò)外接RAM和ROM存儲(chǔ)器的IP核。普通的8051單片機(jī)硬件內(nèi)部已包含這些工作所必須的存儲(chǔ)器。
3)以MC8051軟核方式構(gòu)建的CPU能夠?qū)τ布?shù)進(jìn)行設(shè)置和修改(硬件參數(shù)修改方便),并能夠通過(guò)軟件對(duì)其時(shí)序進(jìn)行檢測(cè),調(diào)試方便。
4)MC8051軟核的輸入/輸出端口不復(fù)用,而普通8051單片機(jī)的輸入/輸出端口是復(fù)用的。構(gòu)建的MC8051嵌入式系統(tǒng)要想實(shí)現(xiàn)I/O端口復(fù)用,須添加必要的邏輯電路。
5)基于MC8051軟核的嵌入式系統(tǒng)程序執(zhí)行性能要優(yōu)于普通 8051 單片機(jī)8倍以上,指令執(zhí)行的周期為1~4個(gè)時(shí)鐘周期。其指令集與普通8051單片機(jī)能夠完全兼容。
MC8051 IP 核的頂層結(jié)構(gòu)原理圖如圖2所示。MC8051 IP核主要由控制單元、ALU算術(shù)邏輯單元、定時(shí)/計(jì)數(shù)器和串行接口單元構(gòu)成。圖2中顯示出了3個(gè)存儲(chǔ)器模塊與MC8051 IP核的連接關(guān)系,其中MC8051_siu模塊和 MC8051_tmrctr模塊分別表示串行接口單元和定時(shí)器/計(jì)數(shù)器,其數(shù)量可以通過(guò)修改代碼方式設(shè)置選擇,在圖2中用虛線表示。
圖2 MC8051 IP核的頂層結(jié)構(gòu)原理圖
MC8051 IP核與工業(yè)標(biāo)準(zhǔn)的8051單片機(jī)有所不同:MC8051 IP核的輸入輸出端口是獨(dú)立的,并未復(fù)用;程序和數(shù)據(jù)存儲(chǔ)器模塊并不包括在IP核內(nèi),處于設(shè)計(jì)的頂層,這樣能夠方便不同的應(yīng)用設(shè)計(jì)及仿真。
LED點(diǎn)陣顯示屏能否穩(wěn)定和絢麗顯示的關(guān)鍵因素是程序設(shè)計(jì)[4]。在本設(shè)計(jì)中,程序設(shè)計(jì)主要采用模塊化編程思維,主要包括:主程序模塊、初始化程序、掃描程序、列數(shù)據(jù)傳輸程序、鍵盤掃描程序、溫度檢測(cè)程序等。列數(shù)據(jù)傳輸程序主要是向顯示屏提供待顯示的數(shù)據(jù),使顯示屏按照設(shè)計(jì)要求顯示需要的內(nèi)容。鍵盤掃描程序主要采用中斷的方法,其優(yōu)點(diǎn)是每個(gè)周期定時(shí)執(zhí)行掃描程序,能夠保證顯示屏穩(wěn)定顯示及提供充足的掃描時(shí)間[5]。其主程序設(shè)計(jì)框圖如圖3所示。
圖3 軟件設(shè)計(jì)整體流程圖
溫度測(cè)量采用DS18B20多點(diǎn)溫度單總線的測(cè)量方式,其程序設(shè)計(jì)主要包括傳感器序列號(hào)識(shí)別、匹配、數(shù)據(jù)讀寫及轉(zhuǎn)換等步驟,設(shè)計(jì)框圖如圖4所示。
圖4 DS18B20程序設(shè)計(jì)框圖
主要工作原理:控制器發(fā)出一個(gè)脈沖(低電平大于480 μs)后,將溫度傳感器DS18B20復(fù)位,傳感器發(fā)出響應(yīng)脈沖,主機(jī)接受后發(fā)送指令代碼33H讀取ROM,再發(fā)脈沖持續(xù)15 μs,即可讀取序列號(hào)。操作時(shí)應(yīng)嚴(yán)格按照DS18B20的芯片手冊(cè)的時(shí)序圖進(jìn)行程序編寫。利用FPGA作為控制器時(shí),F(xiàn)PGA運(yùn)行MC8051 IP核的速度為普通單片機(jī)的8倍左右,在延時(shí)設(shè)計(jì)方面應(yīng)注意該特性。
花樣顯示的主要原理是通過(guò)控制串行數(shù)據(jù)傳輸方式來(lái)改變顯示。其中正反顯示通過(guò)字模數(shù)據(jù)進(jìn)行取反來(lái)改變,數(shù)據(jù)顯示控制主要采用SPI的數(shù)據(jù)通信方式來(lái)改變[6]。該通信方式主要采用74HC595驅(qū)動(dòng)器進(jìn)行工作,只需要將待顯示的數(shù)據(jù)按照一定的規(guī)律發(fā)送至數(shù)據(jù)總線上即可實(shí)現(xiàn)屏幕花樣滾動(dòng)顯示。其核心程序算法設(shè)計(jì)如下:
void SendByte(uchar a) //列驅(qū)動(dòng)程序
{
uchar byte,i;
if(px==0) byte=a;//原碼,正向顯示
if(px==1) byte=~a;//原碼邏輯取反,反向顯示
for(i=0;i<8;i++)//數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),SPI
{
SH=0;
if(byte&0X80)
DATA=1;
else
DATA=0;
SH=1;//上升沿
byte<<=1;//數(shù)據(jù)左移
}
}
鍵盤掃描處理方式主要有以下3種。①定時(shí)掃描方式:每隔固定的一段時(shí)間就執(zhí)行一次鍵盤掃描子程序;②查詢方式:通過(guò)直接調(diào)用鍵盤掃描子程序判斷有無(wú)按鍵按下;③中斷方式,當(dāng)有按鍵按下時(shí)向單片機(jī)發(fā)起中斷,中斷后進(jìn)行按鍵掃描并判斷按鍵的鍵值[7]。在本設(shè)計(jì)中采用定時(shí)掃描的方式,定時(shí)對(duì)鍵盤進(jìn)行檢測(cè),即每個(gè)周期定時(shí)執(zhí)行一次鍵盤檢測(cè)程序,判斷是否有鍵盤按下。鍵盤掃描程序設(shè)計(jì)框圖如圖5所示。
圖5 鍵盤掃描程序設(shè)計(jì)框圖
測(cè)試步驟:
1)將硬件通過(guò)JTAG程序下載器連接至計(jì)算機(jī),硬件上電。
2)將頂層程序生成的固件output_file.jic文件由JTAG固化到EPCS中。
3)通過(guò)按鍵切換顯示屏顯示狀態(tài),觀察各種情況下顯示屏顯示情況。
系統(tǒng)功能測(cè)試情況記錄見(jiàn)表1。
表1 系統(tǒng)功能測(cè)試情況記錄
系統(tǒng)各功能的實(shí)際測(cè)試表明基于FPGA的LED點(diǎn)陣顯示屏功能設(shè)計(jì)與預(yù)期相一致,該顯示屏按鍵切換控制正常,顯示屏顯示刷新亮度均勻、直觀無(wú)明顯閃爍感,溫度測(cè)量顯示數(shù)據(jù)穩(wěn)定、測(cè)量精度較高、誤差較小,各項(xiàng)功能均符合預(yù)期要求。在性能方面,基于FPGA的8051軟核采用2.75 MHz主頻工作,能夠達(dá)到普通單片機(jī)24 MHz顯示屏刷新效果,其性能提升能夠達(dá)到8倍以上。
[1] 朱海洋,歐陽(yáng)明星,張俊武.基于Android控制的LED點(diǎn)陣顯示設(shè)計(jì)與實(shí)現(xiàn)[J].液晶與顯示,2016,31(11):1064-1069.
[2] 張飛騰.LED顯示設(shè)備驅(qū)動(dòng)方法研究[D].西安:西安郵電大學(xué),2015.
[3] 王濤.隱藏式字幕解碼與顯示系統(tǒng)的FPGA實(shí)現(xiàn)[D].鎮(zhèn)江:江蘇大學(xué),2016.
[4] 席小衛(wèi),傅龍飛,胡波,等.LED顯示陣列無(wú)線控制與傳輸系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2016(8):39-40.
[5] 林麗.信息屏信息的在線修改方法研究與實(shí)現(xiàn)[D].南京:南京師范大學(xué),2014.
[6] 張飛騰.LED顯示設(shè)備驅(qū)動(dòng)方法研究[D].西安:西安郵電大學(xué),2015.
[7] 袁海林.基于FPGA的LED點(diǎn)陣顯示系統(tǒng)的設(shè)計(jì)[J].信息技術(shù),2007,31(8):11-13.
Design of FPGA Dot Matrix Display Screen
JiangLing1,DengGuoqiang2,XiongXiaoping3
(1School of Electrical and Electronic Information Engineering,Hubei Polytechnic University,Huangshi Hubei 435003;2Jiangxi Electric Power Company,Guixi Power Supply Branch,Guixi Jiangxi 335499;3Huangshi Electric Power Survey and Design Co.,Ltd.,Huangshi Hubei 435000)
An embedded control system based on SOPC (programmable system on chip) technology and FPGA processor as core is designed,which integrates the MC8051 soft IP core and the necessary peripheral IP modules in the FPGA chip.This paper focuses on the design of temperature display and screen pattern scrolling display.Through the software,the hardware circuit design has been greatly simplified and system stability has been greatly improved.
FPGA;MC8051 core;programmable on-chip system;LED dot matrix display
2017-09-13
江玲,講師,碩士。
10.3969/j.issn.2095-4565.2017.06.003
TN873
A
2095-4565(2017)06-0009-04
(責(zé)任編輯吳鴻霞)