AUTOSAR 通信栈分析(一)
目录1.通信栈架构概述
1.1 SDU、PDU及命名规则
1.1.1 SDU、PCI和PDU
1.1.2 SDU\PDU命名规则
1.2 通信方式
2.Com解析2.1 基本功能介绍
2.2 Signal / I-PDU Group
2.3 发送模式
2.4 发送模式选择
3.小结01
—
1.1.1 SDU、PCI和PDU
SDU:全称Service Data Unit
PCI :全称Protocol Control Information
PDU:全称Protocol Data Unit
PDU = PCI | SDU
一般来说,我们最常讨论的就是PDU,为什么不单独把SDU拉出来说呢?因为SDU是针对通信层级来说,抽象一点讲,就是当本层收到上层传来的原始数据之后,需要在本层做处理,那么这个原始数据就叫做SDU,处理添加的信息就叫做PCI;处理完成要发送给下一层,这个时候把PCI和SDU组合成PDU传递给下一层,接收数据是同样的流程。如下图所示:
1.1.2 SDU\PDU命名规则
根据上表,我们可以把PDU命名规则以图形的方式表达出来,如下
以普通CAN通信为例,其PDU命名如下:
以诊断通信为例,添加了网络层的东西,因此命名如下:
1.2 通信方式
直接数据传输方式
以普通CAN报文为例
通常路线为 Com->PduR->CanIf->Can模块
对应API为 PduR_ComTransmit->CanIf_Transmit->Can_Write
数据缓冲方式
数据转换流程
目前,基于SOA架构的兴起,AUTOSAR也相应作了一些改变,如下:
—
Com层位域AUTSOA BSW架构中的服务层,主要就是处理信号,为SWC提供信号级别(Signal)的通信数据服务接口,或者根据信号自定义发送类型来发送PDU。
因此这一层提供的API通常是以signal为主,如下:
Com_SendSignal
Com_ReceiveSignal
Com_SendSignalGrou
Com_UpdateShadowSignal
....
2.2 Signal/I-PDU Group
AUTOSAR提供了信号组和PDU组的方式,以满足SWC的复杂数据类型,比如说一个非常复杂的结构体数据量很大,不容易在一个信号里进行封装,但为了保证发送数据的整体原子性,就以信号组的概念来满足。信号组使用shadow buffer的机制来管理信号数据一致性,RTE或者SWC通过这个shadow buffer去访问信号组里的信号,如果该buffer需要与I-PDU进行同步,RTE或者SEC可以通过Com_SendSignalGroup\ComReceiveSignalGroup显式地触发同步,这种就是原子级的同步方式。具体步骤如下:2.3 发送模式
在AUTOSAR规范里,报文的发送模式总共可以分为四种,如下表
发送模式\传输属性 | Timer | Triggered | Pending |
直接/N-Times | -- | 立即发送 | |
周期 | 根据周期配置发送 | - | - |
混合 | 根据周期配置发送 | 立即发送 | |
None | - |
直接\N次发送和周期发送很好理解,如下图:
2.4 发送模式选择
有了以上基本概念之后,我们最后来发送模式选择,为什么要定义发送模式的选择呢?主要是I-PDU里包含了不止一个信号,这种发送模式选择就是根据I-PDU里的信号状态来选择发送模式。这里有两个概念,TMC(Transmission Mode Condition)和TMS(Transmission Mode Selector)AUTOSAR COM模块在发送端使用过滤机制作为TMC,但不会过滤掉发送端的信号。过滤机制 | 描述 |
ALWAYS | 每次都能通过过滤 |
NEVER | 每次都不能通过过滤 |
MASKED_NEW_EQUALS_X | 新的发送的值和配置的掩码相与等于一个配置值的时候才能通过 |
MASKED_NEW_DIFFERS_X | 新的发送的值和配置的掩码相与不等于一个配置值的时候才能通过 |
MASKED_NEW_DIFFERS_MASKED_OLD | 新的发送的值和配置的掩码相与后的结果不等于之前发送的值和配置的掩码相与后的结果的时候才能通过 |
NEW_IS_WITHIN | 新发送的值在一个配置的范围之内才能通过 |
NEW_IS_OUTSIDE | 新发送的值不在一个配置的范围之内才能通过 |
ONE_EVERY_N | 每隔N(配置的一个值)次才能通过过滤一次 |
整体流程如下:
03
—
小结
本章内容,我们将通信栈的整体结果做了一个描述,并详细讨论了Com层常用的几个概念,例如发送模式、发送模式选择、信号组和PDU组等,但还有很多细节没有讲,比如说Update Bits、deadline监控、动态长度的信号等等,这需要在项目工程中具体问题具体分析;在下节内容,我们将继续介绍PduR、以CAN通信为例介绍发送接收流程。往期回顾:
1.汽车标定合集
汽车标定文章合集汽车标定技术--XCP协议如何支持测量功能
硬核:汽车标定--多周期测量显示异常汽车标定技术--MPC57xx是如何支持标定的页切换
2.AUTOSAR合集
AUTOSAR OS概述(一)AUTOSAR OS概述(二)
AUTOSAR文章合集
Flash模拟EEPROM原理浅析
3.汽车网络安全合集
汽车网络安全方案产品交付形态的思考汽车网络安全方案需求分析
车载信息安全场景概述
汽车网络安全渗透测试概述
汽车网络安全文章合集
4.汽车功能安全合集
5.汽车虚拟化合集