当前位置:文档之家› CAN总线网络层协议栈开发测试.

CAN总线网络层协议栈开发测试.

CAN 总线网络层协议栈开发测试

韩鑫1,2,鲍可进1

(1. 江苏大学计算机科学与通信工程学院,江苏镇江 212013;2. 上海华普汽车有限公司,上海 201501

摘要:对ISO15765协议进行分析,依据协议在基于MC9S12DP512芯片的整车控制器上完成CAN 网络层协议栈的开发,给出开发过程。在VC 环境下开发测试程序,对协议栈进行测试。结果表明,实现的CAN 网络层协议栈符合ISO15765协议的规定,可满足车辆故障诊断系统等具体应用中系统对CAN 网络层通信的需求。关键词:控制局域网;网络层;协议栈;整车控制器

Development and Test of CAN Bus Network Layer Protocol Stack

HAN Xin 1,2, BAO Ke-jin 1

(1. School of Computer Science and Telecommunication Engineering, Jiangsu University, Zhenjiang 212013, China;

2. Shanghai Maple Automobile Co., Ltd., Shanghai 201501, China

【Abstract 】The ISO15765 protocol is analyzed, the development of CAN network layer protocol stack is achieved by the platform of vehicle control unit which is based on MC9S12DP512, meanwhile, the development process is given in detail. Under the VC environment, test procedures are developed for the test of the protocol stack. The results show that the protocol stack is in accord with ISO15765, and meets CAN network layer communications needs in variety applications, such as vehicle fault diagnosis system.

【Key words 】Control Area Network(CAN; network layer; protocol stack; Vehicle Control Unit (VCU DOI: 10.3969/j.issn.1000-3428.2011.15.075

计算机工程Computer Engineering 第37卷第15期

V ol.37 No.15 2011年8月

August 2011

·工程应用技术与实现·文章编号:1000—3428(201115—0232—03文献标识码:A

中图分类号:TP311

1 概述

CAN 总线具有结构简单、成本低、可靠性高、抗干扰能力强等优点,已广泛应用于车辆通信与控制系统中,在其他工业领域也得到广泛应用[1]。ISO15765是一种基于CAN 总线的车辆故障诊断协议,在其网络层协议中规定了CAN 总线上不同节点间进行数据交换的网络层通信需求,为保证数据在CAN 总线上的可靠传输提供了完善的网络层管理机制。除车辆故障诊断系统外,ISO15765的网络层协议可应用到其他采用CAN 总线进行通信的工业系统中,满足系统对CAN 网络层协议的需求[2]。

本文介绍ISO15765协议体系结构,对协议中的CAN 网络层通信机制进行深入分析。在基于MC9S12DP512芯片的整车控制器上开发符合ISO15765协议的CAN 网络层协议栈。在PC 机的VC 环境下开发协议栈测试程序与控制器进行通信,通过分析测试程序记录的数据对协议栈功能进行验证。所实现的网络层协议栈已应用到新型电容混合动力轿车故障诊断系统中,可用于实现诊断系统上位机与控制器之间的诊断通信。

2 ISO15765协议分析

CAN2.0规范在开放系统互连模型OSI 上定义了CAN 的物理层和数据链路层标准,国际标准化组织ISO 通过对CAN2.0规范的进一步标准化制订了ISO11898协议。在实际应用中,CAN 通信的实现通常需要更高层协议的支持[3]。比如ASAM 组织制定的CAN 标定协议CCP ,SAE 组织制定的J1939协议等。ISO15765协议是ISO 针对车辆故障诊断系统制定的CAN 高层协议。

ISO15765协议的目标是为基于CAN 总线实现的车辆故障诊断系统定义一组统一的需求。如图1所示,ISO15765依

据OSI 模型的分层结构在ISO11898协议规定的CAN 物理层与数据链路层基础之上,定义了故障诊断系统网络层通信和应用层服务相关的内容。ISO15765-3诊断服务层映射到OSI 模型的应用层,规定了应用层定时参数、网络层接口、诊断服务格式等信息;ISO15765-2网络层服务映射到OSI 模型的网络层和传输层[4],规定了网络层协议数据单元N_PDU 与底层CAN 数据帧、应用层协议数据单元A_PDU 之间的映射关系,通过网络层可对长报文进行分段传输,网络层为分段传输过程提供了时间管理、流控制和错误处理机制。

图1 ISO15765体系结构在OSI 模型中的映射关系

IS015765采用分层结构,各层之间通过约定的服务接口进行数据交换,各层对其内部的操作机制进行完全的封装。这使得在进行协议栈开发时只需要按协议规定为相邻层设计服务接口,各层内部操作的实现完全不受其他层的制约,可

基金项目:国家“863”计划基金资助项目“新型电容混合动力轿车整车产品研发”(2006AA11A128

作者简介:韩鑫(1984-,男,硕士,主研方向:嵌入式系统; 鲍可进,教授

收稿日期:2011-03-17 E-mail :crazyxiaoxin@https://www.doczj.com/doc/d85920101.html,

第37卷第15期 233

韩鑫,鲍可进:CAN 总线网络层协议栈开发测试单独进行各层协议栈的开发和测试。

3 ISO15765网络层协议分析

3.1 网络层服务接口

网络层向下层传输的是网络层协议数据单元N_PDU ,向应用层提供应用层协议数据单元A_PDU ,一个A_PDU 可映

射为一个或多个N_PDU [5]。N_PDU 对应于CAN 帧,两者之间的对应关系由寻址方式确定。网络层负责完成N_PDU 与A_PDU 之间转换的组织和管理,应用层不必关心分段信息重

组和分段的过程,只需访问网络层提供的接口即可请求网络层服务、获取请求服务的执行情况。如表1所示,网络层为应用层提供4类服务接口。

表1 网络层提供的服务接口及功能

服务名称

功能

N_USData.request 应用层请求网络层传输数据 N_USData.confirm 网络层通知

应用层所请求的服务已执行完成/失败N_USData_FF.indication 网络层通知应用层

开始接收分段信息

N_USData.indication 网络层通知应用层单帧(分段信息接收完成/失败

3.2 网络层数据传输方式

由于CAN 数据帧最多只能传送8个字节的数据,为适应不同长度数据的传输需求,ISO15765网络层协议提供了非确信不分段传输(UUDT和非确信分段传输(USDT 2种数据传输机制。为实现这两种传输方式,协议中通过网络层协议控制信息N_PCI 定义了4种类型的网络层协议数据单元N_ PDU 。

3.2.1 网络层协议数据单元N_PDU

N_PDU 包含网络层地址信息N_AI 、N_PCI 和网络层数据N_Data 三部分。

N_AI 存放于CAN 标识符中(不需要扩展地址时,N_PCI 和N_Data 存放于CAN 帧的数据域中。如图2所示,不同类型N_PDU 通过N_PCI 第1个字节中的前4位进行区分,表中单帧数据长度SF_DL 记录单帧传输数据的长度;首帧数据长度FF_DL 在多帧传输中记录分段数据的总长度;连续帧序号SN 保存数据分段的顺序;流控制状态FS ,在分段传输中用来控制发送方数据发送的过程;N_Data 存放于CAN 帧数据域除N_PCI 之外的其他字节中。

协议控制信息N_PCI 中的字节

字节#1

N_PDU 名称

Bits 7-4

Bits 3-0

#2 #3

单帧(SF N_PCItype =

0 SF_DL N/A N/A 首帧(FF N_PCItype =

1 FF_DL N/A 连续帧(CF N_PCItype =

2 SN N/A N/A 流控制帧(FC

N_PCItype =3 FS BS STmin

图2 N_PCI 在不同类型N_PDU 中的描述

3.2.2 非确信不分段数据传输

非确信不分段数据传输即单帧传输,该方式下网络层使用单帧N_PDU 传送数据。由于单帧N_PCI 占用CAN 帧数据域中的一个字节,单帧传送方式可传输的最大数据长度为 7个字节,如果采用远程诊断方式,由于扩展地址AE 需要占用数据域中的一个字节,可传输的最大数据长度变为6个字节。

3.2.3 非确信分段数据传输

非确信分段传输是指多帧传输,当网络层传送数据中的字节个数超出单帧传输方式的传送能力时,网络层将数据分段为多个N_PDU 进行发送;接收时,网络层将接收到的多

个N_PDU 进行重组。分段数据包括一个首帧N_PDU 、一个或多个连续帧

N_PDU 。为解决通信双方的数据同步问题,分段传输过程应当按照协议规定流控制管理机制执行。

分段传输的过程如图3所示,发送方网络层检查发送数据的长度,如果数据不能通过单帧传输方式发送,发送方向接收方发送首帧N_PDU 。接收方网络层在接收到首帧 N_PDU 后,将其包含的FF_DL 与自身网络层缓冲区大小进行比较,如果FF_DL

大于接收方网络层缓冲区的容量,接收方中止接收过程并向发送方发送FS=OVFLW 的流控制帧。

图3 分段传输示意图1

如果接收方暂时无法接收数据,接收方暂停数据接收向发送方发送FS=WAIT 的流控制帧。若接收方可接收数据,向发送方发送FS=CTS 的流控制帧,其中包含发送方可连续发送CF N_PDU 的最大个数BS(Block Size和发送间隔时间STmin 。发送方接收到FC N_PDU 后,根据N_PCI 中的BS 和STmin 向接收方发送分段数据,并记录当前已发送CF N_PDU 的个数。当发送方发送连续帧个数等于BS 后暂停数据发送,等待接收方发送新的流控制信息,重复以上的操作,直到所有数据传输完成或者传输过程出错进行错误处理。接收方的数据接收能力受到网络层缓冲区容量和数据帧处理速度的限制,可通过BS 与STmin 进行衡量。

3.3 网络层时间管理及错误处理机制

网络层时间管理机制是为防止CAN 网络上的通信节点因持续等待而被永久挂起,从而造成整个CAN 网络通信能力的瘫痪。CAN 网络上不同节点间进行通信时,需要根据网络层协议设置超时参数,在超时时间内未完成规定的操作时触发网络层超时错误。除超时错误外与网络层相关的错误还包括N_PCI 错误、非预期

N_PDU 、流控制等待错误。错误处理机制在网络层发生错误时进行错误处理,保证CAN 网络的正常通信。

4 ISO15765网络层协议的实现

下面介绍在CodeWarrior 4.7下使用C 语言进行协议栈开发的详细过程。以新型电容混合动力轿车整车控制器为开发平台,控制器采用Freescale 公司的16位控制芯片MC9S12DP512,拥有五路MSCAN 控制器,14 KB 的RAM 和512 KB 的Flash 等硬件资源。外接晶振频率为16 MHz ,控制器中的主程序采用前后台系统[6]。

通过以上对ISO15765网络层协议的分析,网络层协议

234 计算机工程2011年8月5日

栈的功能可通过网络层接口、数据分段与重组、时间管理、错误处理4个模块实现,协议栈实现的原理如图4所示。其中网络层接口的实现比较简单,首先根据协议定义四类网络层服务接口的结构体类型,然后定义相应服务接口的结构体变量即可,重点讲述其他3个模块的实现过程。

图4 网络层协议栈实现原理

4.1 数据分段与重组

在多帧传输时,网络层负责将传输的数据进行分段和重

组,分段和重组的过程中需要设置网络层缓冲区来暂时存放数据。缓冲区的设置可以考虑2种方案,一种是设置双缓冲区,分别用作接收缓冲区和发送缓冲区。该方案优点是数据的传输过程可实现全双工通信,通信速率、总线负载率较高, 不需要单独的缓冲区管理程序;缺点是占用RAM空间大。另一种方案是设置单缓冲区,接收和发送过程中网络层互斥使用该缓冲区。该方案只能进行半双工通信,通信速率较低, 实现过程中需要专门的程序对缓冲区进行管理;优点是系统RAM的占用率低。考虑到开发环境中硬件条件的限制,本研究采用单缓冲区方案。

如图5所示,为充分利用缓冲区空间,克服“假溢出”

现象,将缓冲区设计为单向循环队列。在多帧传输过程中接收到首帧时,将首帧中的FF_DL与缓冲区大小进行比较,如果缓冲区的容量大于FF_DL,允许向缓冲区中写入数据。在数据重组完成后只需要将数据在循环队列中的开始位置和数据的总长度提供给应用层,应用层便可从缓冲区中读取重组后的数据。在分段发送数据时,先比较发送数据的长度与缓冲区容量,如果数据的长度小于缓冲区容量将发送数据拷入缓冲区中,同时保存数据的开始位置与长度。启动数据分段, 将数据依次从缓冲区中取出填入相应的N_PDU中,数据链路层根据接收到的N_PDU填充CAN帧,调用发送函数发送数据。

图5 分段传输示意图2

分段和重组的过程中互斥使用缓冲区,只有循环队列为

空时才允许新的缓冲区使用请求。为适应不同应用中的数据对网络层缓冲区容量的要求,缓冲区长度采用宏定义,最大

可达4 095 Byte。

4.2 时间管理

时间管理包括延时发送和超时处理两部分功能。同一块

中的连续帧发送或流控制等待帧连续发送时,连续发送的两

帧之间需要一定的间隔时间,来保证接收方有足够的时间处理接收到的数据,即发送方前一帧发送结束后需要延时固定时间后再调用发送函数发送新的帧。此外,在通信过程中通信双方每发送完一帧或接收到一帧后,都需要记录时间进行超时判断。

网络层通信过程中使用系统时钟进行计时。通过配置寄

存器,利用系统时钟产生一个长度为1 ms的实时中断基准时间(RTICTL = 0x1f。在实时时钟中断函数中定义一个16位的无符号计数器进行加一操作,当需要进行延时操作时采集计数器的当前值作为计时开始时间,当计时器达到设定的时间条件后进行下一步操作。需要进行超时判断时将计时器值、超时参数与需要触发的事件是否发生一起作为发生超时错误的判断条件。

4.3 错误处理

如图3所示,在网络层通信过程中,发生任何类型错误

时通信过程都会被中断,并转入错误处理模块进行错误处理。错误处理模块将接收到的错误指示信息与自身case语句中的错误类型进行匹配,匹配成功后执行相应的错误处理操作,

并将错误告知应用层。错误处理完成后应当及时清空网络层

缓冲区,已备网络层接收新的数据。

5 协议栈测试

为验证协议栈功能的可靠性与正确性,在PC机的VC6.0

环境下开发测试程序对实现的协议栈进行测试。测试程序通过周立功公司的USBCANI接口卡与控制器进行CAN通信。测试程序的运行界面如图6所示,通信的整个过程可在测试

程序中实时显示,通过读取显示数据分析协议栈运行的正确

性与可靠性。设定上位机地址为0x00,控制器地址为0x10, CAN总线的通信速率为500 Kb/s。

图6 测试程序界面

测试过程分为2个部分:正常通信功能测试和错误处理

功能测试。正常通信功能测试通过单帧发送(测试程序单帧响应(控制器、单帧发送分段响应、分段发送分段响应、分段发送单帧响应4类测试实例来测试协议栈在正常通信情况下的数据分段与重组等功能是否正常。错误处理功能测试根据故障类型编写错误实例,验证网络层协议栈是否能够对错

误进行识别,并通过错误处理模块对出现的错误进行容错处理,保证通信正常。

(下转第237页

第37卷第15期 237

原菊梅,潘宏侠:基于递推参数辨识的齿轮箱故障在线检测

有发生变化,而当该统计量超过一定范围时则认为齿轮箱发生故障。

对3.2节中所得的正常工况、正常运行一段时间后出现

齿轮磨损2种情况的递推模型参数进行参数变化量的2-范数

统计,得到图3。

0500 1 000 1 500 2 000 2 500 3 0003 500 4 000 4 500 0.00

0.05

0.10

0.15

0.20

0.25

0.30

0.35

0.40

0.45

0.50

采样点

2

-

(a正常工况时参数变化量的2-范数

(b齿面磨损时参数变化量的2-范数

图3 2种情况下参数变化量的2-范数

从图3可以看出,齿轮箱保持正常工作状态时,其参数

变化量的2-范数波动不大,基本保持在小于0.43的范围内, 而当突然出现齿面磨损时,参数变化量的2-范数将超过正常时的范围,出现大于0.5的变化量。同样可以得到正常运行

一段时间后突然出现轴承外圈剥落时的参数变化量2-范数图如图4所示,其参数变化量的2-范数突变性表现得更突出。若取递推参数变化量的阈值为0.5,则2种情况下均能快速检测出齿轮箱发生故障。说明用此方法可以进行齿轮箱故障的在线检测。

图4 正常运行后轴承外圈剥落参数变化量范数

5 结束语

本文在对齿轮箱振动信号进行时序模型建立的基础上,

研究了递推AR模型参数辨识技术,然后基于Kalman滤波技

术进行齿轮箱振动信号递推参数模型辨识。同时,对递推参

数变化量的2-范数进行了统计分析,说明其可以作为齿轮箱

故障在线检测的判定依据。通过实例分析,证明了所提方法

的可行性和有效性。进一步的研究工作是对所构造的统计量

用于齿轮箱在线故障检测时的阈值的确定。阈值的大小可以

根据先验知识和故障的检测率要求来确定,其值越大,则虚

警的可能性越小,而漏警的可能性越大;反之,其值越小,

则虚警的可能性越大,而漏警的可能性越小。

参考文献

[1] 姚竹亭, 潘宏侠. 装甲车辆齿轮主传动系统的建模与辨识[J].

振动、测试与诊断, 2005, 25(3: 196-199.

[2] 黄国龙. 基于阶比跟踪和AR模型的旋转机械故障诊断与状态预测技术研究[D]. 天津: 天津大学, 2008.

[3] 何书元. 应用时间序列分析[M]. 北京: 北京大学出版社, 2003.

[4] 黄强盛, 程久军, 康钦马. 基于高阶AR模型的网络异常检测[J]. 计算机工程, 2010, 36(3: 174-176.

[5] 李言俊, 张科. 系统辨识理论及应用[M]. 北京: 国防工业出

版社, 2003.

[6] 刘豹, 唐万生. 现代控制理论[M]. 北京: 机械工业出版社,

2006.

编辑任吉慧

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (上接第234页

6 结束语

测试结果表明,本文所实现的CAN网络层协议栈满足

ISO15765网络层协议的规定,具有较强的可靠性和容错能

力。除车辆故障诊断系统外,协议栈可被应用到其他需要网

络层协议的CAN总线系统中,具有一定实用性及推广价值。

参考文献

[1] 罗峰, 孙泽昌. 汽车CAN总线系统原理、设计与应用[M].

北京: 电子工业出版社, 2010.

[2] Swedish Standards Institute. ISO 15765-2 Road Vehicles Diagno-

stics on CAN-Part 2: Network Layer Services[S]. 2004.

[3] 许行, 白瑞林, 严惠. CAN总线上层协议的设计[J]. 计算

机工程, 2007, 33(24: 258-260.

[4] Christoph M. Road Vehicles Diagnostic Communication Techno-

logy and Applications[M]. Heidelberg, Germany: [s. n.], 2008. [5] Swedish Standards Institute. ISO 15765-3 Road Vehicles Diagno- stics on CAN-Part 3: Implementation of Unified Diagnostic Services[S]. 2004.

[6] 孙同景, 陈桂友. Freescale 9S12 十六位单片机原理及嵌入式开发技术[M]. 北京: 机械工业出版社, 2008.

编辑陈文

CAN总线故障检查方法

一、CAN总线简介 CAN总线即控制器局域网,为串行通信协议,能有效得支持具有很高安全等级得分布实时控制,在汽车电子行业中,使用CAN连接发动机控制单元,传感器,防刹车系统等等,其传输速度可达到1Mbit/S。 1、CAN总线数据生成 CAN总线得数据分为模拟信号与数字信号,模拟信号就是由传感器检测得到,并将得到得信号进行转换(A/D),变成数字信号,送给MCU,由MCU将生成得CAN报文发送到总线上。模拟信号一般显示在指针表上,如气压1,气压2等.数字信号相对简单,可直接由MC U接收,然后将报文发到CAN总线上,如发动机诊断,刹车片磨损等等,一般显示在仪表上. 2、CAN信号线 CAN传输得两条信号线被称为CAN_H 与CAN_L。通电状态:CAN_H(2、5V)、CAN_L(2、5V)或CAN_L(3、5V)、CAN_H(1、5V)断电状态:CAN_H、CAN_L之间应该有60~62欧电阻值,两个120欧分别在仪表模块与后控模块中,并联后就是60欧姆左右。 ?友情提示:用万用表就是测不准CAN_H或CAN_L电压得,因为通电后C AN线上得电压在不停变化,而万用表得响应速度很慢,所以测得得电压就是并不就是当前电压而就是电压得有效值。 3、唤醒线WAKEUP

CAN总线所有模块都有两个WAKEUP引脚,模块内部就是连接在一起得,前控模块为WAKEUP输出,其它模块为WAKEUP得输入,连线时总线各模块得WAKEUP都必须与前控连接在一起,当前控电源正常、钥匙1档(ACC档)开时,前控正常工作,WAKEUP输出(输出电压值约等于当前电源电压),总线其它模块收到WAKEUP信号,模块被唤醒,在电源正常得情况下,各模块开始工作。 二、线路与模块得基本检查 1、线路得基本检查分为输入与输出线路。 对输入线路得检查:首先,要找到输入得管脚(各种车得管脚定义不同);然后将输入得管脚与模块断开;最后对线路就是否有信号输入进行检查. 对输出线路得检查 首先,确定输出得线路就是否断线或搭铁。将管脚与模块断开后测量.然后就是测量线路就是否有输出.将模块与管脚连接后检查. 2、模块得基本检查包括对电源线、地线、唤醒线、CAN线得检查。 电源得检查:模块上一般有4根左右得电源线,在模块正常工作时,每个电源都应该有24 v得电压。 地线得检查:模块上一般都有2到3根地线,在模块工作时,这些地线都要与全车得地线接触良好. 唤醒线得检查:每个模块都要有1根唤醒线,在模块工作时有24v得电压。

使用泰克MSO4000示波器测试与分析CAN总线信号

主题TOPIC —————————————————————————————————TITLE:使用泰克MSO4000示波器测试与分析CAN总线信号 OBJET :介绍了泰克MSO4000系列示波器在CAN网测试中的若干应用

目录 1目的 (3) 2适用范围 (3) 3参考文件 (3) 4历史 (3) 5泰克MSO4000示波器简介 (4) 6利用MSO4000示波器对CAN LS信号进行采集和解码 (4) 6.1 对示波器进行设置 (4) 6.2 监测CAN LS网络上的CAN_H和CAN_L电平信号 (5) 6.3 技术规范对CAN LS信号电平值的规定 (8) 6.4 监测CAN LS网络的总线解码信号 (9) 7利用MSO4000示波器对CAN HS信号进行采集和解码 (10) 7.1 对示波器进行设置 (10) 7.2 监测CAN HS网络上的CAN_H和CAN_L电平信号 (10) 7.3 技术规范对CAN HS信号电平值的规定 (11) 7.4 监测CAN HS网络的总线解码信号 (11) 8使用泰克“e﹡Scope”功能对示波器进行远程操作 (12) 9使用Open Choice软件自动获取示波器屏幕截图 (13) 10使用SignalExpress TE软件实现自动化测试 (15) 2 of Page 19

1 目的 CAN网络信号的测试包括总新电平信号的采集、电压值的测量、信号解码分析、总线通讯状态监测等内容,这部分内容也是构成CAN网络底层测试的基础,测试结果的正确与否,直接关系到整车电器架构的稳定性与电控单元功能的完好性,因此如何便捷高效地完成CAN网络的测试,已经成为整车验证环节中不可回避的一个话题。本文中提出了一套使用泰克MSO4000系列示波器与配套的LabVIEW SignalExpress TE软件进行CAN总线信号测试与分析的方法,从而完成整车高速、低速CAN网络信号的分析与测试工作。通过“示波器+PC软件”的方式,测试人员可以方便快捷地对总线信号进行实时监测,也可以使用示波器的解码功能直接观测到对应的逻辑信号。在使用附属的SignalExpress TE软件后,还可以实现远程测试、自动化测试等功能,与其它测试和分析方法相比,具有入门简单、适用范围广、数据采集精度高等优点,大大提高了基于CAN总线技术的电控单元的开发与测试效率。 2 适用范围 供新车型项目中进行CAN网底层测试时参考使用。 3 参考文件 4 历史

基于CAN总线的汽车测试解决方案

基于CAN总线的汽车测试解决方案 于CAN总线的汽车测试解决方案一、前言 随着中国汽车市场的快速发展和汽车电子的价值含量迅速提高,针对汽车电子的测试技术也变的日益复杂,在全球化的汽车设计和生产的趋势下,中国本地的工程师越来越感觉到汽车电子测试所面临的种种困难,其中主要包括:(一)无法满足产品线不断更新的需求,并希望减少产品投放市场的周期。 1.汽车电子产品的日益更新,要求测试系统以最快的速度满足新的需求。而目前国外引进的专用测试系统往往升级周期较长,无法满足本地瞬息万变的产品测试需求。图1:基于PXI TestStand平台的测试系统 2.专业汽车电子厂商往往生产多个不同型号的同类产品,并根据订单、物流的条件,其生产计划经常发生变化。如果不同型号的产品都采用不同的测试设备,将会导致测试设备重复利用率过低,大大降低投资效率。 (二)目前汽车电子测试缺乏通用仪器的解决方案,如汽车音响及仪表盘的测试往往需要专门定制的仪器,而且这些仪器价格非常昂贵。 (三)本地的售后服务和及时的故障响应。测试生产线上一切以生产线的持续运行为最高目标,当中国工程师不能掌握

全面的故障诊断和维修技术时,就只能向国外的工程师求助,这样容易导致响应速度慢,且代价昂贵。 (四)复杂的汽车测试系统常常需要多种测量和控制任务的协同工作,一个用于集成的软硬件同步平台就显得尤为的重要。 二、支持CAN协议的柔性测试设备 20世纪80年代Bosch公司为解决汽车系统中各个电子单元之间的通信问题开发了CAN总线标准。这种串行总线用2 根或1根电线把汽车里的各个电子设备连接起来,相互可以传递信息。采用CAN总线避免了电子模块间大量繁复的连线,比如仪表板上车速、发动机转速、油量和发动机温度的指示就不需要连接不同的线缆到对应的传感器,而只需要接入CAN总线,就可以从总线上获取相应信息。CAN的卓越表现使汽车制造商们纷纷开发并使用基于CAN和数据采集 设备的测试系统。国际标准组织将CAN总线接纳为ISO 11898标准。NI公司在其标准虚拟仪器测试平台上推出CAN 控制器系列,支持多种CAN总线的协议,其中包括高速CAN、低速容错CAN和单线CAN。尤其是新推出的PXI-8464软 件可选类型的CAN控制器,可以让你不用更改硬件连接, 就适应各种CAN通信协议,同时既可以作为总线控制器, 又可以作总线通信分析仪,使得测试设备可以在最大程度上适应柔性生产。

STM32的can总线实验心得要点

STM32的can总线实验心得 (一) 工业现场总线 CAN 的基本介绍以及 STM32 的 CAN 模块简介 首先通读手册中关于CAN的文档,必须精读。 STM32F10xxx 参考手册Rev7V3.pdf https://www.doczj.com/doc/d85920101.html,/bbs/redirect.php?tid=255&goto=lastpost#lastpos t 需要精读的部分为 RCC 和 CAN 两个章节。 为什么需要精读 RCC 呢?因为我们将学习 CAN 的波特率的设置,将要使用到RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。 关于 STM32 的 can 总线简单介绍 bxCAN 是基本扩展 CAN (Basic Extended CAN) 的缩写,它支持 CAN 协议 2.0A 和 2.0B 。它的设计目标是,以最小的 CPU 负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。 对于安全紧要的应用,bxCAN 提供所有支持时间触发通信模式所需的硬件功能。 主要特点 · 支持 CAN 协议 2.0A 和 2.0B 主动模式 · 波特率最高可达 1 兆位 / 秒 · 支持时间触发通信功能 发送 · 3 个发送邮箱 · 发送报文的优先级特性可软件配置 · 记录发送 SOF 时刻的时间戳 接收 · 3 级深度的2个接收 FIFO · 14 个位宽可变的过滤器组-由整个 CAN 共享 · 标识符列表 · FIFO 溢出处理方式可配置 · 记录接收 SOF 时刻的时间戳 可支持时间触发通信模式 · 禁止自动重传模式 · 16 位自由运行定时器 · 定时器分辨率可配置 · 可在最后 2 个数据字节发送时间戳 管理 · 中断可屏蔽

CAN宝马车系CAN总线信号的检测

宝马车系CAN总线信号的检测 CAN总线信号检测 此说明用于检查总线连接上的CAN高速和CAN低速信号电平是否正确。 使用的电缆。 多功能检测导线 检测提示 ◇电压检测(示波器):电压检测的前提条件是,蓄电池已连接并且点火开关已接通 ◇电阻测量:在电阻测量时,在测量前必须把待A部件断电,为此应断开车辆蓄电池的接线,等待约3 min,直到系统中的所有电容器放完电 关于CAN总线的信息 CAN(控制器区域网络)总线系统是一种线形总线系统并具有以下特征: ◇信号双向传播 ◇所有总线用户都接收同一个信息,每个一弥线用户决定,它是杏利用该信息 ◇通过简单并联即可添加附加的总线用户 ◇此总线系统构成一个多主控单元系统,每个总线用户可以是主控单元也可以是副控制单元,根据其作为发射器还是接收器被连接而定

◇传输媒介是双线连接,导线的名称为:CANLow(低速)和CANHigh(高速) ◇廊仕每个总线用户可以通过总线同所有其他总用户通信,通过干预法,控制总线上的数据交换,数据总线K-CAN(车身CAN)、PT-CAN(传动系CAN)和F-CAN(底盘CAN)之间的主要区别是: (1)K-CAN:数据传输率约l00kBit/s,可以进行单线运行。(2)PT-CAN:数据传输率约500kBit/s,不能进行单线运行。 (3)F-CAN:数据传输率约500kBits/s,不能单线运行。 主控单元:主控单元是主动式通信方,、通信的主动权由它发出。主控制单元掌控总线,并控制通信。主控制单元能够在总线系统中向被动式总线用户(副控制单元)发送信息,并根据被动式用户的要求接收信息。 副控制单元:副控制单元是一个被动式通信用户,副控制单元被要求接收和发送数据。 多主控单元系统:在一个多主控单元系统中所有的通信用户在某个时间都能够担当主控单元或副控制单元的角色。 示波器测量 K-CAN;PT-CAN、F-CAN 为了弄清CAN总线是否完好工作,必须观察总线上的通信情况。在这种情况下不需要分析单个位,而只需要观察CAN总线是否工作。示波器测量说明:“CAN总线很可能无故障工作”。

CAN总线检测方法

C A N总线检测方法 1、车辆无法启动。 (1)首先观察无法启动时车辆的状态,主要是仪表。观察仪表是否有电,因为从仪表上可以看到车上其他模块的工作状态。如果仪表没有电可按下面的方法查起。首先,要检查仪表没电时的状态。因为仪表的显示受前控模块和顶控模块的控制。同时后控模块也影响仪表。 当打开电源开关后,按下ON档开关。看车上总线相连的开关是否有电。如有电说明是前控的问题,这里指根前控相关的所有问题。包括前控的线路问题。如没有电说明是后控的问题。 这时可以通过另一种方法简易判断。即打开电源时仪表是否有电通过。有电就是前控的问题。没电则是后控的问题。 (2)当车上的仪表有显示时可以通过仪表的液晶显示屏进行观察。方法如下,按动仪表下方的上翻键或下翻键可以找到模块在线界面。当车辆不启动时,有可能是桥模块、后控模块或前控模块掉线引起的。观察是否在线可以轻松的判断。同时,桥不在线时仪表下面的挡位指示灯不亮,后控不在线时档位灯亮。若仪表下方N灯不亮,则发动机也无法正常启动,可检查发动机与变速箱通信线是否短路、断路。 (3)起动机可以转动,但是就是起动不着。这是由于发动机的电脑故障或者是供油系统的故障引起的。 排除的方法如下:

首先检查模块的保险是否烧毁。 其次检查车辆线束上的接插件是否牢靠。 最后是检查模块上的接线是否有退出的。 2、发动机的信号无法传入总线 这一般是由于发动机和总线的接口出现了问题。在车上一共有三个接口。一个在前部电线束里,一个在后备电箱中,另一个在发动机上面铁盒边,都是屏蔽线的自锁接头。查找这些插头,看看是否有问题。 3、仪表气压表显示不一致: 气罐压力传感器是通过检测气罐中的压力,传感器输出一个模拟电阻信号传输到中控,再由中控到总线(气罐压力传感器线号72对应中控针角4-17,负极搭铁信号线为76,另一个气罐压力传感器线号74对应针角4-18负极搭铁线号为77),由总线转为数字信号通过仪表模块显示气压,电阻越大则显示气压越高,当负极搭铁线掉后或针角线虚后,电阻变为无限大,则仪表压力将顶到顶部。气罐压力传感器在标准气压下电阻值为20欧。 4、依维柯油压不报警 威帝仪表模块参数低于0.07MPA报警,依维柯发动机在不启动状态电脑默认为0.1MPA,由此得出依维柯发动机油压不可能低于0.07MPA,威帝油压报警灯则不亮,不能够在油压低时提供报警,现威帝将报警值提高至0.15MPA,超过发动机电脑默认的机油压力,可确保在发动机未着车情况下油压报警灯亮。不可串电阻,因

CAN总线检测办法

CAN总线检测方法 1、车辆无法启动。 (1)首先观察无法启动时车辆的状态,主要是仪表。观察仪表是否有电,因为从仪表上可以看到车上其他模块的工作状态。如果仪表没有电可按下面的方法查起。首先,要检查仪表没电时的状态。因为仪 表的显示受前控模块和顶控模块的控制。同时后控模块也影响仪表。当打开电源开关后,按下ON档开关。看车上总线相连的开关是否有电。如有电说明是前控的问题,这里指根前控相关的所有问题。包括 前控的线路问题。如没有电说明是后控的问题。 这时可以通过另一种方法简易判断。即打开电源时仪表是否有电通过。有电就是前控的问题。没电则是后控的问题。 (2)当车上的仪表有显示时可以通过仪表的液晶显示屏进行观察。方法如下,按动仪表下方的上翻键或下翻键可以找到模块在线界面。当车辆不启动时,有可能是桥模块、后控模块或前控模块掉线引起的。观察是否在线可以轻松的判断。同时,桥不在线时仪表下面的挡位指示灯不亮,后控不在线时档位灯亮。若仪表下方N灯不亮,则发动机也无法正常启动,可检查发动机与变速箱通信线是否短路、断路。 (3)起动机可以转动,但是就是起动不着。这是由于发动机的电脑故障或者是供油系统的故障引起的。 排除的方法如下: 首先检查模块的保险是否烧毁。

其次检查车辆线束上的接插件是否牢靠。 最后是检查模块上的接线是否有退出的。 2、发动机的信号无法传入总线 这一般是由于发动机和总线的接口出现了问题。在车上一共有三个接口。一个在前部电线束里,一个在后备电箱中,另一个在发动机上面铁盒边,都是屏蔽线的自锁接头。查找这些插头,看看是否有问题。 3、仪表气压表显示不一致: 气罐压力传感器是通过检测气罐中的压力,传感器输出一个模拟电阻信号传输到中控,再由中控到总线(气罐压力传感器线号72对应中控针角4-17,负极搭铁信号线为76,另一个气罐压力传感器线号74对应针角4-18负极搭铁线号为77),由总线转为数字信号通过仪表模块显示气压,电阻越大则显示气压越高,当负极搭铁线掉后或针角线虚后,电阻变为无限大,则仪表压力将顶到顶部。气罐压力传感器在标准气压下电阻值为20欧。 4、依维柯油压不报警 威帝仪表模块参数低于0.07MPA报警,依维柯发动机在不启动状态电脑默认为0.1MPA,由此得出依维柯发动机油压不可能低于0.07MPA,威帝油压报警灯则不亮,不能够在油压低时提供报警,现威帝将报警值提高至0.15MPA,超过发动机电脑默认的机油压力,可确保在发动机未着车情况下油压报警灯亮。不可串电阻,因为依维柯发动机传感器提供给依维柯ECM电脑信号后才传送给威帝模块,其间模拟信号已转为数字信号(不需要A/D转换),如是传感器直接给

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的应用也离不开汽车行业。因此,在新能源汽车越发成熟的今天,CAN的一致性测试也成为各整车厂和零部件厂商关注的焦点。本文简单的对CAN一致性测试中的负载率测试做一些介绍。 负载率测试是CAN协议一致性测试里的必测项目,不同的测试人员对其的理解也有些差异。大多的测试主要分为两项,一项为测试CAN总线的负载率,另一项则是总线负载压力测试。 我们对两项常见的负载情况测试做一下测试方法的解析。 测试CAN总线的负载率,并没有固定的测试标准,大多数的CAN测试设备都可以对总线负载率做检测。例如我司测试时经常使用CANScope或者CAN卡进行总线负载率测试,而测试的方法则是计算每秒接收到的CAN总线上的帧数,根据帧数的大小配以算法得出此时的总线负载率。例如1M波特率,1s传输1Mbit的数据,则负载率达到了100%。 图1 除瞬时负载率外,CANScope里还有有通过流量分析得出接收报文的负载率情况,与上述的实时侦测帧数计算有些区别的是,流量分析是通过波形占用总线的时间作为参考,相比于实时帧数计算更具有说服性。 图2 而总线负载压力测试,在GMW14242中,要求被测CAN总线在所有负载条件下能正常运

行并且不会死机。其试验原理是:由测试设备制造各种负载条件下的情况,测试被测CAN 总线是否还可以将正常的应用数据发出。测试报文如下表所示。每个报文产生按 10%、30%、50%、70%、90%的负载率,观察被测CAN总线发出的应用数据是否依然正常。 图3 我们再用CANScope-Pro测试举例了解一下测试过程: 步骤 1:启动 CANScope-Pro,将 RHL 调节为 60 欧,设置好和被测 DUT 相同的波特率,点击开启。控制被测能发出各种预期的报文。 步骤 2:打开 CANScope 的报文界面和“总线负载率”界面,发送 ID 填入 111H,DLC 为0,发送次数为无限。分别调整重复次数,使总线负载率为 10%、30%、50%、70%、90%。使用 ID 筛选的方式,对应观察被测 DUT 的应用数据是否间隔时间是否正常。为筛选出被测 DUT 发出的 181H 的 ID,通过增量时间的方式观察是否有异常。 步骤 3:打开 CANScope 的报文界面和“总线负载率”界面,发送 ID 填入 7FFH,DLC 为8,发送次数为无限。分别调整重复次数,使总线负载率为 10%、30%、50%、70%、90%。使用 ID 筛选的方式,对应观察被测 DUT 的应用数据是否间隔时间是否正常。为筛选出被测 DUT 发出的 181H 的 ID,通过增量时间的方式观察是否有异常。 图4 依据 GMW14241,测试结果为 DUT 在 10%、30%、50%、70%、90%负载下均可以正常工作,并且不会因为负载过高而死机,则通过测试。

车辆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总线学习总结

1、首先通读手册中关于CAN的文档,必须精读。 STM32F10xxx 参考手册Rev7V3.pdf 需要精读的部分为RCC 和CAN 两个章节。 为什么需要精读RCC 呢?因为我们将学习CAN 的波特率的设置,将要使用到RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。 关于STM32的can总线简单介绍 bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。 对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。 主要特点 ·支持CAN协议2.0A和2.0B主动模式 ·波特率最高可达1兆位/秒 ·支持时间触发通信功能 发送 ·3个发送邮箱 ·发送报文的优先级特性可软件配置 ·记录发送SOF时刻的时间戳 接收 · 3级深度的2个接收FIFO ·14个位宽可变的过滤器组-由整个CAN共享 ·标识符列表 ·FIFO溢出处理方式可配置 ·记录接收SOF时刻的时间戳 可支持时间触发通信模式 ·禁止自动重传模式 ·16位自由运行定时器 ·定时器分辨率可配置 ·可在最后2个数据字节发送时间戳 管理 ·中断可屏蔽 ·邮箱占用单独1块地址空间,便于提高软件效率 2、STM32FVBT6 的can 的工作模式分为 #define CAN_Mode_Normal ((u8)0x00) #define CAN_Mode_LoopBack ((u8)0x01) #define CAN_Mode_Silent ((u8)0x02) #define CAN_Mode_Silent_LoopBack ((u8)0x03) 在此章我们的豆皮教程中我们将使用到CAN_Mode_LoopBack 和CAN_Mode_Normal 两种模式。 我们第一步做的就是使用运行在CAN_Mode_LoopBack 下进行自测试。 在参考手册中CAN_Mode_LoopBack (环回模式) 的定义如下: 环回模式可用于自测试。为了避免外部的影响,在环回模式下CAN内核忽略确认错误(在数据/远程帧的确认位时刻,不检测是否有显性位)。在环回模式下,bxCAN在内部把Tx输出回馈到Rx输入上,而完全忽略CANRX 引脚的实际状态。发送的报文可以在CANTX引脚上检测到。

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总线即控制器局域网总线,由Bosch公司于1981年制定,主要目的为用作汽车的高速动力总线、中速车身总线等。由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被广泛应用于其他领域中,例如船舶、航天、工业测控、工业自动化、电力系统、楼宇监控等,成为了广泛使用的现场总线之一。基于CAN总线协议,还发展出CANopen、J1939、DeviceNet等多种上层总线协议。 CAN是一种开放式多主站线性结构的总线,使用双绞线作为连接介质连接所有节点,最高传输速率为1Mbit/s。CAN总线使用载波侦听多路访问/冲突检测(CSMA/CD)技术这种非破坏性的总线仲裁方式,避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送而不需要额外的时间开销。CAN协议不对节点进行地址规定,而是使用报文的标识符来指定报文的优先级以及报文的内容。同时,CAN总线协议提供了完善的错误检测与错误处理机制,包括了CRC检测、错误报文自动重发、错误状态判断、临时错误自动恢复、永久错误自动错误节点等措施,从而很好的保证了系统数据一致性。 图1 系统开发流程 1, CAN总线开发流程 随着CAN总线技术应用在国内各个行业中广泛使用,CAN总线开发流程及开发方法也日益成为关注的重点。目前,基于开发-验证思想的V型开发流程被广泛用于CAN总线的开发过程中,如图1所示。 OEM厂商首先定义CAN总线系统需求,并进行系统构架设计,然后由供应商根据OEM 厂商提出的需求,分析节点ECU的需求并进行节点设计,再进行软硬件实现以及节点ECU 集成,最后对ECU进行测试验证。供应商将所设计的节点ECU提供给OEM厂商,由OEM 厂商进行CAN总线系统的集成,并对系统进行确认,才能形成最终的产品。 在V开发流程中,测试始终贯彻着整个开发流程,以在开发过程中能尽早的发现设计问题。供应商在节点ECU开发的最后阶段,需要对所开发的ECU进行验证,检查所开发的产品是否符合所需的设计规范,即“是否正确的做了产品”。而OEM厂商在获得供应商提供的各个节点ECU后,进行系统集成,需要对CAN总线系统进行确认,检查是否符合原始的需求,即“是否设计了正确的产品”。 因此,无论对于供应商开发单节点ECU还是OEM厂商对整个系统进行集成,都需要对节点以及总线系统进行CAN总线测试,以完成验证与确认的工作。

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,隐性电平为逻辑

相关主题
文本预览
相关文档 最新文档