CAN总线缺少终端电阻现象解析
在进行CAN总线通信前,应保证正确的总线配置,比如终端电阻。它是影响总线通信的重要组件,下面我们不考虑信号的完整性,只从信号幅度和时间常数方面分析不加终端电阻时的影响。
终端电阻添加要求
根据ISO11898-2对终端电阻的取值规定,必须在总线的首尾两端各挂一个120Ω的终端电阻,即总线上加60Ω的终端电阻,而中间节点则不需要挂终端电阻,如图1所示。
图1 终端电阻
不加终端电阻时的影响
如图2所示,假如我们按照ISO11898标准要求,使用CANScope测试时,加上60Ω的终端电阻,然后以250Kbps的波特率自发自收数据,可以看到报文可以正常发送,且关联的波形也正常。
图2 加终端电阻CANScope自发自收现象
假如CANScope在不加终端电阻的时候,以250Kbps的波特率自发自收数据,如图3所示,发送的数据都是帧ID错误,且关联的波形也出现异常。
图3 未加终端电阻CANScope自发自收现象
对于报文数据,从关联的波形数据可以看到,上升沿没有任何问题,但是下降沿相对于加终端电阻的波形缓慢很多,一直未达到隐性状态,这些是为什么呢?下面我们对其进行一一的解析。
1、为什么影响下降沿?
众所周知,CAN总线的传输方式是差分传输方式,而总线电平的判断,就是CAN收发器根据CANH和CANL线缆之间的差分电压(CANH-CANL)来判断的,总线上传输的电平信号只有两种可能,一是显性电平,二是隐性电平,其中显性电平代表逻辑0,隐性电平代表逻辑1。
首先我们看一下CAN收发器的内部结构,如图4所示:
图4 CAN收发器内部结构
当总线电平为显性时,收发器内部的Q1、Q2处于导通状态,此时CANH、CANL之间会产生压差;当总线电平为隐性时,收发器内部的Q1、Q2处于截止状态,此时CANH、CANL处于无源状态,压差为0。所以当隐性状态变为显性状态(上升沿)时,主要由收发器中的驱动模块作用,当显性状态变为隐性状态(下降沿)时,是通过整条总线与终端电阻放电产生的,所以总线的终端电阻是影响下降沿缓慢程度的主要物理因素。
2、下降沿为什么迟迟达不到隐性状态?
前面提到,下降沿缓慢程度,受终端电阻的影响,是如何影响的,那这就和时间常数τ有关系了。我们知道,时间常数可由电容(C)和负载电阻(R)确定,即τ=RC,所以当总线上无终端电阻时,CANH和CANL之间的阻值很大,例如CANScope,在未加终端电阻时,测量的电阻值,约91KΩ左右,所以根据时间常数的公式,τ值会很大,所以无法快速消耗掉总线上寄生电容上的电能,从而导致下降沿缓慢,迟迟达不到隐性状态。
图5 RC电路
如图6所示,是图3对应的示波器截图,从图中看出,当光标区域的ΔX为一个位,即4us时,差分信号在光标B处的电压YB为3.341V,远高于CAN规范中的隐性电平判断上限值0.5V,显性电平判断下限值0.9V,所以此时的位被判断为显性位,而又由于时间常数远大于250Kbps波特率下的位时间,所以会有超过5个位被判断为显性位,从而破坏了CAN规范中的填充规则,出现了帧ID填充错误。
图6 250Kbps波特率波形细节
为了加深对错误帧产生原因的了解,我们举一个反例,看位时间远大于无终端电阻情况下的时间常数时,会出现什么样的现象。
下面以CANScope不加终端电阻,波特率为10Kbps进行自发自收为例,如图7所示,CANScope报文列表中,无错误帧产生。通过观察同步的示波器截图,如图8所示,光标区域ΔX为45.6us时,差分信号在光标B处的电压YB为0.4813V,又由于CANScope默认的采样点是75%在光标区域之后,所以此时可正常判断该位为隐性,从而不会导致错误帧的产生。
图7 10Kbps波特率发送报文
图8 10Kbps波特率波形细节
终端电阻添加的方法
在使用CANScope作为测量设备时,除了用户自己外部添加终端电阻的方法外,还可以通过软件配置给被测节点或网络添加终端电阻,其添加的方法,会根据不同的PORT头配件,选择不同的配置方法。当使用标配件P8251T、P1040T时,勾选图9中的启用终端电阻,即可在总线上添加120Ω的终端电阻;当选配件使用StressZ时,如图10中的RHL,可根据需要设置对应的终端电阻。
图9 标配件P8251T、P1040T终端电阻设置
图10 选配件StressZ终端电阻设置