<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計應用 > LED大屏幕輸出電路的優(yōu)化設(shè)計

          LED大屏幕輸出電路的優(yōu)化設(shè)計

          作者: 時間:2012-10-18 來源:網(wǎng)絡(luò) 收藏

          摘 要: 在研究目前 控制的基礎(chǔ)上,提出了一種提高速度的實現(xiàn)方法。文中給出了該方法的原理與圖,并探討了不同計數(shù)方式下,數(shù)據(jù)的組織與顯示的實現(xiàn)過程。此方法如果與FPGA/ CPLD 改造、使用更高頻率單片機的方式相結(jié)合,將會進一步提高控制的性能。改造電路可以高至單片機主頻的1/ 4 頻率送出顯示數(shù)據(jù),文中說明了使用此方式時應注意的事項。

          本文引用地址:http://www.ex-cimer.com/article/167450.htm

          1 引 言

          等顯示系統(tǒng)對數(shù)據(jù)速度的要求日益提高的背景下,當前對控制設(shè)備進行改造的過程中,首選的辦法是更換更高速率的微處理器,而對硬件電路的挖潛往往容易被忽視。

          在實踐運用中,建議應先考慮在原有的系統(tǒng)上進行硬件電路改造,如仍不能滿足顯示要求,可再考慮更換高速率微處理器及用FPGA/ CPLD 器件進行電路替代處理的方案。本文以 大屏幕控制電路為例,提出了一種在硬件電路改造上提高顯示數(shù)據(jù)輸出速度的實現(xiàn)辦法。

          2 數(shù)據(jù)輸出電路的基理

          由LED大屏幕的顯示原理可知,一個數(shù)據(jù)顯示在LED大屏幕的過程分為:從存儲器中讀出數(shù)據(jù)與送入到LED板中顯示兩個步驟。這一過程需要產(chǎn)生如下控制信號:數(shù)據(jù)地址送入存儲器,存儲器讀信號,鎖存器開通及LED單元板中的行信號、HC595 的SCK 移位、RCK 鎖存、E 使能信號等。這些必需信號的產(chǎn)生增加了數(shù)據(jù)顯示過程的時間。如果能夠復用其中的信號,勢必減少這一過程的延時。在LED顯示系統(tǒng)中,常把顯示數(shù)據(jù)按行存儲到外部ROM/ RAM 中的辦法即是一例。該辦法設(shè)定存儲器的高位并接到L ED的行控制線上,數(shù)據(jù)按行儲存,送入數(shù)據(jù)地址后,按行讀出數(shù)據(jù),并同時開通了行控制信號。下面的信號復用方案也是類似的原理。

          圖1  信號復用示例

          圖1  信號復用示例

          在考查讀外存的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之和)。

          而當連續(xù)讀出一塊存儲器數(shù)據(jù)時,需要通過程序產(chǎn)生新的地址賦值給數(shù)據(jù)口, 而這些地址都是順序變化的?;谶@一特點,采用計數(shù)器電路用來保存讀數(shù)據(jù)時的初始地址,利用外部供給的脈沖,只要對計數(shù)器的保存地址進行順序增加,即可將數(shù)據(jù)連續(xù)讀出。

          單片機ALE 腳或是利用串行口工作方式也會產(chǎn)生一定頻率的脈沖,但沒有SPI 方式下產(chǎn)生的脈沖頻率高,且這兩種方式的使用均有一定的限制,而啟動SPI 方式比較方便。串行外圍接口(Serial Perip heral Interface , SPI) 總線系統(tǒng)是一種同步串行外設(shè)接口,是Motorola 首先在其MC68HCXX 系列處理器上定義的。SPI 系統(tǒng)有4 個I/ O 腳,它們是串行時鐘SPSCK、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/ 從機輸入數(shù)據(jù)線MOSI 和低位有效的從機選擇數(shù)據(jù)線SS.SP2SCK用于同步數(shù)據(jù)從MOSI 輸入和MISO 的輸出傳送。通過對SPI 控制寄存器SPCR 的設(shè)置,SPSCK的頻率最高可以達到振蕩器頻率( fOSC )的1/ 4。

          因為SPI 模式可方便產(chǎn)生出較高頻率脈沖的優(yōu)點,即采用SPSCK作為計數(shù)器的脈沖,利用計數(shù)器對存儲器產(chǎn)生連續(xù)變化的地址,實現(xiàn)對數(shù)據(jù)的高速讀出。并且SPSCK 信號經(jīng)過變換與延時處理,可同時供給LED做SCK移位信號使用。

          圖2  SPI 在讀取存儲器的運用

          圖2  SPI 在讀取存儲器的運用

          3 SPI 運用的實現(xiàn)過程

          從上文可以得到這樣的啟示:在LED控制電路的中,可借助于SPI 模式讀取數(shù)據(jù),即增加一塊SPI 模式的FLASH 存儲器,一方面可以保存重要文檔,另一方面可以利用SPSCK 產(chǎn)生的信號,通過計數(shù)器電路實現(xiàn)對存儲器高速讀數(shù)據(jù),并且復用此信號產(chǎn)生屏幕顯示的控制信號。在給定了輸出數(shù)據(jù)的首地址并啟動SPI 后,此方式使數(shù)據(jù)的讀出到屏幕顯示這一過程自動進行,同一信號源的全硬件方式大大減少了以往分別產(chǎn)生各控制信號方式時的銜接延時。圖3 為SPI 在LED大屏幕控制電路中的運用示例。

          圖3  SPI 模式下的L ED 大屏幕控制電路圖

          圖3  SPI 模式下的L ED 大屏幕控制電路圖

          級聯(lián)計數(shù)器的個數(shù)根據(jù)RAM 的容量大小,即地址線的數(shù)目來確定。微處理器通過驅(qū)動器連接SPI 串行存儲器, 驅(qū)動器可以選擇7407 或7417 的型號。RM_MODE 用來區(qū)別不同的讀寫操作方式。當RM_MODE = 1 時,是普通讀寫外部存儲器的方式,當RM_MODE = 0 時,就可以讓主機作為主器件,串行FLASH 存儲器作為從器件,兩者以SPI 方式進行通信,利用此時產(chǎn)生的SPSCK信號對存儲器進行高速讀數(shù)據(jù)操作。同時SPSCK信號經(jīng)過變換與延時處理,可以供給LED做SCK 移位信號用。在計數(shù)脈沖的輸入端,可以使用跳線做加、減方式的選擇處理。當脈沖接于計數(shù)器UP 端時, 為加計數(shù)方式, 接于DOWN 時,為減計數(shù)方式。圖3 也可擴展并接多組計數(shù)器,多組RAM.

          減計數(shù)器方式的運用大大增強了數(shù)據(jù)輸出的靈活性。在LED大屏幕顯示中,加、減計數(shù)器配合使用,可以使相同一塊控制卡輸出數(shù)據(jù)的顯示長度提高一倍。當使用減計數(shù)器方式時,為了與使用加方式時LED大屏幕上顯示的圖文一致,必須對與減計數(shù)器連接的RAM 的數(shù)據(jù)進行上、下半屏交換處理,并且在輸出時要在程序中改變數(shù)據(jù)的起始點,給出的行控制信號(RCK) 也應做倒序處理(見圖4)。

          圖4  加、減法模式下的數(shù)據(jù)組織與顯示

          DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();