目录
一、整车VIN设置状态反馈规则
1、整车VIN码设置和参数由VIN刷写上位机发起,如果VCU在5秒内没有响应,则报通讯错误。
2、VECU_PARAMETWRFB(0x573)定义如下:
0x00:未设置
0x01:系统繁忙
0x02:正在进行
0x03:设置成功
0x04:设置失败
设置成功时VECU_PARAMETWRFB(0x573)发送0x03
校验和错误或数据超出范围或不按要求发送设置值时VECU_PARAMETWRFB(0x573)发送0x4
二、整车VIN设置状态反馈设置策略
1、VIN设置状态判定
输入信号具体计算方法参考之前发布的文章
实例讲解电动汽车VIN写入规则及Simulink建模方法(二)——VIN写入方法及Simulink建模
实例讲解电动汽车VIN写入规则及Simulink建模方法(一)——VIN校验方法及Simulink建模
1)当校验后帧号不等于8且不等于0,同时VIN写入标识位等于1,则说明VIN正在写入过程中,输出VIN设置状态为0x02 正在进行
2)若不满足条件1,判断VIN写入结果是否等于0xAA,若等于0xAA,表明禁止写入,此时输出VIN设置状态为0x01 系统繁忙
3)若也不满足条件2,判断VIN读取数值是否全为0,全为0,则说明VIN未写入,此时输出VIN设置状态为0x00 未设置
4)若也不满足条件3,判断是否在校验后帧号不等于8的情况下,满足VIN写入结果为0x00 写入成功或0x04 读取成功,或VIN读取结果为0x00 成功,说明VIN已成功写入内存,此时输出VIN设置状态为0x3 设置成功
5)若以上条件都不满足,则输出VIN设置状态为0x4 设置失败
2、VIN设置状态反馈发送
1)判定VIN设置状态后,需要将该状态反馈至上位机;根据VIN设置状态反馈规则,应通过0x573报文发送VIN设置状态至CAN总线。
2)以VIN设置状态为输入量,新建CAN打包模块,将打包后的CAN报文信息发送至Pcan及Ecan
三、整车VIN设置状态反馈Simulink建模
1、VIN设置状态判定
1)输入信号
VINWrite_Result:VIN写入结果,0x00:写入成功,0x02:写入失败,0x04:读取成功,0x08:校验失败,0xAA:禁止写入(写入结果判定由底层程序写入函数执行后判定输出结果)
VINRead_Result:VIN读取结果,0x0:成功,0x1:失败(读取结果判定由底层程序读取函数执行后判定输出结果)
ReadVIN_Value:VIN读取数值(读取数值由底层程序读取函数读取后传递至应用层作为输入信号)
VINWrite_Flg:VIN写入标识位
ChkVINFrm_Nmb:校验后VIN帧号
2)输出信号
VINSet_Fb:VIN设置状态反馈信号
3)Simulink模型
a、根据上文VIN设置状态判定策略,搭建Simulink模型,其中VIN写入结果判定是否等于0xAA,0xAA转换为十进制为170
b、读取VIN数值判定是否为空Simulink模型
2、VIN设置状态反馈发送
1)输入信号
VINSet_Fb:VIN设置状态反馈信号
2)输出信号
CAN_Pcan_CanMessage_0x573:Pcan 0x573报文
CAN_Ecan_CanMessage_0x573:Ecan 0x573报文
3)Simulink模型
CAN打包模块具体设置方法参考之前发布的《实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法》
a、将VINSet_Fb输入CAN打包模块,输出信号分别为CAN_Pcan_CanMessage_0x573及CAN_Ecan_CanMessage_0x573
b、CAN打包模块参数设置,选择0x573对应的DBC报文
3、整车VIN设置状态反馈设置完整Simulink模型
四、总结
本文介绍了一种整车VIN设置状态反馈规则,并详细介绍了VIN设置状态反馈的具体策略及Simulink建模方法。希望能给相关技术人员带来一定参考和帮助。
欢迎关注同名微信公众号:汽车电控研习室