CAN总线、汽车CAN总线系统设计中通信相关软件可靠性测试方法浅析
成都盘沣科技有限公司   2012-08-27 08:56:51 作者:SystemMaster 来源:成都盘沣科技有限公司 文字大小:[][][]

CAN总线系统设计中,通信的可靠性是最终的设计目的,通信可靠性分为硬件相关与软件相关。在硬件设计方面,我们可以参照ISO11898的标准来达到目标设计的要求,而在软件设计中,需要的是细节方面的处理来达到设计目的。接下来我们将探讨如何使我们的软件变得更可靠。

一、明确所需报文ID,设置滤波参数。

很多节点在运行中,并不需要CAN总线上传输的所有数据。所以在节点软件运行过程中,并不是有总线数据传入节点CAN控制器的寄存器后都需要去取数据,并判定是否是自己需要的数据。此时,最好的办法是利用好CAN控制器的验收滤波设置功能,根据验收滤波算法过滤掉这个节点不需要的报文。过滤掉不需要的报文后,由于只有自己需要的报文进入CAN的接收寄存器,此时需要节点主程序处理的数据也只有自己需要的数据,可以大大的减小程序在CAN总线数据处理上的开销,有利于让节点MCU有更多的“空闲”时间处理其他事物,提高节点运行的可靠性。

二、及时处理CAN控制器接收缓冲区内的数据。

CAN控制器都带有接收缓冲器,如不及时的将缓冲器内的数据取出,将会造成总线溢出错误,总线上的信息在缓冲器未清空时被丢失,造成通信的不可靠。所以及时处理CAN控制器缓冲器内的数据是通信可靠性的关键。另外可以选择具有2个或以上缓冲器的CAN控制器芯片或带这种多重接收缓冲功能CAN控制器的MCU

三、好好利用CAN控制器的错误寄存器、错误计数器信息。

CAN控制器的错误寄存器、错误计数器给了我们很多的总线错误状态信息,利用好这些寄存器、计数器,将会有利于我们解决CAN总线通信中的各种通信问题。不同的通信错误造成的原因有哪些,以此可以从这些原因着手去解决。而错误计数器则告知了我们总线错误的频繁程度等信息,有利于我们从另外的角度评估总线的可靠性。(所有这些信息可以考虑从串口进行打印输出;另外使用后记得清除这些计数器信息,以免造成节点通信故障)。

四、长期可靠性测试方法。

长期的可靠性测试方法需要利用多种不同的设备、仪器来完成。首先当然是示波器,示波器可以测试出通信波形是否符合通信要求,这个是通信可靠性测试的第一步,也是最基本的测试内容。其次我们需要用到逻辑分析仪(建议用带数据压缩功能,可以长时间存储数据的逻辑分析仪)来测试CAN数据发送周期的一致性、发送计数等(可以设定发送一帧数据到CAN控制器发送寄存器后变换MCUI/O的电平状态来观察CAN数据发送情况)。而利用如PFautoCAN汽车CAN总线仿真开发工具(注:该工具不仅限于汽车CAN总线开发,对常规的CAN网络开发一样非常有效)来进行总线数据的记录分析等,这些数据配合逻辑分析仪的数据进行发送数据可靠性的测试。

五、小细节:CAN总线通信都是广播类的通信,所有数据发出后,只要有一个节点回馈接收成功的标志,则该数据的发送节点就会认为数据发送成功;而实际需要该数据的节点可能当时由于“比较忙”,没来得及处理之前已经填充到CAN控制器接收寄存器的信息(此时会造成该节点的总线溢出错误计数,但在程序未处理这些信息时,可能该信息就会被忽略)。所以一定要测试可能的网络运行情况下CAN节点的数据接收能力,最好的办法是一对一的进行节点测试,发送节点采用工作可靠、实时性较高、发送最大数据量较高的节点,如PFautoCAN汽车CAN总线仿真开发工具。

六、建议:好的测试平台是关键,好的测试平台可以给设计人员一个标准化的参考标准,从而可以更清楚的确定问题所在。

希望以上内容对大家进行CAN总线的软件开发有帮助。

 

 

—————————成都盘沣科技有限公司—————————

 

 

【咨询电话】028-62496199

【业务联系人】先生

【业务联系电话】13608179927

【业务联系QQ1415175

 

【客服联系人】先生

【客服联系电话】18602801577

【客服联系QQ1206695207

 

【公司地址】 四川成都龙泉国际汽车城

【盘沣官方网站】 http://www.pfautoecu.com

最新评论
发表评论
标题
内容
表情
 

  分类导航
业界动态  (210)
企业新闻  (141)
汽车电子及CAN总线技术  (504)
汽车电子开发  (78)
  最新文章

成都盘沣科技有限公司

Copyright © 2009-2011 

腾讯企业QQ
蜀ICP备13022615号