劉 偉,簡(jiǎn)林莎,徐海洋,馮 謠,郎明華
Liu Wei1, Jian Linsha1, Xu Haiyang1, Feng Yao1, Lang Minghua2
(1.長(zhǎng)安大學(xué) 汽車學(xué)院,陜西 西安 710064;2.濰柴動(dòng)力股份有限公司,山東 濰坊 261069)
近年來,隨著汽車工業(yè)的快速發(fā)展和電子控制技術(shù)的不斷完善,各種功能的電子器件越來越復(fù)雜。汽車組合儀表成為車輛主要信息的顯示單元,駕駛員運(yùn)用此平臺(tái)了解汽車的各種狀況,能夠直觀、實(shí)時(shí)、動(dòng)態(tài)地掌握車輛本身的各項(xiàng)數(shù)據(jù)。因此,面對(duì)汽車朝節(jié)能、低碳、安全和舒適等方面發(fā)展,高集成化、高穩(wěn)定性的步進(jìn)電機(jī)式組合儀表成為科研人員不斷努力的研究方向,滿足更多復(fù)雜信息量處理功能的數(shù)字組合式儀表是當(dāng)今最熱的研究?jī)?nèi)容之一。
CAN總線是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡(jiǎn)稱,由于其串行式總線結(jié)構(gòu)及硬件電路連接簡(jiǎn)單且便于線束空間布置[1],數(shù)據(jù)傳送具有突出的實(shí)時(shí)性、可靠性和靈活性,利用CAN總線的特性對(duì)各種控制系統(tǒng)在車載控制領(lǐng)域中得到應(yīng)用。文中所設(shè)計(jì)的汽車組合儀表是一種基于飛思卡爾公司生產(chǎn)的S9S12HA32型的主控芯片,以 CAN總線為通訊協(xié)議,主要功能實(shí)時(shí)動(dòng)態(tài)地顯示如車速、里程、轉(zhuǎn)速、水溫和燃油數(shù)據(jù)值,以及常用的指示信號(hào)和故障警示信號(hào)燈。
組合儀表系統(tǒng)主要由車速表、轉(zhuǎn)速表、水溫表、燃油量表以及里程表組成,另外還有故障報(bào)警、系統(tǒng)照明和里程存儲(chǔ)數(shù)據(jù)。該系統(tǒng)硬件的結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)單片機(jī)接收到的信號(hào)包括車速、轉(zhuǎn)速、溫度和油量等傳感器信號(hào),其中車速是脈沖信號(hào),車速傳感器輸出的脈沖信號(hào)經(jīng)過濾波、整形后輸出標(biāo)準(zhǔn)的方波信號(hào),送入單片機(jī)完成速度的測(cè)量運(yùn)算;而燃油位置傳感器采集的是模擬信號(hào),經(jīng)過前端電壓信號(hào)的處理轉(zhuǎn)換,CAN總線收送后送入單片機(jī)的 A/D轉(zhuǎn)換器,經(jīng)過單片機(jī)的運(yùn)算處理,通過CAN總線接口將采集到的數(shù)據(jù)發(fā)送到 LCD顯示模塊實(shí)現(xiàn)數(shù)字化顯示[2],同時(shí)單片機(jī)的步進(jìn)電機(jī)驅(qū)動(dòng)端口控制步進(jìn)電機(jī),通過指針控制精確地顯示其數(shù)據(jù)值。并且主控芯片接收其他CAN總線的節(jié)點(diǎn)信號(hào)數(shù)據(jù),如轉(zhuǎn)速信號(hào)、報(bào)警信號(hào)等一些數(shù)據(jù)信息,經(jīng)主控芯片及時(shí)處理后在LCD實(shí)時(shí)顯示。為了防止里程數(shù)據(jù)丟失,主控芯片執(zhí)行的程序中將里程值的變化保存到數(shù)據(jù)存儲(chǔ)模塊中。
硬件電路設(shè)計(jì)主要有電源電路模塊設(shè)計(jì)、CAN總線通信接口模塊設(shè)計(jì)、步進(jìn)電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)和LCD液晶顯示模塊,以及一些常用的狀態(tài)指示、報(bào)警燈等。
組合儀表系統(tǒng)控制器選擇飛思卡爾公司型號(hào)為S9S12HA32的16位單片機(jī)[3]。這是一款集多種專用功能于一身,可用于設(shè)計(jì)汽車儀表盤的芯片,本身具有LCD驅(qū)動(dòng)和步進(jìn)電機(jī)驅(qū)動(dòng)等功能,其特點(diǎn)是比較適合國(guó)內(nèi)中、低端汽車對(duì)于經(jīng)濟(jì)高效儀表盤的要求。該芯片需要采用 40×4 的段碼式LCD 液晶控制器;芯片內(nèi)部具有4 個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)控制器,以SAEJ2602通信協(xié)議為基礎(chǔ),可以支持CAN 協(xié)議2.0,完全可以滿足用戶對(duì)硬件資源的需求。為了防止斷電后汽車?yán)锍虜?shù)據(jù)丟失,該系統(tǒng)采用了型號(hào)為93C46可讀寫數(shù)據(jù)的存儲(chǔ)器芯片(EEPROM)存儲(chǔ)數(shù)據(jù)。微控制器控制的汽車每行駛1 km里程則更新一次數(shù)據(jù),并且保存在存儲(chǔ)器中。
電源電路設(shè)計(jì)變壓器選用的轉(zhuǎn)換芯片為NCV4275A,是一款針對(duì)汽車應(yīng)用的低壓降線性穩(wěn)壓器,內(nèi)含過流保護(hù)、過溫保護(hù)、短路保護(hù)等多種特性[4],將汽車供給系統(tǒng)提供的12V電壓轉(zhuǎn)換成單片機(jī)需要的5V電壓供電,此外該芯片也可以輸出3.3V的電壓。如圖2所示,D1的作用為反向保護(hù),電容C13、C15的作用為過濾電源輸出的異常電壓,起穩(wěn)壓的作用,另外在芯片右端并聯(lián)電阻,保證該芯片的正常工作,避免芯片發(fā)熱的現(xiàn)象。
CAN 控制器采用型號(hào)為 MCP2510的芯片,此芯片是Microchip 公司縮減CAN總線的接口應(yīng)用而獨(dú)立設(shè)計(jì)的一種專門控制器,可以支持CAN2.0A/2.0B,與其公司生產(chǎn)的MCP2551型收發(fā)器構(gòu)成一個(gè) CAN總線節(jié)點(diǎn),用于高速CAN 總線的傳輸[5]。圖3所示各種模擬信號(hào)經(jīng)過MCP2551芯片的端口CAN_TX/CAN_RX進(jìn)入收發(fā)器,進(jìn)而經(jīng)過微控制器MCP2510的調(diào)節(jié)送入到主控單元S9S12HA32中,完成各種模擬信號(hào)的收集。
單片機(jī)根據(jù)CAN總線收發(fā)器傳送過來的數(shù)據(jù)進(jìn)行計(jì)算處理,主要包括車速、轉(zhuǎn)速、水溫和油量等實(shí)時(shí)動(dòng)態(tài)測(cè)得的數(shù)據(jù)。然后經(jīng)步進(jìn)電機(jī)的驅(qū)動(dòng),從而使指針到達(dá)指定的位置。S9S12HA32 內(nèi)部有 4個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)控制器,對(duì)步進(jìn)電機(jī)可以采用直接驅(qū)動(dòng)的方式來實(shí)現(xiàn),直接選用 4個(gè)步進(jìn)電機(jī)可以完成車速、轉(zhuǎn)速、水溫和油量的指針指示功能。所設(shè)計(jì)的組合儀表系統(tǒng)選用 4個(gè)STI29-XX型的兩相步進(jìn)電機(jī)并經(jīng)3級(jí)齒輪減速轉(zhuǎn)動(dòng)輸出,內(nèi)置減速比180/1的齒輪系,工作的脈沖電壓為5~10V,工作電流為20mA左右,電機(jī)輸出軸的步距角最小能夠達(dá)到1/12°,可以分步模式或微步模式驅(qū)動(dòng)實(shí)現(xiàn)指針的不同控制方式。圖4為指針電機(jī)驅(qū)動(dòng)電路。
LCD液晶顯示器的作用是將單片機(jī)處理后的一些數(shù)據(jù)如車速、里程、燃油量、水溫、機(jī)油壓力和系統(tǒng)電壓值等駕駛操作信息實(shí)時(shí)滾動(dòng)地顯示出來,利于用戶清晰直觀地了解汽車的工況性能。LCD液晶顯示器利用單片機(jī)內(nèi)嵌的控制驅(qū)動(dòng)器直接驅(qū)動(dòng)來實(shí)現(xiàn),選用兩片段碼式40×4液晶顯示器。
系統(tǒng)軟件部分的設(shè)計(jì)主要是系統(tǒng)主程序設(shè)計(jì)和系統(tǒng)子程序設(shè)計(jì)。由于軟件設(shè)計(jì)在系統(tǒng)設(shè)計(jì)中程序比較復(fù)雜,對(duì)于本系統(tǒng)的軟件部分采用模塊式結(jié)構(gòu)設(shè)計(jì),這樣系統(tǒng)軟件部分會(huì)結(jié)構(gòu)清晰、表述簡(jiǎn)潔,避免源代碼的重復(fù),有利于系統(tǒng)軟件的調(diào)試、連接、修改和移植[6]。其中子程序模塊包括:車速表模塊、CAN收發(fā)模塊、水溫表模塊、液晶顯示模塊和報(bào)警信號(hào)模塊等。圖 5為系統(tǒng)軟件設(shè)計(jì)部分的流程圖,為了使系統(tǒng)具有可移植性、通用性,使用 C語言編寫程序。
CAN通信模塊根據(jù) CAN總線協(xié)議規(guī)范自動(dòng)負(fù)責(zé) CAN總線上數(shù)據(jù)的接收與發(fā)送。包括CAN總線控制器的初始化、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)。采用中斷方式接收?qǐng)?bào)文。主控芯片S9S12HA32接收到 CAN總線傳進(jìn)的信息后,該信息經(jīng)過濾波器的濾波整形處理并放入接收器中,此時(shí)系統(tǒng)產(chǎn)生一個(gè)接收中斷,并再次等待信號(hào)量的到來。這樣傳送來的信息被主控芯片及時(shí)傳送到信息存儲(chǔ)器,節(jié)省CPU的資源,同時(shí)也不需要報(bào)文緩沖。
基于S9S12HA32主控芯片設(shè)計(jì)了一款高性能的汽車數(shù)字式組合儀表。硬件設(shè)計(jì)中主要進(jìn)行了主控芯片、電源電路、CAN總線和步進(jìn)電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)。軟件重點(diǎn)設(shè)計(jì)了控制軟件的主程序及CAN總線通信模塊。所設(shè)計(jì)的組合儀表系統(tǒng)以S9S12HA32的單片機(jī)和LCD液晶顯示器替換了之前的模擬儀表板,驅(qū)動(dòng)裝置方面采用步進(jìn)電機(jī)代替?zhèn)鹘y(tǒng)的動(dòng)磁式及動(dòng)圈式機(jī)芯,提高了組合儀表的精度,實(shí)現(xiàn)了對(duì)各指針的精確控制。該組合儀表經(jīng)過調(diào)節(jié)測(cè)試,運(yùn)行穩(wěn)定,功能可靠,具有一定的市場(chǎng)推廣價(jià)值。
[1]楊春杰,王曙光,亢紅波.CAN總線技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010:22-37.
[2]馮正斌.基于 CAN總線的汽車數(shù)字儀表系統(tǒng)設(shè)計(jì)[D].山東:山東理工大學(xué),2011:19-22.
[3]劉源楊,馬建輝,王知學(xué),等.基于 MC9S12HY32 的電動(dòng)汽車儀表盤設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,(8):130-132.
[4]張專成,鄒濤,馮立杰,等.一種基于 CAN 總線的集散型火災(zāi)報(bào)警控制系統(tǒng)[J].嵌入式網(wǎng)絡(luò)技術(shù)應(yīng)用,2006,(5):29-31.
[5]曹曉琳,王登峰,車曉鐳,等.汽車 CAN總線數(shù)字組合儀表設(shè)計(jì)[J].汽車工程,2010,(1):86-89.
[6]王知學(xué),馬建輝,車曉波,等.基于MC9S12XS128的汽車BCM的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,(2):190-192.