基于多端口串行Flash的條形LED顯示屏控制
摘要: 為了不增加硬件成本而提高顯示數(shù)據(jù)的輸出速度,在分析現(xiàn)有條形LED 顯示屏單元板電路的基礎(chǔ)上,提出了一種基于多端口串行Flash 存儲器的LED 顯示控制系統(tǒng),該系統(tǒng)由STC12C5616 高速1T 單片機和帶SPI接口的SST26VF016B 串行多端口Flash 存儲器組成。 顯示數(shù)據(jù)輸出時,利用單片機的高速同步串行口( SPI) 高速時鐘,將多端口串行Flash 存儲器中的顯示數(shù)據(jù)以"存儲器直接存取( DMA) "的方式直接輸出至超長條形LED顯示屏。 最后,以4 096 × 64 點陣單色LED 顯示屏為例進行了測試。 結(jié)果表明,顯示屏刷新率達(dá)到62. 5 Hz,驗證了該系統(tǒng)在實際應(yīng)用中的有效性和可行性。
在LED 顯示屏應(yīng)用中,超長條形LED 屏是非常廣泛的一種形式,其特點是長度"特別長"而寬度窄。 超長LED 顯示屏目前沒有明確的定義,可以將其水平方向的點數(shù)定義為≥2 048 比較合適。
以由1 /4 掃描P10 單元板( 點間距10 mm) 組成的超長條形LED 顯示屏為例,當(dāng)水平方向的點數(shù)為2 048 時,其水平方向物理尺寸為20. 48 m. 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 顯示屏控制卡難于滿足刷新率的要求,以在長度上像素點是4 096 的F3. 75 LED 顯示屏為例,設(shè)刷新率為60 Hz,其SCK時鐘周期至少為106 /60 /16 /4 096 = 0. 254 μs = 254 ns.
解決超長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)( MODE 0) ,也可以處在高電平狀態(tài)( MODE 3) ; 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 顯示屏對存儲器的容量和控制方式的要求。
圖2 SST26VF016B 存儲器的控制時序。
STC12C5616 是STC 公司推出的高速1T 單片機,時鐘頻率可達(dá)30 MHz 以上,其內(nèi)部集成一個高速串行通信接口部件( 即SPI 接口)。 當(dāng)STC12C5616 的SPI 部件采用主模式工作時,其SPI時鐘輸出頻率( fclk) 可以達(dá)到晶振頻率( fosc) 的1 /4 倍,并且可以靈活配置它的時鐘相位和時鐘極性,既滿足對SST26VF016B存儲器控制的要求,又滿足超長LED 顯示屏對時鐘的要求。
3 超長LED 顯示屏控制卡電路設(shè)計
利用串行Flash 存儲器SST26VF016B 的多位數(shù)據(jù)口存儲器和STC12C5616 單片機的SPI 部件能產(chǎn)生高速SCK 時鐘的特點,將顯示數(shù)據(jù)從串行Flash存儲器旁路輸出至LED 顯示屏,電路如圖3 所示。
圖3 超長LED 顯示屏控制卡電路圖。
當(dāng)顯示屏的動態(tài)刷新速率達(dá)到50 次/s 時,在1 /16 掃描的LED 顯示屏上,一行顯示時間要小于1 /50 /16 s,即1. 25 ms. 在控制卡設(shè)計上,當(dāng)fosc =22 MHz時,串行Flash 時鐘頻率fclk = 1 /4 fosc =5. 5 MHz,故4 096 個CLK 時鐘所需時間為4 096 × 1 /( 5. 5 × 106 ) s = 0. 744 ms,加上采用SQI協(xié)議發(fā)送存儲器指令和地址的時間后也小于1. 25 ms,故在圖3 中,單片機STC12C5616 的外部時鐘選擇22 MHz 時鐘,就可以保證在SQI 協(xié)議方式下實現(xiàn)4 096 超長顯示屏的顯示。
單片機STC12C5616 的外部時鐘選擇22. 118 4 MHz,便于串行口波特率的精確控制; 引腳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ù)。
?。?) 單片機和LED 單元板之間數(shù)據(jù)通信。
將單片機引腳P1. 4置高電平,即將串行Flash存儲器的使能端無效,這時存儲器的數(shù)據(jù)端口呈高阻狀態(tài),單片機和LED 單元板之間數(shù)據(jù)通信就不會受到存儲器數(shù)據(jù)口的影響,可以將單片機的數(shù)據(jù)正常輸出到LED 單元板上。
(3) 存儲器和LED 顯示屏之間的數(shù)據(jù)傳輸。
評論