基于C8051F020單片機(jī)的汽車故障診斷儀的研究
圖 4 串行總線接口電路
2.5 鍵盤顯示及存儲器電路
本設(shè)計主鍵盤采用4X4鍵盤輸入模塊,其驅(qū)動模塊采用的是SK5278,它是福州貝能科技有限公司推出的采用PIC內(nèi)核的鍵盤控制器。該芯片采用4線串行接口,可與任何種類的單片機(jī)接口;它具有按鍵有效指示輸出,可用中斷方式管理鍵盤;其行線X0~X3與列線Y0~Y3可構(gòu)成4×4鍵盤矩陣;SK5278的16鍵鍵盤控制器內(nèi)含去抖動處理電路,因而可直接輸出鍵值,并采用串行方式與單片機(jī)或微處理器進(jìn)行接口。系統(tǒng)設(shè)計的功能鍵采用中段方式輸入,整個工作流程通過不斷的掃描按鍵的狀態(tài),判斷是否有健按下,當(dāng)有任意鍵按下時,即產(chǎn)生中段,CPU執(zhí)行相應(yīng)的中段子程序,若沒有健按下時,繼續(xù)掃描鍵盤的狀態(tài),直到有健按下,用鍵盤中斷處理程序完成一切和用戶之間的的信息交流。
顯示電路選用的OCMJ5X10是160×80點(diǎn)陣的中文圖文液晶圖形顯示器模塊。該模塊的內(nèi)部由于含有國標(biāo)一級簡體字庫,使得漢字的顯示異常方便;同時,該模塊與單片機(jī)的硬件接口除數(shù)據(jù)總線外,僅使用了REQ/BUSY兩根握手信號線,簡化了與單片機(jī)的硬件接口電路設(shè)計。上述特點(diǎn)對軟件、硬件資源均十分緊張的單片機(jī)系統(tǒng)來說是十分重要的。
由于診斷系統(tǒng)中將涉及大量的故障代碼,傳感器信息,執(zhí)行起信息等一些數(shù)據(jù)信息,需要較大的存儲空間。因此,系統(tǒng)擴(kuò)展了一片大容量的8Mbit的FLASH存儲器AT45DB081 。
3、系統(tǒng)的軟件設(shè)計
本系統(tǒng)的軟件采用模塊化的設(shè)計方法,整個程序包括主程序、初始化程序、定時器中斷程序、診斷協(xié)議程序、串行通訊程序、鍵盤顯示程序、存儲器讀寫程序。所有的程序均采用C語言編寫,可以很方便的調(diào)試和下載程序代碼。限于篇幅,本文只給出主程序的流程圖,如圖5所示。系統(tǒng)的主程序主要完成C8051F020單片機(jī)系統(tǒng)的初始化、設(shè)置系統(tǒng)時鐘和功能寄存器,調(diào)用鍵盤處理程序,完成不同的功能,如根據(jù)不同的按鍵轉(zhuǎn)入相應(yīng)的服務(wù)程序,完成不同的功能。
圖5系統(tǒng)的軟件設(shè)計流程圖
3.1 硬件抗干擾設(shè)計
(1) 系統(tǒng)設(shè)計中對電源電路及IC器件周圍配置適當(dāng)?shù)娜ヱ铍娙轂V波,系統(tǒng)中電源地線、MCU外圍電路地線、信號地線采用單點(diǎn)接地的方法可靠接地,以減少不等位電勢的干擾。
(2) 硬件濾波,此方法對串模干擾有很好的抑制作用,常用RC 低通濾波器接在一些低頻信號輸入電路中,可大大消弱高頻干擾信號。
(3) 印刷電路板設(shè)計時,數(shù)字電路與模擬電路隔離,數(shù)字的和模擬的僅在一點(diǎn)相連,有效地防止了數(shù)字電路對模信號的影響。
(4) 為了防止電路模塊間的相互干擾,在電路板的設(shè)計中采用金屬機(jī)殼有效地屏蔽外界射頻信號的干擾.
3.2 軟件抗干擾設(shè)計
(1)數(shù)字濾波。在軟件設(shè)計時,考慮了數(shù)字濾波程序的設(shè)計,有效地排除了隨機(jī)干擾。
(2)設(shè)置冗余指令和軟件陷井。通過應(yīng)用軟件陷阱法和數(shù)據(jù)冗余法有效的抑制了由于外部干擾、震動或瞬間故障引起的系統(tǒng)癱瘓和程序跑飛。
(3)軟件看門狗。為防止程序運(yùn)行進(jìn)入死循環(huán),而不能被軟件陷井捕獲到,在系統(tǒng)軟件設(shè)計時,設(shè)計了“軟件看門狗”程序,有效地防止了死循環(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í)驗證明:該診斷儀工作穩(wěn)定,操作方便,抗干擾能力強(qiáng)。從而說明了該診斷儀軟硬件設(shè)計比較合理,具有廣闊的應(yīng)用前景。是維修人員的地得力助手,完全具有生產(chǎn)應(yīng)用的價值。
評論