基于CDMA和CAN總線(xiàn)的車(chē)輛遠程故障診斷系統
3 軟件設計
該系統的軟件設計主要分為兩部分:位于車(chē)輛信息技術(shù)服務(wù)中心的專(zhuān)家系統設計和位于車(chē)輛的車(chē)載故障診斷單元設計。
3.1 專(zhuān)家系統設計
這部分是位于車(chē)輛信息技術(shù)服務(wù)中心的應用程序,除了普通的web服務(wù),GPS服務(wù),跟蹤服務(wù)等以外,最主要的是能提供故障的專(zhuān)家診斷。這部分功能由專(zhuān)家系統輔助以現場(chǎng)專(zhuān)家來(lái)完成。通過(guò)專(zhuān)家系統來(lái)盡可能快地給車(chē)主反饋故障診斷的信息,并提出解決的專(zhuān)家建議。
開(kāi)發(fā)專(zhuān)家系統,首先需要將汽車(chē)維修領(lǐng)域專(zhuān)家的大量實(shí)際維修經(jīng)驗進(jìn)行匯總和提煉,編成知識庫,構成專(zhuān)家系統的核心部分;然后建立推理機,推理機可根據車(chē)載故障診斷單元發(fā)送過(guò)來(lái)的數據,利用知識庫中的知識,按一定策略進(jìn)行推理,從而得出診斷結果。專(zhuān)家系統的結構如圖2所示:
知識庫的建立直接關(guān)系到車(chē)輛信息技術(shù)服務(wù)中心服務(wù)質(zhì)量的高低,也影響著(zhù)車(chē)主是否大量采用這個(gè)系統,所以收集,整理專(zhuān)家知識的工作特別重要,其難點(diǎn)主要在于專(zhuān)家知識的收集與表述。因為現在的汽車(chē)制造廠(chǎng)商十分繁多,具體的車(chē)系更多。雖然現在大部分車(chē)輛都提供OBD-II接口,但是從接口中讀出的故障碼的信息十分有限;各大汽車(chē)生產(chǎn)廠(chǎng)商檢測故障用的手持設備與OBD-II通信的協(xié)議也各不一致,而且得到的故障碼包含的信息大量的是靠維修工人的經(jīng)驗來(lái)判讀。所以專(zhuān)家知識的積累與整理顯得十分重要。
在歸納知識時(shí)要考慮的因素很多, 為了充分利用專(zhuān)家系統的符號推理能力, 凡是能用數學(xué)公式描述的知識,均作為具體求解器的方法實(shí)現,其余的作為規則存儲于知識庫。
規則知識的表示形式為:
規則號 if (前提) then (結論)
前提是一個(gè)條件或幾個(gè)條件的“and”形式,若是后一種情況,只有在幾個(gè)條件都成立時(shí),結論才被接受。每個(gè)條件可以是若干項的“or”形式。
以下是一條具體的規則:
rule5:
if
?。?) 收到故障碼:p0201
?。?) 收到故障碼:p0202
?。?) 收到故障碼:p0203
?。?) 收到故障碼:p0204
?。?) 發(fā)動(dòng)機缸數:8
發(fā)動(dòng)機噴油嘴故障嚴重,需馬上修理。
推理機設計時(shí)本系統采用了兩級es推理控制策略。結合領(lǐng)域知識,將總體故障分析求解任務(wù)分解為不同的子任務(wù),如發(fā)動(dòng)機故障分析子任務(wù)、輪胎故障診斷子任務(wù)等。每個(gè)子任務(wù)有各自的目標求解變量,服從不同的求解方法,彼此之間既相互獨立又存在著(zhù)相互聯(lián)系。通過(guò)正向推理求解其目標變量,并將所求結果顯示給車(chē)主。
而汽車(chē)故障診斷的各子任務(wù)間是有一定的依賴(lài)關(guān)系的,各子任務(wù)的求解是有一定的前提條件的,例如,氣缸噴油嘴子任務(wù)的求解必須在油嘴線(xiàn)路電壓已知的前提下才能進(jìn)行,因而,各求解器中都設置了激活條件,只有滿(mǎn)足了這些條件,求解器才能被激活從而進(jìn)行目標變量的求解。元級推理機利用此關(guān)聯(lián)對象集信息按一定的順序激活相關(guān)的求解器進(jìn)行重新推理。
解釋機制通過(guò)與推理機輸出的數據, 回答用戶(hù)提出的how、why、what、whether等問(wèn)題。
3.2 車(chē)載故障診斷單元軟件設計
車(chē)載故障診斷單元主要負責車(chē)載故障數據的讀取,并通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )()將故障碼實(shí)時(shí)送到遠程車(chē)輛信息技術(shù)服務(wù)中心,簡(jiǎn)單的故障信息,如:一般故障(不用馬上處理),故障(需馬上修理),嚴重故障(需請求交通拯救)需要及時(shí)反饋給車(chē)主(包括以文字的方式反饋到車(chē)主車(chē)載屏上,更緊急的時(shí)候通過(guò)語(yǔ)音或者視頻對話(huà)來(lái)溝通)。更詳細的故障情況車(chē)主可以通過(guò)移動(dòng)電腦或者移動(dòng)電話(huà)訪(fǎng)問(wèn)相關(guān)遠程車(chē)輛信息技術(shù)服務(wù)中心的網(wǎng)站來(lái)獲取。
車(chē)載故障診斷單元的主程序在執行完初始化功能,再根據當前故障狀態(tài)位的值設置定時(shí)中斷的時(shí)間后,然后就進(jìn)入低功耗模式。單元讀取故障碼和其他運行數據,以及這些數據的傳輸都放置在中斷程序,中斷結束立即進(jìn)入低功耗模式。車(chē)輛故障狀態(tài)位正常時(shí),可取60min定時(shí)中斷一次,調用crc-16校驗計算執行庫后,通過(guò)無(wú)線(xiàn)方式發(fā)送給遠程車(chē)輛信息技術(shù)服務(wù)中心。在故障狀態(tài)位出現多位數值為“1”時(shí),縮短定時(shí)中斷時(shí)間,增加數據采樣及發(fā)送頻率。定時(shí)中斷程序流程如圖3所示:
數據接收程序在主程序完成初始化功能后,模塊進(jìn)入等待SPI數據工作狀態(tài)。在接收到一個(gè)數據幀,crc校驗(采用查表法實(shí)現,減小微控制器cpu占用時(shí)間)和車(chē)輛信息技術(shù)服務(wù)中心id判斷無(wú)誤后,送液晶顯示并點(diǎn)亮相應的指示燈以表示各模塊工作正常。當某個(gè)模塊出現故障時(shí),啟動(dòng)led閃爍警告或蜂鳴器報警。程序流程圖如圖4所示。
cdma相關(guān)文章:cdma原理
評論