<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM+FPGA的大屏幕顯示器控制系統設計

基于A(yíng)RM+FPGA的大屏幕顯示器控制系統設計

作者: 時(shí)間:2014-08-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  3 系統軟件設計

本文引用地址:http://dyxdggzs.com/article/261853.htm

  3.1 軟件設計

  根據該系統的設計需求,將軟件劃分如下幾個(gè)模塊分別形成獨立的程序文件:?jiǎn)?dòng)代碼模塊、串口模塊、時(shí)鐘模塊、溫度和亮度傳感器模塊、FLASH 管理模塊、下載管理模塊和顯示模塊。啟動(dòng)代碼用于初始化系統配置、初始化各個(gè)處理器模式下的??臻g,初始化目標板,引導C程序運行,用匯編語(yǔ)言編寫(xiě);串口模塊實(shí)現串口的發(fā)送、接收等基本功能;時(shí)鐘模塊實(shí)現RTC時(shí)間的設置與讀取等基本功能;溫度和亮度傳感器模塊實(shí)現溫度和亮度控制;Flash管理模塊實(shí)現外部FLASH擦除、存儲、分配的管理,將顯示指令和顯示信息進(jìn)行存儲;下載管理模塊負責與上位機通訊,下載顯示指令和信息;顯示模塊負責顯示指令的解析以及顯示信息的提取,顯示效果的處理,包括出場(chǎng)模式和表演模式以及各種字體字形的產(chǎn)生,同時(shí)負責送灰度數據給,本設計以啟動(dòng)代碼為例闡述源代碼的編寫(xiě)。

  通常將啟動(dòng)代碼劃分為5個(gè)文件:startup.s、IRQ.s、stack.s、heap.s和target.c。startup.s包含中斷向量表和系統初始化代碼;IRQ.s包含中斷服務(wù)程序與C程序的接口代碼;stack.s和heap.s保存C語(yǔ)言使用的堆和棧的開(kāi)始位置;target.c包含目標板特殊的代碼,包括異常處理程序和目標板初始化程序。下面給出幾個(gè)關(guān)鍵的初始化程序段供參考。

  1.中斷向量表

  

 

  2.系統初始化代碼

  ResetInit

  BL Initstack;初始化芯片各種模式的堆棧

  BL TargetResetInit:目標板基本初始化

  B Main;跳轉到ADS提供的_ain函數處,它初始化函數庫并最終引導CPU進(jìn)入main()函數

  3.初始化CPU堆棧Initstack(源代碼略)

  3.2 內部的功能模塊

  圖4為內部的功能模塊圖。FPGA將傳送過(guò)來(lái)的信號包括灰度數據(DATA)、系統時(shí)鐘(CLK)、幀同步信號(VSYNC)、行同步信號(HSYNC)、片選信號(CS2)和寫(xiě)信號(WRITE)送入存儲器切換電路,存儲器切換電路將圖像數據(DAIA)分時(shí)送到靜態(tài)存儲器 SRAM1和靜態(tài)存儲器SKAM2進(jìn)行存儲。SRAM1和SRAM2工作在交替讀寫(xiě)狀態(tài),即向一片SRAM寫(xiě)人數據的同時(shí),從另一片SRAM中讀出數據;靜態(tài)存儲器的讀寫(xiě)狀態(tài)由系統時(shí)鐘、幀同步、行同步以及片選信號來(lái)控制。讀地址發(fā)生器用于計算所需數據信息在存儲器中存儲的地址,以便保證LED大屏幕的正確顯示,它是由移位時(shí)鐘來(lái)控制產(chǎn)生15位讀地址信號,移位時(shí)鐘信號的工作頻率為4 MHz。讀地址發(fā)生器產(chǎn)生的讀地址信號在移位時(shí)鐘的作用下,產(chǎn)生4個(gè)分區鎖存信號,4個(gè)分區的顯示數據同時(shí)送人屏體,只有當鎖存信號有效時(shí),才點(diǎn)亮顯示屏。從SRAM讀出的灰度數據DAIA送入灰度值發(fā)生器,并根據屏體顯示結構進(jìn)行數據重組,轉化成LED顯示屏要求的上屏數據信號(紅、綠、藍灰度數據)。三色的上屏數據送入串行發(fā)送數據寄存器,并在移位時(shí)鐘的作用下串行發(fā)送至屏體。在將一片SRAM中的數據轉換后上屏的同時(shí),通知微處理器發(fā)送下一屏數據。此外,還發(fā)送兩位亮度控制信號COMM0、COMM1和亮度數據信號COMM2。串行發(fā)送的亮度數據信號進(jìn)入8位串并轉換電路,在 COMM0、COMM1的控制下,產(chǎn)生亮度信號。

  

 

  4 仿真及系統驗證

  使用ModelSim仿真用VHDL編寫(xiě)的掃描驅動(dòng)電路波形如圖5。從圖5可知,從ARM接收到的數據data(01010101)存入到外部擴展的存儲器SRAM2,m2ma是存儲器2的地址線(xiàn),它根據控制信號(tp1,tp2,cs2,swite)的控制作用連續增加;cm2d是存儲器2的數據線(xiàn),將data數據存入,則cm2d為01010101,同時(shí)從存儲器1中讀出數據,轉換后送給red0、ged0、bed0,從而驗證驅動(dòng)電路的正確性。

  

 

  經(jīng)硬件設計和軟件編碼與調試后,將ARM軟件源代碼通過(guò)ISP下載到ARM中的FLASH后復位運行,系統驗證了該設計的可靠性和正確性。

  5 結論

  本設計采用32位ARM嵌入式微處理器S3C4510B和32位FPGA掃描驅動(dòng)電路芯片PolarProQLlP300,選用 IS61C1024靜態(tài)RAM作為緩存器,組成由多塊大屏幕LED顯示器構成的顯示系統,選用ARM+RAM+FPGA設計方案,從而解決了系統的運行速度、尋址能力和功耗等問(wèn)題,從而支持更大可視區域的穩定顯示,存儲更多的顯示內容。

fpga相關(guān)文章:fpga是什么


led顯示器相關(guān)文章:led顯示器原理


三相異步電動(dòng)機相關(guān)文章:三相異步電動(dòng)機原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ARM FPGA PLD

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>