网站 主办单位性质 个人,拼多多怎么申请开店,产品设计公司合同模板,网页设计师报名费1、基础知识
大家都了解 NRC0x13#xff0c;表示长度错误和格式错误 NRC0x31#xff0c;表示DID不支持和数据格式不支持 2、为什么说这两个NRC比较特殊
看下图的标注部分#xff1a; 2.1、先看NRC0x13
步骤一#xff1a;仔细看是先判断Minmun Length Check #xff0…1、基础知识
大家都了解 NRC0x13表示长度错误和格式错误 NRC0x31表示DID不支持和数据格式不支持 2、为什么说这两个NRC比较特殊
看下图的标注部分 2.1、先看NRC0x13
步骤一仔细看是先判断Minmun Length Check 判断最小长度什么是最小长度。最小长度意味着最简单的状态。 看过我之前一篇关于0x2F的同学知道我讲解时举了个0x2F服务控制车窗升降的例子其中就提到可以为每一个车窗设置一个DID,我们采取以下报文来控制车窗 0x 701 05 2F D0 03 01 32; 使用以下报文来返回控制给ECU 0x 701 04 2F D0 01 00; 于是第一个0x13判断的最小长度 04时我们就可以返回NRC0x13
第二个NRC0x13就需要根据具体的设置去判断了
还是以控制车窗为例
如果定义一个DID来控制多个车窗则每个车窗ControlState对应的bit数则不是一个固定数你可以定义每个车窗使用7bit也就是一个Byte来控制但是你也可以用8bit、9bit来控制没有限定。
而controlMask参数也是不是固定的理论上使用一个DID就可以控制车上所有的车窗。车锁。灯、电机、继电器等。只要控制的单位超过8个controlMask也是可以大于一个字节的。
故这个最大长度不能超过我们设定的最大长度。
还是以一个DID控制四个车窗为例 0x 701 09 2F D0 03 03 32 32, 32 32 F0 55 55 55;(can_fd,0x55是填充数据) 这里的09就是我们设置该DID对应最大的长度。如果你发送 0x 701 0A 2F D0 03 03 32 32, 32 32 F0 55 55 55 ;can_fd,0x55是填充数据) 就会得到NRC 13的回复
2.2 、NRC0x31也是如此
大家自行参考规范结合上文思考和NRC0x13的思路一致 3、结论
也就是说0x2F服务中NRC0x13和NRC0x31并没有明显的优先级关系这两个NRC是交叉的
4、再思考阅读规范
希望你能找出和0x2F中NRC0x13和NRC0x31这样差不多的例子