当前位置:首页 > > 糖果Autosar
[导读]1Autosar通信协议栈的概述-说到通信,我们第一想到通信的对等实体(communicationpeer),即发送方和接收方,这些可以看成UML中用例图的Actor;-第二想到的使用通信的usecase,即消息的发送和消息的接收;-第三个想到的就是通信的消息(messages)...

1 Autosar通信协议栈的概述

-说到通信,我们第一想到通信的对等实体(communication peer),即发送方和接收方,这些可以看成UML中用例图的Actor;
-第二想到的使用通信的use case,即消息的发送和消息的接收;
-第三个想到的就是通信的消息(messages);这里的消息在AutoSAR通信架构中流经了下列模块,从上至下(发送逻辑)为:SwcAppSender->Rte->Com->PduR->CanIf->CanDrv;从下至上(接收逻辑:CanDrv>CanIf->PduR->Com->Rte->SwcAppReceiver;优点不言而喻就是分层:通过分层,每层可以根据自己的配置信息实现消息的打包和拆包,用户层的业务逻辑不依赖底层总线的硬件特性;缺点就是增加了各层的API调用开销。
上面三个概念可以通过下图去理解。



-掌握了上面的概念;我们对Autosar通信协议栈有了一个大概的了解;接下来就是理解各个层的具体功能及在Autosar通信协议栈的配置实现;在这个过程中我们首先要理解下面几个概念。
我们可以通过下面的图有一个整体的认识:

1)Signal
看一下官方的定义:CP AUTOSAR implements signal based communication. A signal is the smallest amount of information that a CAN message can have. A signal can be of any size from 1- bit to all 64 bits of CAN message (considering the CAN message is 8-Bytes), in other words the CAN message is divided in bits called signals.例如ECU想知道当前车门的状态(开或关);我们可以用1bit Autosar signal来indicate这个状态。然后我们需要把Autosar signal映射到a signal in AutoSAR COM,实现获取外部ECU门的状态;

2)SignalGroup
结构体数据类型的变量包含了多个原始的数据元素;为了保证这些数据元素的一致性,在结构体数据类型要映射到signal group,确保这些数据作为原子单元被传递到总线或从总线接收
3)Pdu=Sdu PCI
参见图5的 Pdu的封装和组成可知,Pdu作为协议数据单元,由SDU(SDU is the data which needs to be transmitted,由singal组装而成)和PCI(PCI contains the information which indicates the next destination of the SDU)组成,Autosar通信的各层中每个PDU都由一个特定唯一的PduId标识;在Pdu发送时;上层将PDU发送到下层,下层将它当作当前层的SDU进行处理;注意I-Pdu的长度一般不超过8字节,如果,超过8字节,则使用Cantp进行拆包和组包。
注意每个层的Pdu都有特定的前缀;如Ipdu(在Com/Dcm与PduR之间;在Cantp/CanIf与PduR之间);Npdu(在Cantp与CanIf之间);Lpdu(在CanIf与CanDrv之间,由CanID Dlc L_SDU组成)
4)IPduGroup
IPduGroup是Com中I-PDU的集合;一般按照功能进行划分组,根据需求调用Com提供的IPdu组API来打开和关闭IPdu组

5)Hareware Object
Hardware Object is a space in CAN controller RAM where the PDU is put,上层一般通过定义HTH和HRH进行引用Hareware Object

点击文末“阅读原文”,即可直接订阅专栏,解锁全部系列~

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭