傳送門 -> AUTOSAR配置與實踐總目錄
AutoSAR配置與實踐(基礎篇)3.3 BSW的通信功能
- 一、收發過程概覽
- 1.1 發送過程概覽
- 1.2 接收過程概覽
- 二、BSW的通信功能模塊組成
- 三、收發過程解析
- 3.1 發送過程
- 3.2 發送后的結果確認
- 3.3 接收過程
一、收發過程概覽
1.1 發送過程概覽
-
COM Stack 指的是通信層相應模塊COM/PduR/BusIf/BusDriver,一起協作供用戶完成數據發送;
-
發送時,用戶先請求COM Stack發送,COM Stack發送完畢后通知用戶結果,結果可能是發送成功、發送超時、或者發送錯誤。
1.2 接收過程概覽
接收時,COM Stack數據直接反饋User數據
二、BSW的通信功能模塊組成
圖中Bus Interface/BusTp/Bus Driver,其中Bus為了方便理解可以認為是常見的Can通信。
圖中介紹了通信相關的服務層、抽象層以及驅動層的模塊細分。
Com: Communication,通信層的功能
- 解析報文內的信號,用戶不用關心信號布局
COM模塊會解析OEM給的arxml、dbc、xml等描述報文內信號layout的文件,轉化成信號接口提供給SWC使用。SWC層只需調用COM接口即可完成數據收發,不用關心信號在報文內的占位。
- 轉發用戶數據,用戶不用關心總線類型
上層SWC發下來的信號,最先經過Com層,Com重點關心數據長度,不關心是LIN發下來,還是CAN發下來的。
PduR: 全稱Protocol Data Unit Router,協議數據單元路由器,一個主要作用就是把Com發下來的PDU分發到不同的總線上(CAN/LIN等),實現PDU級別的網關,或者將不同的協議變成統一信號上傳給COM。
IpduM: I-PDU Multiplexer,可選模塊,使用場景為當表示CAN ID的位不足時,用戶從數據字節中拿出一些字節作為協議用,而IpduM可以解析這些特殊的協議。
舉例:需求要使用0x2A8 這個CAN ID來傳輸10個字節的車輛VIN碼,而標準CAN ID一次只能傳8字節數據可以分兩幀來傳,最前面的那個字節用作協議傳輸,1代表版本號的前7個字節,2代表版本號的后3個字節,而接收方也按對應協議解析,可以實現1個ID傳輸10字節的數據
TP: Transport Protocol,傳輸協議層,一般做診斷用到,發送數據流向 PduR -> Bus TP->Bus interface。如果非診斷功能,發送數據流向PduR ->Bus interface。
Interface: 與硬件無關的一層,總線特有的功能(與總線的發送和接收機制有關系),比如管理發送隊列,FlexRay總線的組幀,基于時間觸發的總線(LIN、Flexray)在這一層處理。
Driver: 主芯片CAN模塊的驅動,主要完成芯片CAN控制器的初始化,buffer的填充以及CAN中斷的實施。
Trcv Driver: 外置CAN收發器需要用到的驅動。
三、收發過程解析
3.1 發送過程
Step 1: SWC使用RTE接口發送數據到COM層, COM層把數據寫入PDU buffer;
Step 2: COM調用PDUR觸發數據的發送(PDU觸發發送方式為周期或者立即,可在COM層配置);
Step 3: PDUR根據報文及總線類型選擇不同的下發路徑:
- 若是普通報文,PDUR 將根據總線類型將數據轉發到下層對應的BusIf層(PDUR-> BusIf);
- 若是診斷報文,PDUR 將數據轉發到下層TP層,再轉到對應的BusIf層(PDUR -> TP -> BusIf);
Step 4: BusIf層根據不同的通道,把報文寫入不同的隊列;
Step 5: Bus Driver根據報文的優先級發送報文。
3.2 發送后的結果確認
參考上述發送過程Step6.發送完成后,由下層依次給上層PDU發送的確認(Tx_Confirmation)。數據發送后對來自底層的發送確認事件的檢測方式,其中Driver層和COM層方式是可配置的
-
Bus Driver:可以選擇對物理層輪詢(對應Polling配置),也可以選擇直接由物理層中斷觸發通知Bus Driver(對應Interrupt配置)
-
COM層: 處理下層信號的方式可以選擇立即(對應IMMEDIATE配置)或者延遲處理(對應DEFERRED配置)
以上檢測方式在此僅做了解即可,詳細內容會在后續章節中展開。
備注:圖中物理層到SWC傳遞簡化描述所以用了一條線,其實也是逐層上報的,和發送過程相逆。
3.3 接收過程
Step 1: 接收來自物理層Bus上的報文(同上述Tx_Confirmation流程,分為Polling和Interrupt方式)
Step 2: 由Driver調用RxIndication,數據被傳遞到Bus Interface層
Step 3: Bus Interface將數據傳遞到PDUR
Step 4: PDUR將數據傳遞到COM(同上述Tx_Confirmation流程,分為IMMEDIATE和DEFERRED方式)
Step 5: 信號通過RTE通知SWC(也可被SWC通過輪詢方式讀取)
傳送門 -> AUTOSAR配置與實踐總目錄