本项目基于STM32F103微控制器实现CAN总线通信功能的测试与验证,涵盖硬件配置、固件开发及通信性能分析。
STM32F103之CAN通讯测试分别测试了CAN接收中断与非中断接收,在程序的注释部分介绍了CAN的基本工作原理。
CAN总线以“帧”(Frame)的形式进行通信,规定了五种类型的帧:数据帧、远程帧、错误帧、超载帧以及间隔帧。以下是关于这些不同类型中的一种——数据帧的具体描述:
1. 帧起始: 占一位, 采用显性信号表示逻辑0。
2. 仲裁段: 包括标识符位(ID)和远程发送请求位(RTR)。其中,标准帧的ID为11位,扩展帧的ID为29位。RTR位占一位,逻辑0代表数据帧,而逻辑1则指示该帧是远程帧。
3. 控制段: 标准帧控制段由扩展标识符(IDE)、保留位(R0),以及数据长度编码(DLC)组成;扩展帧的控制段包含两个保留位和DLC。DLC占四位,并定义了后续数据段的数据量。
4. 数据段:用于传输实际数据,最多可以携带8个字节的信息,具体数量由上述的DLC决定。
5. 循环校验段: 包括循环冗余检查(CRC)序列和界定符。CRC位用来确保信息传输的准确性,并且占15位;而界定符用于分隔不同的帧部分。
在CAN协议中, 标识符(ID)决定了数据包的优先级,同时也影响了节点是否接收该标识符的数据。