詳解CAN總線(xiàn)幾種正常的“異?!辈ㄐ?/h1>
工程師們通常使用示波器觀(guān)察CAN總線(xiàn)的信號質(zhì)量,一般主要關(guān)注CAN總線(xiàn)差分信號的幅值、最小位寬、邊沿情況等。相信不少工程師都看到過(guò)一條報文數據的波形上高高低低存在多個(gè)幅值,心里可能會(huì )變得忐忑不安,幅值不統一是不是波形出現畸變了呢?其實(shí)并非如此,今天就把CAN總線(xiàn)上的幅值“異常”歸歸類(lèi)。
本文引用地址:http://dyxdggzs.com/article/201807/384622.htm一、CAN-bus信號產(chǎn)生原理
眾所周知,一個(gè)標準CAN節點(diǎn)由微處理器、控制器、收發(fā)器構成。多個(gè)節點(diǎn)成總線(xiàn)型架構掛在一起,兩個(gè)端節點(diǎn)上并有終端電阻。其結構簡(jiǎn)圖如下圖所示。

圖1 CAN-bus節點(diǎn)網(wǎng)絡(luò )結構
可以看出,與總線(xiàn)直接相連的是CAN節點(diǎn)的收發(fā)器,起內部電路等效如下圖所示,CAN-H、CAN-L直接由三極管驅動(dòng),近似可以看成電流型輸出。結合上文所述網(wǎng)絡(luò )架構中的終端電阻,節點(diǎn)發(fā)出信號時(shí)電流流過(guò)終端電阻產(chǎn)生電壓信號,當同一時(shí)間多個(gè)節點(diǎn)同時(shí)發(fā)出信號時(shí)就會(huì )使總線(xiàn)上的電流高于單一節點(diǎn)發(fā)出的電流,使得我們觀(guān)察電壓信號時(shí)出現突增的現象。

圖2 CAN收發(fā)器結構
CAN-bus是總線(xiàn)型結構,通常狀態(tài)下一般只有一個(gè)節點(diǎn)占有總線(xiàn)。那么有幾種情況會(huì )導致多個(gè)節點(diǎn)同時(shí)發(fā)出,進(jìn)而導致幅值出現“異常”呢,下文通過(guò)致遠電子CANScope分析儀的幾個(gè)測試案例總結一下。
二、應答位上的幅值“異常”
最常見(jiàn)的,當CAN網(wǎng)絡(luò )上存在3個(gè)以上的節點(diǎn)時(shí),應答位上的幅值要明顯高于同一報文的其他位置,如下圖所示??梢钥吹綀笪脑贗D段、數據段、CRC校驗段處的幅值均比較一致,但是到應答位處時(shí)幅值出現突增。這是為什么呢,大家都知道CAN-bus總線(xiàn)擁有自動(dòng)應答機制,即當某一節點(diǎn)發(fā)送完一幀報文時(shí),所有總線(xiàn)中的其余非只聽(tīng)節點(diǎn)均會(huì )在應答位處做出響應,如果報文被成功識別則發(fā)出一個(gè)顯性位做為應答信號。
結合上文所述,應答位此時(shí)CAN總線(xiàn)上的電流是若干節點(diǎn)電流疊加的綜合,所以應答位的幅值高就很容易講通了。

圖3 應答位上的幅值“異常”
三、ID段上的幅值“異常”
CAN-bus總線(xiàn)的一大特點(diǎn)就是多主結構,即網(wǎng)絡(luò )中所有節點(diǎn)功能對等,沒(méi)有主從機的概念,所有節點(diǎn)均可自由收發(fā)數據。保證多主結構得以實(shí)現的關(guān)鍵在于CAN總線(xiàn)的仲裁機制也稱(chēng)優(yōu)先級機制。當網(wǎng)絡(luò )中同時(shí)有多個(gè)節點(diǎn)同時(shí)發(fā)送數據時(shí)會(huì )在ID段處產(chǎn)生仲裁,優(yōu)先級高的節點(diǎn)會(huì )最終占有總線(xiàn)。
如下圖所示,可以看到在圖中的標記處波形出現了“臺階”。正是由于在“臺階”出現前有兩個(gè)節點(diǎn)同時(shí)發(fā)出數據,導致幅值增高,在“臺階”處某一節點(diǎn)由于優(yōu)先級高占有總線(xiàn),另一個(gè)節點(diǎn)暫時(shí)退出,使得幅值又回歸平常。

圖4 ID段上的幅值異常
四、錯誤幀上的幅值“異常”
再看看這個(gè)案例,可以看到在波形的后半部分也出現了臺階式的幅值增高,光標卡住的顯性電平區間可以看到寬度明顯超過(guò)了5個(gè)標準位寬,按照CAN總線(xiàn)的位填充規則(不能存在連續六個(gè)相同的顯性位或隱性位)表明這是一條錯誤幀。但是不要誤會(huì ),并不是因為這個(gè)幅值“異常”而導致的錯誤幀,我們知道CAN總線(xiàn)有錯誤重發(fā)機制,以保證總線(xiàn)傳輸數據的可靠性。這種可靠性正式通過(guò)錯誤幀的“一票否決制”實(shí)現的。
當網(wǎng)絡(luò )中某一節點(diǎn)識別到一條認為是有問(wèn)題的報文后會(huì )發(fā)送六個(gè)連續的顯性位(即錯誤幀),投出這一否決票通知網(wǎng)絡(luò )上所有其他節點(diǎn),本條報文無(wú)效。此后其他節點(diǎn)會(huì )以“跟票”的形式全部發(fā)出六個(gè)顯性位錯誤幀。所以此時(shí)多個(gè)節點(diǎn)重疊部分的錯誤幀的幅值就會(huì )高一些了。

圖5 錯誤幀上的幅值異常
工程師們通常使用示波器觀(guān)察CAN總線(xiàn)的信號質(zhì)量,一般主要關(guān)注CAN總線(xiàn)差分信號的幅值、最小位寬、邊沿情況等。相信不少工程師都看到過(guò)一條報文數據的波形上高高低低存在多個(gè)幅值,心里可能會(huì )變得忐忑不安,幅值不統一是不是波形出現畸變了呢?其實(shí)并非如此,今天就把CAN總線(xiàn)上的幅值“異常”歸歸類(lèi)。
本文引用地址:http://dyxdggzs.com/article/201807/384622.htm一、CAN-bus信號產(chǎn)生原理
眾所周知,一個(gè)標準CAN節點(diǎn)由微處理器、控制器、收發(fā)器構成。多個(gè)節點(diǎn)成總線(xiàn)型架構掛在一起,兩個(gè)端節點(diǎn)上并有終端電阻。其結構簡(jiǎn)圖如下圖所示。

圖1 CAN-bus節點(diǎn)網(wǎng)絡(luò )結構
可以看出,與總線(xiàn)直接相連的是CAN節點(diǎn)的收發(fā)器,起內部電路等效如下圖所示,CAN-H、CAN-L直接由三極管驅動(dòng),近似可以看成電流型輸出。結合上文所述網(wǎng)絡(luò )架構中的終端電阻,節點(diǎn)發(fā)出信號時(shí)電流流過(guò)終端電阻產(chǎn)生電壓信號,當同一時(shí)間多個(gè)節點(diǎn)同時(shí)發(fā)出信號時(shí)就會(huì )使總線(xiàn)上的電流高于單一節點(diǎn)發(fā)出的電流,使得我們觀(guān)察電壓信號時(shí)出現突增的現象。

圖2 CAN收發(fā)器結構
CAN-bus是總線(xiàn)型結構,通常狀態(tài)下一般只有一個(gè)節點(diǎn)占有總線(xiàn)。那么有幾種情況會(huì )導致多個(gè)節點(diǎn)同時(shí)發(fā)出,進(jìn)而導致幅值出現“異常”呢,下文通過(guò)致遠電子CANScope分析儀的幾個(gè)測試案例總結一下。
二、應答位上的幅值“異常”
最常見(jiàn)的,當CAN網(wǎng)絡(luò )上存在3個(gè)以上的節點(diǎn)時(shí),應答位上的幅值要明顯高于同一報文的其他位置,如下圖所示??梢钥吹綀笪脑贗D段、數據段、CRC校驗段處的幅值均比較一致,但是到應答位處時(shí)幅值出現突增。這是為什么呢,大家都知道CAN-bus總線(xiàn)擁有自動(dòng)應答機制,即當某一節點(diǎn)發(fā)送完一幀報文時(shí),所有總線(xiàn)中的其余非只聽(tīng)節點(diǎn)均會(huì )在應答位處做出響應,如果報文被成功識別則發(fā)出一個(gè)顯性位做為應答信號。
結合上文所述,應答位此時(shí)CAN總線(xiàn)上的電流是若干節點(diǎn)電流疊加的綜合,所以應答位的幅值高就很容易講通了。

圖3 應答位上的幅值“異常”
三、ID段上的幅值“異常”
CAN-bus總線(xiàn)的一大特點(diǎn)就是多主結構,即網(wǎng)絡(luò )中所有節點(diǎn)功能對等,沒(méi)有主從機的概念,所有節點(diǎn)均可自由收發(fā)數據。保證多主結構得以實(shí)現的關(guān)鍵在于CAN總線(xiàn)的仲裁機制也稱(chēng)優(yōu)先級機制。當網(wǎng)絡(luò )中同時(shí)有多個(gè)節點(diǎn)同時(shí)發(fā)送數據時(shí)會(huì )在ID段處產(chǎn)生仲裁,優(yōu)先級高的節點(diǎn)會(huì )最終占有總線(xiàn)。
如下圖所示,可以看到在圖中的標記處波形出現了“臺階”。正是由于在“臺階”出現前有兩個(gè)節點(diǎn)同時(shí)發(fā)出數據,導致幅值增高,在“臺階”處某一節點(diǎn)由于優(yōu)先級高占有總線(xiàn),另一個(gè)節點(diǎn)暫時(shí)退出,使得幅值又回歸平常。

圖4 ID段上的幅值異常
四、錯誤幀上的幅值“異常”
再看看這個(gè)案例,可以看到在波形的后半部分也出現了臺階式的幅值增高,光標卡住的顯性電平區間可以看到寬度明顯超過(guò)了5個(gè)標準位寬,按照CAN總線(xiàn)的位填充規則(不能存在連續六個(gè)相同的顯性位或隱性位)表明這是一條錯誤幀。但是不要誤會(huì ),并不是因為這個(gè)幅值“異常”而導致的錯誤幀,我們知道CAN總線(xiàn)有錯誤重發(fā)機制,以保證總線(xiàn)傳輸數據的可靠性。這種可靠性正式通過(guò)錯誤幀的“一票否決制”實(shí)現的。
當網(wǎng)絡(luò )中某一節點(diǎn)識別到一條認為是有問(wèn)題的報文后會(huì )發(fā)送六個(gè)連續的顯性位(即錯誤幀),投出這一否決票通知網(wǎng)絡(luò )上所有其他節點(diǎn),本條報文無(wú)效。此后其他節點(diǎn)會(huì )以“跟票”的形式全部發(fā)出六個(gè)顯性位錯誤幀。所以此時(shí)多個(gè)節點(diǎn)重疊部分的錯誤幀的幅值就會(huì )高一些了。

圖5 錯誤幀上的幅值異常
評論