————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CAN信號表示

CAN總線采用不歸零碼位填充技術,也就是說CAN總線上的信號有兩種不同的信號狀態,分別是顯性的(Dominant)邏輯0和隱形的(recessive)邏輯1,信號每一次傳輸完后不需要回傳到邏輯0(顯性)的電平,
顯性與隱性電平的解釋:
CAN的資料總線有兩條,一條是黃色的CAN_High,一條是綠色的CAN_Low,
當沒有資料發送時,兩條線的電平一樣都為2.5V,稱為靜電平,也就是隱性電平,當有信號發送時,CAN_High的電平升高1V,即3.5V,CAN_Low的電平降低1V,即1.5V,
CAN_H-CAN_L < 0.5V 時候為隱性的,邏輯信號表現為"邏輯1"- 高電平,
CAN_H-CAN_L > 0.9V 時候為顯性的,邏輯信號表現為"邏輯0"- 低電平,
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CAN的報文格式
CAN的通信幀分成五種,分別為資料幀、遠程幀、錯誤幀、過載幀、幀間隔,
資料幀根據仲裁段長度不同分為標準幀(2.0A)和擴展幀(2.0B),

幀起始(SOF) + 仲裁場(ID+RTR) + 控制場 (IDE+r0+DLC) + 資料段(DATA) + CRC段(CRC+del) + ACK段(ACK+del ) + 幀結束(EOF)
幀起始:報文的起始位,由1個顯性位組成,總線空閑時,發送節點發送幀起始,其他接收節點同步于該幀起始位,
仲裁場:由 11位識別符號(ID) + 1位遠程發送請求位(RTR)組成的,RTR位標明是資料幀還是請求幀,在請求幀中沒有資料位元組,
控制場:由 1個識別符號擴展位(IDE) + 1個保留位 (ro) + 4位資料長度(DLC)組成的,識別符號擴展位指出是標準幀還是擴展幀,保留位為將來擴展使用,四位的資料長度位用來指明資料場中資料的長度,資料場范圍為0~8個位元組,
資料段:由 最高8位元組(64bit )組成的,長度取決于控制場的DLC位,
CRC段:由 15位的CRC校驗碼 + 1位CRC界定符(del) 組成的,在CRC校驗碼之后有一個CRC界定符,它為隱性位,主要作用是把CRC校驗碼與后面的ACK段隔開,
ACK段:由 確認位(ACK) + 1位ACK界定符(del) 組成的,ACK在發送節點發送時,為隱性位,當接收節點正確接收到報文時,對其用顯性位覆寫,DEL界定符同樣為隱性位,用于把ACK段與后面的幀結束隔開,
幀結束:由7個連續的隱形位組成,在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進行總線存取,總線將處于空閑狀態,

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CAN的報文規則
1、多路載波偵聽,網路上所有節點以多點接入的方式連接在同一根總線上,且發送資料是廣播式,網路上各個節點在發送資料前都要檢測總線上是否有資料傳輸:若網路上有資料,暫時不發送資料,待網路空閑時再發;若網路上無資料,立即發送準備好的資料,
2、沖突檢測,節點在發送資料時,要不停的檢測發送的資料,確定是否與其他節點資料發送沖突,如果有沖突,則保證優先級高的報文先發送,
3、非破壞性仲裁機制,通過ID仲裁,ID數值越小,報文優先級越高,由于資料幀的RTR位為顯性電平,遠程幀為隱性電平,所以幀格式和幀ID相同的情況下,資料幀優先于遠程幀;由于標準幀的IDE位為顯性電平,擴展幀的IDE位為隱形電平,對于前11位ID相同的標準幀和擴展幀,標準幀優先級比擴展幀高,

4、發送低優先級報文的節點退出仲裁后,在下次總線空閑時自動重發報文,

5、高優先級的報文不能中斷低優先級報文的發送,

6、報文接收過濾:CAN控制器大多具有根據ID過濾報文的功能,即只接收某些ID的報文,節點對接收到的報文進行過濾:比較訊息ID與選擇器(Accepter)中和接受過濾相關位是否相同,如果相同,接收;如果不相同,則過濾,

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CAN的錯誤幀
CAN-bus的錯誤型別共有5種:CRC錯誤、格式錯誤、應答錯誤、位發送錯誤、位填充錯誤,
- CRC錯誤:發送節點計算的CRC校驗值與接收到的CRC不同,
- 格式錯誤:傳輸的資料幀格式與任何一種合法的幀格式不符,
- 應答錯誤:發送節點在應答階段沒有收到應答信號,
- 位發送錯誤:發送節點在發送時發現總線電平與發送電平不同,
- 位填充錯誤,通信線纜上傳輸的信號不符合位填充規則,
當出現5種錯誤型別之一時,發送或接收節點將發送錯誤幀,
為防止自身由于某些原因導致無法正常接收的節點一直發送錯誤幀,干擾其他節點通信,CAN-bus規定了節點的3種狀態及其行為

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CAN的過載幀與幀間隔
...
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
CAN的同步
...
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/522940.html
標籤:其他
上一篇:CISCO設備資訊泄漏漏洞案例2
下一篇:年近三十,真的卷不動了
