CAN总线系统测试技术
吴亚楠
(北京经纬恒润科技有限公司 北京100107)
【摘 要】 CAN总线作为现场总线的一种,在汽车、船舶、航天、工业测控与工业自动化等领域已经得到广泛的应用。CAN总线开发流程中,需要对所开发的CAN总线系统进行节点以及总线系统的验证与确认,本文主要介绍了网络测试验证的内容,实现测试的工具与测试技术。
【关键字】 CAN总线 网络测试 验证 确认
CAN Bus Testing Technology
Wu Yanan
(Beijing Jingwei Hirain Technology Ltd. Beijing 100107)
Abstract: As one kind of fieldbus, the CAN bus is widely used in Automobile, Ship, Aerospace, industrial controlling and automatization. During the development processes of CAN bus, the verification and validation are the important steps for the CAN bus system. The testing specification is discussed here, and the testing tools and testing technology are introduced.
Keywords: CAN(Controller Area Networks) Testing Verification Validation
引 言[1].[2]
随着汽车电子技术的发展,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求促进了车用总线技术的发展。CAN总线即控制器局域网总线,由Bosch公司于1981年制定,主要目的为用作汽车的高速动力总线、中速车身总线等。由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被广泛应用于其他领域中,例如船舶、航天、工业测控、工业自动化、电力系统、楼宇监控等,成为了广泛使用的现场总线之一。基于CAN总线协议,还发展出CANopen、J1939、DeviceNet等多种上层总线协议。
CAN是一种开放式多主站线性结构的总线,使用双绞线作为连接介质连接所有节点,最高传输速率为1Mbit/s。CAN总线使用载波侦听多路访问/冲突检测(CSMA/CD)技术这种非破坏性的总线仲裁方式,避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送而不需要额外的时间开销。CAN协议不对节点进行地址规定,而是使用报文的标识符来指定报文的优先级以及报文的内容。同时,CAN总线协议提供了完善的错误检测与错误处理机制,包括了CRC检测、错误报文自动重发、错误状态判断、临时错误自动恢复、永久错误自动错误节点等措施,从而很好的保证了系统数据一致性。
图1 系统开发流程
1 CAN总线开发流程[3]
随着CAN总线技术应用在国内各个行业中广泛使用,CAN总线开发流程及开发方法也日益成为关注的重点。目前,基于开发-验证思想的V型开发流程被广泛用于CAN总线的开发过程中,如图1所示。
OEM厂商首先定义CAN总线系统需求,并进行系统构架设计,然后由供应商根据OEM厂商提出的需求,分析节点ECU的需求并进行节点设计,再进行软硬件实现以及节点ECU集成,最后对ECU进行测试验证。供应商将所设计的节点ECU提供给OEM厂商,由OEM厂商进行CAN总线系统的集成,并对系统进行确认,才能形成最终的产品。
在V开发流程中,测试始终贯彻着整个开发流程,以在开发过程中能尽早的发现设计问题。供应商在节点ECU开发的最后阶段,需要对所开发的ECU进行验证,检查所开发的产品是否符合所需的设计规范,即“是否正确的做了产品”。而OEM厂商在获得供应商提供的各个节点ECU后,进行系统集成,需要对CAN总线系统进行确认,检查是否符合原始的需求,即“是否设计了正确的产品”。
因此,无论对于供应商开发单节点ECU还是OEM厂商对整个系统进行集成,都需要对节点以及总线系统进行CAN总线测试,以完成验证与确认的工作。
2 CAN总线测试
CAN总线测试内容可以分为单节点测试和总线系统集成测试两部分。在每个节点连接到CAN总线网络之前都需要进行单节点测试,用以确定节点工作正确并且不会干扰总线的正常通讯。总线系统集成测试则是将各个节点都连接形成完整的CAN总线系统,对系统进行测试以验证系统运行的完整性及正确性、系统的通讯鲁棒性、电器鲁棒性以及系统的容错自恢复功能等。
进行CAN总线测试过程,首先需要制定测试规范,然后根据该测试规范编写测试案例,构建测试环境,并进行测试实现,最终将测试所得的数据进行分析,形成测试报告。
2.1 CAN总线测试规范
由于CAN总线基本协议的灵活性,目前并没有一个统一的完整覆盖CAN总线各个通讯层次的测试规范,而作为CAN总线技术使用最广泛的汽车行业,各个汽车厂商也只是自行定义其轿车CAN总线协议,并根据该协议制定各自的测试规范。
因此制定CAN总线的测试规范,必须从相关的设计需求和规范文档中提取测试需求,这些文档可以包括CAN协议、总线系统设计时所依据的标准或协议(例如ISO11898或J1939)、系统设计的需求、系统的诊断协议、以及其他行业性通讯规范。根据所提取的测试需要,将各个需求点对应为测试案例组。
将每组测试案例组在各测试节点上的实施称为测试案例。每个测试案例根据测试实现的过程,细分为一系列的测试步骤。对于每个测试案例,在测试结束时,都会存在一个测试结果,用以确定测试案例所对应的节点是否通过该测试需求点的测试。每个测试案例中,除了包含测试步骤的内容外,还包括了测试条件和测试环境两部分内容。测试条件是测试案例实施之前,被测单元所需要具备的条件,例如系统已经处于正常通讯等。而测试环境则是测试过程中,需要提供给被测单元的外部环境,例如供电电压、信号线的连接情况等。
2.2 CAN总线测试内容
CAN总线测试内容可以按照通讯层次划分为物理层测试、数据链路层测试、应用层测试等内容。
物理层测试主要目的是验证节点及系统在电路设计、物理电平特性等方面的性能,这是保证节点能够正确连接入总线的基础。测试主要包括了节点的电阻电容特性、节点差分电阻、总线终端电阻、CAN线上的物理电平特性等方面。
数据链路层测试则包括了位定时测试、采样点测试、SJW测试等内容,该测试内容主要用以保证各个节点的通讯参数能够保持一致性,所组成的网络能够正常有效的工作。
应用层测试则包括了上层应用层协议的测试、网络管理功能的测试以及故障诊断测试等方面的内容。其包括的内容可以是:数据库使用正确性测试、通讯周期准确性测试、节点休眠唤醒功能测试、网络管理功能测试、网关测试、错误帧频率测试、电压影响测试、总线物理故障测试、节点故障自恢复能力测试、通讯失败的故障诊断功能测试等内容。由于CAN总线使用背景的不同,其应用层的内容也有很大差别,因此应用层测试的内容也存在较大差异,需要根据项目的设计需求以及设计文档仔细制定应用层测试的内容。值得注意的是,对于CAN总线网络测试,其应用层测试一般不涉及功能测试的范围,功能测试一般属于ECU测试的范畴。
2.3 CAN总线测试方法
图2所示为基于Vector公司提供的CAN总线测试工具所组建的CAN总线测试系统。
图2 CAN总线测试系统
在系统中被测单元与模拟被测单元应用背景的仿真器相连,通过仿真器可以模拟出被测单元在真实应用中的运行环境。而被测系统的CAN线则通过CAN硬件接口连接到测试软件CANoe上,CANoe还可通过IO接口电缆IOcab获取被测单元的IO信号。
被测单元的供电则由供电系统提供给仿真器,再由仿真器提供给被测系统,与真实系统的供电模式相同。CANoe软件可以通过其接口来控制供电系统,从而可以方便的改变被测单元的供电电压,实现CAN总线测试环境。
测试过程中,使用Vector公司提供的干扰仪CANstress,以制造出测试所需的干扰信号以及总线故障等测试环境。而系统中所连接的网络示波器CANscope可以在物理层测试中捕捉CAN总线的物理信号。
在测试过程中,Vector提供的测试软件CANoe可以观测总线通讯的报文以及信号,并检测总线的错误帧、总线负载率等信息。另外,CANoe还提供了测试软件包,能够使用扩展的编程功能编写测试流程,控制CANstresss、CANscope等工具,并支持XML编写的测试脚本,实现自动化测试流程,将测试结果自动生成XML和HTML测试报告。
3 CAN网络测试案例
根据上述的CAN网络测试系统,进行了物理层的采样点测试。测试结果如图3所示。
图3 (a)所示为被测单元正常通讯情况下,使用CANscope捕捉到数据场第一个隐性位。使用CANstress将该位75%后干扰为显性电平,使用CANscope捕捉总线报文,没有出现错误帧,如图3(b)所示。同样条件下,将该位68.75%后的电平干扰为显性位,使用CANscope捕捉总线报文,出现了错误帧,如图3(c)所示。由此可以得出结论,被测单元的采样率为75%。
(a)无干扰情况下的位电平
(b)干扰电平在75%后-无错误帧
http://www.hirain.com/hirain-comm/200703/image/P18.jpg
(c)干扰电平在68.75%后-有错误帧
图3 采样点测试
图4所示为应用层测试中,CAN-H线与电源短路测试的测试结果。图4(a)所示为使用CANstress将CAN-H线设置为与电源短路。图4(b)所示为CANoe在该测试过程中总线的通讯情况,在被测条件下总线没有出现错误帧。使用CANscope观测,由于CAN-H与电源短路,CAN-H电平表现为恒高,而差分电平信号仍足够保证CAN总线的正常通讯,因此没有出现错误帧。
(a)CANstress设置CAN-H与电源断路
(b)CANoe检测网络无错误帧
(c)CANscope观测总线电平情况
图4 CAN-H与电源断路情况下的系统通讯测试
4 总结
随着CAN总线在国内应用的日益广泛,CAN总线测试技术将越发重要。CAN总线测试规范是CAN总线测试的核心,需要根据相关的CAN协议规范以及CAN总线设计需求进行制定。另外,在缺乏统一测试规范以及参考资料的条件下,还需要在CAN总线开发过程中积累经验,逐步制定并完善CAN总线的测试规范。国外先进的CAN总线设计及测试工具也可以促进CAN总线测试能力迅速形成
关键词:
总线
系统
测试
技术
开发
进行
节点
以及
内