单片机外围模块漫谈之三,CAN总线
1980 年, Bosch 的工程师开始研究汽车上高速串行通信的问题,并在1986年发布了CAN (Controller Area Network) 总线。CAN以其多主,高速(最高1M bps) ,抗干扰的特性被广泛应用汽车及各种工业环境。在此我们主要介绍一下CAN总线的特点,帧类型,以及应用中的注意事项。 1. CAN总线特点 1.1 多主控制 跟我们常用的RS485只有一个主机,从机只能等待主机的轮询不同,在CAN总线中,当任意一个节点监测到总线空闲时,就可以立即启动信息的发送,也就是每一个节点都可以当主机。当然,这马上会引起我们的担心。如同一个家庭每个人都当家做主,那还不乱了套吗?不急,我们来看一下。这个问题是如何被巧妙地解决的。 物理层 ,CAN采用差分总线。单片机引脚的逻辑电平0,被CAN收发器( PHY) 转换为显性电平( Dominant), 逻辑电平1被转换为隐性电平( Reccesive) 。总线上执行的是 “ 线与 ” 逻辑,只要有一个节点输出显性电平,那么总线上就是显性电平。 仲裁( Arbitration) ,CAN 的发送总是以SOF (Start Of Frame) 起始,紧跟器后是ID。在发送ID的同时,节点监听总线上的显隐状态,当监听到的状态与自己发送的不一致时,此节点将停止发送,进入只收模式。如下图所示,每一帧消息所具有的ID决定了此消息的优先级