通過SPI系統(tǒng)方法對輸出電路進(jìn)行改造,可極大地使原有控制系統(tǒng)滿足數(shù)據(jù)高速輸出的要求。本文給出的例子雖是基于LED大屏幕應(yīng)用的,但在LCD 或是其他對數(shù)據(jù)有高速輸出要求的系統(tǒng)中,同樣具有借鑒運(yùn)用意義。
在實踐運(yùn)用中,建議應(yīng)先考慮在原有的系統(tǒng)上進(jìn)行硬件電路改造,如仍不能滿足顯示要求,可再考慮更換高速率微處理器及用FPGA/ CPLD 器件進(jìn)行輸出電路替代處理的方案。本文以LED大屏幕控制電路為例,提出了一種在硬件電路改造上提高顯示數(shù)據(jù)輸出速度的實現(xiàn)辦法。
在研究目前LED大屏幕控制電路的基礎(chǔ)上,提出了一種提高輸出速度的實現(xiàn)方法。文中給出了該方法的原理與電路圖,并探討了不同計數(shù)方式下,數(shù)據(jù)的組織與顯示的實現(xiàn)過程。此方法如果與FPGA/ CPLD 改造、使用更高頻率單片機(jī)的方式相結(jié)合,將會進(jìn)一步提高大屏幕控制電路的性能。改造電路可以高至單片機(jī)主頻的1/ 4 頻率送出顯示數(shù)據(jù),文中說明了使用此方式時應(yīng)注意的事項。
數(shù)據(jù)輸出電路的優(yōu)化基理
由LED大屏幕的顯示原理可知,一個數(shù)據(jù)顯示在LED大屏幕的過程分為:從存儲器中讀出數(shù)據(jù)與送入到LED板中顯示兩個步驟。這一過程需要產(chǎn)生如下控制信號:數(shù)據(jù)地址送入存儲器,存儲器讀信號,鎖存器開通及LED單元板中的行信號、HC595 的SCK 移位、RCK 鎖存、E 使能信號等。這些必需信號的產(chǎn)生增加了數(shù)據(jù)顯示過程的時間。如果能夠復(fù)用其中的信號,勢必減少這一過程的延時。在LED顯示系統(tǒng)中,常把顯示數(shù)據(jù)按行存儲到外部ROM/ RAM 中的辦法即是一例。該辦法設(shè)定存儲器的高位并接到L ED的行控制線上,數(shù)據(jù)按行儲存,送入數(shù)據(jù)地址后,按行讀出數(shù)據(jù),并同時開通了行控制信號。下面的信號復(fù)用方案也是類似的原理。
圖1 信號復(fù)用示例
在考查讀外存的MOVX 命令時發(fā)現(xiàn):執(zhí)行該命令時可產(chǎn)生讀信號(RD # ),即讀外存時不但不需要另外去產(chǎn)生讀信號(RD # ),而且還可以將此信號供給鎖存器74HC273 及LED板上的移位信號SCK使用。這里要注意的是:在數(shù)據(jù)讀出后,SCK信號才送出,所以RD # 信號不可直接做SCK信號使用,必須做延時處理(最小延時必須要略大于RAM 的讀寫時間tRC與74HC273 的數(shù)據(jù)鎖存延時tTL H之和)。
而當(dāng)連續(xù)讀出一塊存儲器數(shù)據(jù)時,需要通過程序產(chǎn)生新的地址賦值給數(shù)據(jù)口, 而這些地址都是順序變化的;谶@一特點(diǎn),設(shè)計采用計數(shù)器電路用來保存讀數(shù)據(jù)時的初始地址,利用外部供給的脈沖,只要對計數(shù)器的保存地址進(jìn)行順序增加,即可將數(shù)據(jù)連續(xù)讀出。
單片機(jī)ALE 腳或是利用串行口工作方式也會產(chǎn)生一定頻率的脈沖,但沒有SPI 方式下產(chǎn)生的脈沖頻率高,且這兩種方式的使用均有一定的限制,而啟動SPI 方式比較方便。串行外圍接口(Serial Perip heral Interface , SPI) 總線系統(tǒng)是一種同步串行外設(shè)接口,是Motorola 首先在其MC68HCXX 系列處理器上定義的。SPI 系統(tǒng)有4 個I/ O 腳,它們是串行時鐘SPSCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/ 從機(jī)輸入數(shù)據(jù)線MOSI 和低位有效的從機(jī)選擇數(shù)據(jù)線SS.SP2SCK用于同步數(shù)據(jù)從MOSI 輸入和MISO 的輸出傳送。通過對SPI 控制寄存器SPCR 的設(shè)置,SPSCK的頻率最高可以達(dá)到振蕩器頻率( fOSC )的1/ 4。
因為SPI 模式可方便產(chǎn)生出較高頻率脈沖的優(yōu)點(diǎn),即采用SPSCK作為計數(shù)器的脈沖,利用計數(shù)器對存儲器產(chǎn)生連續(xù)變化的地址,實現(xiàn)對數(shù)據(jù)的高速讀出。并且SPSCK 信號經(jīng)過變換與延時處理,可同時供給LED做SCK移位信號使用。
圖2 SPI 在讀取存儲器的運(yùn)用
SPI 運(yùn)用的實現(xiàn)過程
從上文可以得到這樣的啟示:在LED控制電路的設(shè)計中,可借助于SPI 模式讀取數(shù)據(jù),即增加一塊SPI 模式的FLASH 存儲器,一方面可以保存重要文檔,另一方面可以利用SPSCK 產(chǎn)生的信號,通過計數(shù)器電路實現(xiàn)對存儲器高速讀數(shù)據(jù),并且復(fù)用此信號產(chǎn)生屏幕顯示的控制信號。在給定了輸出數(shù)據(jù)的首地址并啟動SPI 后,此方式使數(shù)據(jù)的讀出到屏幕顯示這一過程自動進(jìn)行,同一信號源的全硬件方式大大減少了以往分別產(chǎn)生各控制信號方式時的銜接延時。圖3 為SPI 在LED大屏幕控制電路中的運(yùn)用示例。
圖3 SPI 模式下的L ED 大屏幕控制電路圖
級聯(lián)計數(shù)器的個數(shù)根據(jù)RAM 的容量大小,即地址線的數(shù)目來確定。微處理器通過驅(qū)動器連接SPI 串行存儲器, 驅(qū)動器可以選擇7407 或7417 的型號。RM_MODE 用來區(qū)別不同的讀寫操作方式。當(dāng)RM_MODE = 1 時,是普通讀寫外部存儲器的方式,當(dāng)RM_MODE = 0 時,就可以讓主機(jī)作為主器件,串行FLASH 存儲器作為從器件,兩者以SPI 方式進(jìn)行通信,利用此時產(chǎn)生的SPSCK信號對存儲器進(jìn)行高速讀數(shù)據(jù)操作。同時SPSCK信號經(jīng)過變換與延時處理,可以供給LED做SCK 移位信號用。在計數(shù)脈沖的輸入端,可以使用跳線做加、減方式的選擇處理。當(dāng)脈沖接于計數(shù)器UP 端時, 為加計數(shù)方式, 接于DOWN 時,為減計數(shù)方式。圖3 也可擴(kuò)展并接多組計數(shù)器,多組RAM.
減計數(shù)器方式的運(yùn)用大大增強(qiáng)了數(shù)據(jù)輸出的靈活性。在LED大屏幕顯示中,加、減計數(shù)器配合使用,可以使相同一塊控制卡輸出數(shù)據(jù)的顯示長度提高一倍。當(dāng)使用減計數(shù)器方式時,為了與使用加方式時LED大屏幕上顯示的圖文一致,必須對與減計數(shù)器連接的RAM 的數(shù)據(jù)進(jìn)行上、下半屏交換處理,并且在輸出時要在程序中改變數(shù)據(jù)的起始點(diǎn),給出的行控制信號(RCK) 也應(yīng)做倒序處理(見圖4)。
圖4 加、減法模式下的數(shù)據(jù)組織與顯示
本方式使用時的注意事項
本方式使用時要注意計數(shù)器及RAM 芯片的讀寫速度必須與SPSCK 相匹配。SPI 方式的速率比較高,電路各器件讀取速度越高,數(shù)據(jù)出錯的幾率就會越小。
此外還有其他一些原因也會引起讀數(shù)據(jù)時的錯誤。如軟件編寫不當(dāng)導(dǎo)致數(shù)據(jù)地址超出RAM空間,電路設(shè)計未重視計數(shù)器高速工作時發(fā)熱對周邊器件與布線帶來的影響等。
使用SPSCK 信號讀取外部儲存器時,同樣會產(chǎn)生SPI 主、從模式下的溢出錯誤,即連續(xù)傳輸多個數(shù)據(jù)時, 后一個數(shù)據(jù)覆蓋了前一個數(shù)據(jù)而產(chǎn)生的錯誤。這種錯誤產(chǎn)生的原因是從器件的傳輸標(biāo)志SPIF從相對于主器件的傳輸標(biāo)志SPIF主有一定的滯后,在主器件連續(xù)發(fā)送數(shù)據(jù)時,會導(dǎo)致從器件的傳輸標(biāo)志和主器件下一個數(shù)據(jù)的傳輸標(biāo)志相重迭,而利用SPSCK 觸發(fā)計數(shù)器使地址遞加讀取數(shù)據(jù),第一個收到的數(shù)據(jù)也會被覆蓋。
這種傳輸錯誤可以用軟、硬件的方法進(jìn)行改進(jìn)。在本文的設(shè)計中,后期在軟件編寫上采用了如下解決方法:先啟動SPI 模式,再進(jìn)入計數(shù)器讀并行RAM ,浪費(fèi)一個時序。或是在RAM 中存入數(shù)據(jù)時,全部存到它后一位的地址單元上,再用SPI 方式產(chǎn)生的脈沖去讀RAM ,就可得到正確的數(shù)據(jù)。
理論上本文方式可使顯示數(shù)據(jù)的輸出速度高至fOSC的1/ 4 ,但實際運(yùn)用時卻受到了RAM、鎖存器等輸出電路器件的參數(shù)限制。SPSCK 的速率設(shè)定要根據(jù)所選擇RAM 的參數(shù)確定,即要滿足RAM 最小的地址有效時間與數(shù)據(jù)有效時間的要求。
圖5 主、從SPIF 時序下的數(shù)據(jù)溢出錯誤
在LED大屏幕等顯示系統(tǒng)對數(shù)據(jù)輸出速度的要求日益提高的背景下,當(dāng)前對控制設(shè)備進(jìn)行改造的過程中,首選的辦法是更換更高速率的微處理器,而對硬件電路的挖潛往往容易被忽視。