雙RAM技術的LED顯示屏控制系統(tǒng)設計
NL=YL/(Bw·Sw),這里記i=NL/Sw(0≤i≤7),表示顯示信息跨越兩個數據塊時需要選擇的數據位數。存儲器輸出16位數據[D0,D1,…,D15]后,從Di位控制選擇連續(xù)的8位數據[Di,Di+1,…,D7,…,D7+i]輸出到顯示屏。當數據從一個字節(jié)的Di位開始輸出16位時,如[Di,Di+1,…,D7,…,D15,D0,…,Di-1],前面8位在當前顯示是多余的幾位數據,后面8位數據[D8+i,…,D15,D0,…,Di-1]正好是要輸出到顯示屏的8位數據。當這16位數據串行輸出到一個8位的移位寄存器中時,移位寄存器剛好可以容納高8位數據,并將其輸出顯示。之后各列數據的輸出情況同樣如此,不需要額外的指令或電路來對輸出數據進行選擇輸出。只是在每行第一列數據輸出前,通過單片機模擬i個時鐘脈沖輸出到存儲器,讓輸出數據產生錯位,使數據從Di位開始輸出。另外,當顯示信息剛好是A、B、C、D塊中的某一塊時,無須產生模擬脈沖對數據進行選擇,而是直接將數據輸出顯示。通過分析可知,SPI模塊剛好具有這個功能,通過單片機額外模擬i個時鐘脈沖,輸出到串行存儲器的時鐘信號端,可以使數據錯位,從指定的某一位Di開始輸出。當顯示信息跨越Sw-1區(qū)間時,如果一場顯示還沒有完畢,內存地址應返回到YL所在塊的起始地址,并從起始地址開始輸出顯示數據,單片機模擬的脈沖數i也相應發(fā)生變化。
2 LED顯示屏控制系統(tǒng)設計
LED顯示屏控制電路。為了提高數據輸出效率,采用Ramtron公司的帶SPI功能模塊的VRS51L3074單片機。VRS51L3074的時鐘頻率為40 M-Hz,指令周期短,處理速度快,效率高;工作電壓在3.3 V左右,但是可以兼容5 V。SST25VF016B是一款具有SPI接口的8引腳串行Flash。7 4LSl64為移位寄存器。
2.1 VRS51L3074的SPI功能模塊
VRS51L3074的SPI時鐘頻率可以在SysClk/2~SysClk/1024范圍內調整,SPI時鐘頻率最高可以達到20MHz。當VRS51L3074作為SPI主機時,可以對SPI運行控制、配置和狀態(tài)監(jiān)控以及其他的一些工作環(huán)境進行設置。
配置寄存器SPICONFIG:主要對片選信號控制模式、SPI中斷進行設置。
狀態(tài)寄存器SPISTATUS:主要用于對SPI運行狀態(tài)的監(jiān)控。
傳輸字長寄存器SPISIZE:設置傳輸字長,本文設置為16位,即每次輸出16位數據。
控制寄存器SPICTRL:對SPI時鐘速率、時鐘相位/極性、片選信號,以及SPI時鐘頻率進行設置。
數據寄存器SPIRXTX0~SPIRXTX3:用于對SPI接口32位收發(fā)緩沖器的訪問,對數據寄存器執(zhí)行寫操作是將數據送入發(fā)送緩沖器中,對數據寄存器執(zhí)行讀操作是從接收緩沖器中取出收到的數據。SPI接口的發(fā)送和接收緩沖器都采用雙緩沖結構,從硬件上減少數據沖突并提高數據傳輸效率。在主模式下對SPIRXTX0寄存器執(zhí)行寫入操作將啟動SPI傳輸。當傳輸字各行長大于8時,應最后向SPIRXTX0寄存器寫入。
向串行Flash輸入控制信號和數據地址后,啟動串行Flash傳輸數據,在SPI時鐘驅動下輸出顯示數據,并且可以用單片機模擬串行Flash時鐘信號控制任意位數據輸出。
2.2 數據選擇控制電路
LED顯示屏控制系統(tǒng)如圖3所示,VRS51L3074單片機內部自帶精確的40 MHz振蕩器,不需要外部晶振電路提供系統(tǒng)時鐘。數據顯示采用內存為16 Mb的SST25VF016B。雙RAM技術輸出顯示數據的時候,是將兩塊RAM中相同地址的兩個數據同時輸出,所以,將兩塊RAM的顯示數據存放在一塊串行存儲器中時,偶地址單元應存儲RAM0的數據,奇地址單元存儲RAMl的數據,數據輸出時每次輸出16位數據。串行存儲器和單片機的工作電壓都在3.3 V左右,但是VRS51L3074可以兼容5V,簡化了控制電路??刂菩盘柡惋@示數據在輸出到寄存器74LS164和顯示屏的時候,需要用74LVC07進行電平轉換。本文引用地址:http://m.butianyuan.cn/article/162614.htm
控制系統(tǒng)控制顯示數據輸出的流程為:
①將掃描線行地址通過P2端口的低4位送給LED顯示屏。
②通過顯示數據在顯示區(qū)域中的位置,計算顯示數據在存儲器中的地址,并計算出數據選擇的位數i。
③通過單片機P3.0口模擬移位脈沖,輸出到串行Flash時鐘信號,移位脈沖數由數據選擇位數i決定。使輸出數據產生錯位,正確地選擇輸出顯示數據。
④啟動SPI讀取顯示數據,SPI傳輸字長設置為16位。模擬脈沖已經輸出到串行Flash使數據產生了錯位,輸出16位數據[Di,Di+1,…,D7,…,D15,D0,…,Di-1],輸出到顯示屏的數據[D8+i,…,D15,D0,…,Di-1]在高8位,經過移位剛好可以存放在移位寄存器中。每行第一個數據輸出后,此行各列數據都直接輸出。
⑤16位數據輸出完畢后,通過P3.1腳產生一個SCK脈沖,將移位寄存器74LSl64中的數據輸出移入到單元板的串行移位寄存器74HC595中。
⑥重復第④至⑤步,直到一行數據全部輸出完畢后,由P3.2產生一個RCK脈沖,讀取的一行數據將輸出顯示,然后掃描線下移一行。
⑦重復第①至⑥步。
此電路有這樣幾個特點:顯示數據從串行Flash輸出后,不經單片機的處理,直接以DMA方式輸出到移位寄存器74LSl64,同時實現串并轉換,既節(jié)省數據處理時間,又提高顯示效率。在每場數據輸出之前,通過信息在顯示區(qū)域中的地址計算數據選擇位數i,并通過P3.O端口模擬i個脈沖輸出到串行Flash,移出i位數據,數據產生錯位,使輸出顯示的數據在16位輸出數據的高8位,可以直接存放在移位寄存器中,輸出到顯示屏。以后同行各列的顯示數據輸出時,無需再進行數據選擇位的判斷,直接將顯示數據從存儲器中輸出到顯示屏。
存儲器效率分析如表1所列。
由表1可知,采用雙RAM技術輸出顯示大大提高了存儲器效率,降低了顯示數據存儲器的占用。當顯示信息量較大時,動態(tài)數據組織使用的存儲器比較多、利用率低,而采用雙RAM技術正好解決了這個問題。一塊RAM(靜態(tài)顯示時)的存儲器效率是100%,雙RAM的效率是50%。當有N塊RAM時,效率為(N-1)/N。
針對圖3所示控制電路,按照數據輸出控制流程編寫了程序代碼。隨機顯示一屏信息,顯示數據已按順序存儲在串行Flash中。
結語
本控制系統(tǒng)利用串行Flash輸出數據時的特點,大大地減少了數據處理的時間,將顯示數據以DMA方式輸出到顯示屏,不但提高了顯示效率,而且彌補了長條顯示屏在顯示信息上的不足。雙RAM技術大大提高了垂直移動時的存儲器使用效率,所有的數據塊都是按靜態(tài)顯示方式組織數據,所以每一塊RAM的顯示數據效率都是100%,雙RAM的效率為50%。本文將顯示數據存放在一塊Flash中,效率也為50%,相比動態(tài)顯示組織方式,降低了垂直移動時顯示數據存儲器的占用率,提高了存儲效率。此外,還可以雙RAM技術為基礎,擴展出多RAM方式,提高顯示的高度,增加每屏顯示信息,進一步提高存儲效率。本系統(tǒng)仍有改進的空間,譬如以雙RAM組織顯示數據后直接用兩個RAM來存放不同的數據,控制顯示數據直接輸出,以提高輸出速率。
評論