《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于雙RAM技術(shù)的LED顯示屏控制系統(tǒng)設(shè)計(jì)
基于雙RAM技術(shù)的LED顯示屏控制系統(tǒng)設(shè)計(jì)
摘要: 本設(shè)計(jì)使用雙RAM技術(shù)來(lái)組織用于控制矩形顯示屏的控制系統(tǒng)數(shù)據(jù),,提高了信息垂直循環(huán)顯示時(shí)的存儲(chǔ)器效率,大幅度降低了對(duì)數(shù)據(jù)存儲(chǔ)器的占用率,,并且對(duì)刷新頻率的要求也不是很高,。
關(guān)鍵詞: RAM LED顯示屏 控制系統(tǒng)
Abstract:
Key words :

引言

  長(zhǎng)條的LED顯示屏在生活中應(yīng)用得很多,這種顯示屏的控制電路簡(jiǎn)單,,掃描線有限,,顯示信息量也不是很大。當(dāng)顯示信息量比較大時(shí),,若采用一般的長(zhǎng)屏顯示屏,,顯示信息過(guò)慢,,即使采用超長(zhǎng)屏的顯示屏,其數(shù)據(jù)輸出速率也很低,,而且顯示屏的刷新頻率也不一定能滿足顯示需求,。矩形顯示屏顯示的信息量大,并且可以按需要擴(kuò)展顯示屏的高度,,不存在頻率上的限制,,能夠彌補(bǔ)長(zhǎng)條顯示屏顯示信息時(shí)存在的不足。本設(shè)計(jì)使用雙RAM技術(shù)來(lái)組織用于控制矩形顯示屏的控制系統(tǒng)數(shù)據(jù),,提高了信息垂直循環(huán)顯示時(shí)的存儲(chǔ)器效率,,大幅度降低了對(duì)數(shù)據(jù)存儲(chǔ)器的占用率,并且對(duì)刷新頻率的要求也不是很高,。

1 顯示數(shù)據(jù)組織

  需要顯示的區(qū)域小于或等于實(shí)際顯示區(qū)域時(shí),,采用靜態(tài)顯示即可。但大多時(shí)候需要顯示的區(qū)域大于或等于實(shí)際顯示區(qū)域,,如圖1所示,。為了簡(jiǎn)化問(wèn)題的分析,本文將顯示區(qū)域高度設(shè)置為L(zhǎng)ED顯示屏高度的4倍,,寬度等于LED顯示屏寬度,。設(shè)顯示屏的高度為L(zhǎng)h,寬度為L(zhǎng)w,,則顯示區(qū)域高度Dh=4Lh,,寬度Dw=Lw。本文以單色顯示作為描述對(duì)象,,且Bw=Bn=8(Bw為掃描線條數(shù),,Bn為輸出數(shù)據(jù)寬度),,如圖1所示,。

  對(duì)于一個(gè)LED顯示屏,寬度Lw和高度Lh確定后,,顯示屏單元板的排列方式也就確定了,。單元板相鄰的兩條掃描線之間的距離為Sw,顯示屏有Bw條掃描線,,分別是Y0,,Y1,…,,YBw-1,。每Sw行對(duì)應(yīng)一位顯示數(shù)據(jù),顯示屏上的每一個(gè)點(diǎn)對(duì)應(yīng)于存儲(chǔ)器中某個(gè)字節(jié)的某一位,。Bw條掃描線分別指向:Y0=O,,Y1=Sw,,…,BBw-1=(Bw-1)Sw,。用靜態(tài)顯示數(shù)據(jù)組織方法分別對(duì)顯示塊A,、B、C,、D組織顯示數(shù)據(jù),。首先對(duì)顯示塊A的顯示信息進(jìn)行組織(X為列號(hào)):

  ①X=0,,即當(dāng)前掃描線各行與第O列相交各點(diǎn)的顯示數(shù)據(jù)按D0,,D1,…,,DBw-1的順序存儲(chǔ)在存儲(chǔ)器的第一個(gè)存儲(chǔ)單元中,。

  ②X值增加1,,當(dāng)前掃描線各行與X值對(duì)應(yīng)列相交各點(diǎn)的顯示數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器的下一個(gè)存儲(chǔ)單元中,。直至將X=O至X=Dw-1的Dw個(gè)數(shù)據(jù)按順序全部存儲(chǔ)在存儲(chǔ)器中。

 ?、跙w條掃描線向下移動(dòng)一行,,重復(fù)第①至②步,直到Y(jié)0移動(dòng)到Sw-1行時(shí),。

 ?、軘?shù)據(jù)組織結(jié)束。

  顯示區(qū)域B,、C,、D分別按照A的數(shù)據(jù)組織方式去組織顯示數(shù)據(jù)。組織后的顯示數(shù)據(jù)塊按A,、B,、C、D的順序存儲(chǔ)在RAM0里,,然后將RAM0中的顯示數(shù)據(jù)塊A,、B、C,、D按B,、C、D,、A的順序拷貝到RAMl中,,任何兩個(gè)相鄰顯示塊的顯示數(shù)據(jù)在兩塊RAM中都有相同的地址存儲(chǔ)區(qū)域。RAM0和RAMl的顯示數(shù)據(jù)與存儲(chǔ)器的對(duì)應(yīng)關(guān)系如圖2所示。

  如圖2所示,,掃描組1從Y0=0到Y(jié)0=Sw-1,,對(duì)應(yīng)顯示塊A,數(shù)據(jù)已組織存放在存儲(chǔ)器中,,可以直接輸出顯示數(shù)據(jù),;掃描組2從Y0=Lh到Y(jié)0=Lh+ Sw-1,對(duì)應(yīng)顯示塊B也已經(jīng)組織好,,可以直接輸出,。但是掃描組3,它的位置非同一般,,它的掃描線分別對(duì)應(yīng)著兩個(gè)塊A和B,;第O,1,,…Bw-1條掃描線分別對(duì)應(yīng)顯示塊A掃描組1的1,,2,…,,Bw-2,;而第Bw-1條掃描線就對(duì)應(yīng)顯示塊B掃描組2的第O條掃描線。如果要在顯示屏上顯示掃描組3對(duì)應(yīng)的這一屏數(shù)據(jù),,就一定要同時(shí)使用到掃描組1的第1,,2,…,,Bw-1條掃描線和掃描組2的第O條掃描線組織的顯示數(shù)據(jù)作為輸出數(shù)據(jù),。由于顯示塊A和B的顯示數(shù)據(jù)是分別組織的,這時(shí)就要取RAM0的D0,,D2,,…,DBw-1和RAMl的D0位作為輸出到顯示屏的Bw位數(shù)據(jù),,這就需要在兩塊RAM同時(shí)輸出的2Bw位中選擇需要的Bw位作為輸出數(shù)據(jù),,并且這Bw位數(shù)據(jù)是連續(xù)的。

  顯示步驟(在此只考慮垂直移動(dòng)顯示效果),;雙RAM技術(shù)將顯示數(shù)據(jù)輸出的時(shí)候,,是將兩塊RAM中相同地址的兩個(gè)數(shù)據(jù)同時(shí)輸出,。所以,,如果設(shè)置RAMO為主存儲(chǔ)器,RAMl為從存儲(chǔ)器,,則將兩塊RAM的顯示數(shù)據(jù)存在一塊串行存儲(chǔ)器中時(shí),,偶地址單元應(yīng)存儲(chǔ)RAM0的數(shù)據(jù),奇地址單元存儲(chǔ)RAMl的數(shù)據(jù),由于數(shù)據(jù)寬度為8,,所以每次輸出16位數(shù)據(jù),。如果顯示區(qū)域中以(XL,YL)點(diǎn)為顯示起始點(diǎn),,在LED屏上顯示一屏顯示信息,,則其數(shù)據(jù)選擇控制位只與YL、掃描線和掃描寬度Sw有關(guān),。顯示區(qū)域的起始行坐標(biāo)為YL,,一塊顯示區(qū)域有Bw·Sw行,則YL所在的塊為:
   


  這里討論YL在實(shí)際顯示區(qū)域的坐標(biāo)沒(méi)有多大意義,,只須注意YL在當(dāng)前顯示塊的相對(duì)坐標(biāo),,NL=YL%(Bw·Sw)就是YL在當(dāng)前顯示塊的相對(duì)縱坐標(biāo),則相對(duì)坐標(biāo)為(NL,,YL),。動(dòng)態(tài)顯示的基礎(chǔ)是靜態(tài)顯示,靜態(tài)顯示以從特定行顯示一屏為特征,,當(dāng)顯示屏從第YL行開始顯示信息時(shí),,因?yàn)橐粔K顯示區(qū)域有Sw·Dw個(gè)數(shù)據(jù),則YL所在塊顯示數(shù)據(jù)的起始地址為:
   


  一塊顯示區(qū)域分為Sw個(gè)區(qū),,則YL所在的分區(qū)記作:
   


  一區(qū)存放有Dw個(gè)顯示數(shù)據(jù),,所以YL所在分區(qū)地址與所在塊起始地址之間的相對(duì)偏移地址為(YL%Sw)·Dw。所以,,只要知道了顯示信息的起始行坐標(biāo),,就能得到顯示數(shù)據(jù)在存儲(chǔ)器中的存儲(chǔ)地址。

  NL=YL/(Bw·Sw),,這里記i=NL/Sw(0≤i≤7),,表示顯示信息跨越兩個(gè)數(shù)據(jù)塊時(shí)需要選擇的數(shù)據(jù)位數(shù)。存儲(chǔ)器輸出16位數(shù)據(jù)[D0,,D1,,…,D15]后,,從Di位控制選擇連續(xù)的8位數(shù)據(jù)[Di,,Di+1,…,,D7,,…,D7+i]輸出到顯示屏,。當(dāng)數(shù)據(jù)從一個(gè)字節(jié)的Di位開始輸出16位時(shí),,如[Di,,Di+1,…,,D7,,…,D15,,D0,,…,Di-1],,前面8位在當(dāng)前顯示是多余的幾位數(shù)據(jù),,后面8位數(shù)據(jù)[D8+i,…,,D15,,D0,…,,Di-1]正好是要輸出到顯示屏的8位數(shù)據(jù),。當(dāng)這16位數(shù)據(jù)串行輸出到一個(gè)8位的移位寄存器中時(shí),移位寄存器剛好可以容納高8位數(shù)據(jù),,并將其輸出顯示,。之后各列數(shù)據(jù)的輸出情況同樣如此,不需要額外的指令或電路來(lái)對(duì)輸出數(shù)據(jù)進(jìn)行選擇輸出,。只是在每行第一列數(shù)據(jù)輸出前,,通過(guò)單片機(jī)模擬i個(gè)時(shí)鐘脈沖輸出到存儲(chǔ)器,讓輸出數(shù)據(jù)產(chǎn)生錯(cuò)位,,使數(shù)據(jù)從Di位開始輸出,。另外,當(dāng)顯示信息剛好是A,、B,、C、D塊中的某一塊時(shí),,無(wú)須產(chǎn)生模擬脈沖對(duì)數(shù)據(jù)進(jìn)行選擇,,而是直接將數(shù)據(jù)輸出顯示。通過(guò)分析可知,,SPI模塊剛好具有這個(gè)功能,,通過(guò)單片機(jī)額外模擬i個(gè)時(shí)鐘脈沖,輸出到串行存儲(chǔ)器的時(shí)鐘信號(hào)端,,可以使數(shù)據(jù)錯(cuò)位,,從指定的某一位Di開始輸出。當(dāng)顯示信息跨越Sw-1區(qū)間時(shí),,如果一場(chǎng)顯示還沒(méi)有完畢,,內(nèi)存地址應(yīng)返回到Y(jié)L所在塊的起始地址,,并從起始地址開始輸出顯示數(shù)據(jù),,單片機(jī)模擬的脈沖數(shù)i也相應(yīng)發(fā)生變化,。

2 LED顯示屏控制系統(tǒng)設(shè)計(jì)

  LED顯示屏控制電路。為了提高數(shù)據(jù)輸出效率,,采用Ramtron公司的帶SPI功能模塊的VRS51L3074單片機(jī),。VRS51L3074的時(shí)鐘頻率為40 M-Hz,指令周期短,,處理速度快,,效率高;工作電壓在3.3 V左右,,但是可以兼容5 V,。SST25VF016B是一款具有SPI接口的8引腳串行Flash。7 4LSl64為移位寄存器,。

  2.1 VRS51L3074的SPI功能模塊

  VRS51L3074的SPI時(shí)鐘頻率可以在SysClk/2~SysClk/1024范圍內(nèi)調(diào)整,,SPI時(shí)鐘頻率最高可以達(dá)到20MHz。當(dāng)VRS51L3074作為SPI主機(jī)時(shí),,可以對(duì)SPI運(yùn)行控制,、配置和狀態(tài)監(jiān)控以及其他的一些工作環(huán)境進(jìn)行設(shè)置。

  配置寄存器SPICONFIG:主要對(duì)片選信號(hào)控制模式,、SPI中斷進(jìn)行設(shè)置,。

  狀態(tài)寄存器SPISTATUS:主要用于對(duì)SPI運(yùn)行狀態(tài)的監(jiān)控。

  傳輸字長(zhǎng)寄存器SPISIZE:設(shè)置傳輸字長(zhǎng),,本文設(shè)置為16位,,即每次輸出16位數(shù)據(jù)。

  控制寄存器SPICTRL:對(duì)SPI時(shí)鐘速率,、時(shí)鐘相位/極性,、片選信號(hào),以及SPI時(shí)鐘頻率進(jìn)行設(shè)置,。

  數(shù)據(jù)寄存器SPIRXTX0~SPIRXTX3:用于對(duì)SPI接口32位收發(fā)緩沖器的訪問(wèn),,對(duì)數(shù)據(jù)寄存器執(zhí)行寫操作是將數(shù)據(jù)送入發(fā)送緩沖器中,對(duì)數(shù)據(jù)寄存器執(zhí)行讀操作是從接收緩沖器中取出收到的數(shù)據(jù),。SPI接口的發(fā)送和接收緩沖器都采用雙緩沖結(jié)構(gòu),,從硬件上減少數(shù)據(jù)沖突并提高數(shù)據(jù)傳輸效率。在主模式下對(duì)SPIRXTX0寄存器執(zhí)行寫入操作將啟動(dòng)SPI傳輸,。當(dāng)傳輸字各行長(zhǎng)大于8時(shí),,應(yīng)最后向SPIRXTX0寄存器寫入。

  向串行Flash輸入控制信號(hào)和數(shù)據(jù)地址后,,啟動(dòng)串行Flash傳輸數(shù)據(jù),,在SPI時(shí)鐘驅(qū)動(dòng)下輸出顯示數(shù)據(jù),,并且可以用單片機(jī)模擬串行Flash時(shí)鐘信號(hào)控制任意位數(shù)據(jù)輸出。

  2.2 數(shù)據(jù)選擇控制電路

  LED顯示屏控制系統(tǒng)如圖3所示,,VRS51L3074單片機(jī)內(nèi)部自帶精確的40 MHz振蕩器,,不需要外部晶振電路提供系統(tǒng)時(shí)鐘。數(shù)據(jù)顯示采用內(nèi)存為16 Mb的SST25VF016B,。雙RAM技術(shù)輸出顯示數(shù)據(jù)的時(shí)候,,是將兩塊RAM中相同地址的兩個(gè)數(shù)據(jù)同時(shí)輸出,所以,,將兩塊RAM的顯示數(shù)據(jù)存放在一塊串行存儲(chǔ)器中時(shí),,偶地址單元應(yīng)存儲(chǔ)RAM0的數(shù)據(jù),奇地址單元存儲(chǔ)RAMl的數(shù)據(jù),,數(shù)據(jù)輸出時(shí)每次輸出16位數(shù)據(jù),。串行存儲(chǔ)器和單片機(jī)的工作電壓都在3.3 V左右,但是VRS51L3074可以兼容5V,,簡(jiǎn)化了控制電路,。控制信號(hào)和顯示數(shù)據(jù)在輸出到寄存器74LS164和顯示屏的時(shí)候,,需要用74LVC07進(jìn)行電平轉(zhuǎn)換,。

 

  控制系統(tǒng)控制顯示數(shù)據(jù)輸出的流程為:

  ①將掃描線行地址通過(guò)P2端口的低4位送給LED顯示屏,。

 ?、谕ㄟ^(guò)顯示數(shù)據(jù)在顯示區(qū)域中的位置,計(jì)算顯示數(shù)據(jù)在存儲(chǔ)器中的地址,,并計(jì)算出數(shù)據(jù)選擇的位數(shù)i,。

  ③通過(guò)單片機(jī)P3.0口模擬移位脈沖,,輸出到串行Flash時(shí)鐘信號(hào),,移位脈沖數(shù)由數(shù)據(jù)選擇位數(shù)i決定。使輸出數(shù)據(jù)產(chǎn)生錯(cuò)位,,正確地選擇輸出顯示數(shù)據(jù),。

  ④啟動(dòng)SPI讀取顯示數(shù)據(jù),,SPI傳輸字長(zhǎng)設(shè)置為16位,。模擬脈沖已經(jīng)輸出到串行Flash使數(shù)據(jù)產(chǎn)生了錯(cuò)位,輸出16位數(shù)據(jù)[Di,,Di+1,,…,D7,,…,,D15,,D0,…,,Di-1],,輸出到顯示屏的數(shù)據(jù)[D8+i,…,,D15,,D0,,…,,Di-1]在高8位,經(jīng)過(guò)移位剛好可以存放在移位寄存器中,。每行第一個(gè)數(shù)據(jù)輸出后,,此行各列數(shù)據(jù)都直接輸出。

 ?、?6位數(shù)據(jù)輸出完畢后,,通過(guò)P3.1腳產(chǎn)生一個(gè)SCK脈沖,將移位寄存器74LSl64中的數(shù)據(jù)輸出移入到單元板的串行移位寄存器74HC595中,。

 ?、拗貜?fù)第④至⑤步,直到一行數(shù)據(jù)全部輸出完畢后,,由P3.2產(chǎn)生一個(gè)RCK脈沖,,讀取的一行數(shù)據(jù)將輸出顯示,然后掃描線下移一行,。

 ?、咧貜?fù)第①至⑥步。

  此電路有這樣幾個(gè)特點(diǎn):顯示數(shù)據(jù)從串行Flash輸出后,,不經(jīng)單片機(jī)的處理,,直接以DMA方式輸出到移位寄存器74LSl64,同時(shí)實(shí)現(xiàn)串并轉(zhuǎn)換,,既節(jié)省數(shù)據(jù)處理時(shí)間,,又提高顯示效率。在每場(chǎng)數(shù)據(jù)輸出之前,,通過(guò)信息在顯示區(qū)域中的地址計(jì)算數(shù)據(jù)選擇位數(shù)i,,并通過(guò)P3.O端口模擬i個(gè)脈沖輸出到串行Flash,移出i位數(shù)據(jù),,數(shù)據(jù)產(chǎn)生錯(cuò)位,,使輸出顯示的數(shù)據(jù)在16位輸出數(shù)據(jù)的高8位,可以直接存放在移位寄存器中,,輸出到顯示屏,。以后同行各列的顯示數(shù)據(jù)輸出時(shí),,無(wú)需再進(jìn)行數(shù)據(jù)選擇位的判斷,直接將顯示數(shù)據(jù)從存儲(chǔ)器中輸出到顯示屏,。

  存儲(chǔ)器效率分析如表1所列,。

  由表1可知,采用雙RAM技術(shù)輸出顯示大大提高了存儲(chǔ)器效率,,降低了顯示數(shù)據(jù)存儲(chǔ)器的占用,。當(dāng)顯示信息量較大時(shí),動(dòng)態(tài)數(shù)據(jù)組織使用的存儲(chǔ)器比較多,、利用率低,,而采用雙RAM技術(shù)正好解決了這個(gè)問(wèn)題。一塊RAM(靜態(tài)顯示時(shí))的存儲(chǔ)器效率是100%,,雙RAM的效率是50%,。當(dāng)有N塊RAM時(shí),效率為(N-1)/N,。

  針對(duì)圖3所示控制電路,,按照數(shù)據(jù)輸出控制流程編寫了程序代碼。隨機(jī)顯示一屏信息,,顯示數(shù)據(jù)已按順序存儲(chǔ)在串行Flash中,。

結(jié)語(yǔ)

  本控制系統(tǒng)利用串行Flash輸出數(shù)據(jù)時(shí)的特點(diǎn),大大地減少了數(shù)據(jù)處理的時(shí)間,,將顯示數(shù)據(jù)以DMA方式輸出到顯示屏,,不但提高了顯示效率,而且彌補(bǔ)了長(zhǎng)條顯示屏在顯示信息上的不足,。雙RAM技術(shù)大大提高了垂直移動(dòng)時(shí)的存儲(chǔ)器使用效率,,所有的數(shù)據(jù)塊都是按靜態(tài)顯示方式組織數(shù)據(jù),所以每一塊RAM的顯示數(shù)據(jù)效率都是100%,,雙RAM的效率為50%,。本文將顯示數(shù)據(jù)存放在一塊Flash中,效率也為50%,,相比動(dòng)態(tài)顯示組織方式,,降低了垂直移動(dòng)時(shí)顯示數(shù)據(jù)存儲(chǔ)器的占用率,提高了存儲(chǔ)效率,。此外,,還可以雙RAM技術(shù)為基礎(chǔ),擴(kuò)展出多RAM方式,,提高顯示的高度,,增加每屏顯示信息,進(jìn)一步提高存儲(chǔ)效率,。本系統(tǒng)仍有改進(jìn)的空間,,譬如以雙RAM組織顯示數(shù)據(jù)后直接用兩個(gè)RAM來(lái)存放不同的數(shù)據(jù),,控制顯示數(shù)據(jù)直接輸出,以提高輸出速率,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。