儀表是人和汽車的交互界面,為駕駛員提供所需的汽車運行參數(shù)、故障、里程等信息,是每一輛汽車必不可少的部件。儀表顯示的直觀與美觀使得駕駛不但是代步之必需,也成為舒適生活的一部分,而參數(shù)傳遞的準(zhǔn)確與可靠性則直接關(guān)系到汽車行駛的安全。
現(xiàn)代儀表最突出的特點是功能的模塊化,通常要組裝一塊儀表,只需將幾個功能模塊在定制PCB的基礎(chǔ)上聯(lián)合起來,就可以得到一個完整的系統(tǒng)。長安等經(jīng)濟型汽車的指針儀表一般為獨立的模塊,提示/報警功能由PCB上的小燈泡完成。SANTANA系列的指針由印刷電路板上的十字線圈驅(qū)動,提示/報警燈全部是發(fā)光二極管。轎車的儀表板上顯示的主要數(shù)據(jù)、來源及對應(yīng)顯示方式如下表(根據(jù)SANTANA2000):
[align=center]表1
[img=208,156]http://www.e-works.net.cn/images/128002109448437500.GIF[/img][/align]
可見目前的汽車儀表尚以機械式為主,通訊方式以線束為主。這種模式最大的弊病是過于依賴線束,導(dǎo)致系統(tǒng)復(fù)雜。
隨著汽車產(chǎn)業(yè)的快速發(fā)展,尚有極大潛力的汽車電子市場正日漸受到各大汽車生產(chǎn)商與電子產(chǎn)品供應(yīng)商的關(guān)注,這其中包括尚處于開發(fā)實驗階段的清潔能源汽車、目前由***占據(jù)世界市場領(lǐng)袖地位的車載音響設(shè)備、前途無量的車載計算機信息終端設(shè)備以及形形色色的車內(nèi)電控單元,如發(fā)動機電控單元、ABS、總線、新型電子儀表等。
對汽車儀表而言,使用電子式儀表板較之傳統(tǒng)儀表的優(yōu)勢在于:
隨著微電子技術(shù)的發(fā)展,微處理器的處理速度越來越快。一些實時性要求高,原本由硬件完成的功能,就完全可以通過對微處理器編程來實現(xiàn)。
在大規(guī)模集成電路技術(shù)迅速發(fā)展的今天,集成電路的密度越來越高,體積越來越小,內(nèi)部結(jié)構(gòu)越來越復(fù)雜,功能也越來越強大。隨著儀表的部分功能硬件不斷地被軟件取代,整個系統(tǒng)的集成度也在相應(yīng)提高。
本設(shè)計是一個基于Freescale單片機的汽車組合儀表板。面向的是目前市場上占主流地位的傳統(tǒng)汽車,并引用長安車的儀表為模板,目的主要在于實現(xiàn)一個汽車組合電子儀表板的低端方案。
1、設(shè)計概述
本方案的對象主要包括車速、轉(zhuǎn)速、壓力、溫度、里程、時間以及一些提示/報警燈信號,分別體現(xiàn)在車速表、發(fā)動機轉(zhuǎn)速表、油壓表、水溫表(指針)以及里程表上。其中,里程表定時記錄車速信號,在行車時間內(nèi)做數(shù)值積分,得到行駛公里數(shù),作為里程保存在用戶Flash中。定時(1s)對里程數(shù)據(jù)做累加。
由于本設(shè)計面向的是大眾化的傳統(tǒng)汽車,成本成為器件選用的最重要標(biāo)準(zhǔn)。在微控制器的選型上,我們并未考慮前途光明但目前尚未普及的CAN總線,而是選擇了自帶液晶驅(qū)動的8位微控制器LJ12。
MC68HC908LJ12是Freescale單片機908家族的一員,其主要參數(shù)與功能模塊如下:
• 8M的最大總線頻率;
• 12k用戶Flash;
• 512b RAM;
• 兩個獨立雙通道定時器模塊;
• 內(nèi)部實時時鐘,可記錄年、月、日、時、分、秒;
• SCI與SPI通信模塊;
• 6通道10位A/D;
• LCD模塊,可驅(qū)動27×3或26×4的筆段式液晶模塊。
步進電機驅(qū)動芯片MC33970是Freescale模擬家族的一員,內(nèi)含6個寄存器,由SPI寫入命令狀態(tài)字,分別是配置/校準(zhǔn)寄存器、指針?biāo)俣燃拇嫫?、指?/1位置寄存器、指針回零寄存器、歸零設(shè)置寄存器。MC33970的特點:
• 兼容MMT認證的兩相步進電機;
• 指針可停留在4095個穩(wěn)定的位置;
• 最大轉(zhuǎn)角340°;
• 最大加速度4500 deg/s2;
• 最大速度400 deg/s;
• 模擬微步(指針運動12步為1°);
• 指針校準(zhǔn)與回零;
• SPI控制,16位命令字;
• 內(nèi)部校準(zhǔn)時鐘;
• 睡眠模式低電流。
2、硬件描述
[align=center][img=327,239]http://www.e-works.net.cn/images/128002110303906250.GIF[/img]
圖1[/align] LJ12芯片內(nèi)部有豐富的硬件資源,我們做了如下配置:
• PLL:外部晶振32.768k;內(nèi)部總線倍頻至4M;
• SCI:用于上位機通訊,比特率9600,中斷方式;
• SPI:時鐘1M,作為MC33970的控制,用兩個通用管腳作為SPI的片選信號;
• LCD:使用26×4模式,即26前極、4背極的模式,動態(tài)驅(qū)動;因為設(shè)計中用到6位LCD模塊,所以使用FP1~FP12、BP0~BP3已經(jīng)足夠;
• Flash:利用常駐內(nèi)存函數(shù)(ROM-Resident Routine)將里程數(shù)據(jù)以32位數(shù)據(jù)的形式保存于用戶閃存中。
選取SWITEC公司出品的步進電機作為執(zhí)行器。六位筆段式動態(tài)驅(qū)動液晶模塊,用于里程,單次里程或時間日期的顯示。出于習(xí)慣,汽車儀表需要一直保持帶電狀態(tài),無需重置時間參數(shù),為了方便演示,用兩個按鈕實現(xiàn)LCD顯示模式的切換。六個發(fā)光二極管分別用于顯示制動、危險、機油壓力、電瓶、發(fā)動機以及空檔信息,利用MC1413作為發(fā)光二極管的驅(qū)動。
MC33970由微控制器的SPI直接驅(qū)動;車速和發(fā)動機轉(zhuǎn)速為脈寬調(diào)制信號或來自串口輸入,通過定時器模塊的輸入捕捉功能得到其頻率,換算得數(shù)據(jù)。
(1) 電源及掉電保護
輸入端使用7805。為了在掉電的時候也可以及時地保存里程數(shù)據(jù),在電源地輸入端加一個1000uF或兩個470uF的電解電容。電源斷開的時候在IRQ管腳會產(chǎn)生一個中斷信號,大電容可以維持單片機電源足夠長的時間,使得單片機可以完成外部中斷的服務(wù)程序。
(2)調(diào)理電路
為了改善波形,在定時器管腳外添加了調(diào)理電路。
(3)整體設(shè)計
本設(shè)計面向的是市場上的中低檔轎車,為了表現(xiàn)這個初衷,根據(jù)長安轎車的儀表外殼及內(nèi)部尺寸設(shè)計了儀表的PCB,并重新布局。
[align=center][img=337,137]http://www.e-works.net.cn/images/128002110882656250.GIF[/img]
圖2 系統(tǒng)框圖[/align]
3、 軟件描述
(1) 初始化函數(shù)
內(nèi)部總線倍頻至4M;設(shè)置定時器模塊的通道為捕捉功能;SCI波特率9600,開接收中斷;SPI時鐘頻率1M;LCD模塊26×4模式;使能Real Time Clock模塊;MC33970與指針初始化;從用戶Flash中讀取先前記錄的里程數(shù)據(jù),并根據(jù)ODO/TRIP信號加以顯示。
(2) 中斷服務(wù)程序
• 外部中斷:斷電后短時間內(nèi)利用大電容的放電使指針回零。
• SCI中斷:遵循一定的上位機協(xié)議,接受命令,改變LCD顯示內(nèi)容;改變車速和轉(zhuǎn)速數(shù)據(jù)。
• RTC中斷:每秒記錄一次里程數(shù)據(jù);根據(jù)車速信號換算里程數(shù)據(jù)。
?。?) 主函數(shù)
定時讀取里程數(shù)據(jù),并在LCD上顯示;每一次主循環(huán)結(jié)束的時候重啟WATCHDOG;當(dāng)車速或轉(zhuǎn)速信號改變之后通過指針位置的變化作出反應(yīng)。
[align=center][img=500,387]http://www.e-works.net.cn/images/128002111134218750.GIF[/img]
圖3 主程序流程圖[/align] 以下是SWITEC公司出品的步進電機驅(qū)動芯片x15.089與MC33970的簡單比較,然后得出結(jié)論。
下表是二者的性能比較,其中響應(yīng)的實時性好是MC33970最大的優(yōu)勢:
表2 步進電機驅(qū)動芯片x15.089和MC33970性能的比較[img=500,126]http://www.e-works.net.cn/images/128002111715781250.GIF[/img]
x15.089的工作原理簡單說來是由微控制器的兩個管腳控制一個步進電機,其中一個管腳輸出方向控制信號,另一個管腳輸出脈沖。所以對應(yīng)控制每一路電機需要兩個單片機管腳,控制4路需要8個單片機的通用IO口。
MC33970則不同,由SPI輸入命令字,即可控制兩路步進電機;需要4路步進電機的時候,使用兩片MC33970,但只需增加一根片選信號。這樣總共只需要SPI模塊和兩個通用IO,從而節(jié)省了單片機的資源。
單片機LJ12大于10000片價格為單片RMB20,且由于內(nèi)嵌了LCD控制驅(qū)動器,無需外加SED1335一類的液晶驅(qū)動器。
MC33970大于10000片價格為單片$1.3,RMB13,性價比高。
相比之下,SWITEC步進電機312.017單價RMB18左右,驅(qū)動芯片x15.089單價RMB16左右。
下面是一個成本估計的簡表:
[align=center]表3 成本估計簡表
[img=494,172]http://www.e-works.net.cn/images/128002112262500000.GIF[/img][/align]
由上可以看出,在批量生產(chǎn)的情況下,作為一個全數(shù)字式系統(tǒng),其總成本低于RMB150,大約在RMB120~140之間,具有相當(dāng)?shù)母偁幜Α?
4、結(jié)論
該方案是一個基于Freescale微控制器的汽車電子儀表板的低端方案,面向各種經(jīng)濟型汽車,具有功能齊備、結(jié)構(gòu)緊湊、價格低廉的特點,會有廣闊的市場前景。