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