本發(fā)明涉及汽車(chē)通信技術(shù),尤其涉及一種控制器。
背景技術(shù):
目前,CAN總線技術(shù)已經(jīng)廣泛應(yīng)用于各種檢測(cè)和控制系統(tǒng)中,它是一種有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò),CAN總線將汽車(chē)電子設(shè)備和汽車(chē)底盤(pán)的電子控制單元(Electronic Control Unit,ECU)有效的連接了起來(lái),通常CAN總線連接不止一個(gè)ECU。
現(xiàn)有技術(shù)中,CAN總線系統(tǒng)架構(gòu)中的兩個(gè)ECU之間只存在一條CAN路徑,當(dāng)該條CAN路徑出現(xiàn)故障時(shí),會(huì)造成ECU之間無(wú)法通信。因此,亟需提出一種與雙冗余CAN總線通訊的控制器,以增強(qiáng)CAN總線抗失效的能力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種控制器,以增強(qiáng)CAN總線抗失效的能力。
本發(fā)明提供一種控制器,用于與第一CAN總線和第二CAN總線通訊,包括:
編碼模塊,用于按照預(yù)設(shè)編碼規(guī)則對(duì)第一報(bào)文信息進(jìn)行編碼;其中,所述第一報(bào)文信息包含多幀CAN消息;
發(fā)送模塊,用于將編碼后的所述第一報(bào)文信息發(fā)送給所述第一CAN總線和所述第二CAN總線;
接收模塊,用于從所述第一CAN總線接收第二報(bào)文信息,同時(shí)從所述第二CAN總線接收所述第二報(bào)文信息;
判斷模塊,用于按照判斷所述預(yù)設(shè)判斷規(guī)則判斷所述第二報(bào)文信息是否正確;
選擇模塊,用于根據(jù)預(yù)設(shè)選擇規(guī)則,確定所應(yīng)用的所述第二報(bào)文信息;其中,所述預(yù)設(shè)選擇規(guī)則包括:從所述第一CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,且監(jiān)測(cè)到從所述第一CAN總線接收的所述第二報(bào)文信息正確的次數(shù)未 達(dá)到所述預(yù)設(shè)次數(shù)時(shí),若從所述第二CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,則切換為應(yīng)用從所述第一CAN總線接收到的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù)。
如上所述的控制器,其中,所述預(yù)設(shè)編碼規(guī)則包括:使用所述CAN消息中的預(yù)設(shè)字節(jié)作為所述CAN消息的編碼字節(jié),所述CAN消息的編碼由初始值逐幀增加至預(yù)設(shè)最大值。
如上所述的控制器,其中,所述預(yù)設(shè)判斷規(guī)則包括:根據(jù)預(yù)設(shè)數(shù)據(jù)范圍判斷所述第二報(bào)文信息中的報(bào)文數(shù)據(jù)是否可信。
如上所述的控制器,其中,所述預(yù)設(shè)選擇規(guī)則還包括:若從所述第一CAN總線接收的所述第二報(bào)文信息正確,則應(yīng)用從所述第一CAN總線接收的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù);若從所述第一CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,從所述第二CAN總線接收的所述第二報(bào)文信息正確,則應(yīng)用從所述第二CAN總線接收的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù)。
本發(fā)明提供的控制器,用于與第一CAN總線和第二CAN總線通訊,包括:編碼模塊,用于按照預(yù)設(shè)編碼規(guī)則對(duì)第一報(bào)文信息進(jìn)行編碼;其中,所述第一報(bào)文信息包含多幀CAN消息;發(fā)送模塊,用于將編碼后的所述第一報(bào)文信息發(fā)送給所述第一CAN總線和所述第二CAN總線;接收模塊,用于從所述第一CAN總線接收第二報(bào)文信息,同時(shí)從所述第二CAN總線接收所述第二報(bào)文信息;判斷模塊,用于按照判斷所述預(yù)設(shè)判斷規(guī)則判斷所述第二報(bào)文信息是否正確;選擇模塊,用于根據(jù)預(yù)設(shè)選擇規(guī)則,確定所應(yīng)用的所述第二報(bào)文信息;其中,所述預(yù)設(shè)選擇規(guī)則包括:從所述第一CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,且監(jiān)測(cè)到從所述第一CAN總線接收的所述第二報(bào)文信息正確的次數(shù)未達(dá)到所述預(yù)設(shè)次數(shù)時(shí),若從所述第二CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,則切換為應(yīng)用從所述第一CAN總線接收到的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù);從而實(shí)現(xiàn)了對(duì)雙冗余CAN總線的應(yīng)用,第一CAN總線和第二CAN總線互為冗余,增強(qiáng)了CAN總線抗失效的能力。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下 面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明應(yīng)用雙冗余CAN總線的物理結(jié)構(gòu)圖;
圖2為本發(fā)明實(shí)施例提供的控制器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明應(yīng)用雙冗余CAN總線的物理結(jié)構(gòu)圖,如圖1所示,多個(gè)電子控制單元(Electronic Control Unit,ECU)連接在兩條獨(dú)立的CAN總線之間,在物理上,以CAN-A為主CAN總線,即本發(fā)明實(shí)施例中的第一CAN總線,以CAN-B為冗余總線,即本發(fā)明實(shí)施例中的第二CAN總線。需要說(shuō)明的是,CAN-A和CAN-B遵循相同的協(xié)議,每個(gè)ECU向CAN-A和CAN-B發(fā)送相同的報(bào)文信息。
圖2為本發(fā)明實(shí)施例提供的控制器的結(jié)構(gòu)示意圖。如圖2所示,本實(shí)施例提供的控制器,用于與第一CAN總線和第二CAN總線通訊,包括:
編碼模塊11,用于按照預(yù)設(shè)編碼規(guī)則對(duì)第一報(bào)文信息進(jìn)行編碼;其中,所述第一報(bào)文信息包含多幀CAN消息;
發(fā)送模塊12,用于將編碼后的所述第一報(bào)文信息發(fā)送給所述第一CAN總線和所述第二CAN總線;
接收模塊13,用于從所述第一CAN總線接收第二報(bào)文信息,同時(shí)從所述第二CAN總線接收所述第二報(bào)文信息;
判斷模塊14,用于按照判斷所述預(yù)設(shè)判斷規(guī)則判斷所述第二報(bào)文信息是否正確;
選擇模塊15,用于根據(jù)預(yù)設(shè)選擇規(guī)則,確定所應(yīng)用的所述第二報(bào)文信息;其中,所述預(yù)設(shè)選擇規(guī)則包括:從所述第一CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,且監(jiān)測(cè)到從所述第一CAN總線接收的所述第二報(bào)文信息正確的次數(shù) 未達(dá)到所述預(yù)設(shè)次數(shù)時(shí),若從所述第二CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,則切換為應(yīng)用從所述第一CAN總線接收到的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù)。
需要說(shuō)明的是,所述預(yù)設(shè)編碼規(guī)則包括:使用所述CAN消息中的預(yù)設(shè)字節(jié)作為所述CAN消息的編碼字節(jié),所述CAN消息的編碼由初始值逐幀增加至預(yù)設(shè)最大值。
所述預(yù)設(shè)判斷規(guī)則包括:根據(jù)預(yù)設(shè)數(shù)據(jù)范圍判斷所述第二報(bào)文信息中的報(bào)文數(shù)據(jù)是否可信。
所述預(yù)設(shè)選擇規(guī)則還包括:若從所述第一CAN總線接收的所述第二報(bào)文信息正確,則應(yīng)用從所述第一CAN總線接收的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù);若從所述第一CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,從所述第二CAN總線接收的所述第二報(bào)文信息正確,則應(yīng)用從所述第二CAN總線接收的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù)。
本實(shí)施例提供的控制器,用于與第一CAN總線和第二CAN總線通訊,包括:編碼模塊,用于按照預(yù)設(shè)編碼規(guī)則對(duì)第一報(bào)文信息進(jìn)行編碼;其中,所述第一報(bào)文信息包含多幀CAN消息;發(fā)送模塊,用于將編碼后的所述第一報(bào)文信息發(fā)送給所述第一CAN總線和所述第二CAN總線;接收模塊,用于從所述第一CAN總線接收第二報(bào)文信息,同時(shí)從所述第二CAN總線接收所述第二報(bào)文信息;判斷模塊,用于按照判斷所述預(yù)設(shè)判斷規(guī)則判斷所述第二報(bào)文信息是否正確;選擇模塊,用于根據(jù)預(yù)設(shè)選擇規(guī)則,確定所應(yīng)用的所述第二報(bào)文信息;其中,所述預(yù)設(shè)選擇規(guī)則包括:從所述第一CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,且監(jiān)測(cè)到從所述第一CAN總線接收的所述第二報(bào)文信息正確的次數(shù)未達(dá)到所述預(yù)設(shè)次數(shù)時(shí),若從所述第二CAN總線接收的所述第二報(bào)文信息錯(cuò)誤,則切換為應(yīng)用從所述第一CAN總線接收到的所述第二報(bào)文信息中的報(bào)文數(shù)據(jù);從而實(shí)現(xiàn)了對(duì)雙冗余CAN總線的應(yīng)用,第一CAN總線和第二CAN總線互為冗余,增強(qiáng)了CAN總線抗失效的能力。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相 應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。