can總線的解決方案與錯誤處理類型是什么?
當(dāng)前市場行業(yè)發(fā)展CAN總線雖然有強(qiáng)大的抗干擾和糾錯重發(fā)機(jī)制,但目前CAN大量地運(yùn)用于電動汽車、充電樁、電力電子、軌道交通等電磁環(huán)境比較惡劣的場合,因此對CAN總線的抗干擾能力也會存在挑戰(zhàn),所以對CAN總線的抗干擾能力需要加以重視。當(dāng)CAN總線出現(xiàn)故障或數(shù)據(jù)傳輸異常時,往往會出現(xiàn)多種奇怪的故障現(xiàn)象,干擾也會導(dǎo)致幀錯誤增加,重發(fā)頻繁,正確數(shù)據(jù)不能及時到達(dá),將會大大影響工作的效率和質(zhì)量。想要確定CAN總線故障在哪里,然后更有目標(biāo)性的去解決它。
主動錯誤標(biāo)志:
主動錯誤標(biāo)志由6個連續(xù)的顯性位組成。處于主動錯誤狀態(tài)的節(jié)點檢測到錯誤時會發(fā)送主動錯誤標(biāo)志。主動錯誤標(biāo)志會違反位填充規(guī)則和位場的固定形式,這會造成其它節(jié)點也檢測到錯誤并發(fā)送錯誤標(biāo)志(錯誤標(biāo)志重疊部分形成的原因)。所有節(jié)點所發(fā)送的顯性序列疊加組成錯誤標(biāo)志重疊部分。錯誤標(biāo)志重疊部分的長度在6-12個顯性位之間。Q:會不會存在一個節(jié)點處于主動錯誤狀態(tài),其他節(jié)點處于被動錯誤狀態(tài)?(“4.1 位錯誤通知_3)”)
被動錯誤標(biāo)志:
被動錯誤標(biāo)志由6個連續(xù)的隱性位組成,被動錯誤標(biāo)志可能會被其他節(jié)點的顯性位改寫。(必須為6個連續(xù)的隱性位才能代表被動錯誤標(biāo)志發(fā)送完成),(應(yīng)當(dāng)理解為節(jié)點發(fā)送了6個連續(xù)隱性位就行,而不需要關(guān)注總線上的狀態(tài)有沒有被其他節(jié)點改寫。)如果是一個發(fā)送節(jié)點發(fā)送被動錯誤標(biāo)志,將會導(dǎo)致接收節(jié)點的位填充錯誤。以下兩種情況除外:1:如果處在仲裁期間,且其他節(jié)點取得總線控制權(quán);2:被動錯誤標(biāo)志發(fā)送開始于小于CRC序列結(jié)束前的第六位的位置。(因為位填充檢測結(jié)束于CRC序列)如果一個接受節(jié)點需要發(fā)送被動錯誤標(biāo)志,它不會誘發(fā)總線上的任何活動,當(dāng)檢測到6個連續(xù)的隱性位才認(rèn)為被動錯誤標(biāo)志被送出。
主動錯誤:
處于主動錯誤狀態(tài)的節(jié)點能正常參與總線通信的收發(fā),當(dāng)檢測到錯誤時將發(fā)送主動錯誤標(biāo)志,錯誤標(biāo)志由6個連續(xù)的顯性位組成(這種連續(xù)的6個顯性位與常規(guī)的填充位和其它幀固定格式不相同,正因為如此,硬件才容易區(qū)別)。
如果是發(fā)送節(jié)點發(fā)送主動錯誤幀,這種情況相當(dāng)于剛剛發(fā)送的那幀報文我發(fā)錯了,我現(xiàn)在主動破壞它,其他節(jié)點不管接收到什么都不算數(shù);
如果是接收節(jié)點發(fā)送主動錯誤幀,這種情況相當(dāng)于剛剛接收的那幀報文出錯了,我現(xiàn)在主動站出來告訴大家這個錯誤,并把這幀報文破壞掉,剛才你們不管接收到什么都不算數(shù)
被動錯誤:
處于被動錯誤狀態(tài)的節(jié)點不能發(fā)送主動錯誤標(biāo)志。它能參與正常通信,但當(dāng)檢測到錯誤時發(fā)送的是被動錯誤標(biāo)志。被動錯誤標(biāo)志由6個連續(xù)的隱性位組成。當(dāng)發(fā)送結(jié)束后,處于被動錯誤狀態(tài)的節(jié)點在下一次再次發(fā)送時之前需要等待一些額外時間。
如果是發(fā)送節(jié)點發(fā)出被動錯誤幀,剛剛被發(fā)送的報文被破壞。錯誤幀發(fā)送完成后,接著的是幀間隔(3個隱性位)和“傳輸延時段”(8個隱性位),這時總線上的其他節(jié)點就可以判斷總線處于空閑狀態(tài)并參與總線競爭。這種機(jī)制可以讓其他處于主動錯誤狀態(tài)的節(jié)點優(yōu)先使用總線。
如果是接收節(jié)點發(fā)出被動錯誤幀,則不會對總線產(chǎn)生任何影響
CAN總線故障定位
節(jié)點測試法
CAN總線是網(wǎng)絡(luò)系統(tǒng)的控制器區(qū)域,是中央網(wǎng)絡(luò)系統(tǒng),各節(jié)點或者說是車內(nèi)的電子控制單元就是由CAN所聯(lián)系起來的。當(dāng)CAN總線出現(xiàn)干擾異常時,針對短路問題,可以通過逐個斷開節(jié)點來進(jìn)行測試,若電壓恢復(fù)正常,則說明該節(jié)點有問題。若斷開所有節(jié)點后電壓還沒有變化,則說明線路短路。通過這個方法可以判斷是由節(jié)點引起的短路還是導(dǎo)線連接引起的短路。
電阻測量法
當(dāng)某個控制模塊CAN L導(dǎo)線或者是CAN H導(dǎo)線斷路時,會導(dǎo)致該控制模塊無法實現(xiàn)通信,在其他控制模塊的通信是不受影響的。但在其他控制模塊有讀到該故障塊故障碼的可能。如果多個控制模塊的CAN L導(dǎo)線或者是CAN H導(dǎo)線出現(xiàn)斷路,那么這些控制模塊的通信功能都會受到影響。若出現(xiàn)故障的控制模塊帶有終端電阻,那么就可以采用電阻測量法。以下就是判斷有無終端電阻的測量方法。根據(jù)實際的線束特性進(jìn)行計算可以知道,CAN終端店電阻的阻值大約為120Ω,測量診斷接口的CAN H 與CAN L之間的電阻,若變?yōu)?20Ω,則說明有一個終端電阻斷路。這種情況下則可用電阻測量法進(jìn)行故障判斷。