- 汽車故障診斷儀的研究
- 基于C8051F020單片機(jī)的診斷儀設(shè)計(jì)
1 引言
隨著我國經(jīng)濟(jì)建設(shè)的不斷發(fā)展,裝有計(jì)算機(jī)控制系統(tǒng)的新型汽車已越來越多的應(yīng)用于人們的日常生活中,這使得汽車的動(dòng)力性,經(jīng)濟(jì)性,安全性,可靠性等有了極大的提高。但同時(shí)也使得汽車的結(jié)構(gòu)復(fù)雜多了,也使一般汽車維修診斷與排除汽車故障困難多了,而利用汽車電腦存儲(chǔ)的信息,診斷與排除汽車故障的方法也應(yīng)運(yùn)而生。儀器診斷是在經(jīng)驗(yàn)的基礎(chǔ)上發(fā)展起來的現(xiàn)代檢驗(yàn)方法。它是與車載故障自診斷系統(tǒng)配套使用的,從本質(zhì)上看,它相當(dāng)于自診斷系統(tǒng)的終端設(shè)備,起到人機(jī)交互的作用。該方法可在汽車不解體的情況下,用儀器或設(shè)備測試汽車性能和故障參數(shù),曲線或波形,甚至能自動(dòng)分析和判斷汽車的技術(shù)狀況。隨著電噴發(fā)動(dòng)機(jī)汽車的普及,汽車故障診斷儀已作為一種必備的維修工具被大多數(shù)行業(yè)人士所接受。
本文設(shè)計(jì)的汽車故障診斷儀采用的是CYGNAL公司的低功耗單片機(jī)C8051F020作為核心,具有數(shù)據(jù)存儲(chǔ),通訊以及LCD顯示等各種功能。該儀器具有低功耗,高精度,攜帶方便適用于多種場合等特點(diǎn)。
1、診斷儀原理與功能
1.1 硬件原理及作用
(1)診斷電子控制系統(tǒng)的傳感器、執(zhí)行器狀態(tài)以及ECU的工作是否正常。通過判斷ECU的輸入、輸出電壓是否在規(guī)定的范圍內(nèi)變化時(shí),可以判斷電子控制系統(tǒng)工作是否正常。
(2) 當(dāng)電子控制系統(tǒng)中的某一電路出現(xiàn)超出規(guī)定的信號(hào)時(shí),該電路及相關(guān)的傳感器反映的故障信息以故障代碼的形式存儲(chǔ)到ECU內(nèi)部的存儲(chǔ)器中,維修人員可利用該診斷儀來讀取故障碼,使其顯示出來。
1.2 硬件支持的主要功能
(1) 通過CAN、LIN通信模塊可以實(shí)現(xiàn)與車載內(nèi)各電子控制裝置ECU之間的對(duì)話,傳送故障代碼以及發(fā)動(dòng)機(jī)的狀態(tài)信息。
(2) 通過單片機(jī)的同步/異步收發(fā)器可以與PC機(jī)進(jìn)行串行通信從而完成數(shù)據(jù)交換,下載程序,以及診斷儀升級(jí)等功能。
(3) 通過液晶顯示器來顯示汽車運(yùn)行的狀態(tài)數(shù)據(jù)及故障信息。
(4) 通過鍵盤電路來執(zhí)行不同的診斷功能。
(5) 通過一種具有串行接口的大容量FLASH存儲(chǔ)器來保存大量的故障代碼及其測量數(shù)據(jù)。
2、硬件電路及接口電路的設(shè)計(jì)
2.1 硬件電路的總體框架
該診斷儀硬件系統(tǒng)主要包括以下模塊:C8051F020處理器及其外圍擴(kuò)展電路模塊,鍵盤、液晶顯示模塊,外擴(kuò)存儲(chǔ)器模塊,CAN、LIN,通信模塊;與PC機(jī)的串行通信模塊;另外還有電源電路以及系統(tǒng)復(fù)位電路。總體框圖如圖1所示。
2.2 C8051F020單片機(jī)電路
設(shè)計(jì)中CPU選擇的是Cygnal公司的C8051F020單片機(jī),它采用具有與MCS-51指令集完全兼容的Cygnal公司的專利 CIP-51微處理器內(nèi)核,峰值速度可達(dá)25MIPS。并且在一個(gè)芯片內(nèi)集成了單片機(jī)數(shù)據(jù)采集或控制系統(tǒng)所需要的幾乎所有模擬和數(shù)字外設(shè)及其他功能部件 (包括PGA、ADC、DAC、電壓比較器、電壓基準(zhǔn)、溫度傳感器、SMBus/I2C、UART、SPI、定時(shí)器、可編程計(jì)數(shù)器/定時(shí)器陣列、內(nèi)部振蕩器、看門狗定時(shí)器及電源監(jiān)視器等)。CIP-51對(duì)指令運(yùn)行實(shí)行流水作業(yè),從而大大提高了指令運(yùn)行速度。另外C8051F020單片機(jī)最獨(dú)特的改進(jìn)是引入了數(shù)字交叉開關(guān)。允許將內(nèi)部數(shù)字系統(tǒng)資源映射到P0、P1、P2和P3的端口I/O引腳,同時(shí)C8051F020還在內(nèi)部增加了復(fù)位源,從而大大提高了系統(tǒng)的可靠性,完全可以滿足診斷儀的功能要求。
2.3 CAN、LIN總線接口電路的設(shè)計(jì)
2.3.1 CAN總線接口電路
CAN總線接口電路包括CAN 通信控制器與微處理器之間和CAN總線收發(fā)器與物理總線之間的接口電路的設(shè)計(jì)。C8051F020與CAN驅(qū)動(dòng)芯片SJA1000T的接口電路如圖(2)所示本設(shè)計(jì)選取PHILIPS公司的SJA1000 CAN控制器以及82C250總線收發(fā)器。SJA1000 在電路中是一個(gè)總線接口芯片,通過它實(shí)現(xiàn)ECU與微處理器之間的數(shù)據(jù)通信。該電路的主要功能是完成CAN總線與單片機(jī)之間的通信。PCA82C250為CAN控制器和物理總線之間的接口,它可以提供向總線的差動(dòng)發(fā)送能力和CAN控制器的差動(dòng)接收能力,TXD和RXD引腳分別發(fā)送經(jīng)過驅(qū)動(dòng)后的發(fā)送和接收信號(hào)。具體連接如圖2所示。
2.3.2 LIN通信模塊的設(shè)計(jì)
LIN總線收發(fā)器選用PHILIPS公司的TJA1020,它直接與單片機(jī)的串口相連,電路連接圖如圖3, TJA1020 收發(fā)器是一個(gè)物理媒體連接,適合用于最高 20kBaud的LIN 傳輸速率,它的引腳TXD和NSLP 減小了輸入閥值, 輸出引腳 RXD和TXD 為漏極開路. 因此它可以和使用3.3V 或5V 電源的微控制器兼容, 而且收發(fā)器本身不需要額外的VCC電源. 為使引腳RXD和TXD達(dá)到高電平,當(dāng)微控制器的端口引腳沒有集成上拉電阻時(shí),要加外部上拉電阻. 微控制器由 TX0向 TJA1020 的 TXD 引腳發(fā)送數(shù)據(jù),TJA1020的 RXD引腳向微控制器的 RX0 發(fā)送數(shù)據(jù)。LIN 收發(fā)器的睡眠控制輸入NSLP 可以通過微控制器的端口引腳來控制。
2.4 串行總線接口電路的設(shè)計(jì)
RS232串行通訊采用全雙工的模式,系統(tǒng)中配置一條數(shù)據(jù)發(fā)送線。在同一時(shí)刻系統(tǒng)既可以發(fā)送數(shù)據(jù)也可以接收數(shù)據(jù)。圖(4)給出了串行通信電路連接圖。通過交叉開關(guān)把C8051F020單片機(jī)的P0.0,P0.1設(shè)置為TX0,RX0.RS232邏輯電平對(duì)地是對(duì)稱的,與TTL,CMOS邏輯電平完全不同。邏輯“1”電平為-5~-15,邏輯“0”電平為+5~+15之間,其與單片機(jī)的邏輯電平不一致,必須進(jìn)行電平轉(zhuǎn)換,圖4采用SP3223轉(zhuǎn)換器實(shí)現(xiàn) TTL電平與RS-232電平互相轉(zhuǎn)換。
2.5 鍵盤顯示及存儲(chǔ)器電路
本設(shè)計(jì)主鍵盤采用4X4鍵盤輸入模塊,其驅(qū)動(dòng)模塊采用的是SK5278,它是福州貝能科技有限公司推出的采用PIC內(nèi)核的鍵盤控制器。該芯片采用4線串行接口,可與任何種類的單片機(jī)接口;它具有按鍵有效指示輸出,可用中斷方式管理鍵盤;其行線X0~X3與列線Y0~Y3可構(gòu)成4×4鍵盤矩陣;SK5278的16鍵鍵盤控制器內(nèi)含去抖動(dòng)處理電路,因而可直接輸出鍵值,并采用串行方式與單片機(jī)或微處理器進(jìn)行接口。系統(tǒng)設(shè)計(jì)的功能鍵采用中段方式輸入,整個(gè)工作流程通過不斷的掃描按鍵的狀態(tài),判斷是否有健按下,當(dāng)有任意鍵按下時(shí),即產(chǎn)生中段,CPU執(zhí)行相應(yīng)的中段子程序,若沒有健按下時(shí),繼續(xù)掃描鍵盤的狀態(tài),直到有健按下,用鍵盤中斷處理程序完成一切和用戶之間的的信息交流。
顯示電路選用的OCMJ5X10是160×80點(diǎn)陣的中文圖文液晶圖形顯示器模塊。該模塊的內(nèi)部由于含有國標(biāo)一級(jí)簡體字庫,使得漢字的顯示異常方便;同時(shí),該模塊與單片機(jī)的硬件接口除數(shù)據(jù)總線外,僅使用了REQ/BUSY兩根握手信號(hào)線,簡化了與單片機(jī)的硬件接口電路設(shè)計(jì)。上述特點(diǎn)對(duì)軟件、硬件資源均十分緊張的單片機(jī)系統(tǒng)來說是十分重要的。
由于診斷系統(tǒng)中將涉及大量的故障代碼,傳感器信息,執(zhí)行起信息等一些數(shù)據(jù)信息,需要較大的存儲(chǔ)空間。因此,系統(tǒng)擴(kuò)展了一片大容量的8Mbit的FLASH存儲(chǔ)器AT45DB081
3、系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)的軟件采用模塊化的設(shè)計(jì)方法,整個(gè)程序包括主程序、初始化程序、定時(shí)器中斷程序、診斷協(xié)議程序、串行通訊程序、鍵盤顯示程序、存儲(chǔ)器讀寫程序。所有的程序均采用C語言編寫,可以很方便的調(diào)試和下載程序代碼。限于篇幅,本文只給出主程序的流程圖,如圖5所示。系統(tǒng)的主程序主要完成 C8051F020單片機(jī)系統(tǒng)的初始化、設(shè)置系統(tǒng)時(shí)鐘和功能寄存器,調(diào)用鍵盤處理程序,完成不同的功能,如根據(jù)不同的按鍵轉(zhuǎn)入相應(yīng)的服務(wù)程序,完成不同的功能。
3.1 硬件抗干擾設(shè)計(jì)
(1) 系統(tǒng)設(shè)計(jì)中對(duì)電源電路及IC器件周圍配置適當(dāng)?shù)娜ヱ铍娙轂V波,系統(tǒng)中電源地線、MCU外圍電路地線、信號(hào)地線采用單點(diǎn)接地的方法可靠接地,以減少不等位電勢(shì)的干擾。
(2) 硬件濾波,此方法對(duì)串模干擾有很好的抑制作用,常用RC 低通濾波器接在一些低頻信號(hào)輸入電路中,可大大消弱高頻干擾信號(hào)。
(3) 印刷電路板設(shè)計(jì)時(shí),數(shù)字電路與模擬電路隔離,數(shù)字的和模擬的僅在一點(diǎn)相連,有效地防止了數(shù)字電路對(duì)模信號(hào)的影響。
(4) 為了防止電路模塊間的相互干擾,在電路板的設(shè)計(jì)中采用金屬機(jī)殼有效地屏蔽外界射頻信號(hào)的干擾.
3.2 軟件抗干擾設(shè)計(jì)
(1)數(shù)字濾波。在軟件設(shè)計(jì)時(shí),考慮了數(shù)字濾波程序的設(shè)計(jì),有效地排除了隨機(jī)干擾。
(2)設(shè)置冗余指令和軟件陷井。通過應(yīng)用軟件陷阱法和數(shù)據(jù)冗余法有效的抑制了由于外部干擾、震動(dòng)或瞬間故障引起的系統(tǒng)癱瘓和程序跑飛。
(3)軟件看門狗。為防止程序運(yùn)行進(jìn)入死循環(huán),而不能被軟件陷井捕獲到,在系統(tǒng)軟件設(shè)計(jì)時(shí),設(shè)計(jì)了“軟件看門狗”程序,有效地防止了死循環(huán)造成的系統(tǒng)癱瘓。
4、結(jié)論
本文以C8051F020單片機(jī)為核心開發(fā)了ECU故障診斷儀,該診斷儀能夠?qū)崿F(xiàn)參數(shù)測量,在線故障診斷和執(zhí)行器測試等功能,具有結(jié)構(gòu)簡單、成本低、體積小和性能可靠等優(yōu)點(diǎn),經(jīng)實(shí)驗(yàn)證明:該診斷儀工作穩(wěn)定,操作方便,抗干擾能力強(qiáng)。從而說明了該診斷儀軟硬件設(shè)計(jì)比較合理,具有廣闊的應(yīng)用前景。是維修人員的地得力助手,完全具有生產(chǎn)應(yīng)用的價(jià)值。