本项目基于STM32微控制器实现CAN总线通信功能,旨在通过高效可靠的串行通信协议,促进多个电子控制单元间的数据交换与互操作性。
AD信号及DI信号的采集与485接口的数据通过CAN总线发送出去的具体流程如下:
1. **485通讯和DI输入**:此过程包括了从485接口获取数据(包含开关量输入信号)以及将这些数据转换为可以传输的形式。通信波特率为9600,每秒大约产生30个数据帧。采集到的数据中仅需byte 4 和 byte 5 发送到CAN总线,并可以根据需要调整发送频率(例如一秒钟内发送20次)。固定格式如下:
- Byte 0: 帧头标志位为 0x5A
- Byte 1: 另一个帧头标志位,同样为 0x5A
- Byte 2: 数据类型标识符,值设为 0x15
- Byte 3: 指示数据量的字段,固定为 0x03
- Byte 4: 高8位的数据部分(范围:0x00~0xFF)
- Byte 5: 数据低8位的部分(同样在范围内:0x00~0xFF)
- Byte 6: 表示模块测量模式的字节
- Byte 7: 校验和,用于数据完整性校验
2. **AI采集**:模拟量的数据会通过CAN总线以两个报文的形式发送出去。
3. CAN接口配置:根据需求选择合适的波特率(100K, 125K或250K)。
4. 数据传输方式:
- 来自485口和DI采集的信号将使用一个CAN报文进行发送;
- AI采集的数据则通过两个独立的CAN报文来传递。