基于多端口串行Flash的條形LED顯示屏控制
來源:新能源網(wǎng)
時間:2015-08-04 19:26:57
熱度:
基于多端口串行Flash的條形LED顯示屏控制在LED顯示屏應(yīng)用中,超長條形LED屏是非常廣泛的一種形式,其特點是長度“特別長”而寬度窄。超長LED顯示屏目
在LED顯示屏應(yīng)用中,超長條形LED屏是非常廣泛的一種形式,其特點是長度“特別長”而寬度窄。超長LED顯示屏目前沒有明確的定義,可以將其水平方向的點數(shù)定義為≥2048比較合適。
以由1/4掃描P10單元板(點間距10mm)組成的超長條形LED顯示屏為例,當(dāng)水平方向的點數(shù)為2048時,其水平方向物理尺寸為20.48m.LED屏的寬度(垂直方向)點數(shù)一般為16、24和32點,最多不超過64點,應(yīng)用中以能夠顯示一行各類字體的漢字為主。為保證刷新率,在對超長LED顯示屏的控制上,要求在規(guī)定時間內(nèi)送出更多數(shù)據(jù),普通的LED顯示屏控制卡很難實現(xiàn)控制要求。
本文在分析現(xiàn)有各種條形LED顯示屏單元板電路的基礎(chǔ)上,提出了一種基于多端口串行Flash存儲器的LED顯示控制系統(tǒng)。利用單片機的SPI接口產(chǎn)生可控時鐘,將多端口串行Flash存儲器中的顯示數(shù)據(jù)以“DMA”方式直接輸出至超長條形LED顯示屏。
1常用單元板內(nèi)部串行移位寄存器連接方式
圖1為3種常用單元板內(nèi)部串行移位寄存器連接方式。其中圖1(a)為單元板74HC595與LED發(fā)光管點陣連接關(guān)系及簡化表示電路。LED顯示屏單元板內(nèi)部使用的串行移位寄存器一般為74HC595、MBI5026或MBI5026兼容芯片,而MBI5026可以看成是由兩片74HC595級聯(lián)構(gòu)成,為恒流源驅(qū)動模式,更適合LED的驅(qū)動。
圖1(b)、(c)、(d)分別為P10、P16、F3.75或F5.0單元板的連接方式。
圖1 3種常用單元板內(nèi)部串行移位寄存器連接方式
2超長LED顯示屏面臨的問題及解決方案
目前,市場上大量的門頭屏(條形LED顯示屏)是LED顯示屏應(yīng)用最廣的一種形式。從技術(shù)上來說,門頭屏的水平方向點數(shù)從256點至數(shù)千點,而高度一般不超過64點。隨著市場需求和顯示精度的提高,數(shù)千點長度的超長LED顯示屏需求量在不斷加大。普通的LED顯示屏控制卡難于滿足刷新率的要求,以在長度上像素點是4096的F3.75LED顯示屏為例,設(shè)刷新率為60Hz,其SCK時鐘周期至少為106/60/16/4096=0.254μs=254ns.
解決超長LED顯示屏數(shù)據(jù)輸出的方法有兩種:一是選擇高性能嵌入式處理器和FPGA芯片,該方法控制卡成本較高;二是巧妙應(yīng)用單片機上的特殊功能部件并優(yōu)化組織數(shù)據(jù)算法,這種方法成本很低。本文采用的就是第2種方法,通過優(yōu)化算法將數(shù)據(jù)預(yù)先寫入多端口串行Flash存儲器SST26VF016B中,利用STC12C5616單片機的SPI部件產(chǎn)生高速可控SCK時鐘,將多端口串行Flash存儲器中的顯示數(shù)據(jù)以“DMA”方式直接輸出至超長條形LED顯示屏中,滿足超長LED顯示屏的顯示要求。
超長LED顯示屏高度一般不超過64點,若控制1/16掃描單色LED顯示屏,SST26VF016B存儲器的4位數(shù)據(jù)端口正好滿足LED顯示屏數(shù)據(jù)口寬度的需要。圖2為SST26VF016B存儲器的控制時序,CS為SST26VF016B存儲器的片選端,所有對存儲器的操作都要在CS為低電平期間進行;SCK為時鐘線,當(dāng)空閑模式時,SCK信號可以處于低電平狀態(tài)(MODE0),也可以處在高電平狀態(tài)(MODE3);SIO(3∶0)為4位數(shù)據(jù)端口,在數(shù)據(jù)傳輸時,先傳字節(jié)的高4位,再傳字節(jié)的低4位。從存儲器的控制時序可以看出,對存儲器的控制按照命令字、24位存儲地址、虛擬字節(jié)、數(shù)據(jù)字節(jié)0到數(shù)據(jù)字節(jié)N的順序發(fā)送。存儲器的命令字可以實現(xiàn)對存儲器進行片擦除、扇區(qū)擦除、單字節(jié)讀寫、連續(xù)字節(jié)讀寫等功能,完全能夠滿足超長LED顯示屏對存儲器的容量和控制方式的要求。
圖2SST26VF016B存儲器的控制時序。
制的要求,又滿足超長LED顯示屏對時鐘的要求。
3超長LED顯示屏控制卡電路設(shè)計
利用串行Flash存儲器SST26VF016B的多位數(shù)據(jù)口存儲器和STC12C5616單片機的SPI部件能產(chǎn)生高速SCK時鐘的特點,將顯示數(shù)據(jù)從串行Flash存儲器旁路輸出至LED顯示屏,電路如圖3所示。
圖3超長LED顯示屏控制卡電路圖。
當(dāng)顯示屏的動態(tài)刷新速率達到50次/s時,在1/16掃描的LED顯示屏上,一行顯示時間要小于1/50/16s,即1.25ms.在控制卡設(shè)計上,當(dāng)fosc=22MHz時,串行Flash時鐘頻率fclk=1/4fosc=5.5MHz,故4096個CLK時鐘所需時間為4096×1/(5.5×106)s=0.744ms,加上采用SQI協(xié)議發(fā)送存儲器指令和地址的時間后也小于1.25ms,故在圖3中,單片機STC12C5616的外部時鐘選擇22MHz時鐘,就可以保證在SQI協(xié)議方式下實現(xiàn)4096超長顯示屏的顯示。
單片機STC12C5616的外部時鐘選擇22.1184MHz,便于串行口波特率的精確控制;引腳P3.0和P3.1為UART接口,通過通信接口芯片MAX232芯片實現(xiàn)控制卡和PC機之間的通信連接;引腳P2.0~P2.3為4位數(shù)據(jù)線,該數(shù)據(jù)線一方面連接存儲器SST26VF016B的4位數(shù)據(jù)口,另一方面通過74HC245驅(qū)動后連接到LED單元板輸出接口的數(shù)據(jù)線上。在控制卡上設(shè)計有2個單色LED單元板輸出接口,接口J1使用數(shù)據(jù)線D0和D1,接口J2使用數(shù)據(jù)線D2和D3;引腳P1.7為SPI時鐘輸出,SPI時鐘輸出線同時連接到串行Flash存儲器SST26VF016B和LED單元板的時鐘輸入;引腳P1.4為串行Flash存儲器SST26VF016B的片選信號;引腳P3.5為LED單元板的數(shù)據(jù)鎖存信號;引腳P3.7為LED單元板的使能信號輸出;引腳P1.0~P1.3為LED單元板的行選擇信號輸出;J1和J2連接頭用來連接顯示屏在高度方向上的LED單元板,以符合門頭屏64點高度要求。
該電路的設(shè)計可以靈活地在單片機、串行存儲器和LED單元板相互之間實現(xiàn)3種不同的數(shù)據(jù)訪問模式,分別是:
?。?)單片機和存儲器之間的正常訪問。
由圖3可以看出,單片機STC12C5616和串行Flash存儲器SST26VF016B之間的連接是參照數(shù)據(jù)手冊進行連接的,可以實現(xiàn)正常的數(shù)據(jù)存取,同時該數(shù)據(jù)也會進入LED單元板上的移位寄存器緩沖區(qū),但只要LED單元板上的數(shù)據(jù)鎖存RCK沒有得到有效信號,進入LED單元板的數(shù)據(jù)是不顯示出來的無效數(shù)據(jù)。
(2)單片機和LED單元板之間數(shù)據(jù)通信。
將單片機引腳P1.4置高電平,即將串行Flash存儲器的使能端無效,這時存儲器的數(shù)據(jù)端口呈高阻狀態(tài),單片機和LED單元板之間數(shù)據(jù)通信就不會受到存儲器數(shù)據(jù)口的影響,可以將單片機的數(shù)據(jù)正常輸出到LED單元板上。
?。?)存儲器和LED顯示屏之間的數(shù)據(jù)傳輸。
首先采用第(1)種模式,單片機先向串行存儲器輸出命令字、存儲地址和虛擬字節(jié),然后將單片機的數(shù)據(jù)口P2.0~P2.3全部置高電平,通過SPI時鐘從串行存儲器讀取顯示數(shù)據(jù),同時以“DMA”方式進入LED單元板,當(dāng)讀取完一行數(shù)據(jù)后,在LED單元板上的數(shù)據(jù)鎖存端RCK上產(chǎn)生有效信號,就可以顯示該行數(shù)據(jù)。當(dāng)采用這種模式時,一定要將單片機STC12C5616的引腳P2.0~P2.3設(shè)置為“弱上拉”模式。
4超長LED顯示屏顯示程序設(shè)計
在1/16單色LED顯示屏硬件電路設(shè)計中,74HC595采用直通方式連接。根據(jù)直通方式特點,預(yù)先對單色顯示數(shù)據(jù)進行優(yōu)化組織,將組織后的顯示數(shù)據(jù)預(yù)先存放在串行Flash存儲器SST26VF016B中。如圖4所示,單片機輸出顯示每行數(shù)據(jù)時按“輸出數(shù)據(jù)→送移位脈沖→地址加1”的順序重復(fù)進行,顯示完一行后,RCK鎖存顯示,通過ABCD切換行選通線。
圖41/16掃描單色F3.75或F5.0單元板(64×32點)連接方式。
以LED顯示屏的水平方向點數(shù)為4096點為例,其顯示一幀數(shù)據(jù)的程序代碼如下:
在設(shè)計程序時,僅在換行時關(guān)閉顯示屏,避免它產(chǎn)生余輝,其余時間都點亮。在該程序中,Bv為數(shù)據(jù)線在垂直方向使用595的組數(shù);Lw為LED顯示屏水平方向像素點數(shù);Ln為當(dāng)前LED顯示屏顯示數(shù)據(jù)行號。當(dāng)顯示數(shù)據(jù)時,采用存儲器和LED顯示屏的數(shù)據(jù)輸出模式,單片機先向串行存儲器輸出“讀數(shù)據(jù)”命令字“0x0B”,然后輸出24位地址和虛擬字節(jié),再使單片機數(shù)據(jù)口輸出高電平,就可以根據(jù)LED顯示屏的長度輸出SCK脈沖。送完一行數(shù)據(jù)后,禁止SPI接口,RCK鎖存信號有效,切換至下一行,按重復(fù)步驟繼續(xù)輸出顯示數(shù)據(jù)。
5測試
經(jīng)過測試后,顯示屏顯示正常,沒有抖動情況,使用邏輯分析儀測試了其刷新率,如圖5(b)所示,信號A的電平寬度表示顯示1行所需要的時間,其寬度為1.03616ms,顯示1幀的時間為16×1.03616ms≈16ms,所以LED顯示屏的刷新率為1/16ms=62.5Hz.而當(dāng)LED顯示屏的刷新率大于50次/s時,就可以滿足設(shè)計要求,故本設(shè)計能夠滿足正常顯示要求。通過測試SCK信號,如圖5(a)所示,可以看出SCK信號每8個脈沖1組,每組之間的時間間隔僅為570ns,該時間主要消耗在判斷SPI數(shù)據(jù)傳輸完成標志和循環(huán)控制上。
圖5LED屏信號測試
6結(jié)論
本文提出了基于多端口串行Flash存儲器的LED顯示控制系統(tǒng),利用單片機的SPI接口產(chǎn)生可控時鐘,將多端口串行Flash存儲器中的顯示數(shù)據(jù)以“DMA”方式直接輸出至超長條形LED顯示屏。
其制造成本低廉,根據(jù)本文程序及邏輯分析儀得到的時序圖可知,該方法可以控制4096×64點陣單色LED顯示屏,在超長顯示屏市場上有很好的應(yīng)用前景。
免責(zé)聲明:此資訊系轉(zhuǎn)載自互聯(lián)網(wǎng)其它網(wǎng)站,全球新能源網(wǎng)登載此文出于傳遞更多信息之目的,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé),文章內(nèi)容僅供參考。如涉及作品內(nèi)容、版權(quán)等問題,請在30工作日內(nèi)與本網(wǎng)聯(lián)系,我們將在第一時間處理!