具体工作内容及流程——UDS诊断协议之0x22

本文记录了作者在工作中实现UDS诊断协议0x22的具体流程,包括根据需求创建索引结构体、配置触发和结果函数、状态机管理和NRC设置。在流程中,作者作为中间角色B,处理上位机C与内部系统A之间的通信,确保数据正确传输和格式化。
摘要由CSDN通过智能技术生成

      转眼间也工作了一月时间,在部门导师和论坛大牛带领下,我完成了工作内容之一:将0x22系列SID的需求转换为工程代码。在此记录一下,加深印象也方便以后回溯。

      UDS协议中的各种格式等在此不再赘述。

      简单介绍一下本次工作流程:工作形式与我想象中的有些不同,(懒得排版了)

工作流程为A<——>B<——>C(上位机),我本次充当了B这一角色。原以为我所交互的A和C会是MCU或是Eeprom等外设,实则不然,全是与同事的交互。

流程大致为

C向B发送他所需的功能、对应参数(0x22和SID)和所需数据格式

然后B向A发送读取内容请求,而后获取到A为B准备好的内容

B按照数据格式为C准备好C所需的数据

把数据存进固定的全局变量结构体中,同时告诉C本次读取DID数据完成

然后C来读取全局结构体中数据。

具体步骤如下。

一、根据需求中的数据撰写索引结构体

此结构体数组为自己创立,仅适用于0x22这一SID,用于在传入DID后可查询到DID的多个数据。

我将所需读取的多个DID的数据(DID、SA安全等级、需要读取的数据长度,我自己定义的触发函数,我自己定义的结果函数)封装进一个结构体中,结构体的元素类型为上述括号内数据,再将结构体封装成数组,数组的大小就是本项目中0x22功能所有的DID的个数,这就是保

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值