车载CAN (Controller Area Network) 是一种广泛应用于汽车和其他工业领域的通信网络,被设计来允许微控制器及设备之间无主机的通信。它最初由博世公司(Bosch)在1980年代开发。
CAN帧结构可以分为几种不同类型,但是最常见的两种帧格式是标准格式(2.0A)和扩展格式(2.0B)。
标准CAN 2.0A帧格式
- 起始位(Start of Frame, SOF):1位,表示帧的开始。
- 仲裁字段(Arbitration Field):共11位,包括一个11位的标识符和一个替代位(RTR,Remote Transmission Request)。低ID数值有较高的优先级。
- 控制字段(Control Field):6位,包括数据长度代码(DLC)等信息,说明数据字段的长度。
- 数据字段(Data Field):0到8字节,可变长度,用于传输数据。
- CRC校验字段(CRC Field):15位的循环冗余校验码和一个CRC分隔位。
- 确认字段(Acknowledge Field):包含2位,第一位是ACK槽,第二位是ACK分隔符。
- 结束位(End of Frame, EOF):7位固定格式,表示帧的结束。
- 帧间隔(Interframe Space, IFS):帧与帧之间的间隔时间,确保帧的独立。
扩展CAN 2.0B帧格式
- 起始位(SOF):1位,表示帧的开始。
- 仲裁字段(Arbitration Field):共29位,包括一个11位基本标识符、18位的扩展标识符和一个RTR位。
- 控制字段(Control Field):同标准格式,通常包含6位,包括4位的DLC等信息。
- 数据字段(Data Field):0到8字节,可变长度。
- CRC校验字段(CRC Field):同标准格式,一般为15位CRC加上1位CRC分隔符。
- 确认字段(Acknowledge Field):同标准格式,包含ACK槽和ACK分隔符。
- 结束位(EOF):7位。
- 帧间隔(IFS):帧间隔时间。
除了数据帧外,CAN通信还可能使用其他类型的帧,如远程帧(Remote Frame)、错误帧(Error Frame)、过载帧(Overload Frame)。每种帧类型都有其独特的用途和结构,以满足网络通信的多样化需求。