![[STM32]CAN总线](http://pic.xiahunao.cn/yaotu/[STM32]CAN总线)
一CAN简介CANController Area Network控制器局域网总线是由博世 (Bosch) 在 1980开发的一种传输速度快、易扩展、可靠性高的串行通信总线 现在广泛用在汽车、工业控制、嵌入式设备。补充CAN 虽然是差分通信理论上不在乎两个设备各自 GND 是多少但现实工程里强烈建议把各个节点的 GND 连在一起。二CAN总线硬件电路2.1 CAN控制器设备中CAN控制器无法直接接到CAN总线需要CAN收发器接入CAN总线。CAN收发器主要实现电平转换输出驱动和输入采样。接线规则CAN控制器引出的TX和RX要与CAN收发器的引出TX和RX相连。CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连2.2 高速CAN高速CAN使用闭环总线网络在CAN_H 与 CAN_L有两个120Ω的终端电阻使CAN总线形成一个闭合的环路。终端电阻的作用防止回波反射防止波形振荡畸变尤其在高频信号和远距离传输。总线空闲的时候把 CAN_H、CAN_L 电压 “收紧”将两根线的电压拉到同一水平类比 I2C 上拉电阻。2.3 低速CAN低速CAN使用开环总线网络在CAN_H 与 CAN_L其中一端添加2.2KΩ的终端电阻。终端电阻的作用防止回波反射防止波形振荡畸变但是没有 “收紧电平” 的能力2.4CAN电平标准CAN采用差分信号即两线电压差(CAN_H -CAN_L)传输数据位电平定义高速CAN隐性电平CAN_H≈2.5VCAN_L≈2.5V压差≈0V总线空闲默认状态。显性电平CAN_H≈3.5VCAN_L≈1.5V压差≈2V。低速CAN:低速CAN传输距离长线路可能会有压降设计电压差更大1和0变化行程更长了隐性电平:电压差为-1.5V 时表示逻辑1;显性电平:电压差为3V 时表示逻辑0;高速低速CAN电平设计思路高速CAN总线闭环两线电压相同有利于快速恢复默认电平——传输速率快低速CAN总线开环两线电压差大恢复默认电平慢——传输速率慢注意显性和隐性表示的是总线状态实际电路是差分电平而时序图画法则是逻辑电平两者等效三.CAN收发器芯片引脚和引脚描述Vref:参考电平输出S:选择输入是高速模式或者静默模式输入部分总线CANH及CANL的电压差输出显性、隐性电平输出部分若TXD给1不会对总线进行任何操作总线呈现默认的隐性电平1若TXD悬空默认也是1若TXD给0则驱动器会吧CAN_H拉高CAN_L拉低输出显性电平0输出部分的保护功能如果 TXD 引脚被持续拉低一直输出显性 0则显性超时收发器会主动释放CAN总线。四.CAN物理层特性