网络ISO七层协议中的位置
CAN 协议采用简化OSI参考模型,涵盖了 ISO 规定的 OSI基本参照模型中的传输层、数据链路层及物理层,OSI参考模型如下表所示。其应用层协议由其他高层协议实现,比如CANopen和DeviceNet等等。
CAN 协议中关于 ISO/OSI 基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义下图所示。
数据链路层分为 MAC 子层和 LLC 子层,MAC 子层是 CAN 协议的核心部分。数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程。具体地说,就是消息的帧化、仲裁、应答、错误的检测或报告。数据链路层的功能通常在CAN 控制器的硬件中执行。
在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地说,信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义。这些必须由用户根据系统需求自行确定。
数据帧格式
通信是通过以下 5 种类型的帧进行的。
? 数据帧
? 遥控帧
? 错误帧
? 过载帧
? 帧间隔
另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 个位的标识符(Identifier: 以下称 ID),扩展格式有 29 个位的 ID。
各种帧的用途如下表所示。
下面具体介绍数据帧格式,包括标准帧格式和拓展帧格式。
CAN 标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。
字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度,范围0-8。
字节2、3为报文识别码,11位有效。
字节4~1为数据帧的实际数据,远程帧时无效。
CAN 扩展帧信息为13个字节,包括两部分,信息和数据部分。前5个字节为信息部分。
字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF=1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC 表示在数据帧时实际的数据长度,范围0-8。
字节2~5为报文识别码,其高29位有效。
字节6~13数据帧的实际数据,远程帧时无效。