1.什么是can
Can是控制器局域网的缩写,是一种串行通信,是国际上应用最广泛的现场总线之一, 现场总线是指以工厂内的测量和控制机器间的数字通讯为主的网络,也称现场网络。一条总线上可以挂多个主机进行通信,有较高的通信速率和较强的抗干扰能力.can在通信时,网络中的各个设备都可以工作在主机模式.
2.Can的主要特点
1. 支持can2.0A和2.0B主动模式(两种协议的区别在于,前者仅支持11位的标识符,后者不仅支持11位的标识符,而且支持29位的标识符)
2. 波特率最高可达到1M位每秒
3. 支持时间触发通信功能
4. 3个发送邮箱
5. 发送报文的优先级可软件配置
6. 3级深度的俩个接收fifo
7. 14个位宽可变的过滤器组
8. 标识符列表]
9. FIFO溢出处理方式可配置
10. 记录接收sof时刻的时间戳,并可在最后两个字节数据发送时间戳管理
11. 中断可屏蔽
12. 邮箱单独占用一块地址空间,提高软件效率
3.Can总线的拓扑结构
4.CAN的流程示意
5.can调试
5.1首先检查硬件,看CAN模块是否走通,CAN至少在5V以上电压工作。
5.2can发送数据
当不接can转换模块时, TX有波形,电压是4.75V,RX一直处于低电平状态,如下图:
连上CAN模块时,TX和RX都有波,波形相同。Can的H和L输出相反的差分信号,差分信号的电压是2.5V.(如果TX,RX接反,TX,RX的波形将和没接can转换模块时一样)
6.CAN接收数据
当CAN不发送只接收时,RX,TX均处于高电平状态.
Can使用的是中断的接收方式,调试的时候遇到的最大的问题是,不进接收中断,后来找到是中断向量表配置的问题,之前在调试串口的时候遇到了同样的问题,也是因为中断向量,往引以为戒.