您的位置 首页 IC

CAN总线作业原理

CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称。CAN总线有两条信号线构成,分别是CANL和CANH。相比于RS485总线构成的网络,…

CAN是操控器局域网络(Controller Area Network, CAN)的简称。CAN总线有两条信号线构成,分别是CANL和CANH。比较于RS485总线构成的网络,CAN总线构成的网络更有优势。

CAN的报文格局
在总线中传送的报文,每帧由7部分组成。CAN协议支撑两种报文格局,其仅有的不同是标识符(ID)长度不同,规范格局为11位,扩展格局为29位。
在规范格局中,报文的开始位称为帧开始(SOF),然后是由11位标识符和长途发送恳求位 (RTR)组成的裁定场。RTR位标明是数据帧仍是恳求帧,在恳求帧中没有数据字节。
操控场包含标识符扩展位(IDE),指出是规范格局仍是扩展格局。它还包含一个保存位 (ro),为将来扩展运用。它的最终四个位用来指明数据场中数据的长度(DLC)。数据场规模为0~8个字节,这以后有一个检测数据过错的循环冗余查看(CRC)。
应对场(ACK)包含应对位和应对分隔符。发送站发送的这两位均为隐性电平(逻辑1),这时正确接纳报文的接纳站发送主控电平(逻辑0)掩盖它。用这种办法,发送站能够确保网络中至少有一个站能正确接纳到报文。
报文的尾部由帧完毕标出。在相邻的两条报文间有一很短的距离位,假如这时没有站进行总线存取,总线将处于闲暇状况。

如上图所示,帧格局包含扩展帧和规范帧两种。帧类型包含数据帧和长途帧。数据部分最大长度共8个字节。在编程时,如下的数据结构能够用来描绘一个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;

别的,还有如下图所示的参数能够进行设置。如CAN总线的波特率,作业形式,过滤器里的内容等。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/238074.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部