labview汽车CAN总线.docx
《labview汽车CAN总线.docx》由会员分享,可在线阅读,更多相关《labview汽车CAN总线.docx(48页珍藏版)》请在冰豆网上搜索。
labview汽车CAN总线
摘要
随着欧Ⅴ排放法规的颁布实施,国际对汽车尾气排放也是越来越加的严格,所以降低汽车尾气排放迫在眉睫。
然而,只有通过加强对汽车的电子控制管理,这一最经济有效的办法才是适合中国的汽车工业。
汽车CAN总线网络是汽车电子控制管理系统中不可获取的重要组成部分。
它就相当于一个公共的信号通道,被用来传输各种汽车传感信号。
比如动力系统信号,传动系统信号,底盘系统信号,车身系统信号以及执行器信号等一些其他的信号。
本课题基于虚拟仪器LabVIEW程序开发的汽车CAN总线仿真软件,不仅能够实现实时监测汽车CAN总线信号,而且还能发送模拟的汽车CAN报文。
依据本思路建立的简易、廉价、便携的CAN总线通信仿真软件一方面可以模拟实际汽车当中的各种CAN报文的发送和接收,同时还可以与实际的汽车CAN总线进行通讯,从而通过该仿真软件可以实时的监测到汽车真实CAN网络当中的各种信号并以虚拟的仪表仪器直观的显示出来,从而降低了真实仪表仪器的成本,提高了经济性;另一方面,可以通过该仿真软件作为教学软件,让学生了解CAN总线技术和协议,提高学生对CAN总线网络的认知,同时还可以提高学生们的动手编程能力,从而来提高学生编程的系统构架。
关键词:
欧Ⅴ,仿真,CAN总线,模型,通信
Abstract
AsEuropeanVemissionregulationwaspublished,internationalrequirementaboutvehicles'exhaustgasemissionissharperandsharper.Soreducingcars'emissionisourtaskwhatmustbedonenow!
AndstrengtheningelectriccontrollingaboutvehiclesisaeconomicwaywhichisoptimaltoChina'scarindustry.
CAN—BUSnetisanindispensablepartincars'electriccontrolandmanagement.Itworksascommonaccesstotransmitvariablesensors'signalssuchasdynamicsystem'ssignals、transmissionsystem'ssignals、automobilechassissystem'ssignals、carbodysystem'ssignals、actuators'signalsandsoon.
Theissuebasedonavehicles'CAN—BUSsimulationsoftwaredevelopedbyLabVIEWprogramme,notonlycanmonitorcars'CAN—BUSreal—timesignals,butalsocansendsimulativecars'CAN—BUSmessage.Onaccountoftheideaabove,thispaperfinishedasimple、economicandconvenientCAN—BUScommunicativesimulationsoftware.Ontheonehand,thesoftwareisusedtosimulateCAN—BUSmessage'sendingandreceiving.Itcancommunicatewithrealcars'CAN—BUSnetmonitoringcars'variablesignalsinitsrealCAN—BUSshownbyvirtualdashbordwhichiseconomicbecauseofloweringthecostingofrealdashbord.Ontheotherhand,thesimulationsoftwarecanbeusedineducationshowingstudentstheskillanddealofCAN—BUSnet,makingthemknowofCAN—BUSnet.Andwhat'smore,students'programmingabilityisimproving,soisstudents'ideaaboutprogramming'systemframework.
Keywords:
EuropeanV,simulation,CAN—BUS,model,communication
1绪论
1.1背景概况
1.1.1汽车CAN总线概述
CAN(ControllerAreaNetwork)即控制器局域网络。
由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视。
国外已有许多大公司的产品采用了这一技术。
CAN总线技术最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。
现代汽车越来越多地采用电子装置控制,如发动机的定时、喷油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。
由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题便得到很好地解决。
汽车总线系统的研究与发展可以分为三个阶段:
1,研究汽车的基本控制系统(也称舒适总线系统),如照明、电动车窗、中央集控锁等。
2,研究汽车的主要控制系统(也称动力总线系统),如电喷ECU控制系统、ABS系统、自动变速箱等。
3,研究汽车各电子控制系统之间的综合、实时控制和信息反馈。
2003年以后,国际标准化组织陆续发布了ISO11898-1(CANdatalinklayer)标准、ISO11898-2(high-speedMAU)标准、ISO16845(CANconformancetestplan)标准、ISO11898-4(time-triggeredCAN)标准等一系列CAN总线相关标准,进一步规范了这一技术的发展,使得CAN总线普及速度进一步加快。
CAN总线优点:
1,信息共享
采用CAN总线技术可以实现各ECU之间的信息共享,减少不必要的线束和传感器。
例如具有CAN总线接口的电喷发动机,其它电器可共享其提供的转速、水温、机油压力、机油温度、油量瞬时流速等,这样一方面可省去额外的传感器,另一方面可以将这些数据显示在仪表上,便于司机检查发动机运行工况,从而便于发动机的保养维护。
2,减小线束
新型电子通讯产品的出现对汽车的综合布线和信息的共享交互提出了更高的要求,传统的电气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然造成庞大的布线系统。
据统计一辆采用传统布线方法的高档汽车中,导线长度可达2000米,电气节点达1500个,而且该数字大约每十年增长1倍。
这种传统布线方法不能适应汽车的发展。
CAN总线可有效减少线束长度,节省空间。
例如某车针对车门、后视镜、摇窗机、门锁控制等功能的传统布线需要20~30根,应用总线CAN则只需要2根。
无论从材料成本还是工作效率看,传统布线方法都将不能适应汽车的发展。
下图分别为相同节点的传统点对点通讯方式和使用总线的通讯方式,从图可以直观地比较线束的变化(图中节点之间的连线仅表示节点间存在的信息交换,并不代表线束的多少)。
图1-1传统的节点通讯方式图1-2CAN总线通讯方式
3,关联控制
在一定事故下,需要对各ECU进行关联控制,而这是传统汽车控制方法难以完成的,而CAN总线技术可以实现多ECU的实时关联控制。
在发生碰撞事故时,汽车上的多个气囊可通过CAN协调工作,它们通过传感器感受碰撞信号,通过CAN总线将传感器信号传送到一个中央处理器内,控制各安全气囊的启动弹出动作。
1.1.2LabVIEW的概述
虚拟仪器(VirtualInstrument,简称VI)是基于计算机系统的数字化测量测试仪器,它充分利用现有计算机资源,并配以独特设计的仪器硬件和专用软件,能实现普通仪器的全部功能以及一些在普通仪器上无法实现的特殊功能,常被称作“软件仪器”。
它利用数据采集模块完成一般测量测试仪器的数据采集功能,利用计算机系统完成一般测量测试仪器的数据分析和输出显示等功能。
虚拟仪器是计算机技术、现代测量技术共同发展的结晶,代表着当今仪器发展的最新趋势。
LabVIEW是虚拟仪器领域中最具有代表性的图形化编程开发平台,是目前国际上首推并应用最广的数据采集和控制开发环境之一,主要应用于仪器控制、数据采集、数据分析、数据显示等领域,并适用于多种不同的操作系统平台。
与传统程序语言不同,LabVIEW采用强大的图形化语言(G语言)编程,面向测试工程师而非专业程序员,编程非常方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控制能力等特点。
使用LabVIEW开发环境,用户可以创建32位的编译程序,从而为常规的数据采集、测试、测量等任务提供了更快的运行速度。
LabVIEW是真正的编译器,用户可以创建独立的可执行文件,能够脱离开发环境而单独运行。
1.1.3汽车CAN总线仿真软件发展
随着电子技术的提高,汽车电子也在快速的发展,这就导致了机械式仪器仪表跟不上汽车电子的发展,同时一种实时的电子仪器仪表需要被快速的替代机械式仪器仪表。
为了降低成本提高精度,一种汽车CAN总线仿真软件需要被开发出来实时的去监测汽车CAN总线信号,从而来提高汽车的电子控制精度和高控制性能。
以前的方法是通过用仪器仪表来显示,精度差,从而带来的误差也较大。
所以需要一种虚拟汽车CAN总线仿真软件来监测CAN总线当中的各种信号,不仅成本很低,而且精度也很高。
同时随着计算机技术的快速发展,现代的PC计算机有着很高的计算处理功能,为像LabVIEW这样的虚拟软件或者VB,VC一些编程软件提供了一个高性能的平台,借助这些软件来编写虚拟的汽车CAN总线仿真软件系统,从而实时的去监测汽车CAN总线当中的各种信号,同时也可以去发送模拟的汽车CAN报文,提高汽车控制系统的开发精度和降低开发成本。
1.2国内研究现状
通过搜集国内一些相关文献如:
1,桂林航天工业高等专科学校,覃维献,《LABVIEW开发汽车CAN总线数据采集系统》,该系统自己设计硬件和驱动,这样变导致了开发周期长,经济性较差,硬件部分的功能不够强大,同时对底层的硬件测试也较难。
然而本课题直接跳过硬件部分,购买国内某款非常成熟的USB-CAN通讯转换模块,只需要了解该转换模块的功能以及它的定义还有工作方式,就可以直接进行本课题的研究开发,这样就会大大降低研究开发时间,降低成本。
2,同济大学,刘翔,《基于LabVIEW和CAN总线的汽车数据采集监测系统》,该系统是利用周立功CAN接口卡调用库函数节点实现的仿真软件编程,但是该系统只是一个单向的接受CAN报文并解读,没有发送CAN报文的功能,这样就导致了局限性,而没有很好的扩展性。
本课题的仿真系统可以实时的根据采集对象的不同来进行程序的微调,从而来实现该仿真系统的扩展性和广泛的实用性。
1.2课题研究的内容和意义
本课题是基于LabVIEW和USB-CAN的总线通信系统的仿真软件开发,主要是开发出一套仿真系统能够实时监测汽车CAN总线网络中的各种信号并以虚拟仪表仪器直观的显示出来,同时又可以发送模拟的汽车CAN报文,同时还可以实现故障诊断。
本课题的意义在于:
一方面,可以模拟实际汽车当中的各种CAN报文的发送和接收,同时还可以与实际的汽车CAN总线进行通讯,从而通过该仿真软件可以实时的监测到汽车真实CAN网络当中的各种信号并以虚拟的仪表仪器直观的显示出来,从而降低了真实仪表仪器的成本,提高了经济性;
另一方面,可以通过该仿真软件作为教学软件,让学生了解CAN总线技术和协议,提高学生对CAN总线网络的认知,同时还可以提高学生们的动手编程能力,从而来提高学生编程的系统构架;
1.4主要工作
本课题主要有以下工作
(1)收集国内外相关LabVIEW仿真汽车CAN总线资料,并对汽车CAN总线有所了解和掌握。
(2)熟悉操作LabVIEW编程软件,运用其中的例子基本熟练操作此编程软件。
(3)结合科瑞兴业有限公司提供的USB-CAN通讯转换模块,采用调用库函数节点来编写仿真软件模型。
(4)对基本上成型的仿真软件进行CAN报文传输的调试和测试。
(5)对调试好的仿真软件进行人机界面的美工优化设计。
(6)最后是生成仿真软件的应用程序。
(7)收集调查资料和测试数据,完成毕业论文。
2系统的硬件结构
2.1PC机
该系统是由两台或者两台以上(最多16台)的支持WIN98、WIN2000和XP操作系统环境的可移动便携式电脑构成。
然后每台电脑上都安装有基于LabVIEW编写的程序来仿真模拟汽车不同板块的ECU,接入CAN总线当中来进行发送和接收CAN报文。
2.2CAN接口卡
本课题选用的是由北京科瑞兴业科技有限公司提供USB-CAN通讯转换模块智能CAN接口卡(类型是K-7121),它带有1路CAN接口具有USB接口的高性能CAN总线通讯适配卡,使PC机方便地连接到CAN总线上构成一个节点,从而实现CAN2.0协议的数据通讯;
该转换模块上自带500个字节的数据存储空间,可达到每秒2000帧的传输速度,保证数据不丢失。
该转换模块USB2.0接口,最高可达12Mbps的传输速率;CAN控制器数据传送速率可由用户设定:
5Kbps~1Mbps;支持CAN2.0B协议(兼容CAN2.0A),符合ISO/IS11898标准;最高帧流量达到2500帧/秒;CAN上传USB的模块批量上传缓冲区最大为Buffer[300][13]=3900字节,即等于300个CAN的扩展帧长,USB下传CAN的模块批量下传缓冲区最大为Buffer=400字节。
供电方式:
USB总线供电,或使用外接电源(+10V~+30V,400mA);
磁铁隔离:
DC2500V;
工作温度:
0℃~70℃;
运行环境:
Win9X/Me、Win2000/XP操作系统。
如下图是CAN总线连接图:
图2—1CAN网络结构
为了增强CAN通讯的可靠性,CAN总线网络的两个端点通常要加入终端匹配电阻,如图3.1所示。
终端匹配电阻的大小由传输电缆的特性阻抗所决定。
例如双绞线的特性阻抗为120Ω,则总线上的两个端点也应集成120Ω终端电阻。
注意:
CAN通讯线可以使用双绞线、屏蔽双绞线。
若通讯距离超过1KM,应保证线的截面积大于Φ1.0mm2,具体规格应根据距离而定,常规是随距离的加长而适当加大。
如下图是转换模块图片:
图2-2K7121USB-CAN通讯转换模块
3系统的软件设计
系统硬件构成简单,结合硬件工作特性,主要围绕软件设计方面进行主要的开发工作。
3.1软件系统设计
本课题仿真软件主要包括以下三项功能:
1,发送模拟汽车CAN报文至CAN总线当中。
2,从CAN总线当中接收汽车CAN报文。
3,提供人机界面以设置不同的波特率和数据帧格式。
4,根据需求将发送和接收的汽车CAN报文数据保存以便后续的分析。
根据上述需求,该仿真软件系统包括1个主控程序与2个功能子程序:
1,主控程序——用于启动,设置以及关闭,并且负责处理所有的人机交换界面的操作。
2,数据发送和接收子程序——利用USB-CAN通讯转换模块来发送和接收模拟的汽车CAN报文数据。
3,数据列表及保存子程序——将发送和接收的汽车CAN报文以列表的方式显示,其中列表当中有序号,时间,帧类型,帧长度,帧ID,帧数据。
并且保存发送和
接收数据列表。
以上3个程序主要是在顺序结构,条件结构以及While结构程序中运行。
主控程序随软件启动运行,它可以根据用户的需求,可以设置波特率以及帧类型,同时可以实时调度其余2个子程序的运行,并将各子程序的运行结果传递给相关功能面板的显示控件以反馈给用户,子程序功能就是实现汽车CAN报文数据的发送和接收以及列表显示、存储。
当主控程序正常启动接口卡并使其工作后,数据接收子程序才能运行,数据列表与保存子程序,必须在前两者正常工作后,才能根据用户要求执行相关功能。
如图3—1软件程序结构所示:
图3—1软件程序结构图
CAN报文数据的发送和接收是系统监测功能的基础,而软件本身需要依靠接口卡从CAN总线接收数据,因此,要实现所有的功能,必须首先正确启动USB-CAN通讯转换模块,初始化其相关运行参数,使其可以正常运行。
USB-CAN转换模块智能CAN接口卡提供了大量的VCI函数库(应用程序接口),这些函数可以从接口卡的驱动文件K7121DLL.dll中导出,并可以在LabVIEW中调用,实现对接口卡的启动、设置等相关操作。
具体的调用和设置在软件后面板中将会展示。
3.2软件的前面板设计
前面板设计主要有三大块:
1,配置设备板块。
2,模拟数据调整板块。
3,接收数据显示板块。
7
3
2
6
5
4
图3-2配置和调整板块
如图3-1所示,该界面总共有7个功能显示控件;
1,打开设备—当程序运行时,单击“打开设备”,软件将会自动去识别硬件,从而实现软件和硬件的连接,然后进行下一步程序运行。
2,退出—当程序运行时,单击“退出”,整个程序将会停止运行,程序处于休眠状态。
3,帧类型—当程序运行时,单击“帧类型”,选择接收和发送的CAN报文的帧格式,主要是标准帧和扩展帧两种。
4,波特率—当程序运行时,单击“波特率”,选择接收和发送的CAN报文的传输速度,主要有20K,100K,250K,500K四种波特率。
5,系统时间—当程序运行时,该显示控件会主动的去读取电脑当前时间,并显示出来,然后可以作为CAN报文发送和接收的时间。
6,设备状态—当程序运行时,单击“打开设备”,程序会自动的去识别硬件,当识别成功,该显示控件会显示“设备打开成功!
”。
当由其他原因导致的设备打开失败,该显示控件会显示“设备打开失败!
”
7,数据调整—该控件是输入控件,通过改变数值的大小来改变发送的CAN报文数据,从而发送到CAN总线上。
图3—3显示仪表板块
如图3—3所示,该界面主要是仪表控件显示功能:
该界面的功能就是显示汽车CAN报文当中的数据。
一个CAN报文当中最多有8个信号数据,然后每个信号数据是8位,最大值为225。
该界面主要是将CAN报文中的每个信号数据以仪表的方式显示,这样便很直观的展示出来。
如如3—3所示,该界面有发动机仪表,燃油压力仪表,机油压力仪表,大气压力仪表,大气温度仪表,进气温度仪表,冷却水温度仪表,燃油温度仪表,机油温度仪表,机舱内温度仪表,路面温度仪表。
该界面可以灵活的改变,通过对后面板程序的处理可以按照需求去换其他信号的虚拟仪表,还可以增加更多的虚拟仪表,灵活性非常大。
如果作为一个教学软件的话,这样提高学生对汽车CAN总线技术的理解,还可以锻炼学生的编程思维和能力。
同时,还可以根据不同ECU的通讯协议,去改变该软件的一些细节去适应各种不同协议的通讯。
4
3
2
1
图3—4报文列表及保存
如图3-4所示,该界面是汽车CAN报文列表显示及保存板块,主要功能有下:
1,存储路径—当程序运行时,可以点击该控件从而来选取汽车CAN报文的路径,把CAN报文数据存储在我们想要的地方。
2,进制转换—当程序运行时,单击该控件从而来选取以什么进制的格式显示汽车CAN报文当中的信号数据。
(该格式为十进制和十六进制两种数据格式)
3,存储—当程序运行时,单击该控件以保存发送和接收的汽车CAN报文,以便于后期的数据分析和处理。
4,CAN报文数据列表—这是一个列表显示控件,显示接收和发送的汽车CAN报文。
该列表当中,第一列是发送和接收CAN报文序号,以便查看到发送的每一条CAN报文。
第二列是发送和接收CAN报文时间。
第三列是发送和接收每条CAN报文的ID,从而确定地址。
第四列是每条CAN报文的数据的类型(标准帧和扩展帧两种)。
第五列是每条CAN报文当中数据的长度。
第六列是每条CAN报文当中的信号数据(该数据作为后期的分析和处理)。
3.3软件的后面板设计
该软件的后面板设计主要是采用了“顺序结构”,“While结构”和“条件结构’。
主要是采用调用库函数节点的方法来实现软件和硬件的相结合。
如下图3—5所示:
图3—5调用库函数节点
该函数支持众多数据类型和调用规范。
该节点可用于调用大多数标准或自定义DLL或共享库中的函数。
如需调用含有ActiveX对象的DLL,可使用打开自动化函数与属性节点和调用节点。
3.3.1软件设备的打开和关闭
1,设备打开设计
调用转换模块的打开设备函数DeviceOpen(ULONGmindex),函数参数:
mindex是指定设备序号(最多可以连接16个设备),函数返回值:
1,函数调用成功;0,函数调用失败。
该函数主要是用来打开连接设备。
如下图3—6所示:
(a)(b)
图3—6调用DeviceOpen函数
当该函数调用成功之后,设备打开,函数返回值为1,通过条件结构此时设备状态文本显示控件将会显示“设备打开成功!
”,同时状态指示灯也会亮。
当该函数调用失败或者设备连接失败,函数返回值为0,通过条件结构此时设备状态文本显示控件将会显示
“设备打开失败!
”,同时状态指示灯也是暗的。
如下图3—7程序所示:
(a)(b)
图3—7设备连接状态显示
2,设备关闭设计
调用转换模块的关闭设备函数DeviceClose(ULONGmindex),函数参数:
mindex是指定设备序号(最多可以连接16个设备),没有函数返回值。
该函数主要是用来关闭设备的。
如下图3—8所示:
图3—8调用DeviceClose函数
当用户按需要停止或者结束汽车CAN报文的发送和接收时,单击退出控件时,立即调用关闭设备函数,从而来结束汽车CAN报文的发送和接收,整个程序处于休眠状态。
3.3.2CAN总线配置
CAN总线配置设计主要是针对CAN总线的帧类型,首地址,末地址,波特率进行设计。
调用转换模块的配置CAN总线函数CanWriteConfig(ULONGmindex,PUCHARbdata),函数参数说明:
mindex:
指定设备序号。
bdata:
指向配置参数缓存区的指针,bdata中的参数用于设定CAN接口的参数,共14个字节。
函数返回值:
1:
表示函数调用成功0:
表示函数调用失败。
如下图3—9配置函数调用:
(a)(b)
图3—9调用CanWriteConfig函数
如下图3—10对bdata说明:
图3—10配置参数bdate定义
1,帧类型设计
帧类型只有标准帧和扩展帧两种格式,它们主要是帧ID长度不一样。
标准帧的ID是11位,然而扩展帧的ID是29位,这样扩展帧可以携带更多的CAN报文。
该设计采用下拉菜单的方式来设计,标准帧对应数字0,扩展帧对应数字1,从而改变下拉菜单内容来改变输出的数字,以便调用相对应的函数内容。
如下图3—11对下拉菜单的设计:
(a)(b)
(c)
图3