CAN总线笔记(有关报文基础知识的理解)

答辩结束了,认真看了CAN总线的基础,写了第一个博客。

(一)基本概念
1.CAN总线是双绞线,分为CAN_HIGH和CAN_LOW两根线双绞线。
2.具体功能就是支持CAN总线共能的一个或者多个设备通过两个条CAN总线进行数据通讯。
3.设备在can总线上通讯没有主从关系,以广播的形式进行。所有节点都可以接收到某一设备发出的报文(一串二进制数据),接受到数据的设备通过报文来识别是不是需要自己 处理的。
(二)显性和隐性
can总线中一个非常重要的概念就是显性(0)和隐性(1),只要有一个设备有显性的请求,总线就是显性,只有总线上设备全部隐性时才呈隐性。形成显性和隐性的原因是电压差,来自CAN_HIGH和CAN_LOW这两根线的电压差,隐性状态下,两根线都是2.5V,当有信号改变的时候,形成显性状态,在显性状态下一个3.5V另一个1.5V。形成方式如图:
形成显性和隐性的原因
(二)报文
报文是can总线上设备之间互相交流的语言,他们有固定的沟通规则,也就是can总线上发送的数据串。报文的格式有两种,一种是标准can,一种扩展can,两种形式的can总线,主要不同在标识符(下边说,重点就说标准can)。报文包含四种帧,数据帧、远程帧、错误帧和过载帧(实际上就是根据一定规则建立的二进制串)。

  1. 数据帧
    数据帧的内容由七个部分组成,(1)一个起始位(一定显性)。(2)11位仲裁领域(也就是标识符,扩展can有29位仲裁域)和1位RTR,大概理解就是谁的仲裁域越小谁就先用总线(标准can优先级永远大于扩展can,主要因为RTR位)。1位RTR位,这一位标准can为显性,扩展can为隐性,所以标准can的优先级永远大于扩展can。(3)6位控制域,一位IDE(标准can为显性,扩展can为隐性),一位预留位,后4位代表代码长度。(4)0-8个字节的数据域,就是设备想要发送的内容。(5)CRC校验域,15位CRC值和1位CRC界定符,会自动根据发送内容生成一个CRC值,用于校验数据是否在传输过程中发生错误(下一篇博客我会做一篇手算CRC的过程,一个小算法)(6)ACK(应答域),包含1位ACK槽和1位应答界定符,发送端ACK是两个隐性位,接收端在接受到数据后,在ACK槽发送显性位。(7)帧结束,表示该帧结束,由七个隐性位构成。标准can数据帧
    每一个帧里边这域多少位特别重要,一定要记准。

  2. 错误帧
    错误帧,包含6位错误标志和8位隐性错误界定符。(提错误帧,要提一个位填充规则,就是连续五个相同极性之后会出现一个位填充与前边五个极性相反。)
    错误形式也分两种,主动错误和被动错误,主动错误标志由6个显性位组成,被动错误标志由6个隐形位组成。根据位填充规则,明显是错误标志破坏了位填充规则。
    而错误界定符,在错误标志发送之后发送8个隐形位。(错误监测一定相对也很重要)
    错误帧

  3. 远程帧
    这个帧就是向总线上的设备提一个需求,能做得就给他返回一个数据帧。远程帧RTR是隐性的其他的都和数据帧相同。

  4. 过载帧
    过载帧是用于接收单元通知其尚未完成接收准备的帧。
    这一帧基本用不上,can总线设备会处理好需求。

最后还有一个帧之间的间隔,叫帧间隔。有三个隐形位构成。用于将上述几个帧分隔开。
下一篇博客是CRC手推的内容。

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
车载CAN总线是一种用于汽车电子系统之间进行通信的总线协议。它被广泛应用于现代汽车中,可以实现多个电子控制单元(ECU)之间的数据交换和通信。CAN总线具有以下基础知识点: 1. CAN是什么?CAN是“控制器局域网络”的缩写,是一种串行通信协议,用于在车辆电子系统中传输数据。 2. CAN的技术原理:CAN总线采用差分信号传输和冲突检测机制,能够实现高速、可靠的数据传输。 3. CAN总线的特点:CAN总线具有高可靠性、抗干扰能力强、传输速率高等特点,适用于复杂的汽车电子系统环境。 4. CAN与其他通信方案的比较:相比于其他通信方案,如LIN总线和FlexRay总线,CAN总线具有成本低、可扩展性好等优势。 5. CAN总线的作用:CAN总线用于连接和管理车辆的各个电子控制单元,如发动机控制单元、制动系统控制单元等,实现数据交换和协同工作。 6. CAN的发展历史:CAN总线协议最早由德国Bosch公司在1983年提出,并在之后的几十年间得到了广泛应用和发展。 7. ISO/OSI基本参照模型与CAN协议:CAN总线协议按照ISO/OSI参考模型进行了分层设计,其中数据链路层和物理层对应了CAN总线的通信规范和电气特性。 8. CAN总线协议标准:CAN总线协议有多个版本和标准,如CAN 2.0A、CAN 2.0B等,每个版本都定义了不同的数据帧格式和通信规则。 9. CAN总线协议数据链路层中的帧:CAN总线的数据链路层使用了两种帧格式,即标准数据帧和扩展数据帧,用于在CAN总线上传输数据和控制信息。 如果您还有其他相关问题,请告诉我。 相关问题: 1. 什么是CAN总线的差分信号传输? 2. CAN总线如何实现冲突检测? 3. 为什么CAN总线适用于汽车电子系统?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值