车用CAN总线网络快速原型的设计实现

发布者:liliukan最新更新时间:2012-02-27 来源: 中国传动网 关键字:CAN总线  快速原型  节点 手机看文章 扫描二维码
随时随地手机看文章

1 引言

  随着车用网络中被控节点数量和控制复杂度的不断增加,为了满足控制要求、降低控制系统开发成本,汽车生产厂商和汽车设计单位对车用嵌入式软件开发工具的要求越来越高。目前,市场上已经存在一些针对这一应用领域的软件开发技术和软件开发工具,例如基于快速原型的软件设计技术和MATLAB/Simulink、dSPACE开发工具。基于快速原型的软件设计技术是指软件设计者通过创建和维护嵌入式软件的功能模型来描述软件功能,并且使用面向微处理器的自动代码生成技术实现下位机代码快速生成的软件开发方法。使用这一技术可以提高嵌入式软件的开发效率,降低开发成本。

  但是目前的软件开发工具都侧重于单电控单元(ECU)建模和验证软件在单ECU环境下的执行效率和性能;对控制策略在网络场景下的鲁棒性和特征分析支持有限。另一方面,网络协议仿真和分析工具,如OPNET虽然可以提供网络场景下协议性能的分析[6],但是由于OPNET上开发的仿真代码无法直接移植到控制器上,所以开发工作不能方便地实现针对目标系统的重用。

  如果我们针对车用CAN总线网络的应用场景,将基于快速原型的嵌入式软件设计和基于网络仿真的分析相结合,实现车用CAN总线网络的快速原型。在设计前期用模型定义的虚拟硬件代替没有设计完成或者拥有成本太高的实际硬件,进行初期的系统设计分析;当相应的硬件到位后,替换虚拟硬件,将模型代码转化成面向目标系统的目标代码,进行更接近实际系统的验证分析;最后当所有实际控制软件、控制器硬件和被控硬件都完成时,进行集成的全系统实时仿真。这样可以解决使用相互独立的工具开发模型和进行仿真验证所存在的问题。

  本文通过对车用CAN总线网络快速原型的设计实现,提供了一种对车用CAN总线网络进行设计、仿真和性能分析的系统;系统使用虚拟硬件的方法,通过在Simulink中构造典型车用环境相关的控制器模型和被控对象模型,以及在Windows环境下构造CAN卡仿真程序TH-CAN-Vcard和CAN总线分析工具TH-CAN_Scope,针对车用CAN总线网络场景,实现了CAN总线网络环境下控制策略仿真分析和控制代码生成的有机结合。

2 系统设计与实现

2.1 车用CAN总线网络的特征分析

  CAN 总线是一种串行通信总线。使用带有冲突检测的载波侦听多路访问方式(即CSMA/CD)进行总线仲裁与控制。为了对车用CAN总线在网络场景下的性能进行规范,国际标准化组织ISO和美国汽车工程师协会SAE对CAN通信诊断的基准环境都制订了相关的国际标准。这些标准依据CAN协议的分层结构,从不同层次定义基准测试要求。例如:SAE J2012和ISO/DIS 15031-6对应应用层故障诊断的定义;[3] [7]ISO/DIS15765-2对应网络层通信协议,通过定义无应答分段数据传送协议(USDT)提供长消息数据分段/重组、带流量控制的数据传输和板上控制单元与板外测试工具间消息的超时处理控制。[2]

  另一方面,各个汽车生产厂家也根据这些国际标准制订了自己的企业标准,用以规范ECU产品供应商的产品。如戴姆勒克莱斯勒-奔驰集团的CAN通信标准软件模型分为车辆诊断相关的模块和与车辆诊断无关的模块两部分。其中车辆诊断相关的模块又分为诊断协议服务(KWP2000)和网络传输协议服务 (ISO-15765-2) ,分别对应应用层服务和网络层服务的功能描述,定义相关的基准环境参数和测试消息序列。[2]

  这些标准对于车用环境下基于CAN总线的诊断服务的内容、网络传送消息序列间的逻辑关系和时延要求给出了详细定义。而依据这些要求,提供一个CAN总线网络快速原型,真实地模拟具有给定特征的消息序列和数据流,再现可能出现的干扰和误码信号就是本设计的核心技术工作。这一工作成果可以提供对网络流量、网络效率和网络响应间相互关系的分析功能,仿真和验证车用CAN网络环境中ECU控制代码的鲁棒性和实时性。

2.2 快速原型系统的结构与实现

  本快速原型系统有三类节点:有物理CAN硬件接口的实际CAN节点、由TH-CAN-Vcard与Simulink模型组成的虚拟CAN节点和运行TH-CAN-Scope分析工具的监控节点。在设计仿真实验时,节点的数目没有限制,仅受具体的CAN应用层的编址方案影响。第一类节点是我们通常使用的CAN节点,这里重点描述后两类节点的实现。

2.2.1 虚拟CAN节点

  虚拟CAN节点由TH-CAN-Vcard与Simulink模型组成,节点实现如图1所示。当物理CAN卡不存在时,采用虚拟硬件技术,通过选择CAN卡驱动库提供的虚拟CAN通道,同时将开发的VCANCtrl控制对象实例化成COM服务器(COM Server)就可以在单机下建立COM服务器与MATLAB中模型(作为COM客户机)间的联系。虚拟接收/发送CAN消息到CAN总线的过程,为Simulink下建立的模型提供基本的CAN通信测试功能。[page]

  当物理CAN卡存在时,可以直接将模型中的目标CAN通道进行修改,从而使MATLAB中的模型具备与其它物理CAN节点通信的功能,这时多个位于不同PC机上的模型和多个ECU硬件上的控制器代码可以通过CAN总线建立一个车用CAN网络仿真分析环境。

图1 虚拟CAN节点的实现

  TH-CAN-Vcard则是在Windows环境下使用Visual Studio .NET和KVASER公司CAN卡驱动库开发的CAN卡仿真程序。我们通过ActiveX技术开发了VCANCtrl控制对象,并在VCANCtrl中实现了以下的内部函数:

  VCAN_Read 报文接收函数;入口参数为CAN通道句柄、返回参数为在接收缓冲区中的CAN报文的ID、数据包、长度、标识和时间戳。

  VCAN_Write 报文发送函数;入口参数为CAN通道句柄,以及待发送CAN报文的ID、数据包、长度和标识。

  VCAN_Start CAN卡初始化函数;入口参数为所选CAN通道号、波特率、通道开启模式、同步模式和同步段,以及CAN控制器工作模式。

  VCAN_Close CAN卡关闭函数;入口参数是CAN卡初始化成功时所返回的句柄。

2.2.2 监控节点

  监控节点是进行CAN总线消息序列监测和控制的节点,运行TH-CAN-Scope - CAN消息仿真分析工具。TH-CAN-Scope是仿真CAN消息序列和进行仿真结果记录分析的工具,是使用KVASER公司的CANLIB SDK开发的 Windows 下的应用程序。

  TH-CAN-Scope的CAN消息处理功能包括:创建/编辑消息流序列、CAN通信管理、CAN消息序列跟踪、控制台人机接口和用于消息序列管理的数据库维护。其中创建/编辑消息流序列、CAN消息序列跟踪、控制台人机接口和与数据库操作相关的消息序列管理使用用户线程。而CAN通信管理对实时性要求较高,使用独立的工作线程,两个线程通过使用Windows 下的消息处理机制相互通信。

  另外,TH-CAN-Scope提供的分析功能包括:在线显示CAN报文、在线统计CAN总线的使用情况、记录总线上的CAN报文、主动发送/循环发送CAN扰动报文。并且将一段时间内收集的CAN报文记录在数据库中,可以进行更详细深入的性能分析,通过使用CAN报文编辑工具,可以指定监控节点在时间触发(在指定的相对时间发送某个/某组CAN消息)和事件触发(收到某个CAN报文或收到某类CAN报文时发送指定的CAN报文序列)机制下发送触发报文,以考察CAN总线的性能。

2.3 系统实现技术

2.3.1 MATLAB外部程序接口的实现

  TH-CAN-Vcard为MATLAB下的控制器模型和被控模型提供CAN通信的功能,采用了COM技术。与用DDE技术实现的Matlab外部通信方式相比[4], COM技术的性能更好,在Emanuele Ruffaldi等人所做的测试中, COM与DDE相比,写性能提高了10倍,读性能提高了30多倍[5]; 另外MATHWORKS 对 DDE接口现在也不再进行继续的开发,而推荐使用COM接口。

  具体使用时,首先我们在Simulink中构造VCAN发送模块和VCAN接收模块,使用M语言中的actxcontrol命令将VCANCtrl COM对象实例化,获得其句柄,然后就可以通过这个实例化句柄调用COM对象中相应的VCAN_Write和VCAN_Read函数,实现Matlab中控制模型的CAN通信支持,在使用上等同于一个有句柄的设备。

2.3.2 数据流模拟和节点同步的实现

  为了在CAN总线上产生指定的CAN消息序列,我们通过TH-CAN-Scope定义需要的报文序列,然后通过时间触发和事件触发相结合的方式,定义对总线上的CAN消息的响应操作,而相应的控制逻辑,则通过Simulink模型来实现。所以实际的控制策略类似于分布于各个CAN节点中。

[page]

  节点间的同步是指在总线上的所有CAN节点应该能够在某一时刻同时产生各自指定的消息序列。使用由TH-CAN-Scope广播发送自定义的CAN同步发送消息,启动各节点计时器的方式,可以实现一定精度的节点同步。

2.3.3 CAN总线性能分析的实现

  在进行CAN总线的性能分析时,我们实现了以下的分析功能:考察总线负载(包括节点数、各节点信息量和各节点设置的总线速率)的影响;考察节点优先级策略的影响;考察容错策略(例如发送接收错误率过高的节点应该主动退出CAN总线网络)的影响;以及考察CAN网络实时性能,主要包括网络报文消息时延的大小范围以及报文消息时延的变化。其中,时延大小描述了报文时延的静态特性,而时延变化则描述了报文时延的动态特性。

3 系统功能测试与分析

  为了验证快速原型系统对多ECU下虚拟硬件和实际硬件混合仿真的支持,我们设计了图2所示的系统功能测试实验平台:其中ECU-A和ECU-B是两个独立的硬件ECU,采用实验室开发的TH-ECU2003控制器;ECU-C和ECU-D是在Simulink中开发的两个独立的控制模型,通过VCAN发送模块和VCAN接收模块实现软件仿真CAN卡功能,是虚拟硬件。在测试中,通过在各节点过滤接收到的CAN消息,控制通信流程如图2所示,即ECU-A -> ECU-B -> ECU-C ->ECD-D -> ECU-A。从而验证虚拟硬件和实际硬件混合仿真下的所有场景。

图2 快速原型系统功能测试的实验平台

  实验中,使用TH-CAN-Scope作为监控软件,对CAN总线上的数据进行了5s的数据采集,并对节点间2000多条CAN消息报文的时延均值和标准方差进行分析(这里的时延包括了节点的处理时延和节点间的传输时延),分析结果见表1,实验证明系统中任意两个节点间都能进行正常的通信,满足测试要求,验证了系统设计的有效性。

  表1 实验中的CAN消息报文时延分析

4 结论

  本文针对现有ECU软件开发工具侧重于单ECU建模和现有网络仿真工具中的开发代码在目标系统上重用比较困难的问题,设计并实现了车用CAN总线网络快速原型系统。最后,通过用THECU-2003硬件平台与Simulink下的控制模型共同组成的仿真环境验证了快速原型系统设计的有效性。

关键字:CAN总线  快速原型  节点 引用地址:车用CAN总线网络快速原型的设计实现

上一篇:SVM在车牌字符识别中的应用
下一篇:三相PWM整流器在电动汽车充电机上的应用

推荐阅读最新更新时间:2024-05-02 21:56

CAN总线在矿渣粉螺旋秤控制系统的应用
我公司矿渣水泥生产工艺中的矿物质渣粉螺旋秤控制系统采用了CAN总线,控制效果良好。 1 矿渣粉掺加工艺流程及设备 1.1 工艺流程 矿渣粉添加系统主要由矿渣粉储存仓、叶轮给料机、稳流螺旋给料机、螺旋计量秤和斜槽风机组成。物料从上到下通过上述设备后,被输送到磨尾斗式提升机,与出磨水泥一起进入选粉机混合后,通过收尘进入成品水泥库。 1.2 辅助设备具体情况 1)矿渣粉储存仓:该仓容量为100t,由钢板卷制而成。仓外有上料管道,由气力输送入料。仓顶安装有四袋压力式除尘器,仓内安装电容料位计,在仓满时打铃报警。 2)叶轮给料机:设计流量范围0~10t/h,要求转速可调,叶轮给料机的电动机由变频调速器控制。 3)稳流螺旋给料机:规格长2000
[嵌入式]
面向环境监测的无线传感器网络节点的软件设计
  引 言   环境监测是无线传感器网络的重要应用领域。为搜集某一区域内的环境数据,传感器节点需要在无人值守情况下长时间地工作在恶劣环境条件下。传感器节点的软件设计为节点正常工作提供了重要保证。   1 无线传感器网络系统结构   整个传感器网络是由若干个采集节点、1个汇聚节点、1个数据中转器以及1个便于用户查看和控制的上位机组成。系统结构如图1所示。采集节点用于对环境数据的采集、数据的预处理,承当数据的路由;汇聚节点负责整个网络的开启和维护,向采集节点发送命令,搜集节点的数据以及和数据中转器之间的串口通信;数据中转器承担数据的中转及转发上位机的命令;上位机是数据搜集的终端设备,并且可以根据用户的需要对节点的采集时间间隔、休
[工业控制]
CAN总线冗余的船舶监控系统设计方案
针对我国造船业的发展现状和现有系统中存在的一些问题,提出一种基于冗余CAN总线设计的船舶监控系统。通过对CAN收发器的冗余,实现CAN总线物理层上的冗余,并在CAN总线上增加保护电路,最大可能地保证通信的可靠性。针对模拟通道的抗干扰设计方法,提出隔离式模拟量测量模块的设计方法。 关键词 模拟量隔离 CAN总线冗余设计 船舶监控系统 MC9S080Z16 TJA1050T 引言   近年来,我国的造船业取得了飞跃性的发展。据船舶工业统计快报报道,2007年,中国造船完工量1893万载重吨,比上年增长30%;新承接船舶订单9845万载重吨,比上年增长132%。随着自动化水平的提高,大大小小的船舶都安装了监控系统。目前船舶自动监
[模拟电子]
<font color='red'>CAN总线</font>冗余的船舶监控系统设计方案
CAN总线在机电一体化中的应用
0、引言 在传统的液压控制系统中,对系统的控制主要采用机械手段。而采用传统的机械方法控制液压系统,使得整个系统的体积增大,同时增加系统复杂度和维护难度。随着计算机技术、现场总线技术及人工智能等技术的发展,使越来越复杂的液压控制系统有良好的发展前景。基于以上特点,该试验台采用CAN总线技术实现实时控制,用于液压软管脉冲压力试验,对被试件施加脉冲压力以测试软管的寿命。 1、CAN接口电路的设计 CAN总线节点接口电路如图1所示。P89LPC932是单片封装的高性能、低功耗的带片内8KFlash的微控制器,其指令执行时间只需2到4个时钟周期,6倍于标准80C51器件。P 89LPC932内部主要集成了字节方式的
[单片机]
<font color='red'>CAN总线</font>在机电一体化中的应用
CAN总线到底要不要加共模电感?
在CAN节点的设计中,我们通常为了总线的通讯更为可靠,为CAN接口增加各种器件,但实际并非所有应用都需要,过多防护不仅增加成本,而且器件的寄生参数必然影响信号质量。本文将简单介绍共模电感用于总线的作用。 我们在实际应用中看到许多CAN产品会使用共模电感,但在常规测试中却看不到它对哪一项指标有明显改善,反而影响波形质量。许多工程师为了以防万一,确保可靠,会对CAN增加全面外围电路。CAN芯片已经有很好的抗静电,瞬态电压能力,有些收发器本身也有很好的EMC性能,我们在应用中可根据设计要求逐个增加防护、滤波等外围。对于CAN总线要不要加共模电感,我们主要从电磁兼容方面考虑。 1、共模电感 先介绍共模干扰,图 1、图 2分别给
[嵌入式]
<font color='red'>CAN总线</font>到底要不要加共模电感?
CAN总线互连中网关的设计与实现
   摘要: 本文系统地研究了CAN总线与以太网互连的技术要点,首先分析互连技术在实现过程中遇到的难点——协议转换。然后提出了一种CAN总线与以太网系统互连设计方案,并详细阐述了其系统的软硬件实现方法。为了提高系统的性能,采用高速微控制器SX52来设计嵌入式透明网关,详细介绍了用SX52在TCP/IP协议栈实现的方法,以SX52较强的网络协议处理能力保证了整个系统性能的提升。    关键词: CAN,协议转换,网关,SX52    1 引言   科技和社会的发展,使20世纪末的全球化市场竞争空前激烈。竞争中的企业逐渐开始实施计算机集成制造系统,采用系统集成、信息集成的观点来组织工业生产。在这个系统中,为实现现场智能设备之间
[安防电子]
三雄争霸 台积电拿下14纳米节点的理由!
7月11日消息,在台积电2016年成功以16纳米制程更佳的经济效益,击败众多竞争对手,顺利独拿苹果A10CPU的代工订单后,面临三星电子、英特尔两大竞争对手的动作频频,台积电在稳扎稳打推进7/10纳米等先进制程技术的研发进度,反而显得信心十足。 比起台积电技术领先、卓越制造及客户信任等为人所熟稔的致胜之道,为何三星电子、英特尔在14纳米制程这个技术节点未能取得胜利的原因,却很少被人提及。 据海外媒体分析报道,面对晶圆制造技术已走向7/10纳米制程,甚至接着就要挑战18吋晶圆世代的情形,全球晶圆代工市场的竞赛已进入差之毫厘、失之千里的格局,若三星电子、英特尔还打算用类似大猩猩的未进化方式来决斗,
[半导体设计/制造]
三雄争霸 台积电拿下14纳米<font color='red'>节点</font>的理由!
CAN总线故障分几种?如何检测
由于CAN网络采用多种协议,每个控制模块的端口在正常的情况下都有标准电压,因此电压测量法可用于判断线路是否有对地或电源短路、相线间短路等问题。 为了确定CAN H 或CAN L 导线是否损坏或信号是否正常,可以测量其对地电压(平均电压)。测量点通常在OBD诊断接口处,如下图所示。 诊断接口的6号针脚连接CAN H 导线,14号针脚连接CAN L 导线。如果诊断接口上连接有两组CAN总线,那么动力CAN总线使用6号和14号针脚,舒适总线使用3号和11号针脚。诊断接口的针脚含义如下图所示。 正常情况下,当CAN总线唤醒后,CAN H 对地电压约为2.656V,CAN L 对地电压约为2.319V,而且两者相加为4.975V
[汽车电子]
<font color='red'>CAN总线</font>故障分几种?如何检测
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved