全液晶顯示車載交互式信息系統(tǒng)方案
1 引言
汽車儀表是駕駛員與汽車進(jìn)行信息交流的重要接口,為駕駛員提供汽車運(yùn)行參數(shù)、故障等信息,使駕駛員可以方便、全面地掌握汽車運(yùn)行狀態(tài),有利于提高駕駛的舒適性和安全性。隨著汽車工業(yè)的蓬勃發(fā)展,汽車的附屬功能越來越豐富,汽車儀表需要顯示的內(nèi)容也越來越多。薄膜晶體管液晶顯示器(TFT—LCD)是數(shù)字終端顯示最理想的顯示器件之一,而將液晶顯示技術(shù)應(yīng)用于現(xiàn)代汽車儀表,構(gòu)建全液晶顯示車載交互式信息系統(tǒng)已成為汽車儀表系統(tǒng)發(fā)展的必然趨勢。目前,豐田、福特、奧迪等汽車生產(chǎn)廠家已經(jīng)推出了帶有全數(shù)字液晶儀表的車型。
本文基于ADI公司的DSP芯片ADSPBF536和SHARP公司的液晶模塊LQ104V1一DG52,設(shè)計了液晶顯示車載信息系統(tǒng),給出了總體設(shè)計方案并設(shè)計了DSP芯片與液晶模塊的接口電路,編寫了液晶顯示、flash等模塊的驅(qū)動程序,分析了液晶模塊控制信號時序波形,進(jìn)行了汽車信息顯示實驗。實驗結(jié)果表明,液晶屏顯示內(nèi)容清晰、穩(wěn)定,達(dá)到了設(shè)計要求。
2 硬件設(shè)計
2.1 系統(tǒng)總體設(shè)計
如圖1所示,車載信息系統(tǒng)主要包括主控制芯片、帶觸摸屏的LCD數(shù)字儀表、外擴(kuò)SDRAM芯片、外部FLASH芯片以及分布在CAN總線上的不同節(jié)點,這些節(jié)點就是分布在汽車上的分控制器。
圖1 總體結(jié)構(gòu)框圖
2.2 主控制芯片
TFT-LCD需要控制信號按照一定的控制時序進(jìn)行驅(qū)動一種成本較高的驅(qū)動方案是用單片機(jī)、SRAM和專用液晶驅(qū)動芯片組合構(gòu)成系統(tǒng)驅(qū)動液晶屏。為降低液晶屏驅(qū)動成本,本方案選用ADI公司的Blackfin系列DSPADSP—BF536作為系統(tǒng)的主控芯片。Blackfin系列處理器是ADI和Intel公司聯(lián)合開發(fā)的微信號架構(gòu)(MSA)DSP,它將一個32位RISC型指令集和雙16位乘法累加(MAC)信號處理器功能與通用型微控制器所具有的易用性組合在了一起。BF536作為Blackfin系列DSP中的一員,具有高達(dá)400MHz的主頻,內(nèi)核供電電壓低至1.2V;具有3個16位MAC,2個40位ALU,4個8位視頻專用ALU;擁有高達(dá)102kB的片內(nèi)存儲器,包括16kB指令SRAM/Cache、48kB指令SRAM、32kB數(shù)據(jù)SRAM/Cache和4kB中間存儲器。
BF536還擁有豐富的外設(shè)資源,包括10/100以太網(wǎng)MAC接口;CAN2.0B接口;一個SPI接口;TwI接口控制器;并行口(PPI),支持IUT-R656視頻模式;全同步串口SPORT;2個UART口;12通道DMA控制器,包括兩個存儲器到存儲器DMA通道。
2.3 LED接口電路設(shè)計
本系統(tǒng)所選用的TFT-LCD是SHARP公司的LQ104V1DG52,具有26.5cm(10.4in)顯示尺寸,640×480分辨率,18位數(shù)據(jù)信號位(RGB每種顏色6位),26萬色。本方案利用BF536的PPI外設(shè)與液晶屏之間接口。BF536的PPI外設(shè)有20個引腳,每個時鐘周期可完成16位數(shù)據(jù)的收發(fā),而液晶屏的數(shù)據(jù)寬度為18位,設(shè)計中將PD接到BEo],PD接到RE0],實現(xiàn)了數(shù)據(jù)寬度的匹配。PPI—CLK引腳外接25MHz有源晶振,3個同步幀輸出引腳FS1、FS2、FS3分別接LCD的Hsync、Vsync、ENAB引腳,并使ENAB控制信號置低。為增強(qiáng)信號驅(qū)動能力,在BF536的PPI外設(shè)與液晶屏之間用SN74AHC245橋接。
另外,為液晶屏配備了四線電阻式觸摸屏,在實現(xiàn)顯示功能的基礎(chǔ)上增加了觸摸控制功能。由于BF536沒有ADC外設(shè),所以選用TI公司生產(chǎn)的觸摸屏驅(qū)動芯片ADS7846來實現(xiàn)觸摸屏驅(qū)動,ADS7846將觸摸屏信號送至BF536的SPI外設(shè)。
BF536與液晶屏的接口電路如圖2所示。
2.4 SPIFLASH
ADSP-BF536沒有片內(nèi)FLASH,需要外接FLASH芯片實現(xiàn)程序的固化和引導(dǎo)程序的存儲。BF536程序加載模式多達(dá)7種,本系統(tǒng)選用SPIMaster方式,即系統(tǒng)復(fù)位后,通過SPI接口從串行FLASH加載程序至RAM。FIASH芯片選用ST公司的M25P64,它是SPI接口的串行FLASH,具有64Mbit存儲容量,SPI時鐘頻率最高可達(dá)5OMHz。采用SPI接口的FLASH芯片面積小且與BF536接口簡單,減小了電路板設(shè)計的難度,其缺點是采用串行傳輸機(jī)制,在傳輸數(shù)據(jù)量較大時速度較慢。
2.5 外擴(kuò)SDIM
要使液晶屏的顯示穩(wěn)定就需要對液晶屏按時序循環(huán)發(fā)送顯示數(shù)據(jù),即進(jìn)行掃屏操作。一般做法是在存儲器內(nèi)開辟一定空間暫存顯示數(shù)據(jù),然后將此空間內(nèi)的數(shù)據(jù)循環(huán)向液晶屏發(fā)送。一般微處理器片內(nèi)的RAM都很小,無法為高分辨率的LCD提供顯示數(shù)據(jù)緩存區(qū),這就需要外擴(kuò)RAM。
相比于SRAM,SDRAM存在存取速度慢、需要對數(shù)據(jù)不斷進(jìn)行刷新及控制信號復(fù)雜的缺點;但SDRAM容量一般較大,價格便宜。另外,ADSP—BF536片內(nèi)帶有SDRAM控制器,可以實現(xiàn)SDRAM的復(fù)雜邏輯控制,設(shè)計者只需要對該寄存器模塊正確配置后,就能像訪問片內(nèi)RAM一樣訪問它,故本系統(tǒng)選用Micron公司的SDRAMT48LC32M16A2作為外擴(kuò)存儲器完成顯示數(shù)據(jù)的暫存。該芯片具有512Mbit的存儲容量,最高可達(dá)133MHz的時鐘頻率。
[!--empirenews.page--]
3 軟件設(shè)計
系統(tǒng)軟件由FLASH燒寫驅(qū)動文件、初始化程序和主程序3個獨立的程序構(gòu)成。SPIFLASH燒寫驅(qū)動文件(BF536一SPI—Programmer_Driver)在ADIDSP集成開發(fā)環(huán)境VisualDSP++中配置生成,其作用是在主程序調(diào)試完畢后,完成主程序在FALSH中的固化。初始化程序是在調(diào)用主程序之前首先調(diào)用的一個小程序,相當(dāng)于BIOS,其作用是完成DSP芯片時鐘及部分模塊的初始化,使得SDRAM正常工作,并引導(dǎo)主程序的載人。
主程序是用戶根據(jù)需求開發(fā)并調(diào)試通過的應(yīng)用程序,其完成各外設(shè)模塊及中斷的配置,完成數(shù)據(jù)的操作及對液晶屏的時序控制。
3.1 LCD驅(qū)動軟件設(shè)計
LCD驅(qū)動軟件的設(shè)計包括LCD控制信號時鐘設(shè)置、BF536PPI模塊和DMA模塊的初始化3部分。另外,為使畫面顯示穩(wěn)定,需要在外擴(kuò)SDRAM中開辟圖像數(shù)據(jù)暫存空間供DSP循環(huán)讀寫。
3.1.1 配置控制信號時鐘
ADSP—BF536芯片沒有LCD控制器外設(shè),而液晶屏模塊LQ104V1DG52具有4個控制信號輸入端,分別為CLK、ENAB、Hsync和Vsync,4個控制信號必須滿足一定時序要求才能實現(xiàn)LCD的正確驅(qū)動。本方案中,LCD的4個控制信號都由BF536的PPI模塊提供:PPI—CLK輸出接LCDCLK輸入;配置BF536FS1/timer0和FS2/timerl引腳為輸出,分別接Hsync和Vsync;FS3引腳配置為普通I/O管腳,接LCDENAB,正常工作條件下置低。配置Timer0為PWM輸出模式,PWM周期為850個CLK,脈沖寬度為96個CLK;配置Timerl為PWM輸出模式,周期為446250個CLK,脈沖寬度為1700個CLK。PWM信號周期及脈沖寬度的確定都是通過查詢手冊得到的,實際試驗證明此配置是正確的。
3.1.2 BF536PPI模塊初始化
由液晶屏的控制時序可知,ENAB信號置低時,液晶屏在監(jiān)測到同步幀信號沿后計數(shù)104個時鐘,然后開始讀寫有效數(shù)據(jù),讀完640個行有效數(shù)據(jù)后等待下一個行同步幀信號。這種特性是由其自身的硬件機(jī)制決定的。ADSP—BF536的PPI模塊有ITUR一656和General—PurposePPI兩種工作模式。系統(tǒng)正常工作時,DSP需要從PPI模塊把顯示數(shù)據(jù)打出,這里我們配置PPI為General—PurposePPI模式模塊。設(shè)置PPICOUNT一639,即DSP每行同步幀輸出數(shù)據(jù)量為640;設(shè)置PPI~DELAY一104,在PPI發(fā)送同步幀信號104個時鐘后啟動DMA傳輸,將數(shù)據(jù)打到數(shù)據(jù)線上;設(shè)置PPI—FS1和PPI—FS2為下降沿有效。
3.1.3 開辟數(shù)據(jù)暫存空間
如前所述,為實現(xiàn)液晶屏的可靠掃屏,本方案采用外擴(kuò)SDRAM的方法,在SDRAM中開辟一定存儲空間暫存顯示數(shù)據(jù),然后將此空間中的數(shù)據(jù)循環(huán)向液晶屏發(fā)送。在SDRAM中定義ZONE1和ZONE2兩塊數(shù)據(jù)暫存空間,每塊大小為640X(480+34+11),單位數(shù)據(jù)寬度16位。
定義并初始一個全局變量DatabuferFlag為0作為標(biāo)志,發(fā)送程序查詢此標(biāo)志并根據(jù)此標(biāo)志的值決定發(fā)送ZONE1還是ZONE2中的數(shù)據(jù)。在DSP收到外部中斷信號(按鍵、觸摸屏、CAN等)時,DatabufferFlag值改變,DSP向當(dāng)前存儲區(qū)內(nèi)寫數(shù)據(jù),并將另一存儲區(qū)內(nèi)數(shù)據(jù)發(fā)送至液晶屏,如此循環(huán)。ZONE1包括data—buf、inv—front1、inv—last13個存儲區(qū),ZONE2包括data—buf2、inv—front2、inv_last23個存儲區(qū),其中data—bufl、data—buf2存儲有效發(fā)送數(shù)據(jù)。通過section(”sdram0”)指令定義這些存儲區(qū)在SDRAM中的起始地址和長度。配置inv—last1、inv—last2DMA中斷,即緩沖區(qū)中的數(shù)據(jù)發(fā)送完畢后,會產(chǎn)生一個中斷。圖3為SDRAM中數(shù)據(jù)暫存區(qū)示意圖。
3.1.4 DMA模塊初始化
因為DMA控制器配置方便、靈活,所以AI)_SP—BF536的很多外設(shè)都采用DMA方式傳輸數(shù)據(jù)。本方案中配置DMA為二維DMA大描述符模式(Largemode1)。采用大描述符模式的優(yōu)點是可以將幾個不連續(xù)的存儲區(qū)鏈接起來,可以實現(xiàn)不連續(xù)存儲區(qū)的連續(xù)數(shù)據(jù)傳輸。將需要設(shè)置的DMA幾個寄存器定義為一個結(jié)構(gòu)體,描述如下:
3.2 ID顯示主程序設(shè)計
DSP完成系統(tǒng)初始化后,進(jìn)入LCD顯示主程序。DSP通過PPI外設(shè)將數(shù)據(jù)暫存區(qū)ZONE1或ZONE2中的數(shù)據(jù)發(fā)送至液晶屏,圖像保持不變。發(fā)生外部中斷時,DataBuferFlag的值改變,修改描述符指針,啟動另一數(shù)據(jù)暫存區(qū)的DMA傳輸。程序流程圖如圖4所示。
4 顯示實驗
為驗證方案的可行性,我們制作了控制器樣機(jī)并進(jìn)行了液晶屏顯示實驗。圖5為系統(tǒng)上電,BF536從外部FLASH載入引導(dǎo)程序初始化系統(tǒng)后,調(diào)用保存在FLASH中的車載信息圖像數(shù)據(jù)并在液晶屏上進(jìn)行顯示的照片??梢钥闯觯壕量梢燥@示車速、油量、安全帶情況等各種信息,顯示內(nèi)容清晰、穩(wěn)定。
圖5 汽車信息顯示實驗照片 5 結(jié)論 采用液晶屏顯示汽車運(yùn)行信息將成為下一代汽車儀表的主流。本設(shè)計采用DSP芯片與液晶屏為主要器件構(gòu)建了一種全液晶顯示的車載信息系統(tǒng),在新型汽車儀表開發(fā)方面進(jìn)行了探索研究。該車載信息系統(tǒng)目前已經(jīng)基本完成了系統(tǒng)的硬件部分調(diào)試和基本的軟件設(shè)計,實際的性能測試和實驗結(jié)果表明,該系統(tǒng)顯示清晰穩(wěn)定,效果良好。