关于中控车机与仪表互联的通讯协议和联调理解

关于中控车机与仪表互联的通讯协议和联调

关于中控车机与仪表互联的通讯协议和联调,包括媒体音乐,收音机,电话,简易导航四个模块。如果全走CAN信号,要完全模拟仿真所有报文的发送和接收,设计流程,信号非常复杂,因此写一个关于中控车机与仪表交互的流程笔记,方便自己以后查阅。

交互协议流程:
仪表主动请求车机需要经过:仪表请求帧,车机应答帧,车机请求帧,仪表应答帧,车机数据帧,仪表校验帧的顺序请求。但是不同模块的功能会有或多或少的差异,下面具体说明在不同模块的详细交互流程:

1. 音乐+收音系

在这里插入图片描述
如图:当校验帧校验正常时,数据正常显示发送。
【如果存在异常状态,(未接收到反馈或请求报文信号)则显示对于的提示。如:“仪表与车机断开连接”“无法获取媒体信息”等。】

2. 电话
电话涉及的交互相对场景较多,较为复杂。主要分为三大场景。
1.静态传输通话记录;2.仪表反控主动拨出;3.仪表被动接听。下面是对应的流程图。

一:静态传输通话记录在这里插入图片描述

2:仪表反控主动拨出
在这里插入图片描述

3:仪表被动接听

在这里插入图片描述

3. 简易导航
在这里插入图片描述
在具体的数据发送中,涉及到数据帧的多帧发送,其中也涉及协议,具体发送方式看定义,下面举例说明下数据发送方式。

发送错误数据帧的三种类型:
1.发送数据长度不正确的数据帧
在这里插入图片描述

如图,我们知道,一个字符转换成Unicode是要占用两个字节。所以“青花瓷周杰伦”需要12个字节,占用12个Byte,要发送数据长度不正确的数据帧 ,只需发送小于12个字节,或大于12个字节即可。

2.发送数据帧数不正确数据帧
在这里插入图片描述
如图,发送数据帧数不正确的数据帧,请求帧请求发送2帧数据帧,但是在发送数据帧的时候,发送了3帧数据帧,则发送了数据帧数不正确的数据帧,仪表会外发校验帧6A6,回复错误响应

3.发送帧顺序不连续的数据帧
在这里插入图片描述
如图,需要发送的数据帧需要四帧发完,Can 6B6 NUM_OF_DATA_MEDIA_INFO_HUM = 1/2/3/4(帧序列号)是表示数据帧的帧序列号,要发送帧顺序不连续的数据帧,就打乱它的发送顺序即可,图上先发送了 第三帧,再发送了第二帧。

发送正确的数据帧:
在这里插入图片描述
在数据报文的发送中:
Can 6B6 = 17 72 31 5C 31 4E 00 4E,第1个Byte是17,代表的是第一帧,且有效数据是后面7位
Can 6B6 = 23 2A 5B 57 00 00 00 00 ,第2个Byte是23,代表的是第二帧,且有效数据是后面3位

数据全是通过Unicode转换。【但要注意的是,无论是“17”还是“27”,都得看需求协议的定义和通讯矩阵对信号的定义,如果加上标志位或者帧类型的描述,就不一定是“17”代表的是第一帧,且有效数据是后面7位这种逻辑类型了。一般多数情况下是上述的逻辑类型,但不绝对】

然后关于数据的发送,涉及到多帧时,要通过工具,写个Function Blocks去代替我们手动无法如此快速发送的脚本,让工具替我们去一帧一针的Transmit。当然如果有设备可以联调的话,当然是最好,可以跳过复杂的流程,但是内部核心逻辑是不变的。

总之,弄清楚交互的流程是大前提,只有对逻辑流程理解清晰了,才能对项目做开发,对测试做设计。

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值