隨著汽車電子控制單元以及汽車電子裝置的不斷增多,采用串行總線實(shí)現(xiàn)多路傳輸,組成汽車電子網(wǎng)絡(luò),是一種既可靠又經(jīng)濟(jì)的做法。在協(xié)議的管理下,若干控制單元、若干終端、傳輸設(shè)備和通信控制處理器等組成系統(tǒng)集合。
汽車電子控制網(wǎng)絡(luò)是按照特定的車載網(wǎng)絡(luò)協(xié)議,如CAN2.0、以太網(wǎng)等,以共享資源為目的,將所有位置上分散且獨(dú)立的車載控制模塊相互連接在一起的集合,我們想要實(shí)現(xiàn)對(duì)總線的數(shù)據(jù)應(yīng)用,就得進(jìn)入網(wǎng)絡(luò)去實(shí)現(xiàn)訪問和控制。
一、訪問控制方式
速銳得適配寶馬奧迪大眾捷豹路虎的現(xiàn)場(chǎng)CAN總線的設(shè)備終端(TBOX/OBD)訪問控制方式主要有一下幾種:載波監(jiān)聽多路訪問、沖突檢測(cè)與解決、主從訪問控制方式、令牌訪問控制方式以及時(shí)分多路等。
在適配過程中,總線上的任何節(jié)點(diǎn)都沒有預(yù)約發(fā)送時(shí)間,節(jié)點(diǎn)的數(shù)據(jù)都是隨機(jī)發(fā)送的,比如在網(wǎng)絡(luò)上爭(zhēng)用傳輸設(shè)備終端,故又稱為爭(zhēng)用技術(shù)。若同一時(shí)刻有多個(gè)節(jié)點(diǎn)向總線上發(fā)送數(shù)據(jù)就會(huì)引起沖突,為了避免沖突每個(gè)節(jié)點(diǎn)在發(fā)送信息前,都要監(jiān)聽總線上是否有信息在傳送,這就是載波監(jiān)聽的原由,目前市面上很多OBD產(chǎn)品都采用請(qǐng)求的方式來獲得數(shù)據(jù),但是會(huì)影響總線的正常工作,也就會(huì)導(dǎo)致報(bào)故障碼、儀表燈亂閃、數(shù)據(jù)無法適配和獲取,OBD請(qǐng)求數(shù)據(jù)過快,還會(huì)造成總線網(wǎng)絡(luò)數(shù)據(jù)沖突。這些就奠定了速銳得適配寶馬奧迪大眾捷豹路虎的現(xiàn)場(chǎng)CAN總線的實(shí)際意義。
二、先聽再講的訪問邏輯
載波監(jiān)聽的方式是“先聽再講”。一個(gè)節(jié)點(diǎn)要發(fā)送消息,首先要監(jiān)聽CAN總線,檢測(cè)總線上是否有其他節(jié)點(diǎn)正在發(fā)送消息,總線空閑則再發(fā)送,總線忙,則采用監(jiān)聽模式,這就是退避算法的核心,目前能掌握此技術(shù)的企業(yè)屈指可數(shù)。
由于傳輸線上不可避免地存在傳輸延遲,可能有多個(gè)節(jié)點(diǎn)同事檢測(cè)到總線處于空閑狀態(tài)并開始發(fā)送,從而導(dǎo)致沖突,所以,在每個(gè)節(jié)點(diǎn)開始發(fā)送消息后,還要持續(xù)監(jiān)聽線路,判斷是否有其他節(jié)點(diǎn)正在與本節(jié)點(diǎn)同時(shí)發(fā)送消息,一旦發(fā)現(xiàn)有便停止發(fā)送,這就是沖突檢測(cè)。
三、穿插邊聽邊講
載波監(jiān)聽多路訪問協(xié)議已經(jīng)廣泛運(yùn)用于車載網(wǎng)絡(luò)中。在TBOX或者CAN等設(shè)備終端訪問方式中,每個(gè)節(jié)點(diǎn)在發(fā)送幀期間,同時(shí)有沖突檢測(cè)功能,就是我們常說的“邊講邊聽”。
采用載波監(jiān)聽多路CAN訪問的機(jī)制可以從根本上避免沖突,仲裁期間,每個(gè)發(fā)送節(jié)點(diǎn)將從總線上的檢測(cè)到的值與自己發(fā)送的值相比較,如果不同,立即停止發(fā)送轉(zhuǎn)為接收。
該總線適配的方法優(yōu)點(diǎn)是:1、實(shí)現(xiàn)較為簡(jiǎn)單,2、主節(jié)點(diǎn)定時(shí)間從節(jié)點(diǎn)發(fā)送詢問幀,所以每個(gè)節(jié)點(diǎn)獲得總線訪問權(quán)的時(shí)間基本上是確定的。缺點(diǎn)是:浪費(fèi)帶寬、如果汽車主節(jié)點(diǎn)出故障可能需要借助診斷儀清碼,造成原因是總線網(wǎng)絡(luò)如上所說,速率不同。
四、輪詢?cè)L問
在通用系列汽車上,還存在主節(jié)點(diǎn)通過周期性的詢問從節(jié)點(diǎn)來控制基于節(jié)點(diǎn)通訊的總線訪問權(quán)限,也就是我們常說的“輪詢機(jī)制”。在輪詢周期,主節(jié)點(diǎn)從節(jié)點(diǎn)發(fā)送詢問幀,相應(yīng)的節(jié)點(diǎn)必須以一個(gè)應(yīng)答時(shí)間為響應(yīng)。
五、令牌訪問與控制方式
根據(jù)上述訪問機(jī)制中存在的沖突,其原因是由于各個(gè)節(jié)點(diǎn)發(fā)送消息是隨機(jī)的。為了解決這些沖突,我們采用新的“令牌訪問”的方式。這個(gè)原理可用于環(huán)狀網(wǎng)絡(luò),也可以用于總線,網(wǎng)絡(luò)上叫令牌環(huán)狀網(wǎng),總線上叫令牌總線網(wǎng)。
在令牌環(huán)狀網(wǎng)中,每個(gè)時(shí)刻只允許一個(gè)節(jié)點(diǎn)發(fā)送消息。令牌在網(wǎng)絡(luò)環(huán)路中不斷的傳遞,只有擁有此令牌的節(jié)點(diǎn)才允許向網(wǎng)絡(luò)中發(fā)送消息,其他的節(jié)點(diǎn)僅允許接收。因此,表示消息發(fā)送權(quán)的令牌在環(huán)狀信道上不斷循環(huán),環(huán)上每個(gè)節(jié)點(diǎn)都有機(jī)會(huì)獲得TBOX或者OBD終端的訪問權(quán),而任何時(shí)候都只有一個(gè)節(jié)點(diǎn)利用環(huán)路傳輸消息,這樣就避免了沖突。
令牌總線網(wǎng)的傳遞方式也是一樣,可采用總線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),但是不同的是,前者在物理總線上由網(wǎng)上的各個(gè)節(jié)點(diǎn)按照一定順序行成一個(gè)邏輯環(huán),每個(gè)節(jié)點(diǎn)在環(huán)中均有一個(gè)指定的邏輯位置,末節(jié)點(diǎn)的后繼節(jié)點(diǎn)是首節(jié)點(diǎn)。該總線訪問方式從物理上看是一個(gè)總線結(jié)構(gòu)的局域網(wǎng),各個(gè)節(jié)點(diǎn)共享一個(gè)通道。但是從邏輯上看,這一種環(huán)狀結(jié)構(gòu)的局域網(wǎng)和令牌環(huán)不一樣,只有擁有令牌的節(jié)點(diǎn)才具有OBD或者TBOX終端的訪問權(quán)。在正常運(yùn)行時(shí),節(jié)點(diǎn)完成發(fā)送后就將令牌傳遞給下一個(gè)節(jié)點(diǎn)。令牌是按照地址的遞減順序傳遞給下一個(gè)節(jié)點(diǎn)的,但從物理上看,帶有目標(biāo)地址的令牌幀廣播至總線上的所有節(jié)點(diǎn),當(dāng)目標(biāo)節(jié)點(diǎn)識(shí)別符合它的地址時(shí)才將該令牌接收。
六、分時(shí)多路訪問
該設(shè)備終端訪問方式中,用于傳輸數(shù)據(jù)的周期被分成很多時(shí)間片,網(wǎng)絡(luò)系統(tǒng)的各個(gè)消息按照事先規(guī)定的發(fā)送順序,在發(fā)送周期的固定時(shí)間內(nèi)發(fā)送數(shù)據(jù)到總線上,因此各個(gè)節(jié)點(diǎn)訪問設(shè)備終端的時(shí)間片是確定的。該設(shè)備終端訪問方式的前提條件是每個(gè)節(jié)點(diǎn)的局部參考時(shí)間與統(tǒng)一的全局時(shí)間基準(zhǔn)同步。
目前,市面上所有的汽車制造商無一例外的在汽車網(wǎng)絡(luò)化控制上投入大量的資源,同時(shí),廠商及消費(fèi)者也從汽車網(wǎng)絡(luò)控制技術(shù)的廣泛應(yīng)用中獲得所需要的信號(hào)。汽車網(wǎng)絡(luò)化技術(shù)是通信技術(shù)、計(jì)算機(jī)技術(shù)、以及控制理論和實(shí)操相結(jié)合的產(chǎn)物,車聯(lián)網(wǎng)與總線數(shù)據(jù)應(yīng)用也是現(xiàn)代汽車電子技術(shù)最重要的基礎(chǔ),需要在這個(gè)大數(shù)據(jù)時(shí)代下,收集分布在汽車各處傳感器發(fā)出的信息,按照嵌入式指令進(jìn)行實(shí)時(shí)采集、利用、運(yùn)算,所以,這就是速銳得適配寶馬奧迪大眾捷豹路虎大量車型現(xiàn)場(chǎng)CAN總線的根本原因,同時(shí)把經(jīng)驗(yàn)分享給大家。