STM32 的 can 现场总线实验心得
最近在搞 stm32 实验板的 can 现场总线实验,之前只是搞过 STC51 的串口通信,相比之下,
发觉 can 总线都挺复杂的。开始时,知道自己是新手,只知道 can 总线跟串行通信,485 通
信,I2C 通信一样都是用来传输数据通信的,对其工作原理一窍不通,还是从基础开始看书
看资料,先了解它的基本原理吧。
原来 can 总线有以下特点:
主要特点
支持CAN协议2.0A和2.0B主动模式
波特率最高可达1兆位/秒
支持时间触发通信功能
发送
3个发送邮箱
发送报文的优先级特性可软件配置
记录发送SOF时刻的时间戳
接收
3级深度的2个接收FIFO
14个位宽可变的过滤器组-由整个CAN共享
标识符列表
FIFO溢出处理方式可配置
记录接收SOF时刻的时间戳
可支持时间触发通信模式
禁止自动重传模式
16位自由运行定时器
定时器分辨率可配置
可在最后2个数据字节发送时间戳
管理
中断可屏蔽
邮箱占用单独 1 块地址空间,便于提高软件效率
看完这些特点后,疑问一个一个地出现,
1. 什么是时间触发功能?
2. 发送邮箱是什么来的?
3. 报文是什么来的?
4. 什么叫时间戳?
5. 什么叫接收 FIFO?
6. 什么叫过滤器?
好了,带着疑问往下看,看完一遍后,
报文:
报文包含了将要发送的完整的数据信息