2.4G射頻的CAN總線(xiàn)汽車(chē)故障診斷儀設(shè)計(jì)
上位機(jī)的應(yīng)用程序首要實(shí)現(xiàn)的功能是,要實(shí)現(xiàn)對(duì)TMU3100端點(diǎn)的讀寫(xiě),用VC++語(yǔ)言編寫(xiě),可以把USB設(shè)備當(dāng)成文件來(lái)操作。用CreateFiile ()函數(shù)獲得USB句柄,為讀訪(fǎng)問(wèn)或?qū)懺L(fǎng)問(wèn)打開(kāi)指定端點(diǎn)。用DeviceControl()來(lái)進(jìn)行控制操作,用ReadFile()從指定端點(diǎn)讀取數(shù)據(jù),用WriteFile()向端點(diǎn)寫(xiě)入數(shù)據(jù)。
當(dāng)CAN總線(xiàn)上的數(shù)據(jù)被采集到PC后,就可以進(jìn)行故障診斷了。故障診斷代碼是依照KWP2000應(yīng)用層規(guī)定的故障代碼設(shè)計(jì)的,是目前國(guó)際上通用的,現(xiàn)將其應(yīng)用于CAN的應(yīng)用層,將來(lái)可以用全新的CAN上層協(xié)議取代。故障診斷代碼定義在SSF14230中。SAE J1979中,由車(chē)輛制造商或系統(tǒng)供應(yīng)者定義的服務(wù)標(biāo)志符數(shù)值的不同范圍,如表1所列。
此表中以十六進(jìn)制數(shù)表示的服務(wù)標(biāo)志符,同數(shù)據(jù)鏈路層中數(shù)據(jù)字節(jié)內(nèi)的SID服務(wù)識(shí)別字節(jié)對(duì)應(yīng)。不同的SID值代表不同的服務(wù)請(qǐng)求,故障診斷程序必須符合此應(yīng)用層標(biāo)準(zhǔn),才能識(shí)別不同的十六進(jìn)制代碼所代表的不同的故障信息。
4 結(jié)論
本文設(shè)計(jì)的2.4G無(wú)線(xiàn)車(chē)載CAN總線(xiàn)故障診斷儀,由于采用了自動(dòng)跳頻的空中協(xié)議,所以誤碼率幾乎接近零,在14 m內(nèi)仍能進(jìn)行可靠的工作。系統(tǒng)使用國(guó)際上通用的診斷代碼,使程序具有通用性和實(shí)用性;以PC作為硬件平臺(tái),無(wú)需專(zhuān)門(mén)開(kāi)發(fā)硬件平臺(tái),可大大降低開(kāi)發(fā)成本并且易于實(shí)現(xiàn)設(shè)備的升級(jí)和維護(hù);使用USB接口和2.4G無(wú)線(xiàn)通信,具有即插即用、不受空間限制、數(shù)據(jù)傳輸實(shí)時(shí)性強(qiáng)的特點(diǎn)。
評(píng)論