新聞中心

CAN總線工作原理

作者: 時間:2016-12-12 來源:網(wǎng)絡(luò) 收藏
CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡稱。CAN總線有兩條信號線構(gòu)成,分別是CANL和CANH。相比于RS485總線構(gòu)成的網(wǎng)絡(luò),CAN總線構(gòu)成的網(wǎng)絡(luò)更有優(yōu)勢。

CAN的報文格式
在總線中傳送的報文,每幀由7部分組成。CAN協(xié)議支持兩種報文格式,其唯一的不同是標識符(ID)長度不同,標準格式為11位,擴展格式為29位。
在標準格式中,報文的起始位稱為幀起始(SOF),然后是由11位標識符和遠程發(fā)送請求位 (RTR)組成的仲裁場。RTR位標明是數(shù)據(jù)幀還是請求幀,在請求幀中沒有數(shù)據(jù)字節(jié)。
控制場包括標識符擴展位(IDE),指出是標準格式還是擴展格式。它還包括一個保留位 (ro),為將來擴展使用。它的最后四個位用來指明數(shù)據(jù)場中數(shù)據(jù)的長度(DLC)。數(shù)據(jù)場范圍為0~8個字節(jié),其后有一個檢測數(shù)據(jù)錯誤的循環(huán)冗余檢查(CRC)。
應(yīng)答場(ACK)包括應(yīng)答位和應(yīng)答分隔符。發(fā)送站發(fā)送的這兩位均為隱性電平(邏輯1),這時正確接收報文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò)中至少有一個站能正確接收到報文。
報文的尾部由幀結(jié)束標出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進行總線存取,總線將處于空閑狀態(tài)。

本文引用地址:http://m.butianyuan.cn/article/201612/328785.htm

如上圖所示,幀格式包括擴展幀和標準幀兩種。幀類型包括數(shù)據(jù)幀和遠程幀。數(shù)據(jù)部分最大長度共8個字節(jié)。在編程時,如下的數(shù)據(jù)結(jié)構(gòu)可以用來描述一個CAN消息:

  1. typedefstruct
  2. {
  3. uint32_tid;/**<29bitidentifier,itdependon"format"value
  4. -ifformat=STD_ID_FORMAT,idshouldbe11bitidentifier
  5. -ifformat=EXT_ID_FORMAT,idshouldbe29bitidentifier
  6. */
  7. uint8_tdataA[4];/**
  8. uint8_tdataB[4];/**
  9. uint8_tlen;/**
  10. -0000b-0111b:0-7bytes
  11. -1xxxb:8bytes
  12. */
  13. uint8_tformat;/**
  14. -STD_ID_FORMAT:StandardID-11bitformat
  15. -EXT_ID_FORMAT:ExtendedID-29bitformat
  16. */
  17. uint8_ttype;/**ission,shouldbe:
  18. -DATA_FRAME:thenumberofdatabytescalledoutbytheDLC
  19. fieldaresendfromtheCANxTDAandCANxTDBregisters
  20. -REMOTE_FRAME:RemoteFrameissent
  21. */
  22. }CAN_MSG_Type;

另外,還有如下圖所示的參數(shù)可以進行設(shè)置。如CAN總線的波特率,工作模式,過濾器里的內(nèi)容等。



關(guān)鍵詞: CAN總線工作原

評論


技術(shù)專區(qū)

關(guān)閉