UDS: DID可以设置成3个BYTE吗

目录

问题背景

结论及分析

一、 传输效率可能会降低——具体的取决于将此DID应用在哪个诊断服务中

 二、相关的工具是否支持——需要一一确认

三、替代方案——现有的“动态定义DID”是否能满足需求?


问题背景

交流群的小伙伴有人问“UDS里定义DID长度为2个Byte,客户来问我DID能不能做成3个Byte,拿不出资料跟他解释"。

这时候,只是单纯的觉得,协议这种规定死的东西,当然不能想变就变,不然当初给它设置固定长度,就没有意义了。

后来另外一个小伙伴回复说”改协议栈,客户上帝,上帝说了算“。

才想到协议栈是可以改的~ 哈哈哈 对呀,协议也是人定义的,当然也可以被改。

这时候发现自己对于协议中为什么要把DID设置为2个Byte,并不明白。能想到的理由只有一个2个Byte的长度已经足够用了。但这只是够用,如果增加长度会怎么样呢?

其实要考虑的是,如果改了会有什么影响?这些影响是否可控?我要从哪些方面分析优劣势呢?

结论及分析

先上结论:以小白的视角,查了一堆资料后,得出的结论是不建议修改。

有以下3点理由。

一、 传输效率可能会降低——具体的取决于将此DID应用在哪个诊断服务中

因为CAN标准帧总共8Byte, 网络层占1Byte,还剩余7 Byte 可用。

根据不同诊断服务的要求不同,传输效率是否会受影响也需要具体情况具体讨论:

比如说,如果是诊断服务,request/response下面这种格式的,3Byte DID就不影响

        <SID> + <Sub-Funtion> + <DID>

其中SID 需要1Byte,Sub-Func需要1Byte,剩余5Byte可用,有足够的空间给DID。

但如果是数据读写服务,request/response是下面这种格式, 3Byte DID将可能降低传输效率:

        <SID>+<DID>+<DATA>

这时:DID如果是2Byte,Data可以传输4Byte;DID如果是3Byte,Data只有3Byte的位置。

  1. 如果data长度3Byte内能够传输完成就不影响,
  2. 如果Data超过3Byte,那么原本单帧可完成传输的内容,需要多一个帧才能完成,不仅是传输效率打折扣,拆包、组包操作也需要额外开销。

【参考文章:毕乾坤,徐旭.UDS协议栈中的时间参数解析[J].汽车实用技术,2019(13):43-44+57.DOI:10.16638/j.cnki.1671-7988.2019.13.016.】

 二、相关的工具是否支持——需要一一确认

【参考链接:CDD数据库文件制作(三)——DIDCDD数据库文件制作(三)——DID_涓涓悦然的博客-优快云博客

DID 长度为2Byte是通用规则,改成3Byte,需要确认相关的工具是否是固化配置的,是否会有应用上的限制。

比如目前了解到的和DID相关的一个软件CANdelaStudio,需要用它制作CDD文件,在CDD文件中创建DID时,DID的DataType是下拉框选择的,里面的选项是否支持3Byte的长度?

这个软件可能支持(我没有实际操作过这个软件,无法确认),其他的软硬件设备呢?

三、替代方案——现有的“动态定义DID”是否能满足需求?

【参考文章:汽车UDS诊断详解及Vector相关工具链使用说明——2.2.7 动态定义DID(0x2C)汽车UDS诊断详解及Vector相关工具链使用说明——2.2.7 动态定义DID(0x2C)_老孟_的博客-优快云博客_动态did

动态定义DID服务允许诊断仪在ECU内部动态定义一个临时的DID,可以通过该DID读取一段内存的数据,也可以通过改DID一次性读取多个原有DID的数据。动态定义DID既可以是支持22服务的DID,也可以是支持2A服务的周期性读取DID。

该服务可以更加灵活地读取一些临时数据,也可以降低因频繁发送诊断请求和响应而导致的总线负载过高。

以上只是简单的分析记录,里面涉及到的内容点也并不太理解。欢迎小伙伴们一起讨论指正呀~

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

picoasis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值