CAN總線ACK電平偏高原因分析
發布時間:2017/7/9 20:33:57 訪問次數:2669
- 51電子網公益庫存:
- XIO1100GGB
- 2N2102
- 74HC154E
- A2C00043451
- BCY58VII
- CAHC1G04QDCKRG4Q1
- DAC1220E
- ECMF02-2BF3
- GD65232DBR
- HCF4001M013TR
- INA101AG
- KF33BDT-TR
- L298N
- M24128-BFMB6TG
- OMAP1510CGZG2R
ack段長度為2個位,包含應答間隙(ack slot)和應答界定符(ack delimiter)。在應答場里,發送站發送兩個“隱性”位。當接收器正確地接收到有效的報文,接收器就會在應答間隙(ack slot)期間(發送ack信號)向發送器發送一“顯性”的位以示應答。如圖2 (canscope測試的ack段波形圖)所示:
應答間隙:所有接收到匹配crc序列(crc sequence)的節點會在應答間隙(ack slot)期間用一“顯性”的位寫入發送器的“隱性”位來作出回答,由于can總線線與的原理,只要總線上有一個節點正確接收到數據,則ack slot就會被填入顯性電平。
ack界定符:ack界定符是ack場的第二個位,并且是一個必須為“隱性”的位。因此,應答間隙(ack slot)被兩個“隱性”的位所包圍,也就是crc界定符(crc delimiter)和ack界定符(ack delimiter)。
當一個接收節點接收的幀起始到crc段之間的內容沒發生錯誤時,它將在ack段發送一個顯性電平。 如圖3所示:
二、can總線ack電平偏高原因分析
以使用zlg致遠電子canscope測試某電車can網絡為例,20多個can節點采樣手牽手方式組網,線兩端各接120歐電阻,通訊能夠正常,但差分信號波形應答位電平偏高較多,如圖4所示,從canscope的波形圖中可以清楚的看到ack電平突增。 http://zmgj666.51dzw.com
can總線通信存在異常,ack應答有問題?——no
分析如下:
首先,我們看一款can收發器的典型內部結構圖,canh、canl連接總線。
總線顯性時(邏輯為0),收發器內部q1、q2導通,canh、canl之間產生壓差;隱性時(邏輯為1),q1、q2截止,canh、canl處于無源狀態,壓差為0。
按照標準,在總線輸出為顯性時,canh=3.5v,canl=1.5v,差分分電平:canh-canl=2v,總線網絡電阻為60歐,流經終端電阻的電流約為33ma(2v/60歐);
然而,can收發器在輸出顯性時,canh電平并不是標準的3.5v,而是5v(vcc)通過一個二極管降壓得到的,二極管的壓降由負載電流決定。圖6所示的vdh為canh對應的二極管壓降,vdl為canl對于的二極管壓降,流過的電流越大,二極管的壓降就越大。可知:
canh的電壓=5v-vdh canl的電壓=0v+vdl
在can總線網絡中,當一幀報文被各個節點接收時,在ack階段,多個can節點同時響應(都發顯性),流過終端電阻的電流被各個can節點均分,那么平均到每個節點的電流就減小了,如下圖所示,vdh、vdl的壓降也減小,相應canh-canl的差分電壓就增大了,即ack應答電平偏高。
三、ack的意義
當can總線上只有一個節點可收發數據時,總線上因無接收節點在ack slot時間內 發送“顯性”位填充,而始終保持隱性,發送者會檢測到這個隱性位而知道發送失敗,此條報文需要重發。因此這個節點會一直重發數據直到發送成功或發送被取消。http://zmgj666.51dzw.com
當總線上有多個can節點組網通信時,由于總線電平線與的原理,只要總線上有一個節點正確接收到數據,則ack slot就會被填入顯性電平(此時認為數據幀發送成功), 那么,接收錯誤的節點如何來告知發送者此次發送不成功呢?這就要用到can的錯誤幀,當一個接收節點收到錯誤數據時,它立即廣播發送一個錯誤幀,其它的節點和發送者也都會收到這個錯誤幀而丟掉此次報文,發送節點重新發送,這才是ack的意義。
來源:電子產品世界
- 51電子網公益庫存:
- XIO1100GGB
- 2N2102
- 74HC154E
- A2C00043451
- BCY58VII
- CAHC1G04QDCKRG4Q1
- DAC1220E
- ECMF02-2BF3
- GD65232DBR
- HCF4001M013TR
- INA101AG
- KF33BDT-TR
- L298N
- M24128-BFMB6TG
- OMAP1510CGZG2R
ack段長度為2個位,包含應答間隙(ack slot)和應答界定符(ack delimiter)。在應答場里,發送站發送兩個“隱性”位。當接收器正確地接收到有效的報文,接收器就會在應答間隙(ack slot)期間(發送ack信號)向發送器發送一“顯性”的位以示應答。如圖2 (canscope測試的ack段波形圖)所示:
應答間隙:所有接收到匹配crc序列(crc sequence)的節點會在應答間隙(ack slot)期間用一“顯性”的位寫入發送器的“隱性”位來作出回答,由于can總線線與的原理,只要總線上有一個節點正確接收到數據,則ack slot就會被填入顯性電平。
ack界定符:ack界定符是ack場的第二個位,并且是一個必須為“隱性”的位。因此,應答間隙(ack slot)被兩個“隱性”的位所包圍,也就是crc界定符(crc delimiter)和ack界定符(ack delimiter)。
當一個接收節點接收的幀起始到crc段之間的內容沒發生錯誤時,它將在ack段發送一個顯性電平。 如圖3所示:
二、can總線ack電平偏高原因分析
以使用zlg致遠電子canscope測試某電車can網絡為例,20多個can節點采樣手牽手方式組網,線兩端各接120歐電阻,通訊能夠正常,但差分信號波形應答位電平偏高較多,如圖4所示,從canscope的波形圖中可以清楚的看到ack電平突增。 http://zmgj666.51dzw.com
can總線通信存在異常,ack應答有問題?——no
分析如下:
首先,我們看一款can收發器的典型內部結構圖,canh、canl連接總線。
總線顯性時(邏輯為0),收發器內部q1、q2導通,canh、canl之間產生壓差;隱性時(邏輯為1),q1、q2截止,canh、canl處于無源狀態,壓差為0。
按照標準,在總線輸出為顯性時,canh=3.5v,canl=1.5v,差分分電平:canh-canl=2v,總線網絡電阻為60歐,流經終端電阻的電流約為33ma(2v/60歐);
然而,can收發器在輸出顯性時,canh電平并不是標準的3.5v,而是5v(vcc)通過一個二極管降壓得到的,二極管的壓降由負載電流決定。圖6所示的vdh為canh對應的二極管壓降,vdl為canl對于的二極管壓降,流過的電流越大,二極管的壓降就越大。可知:
canh的電壓=5v-vdh canl的電壓=0v+vdl
在can總線網絡中,當一幀報文被各個節點接收時,在ack階段,多個can節點同時響應(都發顯性),流過終端電阻的電流被各個can節點均分,那么平均到每個節點的電流就減小了,如下圖所示,vdh、vdl的壓降也減小,相應canh-canl的差分電壓就增大了,即ack應答電平偏高。
三、ack的意義
當can總線上只有一個節點可收發數據時,總線上因無接收節點在ack slot時間內 發送“顯性”位填充,而始終保持隱性,發送者會檢測到這個隱性位而知道發送失敗,此條報文需要重發。因此這個節點會一直重發數據直到發送成功或發送被取消。http://zmgj666.51dzw.com
當總線上有多個can節點組網通信時,由于總線電平線與的原理,只要總線上有一個節點正確接收到數據,則ack slot就會被填入顯性電平(此時認為數據幀發送成功), 那么,接收錯誤的節點如何來告知發送者此次發送不成功呢?這就要用到can的錯誤幀,當一個接收節點收到錯誤數據時,它立即廣播發送一個錯誤幀,其它的節點和發送者也都會收到這個錯誤幀而丟掉此次報文,發送節點重新發送,這才是ack的意義。
來源:電子產品世界
上一篇:國內缺乏完整的教育培訓體制
下一篇:HTC新旗艦U11