Autosar通信協(xié)議棧-AutoSAR通信模塊的架構(gòu)AutosarComStack001
1 Autosar通信協(xié)議棧的概述
-說(shuō)到通信,我們第一想到通信的對(duì)等實(shí)體(communication peer),即發(fā)送方和接收方,這些可以看成UML中用例圖的Actor;-第二想到的使用通信的use case,即消息的發(fā)送和消息的接收;
-第三個(gè)想到的就是通信的消息(messages);這里的消息在AutoSAR通信架構(gòu)中流經(jīng)了下列模塊,從上至下(發(fā)送邏輯)為:SwcAppSender->Rte->Com->PduR->CanIf->CanDrv;從下至上(接收邏輯:CanDrv>CanIf->PduR->Com->Rte->SwcAppReceiver;優(yōu)點(diǎn)不言而喻就是分層:通過(guò)分層,每層可以根據(jù)自己的配置信息實(shí)現(xiàn)消息的打包和拆包,用戶(hù)層的業(yè)務(wù)邏輯不依賴(lài)底層總線(xiàn)的硬件特性;缺點(diǎn)就是增加了各層的API調(diào)用開(kāi)銷(xiāo)。
上面三個(gè)概念可以通過(guò)下圖去理解。
-掌握了上面的概念;我們對(duì)Autosar通信協(xié)議棧有了一個(gè)大概的了解;接下來(lái)就是理解各個(gè)層的具體功能及在Autosar通信協(xié)議棧的配置實(shí)現(xiàn);在這個(gè)過(guò)程中我們首先要理解下面幾個(gè)概念。
我們可以通過(guò)下面的圖有一個(gè)整體的認(rèn)識(shí):
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想知道當(dāng)前車(chē)門(mén)的狀態(tài)(開(kāi)或關(guān));我們可以用1bit Autosar signal來(lái)indicate這個(gè)狀態(tài)。然后我們需要把Autosar signal映射到a signal in AutoSAR COM,實(shí)現(xiàn)獲取外部ECU門(mén)的狀態(tài);
2)SignalGroup
結(jié)構(gòu)體數(shù)據(jù)類(lèi)型的變量包含了多個(gè)原始的數(shù)據(jù)元素;為了保證這些數(shù)據(jù)元素的一致性,在結(jié)構(gòu)體數(shù)據(jù)類(lèi)型要映射到signal group,確保這些數(shù)據(jù)作為原子單元被傳遞到總線(xiàn)或從總線(xiàn)接收
3)Pdu=Sdu PCI
參見(jiàn)圖5的 Pdu的封裝和組成可知,Pdu作為協(xié)議數(shù)據(jù)單元,由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通信的各層中每個(gè)PDU都由一個(gè)特定唯一的PduId標(biāo)識(shí);在Pdu發(fā)送時(shí);上層將PDU發(fā)送到下層,下層將它當(dāng)作當(dāng)前層的SDU進(jìn)行處理;注意I-Pdu的長(zhǎng)度一般不超過(guò)8字節(jié),如果,超過(guò)8字節(jié),則使用Cantp進(jìn)行拆包和組包。
注意每個(gè)層的Pdu都有特定的前綴;如Ipdu(在Com/Dcm與PduR之間;在Cantp/CanIf與PduR之間);Npdu(在Cantp與CanIf之間);Lpdu(在CanIf與CanDrv之間,由CanID Dlc L_SDU組成)
4)IPduGroup
IPduGroup是Com中I-PDU的集合;一般按照功能進(jìn)行劃分組,根據(jù)需求調(diào)用Com提供的IPdu組API來(lái)打開(kāi)和關(guān)閉IPdu組
5)Hareware Object
Hardware Object is a space in CAN controller RAM where the PDU is put,上層一般通過(guò)定義HTH和HRH進(jìn)行引用Hareware Object點(diǎn)擊文末“閱讀原文”,即可直接訂閱專(zhuān)欄,解鎖全部系列~