博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CAN协议,系统结构和帧结构
阅读量:6918 次
发布时间:2019-06-27

本文共 712 字,大约阅读时间需要 2 分钟。

CAN:Controller Area Network,控制器局域网

是一种能有效支持分布式控制和实时控制的串行通讯网络。

CAN-bus: Controller Area Network-bus,控制器局域网总线技术

 

CAN总线系统结构

  1. CAN 控制器

接收控制单元中微处理器发出的数据,处理数据并传给CAN收发器

  1. CAN收发器

将数据传到总线 or 从总线接收数据给控制器

  1. CAN数据传递终端

避免数据传输终了反射回来

  1. CAN数据总线

    传输数据的数据线,两根 CAN-high and CAN-low,差分信号

CAN总线系统的数据传输

 

CAN总线节点上的节点发送数据是以报文的形式广播给网络中所有节点。收发器接收到数据就把数据传送给控制器,再由控制器检查判断是不是所需数据。不是则忽略。

  • 网络上任何一个节点在任何时候都可以发送数据
  • 多个节点发送数据,优先级低主动退出发送
  • 短帧结构,每帧数据信息为0~8字节(具体用户定义),对数据编码而不是地址编码
  • CAN每帧都有CRC校验和其他检验措施,严重错误的情况下具有自动关闭输出的功能

 

CAN总线系统数据格式

CAN-bus通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔

五种类型。

  • 数据帧

    结构上由7个段组成,其中根据仲裁段ID码长度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)

帧起始、帧结束

仲裁段

显性隐性

总线仲裁

 

  • 从该分析过程得出结论是:帧ID值越小,优先级越高
  • 对于同为扩展格式数据帧、标准格式远程帧和扩展格式远程帧的情况同理。

    控制段

    数据段

    CRC段

    ACK段

     

    远程帧

    数据帧与远程帧的区别

     

    CAN-bus 错误类型

     

    过载帧

     

    帧间隔

     

 

转载地址:http://jexcl.baihongyu.com/

你可能感兴趣的文章
linux下的usb抓包方法【转】
查看>>
二叉搜索树转换成有序的双向链表
查看>>
内核定时器的使用(好几个例子add_timer)【转】
查看>>
linux中高端内存和低端内存的概念【转】
查看>>
软件整合--硬件整合--平台整合
查看>>
Android 将Activiyt作为Dialog弹出
查看>>
Android 抽屉类SlidingDrawer的使用
查看>>
Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
查看>>
node-webkit教程(14)禁用缓存
查看>>
maven中properties标签定义变量
查看>>
Linux下路由配置梳理
查看>>
9.2. frame
查看>>
sql获取每门课程成绩最好的学生信息
查看>>
VS输出窗口(output view)的小技巧--文件行号字符定位
查看>>
14.4. Example
查看>>
[UIView beginAnimations:context:]与[UIView animateWithDuration:animations:]值得注意的一个区别...
查看>>
U3D的飞船太空射击例子中,使用coroutine
查看>>
Alibaba Cloud MaxCompute vs. AWS Redshift vs. Azure SQL Data Warehouse
查看>>
52.2. group by
查看>>
浅谈数据库用户表结构设计,第三方登录
查看>>