labview汽车CAN总线

上传人:无*** 文档编号:180884066 上传时间:2023-01-08 格式:DOC 页数:42 大小:4.61MB
收藏 版权申诉 举报 下载
labview汽车CAN总线_第1页
第1页 / 共42页
labview汽车CAN总线_第2页
第2页 / 共42页
labview汽车CAN总线_第3页
第3页 / 共42页
资源描述:

《labview汽车CAN总线》由会员分享,可在线阅读,更多相关《labview汽车CAN总线(42页珍藏版)》请在装配图网上搜索。

1、labview汽车CAN总线摘要随着欧排放法规的颁布实施,国际对汽车尾气排放也是越来越加的严格,所以降低汽车尾气排放迫在眉睫。然而,只有通过加强对汽车的电子控制管理,这一最经济有效的办法才是适合中国的汽车工业.汽车CAN总线网络是汽车电子控制管理系统中不可获取的重要组成部分。它就相当于一个公共的信号通道,被用来传输各种汽车传感信号。比如动力系统信号,传动系统信号,底盘系统信号,车身系统信号以及执行器信号等一些其他的信号。本课题基于虚拟仪器LabVIEW程序开发的汽车CAN总线仿真软件,不仅能够实现实时监测汽车CAN总线信号,而且还能发送模拟的汽车CAN报文。依据本思路建立的简易、廉价、便携的C

2、AN总线通信仿真软件一方面可以模拟实际汽车当中的各种CAN报文的发送和接收,同时还可以与实际的汽车CAN总线进行通讯,从而通过该仿真软件可以实时的监测到汽车真实CAN网络当中的各种信号并以虚拟的仪表仪器直观的显示出来,从而降低了真实仪表仪器的成本,提高了经济性;另一方面,可以通过该仿真软件作为教学软件,让学生了解CAN总线技术和协议,提高学生对CAN总线网络的认知,同时还可以提高学生们的动手编程能力,从而来提高学生编程的系统构架。关键词:欧,仿真,CAN总线,模型,通信AbstractAs European V emission regulation was published,interna

3、tional requirement about vehicles exhaust gas emission is sharper and sharper.So reducing cars emission is our task what must be done now! And strengthening electric controlling about vehicles is a economic way which is optimal to Chinas car industry。CANBUS net is an indispensable part in cars elect

4、ric control and management. It works as common access to transmit variable sensors signals such as dynamic systems signals、transmission systems signals、automobile chassis systems signals、car body systems signals、actuators signals and so on.The issue based on a vehicles CANBUS simulation software dev

5、eloped by LabVIEW programme,not only can monitor cars CANBUS real-time signals, but also can send simulative cars CANBUS message。 On account of the idea above, this paper finished a simple、economic and convenient CANBUS communicative simulation software。 On the one hand, the software is used to simu

6、late CANBUS message sending and receiving. It can communicate with real cars CANBUS net monitoring cars variable signals in its real CAN-BUS shown by virtual dashbord which is economic because of lowering the costing of real dashbord. On the other hand,the simulation software can be used in educatio

7、n showing students the skill and deal of CANBUS net, making them know of CANBUS net。 And whats more, students programming ability is improving, so is students idea about programming system framework. Key words: European V, simulation, CANBUS, model,communication目 录 1 绪论11。1背景概况11。1。1汽车CAN总线概述11.1.2L

8、abVIEW的概述21。1。3汽车CAN总线仿真软件发展21。2 国内研究现状31.2课题研究的内容和意义31。4 主要工作42 系统的硬件结构52.1 PC机52。2 CAN接口卡53 系统的软件设计73。1 软件系统设计73。2 软件的前面板设计83.3 软件的后面板设计113。3。1 软件设备的打开和关闭123。3。2 CAN总线配置143.3.3 CAN报文组成183。3。3 CAN报文内容组成及发送183.3.4 CAN报文接收及拆分显示213。3.5 CAN报文列表及保存253。3.6 软件后面板总程序图284 测试结果与验证304.1 仿真软件CAN报文的发送和接收测试304。2

9、 集成测试345 突破的技术难点总结37结论与展望38致谢39参考文献40IV1 绪论1.1 背景概况1.1.1 汽车CAN总线概述CAN ( Controller Area Network ) 即控制器局域网络。由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视.国外已有许多大公司的产品采用了这一技术。CAN总线技术最初是由德国的BOSCH公司为汽车监测、控制系统而设计的.现代汽车越来越多地采用电子装置控制,如发动机的定时、喷油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题

10、,采用CAN总线上述问题便得到很好地解决。汽车总线系统的研究与发展可以分为三个阶段:1, 研究汽车的基本控制系统(也称舒适总线系统),如照明、电动车窗、中央集控锁等。2, 研究汽车的主要控制系统(也称动力总线系统),如电喷ECU控制系统、ABS系统、自动变速箱等。3, 研究汽车各电子控制系统之间的综合、实时控制和信息反馈。2003年以后,国际标准化组织陆续发布了ISO118981(CAN datalink layer)标准、ISO118982(highspeed MAU)标准、ISO16845(CAN conformance test plan)标准、ISO118984(time-trigge

11、red CAN)标准等一系列CAN总线相关标准,进一步规范了这一技术的发展,使得CAN总线普及速度进一步加快。CAN总线优点:1,信息共享采用CAN总线技术可以实现各ECU之间的信息共享,减少不必要的线束和传感器。例如具有CAN总线接口的电喷发动机,其它电器可共享其提供的转速、水温、机油压力、机油温度、油量瞬时流速等,这样一方面可省去额外的传感器,另一方面可以将这些数据显示在仪表上,便于司机检查发动机运行工况,从而便于发动机的保养维护。 2,减小线束新型电子通讯产品的出现对汽车的综合布线和信息的共享交互提出了更高的要求,传统的电气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然造成

12、庞大的布线系统。据统计一辆采用传统布线方法的高档汽车中,导线长度可达2000米,电气节点达1500个,而且该数字大约每十年增长1倍.这种传统布线方法不能适应汽车的发展。CAN总线可有效减少线束长度,节省空间.例如某车针对车门、后视镜、摇窗机、门锁控制等功能的传统布线需要2030根,应用总线CAN则只需要2根.无论从材料成本还是工作效率看,传统布线方法都将不能适应汽车的发展。下图分别为相同节点的传统点对点通讯方式和使用总线的通讯方式,从图可以直观地比较线束的变化(图中节点之间的连线仅表示节点间存在的信息交换,并不代表线束的多少). 图1-1 传统的节点通讯方式 图1-2 CAN总线通讯方式 3,

13、关联控制在一定事故下,需要对各ECU进行关联控制,而这是传统汽车控制方法难以完成的,而CAN总线技术可以实现多ECU的实时关联控制。在发生碰撞事故时,汽车上的多个气囊可通过CAN协调工作,它们通过传感器感受碰撞信号,通过CAN总线将传感器信号传送到一个中央处理器内,控制各安全气囊的启动弹出动作。1.1.2 LabVIEW的概述虚拟仪器( Virtual Inst rument, 简称VI) 是基于计算机系统的数字化测量测试仪器, 它充分利用现有计算机资源, 并配以独特设计的仪器硬件和专用软件, 能实现普通仪器的全部功能以及一些在普通仪器上无法实现的特殊功能, 常被称作“软件仪器”。它利用数据采

14、集模块完成一般测量测试仪器的数据采集功能, 利用计算机系统完成一般测量测试仪器的数据分析和输出显示等功能.虚拟仪器是计算机技术、现代测量技术共同发展的结晶, 代表着当今仪器发展的最新趋势。LabVIEW 是虚拟仪器领域中最具有代表性的图形化编程开发平台,是目前国际上首推并应用最广的数据采集和控制开发环境之一, 主要应用于仪器控制、数据采集、数据分析、数据显示等领域, 并适用于多种不同的操作系统平台。与传统程序语言不同, LabVIEW采用强大的图形化语言(G语言) 编程, 面向测试工程师而非专业程序员, 编程非常方便, 人机交互界面直观友好, 具有强大的数据可视化分析和仪器控制能力等特点。使用

15、LabVIEW 开发环境, 用户可以创建32位的编译程序, 从而为常规的数据采集、测试、测量等任务提供了更快的运行速度。LabVIEW 是真正的编译器, 用户可以创建独立的可执行文件, 能够脱离开发环境而单独运行.1.1.3 汽车CAN总线仿真软件发展随着电子技术的提高,汽车电子也在快速的发展,这就导致了机械式仪器仪表跟不上汽车电子的发展,同时一种实时的电子仪器仪表需要被快速的替代机械式仪器仪表.为了降低成本提高精度,一种汽车CAN总线仿真软件需要被开发出来实时的去监测汽车CAN总线信号,从而来提高汽车的电子控制精度和高控制性能.以前的方法是通过用仪器仪表来显示,精度差,从而带来的误差也较大.

16、所以需要一种虚拟汽车CAN总线仿真软件来监测CAN总线当中的各种信号,不仅成本很低,而且精度也很高。同时随着计算机技术的快速发展,现代的PC计算机有着很高的计算处理功能,为像LabVIEW这样的虚拟软件或者VB,VC一些编程软件提供了一个高性能的平台,借助这些软件来编写虚拟的汽车CAN总线仿真软件系统,从而实时的去监测汽车CAN总线当中的各种信号,同时也可以去发送模拟的汽车CAN报文,提高汽车控制系统的开发精度和降低开发成本。1.2 国内研究现状通过搜集国内一些相关文献如:1,桂林航天工业高等专科学校,覃维献,LABVIEW 开发汽车CAN总线数据采集系统,该系统自己设计硬件和驱动,这样变导致

17、了开发周期长,经济性较差,硬件部分的功能不够强大,同时对底层的硬件测试也较难. 然而本课题直接跳过硬件部分,购买国内某款非常成熟的USBCAN通讯转换模块,只需要了解该转换模块的功能以及它的定义还有工作方式,就可以直接进行本课题的研究开发,这样就会大大降低研究开发时间,降低成本。2,同济大学,刘翔,基于LabVIEW和CAN总线的汽车数据采集监测系统,该系统是利用周立功CAN接口卡调用库函数节点实现的仿真软件编程,但是该系统只是一个单向的接受CAN报文并解读,没有发送CAN报文的功能,这样就导致了局限性,而没有很好的扩展性.本课题的仿真系统可以实时的根据采集对象的不同来进行程序的微调,从而来实

18、现该仿真系统的扩展性和广泛的实用性.1.2 课题研究的内容和意义本课题是基于LabVIEW和USB-CAN的总线通信系统的仿真软件开发,主要是开发出一套仿真系统能够实时监测汽车CAN总线网络中的各种信号并以虚拟仪表仪器直观的显示出来,同时又可以发送模拟的汽车CAN报文,同时还可以实现故障诊断。本课题的意义在于:一方面,可以模拟实际汽车当中的各种CAN报文的发送和接收,同时还可以与实际的汽车CAN总线进行通讯,从而通过该仿真软件可以实时的监测到汽车真实CAN网络当中的各种信号并以虚拟的仪表仪器直观的显示出来,从而降低了真实仪表仪器的成本,提高了经济性;另一方面,可以通过该仿真软件作为教学软件,让

19、学生了解CAN总线技术和协议,提高学生对CAN总线网络的认知,同时还可以提高学生们的动手编程能力,从而来提高学生编程的系统构架;1。4 主要工作 本课题主要有以下工作(1)收集国内外相关LabVIEW仿真汽车CAN总线资料,并对汽车CAN总线有所了解和掌握。(2)熟悉操作LabVIEW编程软件,运用其中的例子基本熟练操作此编程软件。(3)结合科瑞兴业有限公司提供的USB-CAN通讯转换模块,采用调用库函数节点来编写仿真软件模型。(4)对基本上成型的仿真软件进行CAN报文传输的调试和测试。(5)对调试好的仿真软件进行人机界面的美工优化设计.(6)最后是生成仿真软件的应用程序.(7)收集调查资料和

20、测试数据,完成毕业论文。2 系统的硬件结构2.1 PC机该系统是由两台或者两台以上(最多16台)的支持WIN98、WIN2000和XP操作系统环境的可移动便携式电脑构成。然后每台电脑上都安装有基于LabVIEW编写的程序来仿真模拟汽车不同板块的ECU,接入CAN总线当中来进行发送和接收CAN报文.2。2 CAN接口卡 本课题选用的是由北京科瑞兴业科技有限公司提供USB-CAN通讯转换模块智能CAN接口卡(类型是K7121),它带有1路CAN接口具有USB接口的高性能CAN总线通讯适配卡,使PC机方便地连接到CAN总线上构成一个节点,从而实现CAN2.0协议的数据通讯;该转换模块上自带500个字

21、节的数据存储空间,可达到每秒2000帧的传输速度,保证数据不丢失。该转换模块USB2。0接口,最高可达12Mbps的传输速率;CAN控制器数据传送速率可由用户设定:5Kbps1Mbps;支持CAN2。0B协议(兼容CAN2。0A),符合ISO/IS 11898标准; 最高帧流量达到 2500帧/秒; CAN上传USB的模块批量上传缓冲区最大为Buffer30013 = 3900字节,即等于300个CAN的扩展帧长, USB下传CAN的模块批量下传缓冲区最大为Buffer400字节。 供电方式: USB总线供电,或使用外接电源(+10V+30V,400mA); 磁铁隔离:DC2500V; 工作温

22、度: 070;运行环境: Win9X/Me、Win2000/XP操作系统.如下图是CAN总线连接图:图21 CAN网络结构为了增强CAN通讯的可靠性,CAN总线网络的两个端点通常要加入终端匹配电阻,如图3.1所示。终端匹配电阻的大小由传输电缆的特性阻抗所决定.例如双绞线的特性阻抗为120,则总线上的两个端点也应集成120终端电阻。 注意:CAN通讯线可以使用双绞线、屏蔽双绞线。若通讯距离超过1KM,应保证线的截面积大于1。0mm2,具体规格应根据距离而定,常规是随距离的加长而适当加大。如下图是转换模块图片: 图22 K7121USB-CAN通讯转换模块3 系统的软件设计系统硬件构成简单,结合硬

23、件工作特性,主要围绕软件设计方面进行主要的开发工作。3。1 软件系统设计本课题仿真软件主要包括以下三项功能:1, 发送模拟汽车CAN报文至CAN总线当中。2, 从CAN总线当中接收汽车CAN报文。3, 提供人机界面以设置不同的波特率和数据帧格式.4, 根据需求将发送和接收的汽车CAN报文数据保存以便后续的分析.根据上述需求,该仿真软件系统包括1个主控程序与2个功能子程序:1, 主控程序用于启动,设置以及关闭,并且负责处理所有的人机交换界面的操作.2, 数据发送和接收子程序利用USBCAN通讯转换模块来发送和接收模拟的汽车CAN报文数据。3, 数据列表及保存子程序将发送和接收的汽车CAN报文以列

24、表的方式显示,其中列表当中有序号,时间,帧类型,帧长度,帧ID,帧数据.并且保存发送和接收数据列表。以上3个程序主要是在顺序结构,条件结构以及While结构程序中运行。主控程序随软件启动运行,它可以根据用户的需求,可以设置波特率以及帧类型,同时可以实时调度其余2个子程序的运行,并将各子程序的运行结果传递给相关功能面板的显示控件以反馈给用户,子程序功能就是实现汽车CAN报文数据的发送和接收以及列表显示、存储.当主控程序正常启动接口卡并使其工作后,数据接收子程序才能运行,数据列表与保存子程序,必须在前两者正常工作后,才能根据用户要求执行相关功能。如图31软件程序结构所示:主控程序数据发送和接收子程

25、序数据列表及保存子程序启动CAN接口卡配置CAN总线启动CAN总线发送CAN报文接收CAN报文列表显示保存路径文本文档功能需求部分 图31 软件程序结构图CAN报文数据的发送和接收是系统监测功能的基础,而软件本身需要依靠接口卡从CAN总线接收数据,因此,要实现所有的功能,必须首先正确启动USBCAN通讯转换模块,初始化其相关运行参数,使其可以正常运行。USB-CAN转换模块智能CAN接口卡提供了大量的VCI函数库(应用程序接口),这些函数可以从接口卡的驱动文件K7121DLLdll中导出,并可以在LabVIEW 中调用,实现对接口卡的启动、设置等相关操作。具体的调用和设置在软件后面板中将会展示

26、。3.2 软件的前面板设计前面板设计主要有三大块:1,配置设备板块。2,模拟数据调整板块.3,接收数据显示板块.1732654 图3-2 配置和调整板块如图3-1所示,该界面总共有7个功能显示控件;1,打开设备当程序运行时,单击“打开设备”,软件将会自动去识别硬件,从而实现软件和硬件的连接,然后进行下一步程序运行。2,退出当程序运行时,单击“退出,整个程序将会停止运行,程序处于休眠状态。3,帧类型-当程序运行时,单击“帧类型”,选择接收和发送的CAN报文的帧格式,主要是标准帧和扩展帧两种.4,波特率当程序运行时,单击“波特率”,选择接收和发送的CAN报文的传输速度,主要有20K,100K,25

27、0K,500K四种波特率。5,系统时间当程序运行时,该显示控件会主动的去读取电脑当前时间,并显示出来,然后可以作为CAN报文发送和接收的时间。6,设备状态-当程序运行时,单击“打开设备”,程序会自动的去识别硬件,当识别成功,该显示控件会显示“设备打开成功!”。当由其他原因导致的设备打开失败,该显示控件会显示“设备打开失败!”7,数据调整该控件是输入控件,通过改变数值的大小来改变发送的CAN报文数据,从而发送到CAN总线上。 图33 显示仪表板块 如图33 所示,该界面主要是仪表控件显示功能:该界面的功能就是显示汽车CAN 报文当中的数据。一个CAN报文当中最多有8个信号数据,然后每个信号数据是

28、8位,最大值为225。该界面主要是将CAN报文中的每个信号数据以仪表的方式显示,这样便很直观的展示出来。如如33所示,该界面有发动机仪表,燃油压力仪表,机油压力仪表,大气压力仪表,大气温度仪表,进气温度仪表,冷却水温度仪表,燃油温度仪表,机油温度仪表,机舱内温度仪表,路面温度仪表。该界面可以灵活的改变,通过对后面板程序的处理可以按照需求去换其他信号的虚拟仪表,还可以增加更多的虚拟仪表,灵活性非常大。如果作为一个教学软件的话,这样提高学生对汽车CAN总线技术的理解,还可以锻炼学生的编程思维和能力。同时,还可以根据不同ECU的通讯协议,去改变该软件的一些细节去适应各种不同协议的通讯.4321图34

29、 报文列表及保存如图34所示,该界面是汽车CAN报文列表显示及保存板块,主要功能有下:1,存储路径当程序运行时,可以点击该控件从而来选取汽车CAN报文的路径,把CAN报文数据存储在我们想要的地方。2,进制转换当程序运行时,单击该控件从而来选取以什么进制的格式显示汽车CAN报文当中的信号数据。(该格式为十进制和十六进制两种数据格式)3,存储-当程序运行时,单击该控件以保存发送和接收的汽车CAN报文,以便于后期的数据分析和处理。4,CAN报文数据列表这是一个列表显示控件,显示接收和发送的汽车CAN报文。该列表当中,第一列是发送和接收CAN报文序号,以便查看到发送的每一条CAN报文.第二列是发送和接

30、收CAN报文时间.第三列是发送和接收每条CAN报文的ID,从而确定地址。第四列是每条CAN报文的数据的类型(标准帧和扩展帧两种).第五列是每条CAN报文当中数据的长度。第六列是每条CAN报文当中的信号数据(该数据作为后期的分析和处理)。3。3 软件的后面板设计该软件的后面板设计主要是采用了“顺序结构”,“While结构和“条件结构。主要是采用调用库函数节点的方法来实现软件和硬件的相结合.如下图3-5所示:图35 调用库函数节点该函数支持众多数据类型和调用规范.该节点可用于调用大多数标准或自定义DLL或共享库中的函数。如需调用含有ActiveX对象的DLL,可使用打开自动化函数与属性节点和调用节

31、点。3。3.1 软件设备的打开和关闭1,设备打开设计调用转换模块的打开设备函数DeviceOpen(ULONG mindex),函数参数:mindex是指定设备序号(最多可以连接16个设备),函数返回值:1,函数调用成功;0,函数调用失败。该函数主要是用来打开连接设备。如下图3-6所示: (a) (b) 图36 调用DeviceOpen函数 当该函数调用成功之后,设备打开,函数返回值为1,通过条件结构此时设备状态文本显示控件将会显示“设备打开成功!”,同时状态指示灯也会亮。当该函数调用失败或者设备连接失败,函数返回值为0,通过条件结构此时设备状态文本显示控件将会显示“设备打开失败!”,同时状态

32、指示灯也是暗的.如下图37程序所示: (a) (b)图37 设备连接状态显示 2,设备关闭设计 调用转换模块的关闭设备函数DeviceClose(ULONG mindex),函数参数:mindex是指定设备序号(最多可以连接16个设备),没有函数返回值。该函数主要是用来关闭设备的.如下图38所示:图38 调用DeviceClose函数当用户按需要停止或者结束汽车CAN报文的发送和接收时,单击退出控件时,立即调用关闭设备函数,从而来结束汽车CAN报文的发送和接收,整个程序处于休眠状态.3.3。2 CAN总线配置CAN总线配置设计主要是针对CAN总线的帧类型,首地址,末地址,波特率进行设计.调用转

33、换模块的配置CAN总线函数CanWriteConfig(ULONG mindex, PUCHAR bdata) ,函数参数说明:mindex:指定设备序号.bdata:指向配置参数缓存区的指针,bdata中的参数用于设定CAN接口的参数,共14个字节。 函数返回值:1:表示函数调用成功 0:表示函数调用失败。如下图39配置函数调用: (a) (b)图39 调用CanWriteConfig函数 如下图310 对bdata说明: 图310 配置参数bdate定义1,帧类型设计帧类型只有标准帧和扩展帧两种格式,它们主要是帧ID长度不一样。标准帧的ID是11位,然而扩展帧的ID是29位,这样扩展帧可以

34、携带更多的CAN报文。该设计采用下拉菜单的方式来设计,标准帧对应数字0,扩展帧对应数字1,从而改变下拉菜单内容来改变输出的数字,以便调用相对应的函数内容。如下图3-11对下拉菜单的设计: (a) (b) (c)图311 下拉菜单设计2,CAN总线ID地址范围设置该CAN总线的首地址是X00000000,末地址是XFFFFFFFF,ID最大长度为29位.如下图312所示: 图312 CAN总线ID范围 3,CAN总线波特率设计 根据转换模块提供的波特率表如下图313所示: 图313 波特率表根据转换模块的波特率表以及CAN总线的需求,选择波特率20K,50K,100K,250K,500K。从而选

35、择的BTR为0x00050095,0x0005003B,0x0005001D,0x0005000B,0x00050005.波特率的设置还是采用下拉菜单的方式,采用条件结构来选择相对应的波特率的BTR。 通过下拉菜单选择波特率,然后通过后面板的条件结构会去选择相对应的波特率BTR数据,然后将数据输入配置函数当中,从而来调节CAN总线的波特率。图3-14 CAN总线波特率设计如下图314所示: 3.3.3 CAN报文组成一个完成的CAN报文组成是由帧信息,帧ID和帧数据内容组成的。根据该转换模块的硬件条件,一个完成的CAN报文帧是13个字节,字节内容如下表.如下图315所示: 图3-15 CAN报

36、文构成CAN报文有扩展帧和标准帧两种类型,主要的不同在于ID长度的不同,标准帧的ID为11位,如上图所示它只占了2个字节长度。而扩展帧的ID为29位,如上图所示它占了4个字节长度。在发送CAN帧报文时,必须按照上表定义添入字节内容.由于受到转换模块的硬件条件,必须在13个字节前增加一个字节添入数字3,表示这是要按照CAN帧格式发送的数据。在读取CAN帧报文时,接收到的每帧都是13个字节长度(012),字节内容定义如上表所示,其中有效数据长度由帧信息字节的内容决定。3.3.3 CAN报文内容组成及发送1,CAN报文内容CAN报文最终是以数组的方式来发送的,所以采用LabVIEW的创建数组函数来创

37、建CAN报文。如下图316: 图316 创建数组按照CAN报文的格式来创建数组,总共是14个字节,每个字节长度是8位。该系统软件设计两个CAN报文,都是是标准帧类型。 (1)发动机状态报文 该报文的帧ID设置为000000DD,报文内容依次是发动机转速,冷却水温度,燃油压力,燃油温度,机油压力,机油温度,最后两个字节为空。由于一个字节长度是8位,所以一个字节的最大数是255,所以在后面板程序框图中,发动机转速除以100之后输入。如下图317所示: 图3-17 发动机状态数据 (2)环境条件报文 该报文的帧ID设置为000000EE,报文内容依次是路面温度,进气温度,发动机舱内部温度,大气温度,

38、大气压力,最后3个字节为空,一个字节长度是8位,一个字节的最大数是255。 如下图318所示: 图318 环境条件报文2,CAN报文发送调用转换模块的库函数-发送CAN帧CanWriteFrame(ULONG mindex, ULONG length, PUCHAR bdata),该函数是用来发送一帧数据.函数参数说明:mindex:指定设备序号,0对应第一个设备。 Length: 指定发送长度. bdata:指向填有发送内容的缓存区的指针. 如图316所示: (a) (b) (c) 图316 调用CanWriteFrame函数CAN报文构建完整之后,将构建好的CAN报文数组写入到bdate等

39、待被发送。3.3。4 CAN报文接收及拆分显示1,CAN报文接收调用转换模块的获取模块现已接收的CAN帧字节数量库函数CanReadFramenum(ULONG mindex),此函数用来获知模块现已接收到的CAN帧字节数量。 函数参数说明:mindex:指定设备序号,0对应第一个设备。 函数返回值:UINT型整数:表示缓冲区内已收到的字节数量。 0:表示缓冲区为空,没有收到数据.该函数用来检测接收到CAN帧是不是为空,如果为空那么继续读取,如果不为空那么将CAN帧传递给下一个函数读取缓冲区已有的数据。如下图317所示: (a) (b) (c)图3-17 调用CanReadFramenum函数

40、 调用转换模块的读取缓冲区已有的数据CanReadAllData(ULONG mindex, ULONG length, PUCHAR bdata) ,此函数用来读取接收缓冲区已有的CAN帧里的13个字节的数据内容.函数参数说明:mindex:指定设备序号,0对应第一个设备。length: 要读取的字节长度,由函数5,6的返回值确定。 bdata:指向要保存的数据缓存区的指针。然后接收到的bdate数组进行拆解。如下图3-18所示: (a) (b) (c)图318 调用CanReadAllData函数 该函数的设置为每次的开启都初始化全部为0,然后把接收到的数组引出来进行下一步的数组拆解。2,

41、CAN报文的索引拆解接收到数组需要进行拆解,所以在LabVIEW程序当中采用索引数组的方式来进行CAN报文数组的拆解。如下图3-19所示:图319 索引数组该函数控件的功能就是根据接收到的CAN报文格式进行顺序的拆解,然后再显示出来. (1)CAN报文的ID索引 根据前面的CAN报文组成格式,该系统接收到的CAN 报文为13个字节长度,CAN报文的ID分布在第1、2、3、4字节中,然而索引只能索引到每个字节,所以需要将索引到的第1、2、3、4字节内容按照高低位的顺序拼接起来从而显示为一个完整的CAN报文ID.如下图320所示:(a)整数拼接控件示意图(b)CAN报文ID索引拼接图320 接收的

42、CAN报文ID如上图所示,通过索引第1、2、3、4字节按照高位和低位的顺序,先将第1、2字节内容拼接,再将3、4字节内容拼接,然后将两个拼合好的内容再进行最后的拼接整合就形成了接收到的CAN报文ID。 (2)CAN报文数据索引根据前面的CAN报文组成格式,该系统接收到的CAN 报文为13个字节长度,CAN报文的数据内容分别分布在第5、6、7、8、9、10、11、12字节中,将这个8个字节内容通过创建数组控件创建成一个数组。然后通过对接收到的CAN报文ID进行判断对比,然后再进行CAN报文数据内容的索引显示。先将CAN报文ID索引出来拼接,进行数值至字符串的转换,将转换后的字符串给条件结构进行对

43、比判断.在文章的前面已经规定了发动机状态和环境条件两个CAN报文的ID,0X000000EE和0X000000DD。如果读取的CAN报文和条件结构当中的字符串一样那么进行下一步的索引显示。如下图321所示:图322 发动机状态CAN报文索引显示如上图所示,在条件结构当中对CAN报文的ID进行对比,如果是000000EE条件结构为真那么对CAN报文数据内容进行一次索引显示,第1位是发动机转速,第2位是冷却水温度,第3位是燃油压力,第4位是燃油温度,第5位是机油压力,第6位是机油温度。由于在CAN报文发送时,发动机的转速是除以100之后的转速,接收到的发动机转速必须*100,所以在发动机转速的仪表

44、上有*100的单位.如下图323所示:图323 环境条件CAN报文索引显示如上图所示,在条件结构当中对CAN报文的ID进行对比,如果是000000DD条件结构为真那么对CAN报文数据内容进行依次索引显示,第1位是路面温度,第2位是进气温度,第3位是机舱内温度,第4位是大气温度,第5位是大气压力。3。3.5 CAN报文列表及保存1,CAN报文列表由前文第三章第二小节软件的前面板设计所知,CAN报文数据列表是一个列表显示控件,用来显示接收和发送的汽车CAN报文的详细信息。该列表当中,第一列是CAN报文序号,第二列是发送和接收CAN报文时间,第三列是发送和接收每条CAN报文的ID,第四列是每条CAN

45、报文的数据的类型(标准帧和扩展帧两种)。第五列是每条CAN报文当中数据的长度.第六列是每条CAN报文当中的信号数据。在后面板程序框图中采用创建数组,将这六列列表内容以字符串的格式创建成一个数组,然后将数组传递给多列列表。(1)CAN报文序号CAN报文序号利用累加器方式来进行累加,没收到一次CAN报文然后序号加1累计,初始序号为0,累加之后的序号进行数值转换成字符串传递给“创建数组”控件等待下一步。如下图324所示:图324 CAN报文列表序号 (2)CAN报文时间CAN报文时间主要是来监视CAN报文发送和接收的时间的,在LabVIEW调用“获取日期/时间(秒)和“获取日期/时间字符串”两个控件

46、,通过LabVIEW系统获取当前时间然后再进行字符串的转换传递给“创建数组”控件等待下一步.如下图325所示:图325 CAN报文时间 (3)CAN报文ID根据“创建数组的要求,所有的子元素格式必须一致,所以CAN报文的ID也必须进行数值至字符串的转换,通过调用“数值至十六进制字符转换”控件转换后的字符串传递给“创建数组”控件等待下一步。如下图326所示:图326 CAN报文ID转换 (4)CAN报文帧类型根据前面板的帧类型选择控件,选择帧类型.然后通过条件结构选择帧类型文本字样,传递给“创建数组控件等待下一步。如下图327所示: (a) (b)图3-27 CAN报文帧类型(5)CAN报文数据

47、长度CAN报文的数据长度为8,直接调用“数值至十进制字符串转换”转换成字符串之后传递给“创建数组”等待下一步.(6)CAN报文数据内容调用“数组至电子表格字符串转换”控件,将接收到的CAN报文数据数组进行字符串的转换,同时加入一个数据格式的转换条件,可以讲数据内容进行十进制和十六进制的的一个转换。然后将转换后的数据内容传递给“创建数组”等下下一步。如下图328所示: (a)十六进制 (b)十进制 图3-28 CAN报文数据内容字符串转换2,CAN报文保存CAN报文的保存就是将CAN报文数据保存下来以便后期的处理分析。该保存设计采用了LabVIEW当中“条件结构”,“路径”,“写入电子表格文件”

48、控件。将CAN报文数据通过条件结构的选择,再经过用户的路径选择最终写入电子表格。如图329所示:图329 CAN报文保存如上图所示,该CAN报文是二维数据,通过“储存”控件按键选择保存CAN报文数据。当条件结构为假时,对CAN报文数据不做任何处理和保存。本小节主要是CAN报文数据的多列列表显示以及CAN报文数据的保存。下图将显示整个CAN报文的多列列表显示和CAN报文的数据保存.如下图330所示:图330 CAN报文多列列表显示及保存3。3.6 软件后面板总程序图根据前文第3章第3节对软件每个模块的设计,最后将各个设计好的模块组合起来形成最终的系统软件后面板总程序.这样很清晰的看到每个模块,然

49、后根据需要的不同来随时的修改每个模块,同时还能加强对系统软件程序的管理。如下图3-31和332所示:图31 CAN报文发送图332 CAN报文接收4 测试结果与验证4.1 仿真软件CAN报文的发送和接收测试为了验证该仿真软件的稳定性和正确性,采用北京科瑞兴业科技有限公司提供的VB环境软件作为该系统软件的测试软件,从而来监测该仿真软件的正确性和稳定性.如下图41所示:图41 测试软件界面如上图所示,该测试软件既能发送模拟CAN报文,又能接收模拟CAN报文。从而通过测试软件的发送和接收,来验证仿真软件的正确性和稳定性.1,仿真软件的模拟CAN报文发送测试该仿真软件发送的两组模拟CAN报文: (1)

50、发动机状况CAN报文 报文顺序依次是:发动机转速5600rpm/min、冷却水温120、燃油压力8BAR、燃油温度40、机油压力9BAR、机油温度98,ID是0X000000DD。 (2)环境条件CAN报文 报文顺序依次是:路面温度60、进气温度25、发动机舱内部温度80、气温度30、大气压力8BAR,ID是0X000000EE。如下图42所示:(a)仿真软件发送的CAN报文(b)发动机状况CAN报文十六进制和十进制(c)环境条件CAN报文十六进制和十进制图42 仿真软件发送CAN报文仿真软件发送测试验证:如下图43所示:(a)发动机状况CAN报文测试结果(b)环境条件CAN报文测试结果图43

51、 测试结果通过科瑞兴业科技有限公司提供的测试软件验证与测试,从图42和图43的对比得出仿真软件发送的CAN报文数据内容与测试软件接收到的CAN报文数据内容完全相同,结果表明该仿真软件发送到CAN总线当中的CAN报文完全正确并且稳定性非常可靠。2,仿真软件的模拟CAN报文接收测试软件发送的两组CAN报文:(1)ID是0X000000DD,报文数据内容依次是0X46、0X33、0X5F、0X44、0X60、0、0、0.(2)ID是0X000000EE,报文数据内容依次是0X35、0X77、0X6、0X33、0X6、0X66、0、0。 如下图4-4所示:(a)ID为0X000000DD报文(b)ID

52、为0X000000EE报文图44 测试软件发送CAN报文 仿真软件接收测试验证: 如下图45所示:(a)仿真软件环境条件CAN报文显示(b)接收到的环境条件CAN报文(c)仿真软件发动机状况CAN报文显示(d)接收到的发动机状况CAN报文图45 仿真软件的接收CAN报文通过科瑞兴业科技有限公司提供的测试软件验证与测试,从图44和图45的对比得出仿真软件接收的CAN报文数据内容与测试软件发送的CAN报文数据内容完全相同,结果表明该仿真软件接收到CAN总线当中的CAN报文完全正确并且稳定性非常可靠。4.2 集成测试通过上一节对仿真软件的发送和接收分别测试,结果表明该仿真软件的CAN报文发送和CAN

53、报文的接收都非常正确并且非常稳定。这一小节将对仿真软件集成测试,就是用该仿真软件发送CAN报文,再用该仿真软件接收CAN报文,最后通过仿真软件发送的CAN报文内容和仿真软件接收的CAN报文内容进行对比作出结论.仿真软件发送的CAN报文:(1)发动机状态CAN报文 报文顺序依次是:发动机转速5700rpm/min、冷却水温99、燃油压力7BAR、燃油温度45、机油压力3BAR、机油温度111,ID是0X000000DD。(2)环境条件CAN报文 报文顺序依次是:路面温度70、进气温度30、发动机舱内部温度68、大气温度24、大气压力1BAR,ID是0X000000EE。如下图46所示:(a)仿真

54、软件发送CAN报文(b)发送的CAN报文内容图4-6 仿真软件CAN报文的发送仿真软件接收的CAN报文: 仿真软件接收到的CAN报文后,对CAN报文的进行拆解。对CAN报文的ID进行判断,如果CAN报文ID正确,那么将解读CAN报文内容并加以显示。下图将显示出接收到的两个CAN报文.如下图47所示:(a)仿真软件接收CAN报文显示(b)接收的CAN报文内容图47 仿真软件的CAN报文接收为了验证该仿真软件的正确性,这次的集成测试发送的CAN报文数据内容与上一节测试发送的CAN报文数据内容完全不同,这样既能避免了可能由测试软件带来的误差同时还能提高该仿真软件正确的可信度。通过对图3-6和图37对

55、比显示,该仿真软件发送的CAN报文数据内容和接收的CAN报文数据内容完全一样,结果表明该仿真软件对CAN报文的发送和CAN报文的接收完全正确并且稳定性也非常可靠,同时能非常高效可靠的来仿真汽车CAN总线.5 突破的技术难点总结在编写程序的过程当中遇见了各种各样的问题,通过老师和师兄的帮助以及自己的努力一一解决了这些问题。这里我将把我所遇到的技术难点做一个总结。总结如下:1,LabVIEW程序软件和USBCAN转换模块的结合 本人之前从未接触过LabVIEW编程程序,所以对于我来说程序和硬件的结合成为我第一个遇到的技术难题。通过查书有GPIB总线、串行总线、USB通用串行总线、以太网、CAN总线

56、,但是跟我的课题都关联不大。最后通过查阅文献,看到华北水利水电学院,王欣欣,袁丽娟写的基于虚拟仪器的CAN卡驱动实现文章当中采用调用库函数节点,实现了LabVIEW程序与转换模块的成功结合,这给我的课题带来了好的开始.2,CAN报文列表显示 在这一块非常感谢北京理工大学的王玉林师兄,在他的建议指导下,我通过创建数组,通过数组插入、索引数组大小最后写入多列列表当中,详细请查看第3章第3节第5小节的CAN报文列表设计。3,接收到的CAN报文ID出错 在第一次测试当中发现,发送的CAN报文ID和接收到的CAN报文ID不一样,当时查阅了很多资料都没有找到答案。最后得到科瑞兴业科技公司的技术支持,在标准

57、的CAN协议中CAN报文ID都靠左对齐,在发送之后的ID向左移动了5位,这就导致了发送的ID和接收的ID不一样。所以在发送CAN报文ID时,先将ID乘以32让ID右移5位,ID在发送后再左移5位然后返回原来的位置,此时接收到的ID与发送的ID完全一样。结论与展望结论通过前文第4章的测试与验证,表明该汽车CAN总线仿真软件完全能够模拟仿真汽车CAN总线并且有很高的精确度和稳定性.展望随着中国渐渐成为世界上汽车生产大国,每年都有上百新款汽车生产销售,然而每一款新车在生产之前都要经过一系列的复杂测试,在新车测试的过程当中对各种能源的消耗是不可避免的,如果采用汽车CAN总线仿真软件测试来替代真实的仪器

58、仪表测试,那么每一款新车的测试将会带来很大的能源节约,上百款的汽车将会带来更加巨大的能源节约将是不可忽视的,而且还响应了国家倡导的“节能减排”号召。同时随着教育水平的不断提高,现在的大学教育不能只仅仅局限于课本和课堂。应该加强学生的思维能力和动手能力。该汽车CAN总线仿真软件可以作为教学软件,让学生能够客观的去了解和学习汽车CAN总线技术,而且还能提高学生的动手能力,加强学生对编程系统的框架能力.参考文献1 科瑞兴业科技有限公司。K-7121使用说明书。2011。2 朱双华.汽车CAN系统故障诊断与检测技术。长沙:国防科技大学出版社,2008。3 邬宽明。CAN总线原理和应用系统设计.北京:北京航空航天大学出版社,2002.4 林静,林征宇,等。LabVIEW虚拟仪器程序设计从入门到精通.北京:人民邮电出版社,2010。5王绍銧,夏群生,李建秋,等。汽车电子学M.北京:清华大学出版社,2008

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!