《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于雙RAM技術的LED顯示屏控制系統設計(完整版)
基于雙RAM技術的LED顯示屏控制系統設計(完整版)
OFweek半導體照明網
摘要: 本文用于控制矩形顯示屏的控制系統數據組織使用了雙RAM技術,提高了信息垂直循環顯示時存儲器效率,大幅度降低了數據存儲器的占用,并且對刷新頻率的要求也不是很高。
關鍵詞: SOC RAM LED
Abstract:
Key words :

  引 言

  長屏的LED顯示屏在生活中應用的很多,這種顯示屏的控制電路簡單,掃描線有限,顯示信息量也不是很大。當顯示信息量比較大時,采用一般的長屏顯示屏,顯示信息過慢,即使采用超長屏的顯示屏,其數據輸出速率也很慢,同時顯示屏的刷新頻率也不一定能滿足顯示需求。矩形顯示屏顯示一屏的信息量大,并且可以按需要擴展顯示屏的高度,不存在頻率上的限制,可以彌補長條顯示屏顯示信息時存在的一些問題。本文用于控制矩形顯示屏的控制系統數據組織使用了雙RAM技術,提高了信息垂直循環顯示時存儲器效率,大幅度降低了數據存儲器的占用,并且對刷新頻率的要求也不是很高[1]。

  1 顯示數據組織

  大多時候需要顯示的區域大于或等于實際顯示的區域,相等以及小于時為靜態顯示,圖1所示的是需要顯示的區域大于實際顯示的區域。為了簡化問題的分析,本文將顯示區域高度設置為LED顯示屏高度的4倍,寬度等于LED顯示屏寬度,顯示屏的高度為 ,寬度為,則顯示區域高度 ,寬度 ,掃描線條數 ,本文以單色顯示作為描述對象,且 為輸出數據寬度),如圖1所示。

  

  圖1 顯示區域圖

  對于一個LED顯示屏寬度為 ,高度為 確定后,顯示屏單元板的排列方式也就被確定了,單元板相鄰的兩條掃描線之間的距離為 ,顯示屏有 條掃描線,分別是 ,… ,每 行對應一位顯示數據,顯示屏上的每一個點對應于存儲器中某個字節的某一位。各掃描線的起始位置如圖1所示, 條掃描線分別指向 ,…, 。用靜態顯示數據組織方法分別對顯示塊A、B、C、D組織顯示數據[2]。首先對顯示塊A的顯示信息進行組織:

  ① ,即當前掃描線各行與第0列相交各點的顯示數據按 ,…, 的順序存儲在存儲器的第一個存儲單元中。

  ② 值增加1,當前掃描線各行與 值對應列相交各點的顯示數據存儲在存儲器的下一個存儲單元中。

  ③重復第 eq oac(○,2)2步的操作,將 個數據按順序全部存儲在存儲器中。

  ④ 條掃描線向下移動一行,重復第 eq oac(○,1)1至 eq oac(○,3)3步。直到 移動到 行時。

  ⑤數據組織結束。

  顯示區域B、C、D,分別按照A的數據組織方式去組織顯示數據。組織后的顯示數據塊按A、B、C、D的順序存儲在RAM0里,然后將RAM0中的顯示數據塊A、B、C、D按B、C、D、A的順序拷貝到RAM1中,任何兩個相鄰顯示塊的顯示數據分別在兩塊RAM中都有相同地址存儲區域。RAM0 和RAM1的顯示數據與存儲器的對應關系如圖2所示。

  

  圖2 數據塊與存儲器之間的排列圖

  引 言

  長屏的LED顯示屏在生活中應用的很多,這種顯示屏的控制電路簡單,掃描線有限,顯示信息量也不是很大。當顯示信息量比較大時,采用一般的長屏顯示屏,顯示信息過慢,即使采用超長屏的顯示屏,其數據輸出速率也很慢,同時顯示屏的刷新頻率也不一定能滿足顯示需求。矩形顯示屏顯示一屏的信息量大,并且可以按需要擴展顯示屏的高度,不存在頻率上的限制,可以彌補長條顯示屏顯示信息時存在的一些問題。本文用于控制矩形顯示屏的控制系統數據組織使用了雙RAM技術,提高了信息垂直循環顯示時存儲器效率,大幅度降低了數據存儲器的占用,并且對刷新頻率的要求也不是很高[1]。

  1 顯示數據組織

  大多時候需要顯示的區域大于或等于實際顯示的區域,相等以及小于時為靜態顯示,圖1所示的是需要顯示的區域大于實際顯示的區域。為了簡化問題的分析,本文將顯示區域高度設置為LED顯示屏高度的4倍,寬度等于LED顯示屏寬度,顯示屏的高度為 ,寬度為,則顯示區域高度 ,寬度 ,掃描線條數 ,本文以單色顯示作為描述對象,且 為輸出數據寬度),如圖1所示。

  

  圖1 顯示區域圖

  對于一個LED顯示屏寬度為 ,高度為 確定后,顯示屏單元板的排列方式也就被確定了,單元板相鄰的兩條掃描線之間的距離為 ,顯示屏有 條掃描線,分別是 ,… ,每 行對應一位顯示數據,顯示屏上的每一個點對應于存儲器中某個字節的某一位。各掃描線的起始位置如圖1所示, 條掃描線分別指向 ,…, 。用靜態顯示數據組織方法分別對顯示塊A、B、C、D組織顯示數據[2]。首先對顯示塊A的顯示信息進行組織:

  ① ,即當前掃描線各行與第0列相交各點的顯示數據按 ,…, 的順序存儲在存儲器的第一個存儲單元中。

  ② 值增加1,當前掃描線各行與 值對應列相交各點的顯示數據存儲在存儲器的下一個存儲單元中。

  ③重復第 eq oac(○,2)2步的操作,將 個數據按順序全部存儲在存儲器中。

  ④ 條掃描線向下移動一行,重復第 eq oac(○,1)1至 eq oac(○,3)3步。直到 移動到 行時。

  ⑤數據組織結束。

  顯示區域B、C、D,分別按照A的數據組織方式去組織顯示數據。組織后的顯示數據塊按A、B、C、D的順序存儲在RAM0里,然后將RAM0中的顯示數據塊A、B、C、D按B、C、D、A的順序拷貝到RAM1中,任何兩個相鄰顯示塊的顯示數據分別在兩塊RAM中都有相同地址存儲區域。RAM0 和RAM1的顯示數據與存儲器的對應關系如圖2所示。

  

  圖2 數據塊與存儲器之間的排列圖

  采用雙RAM并行輸出時的幾種情況,如圖2所示,掃描組1從 ,對應顯示塊A,數據已組織存放在存儲器中,可以直接輸出顯示數據;掃描組2從 ,對應顯示塊B也已經組織好,可以直接輸出。但是掃描組3,它的位置非同一般,它的掃描線分別對應著兩個塊A和B,第0,1,… 條掃描線分別對應顯示塊A掃描組1的1,2,…, ,而第 條掃描線對就顯示塊B掃描組2的第0條掃描線,如果要在顯示屏上顯示掃描組3對應的這一屏數據,就一定要同時使用到掃描組1的第1,2,…, 條掃描線和掃描組1的第0條掃描線組織的顯示數據作為輸出數據。由于顯示塊A和B的顯示數據是分別組織的,這時就要取RAM0的,…, 和RAM1的 位作為輸出到顯示屏的 位數據,這就需要在兩塊RAM同時輸出的2 位中選擇需要的 位作為輸出數據,并且這 位數據是連續的 位數據。

  顯示步驟(在此,只考慮垂直移動顯示效果):雙RAM技術將顯示數據輸出的時候,是將兩塊RAM中相同地址的兩個數據同時輸出。所以,如果設置RAM0為主存儲器,RAM1為從存儲器,則將兩塊RAM的顯示數據存在一塊串行存儲器中的時候,偶地址單元應存儲RAM0的數據,奇地址單元存儲RAM1的數據,由于數據寬度為8,所以每次輸出16位數據。如果顯示區域中以( )點為顯示起始點,在LED屏上顯示一屏顯示信息,則其數據選擇控制位只與 、掃描線和掃描寬度 有關[3]。顯示區域的起始行坐標為 ,一塊顯示區域有 行,則 所在的塊為:

  

  這里討論 在實際顯示區域的坐標沒有多大意義,只須注意 在當前顯示塊的相對坐標, 就是 在當前顯示塊的相對縱坐標,則相對坐標為( )。動態顯示的基礎是靜態顯示,靜態顯示以從特定行顯示一屏為特征,當顯示屏從第 行開始顯示信息時,因為一塊顯示區域有 個數據,則 所在塊顯示數據的起始地址為:

  

  一塊顯示區域分為 個區,如圖2所示,則 所在的分區記作:

  

  一區存放有 個顯示數據,所以 所在分區地址與所在塊起始地址之間的相對偏移地址為 。所以,只要知道了顯示信息的起始行坐標,就能得到顯示數據在存儲器中的存儲地址。

  因為 ,記 ,表示顯示信息跨越兩個數據塊時,需要選擇的數據位數。存儲器輸出16位數據 后,從 位控制選擇連續的8位數據 輸出到顯示屏。當數據從一個字節的 位開始輸出16位時,如 ,前面8位在當前顯示是多余的幾位數據,后面8位數據 正好是要輸出到顯示屏的8位數據,當這16位數據串行輸出到一個8位的移位寄存器中時,移位寄存器剛好可以容納高8位數據,并將其輸出顯示。之后各列數據的輸出情況同樣如此,不需要額外的指令或電路來對輸出數據進行選擇輸出。

          只是在每行第一列數據輸出前,通過單片機模擬i個時鐘脈沖輸出到存儲器,讓輸出數據產生錯位,使數據從 位開始輸出。另外有一種情況,當顯示信息剛好是A、B、C、D塊中的某一塊時,無須產生模擬脈沖對數據進行選擇,而是直接將數據輸出顯示。通過分析可知,SPI模塊剛好具有這個功能,通過單片機額外模擬 個時鐘脈沖,輸出到串行存儲器的時鐘信號端,可以使數據錯位,從指定的某一位 開始輸出。當顯示信息跨越 區間時,此時如果一場顯示還沒有完畢,內存地址應返回到 所在塊的起始地址,并從起始地址開始輸出顯示數據,單片機模擬的脈沖數 也相應發生變化[4]。

  2   LED顯示屏控制系統設計

  為了簡化電路,提高數據輸出效率,本控制系統采用RAMTRON(瑞創)公司的帶SPI功能模塊的VRS51L3074單片機,如圖3所示。VRS51L3074單片機的時鐘頻率為40MHz,指令周期短,處理速度快,效率可以與ARM處理器媲美,但是ARM處理器的價格要高得多。VRS51L3074單片機工作電壓在3.3V左右,但是可以兼容5V[5]。

  

  圖3 LED顯示屏控制電路

  2.1     VRS51L3074的SPI功能模塊

  VRS51L3074單片機的SPI時鐘頻率可以在 范圍內調整,SPI時鐘頻率最高可以達到20MHz[6]。當VRS51L3074作為SPI主機時,可以對SPI運行控制、配置和狀態監控以及其他的一些工作環境進行設置:

  配置寄存器SPICONFIG:主要對片選信號控制模式、SPI中斷進行設置。

  狀態寄存器SPISTATUS:主要用于對SPI運行狀態的監控。

  傳輸字長寄存器SPISIZE:設置傳輸字長,本文設置為16位,即每次輸出16位數據。

  控制寄存器SPICTRL:對SPI時鐘速率、時鐘相位/極性、片選信號,以及SPI時鐘頻率進行設置。

  數據寄存器SPIRXTX0~ SPIRXTX3:用于對SPI接口32位收發緩沖器的訪問,對數據寄存器執行寫操作是將數據送入發送緩沖器中,對數據寄存器執行讀操作是從接收緩沖器中取出收到的數據。SPI接口的發送和接收緩沖器都采用雙緩沖結構,從硬件上減少數據沖突并提高數據傳輸效率。在主模式下對SPIRXTX0寄存器執行寫入操作將啟動SPI傳輸。當傳輸字各行長大于8時,應最后向SPIRXTX0寄存器寫入。

  向串行FLASH輸入控制信號和數據地址后,啟動串行FLASH傳輸數據,在SPI時鐘驅動下,輸出顯示數據。并且可以用單片機模擬串行FLASH時鐘信號控制任意位數據輸出。

  2.2     數據選擇控制電路

  設計的LED顯示屏控制系統如圖3所示,VRS51L3074單片機內部自帶精確的40MHz振蕩器,不需要外部晶振電路提供系統時鐘,顯示數據使用內存為16Mb的SST25VF016B,這是一款具有SPI接口的8PIN串行FLASH[7]。雙RAM技術輸出顯示數據的時候,是將兩塊RAM中相同地址的兩個數據同時輸出,所以,將兩塊RAM的顯示數據存放在一塊串行存儲器中的時候,偶地址單元應存儲RAM0的數據,奇地址單元存儲RAM1的數據,數據輸出時,每次輸出16位數據。串行存儲器和單片機的工作電壓都在3.3V左右,但是VRS51L3074單片機可以兼容5V,簡化了控制電路。控制信號和顯示數據在輸出到寄存器74LS164和顯示屏的時候,需要用74LVC07進行電平轉換。

  控制系統控制顯示數據輸出的流程為:

  ①將掃描線行地址通過P2端口的低四位送給LED顯示屏。

  ②通過顯示數據在顯示區域中的位置,計算顯示數據在存儲器中的地址,并計算出數據選擇的位數

  ③通過單片機P3.0口模擬移位脈沖,輸出到串行FLASH時鐘信號,移位脈沖數由數據選擇位數 決定。使輸出數據產生錯位,正確的選擇輸出顯示數據。

  ④啟動SPI讀取顯示數據, SPI傳輸字長設置為16位。模擬脈沖已經輸出到串行FLASH使數據產生了錯位,輸出16位數據 ,輸出到顯示屏的數據 在高8位,經過移位剛好可以存放在移位寄存器中,每行第一個數據輸出后,以后此行各列數據都是直接輸出。

  ⑤16位數據輸出完畢后,通過P3.1腳產生一個SCK脈沖,將移位寄存器74LS164中的數據輸出移入到單元板的74HC595串行移位寄存器中。

  ⑥重復第 eq oac(○,4)4至 eq oac(○,5)5步,直到一行數據全部輸出完畢后,由P3.2 產生一個RCK脈沖,讀取的一行數據將輸出顯示,然后掃描線下移一行。

  ⑦重復第 eq oac(○,1)1至 eq oac(○,6)6步。

  此電路有這樣幾個特點:顯示數據從串行FLASH輸出后,不經單片機的處理,直接以“DMA”方式輸出到移位寄存器74LS164,同時實現串并轉換,節省數據處理時間,提高顯示效率;在每場數據輸出之前,通過信息在顯示區域中的地址計算數據選擇位數 ,并通過P3.0 端口模擬 個脈沖輸出到串行FLASH,移出 位數據,數據產生錯位,使輸出顯示的數據在16位輸出數據的高8位,可以直接存放在移位寄存器中,輸出到顯示屏,以后同行各列的顯示數據輸出時,無需再進行數據選擇位的判斷,直接將顯示數據從存儲器中輸出到顯示屏。

  存儲器效率分析:

  表1 存儲器效率存儲器

 

存儲器

效率η

靜態顯示

一般垂直移動顯示

雙RAM技術輸出顯示

η計算

公式

效率

100%

16%

100%

 

  觀察表1可知,在垂直移動顯示使用雙RAM技術組織,大大提高了存儲器效率,降低了顯示數據存儲器的占用。當顯示信息比較大時,動態數據組織使用的存儲器比較大,利用率低,而采用雙RAM技術正好解決這個問題。一塊RAM的效率是100%,雙RAM是50%,當有N塊RAM時,效率為

  3 程序設計

  針對圖3所示控制電路,按照數據輸出控制流程,編寫了一段程序,隨機顯示一屏信息,顯示數據已按順序存儲在串行FLASH中。

  void display(unsigned int YL)

  { unsigned int i,j,p;

  unsigned char line, unit_board_num, board_i;

  unsigned char code *ram_point, *block_addr,* region_addr,* ram_begin_addr;

  block_addr=YL/(Bw*Sw) * (Sw*Dw); //所在塊的起始地址

  region_addr=(YL%Sw)*Dw; /所在區的相對塊的相對地址

  i=YL/Sw;

  region_recod=YL%Sw; //此變量記錄顯示數據已進入哪一區

  ram_point=ram_begin_addr+block_addr+region_addr-1; // ram_begin_addr為數據起始地址

  SPI_write_read(0x03); //向串行FLASH發讀命令,0x03為讀控制字

  SPI_write_read(((ram_point & 0xffffff)》》16)); //3字節24位地址

  SPI_write_read(((ram_point & 0xffff)》》8));

  SPI_write_read (ram_point & 0xff);

  unit_board_num=Dw/64; //計算單元板的數量

  for(p=0;p

  { SCK=0; SCK=1; }

  SCK=0;

  for(line=0;line

  { SPISIZE=0x0f; //設置2字節16位傳輸方式

  for( board_i=0;board_i

  { for(j=0;j《64;j++)

  { SPIRXTX0=ACC; //啟動數據傳輸出

  while((SPISTATUS & BIT1) == 0); //等待發送(接收)完成

  LED_SCK=0;LED_SCK=1; //送入單元板

  } }

  EN=1; //換行時暫關閉

  P2=((P2&0xf0)|line);

  if(region_recod》=Sw)

  { ram_point=ram_begin_addr+block_addr-1;

  SPISIZE=0x07;

  SPI_write_read(((ram_point & 0xffffff)》》16));

  SPI_write_read(((ram_point & 0xffff)》》8));

  SPI_write_read (ram_point & 0xff);

  region_recod=0; i++;

  if(i《=7)

  for(p=0;p

  { SCK=0; SCK=1; }

  SCK=0; }

  RCK=1; RCK=0; //產生74HC595輸出鎖存信號

  EN=0; } //開顯示

  unsigned char SPI_write_read (unsigned char Wr_Rd_Data)

  { unsigned char Temp_Flag;

  SPDR= Wr_Rd_Data; //啟動SPI發送或接收

  do //判斷發送或接收是否完成

  { Temp_Flag=SPSR&0x80;

  }while(Temp_Flag!=0x80);

  SPSR=SPSR&0x7F; //清SPI發送或接收完成標志

  return SPDR; } //返回SPI接收到的數據

  結 論

  本控制系統利用串行FLASH在輸出數據時的特點,最大的減少了數據處理的時間,將顯示數據以“DMA”方式輸出到顯示屏,提高顯示效率,并且彌補長條顯示屏在顯示信息上的不足。雙RAM技術大大提高了垂直移動時的存儲器使用效率,所有的數據塊都是按靜態顯示方式組織數據,所以每一塊RAM的顯示數據效率都是100%,雙RAM的效率為50%。

         本文顯示數據存放在一塊FLASH中,效率也為50%,相比動態顯示組織方式,降低了垂直移動時顯示數據存儲器的占用,提高存儲效率。還可以雙RAM技術為基礎,擴展出多RAM方式,提高顯示的高度,增加每屏顯示信息,進一步提高存儲效率。本系統仍有改進的空間,譬如以雙RAM組織顯示數據后直接用兩個RAM來存放不同的數據,控制顯示數據直接輸出,提高輸出速率。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 高清毛片一区二区三区 | 免费观看日本视频 | 国产免费一区不卡在线 | 大学生一级一片第一次免费 | 久草国产在线观看 | 国产日韩精品一区在线观看播放 | 免费一级特黄3大片视频 | 亚洲国产精品国产自在在线 | 国产精品秦先生手机在线 | 经典三级久久久久 | 99视频精品在线 | 成 人 黄 色 免费播放 | 欧美视频精品在线 | 免费特黄一区二区三区视频一 | 国产高清厕所盗摄视频 | 国产成人毛片精品不卡在线 | 免费一级毛片不卡在线播放 | 精品久久久久久久久久中文字幕 | 九九九九九九 | 99久久国产综合精品1尤物 | a级片免费在线播放 | 国产成人在线小视频 | 99久久精品一区二区三区 | 欧美人一级淫片a免费播放 欧美人与z0z0xxxx | 狠狠色狠狠色综合久久第一次 | 久久欧美精品欧美久久欧美 | 国产精自产拍久久久久久蜜 | 久久中文字幕免费视频 | 美女视频永久黄网站免费观看韩国 | 亚洲人成网国产最新在线 | 国产欧美亚洲精品a | 久草网在线观看 | 亚洲一级毛片欧美一级说乱 | 欧美精品一区二区在线观看 | 一级毛片免费视频观看 | 99免费在线播放99久久免费 | 免费人成黄页网站在线观看 | 高清韩国a级特黄毛片 | 欧美一区二区三区免费不卡 | a级国产精品片在线观看 | 日本手机在线视频 |