CAN 总线物理层介绍
内容来自于江协科技;
CAN总线特性
CAN总线特性
- 两根通信线(CAN_H、CAN_L),线路少(一般为双绞线)
- 差分信号通信,抗干扰能力强(若是同时受到电磁干扰,那么变化是一样的所以抗干扰强)
- 高速CAN(ISO11898):125k~1Mbps, <40m(传输速度快,距离短)
- 低速CAN(ISO11519):10k~125kbps, <1km
- 异步,无需时钟线,通信速率由设备各自约定(汽车当中CAN一般有500K 250K等)
- 半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序
- 11位/29位报文ID,用于区分消息功能,同时决定优先级
- 可配置1~8字节的有效载荷
- 可实现广播式和请求式两种传输方式
- 应答、CRC校验、位填充、位同步、错误处理等特性
CAN应用
CAN主要是多个主控通信(汽车当中多个Ecu相互通信)
CAN硬件电路
- 每个设备通过CAN收发器挂载在CAN总线网络上
- CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连
- 高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Ω的终端电阻 低速CAN使用开环网络,CAN_H和CAN_L其中一端添加2.2kΩ的终端电阻
- CAN收发器的主要功能: 电平转换,输出驱动,输入采样
这是高速CAN的电路,这两段要分别加入120欧姆的电阻 其作用为:
- 防止回波反射:尤其是高频信号远距离传输的时候,(信号波会在线路终端反射,进而干扰原始信号)可能电平信号不稳定会出现波动不像那种直上直下的电平信号。(就理解成电阻增大,电流就减小,压变就不明显了)
- 当没有Ecu操作的时候将两个线的电压"收紧",(收紧的意思 使电压一致 就是默认显示隐形电平 逻辑1)并且这两个电阻的阻值不大,所以这收紧的速度是很快的,使得CAN总线支持的最大速率也比较快。 当某个Ecu想发生0信号,它就会把两个线电压拉开 变成显性电平 逻辑0
这低速CAN
CAN电平标准
这里低速CAN的电压差都很大,因为电路传输当中有压降,所以把1与0的电压差加大了,这样如果有压降影响也可以明显看出来1与0的差异 这样就可以远距离传输了。
高速CAN中回归隐形电平速度快,传输速度就会快。
低速CAN中回归隐形电平速度慢,传输速度就会慢。
CAN收发器(高速CAN)
下面是接收,上面发送,
RXD接收: 收发器一直监控CANH和CANL的电压,当有电压差时就输出1,没有电压差就输出0;Vcc 以及GND 就类似于非门,有电压差时收到的就是 0 显性电平,无电压差就是 1 隐性电平。输出到RXD引脚;
即CAN总线有电压差时,输出RXD引脚为低电平0,显性电平。
即CAN总线没有电压差时,输出RXD引脚为低电平1,隐性电平。
TXD 发送: 当发送1隐性电平时,Vcc3 与GND会将线路断开,不对总线操作即保持不变, CANH与CANL的中间两个电阻(中拉电阻),通过这个电阻可以把CANH和CANL都拉至0.5倍的Vcc电平(2.5V保持同一水平)。
TXD 发送: 当发送0 显性电平时, Vcc3 与GND将场效应管导通 上面就会把CANH电压拉高,下面就会把CANL电压拉低 形成电压差 使总线显示显性电平 逻辑0
Vcc 200uA 这个是上拉电阻,如果TXD悬空了,那么就会一直发1 一直为隐性电平
TXD DOMINANT TIEM OUT: 这是TXD显性电平计数器 如果TXD故障一直发显性电平0
那么整个总线都一直显示显性电平 并没有设备可以阻止 所以这个是一个保险 若是一直发0,就会自动释放总线 发隐性电平,防止总线瘫痪。