编辑推荐: |
本文主要介绍了AUTOSAR架构里的数据转换概念、AUTOSAR数据转换的数据流、接口示例及基于COM的转换器等。希望对您的学习有所帮助。
本文来自于微信公众号车载嵌入式软件开发,由火龙果软件Linda编辑、推荐。 |
|
什么是数据转换
数据转换是将数据的格式,结构或者数值进行改变的过程。[1]
在AUTOSAR架构当中,ECU之间的数据通信往往也需要进行数据转换,例如SomeIp和E2E数据。
在平常的沟通当中,我们也经常以序列化(Serialization)称呼,也即将结构体对象转化为字节流,最终通过底层通信协议栈进行数据通信。
AUTOSAR数据转换的数据流
以上图为例,SWC需要发送数据,且数据在作为COM I-PDU发送出去之前,需要分别进行SomeIp和E2E的转换。
转换链的先后顺序需要由项目成员在设计工具中定义,这里,数据首先进行SomeIp的转换。
SomeIp转换器将结果(字节流)写到RTE提供的Buffer 1中。
然后,RTE再调用E2E转换器,将Buffer 1的数据作为输入,最终转换出的数据放入RTE提供的Buffer
2中。
最终,RTE将Buffer 2中的字节流传递给COM模块。
接口示例
这里,我们能够以具体接口的形式更加直观的了解数据流以及Buffer的使用。
基于COM的转换器
基于COM的转换器提供基于固定通信矩阵的序列化功能,这样可以以一种更加优化的方式将signal放入PDU当中。
例如,布尔值在PDU中可以只占用一个bit位,可以减少数据量,在Can/Lin这样的低数据载荷网络当中更加适用。
基于COM的转换器是整个转换链中的第一个。
根据COM的配置(通信矩阵),数据会被按照同样的大小端等设置进行序列化。
后续可以使用其他转换器添加CRC或序列号等信息。
最后转换器调用Com_SendSignalGroupArray接口请求COM模块进行发送。
|