基于ARM+FPGA的大屏幕顯示器控制系統(tǒng)設(shè)計
3 系統(tǒng)軟件設(shè)計
本文引用地址:http://m.butianyuan.cn/article/261853.htm3.1 ARM軟件設(shè)計
根據(jù)該系統(tǒng)的設(shè)計需求,將軟件劃分如下幾個模塊分別形成獨立的程序文件:啟動代碼模塊、串口模塊、時鐘模塊、溫度和亮度傳感器模塊、FLASH 管理模塊、下載管理模塊和顯示模塊。啟動代碼用于初始化系統(tǒng)配置、初始化各個處理器模式下的??臻g,初始化目標板,引導C程序運行,用匯編語言編寫;串口模塊實現(xiàn)串口的發(fā)送、接收等基本功能;時鐘模塊實現(xiàn)RTC時間的設(shè)置與讀取等基本功能;溫度和亮度傳感器模塊實現(xiàn)溫度和亮度控制;Flash管理模塊實現(xiàn)外部FLASH擦除、存儲、分配的管理,將顯示指令和顯示信息進行存儲;下載管理模塊負責與上位機通訊,下載顯示指令和信息;顯示模塊負責顯示指令的解析以及顯示信息的提取,顯示效果的處理,包括出場模式和表演模式以及各種字體字形的產(chǎn)生,同時負責送灰度數(shù)據(jù)給FPGA,本設(shè)計以啟動代碼為例闡述源代碼的編寫。
通常將啟動代碼劃分為5個文件:startup.s、IRQ.s、stack.s、heap.s和target.c。startup.s包含中斷向量表和系統(tǒng)初始化代碼;IRQ.s包含中斷服務(wù)程序與C程序的接口代碼;stack.s和heap.s保存C語言使用的堆和棧的開始位置;target.c包含目標板特殊的代碼,包括異常處理程序和目標板初始化程序。下面給出幾個關(guān)鍵的初始化程序段供參考。
1.中斷向量表
![](http://editerupload.eepw.com.cn/201408/77dce6e06423612ebeb683eda3204857.jpg)
2.系統(tǒng)初始化代碼
ResetInit
BL Initstack;初始化芯片各種模式的堆棧
BL TargetResetInit:目標板基本初始化
B Main;跳轉(zhuǎn)到ADS提供的_ain函數(shù)處,它初始化函數(shù)庫并最終引導CPU進入main()函數(shù)
3.初始化CPU堆棧Initstack(源代碼略)
3.2 FPGA內(nèi)部的功能模塊
圖4為FPGA內(nèi)部的功能模塊圖。FPGA將ARM傳送過來的信號包括灰度數(shù)據(jù)(DATA)、系統(tǒng)時鐘(CLK)、幀同步信號(VSYNC)、行同步信號(HSYNC)、片選信號(CS2)和寫信號(WRITE)送入存儲器切換電路,存儲器切換電路將圖像數(shù)據(jù)(DAIA)分時送到靜態(tài)存儲器 SRAM1和靜態(tài)存儲器SKAM2進行存儲。SRAM1和SRAM2工作在交替讀寫狀態(tài),即向一片SRAM寫人數(shù)據(jù)的同時,從另一片SRAM中讀出數(shù)據(jù);靜態(tài)存儲器的讀寫狀態(tài)由系統(tǒng)時鐘、幀同步、行同步以及片選信號來控制。讀地址發(fā)生器用于計算所需數(shù)據(jù)信息在存儲器中存儲的地址,以便保證LED大屏幕的正確顯示,它是由移位時鐘來控制產(chǎn)生15位讀地址信號,移位時鐘信號的工作頻率為4 MHz。讀地址發(fā)生器產(chǎn)生的讀地址信號在移位時鐘的作用下,產(chǎn)生4個分區(qū)鎖存信號,4個分區(qū)的顯示數(shù)據(jù)同時送人屏體,只有當鎖存信號有效時,才點亮顯示屏。從SRAM讀出的灰度數(shù)據(jù)DAIA送入灰度值發(fā)生器,并根據(jù)屏體顯示結(jié)構(gòu)進行數(shù)據(jù)重組,轉(zhuǎn)化成LED顯示屏要求的上屏數(shù)據(jù)信號(紅、綠、藍灰度數(shù)據(jù))。三色的上屏數(shù)據(jù)送入串行發(fā)送數(shù)據(jù)寄存器,并在移位時鐘的作用下串行發(fā)送至屏體。在將一片SRAM中的數(shù)據(jù)轉(zhuǎn)換后上屏的同時,通知微處理器發(fā)送下一屏數(shù)據(jù)。此外,ARM還發(fā)送兩位亮度控制信號COMM0、COMM1和亮度數(shù)據(jù)信號COMM2。串行發(fā)送的亮度數(shù)據(jù)信號進入8位串并轉(zhuǎn)換電路,在 COMM0、COMM1的控制下,產(chǎn)生亮度信號。
![](http://editerupload.eepw.com.cn/201408/5b947089c567df8cd5d35f0fb947d474.jpg)
4 仿真及系統(tǒng)驗證
使用ModelSim仿真用VHDL編寫的掃描驅(qū)動電路波形如圖5。從圖5可知,從ARM接收到的數(shù)據(jù)data(01010101)存入到外部擴展的存儲器SRAM2,m2ma是存儲器2的地址線,它根據(jù)控制信號(tp1,tp2,cs2,swite)的控制作用連續(xù)增加;cm2d是存儲器2的數(shù)據(jù)線,將data數(shù)據(jù)存入,則cm2d為01010101,同時從存儲器1中讀出數(shù)據(jù),轉(zhuǎn)換后送給red0、ged0、bed0,從而驗證驅(qū)動電路的正確性。
![](http://editerupload.eepw.com.cn/201408/c0e31b8397924fb73cef7cbfa327034a.jpg)
經(jīng)硬件設(shè)計和軟件編碼與調(diào)試后,將ARM軟件源代碼通過ISP下載到ARM中的FLASH后復位運行,系統(tǒng)驗證了該設(shè)計的可靠性和正確性。
5 結(jié)論
本設(shè)計采用32位ARM嵌入式微處理器S3C4510B和32位FPGA掃描驅(qū)動電路芯片PolarProQLlP300,選用 IS61C1024靜態(tài)RAM作為緩存器,組成由多塊大屏幕LED顯示器構(gòu)成的顯示系統(tǒng),選用ARM+RAM+FPGA設(shè)計方案,從而解決了系統(tǒng)的運行速度、尋址能力和功耗等問題,從而支持更大可視區(qū)域的穩(wěn)定顯示,存儲更多的顯示內(nèi)容。
fpga相關(guān)文章:fpga是什么
led顯示器相關(guān)文章:led顯示器原理
三相異步電動機相關(guān)文章:三相異步電動機原理
評論