各字段解释:
SOF
帧开始标志比特是一个显性比特(0),由一个或多个准备发送帧的节点传输。SOF标志着帧的开始(或仲裁发送帧的权利),并用于“硬同步”总线上的设备。只有在开始发送前总线上至少有11个处于隐性状态的连续比特时,发送方才能开始发送帧。
仲裁字段
仲裁字段包含12比特,前11比特被称为仲裁ID。该字段的主要功能是实现CAN的媒体接入控制机制,仲裁字段的第12比特标记为远程传输请求(RTR),如今基本不用。CAN-FD做为最新的CAN帧格式已经没有RTR字段。
控制字段
标准11比特帧的控制字段包含一个显性的IDE标记,在扩展帧(29比特ID字段)中该标记为隐性状态,还有一个保留比特和一个4比特的数据字段。数据字段决定了帧中数据或净荷部分的数据长度。ISO11898-1规定,数据字段能够是任何4比特值,但大于或等于8表示数据净荷长度是8。在CAN-FD规范中,数据字段大于8表示净荷大于8,但净荷最大为64字节(大于8时有对应关系)。网络
CRC
ISO11898标准帧的CRC字段长度是16比特,由15比特的CRC值和一个隐性CRC定界符比特组成。当CRC校验失败时,ACK产生做用
ACK
确认字段是总线上的全部接收方用来向发送方发送信号确认CRC值匹配且正确接收到了整个帧。若是任何节点正确的收到了帧且不存在任何错误,发送方会将该比特设置成显性比特,表明它已正确发送了报文。若是接收方检测到问题,将用一个错误帧覆盖ACK比特,用以通知给全部问题相关方。
帧结束标识符
连续7个隐性比特表示帧结束架构
CAN用一种巧妙的方法容许设备可以同时开始传输数据而不产生冲突,规定具备最高优先级的报文的设备可以持续传输,而较低优先级的报文组队不过退避。
该方法依赖于仲裁字段以及总线上的全部设备的数据传输都由总线控制这一事实。任什么时候候总线被检测到空闲时,设备找发送帧数据前会发送一个显性比特的帧起始标识符(SOF)。该显性比特供总线上全部设备来同步时钟。所以,若是多台设备检测到总线空闲并试图发送SOF时,他们能检测到其它设备的比特,并根据从总线收到的第一个SOF进行同步。
一旦“硬同步”完成, 任何但愿在该帧时间内发送帧的设备将开始以每次发送1比特的方法发送11比特的仲裁ID。总线配置成“逻辑与”操做,即便只有一台设备发送了一个显性比特(0),总线也会变成0值。在此种状况下,发送显性比特的设备继续仲裁,而发送隐性比特的设备将“退出”并准备随后发送帧。因此ID较小者,仲裁时会优先胜出,每次竞争时高优先级的报文可以优先发送。
CAN仲裁机制被称为非破坏性的机制,由于总会有一个报文会胜出将帧发送出去。可是,这一点也要求设备可以同步并几乎同时将仲裁ID的比特发送出去才能发生。因此总线要求长度较短且传输速度较慢。(500K/s的总线布线最大长度40M,支节点0.3M,最多30个节点)spa
LIN的物理层使用基于汽车电源工做的单线,一般12V。容许在7V至18V的范围内波动。LIN采用主从架构的总线拓扑。全部LIN节点共享同一物理媒介,其中一个节点指定为主机,而其余最多16个节点做为从节点。最大网络长度40M。blog
Break
LIN 数据帧开始发送前,主机会发送13个显性比特,用于通知其它节点即将有数据发送
SYNC
SYNC符号由主节点发送,比特序0,1,0,1,0,1,0,1(0x55)组成。使从节点与主机同步并准备好开始接收ID
ID
ID字节由6比特的ID值以及末端用于错误检测的2个校验比特组成。因此惟一ID的数量限制在了64个
净荷
爆头始终由主节点发送,而净荷部分由数据的预期源节点根据帧DI发送。
校验和
简单的8比特校验和用于检测错误同步
LIN依赖与由主节点控制的定时触发的报文系统。只有主机才能发起帧在总线上的传输,所以不会产生冲突。
扩展