CAN总线基础
can总线协议:
涵盖了OSI规定的传输层、数据链路层、物理层
物理层:
决定了位编码方式(NRZ编码,6个位插入填充位),位时序(位时序、位的采样)、同步方式(根据同步段ss实现同步,并具有再同步功能);但具体的说:信号电平,通信速度,采样点,驱动器和总线的电气特点,连接器的形态都没有定义,需要用户自行确定;
传输层:
定义了再发送控制;
数据链路层:
数据链路层分LLC(逻辑链路控制 Logic Link control)子层 和MAC(媒介访问控制Media access control)子层;
LLC子层,执行接收消息选择(点到点、广播、组播)、过载通知(通知接收准备尚为完成)、错误恢复功能(再次发送);
MAC层: 进行数据帧化(4种帧类型),连接方式控制(竞争方式),消息仲裁(ID仲裁),故障扩散抑制(自动识别暂时错误和持续错误,排除故障节点),错误通知(CRC错误、填充位错误、位错误、ACK错误、格式错误),错误检测,应答方式(ACK, NACK),通信方式(半双工)等设置;
MAC子层是CAN协议的核心,数据链路层的功能是将物理层的信号组成有意义的消息,并提供传送错误控制等传输控制的流程。数据链路层的功能通常是在CAN控制器的硬件中执行;
帧的概念:
数据帧:用于发送单元想接收单元传送数据的帧;
遥控帧(请求帧): 用于接收单元向具有相同ID的发送单元请求数据的帧;
错误帧:用于当检测出错误时向其它单元通知错误的帧;
过载帧:用于接收单元通知 其尚未做好接收准备的帧;
帧间隔:用于将数据帧及遥控帧与前面的帧分离开来的帧;没有实际意义
数据帧和遥控帧 都有标准格式和扩展格式两种格式。标准格式有11个位的标识符(Identifier,以后称ID),扩展格式有29个位的ID;