ONCAN仪表在线调试系统及方法与流程

文档序号:11432159阅读:474来源:国知局
ONCAN仪表在线调试系统及方法与流程

本发明属于仪表调试技术领域,具体涉及一种oncan仪表在线调试系统及基于该系统实现的调试方法。



背景技术:

近年来,随着超大规模集成电路在汽车电子领域得到普遍应用,车载网路系统也在不断完善。汽车仪表是驾驶员与汽车进行信息交流的重要接口和界面,需要更加丰富、直观、准确地显示各种数据信息,随着系统完善其上显示的信息也在不断增加。然而由于汽车组合仪表显示的信息不断增加,也造成仪表的开发、调试、测试、配置日益繁琐、复杂。软件工程师开发过程中测试、配置、路试跑车程序的更新都是通过繁琐的诊断命令来实现,因为调试配置的复杂化,繁琐的配置信息造成的事故日益增加,从而导致仪表开发质量下滑,不能满足目前不断提高的仪表品质要求。



技术实现要素:

为解决上述问题,本发明公开了oncan仪表在线调试系统及基于该系统实现的在线调试方法。

为了达到上述目的,本发明提供如下技术方案:

oncan仪表在线调试系统,包括硬件接口层、中间层、应用层,所述硬件接口层用于调用intrepid硬件设备动态链接库icsneo40.dll内调用硬件接口,实现开启关闭配置硬件和接收发送can消息功能;中间层基于iso-14229协议和iso-15765,用于实现协议的诊断服务;应用层基于诊断服务实现具体应用功能,用于获取用户输入信息做数据处理后交给显示界面;

所述硬件接口层包括硬件接口模块;

所述中间层包括诊断传输模块,诊断传输模块用于发送诊断服务消息,将诊断服务请求按照iso-15765协议的标准发送消息;进行诊断服务;接收诊断服务消息,根据arbid筛选消息后根据iso-15765标准组合成诊断应答信息;

所述应用层包括配置模块、日志模块、用户模块、eol模块、bootload模块、e2prom存储器读取/写入模块、can消息发送接收显示模块、ccp协议诊断模块;硬件配置模块用于与硬件连接进行相应配置,日志模块用于记录系统产生的日志记录,用户模块用于进行用户个性化设置;

所述can消息发送接收显示模块用于实现发送信息、显示接收和信息筛选功能;

所述ccp协议诊断模块用于实现诊断和通讯管理、数据传输、存储数据传输、输入输出控制、程序的上传下载、例程控制;

所述e2prom存储器读取/写入模块实现读取文件、数据列表、上传与下载,包括eeprom读写步骤,所述eeprom读写步骤实现生产日期、软硬件版本号、零件号、下线配置的读写,对于读写的数据长度、数据类型以及地址范围等做了有效性判断,将版本号地址与版本号绑定,避免误刷情况发生;

bootload模块用于实现文件读取、数据下载功能,bootload模式用于实现软件的在线刷新,同时通过校验避免软件的刷写错误以及误刷,bootload刷写包括如下步骤:

步骤1,刷新事件由一个会话类型为刷新会话,物理寻址/功能寻址的诊断会话控制服务开始,电控单元接收到报文后应为程序刷新分配一切必须的资源;

步骤2:测试工具获取电控单元的物流数据;

步骤3:测试工具解锁电控单元使其能刷新相关的服务,所有可刷新的电控单元应支持安全访问服务;

步骤4:电控单元擦除存储器相应的区域;

步骤5:每次将连续的数据块下载到非易失性存储器时应遵循下面的服务序列:

a)请求下载

b)传输数据

c)请求退出传输

在请求下载、传输数据和请求退出传输序列正确执行时,电控单元仅支持测试工具保持连接服务,忽略其它服务;

步骤6:当所有数据块下载完成后,测试工具通过程序控制服务启动完整性检查程序验证下载是否成功,并更新软件完整性状态参数;

eol模块用于实现指针校验,led和buzzer虚焊、lcd花屏以及静态电流检测。

进一步的,还包括客户配置模块,用于下线配置。

oncan仪表在线调试方法,包括如下步骤:

诊断传输步骤:发送诊断服务消息,将诊断服务请求按照iso-15765协议的标准发送消息;进行诊断服务;接收诊断服务消息,根据arbid筛选消息后根据iso-15765标准组合成诊断应答信息;

bootload刷写步骤:

步骤1,刷新事件由一个会话类型为刷新会话,物理寻址/功能寻址的诊断会话控制服务开始,电控单元接收到报文后应为程序刷新分配一切必须的资源;

步骤2:测试工具获取电控单元的物流数据;

步骤3:测试工具解锁电控单元使其能刷新相关的服务,所有可刷新的电控单元应支持安全访问服务;

步骤4:电控单元擦除存储器相应的区域;

步骤5:每次将连续的数据块下载到非易失性存储器时应遵循下面的服务序列:

a)请求下载

b)传输数据

c)请求退出传输

在请求下载、传输数据和请求退出传输序列正确执行时,电控单元仅支持测试工具保持连接服务,忽略其它服务;

步骤6:当所有数据块下载完成后,测试工具通过程序控制服务启动完整性检查程序验证下载是否成功,并更新软件完整性状态参数;

eol检测步骤,通过诊断命令实现lde灯的不规则点亮熄灭控制来判断是否虚焊;通过诊断命令实现lcd的花样显示来判断lcd是否有花屏现象;通过诊断命令控制buzzer特定发音来判断buzzer是否虚焊;

eeprom读写步骤,实现生产日期、软硬件版本号、零件号、下线配置的读写,对于读写的数据长度、数据类型以及地址范围等做了有效性判断,将版本号地址与版本号绑定,避免误刷情况发生。

进一步的,诊断传输步骤中当服务器有错误应答报文时筛选出有效消息。

进一步的,诊断服务中支持增强型判断。

进一步的,bootload刷写步骤中,在刷写时进行防错判断,即编号相同或相匹配时才允许刷写。

进一步的,bootload刷写步骤中,当ecu接收到requestdownloadrequest服务,ecu可以擦除相应地址的数据时,步骤4省略。

进一步的,bootload刷写步骤中,步骤5中如果块长度超出了网络层缓存大小,单个数据块使用多个传输数据请求报文。

与现有技术相比,本发明具有如下优点和有益效果:

能够快速地对仪表工程进行配置、测试,实现跑车路试时验证、排查问题与程序更新,节约时间,提高质量。在开发阶段,能够实现eerom读写、仪表在线配置等,而不必频繁输入诊断指令,有效地节省了时间,并避免了产线以及客户端误操作问题,避免误刷情况;生产阶段,可以通过eol功能实现仪表指针的校验、led灯和buzzer的虚焊检测、lcd花屏检测以及静态电流检测,有力的控制了仪表质量问题;在销售阶段,如果仪表出现问题,可以通过eerom读写功能实现问题的排查与解决;在客户端,可以通过客户配置功能实现仪表的下线配置,通过bootload功能实现仪表的在线更新。

附图说明

图1为本发明系统架构图。

图2为can消息发送接收显示模块控制界面。

图3为ccp协议诊断模块提供诊断控制界面。

图4为e2prom存储器读取/写入模块中读取文件功能界面。

图5为e01文件格式(s19)定义。

图6为文件中各数据项名称。

图7为e2prom存储器读取/写入模块中数据列表控制界面。

图8为e2prom存储器读取/写入模块中上传与下载控制界面。

图9为bootload刷写流程。

图10为eol检测流程。

图11为eeprom读写流程。

图12为bootload模块控制界面。

图13为eol模块控制界面。

图14为eol模块里程表界面。

图15为eol模块报警灯界面。

图16为eol模块扬声器界面。

图17为eol模块屏幕及背光界面。

图18为eol模块输入输出界面。

图19为eol模块生产信息界面。

图20为诊断服务过程中硬件接口层、中间层、应用层之间的数据流向图。

图21为客户配置模块控制界面。

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。

oncan仪表在线调试系统基于microsoftvisualstudio2010平台,在intrepidcs公司硬件产品上进行二次开发。本系统主要用户对象是进行仪表研发与测试的工程师,方便他们在工作中对仪表进行标定和测试。同时也可辅助用于工厂产线配置,对仪表进行出场检查和设置,以保障开发的高效性以及质量的稳定性。

本系统框架如图1所示,包括硬件接口层、中间层、应用层,在诊断服务过程中各层之间的数据流向图如图20所示。其中,硬件接口层用于调用intrepid硬件设备动态链接库icsneo40.dll内调用硬件接口,实现开启关闭配置硬件和接收发送can消息等功能;中间层是基于iso-14229协议和iso-15765,用于实现协议的诊断服务,并进行数据的传输。应用层基于诊断服务实现具体应用功能,用于获取用户输入信息做数据处理后交给显示界面。

具体的说,硬件接口层包括硬件接口模块。中间层包括iso-14229诊断模块、iso-15765传输模块、ccp诊断模块。通过硬件接口,传输模块获得并处理多帧报文,实现诊断服务的收发。以iso-15765传输模块为例,iso-15765传输模块发送并接收诊断服务消息,发送时将诊断服务请求按照iso-15765协议的标准发送消息,在发送标准、时序逻辑以及时效性上等完全符合标准,达到毫秒级控制;接收时根据arbid筛选消息后根据iso-15765标准组合成诊断应答信息,当服务器有错误应答报文时能筛选出有效消息。诊断模块用于通过传输模块获得的消息进行诊断服务,iso-14229诊断模块支持符合iso-14229协议的sid-0x10,sid-0x11,sid-0x14,sid-0x19,sid-0x22,sid-0x23,sid-0x27,sid-0x28,sid-0x2a,sid-0x2e,sid-0x2f,sid-0x31,sid-0x34,sid-0x35,sid-0x36,sid-0x37等诊断服务。除此以外还支持增强型判断,诸如报文格式及长度合法性判断,超时时间记录分析,服务器反馈否定nrc码的逻辑判断处理等。

应用层包括硬件配置模块、项目配置模块、日志模块、用户模块、eol工厂配置模块、bootload模块、uds协议网络诊断模块、e2prom存储器读取/写入模块、can消息发送接收显示模块、ccp协议诊断模块。应用层提供人机交互界面,用于输入输出数据。硬件配置模块用于与硬件连接进行相应配置,项目配置模块用于配置项目中的参数,日志模块用于记录系统产生的日志记录,用户模块用于进行用户个性化设置,支持不同用户名来区分不同操作权限,uds协议网络诊断模块基于uds协议进行网络状态的诊断。

can消息发送接收显示模块控制界面如图2所示,基于该界面可以实现发送信息、显示接收和信息筛选功能。在发送信息栏中,确保设备开启的情况下配置好数据参数后单击-发送信息。其中可选项有:帧id:可选是否为扩展帧;网络:hscan;mscan;…;长度:1-8;数据*8:byte。当硬件设备开启后客户端会不断读出设备缓存并保存数据至客户端内存,当需要查看时单击显示接收,显示的是设备开启后或上次单击后到本次单击时的客户端内存中所有的信息。当数据量大时刷新比较缓慢,单击停止刷新可以中断当前刷新。界面中可选项有:接收消息数:显示单击-显示接收-显示的所有信息的总数量;错误数:显示硬件设备开启后错误数;筛选消息数:显示根据所选筛选条件后的信息数量。信息筛选:支持多种筛选方案,可根据筛选条件筛选信息。从而更有效获取和定位符合条件的有效信息。

ccp协议诊断模块提供诊断控制界面如图3所示,可以快速进入诊断模式,支持的服务有:诊断和通讯管理、数据传输、存储数据传输、输入输出控制、程序的上传下载、例程控制等。具体支持服务如下:

0x10(diagnosticsessioncontrol)

0x11(ecureset)

0x14(cleardiagnosticinformation)

0x19(readdtcinformation)

0x22(readdatabyidentifier)

0x28(communicationcontrol)

0x2e(writedatabyidentifier)

0x2f(inputoutputcontrolbyidentifier)

0x31(routinecontrol)

0x34(requestdownload)

0x36(transferdata)

0x37(requesttransferexit)

0x3e(testerpresent)

0x85(controldtcsetting)

e2prom存储器读取/写入模块实现读取文件、数据列表、上传与下载功能。

读取文件功能对应的界面如图4所示,支持不连续文件的读取和保存。单击“从目录读取”实现打开文件浏览器,使用文件浏览器选取.e01(s19格式)文件读取,支持一次录入多个文件到客户端内存;单击“从目录读取”使用文本框内地址读取文件,可以配置默认地址方便使用。e01文件格式(s19)定义如图5所示,各数据解析如下:

s0(0x5330):记录类型是“s0”。地址场没有被用,用零置位(0x0000)。

数据场中的信息被划分为以下四个子域:

name(名称):20个字符,用来编码单元名称;

ver(版本):2个字符,用来编码版本号;

rev(修订版本):2个字符,用来编码修订版本号;

description(描述):0-36个字符,用来编码文本注释。

s1(0x5331):记录类型是“s1”。地址场由2个字节地址来说明。数据场由可载入的数据组成。

s9(0x5339):记录类型是“s9”。地址场由2字节的地址说明,包含了开始执行地址。没有数据场。

文件中各数据项名称如图6所示,其中各数据项的解释如下:

type(类型):2个字符。用来描述记录的类型(s0,s1,s2,s3,s5,s7,s8,s9)。

count(计数):2个字符。用来组成和说明了一个16进制的值,显示了在记录中剩余成对字符的计数。

address(地址):4或6或8个字节。用来组成和说明了一个16进制的值,显示了数据应该装载的地址,这部分的长度取决于载入地址的字节数。2个字节的地址占用4个字符,3个字节的地址占用6个字符,4个字节的地址占用8个字符。

data(数据):0—64字符。用来组成和说明一个代表了内存载入数据或者描述信息的16进制的值。

checksum(校验和):2个字符。这些字符当被配对并换算成16进制数据的时候形成了一个最低有效字符节,该字符节用来表达作为补充数据,地址和数据库的字符对所代表的(字节的)补码的byte总和。

数据列表的控制界面如图7所示,客户端可以读取多个e01文件并存至客户端内存中,并在数据表格内显示出数据方便修改,同时计算出checksum和数据长度。数据列表界面支持新建空白表格进行配置,方便建立刷写模板;支持不连续文件的显示,即用灰色空白单元格表示间断;支持修改内容纠错,当输入的值有误时通过单元格改变为红色表示,当输入的值与原始值不同即单元格内数据有过修改后也会用通过单元格改变为绿色表示。表格源下拉菜单一次性可读取最多20(可配置)个文件到客户端内存中,长度&checksum栏中表示当前显示表格数据的checksum和数据长度,刷新表格功能用于刷新当前表格内容,即重新载入当前表格并取消未保存的修改;空白表格功能用于新建一个空白表格进行配置;删除表格功能用于将当前数据源指示的表格从客户端内存中删除,不会删除地址下的源文件;保存表格功能用于将当前显示的表格保存成.e01文件并使用文件浏览器选择存放地址。

上传与下载的控制界面如图8所示,客户端支持两种网络层应用传输协议操作:ccp协议为符合规则的自定义服务实现;uds协议为在特定诊断模式下使用sid-0x23服务读取数据,使用sid-0x3d服务下载数据。单击“读取e2prom”读取服务器整个eeprom数据保存至软件缓存并在下方列表内显示。通过“下载源”选择需要下载的数据后单击“下载e2prom”进行下载,下载前会提示用户确认。下载源下拉菜单中可以选择客户端内存中的数据进行下载,也可选择当前表格数据进行下载,即修改过未保存的数据;读取e2prom功能用于读取服务器整个eeprom数据;基于协议:选择基于的网络层应用传输协议。

eeprom读写流程如图11所示,对于eerom读写,本系统对于读写的数据长度、数据类型以及地址范围等做了有效性判断,避免了产线以及客户端误操作问题。比如:980地址是硬件版本号,98c是软件版本号,可以通过调试软件把980地址给硬件版本号,98c地址给软件版本号,这样避免误刷版本号。具体的说,我们在应用界面中做了一个按键,把版本号地址赋给这个按键(硬件版本号),硬件版本号跟这个按键绑定,写入硬件版本号数据保存,数据与这个地址也绑定了,点击这个按键刷写,其实就是把相应硬件版本号数据写入到硬件版本号地址,不会出现误刷现象。同时会有提示,刷写的版本号,比如05版本。此外,也可以通过对版本号的判断进行错误的排查,通常情况下,软件版本只能增大(可选项),否则报错,比如04版本升级到05版本软件,如果刷写03版本软件则报错,也可以从另一方面避免误刷现象。

eerom读写可以实现:生产日期、软硬件版本号、零件号、下线配置的读写等功能,便于产品的追溯,同时如果仪表出现问题,可以通过eerom读写也可以支持问题追踪与定位。比如:仪表某个功能块不工作,可以通过读取下线配置查询是否配置错误;仪表里程表不准,可以通过eerom读取里程数值查询与显示是否一致,定位问题是eerom问题还是lcd显示问题等等。

bootload模块的控制界面如图12所示,能够实现文件读取、数据下载功能,文件读取功能通过文件浏览器选择文件路径读取,并将文件路径显示在表格上。数据下载功能使用的网络层应用传输协议为uds协议。单击“进入模式”使服务器进入bootload模式,此时服务器会重启。单击“下载模块”下载路径地址的文件到指定地址上。操作包含的uds服务为使用sid-0x10服务改变诊断模式,使用sid-0x85服务关闭dtc,使用sid-0x28服务关闭通讯,使用sid-0x27服务解锁安全访问,使用sid-0x31服务擦除区块和校验crc,使用sid-0x34,sid-0x36,sid-0x37服务传输下载数据。单击“退出模式”使服务器退出bootload模式,此时服务器会重启。图12中,id:模块号,对应sid-0x31例程控制服务擦除区块序号参数;blockname:模块号;address:刷写首地址,对应sid-0x34请求下载服务设置的首地址参数;filepath:bin文件路径;获取路径按钮:获取路径;下载模块按钮:下载模块;进入模式按钮:进入bootload模式;退出模式按钮:退出bootload模式。

bootload模式用于实现软件的在线刷新,同时通过校验避免软件的刷写错误以及误刷,还可进行异常掉电保护。目前同一车型有很多变种以及改型。对于仪表,同一硬件可能对应不同软件,同一软件也可能对应同一硬件。为了防止硬件和软件不匹配,造成误刷现象,oncan仪表在线调试软件做了防错机制,比如对硬件编号:hw01、hw02de等,同时对软件编号sw01、sw02等,只有在hw01对应sw01,即编号相同或相匹配时才允许刷写,否则会报错。bootload刷写流程如图9所示,包括如下步骤:

步骤1,刷新事件由一个会话类型为刷新会话,物理寻址/功能寻址的诊断会话控制($10)服务开始。电控单元接收到报文后应为程序刷新分配一切必须的资源。

步骤2:测试工具获取电控单元的物流数据,如车辆识别代码、电控单元硬件号等。

步骤3:测试工具解锁电控单元使其能刷新相关的服务。所有可刷新的电控单元应支持安全访问($27)服务。

步骤4:为了允许应用软件/标定数据下载,电控单元应擦除存储器相应的区域。该功能使用程序控制($31)服务执行存储器擦除程序。当ecu接收到requestdownloadrequest服务,ecu可以擦除相应地址的数据时,步骤4可以省略。

步骤5:每次将连续的数据块下载到非易失性存储器时应遵循下面的服务序列:

a)请求下载($34)

b)传输数据($36)

c)请求退出传输($37)

在请求下载、传输数据和请求退出传输序列正确执行时,电控单元仅支持测试工具保持连接服务,忽略其它服务。

如果块长度超出了网络层缓存大小,单个数据块须使用多个传输数据($36)请求报文才能传输完全。

步骤6:当所有数据块下载完成后,测试工具应通过程序控制($31)服务启动完整性检查程序验证下载是否成功,并更新软件完整性状态参数。

步骤7:若软件完整性检查的结果为真,则电控单元应执行刷新相关性检查,并根据检查结果更新软件兼容性状态参数。

步骤8:在应用软件/标定数据下载之后,测试工具应更新物流数据,如刷新信息域、电控单元零件号等。

步骤9,电控单元须硬复位使下载的应用软件/应用数据生效。电控单元当退出刷新会话时应更新软件有效标志位。

eol模块主要用于工程师测试和产线测试,主要功能有:表头校验、里程表测试、报警灯测试、扬声器测试、背光测试、io口的输入输出测试以及生产信息的读写。具备进入工厂模式和退出模式功能,该功能使用的网络层应用传输协议为uds协议。单击“进入模式”使用sid-0x10服务使服务器进入did-0x61工厂模式,并通过sid-0x27服务解锁安全访问,并使用sid-0x3e服务保持工厂模式。用户可根据sid-0x3e服务的状态反馈来判断服务器是否在线。单击“退出模式”使用sid-0x10服务使服务器退出did-0x61工厂模式返回一般工作模式。控制界面如图13所示,校表界面主要功能是校准仪表指针。根据表盘上指针与刻度的角度差改变校准点的偏移量,并发送给服务器,服务器将信息存放至eeprom。如图14所示,里程表界面用于里程表检测,可以读写行驶里程和剩余行驶里程值,服务器将信息存放至eeprom。如图15所示,报警灯界面用于led灯检测,可以控制报警灯亮灭。如图16所示,扬声器界面用于扬声器检测,可以测试报警声音。如图17所示,屏幕及背光界面主要功能是lcd检测,改变仪表显示屏显示页面用来检测显示屏是否有坏点、亮点以及是否正常显示的功能。客户端有预览图片可以和服务器显示做对比;改变仪表背光亮度状态用来检测背光亮度是否正常显示的功能。如图18所示,输入输出界面用于检测输入输出端状态是否正常,分为三个子功能,输入端口状态读取;输出端口状态设置。如图19所示,生产信息界面可以读写生产日期、硬件版本号、软件版本号等。

eol模块用于实现指针校验,led和buzzer虚焊、lcd花屏以及静态电流检测。通过诊断命令实现lde灯的不规则点亮熄灭控制来判断是否虚焊;通过诊断命令实现lcd的花样显示来判断lcd是否有花屏现象;通过诊断命令控制buzzer特定发音来判断buzzer虚焊问题。eol检测流程如图10所示。

此外,本系统还有客户配置模块,控制界面如图21所示,用于下线配置,数据可以存储各个did配置信息,模板可以存储以前的配置信息,最多可以存储20个模板。

基于前述的oncan仪表在线调试系统,本发明还提供了oncan仪表在线调试方法,包括如下步骤:

诊断传输步骤:发送诊断服务消息,将诊断服务请求按照iso-15765协议的标准发送消息;进行诊断服务;接收诊断服务消息,根据arbid筛选消息后根据iso-15765标准组合成诊断应答信息,当服务器有错误应答报文时能筛选出有效消息;诊断服务中支持增强型判断,诸如报文格式及长度合法性判断,超时时间记录分析,服务器反馈否定nrc码的逻辑判断处理等。

bootload步骤,如前述的bootload刷写流程,在刷写时进行防错判断,比如对硬件编号:hw01、hw02de等,同时对软件编号sw01、sw02等,只有在hw01对应sw01,即编号相同或相匹配时才允许刷写。

eol检测步骤,进行指针校验,led和buzzer虚焊、lcd花屏以及静态电流检测。

eeprom读写步骤,对于读写的数据长度、数据类型以及地址范围等做了有效性判断,避免了产线以及客户端误操作问题。将版本号地址与版本号绑定,避免误刷情况发生。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1