UDS是一种高层应用协议。所谓“应用协议”,指的就是在CAN报文传输的基础上,进一步封装的特殊含义的传输命令。 它和CAN报文本身的区别,大致就类似于“能张口说话”和“音乐”的区别,后者要在前者的基础上,但是相比前者做了大量的细分工作。 关于UDS的进一步的阐述,不是本文的重点,网上的资料也比较多,大家可以去知乎搜一下,学习一下,也可以去下载14227标准,好好看一下。 我们今天关心的是UDS的测试。 UDS协议测试的两大方面 主要包括UDS服务测试和DTC故障码测试,其中DTC测试由于和功能牵涉比较紧密,所以一般在HIL上进行,我们传统意义上的UDS测试,指的主要是诊断服务测试,我们今天讲述的UDS测试,指的也是诊断服务测试。 服务层 啥叫诊断服务? 上图中的CAN数据区的黄色部分就是诊断服务码(当然,各大车企定义的不完全一样,可能会有自定义内容),它表示的是“我”正在做什么或者将要做什么。 UDS测试的一项很重要的内容,就是检查这些定义好的服务能否实现,能否正常跳转。 传输层 只有服务层测试还是不够的,我们还要检查传输层的性能。 就比如,虽然DTU能从“10”服务切换到“11”服务,但是切换得很慢,这也是不行的。 再比如,虽然DTU能反馈故障码,但是故障码的多帧传输时间间隔太长,也是不行的。 我们需要对每两帧之间的时间性能及响应逻辑做检查。 测试方法 UDS测试,其实都是报文交互逻辑的测试,它对硬件设备的要求比较低,理论上来讲,我们可以随便找一个CAN盒,用LabVIEW调用它,然后在LabVIEW里面做测试逻辑,也能完全搞定,总的软硬件成本也就几百块钱(LabVIEW试用版不要钱哈哈)。 实际上,我们通常都是采用市面上成熟的工具来测UDS,目前主要还是Vector的CANdelaStudio和CANoe.DiVa套装(以下简称CANdela和CANdiva)。 软硬件准备 CANdela和CANdiva其实是CANoe的插件,同时也是可以单独使用的软件,安装了它们之后,会在CANoe里面出现对应的快捷入口。
您安装了CANoe之后,再安装CANdela和CANdiva,再打开CANoe,就能在CANoe里面看到相关的入口了。此外,二者也有自己的独立入口,如下图所示: 此外,国内很多用户会将CANoe等License存放在接口卡上,您的CAN盒子里面要有CAN、dela、diva的license,才能完整使用全套的uds测试功能,license的界面如下: 根据目前市场行情,全套软硬件下来,大概需要45万元。 好了,Vector路线的全套软硬件成本就是这么多。 CANdela编辑CDD CANdela编辑CDD,需要先拿到诊断规范,诊断规范一般都是诊断工程师发布的。下图是CANdela的相关界面: 在整个UDS测试工作中,CDD编辑是最为麻烦的一个环节,而且它还是加密的,没法开发一个叫“Excel2CDD”这样的工具,这个大家就慢慢敲吧,也没有太好的办法。
CANdiva生成测试用例工程 CANdiva可以把CDD文件转换生成测试用例工程文件,转换过程如下: 转换之后的测试用例工程清单如下: 测试执行 在CANoe中,可有如下三种测试方向:
半自动化测试 全自动化测试 演示视频 为了彻底消除大家对UDS诊断测试的畏惧感,帮助大家树立战胜它、搞定它的信心,我们在最后给大家演示一遍完整的测试过程。 我们一起努力,促进祖国汽车研发测试事业的茁壮成长。 |
|