微波EDA网,见证研发工程师的成长! 2025婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌熺紒銏犳灍闁稿骸顦…鍧楁嚋闂堟稑顫岀紓浣哄珡閸パ咁啇闁诲孩绋掕摫閻忓浚鍘奸湁婵犲﹤鎳庢禍鎯庨崶褝韬┑鈥崇埣瀹曠喖顢橀悙宸€撮梻鍌欑閹诧繝鎮烽妷褎宕叉慨妞诲亾鐎殿喖顭烽弫鎰緞婵犲嫷鍚呴梻浣瑰缁诲倸螞椤撶倣娑㈠礋椤撶姷锛滈梺缁樺姦閸撴瑩宕濋妶鍡欑缁绢參顥撶弧鈧悗娈垮枛椤兘骞冮姀銈呭窛濠电姴瀚倴闂傚倷绀侀幉锟犲箰閸℃稑宸濇い鏃傜摂閸熷懐绱撻崒姘偓鎼佸磹閻戣姤鍤勯柤鎼佹涧閸ㄦ梹銇勯幘鍗炵仼闁搞劌鍊块弻娑㈩敃閿濆棛顦ラ梺钘夊暟閸犳牠寮婚弴鐔虹闁绘劦鍓氶悵鏇㈡⒑缁嬫鍎忔俊顐g箞瀵鈽夊顐e媰闂佸憡鎸嗛埀顒€危閸繍娓婚柕鍫濇嚇閻涙粓鏌熼崙銈嗗04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;闁绘劗鍎ら崑瀣煟濡崵婀介柍褜鍏涚欢姘嚕閹绢喖顫呴柍鈺佸暞閻濇洟姊绘担钘壭撻柨姘亜閿旇鏋ょ紒杈ㄦ瀵挳濮€閳锯偓閹风粯绻涙潏鍓хК婵炲拑绲块弫顔尖槈閵忥紕鍘遍梺鍝勫暊閸嬫挻绻涢懠顒€鏋涢柣娑卞櫍瀵粙顢樿閺呮繈姊洪棃娑氬婵炶绲跨划顓熷緞婵犲孩瀵岄梺闈涚墕濡稒鏅堕柆宥嗙厱閻庯綆鍓欐禒閬嶆煙椤曞棛绡€濠碉紕鍏橀崺锟犲磼濠婂啫绠洪梻鍌欑閹碱偄煤閵娾晛纾绘繛鎴欏灩閻掑灚銇勯幒鍡椾壕濠电姭鍋撻梺顒€绉撮悞鍨亜閹哄秷鍏岄柛鐔哥叀閺岀喖宕欓妶鍡楊伓24闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;闁绘劗鍎ら崑瀣煟濡崵婀介柍褜鍏涚欢姘嚕閹绢喖顫呴柍鈺佸暞閻濇牠姊绘笟鈧埀顒傚仜閼活垱鏅堕幍顔剧<妞ゆ洖妫涢崚浼存懚閺嶎灐褰掓晲閸噥浠╁銈嗘⒐濞茬喎顫忓ú顏呭仭闁规鍠楅幉濂告⒑閼姐倕鏋傞柛搴f暬楠炲啫顫滈埀顒勫春閿熺姴绀冩い蹇撴4缁辨煡姊绘担铏瑰笡闁荤喆鍨藉畷鎴﹀箻缂佹ḿ鍘遍梺闈浨归崕鎶藉春閿濆洠鍋撳▓鍨灈妞ゎ參鏀辨穱濠囧箹娴e摜鍘搁梺绋挎湰閻喚鑺辨禒瀣拻濞达絽鎳欒ぐ鎺戝珘妞ゆ帒鍊婚惌娆撴煙鏉堟儳鐦滈柡浣稿€块弻銊╂偆閸屾稑顏� 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;闁绘劗鍎ら崑瀣煟濡崵婀介柍褜鍏涚欢姘嚕閹绢喖顫呴柣妯荤垹閸ャ劎鍘遍柣蹇曞仜婢т粙鎮¢姘肩唵閻熸瑥瀚粈鈧梺瀹狀潐閸ㄥ潡銆佸▎鎴犵<闁规儳澧庣粣妤呮⒒娴e憡鍟炴い顓炴瀹曟﹢鏁愰崱娆屽亾濞差亝鍊垫鐐茬仢閸旀碍绻涢懠顒€鈻堢€规洘鍨块獮姗€鎳滈棃娑欑€梻浣告啞濞诧箓宕滃☉銏℃櫖婵炴垯鍨洪埛鎴︽煕濞戞ǚ鐪嬫繛鍫熸礀閳规垿鎮欑拠褑鍚梺璇″枙閸楁娊銆佸璺虹劦妞ゆ巻鍋撻柣锝囧厴瀹曞ジ寮撮妸锔芥珜濠电姰鍨煎▔娑㈩敄閸℃せ鏋嶉悘鐐缎掗弨浠嬫煟濡櫣浠涢柡鍡忔櫅閳规垿顢欓懞銉ュ攭濡ょ姷鍋涢敃銉ヮ嚗閸曨垰绠涙い鎺戝亰缁遍亶姊绘担绛嬫綈鐎规洘锕㈤、姘愁樄闁哄被鍔戞俊鍫曞幢閺囩姷鐣鹃梻渚€娼ч悧鍡欌偓姘煎灦瀹曟鐣濋崟顒傚幈濠电偛妫楃换鎴λ夐姀鈩冨弿濠电姴鎳忛鐘电磼鏉堛劌绗掗摶锝夋煠婵劕鈧倕危椤掑嫭鈷掑ù锝呮嚈瑜版帗鏅濋柕鍫濇嫅閼板潡姊洪鈧粔鎾倿閸偁浜滈柟鍝勭Х閸忓矂鏌涢悢鍝ュ弨闁哄瞼鍠栧畷娆撳Χ閸℃浼�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚敐澶婄闁挎繂鎲涢幘缁樼厱濠电姴鍊归崑銉╂煛鐏炶濮傜€殿喗鎸抽幃娆徝圭€n亙澹曢梺鍛婄缚閸庤櫕绋夊澶嬬厸鐎广儱楠搁獮妤呮煟閹惧瓨绀冮柕鍥у楠炲洭宕滄担鑽锋垹绱撴担鎻掍壕闂侀€炲苯澧扮紒杈ㄥ浮閹瑩顢楅埀顒勫礉閵堝鐓熼煫鍥ㄦ⒒缁犵偤鏌涢埡鍐ㄤ槐妤犵偛顑夐弫鍌炴寠婢跺鐫忛梻浣筋嚙妤犵ǹ锕㈡潏銊﹀弿闁圭虎鍟熸径濞炬斀闁割偁鍨婚敍婵囩箾鏉堝墽鍒伴柟纰卞亰椤㈡挸鐣濋崟顒傚幈闂侀潧枪閸庢娊宕洪敐鍥e亾濞堝灝鏋涙い顓㈡敱娣囧﹪骞栨担鍝ュ幐闂佺ǹ鏈惌顔捐姳娴犲鈷掑ù锝呮嚈瑜版帒瀚夋い鎺戝€婚惌娆撴煙鏉堟儳鐦滈柡浣稿€块弻銊╂偆閸屾稑顏�
首页 > 硬件设计 > 嵌入式设计 > 车用CAN总线网络快速原型的设计实现

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

时间:03-16 来源:互联网 点击:
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通信测试功能。

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

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻濞戔懞鍥偨缁嬪灝鐎俊銈忕到閸燁偆绮诲☉妯忓綊鏁愰崨顔跨缂備礁顑勯懗鍓佹閹捐纾兼慨姗嗗厴閸嬫捇鎮滈懞銉モ偓鍧楁煥閺囨氨鍔嶉柟鍐茬焸濮婄粯鎷呴崨濠傛殘闂佽崵鍠嗛崕鎶藉箲閵忕媭娼ㄩ柍褜鍓欓锝嗙節濮橆厼浜滅紒鐐妞存悂寮查鍕拺闁圭ǹ娴风粻鎾寸箾鐠囇呭埌閺佸牊淇婇妶鍛櫤闁稿鍓濈换婵囩節閸屾稑娅e銈忕到閵堟悂骞冩禒瀣垫晬婵炴垶蓱鐠囩偤姊虹拠鈥虫灍闁荤噦濡囬幑銏犫攽鐎n亞鍊為梺闈浤涢崘銊ヮ洭濠电姷鏁告慨鐑藉极閹间礁纾规い鏍仜閻掑灚銇勯幒鎴濐仼缁炬儳顭烽弻鐔煎礈瑜忕敮娑㈡煟閹惧娲撮柟顔筋殜閺佹劖鎯旈垾鑼晼濠电姭鎷冮崘顏冪驳闂侀€涚┒閸斿秶鎹㈠┑瀣窛妞ゆ洖鎳嶉崫妤呮⒒娴e憡璐¢柟铏尵閳ь剚姘ㄦ晶妤佺┍婵犲洤绠瑰ù锝堝€介妸鈺傜叆闁哄啠鍋撻柛搴$-缁辩偤骞掑Δ浣叉嫽闂佺ǹ鏈悷銊╁礂瀹€鍕厵闁惧浚鍋呭畷宀€鈧娲滈弫璇差嚕娴犲鏁囬柣鎰問閸炵敻姊绘担鑺ョ《闁革綇绠撻獮蹇涙晸閿燂拷...
图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节点中。

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

2.3.3 CAN总线性能分析的实现

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

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top