文档库 最新最全的文档下载
当前位置:文档库 › CAN总线系统测试技术

CAN总线系统测试技术

CAN总线系统测试技术
CAN总线系统测试技术

CAN总线系统测试技术

【摘要】CAN总线作为现场总线的一种,在汽车、船舶、航天、工业测控与工业自动化等领域已经得到广泛的应用。CAN总线开发流程中,需要对所开发的CAN总线系统进行节点以及总线系统的验证与确认,本文主要介绍了网络测试验证的内容,实现测试的工具与测试技术。

【关键字】CAN总线网络测试验证确认

CAN Bus Testing Technology

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%后-无错误帧

(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总线测试能力迅速形成。

参考文献

[1] 鲍官军, 等. CAN总线技术、系统实现及发展趋势. 浙江工业大学学报. 2003(1)

[2] Bosch. CAN Specification V2.0. 1991

[3] Siegfried Beeh. Testing with CANoe. Vector Congress. 2004

CAN总线技术在汽车中的应用

技术导向 CAN总线技术在汽车中的应用 【摘要】文章首先概述了CAN总线技术,并详细阐述了CAN总线技术的特点和优点,及其结构和数据,传输原理,从而引出CAN总线研究的重点、关键技术及其在现代汽车上的应用现状和发展趋势。 【主题词】CAN总线汽车应用 前言 近20年来,随着现代电子技术、信息技术的发展,汽车上由电子控制单 元(ECU)控制的部件数量越来越多,例如,数字式电控燃油喷射系统(DEFI)、 废气再循环控制系统(EGR)、防抱死制动系统(ABS)、防滑控制系统(ASR)、 牵引力控制系统(TRC)、车辆稳定控制系统(VSC)、巡航系统(CCS)等等。 大量传感器、集成电路和计算机芯片等电子元器件在汽车上的广泛应用, 在提高汽车动力性、经济性、舒适性和安全性的同时,也带来其他问题: (1)电子设备的大量应用必然导致车身布线愈来愈复杂、运行可靠性降低、故障维修难度增大,必然造成庞大的布线系统。比如在沃尔沃公司生产的S80型轿车中,所安装的电缆长达1200 m,有54根保险丝。从材料成本和工作效率看,传统布线方法都将不能适应汽车的发展。 (2)上述DEFI、EGR、ABS、ASR等子系统对控制信息的共享和实时性的要求,需要共享发动机转速、车轮转速、油门踏板位置等公共数据,同时各个子系统对实时性的要求因为数据的更新速率和控制周期的不同而有 差别。传统的线缆已远远不能满足这种需求。 (3)为了使不同厂家生产的部件能在同一辆汽车中协调工作,必须按照

某种约定的标准来解决其状态信号和控制信息的传递问题。针对上述问题,在借鉴计算机网络技术和现场控制技术的基础上,诞生了各种适用于汽车环境的汽车网络技术。经过长时间发展,已形成Hart、Lonworks、Profibus、Bitbus及CAN等多种现场总线协议。CAN是控制器局域网络的简称,它由德国的Bosch公司及几个半导体生产商开发的,CAN总线是一种串行多主站控制器局域网总线。它具有很高的网络安全性、通讯可靠性和实时性,简单实用,网络成本低。特别适用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。因此CAN总线在诸多总线中独占鳌头,逐渐成为汽车总线的代名词。 1、CAN总线技术的特点和优点 CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其主要特性如下: (1)具有较高的性价比。它结构简单,器件容易购置,每个节点的价格较低,而且开发过程中能充分利用现在的单片机开发工具; (2)是目前为止唯一有国际标准的现场总线; (3)为多主方式工作,网络上任一节点均可在任意时刻主动向网络上其他节点发送信息而不分主从,通信方式灵活,且无需站地址等节点信息; (4)网络上的节点信息分成不同的优先级, 可满足不同的实时要求,高优先级的数据最多可在134μs内得到传输; (5)采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情

车辆CAN总线概述(完整版)

一.CAN总线简介 1、CAN总线得发展历史 20世纪80年代初期,欧洲汽车工业得蓬勃发展,车辆电子信息化程度得也不断提高。当时,由于消费者对于汽车功能得要求越来越多,而这些功能得实现大多就是基于电子操作得,这就使得电子装置之间得通讯越来越复杂,同时意味着需要更多得连接信号线,但就是传统得线束式汽车电子系统已经不能满足车辆电子信息功能发展得需求。为了解决这一制约现代汽车电子信息化发展得瓶颈,德国Bosch公司设计了一个单一得网络总线,所有得外围器件可以被挂接在该总线上,经过试验,这一总线能够有效解决现代汽车中庞大得电子控制装置之间得通讯,并且能够减少不断增加得信号线。所以在1986年Bosch公司正式公布了这一总线,且命名为CAN总线。 CAN控制器局部网(CAN—Controller Area Network)属于现场总线得范畴,它就是一种有效支持分布式控制或实时控制得串行通讯网络,它具有很高得网络安全性、通信可靠性与实时性,简单实用,网络成本低,特别适用于汽车计算机控制系统与环境恶劣、电磁辐射强与振动大得工业环境,因此CAN总线在诸多现场总线中独占鳌头,成为汽车总线得代名词,CAN总线开始进入快速发展时期: 1987年Intel公司生产出了首枚CAN控制器(82526)。不久,Philips公司也推出了CAN 控制器82C200; 1991年,Bosch颁布CAN 2、0技术规范,CAN2、0包括A与B两个部分为促进CAN以及CAN协议得发展,1992在欧洲成立了国际用户与厂商协会(CAN in Automation,简称CiA),在德国Erlangen注册,CiA总部位于Erlangen。CiA 提供服务包括:发布CAN得各类技术规范, 免费下载CAN文献资料, 提供CANopen规范DeviceNet规范;发布CAN产品数据库,CANopen产品指南;提供CANopen验证工具执行CANopen认证测试;开发CAN规范并发布为CiA标准。 1993 年CAN 成为国际标准ISO11898(高速应用)与ISO11519(低速应用); 1993年,ISO颁布CAN国际标准ISO11898; 1994年,SAE颁布基于CA N得J1939标准; 2003年,Maybach发布带76个ECU得新车型(CAN,LIN,MOST); 2003年,VW发布带35个ECU得新型Golf。

CAN总线基础知识介绍

什么是CAN ? CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。 一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。 CAN 是怎样发展起来的? CAN最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。1993年,CAN 已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。 CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN 仍可提供高达50Kbit/s的数据传输速率。 由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。 CAN 是怎样工作的? CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI开放式互连模型的各层。应用层协议可以由CAN 用户定义成适合特别工业领域的任何方案。已在工业控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。 表1 OSI开放系统互连模型 7 应用层最高层。用户、软件、网络终端等之间用来进行信息交换。如:DeviceNet 6 表示层将两个应用不同数据格式的系统信息转化为能共同理解的格式 5 会话层依靠低层的通信功能来进行数据的有效传递。 4 传输层两通讯节点之间数据传输控制。操作如:数据重发,数据错误修复 3 网络层规定了网络连接的建立、维持和拆除的协议。如:路由和寻址 2 数据链路层规定了在介质上传输的数据位的排列和组织。如:数据校验和帧结构 1 物理层规定通讯介质的物理特性。如:电气特性和信号交换的解释 CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,

CAN总线基础知识学习笔记

CAN总线基础知识学习笔记 依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油! 1 CAN的一些基本概念 1.1 什么是CAN总线 CAN 是Controller Area Network 的缩写,是ISO 国际标准化的串行通信协议。通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。 CAN总线有两个ISO国际标准:ISO11898 和ISO11519。其中: ISO11898 定义了通信速率为125 kbps~1 Mbps 的高速CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度≤40米。 ISO11519 定义了通信速率为10~125 kbps 的低速CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。 Tips: :又称为总线的通信速率,指的是位速率。或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是bps 或者b/s (bit per second)。 1.2 CAN的拓扑结构 下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。 如图中所示,CAN总线包括CAN_H 和CAN_L 两根线。节点通过CAN控制器和CAN 收发器连接到CAN总线上。 TIps :通常来讲,ECU内部集成了CAN控制器和CAN收发器,但是也有没集成的,需要自己外加。 1.3 CAN信号表示 在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。CAN总线上的电位差分为显性电平和隐性电平。其中显性电平为逻辑0,隐性电平为逻辑

相关文档