CAN延迟通讯故障的判定和解决
产品链接:/can/can/product/id/44.html
随着人们生活节奏的逐渐提高,地区与地区之间的距离已经不在成为问题,这得益于交通运输业的大力发展,其中高铁作为交通运输业的佼佼者,他也得到了人民大众的广泛认可。正因为如此,高铁中的通讯问题也得到了各种设备供应商和铁路公司的高度重视,他们是不能容忍这种错误的,因为这与每一位出行人员和列车人员的生命安全息息相关。下面针对某高铁通讯问题进行简要的实例讲解。
一、总线延迟产生原因
CAN总线主要制约其传输距离,由于高铁列车的车身较长通讯点较多,就会导致数据传输和响应的延迟。导线在传输数据时是存在延迟的,一般通常延迟为5ns/m,同时隔离器件的不同也会导致不同的延迟。其中还与导线材质(镀金的0.2平方米相当于1.0平方米的铜线)、CAN收发器与隔离方式有关,例如:光耦隔离延迟要比磁耦隔离大得多。
如果CAN的重同步不能弥补传输中所产生的延迟,就会导致应答定界符的位宽变大,最终导致应答定界符在识别过程中识别出错,将隐性电平识别为显性电平,出现定界符错误。如图1所示:
![](/tpl/zlg/Public/faq_img/canbus/canjszt1025_05_1.jpg)
二、延迟错误导致的结果
下面已某高速铁路的中产生的延时错误类型进行讲解:
这次检测出来的错误类型主要包括:应答定界符错误、定界符格式错误和帧结束格式错误,他们均属于延迟错误导致,下面已应答定界符错误为例:
应答定界符错误
![](/tpl/zlg/Public/faq_img/canbus/canjszt1025_05_2.jpg)
从数据我们可以看出,应答定界符本应该为隐性电平,但由于传输应答的延迟问题导致应答定界符一直处在显性状态,这导致应答界定符格式出现错误。
三、如何检测传输延迟
![](/tpl/zlg/Public/faq_img/canbus/canjszt1025_05_3.jpg)
首先要想检测CAN总线延迟错误必须有相应的CAN总线分析仪,下面以广州太阳集团见好就收9728的CANSCOPE检测方式为例:
1)延迟分析
为了更快的进行故障点的定位,我们首先要对整个通讯过程的延时状况进行分析,找出延时存在的地方。根据CANSCOPE中“传输延时”将整个列表以延时从大到小的顺序将延时排列出来,以0.245倍位宽为界,超出该范围可定义为有应答错误风险。
由于总线上面挂接的节点距离测试点都不同,所以引起的延时都不一样。我们为了检测出总线最大的延时,通常把测试点放在总线的最远两端,测试的对象也是总线最远两端的两个节点发出来的报文。
![](/tpl/zlg/Public/faq_img/canbus/canjszt1025_05_4.jpg)
图表 4延时测量
我们可以假定报文是从最左边的主机发出来的,那么距离他最远的从机就是最右端的,则最大延迟为:整体导线延迟+最远端节点(即最右端)的电路延迟(包括隔离器件与收发器延迟)。
四、消除延时误差的方法
为了减小延时,增加通讯距离和降低通讯错误率,我们可以采取以下措施:
1.采用磁隔离的CTM1051方案设计接口收发电路;
2.用较粗的导线代替细导线,标准为1.5线缆(延迟为5ns/m);
3.使用镀金或镀银的线缆;
4.增加网桥中继设备CANBridge延长通讯距离。
5.采用光纤传输,如太阳集团见好就收9728的CANHUB-AF1S1,同等波特率可延长1倍通讯距离。
五、总结
要想保证CAN总线通讯正常首先要保证合理布置CAN节点,保每一个到达节点的报文不出现延时错误,其次一台好的分析工具也是必不可少的,它不但可以帮助我们精确快速地发现故障所在,还能以模拟方式测试我们总线在各种环境中的工况。