隨著時(shí)代的前行,汽車已經(jīng)步入千家萬戶,看外形、選配置已經(jīng)是人們挑選車輛的重要指標(biāo)。車輛上豐富的電子配置,是不是都挑的花眼了。在模擬電路中,電信號都是要經(jīng)過電線來傳遞的,功能越復(fù)雜,其所需要的電線數(shù)量就會(huì)越多。但是我們在拆解車輛后,發(fā)現(xiàn)了一個(gè)有趣的問題,電線的數(shù)量沒有我們想象的那么多,是不是很不解。其實(shí),車輛應(yīng)用了一項(xiàng)總線技術(shù)——CAN總線。市面上的OBD盒子都是在這個(gè)技術(shù)上發(fā)展起來的。 汽車檢測 CAN總線說的簡單點(diǎn)就是兩根電線,有的人會(huì)疑惑兩根線就能把車輛想要傳遞的數(shù)據(jù)傳遞出去?那我們來打個(gè)簡單的比方,大家都要用到的——手機(jī)數(shù)據(jù)線,數(shù)據(jù)線拆過的朋友會(huì)發(fā)現(xiàn)里面其實(shí)也只有4根電線,只能充電的就只有2根電線。用排除法來排除充電的兩根電源線,剩下來的兩根就是數(shù)據(jù)傳輸線,傳圖片、視頻、甚至刷機(jī)都是靠這兩根電線來傳遞數(shù)據(jù)的。現(xiàn)在,我們好理解了,汽車上的這兩根線也是可以傳遞車輛需要的各種數(shù)據(jù),他們有專用的名稱——CAN_H和CAN_L。從字面上解釋,就是一根電線高電平,另一根就是低電平,這種差分信號有個(gè)好處就是數(shù)據(jù)傳輸可靠,兩根電線的信號不匹配,說明數(shù)據(jù)有問題,那就丟掉。CAN總線技術(shù)相當(dāng)?shù)膹?fù)雜,想要研究透那是需要下苦功夫的,這里我只講怎么來獲取想要的數(shù)據(jù)。 1.CAN總線波特率:車輛CAN總線通訊時(shí),會(huì)用到一定的數(shù)據(jù)發(fā)送速度,我們所用的設(shè)備必須和它保持一致才可以讀取數(shù)據(jù)。過快或過慢,都不能準(zhǔn)確的獲取每bit的數(shù)據(jù)。常用的波特率有500kbps和1000kbps,我們可以進(jìn)行嘗試來識別正確的波特率。波特率不正確或接線有問題時(shí),有的車輛會(huì)報(bào)錯(cuò)的,各大重要部件一起來,比如發(fā)動(dòng)機(jī)故障、變速箱故障、ESP故障等等。不用緊張,將我們設(shè)備上的CAN總線拔掉,關(guān)閉車輛ACC電源,心情愉快的哼首小曲后,再打開ACC電源,是不是故障全沒有了。 2.獲取協(xié)議相關(guān)數(shù)據(jù):ISO15765協(xié)議規(guī)范了一些常用的數(shù)據(jù),比如速度、轉(zhuǎn)速、發(fā)動(dòng)機(jī)負(fù)荷、冷卻液溫度、電瓶電壓等100多個(gè)常用的數(shù)據(jù)。因?yàn)檫@些協(xié)議,OBD盒子發(fā)展的相當(dāng)好。想通過ISO15765協(xié)議獲取想要的數(shù)據(jù),比如速度,就必須先往CAN總線上發(fā)個(gè)請求,數(shù)據(jù)需要先設(shè)置一下:幀類型(標(biāo)準(zhǔn)幀)、幀格式(數(shù)據(jù)幀)、幀ID(0x7DF)、數(shù)據(jù)HEX(02 01 0D 00 00 00 00 00),然后發(fā)送出去。就會(huì)返回一個(gè)結(jié)果(假如速度102km/h):幀類型(標(biāo)準(zhǔn)幀)、幀格式(數(shù)據(jù)幀)、幀ID(0x7E8)、數(shù)據(jù)HEX(02 01 0D 66 00 00 00 00)。協(xié)議里面指明第2個(gè)字節(jié)0D表示該數(shù)據(jù)為車速,第3個(gè)字節(jié)的66就是速度。但是車速不是66km/h,這又是為什么呢?是因?yàn)閿?shù)的進(jìn)制原因,66應(yīng)表示為0x66,為十六進(jìn)制數(shù),轉(zhuǎn)換為十進(jìn)制6*16+6=102,剛好就是我們設(shè)定的速度。如果要知道其他參數(shù)的數(shù)據(jù),就需要去查相關(guān)協(xié)議。 3.數(shù)據(jù)破解:有些數(shù)據(jù)是不在這些協(xié)議里的,甚至是廠商自己設(shè)定的標(biāo)準(zhǔn),這個(gè)就需要我們自己去破解。有的數(shù)據(jù)破解很簡單,比如開門情況、具體是哪個(gè)門打開問題,由于只涉及到開與關(guān),我們就直接開門和關(guān)門,反復(fù)進(jìn)行,看看哪些幀ID的數(shù)據(jù)在變化。找到后,在反復(fù)開關(guān)門中仔細(xì)的核對是不是我們要找的幀ID,然后再來記錄開不同的門所用的數(shù)值,開門信號的破解就是這么簡單。然而有的數(shù)據(jù)的破解卻非常復(fù)雜,有可能研究很久后依然不得其解。 得到想要的數(shù)據(jù)結(jié)構(gòu)后,后面就可以開始用學(xué)習(xí)板來獲取所需要的數(shù)據(jù)。如果所有的數(shù)據(jù)在學(xué)習(xí)板上都能夠從CAN總線上獲取,說明數(shù)據(jù)這塊沒有問題了,就可以按照電路的實(shí)際需要來畫電路圖。 此文章為愛折騰的小程哥原創(chuàng),特此聲明!喜歡的朋友可以關(guān)注我哦! |
|