物理层
物理构成
communication
CAN的传输是通过事件驱动的方式,采用去中心化,分布式原则,即在CAN总线休闲空间时,任意节点均有资格发送消息,进行竞争总裁;同时消息在传送过程中采取广播的形式,即网络中每个节点均有资格接受到信息,至于是否接受信息,依据ID号,由接受节点判断是否过滤。
帧格式
下面简单介绍下帧格式。在CAN总线上,信息传输是一帧一帧的传送,也可以称作为数据包。帧依据功能不同,分为数据帧,远程帧,错误帧等。
数据帧
标志位 | 位数/bit | 功能 |
---|---|---|
sof | 1 | 发送一个显性位边沿,网络节点以此开始同步 |
id | 11 | 定义消息优先级,总线竞争力,ID号越小优先级越高 |
RTR | 1 | 显性表示数据帧;隐性表示远程帧 |
r | 1 | 保留位 |
dlc | 4 | 表示数据场字节长度 |
crc | 16 | 有对应的校验算法,包含一位隐性界定符,对从sof到数据的所有数据进行校验 |
ack | 2 | 由接受方进行确认,收到消息给出一个显性位;同时发送方会监听此位是否显性,否则报错 |
IDE | 1 | 采用扩展帧还是标准帧,两者区别是ID号位数 |
EOF | 7 | 结束标志,包含7位隐性位 |
ITM | 3 | 帧间隔,必须等待帧间隔才能再次发送消息 |
远程帧 错误帧
总线同步
首先谈下为什么要同步,顾名思义,同步就是让发送节点准备好要发送数据了,接受节点准备好,要接受数据了,不会帧数据丢失。CAN总线同步没有单独的时钟信号,只能通过帧位来进行同步。首次同步由sof位发起;重同步的方法是,采取位填充机制,即每五个同极性的位后面会被插入一个反极性位,以确保接受节点采集到足够的边沿进行重同步,同时接收节点会对接受到的帧进行处理,剔除为同步插入的位。
以上为个人整理理解,如有错误和补充,请批评指正。