UDS协议-代码完整性测试

本文介绍了作者在开发MCU平台过程中尝试引入UDS协议的经历。通过使用GitHub上的开源UDS项目,作者详细记录了项目的下载、配置及初步测试过程,并分享了解决过程中遇到的问题的方法。

最近在开发MCU平台搭建,于是有了想把UDS协议架设到平台的想法。UDS协议涉及的文档比较多,一个人来实现比较不现实。通过在网上查找资料,发现GitHub上有福特开源的UDS项目,于是尝试把该项目拿来进行调试。

开源地址为uds-c,进行下载即可。

首先对代码的完整性进行测试。我是在Linux上进行测试的,之前已经安装gcc编译器。依环境不同,可能会遇到不同的问题,到时候谷歌一下即可。

通过读开源代码的Readme文档,可以看出里面有三个接口需要自行实现,分别是:send_can,debug以及set_timer。send_can函数必须实现,其余两个可选。解压项目进入工程文件夹下:/home/geno/Documents/uds-c,运行make test,会报有fatal error: check.h: No such file or directory错误,查了一下应该是没有安装check包的原因,运行命令sudo apt install check,安装check包后,问题解决。另外可以进行覆盖率测试,由于没有安装lcov,同样会报错,还有需要注意的是要把

$ BROWSER=google-chrome-stable make coverage

 google-chrome-stable换成自己实际的浏览器,并且要确保可以命令行启动浏览器。

我这里使用的是chromium-browser,所以要修改为BROWER=chromium-browser make coverage。

运行make test的效果如下:

运行BROWER=chromium-browser make coverage的结果如下:

命令行界面:

浏览器界面:

目前看UDS源码的完整性没有问题,下一步进行UDS移植工作

 

UDSDemo-内含协议栈源码.zip”是一个包含UDS(统一诊断服务)协议栈源码的压缩包,它为需要在项目中实现UDS通信功能的开发人员提供了便利。UDS是基于ISO 14229-1标准的车载诊断协议,主要用于汽车电子系统的故障诊断和数据交换。该压缩包中的“UDSDemo-master”目录可能是项目的根目录,里面可能包含以下关键部分: TP层(传输层):作为UDS协议的底层,TP层主要负责数据传输。它通常基于ISO TP(ISO 15765-2)协议,用于对长消息进行分包和重组,以确保数据在物理层的可靠传输。在UDSDemo中,该部分源码会涉及帧分包处理、重传机制以及错误检测等功能的实现。 网络层:网络层主要处理与物理媒介的交互,比如CAN(控制器局域网)或LIN(局部互联网络)等总线协议。这部分源码会涉及如何将UDS报文转换为适合特定网络的帧格式,并进行发送和接收。 诊断代码UDS提供了多种诊断服务,例如读取DTC(诊断故障码)、执行控制单元测试、读取和写入ECU(电子控制单元)内存等。这部分源码会实现这些服务的请求和响应逻辑。 使用文档:压缩包中附带的使用文档是理解和应用UDS协议栈的重要资料。它通常会介绍如何配置和集成源码,如何调用不同服务,以及如何处理异常情况等内容。开发人员需要仔细阅读这份文档,以便将UDS功能正确地整合到自己的项目中。 示例和测试用例:可能还会包含一些示例代码测试用例,帮助用户快速上手和验证UDS协议栈的功能。这些示例可能会展示如何发起诊断请求,或者如何处理来自ECU的响应等。 在实际开发中,将UDS源码移植到新项目时,需要注意以下几点: 适配网络配置:要确保源码中的网络参数(如CAN ID、波特率等)与目标系统的网络配置相匹配。 错误处理:需要分析源码中的错误处理机制,以使其能够适应不同场景下的异常处理需求。 安全性和稳定性:要检查源码
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值