全液晶顯示車(chē)載交互式信息系統方案
3 軟件設計
系統軟件由FLASH燒寫(xiě)驅動(dòng)文件、初始化程序和主程序3個(gè)獨立的程序構成。SPIFLASH燒寫(xiě)驅動(dòng)文件(BF536一SPI—Programmer_Driver)在A(yíng)DIDSP集成開(kāi)發(fā)環(huán)境VisualDSP++中配置生成,其作用是在主程序調試完畢后,完成主程序在FALSH中的固化。初始化程序是在調用主程序之前首先調用的一個(gè)小程序,相當于BIOS,其作用是完成DSP芯片時(shí)鐘及部分模塊的初始化,使得SDRAM正常工作,并引導主程序的載人。
主程序是用戶(hù)根據需求開(kāi)發(fā)并調試通過(guò)的應用程序,其完成各外設模塊及中斷的配置,完成數據的操作及對液晶屏的時(shí)序控制。
3.1 LCD驅動(dòng)軟件設計
LCD驅動(dòng)軟件的設計包括LCD控制信號時(shí)鐘設置、BF536PPI模塊和DMA模塊的初始化3部分。另外,為使畫(huà)面顯示穩定,需要在外擴SDRAM中開(kāi)辟圖像數據暫存空間供DSP循環(huán)讀寫(xiě)。
3.1.1 配置控制信號時(shí)鐘
ADSP—BF536芯片沒(méi)有LCD控制器外設,而液晶屏模塊LQ104V1DG52具有4個(gè)控制信號輸入端,分別為CLK、ENAB、Hsync和Vsync,4個(gè)控制信號必須滿(mǎn)足一定時(shí)序要求才能實(shí)現LCD的正確驅動(dòng)。本方案中,LCD的4個(gè)控制信號都由BF536的PPI模塊提供:PPI—CLK輸出接LCDCLK輸入;配置BF536FS1/timer0和FS2/timerl引腳為輸出,分別接Hsync和Vsync;FS3引腳配置為普通I/O管腳,接LCDENAB,正常工作條件下置低。配置Timer0為PWM輸出模式,PWM周期為850個(gè)CLK,脈沖寬度為96個(gè)CLK;配置Timerl為PWM輸出模式,周期為446250個(gè)CLK,脈沖寬度為1700個(gè)CLK。PWM信號周期及脈沖寬度的確定都是通過(guò)查詢(xún)手冊得到的,實(shí)際試驗證明此配置是正確的。
3.1.2 BF536PPI模塊初始化
由液晶屏的控制時(shí)序可知,ENAB信號置低時(shí),液晶屏在監測到同步幀信號沿后計數104個(gè)時(shí)鐘,然后開(kāi)始讀寫(xiě)有效數據,讀完640個(gè)行有效數據后等待下一個(gè)行同步幀信號。這種特性是由其自身的硬件機制決定的。ADSP—BF536的PPI模塊有ITUR一656和General—PurposePPI兩種工作模式。系統正常工作時(shí),DSP需要從PPI模塊把顯示數據打出,這里我們配置PPI為General—PurposePPI模式模塊。設置PPICOUNT一639,即DSP每行同步幀輸出數據量為640;設置PPI~DELAY一104,在PPI發(fā)送同步幀信號104個(gè)時(shí)鐘后啟動(dòng)DMA傳輸,將數據打到數據線(xiàn)上;設置PPI—FS1和PPI—FS2為下降沿有效。
3.1.3 開(kāi)辟數據暫存空間
如前所述,為實(shí)現液晶屏的可靠掃屏,本方案采用外擴SDRAM的方法,在SDRAM中開(kāi)辟一定存儲空間暫存顯示數據,然后將此空間中的數據循環(huán)向液晶屏發(fā)送。在SDRAM中定義ZONE1和ZONE2兩塊數據暫存空間,每塊大小為640X(480+34+11),單位數據寬度16位。
定義并初始一個(gè)全局變量DatabuferFlag為0作為標志,發(fā)送程序查詢(xún)此標志并根據此標志的值決定發(fā)送ZONE1還是ZONE2中的數據。在DSP收到外部中斷信號(按鍵、觸摸屏、CAN等)時(shí),DatabufferFlag值改變,DSP向當前存儲區內寫(xiě)數據,并將另一存儲區內數據發(fā)送至液晶屏,如此循環(huán)。ZONE1包括data—buf、inv—front1、inv—last13個(gè)存儲區,ZONE2包括data—buf2、inv—front2、inv_last23個(gè)存儲區,其中data—bufl、data—buf2存儲有效發(fā)送數據。通過(guò)section(”sdram0”)指令定義這些存儲區在SDRAM中的起始地址和長(cháng)度。配置inv—last1、inv—last2DMA中斷,即緩沖區中的數據發(fā)送完畢后,會(huì )產(chǎn)生一個(gè)中斷。圖3為SDRAM中數據暫存區示意圖。
3.1.4 DMA模塊初始化
因為DMA控制器配置方便、靈活,所以AI)_SP—BF536的很多外設都采用DMA方式傳輸數據。本方案中配置DMA為二維DMA大描述符模式(Largemode1)。采用大描述符模式的優(yōu)點(diǎn)是可以將幾個(gè)不連續的存儲區鏈接起來(lái),可以實(shí)現不連續存儲區的連續數據傳輸。將需要設置的DMA幾個(gè)寄存器定義為一個(gè)結構體,描述如下:
3.2 ID顯示主程序設計
DSP完成系統初始化后,進(jìn)入LCD顯示主程序。DSP通過(guò)PPI外設將數據暫存區ZONE1或ZONE2中的數據發(fā)送至液晶屏,圖像保持不變。發(fā)生外部中斷時(shí),DataBuferFlag的值改變,修改描述符指針,啟動(dòng)另一數據暫存區的DMA傳輸。程序流程圖如圖4所示。
4 顯示實(shí)驗
為驗證方案的可行性,我們制作了控制器樣機并進(jìn)行了液晶屏顯示實(shí)驗。圖5為系統上電,BF536從外部FLASH載入引導程序初始化系統后,調用保存在FLASH中的車(chē)載信息圖像數據并在液晶屏上進(jìn)行顯示的照片??梢钥闯?,液晶屏可以顯示車(chē)速、油量、安全帶情況等各種信息,顯示內容清晰、穩定。
圖5 汽車(chē)信息顯示實(shí)驗照片 5 結論 采用液晶屏顯示汽車(chē)運行信息將成為下一代汽車(chē)儀表的主流。本設計采用DSP芯片與液晶屏為主要器件構建了一種全液晶顯示的車(chē)載信息系統,在新型汽車(chē)儀表開(kāi)發(fā)方面進(jìn)行了探索研究。該車(chē)載信息系統目前已經(jīng)基本完成了系統的硬件部分調試和基本的軟件設計,實(shí)際的性能測試和實(shí)驗結果表明,該系統顯示清晰穩定,效果良好。
評論