免费看叼嘿_日韩美女一区_密臀av网站_日本乱码卡一卡二新区不卡_日本伦理一区二区三区_日本高清色倩视频在线观看

400-821-6015
行業(yè)資訊
您當前的位置:首頁 ? 行業(yè)資訊 ? 行業(yè)資訊
內(nèi)部資訊行業(yè)資訊

復雜驅動應如何集成到 AUTOSAR 架構中?

發(fā)布日期:2023-11-24

CDD 簡介


復雜驅動(Complex Driver,CDD)是一種不受 AUTOSAR 標準化約束的軟件實體,它可以通過 AUTOSAR 接口和/或基礎軟件模塊 API 進行訪問 AUTOSAR 組件或者被 AUTOSAR 組件訪問。
根據(jù) AUTOSAR 的分層軟件架構文檔,復雜驅動是基礎軟件復雜驅動層的一種特定模塊,它與標準 BSW 模塊或 RTE 進行交互。
復雜驅動的主要目的是利用特定的中斷和/或復雜的微控制器外設、外部設備(通信收發(fā)器、ASIC 等)實現(xiàn)復雜的傳感器評估和執(zhí)行器控制,以滿足特殊的功能和時序要求。
此外,它還可以用于實現(xiàn)增強的服務/協(xié)議或封裝非 AUTOSAR 系統(tǒng)的功能。復雜驅動的實現(xiàn)可能依賴于具體的應用、微控制器和 ECU。
復雜驅動可以作為一種遷移機制,將現(xiàn)有的或新的概念引入 AUTOSAR 軟件架構。


復雜驅動設計建議


為了便于復雜驅動與 AUTOSAR 架構互聯(lián)互通,設計者應考慮以下要點:


文檔

用戶手冊

復雜驅動的提供商應提供用戶手冊,以方便集成和為客戶提供信息:
  • 復雜驅動簡介和概述
  • 描述功能操作(初始化、正常操作、關閉、故障操作等)
  • 描述與其他 BSW 模塊、SchM 和 Rte 的關系及需求;例如需要從 NvM 獲取內(nèi)存塊,需要配置的關鍵區(qū)段等
  • 文件結構和依賴關系  
  • 接口描述(包括服務):名稱、描述、重入性、參數(shù)(名稱、類型、范圍、值)、返回值(名稱、類型、范圍、值)、配置類
  • 非功能需求描述:時序和行為需求、資源使用情況、與其他 BSW 模塊或 SW-C 的行為等
  • Dem 錯誤描述,可選的 Det 錯誤,調(diào)試變量
  • 配置參數(shù)描述(名稱、類型、范圍、值)
  • 內(nèi)存映射需求(Flash、RAM)
  • 使用限制和已知問題
  • 集成約束和對其他模塊的需求
  • 示例

模塊 ID
復雜驅動模塊的模塊 ID 范圍在 BSW 模塊列表文檔中進行了描述。


實現(xiàn)

AUTOSAR 對復雜驅動實現(xiàn)沒有太多限制。至少:

  • 復雜驅動應遵循基礎軟件模塊的一般要求、規(guī)范等文檔的輸入規(guī)范。
  • 復雜驅動應定義關鍵區(qū)段以便由 SchM 或 OS 機制處理。
  • 復雜驅動的模式可由 EcuM 和 BswM 模塊管理。
  • 復雜驅動可以使用內(nèi)存映射機制處理其內(nèi)存區(qū)段。
  • 復雜驅動可以使用 Det 或 Dem 模塊報告錯誤。


CDD文件



代碼文件
除了基礎軟件模塊的一般要求文檔中的要求外,復雜驅動模塊的代碼文件結構不是固定的。
至少應提供 CDD_.c。中斷函數(shù)可放在 CDD__Irq.c 中。回調(diào)函數(shù)可放在 CDD__Callout.c 中。根據(jù)需要,鏈接時從配置生成的 C 對象可放在 CDD__Lcfg.c 文件中。
根據(jù)需要,構建后從配置生成的 C 對象可放在 CDD__PBcfg.c 文件中。
如果復雜驅動模塊實現(xiàn)需要額外的代碼文件,可以自由包含它們。


頭文件

下圖包含了復雜驅動模塊的 AUTOSAR 定義的頭文件層次結構。
復雜驅動模塊應提供一個頭文件結構,以便只需要包含 CDD_.h 文件就可以使用該模塊。
如果需要由其他 BSW 模塊處理某些回調(diào)函數(shù),復雜驅動模塊可以提供 CDD__Cbk.h 頭文件。
根據(jù)需要,配置生成的 C 對象聲明可放在 CDD__Cfg.h, CDD__PBcfg.h, CDD__Lcfg.h 文件中。
如果復雜驅動模塊實現(xiàn)需要額外的頭文件,可以自由包含它們。頭文件應該是自包含的,即它們將包含所需的其他所有頭文件。
復雜驅動模塊可以包含 Det.h 和/或 Dem.h 頭文件來報告錯誤。
如果需要定義某些內(nèi)存映射區(qū)域,復雜驅動模塊可以包含_MemMap.h 頭文件,其中 是模塊實現(xiàn)前綴。
如果配置了與 RTE 的接口,復雜驅動模塊可以包含 Rte_CDD_.h 頭文件。


推薦的文件結構

下圖描述了復雜驅動模塊的基本定義的 AUTOSAR 頭文件層次結構。

圖片


一致性檢查
復雜驅動模塊應避免集成不兼容的(.c 或.h)文件,如基礎軟件模塊通用規(guī)范中所定義的。


行為和接口描述

一些復雜驅動不僅與其他 BSW 模塊或組件有接口,還通過 RTE 具有更抽象的接口可以被應用 SW-C 訪問。
在這些情況下,需要一個 CDD SW-C 類型來連接 RTE 和復雜驅動,并且復雜驅動必須遵循 BSW 模塊描述模板的要求。
這個描述文件應包含:
  • 復雜驅動服務的描述
  • 類型和端口接口  
  • 內(nèi)部行為及可運行實體的描述
  • 可運行實體所需的觸發(fā)事件描述
  • 共享資源保護的互斥區(qū)描述
  • 內(nèi)存映射

這里需要的更抽象接口稱為 AUTOSAR 接口,它們通過軟件組件模板(SWCT)進行描述,包括端口、端口接口及其詳細信息。
用于描述這些元素的 SWCT 的基類是 ComplexDeviceDriverSwComponentType。
SWCT 中還包含稱為 RunnableEntities 的可運行實體,用于對從 RTE 調(diào)用復雜驅動的函數(shù)建模。用于描述 RunnableEntities(和其他一些東西)的 SWCT 的基類稱為 SwcInternalBehavior。
CDD 可運行實體應設計為減少 RTE 開銷,例如:
  • 推薦服務器可運行實體為可重入的:可以同時調(diào)用 = TRUE。
  • 可運行實體簽名為:void 或 StdReturnType RunnableName(void 或參數(shù))

參數(shù)配置

如果需要使用 AUTOSAR GCE 配置參數(shù),復雜驅動必須遵循 ECU 配置規(guī)范。

至少:
  • 配置文件應通過 AUTOSAR 和軟件版本標識模塊。
  • 對于生產(chǎn)階段,不應包含 Det,因此需要在配置中參數(shù)以禁用錯誤報告。


與其他模塊對接



與 RTE 和 SW-C 的對接

復雜驅動可能需要通過 RTE 與 SW-C 對接:

  • 應按 AUTOSAR 規(guī)定指定和實現(xiàn)所需的端口和接口(AUTOSAR 接口)。
  • 在某些情況下,復雜驅動必須使用 RTE 定義的某些端口特定參數(shù)。

與庫的對接

復雜驅動可以使用 AUTOSAR 庫。例如:復雜驅動可以使用 E2E 庫機制傳輸防止數(shù)據(jù)損壞或丟失的通信保護。


與標準 BSW 模塊對接

復雜驅動可能需要與分層軟件架構中的其他模塊對接,或者分層軟件架構的模塊可能需要與復雜驅動對接。如果是這種情況,適用以下建議:

BSW 到 CDD 的接口
復雜驅動應提供可以由訪問的 AUTOSAR 模塊一般配置的接口。一個典型例子是 PDU 路由:復雜驅動可以實現(xiàn)新總線系統(tǒng)的接口模塊。
CDD 到 BSW 的接口
復雜驅動要 AUTOSAR BSW 的模塊,只有在相關的分層軟件架構模塊提供接口,并準備被復雜驅動訪問時才被允許。
復雜驅動應提供滿足依賴該信息的其他 AUTOSAR 模塊所需的所有配置參數(shù),例如如果調(diào)用 Dem 來報告生產(chǎn)錯誤,則必須根據(jù) Dem 錯誤代碼定義的配置標準在復雜驅動配置中定義并引用 Dem 錯誤代碼。
與 MCAL 模塊的接口
復雜驅動可以直接訪問微控制器資源(例如硬件計時器)。如果所需的資源由 MCAL 模塊管理,并且沒有特定的約束(例如實時需求)。在這種情況下,復雜驅動應使用 MCAL 模塊的標準 API 訪問 MCAL 模塊。
與 BswM、EcuM 的接口
如果使用了 ECU 狀態(tài)管理,則 ECU 模式管理和 BSW 模式管理應該是模式管理的唯一訪問點。
在以下情況下應使用 ECU 狀態(tài)管理:
  • Init 和 De-Init 函數(shù)應由 EcuM 和/或 BswM 模塊專屬調(diào)用。
  • 如果復雜驅動處理喚醒源,它必須遵循 ECU 狀態(tài)管理規(guī)范中指定的處理喚醒事件的協(xié)議。

在以下情況下應使用 BSW 模式管理:
  • 復雜驅動模式更改管理
  • BswM(在主核上)確定 ECU 應關閉并向每個核分發(fā)適當?shù)哪J角袚Q。從核上的復雜驅動必須捕獲此模式切換,適當?shù)厝∠跏蓟⑾?BswM 發(fā)送適當?shù)男盘栆灾甘酒錅蕚淝闆r。

與內(nèi)存的接口
如果內(nèi)存僅由復雜驅動管理,則可以直接訪問 NVRAM 之外的內(nèi)存。如果復雜驅動使用標準內(nèi)存堆棧,則 NVRAM 管理是內(nèi)存堆棧的唯一訪問點:復雜驅動應使用 NVM API 訪問內(nèi)存。
與看門狗的接口
看門狗可以監(jiān)視一個或多個復雜驅動可運行實體的執(zhí)行作為受監(jiān)督實體。應按照看門狗管理規(guī)范所述進行配置,并且復雜驅動可運行實體應調(diào)用看門狗 API。
看門狗管理是獨占看門狗堆棧的訪問點。復雜驅動不應直接與看門狗管理交互,而應通過 RTE 定義的端口。
與通信協(xié)議棧的接口
復雜驅動可通過以下方式與通信協(xié)議棧交互:
  • 可以與 PDU 路由模塊來處理 IPDU。
  • 可以與接口交互。
  • 可以與 NM 模塊交互。
  • 可以與 TcpIp 模塊交互。
  • 可以直接與 Com 模塊交互,因為可以有信號接口。

一般來說,不適合混合使用上述方式,即同時使用 PduR 訪問和 Com 訪問或接口。處理通信并可能觸發(fā) PDU 傳輸?shù)膹碗s驅動應提供啟用/禁用傳輸?shù)?API。
與 PduR 的接口
PduR 是與通信堆棧對接以傳輸 IPDU 的總線和協(xié)議獨立的訪問點。復雜驅動應使用 PduR 模塊的標準 API 訪問 IPDU。當復雜驅動與 PduR 交互時,應在 PduR 內(nèi)為每個復雜驅動配置一個容器。
與Interface 模塊的接口
接口模塊是與通信堆棧對接的總線特定訪問點。
當復雜驅動與接口交互時,復雜驅動使用為接口定義的訪問函數(shù),并且應根據(jù)復雜驅動的需求配置接口回調(diào)。接口應配置包含 CDD__Cbk.h 頭文件。
與 Com 模塊的接口
如果復雜驅動處理 Com 信號,則應使用 Com 模塊的標準 API 或 RTE 定義來訪問信號。請參考通信規(guī)范以獲取更多詳細信息。
與 ComM 模塊對接
如果復雜驅動使用 Com 信號,則應使用 Com 管理的標準 API 請求“通信模式”。如果復雜驅動處理非 AUTOSAR 標準的,則狀態(tài)應由 ComM 處理以協(xié)調(diào)總線通信堆棧。
與網(wǎng)絡管理接口模塊的接口
如果復雜驅動處理非 AUTOSAR 標準的,則狀態(tài)應由Nm_CDD 模塊處理。Nm_CDD 應向網(wǎng)絡管理提供服務來管理狀態(tài)。
與 TCP/IP 模塊對接
TcpIp 模塊是套接字為基礎與通信堆棧對接的獨占訪問點。復雜驅動應使用 TCP/IP 模塊的標準 API 訪問套接字。
與 XCP 模塊對接
如果復雜驅動處理非 AUTOSAR 標準的,XCP 可以接口_CDD 來轉發(fā)數(shù)據(jù)。XCP 模塊提供可由復雜驅動使用的可配置接口:
  • :API 請求通過 CDD 發(fā)送 PDU
  • :API 確認 PDU 的成功傳輸
  • :CDD 調(diào)用的 API 指示成功接收 LPDU。

必須激活 XCP 模塊的 XcpOnCddEnabled 參數(shù)以允許復雜驅動功能。如果需要,復雜驅動可以調(diào)用回調(diào)函數(shù) Xcp_RxIndication。
與診斷日志和跟蹤對接
如果復雜驅動處理非 AUTOSAR 標準的,Dlt 可以接口_CDD 來轉發(fā)數(shù)據(jù)。Dlt 將數(shù)據(jù)轉發(fā)給 Dcm 或使用串行接口的復雜驅動等。
Dlt 沒有定義特定的通信接口。Dlt 規(guī)范定義了一個內(nèi)部 Dlt 通信模塊的 API。由實現(xiàn)者決定如何實現(xiàn)此通信模塊及其如何與可能的復雜驅動通信(例如串行或 USB)。
與默認錯誤跟蹤器和診斷事件管理對接
復雜驅動應使用 Det、Dem 報告錯誤,如 AUTOSAR 標準錯誤描述文檔中所述。復雜驅動應使用 Det 和 Dem 模塊的標準 API。復雜驅動應像任何 BSW 模塊一樣反應。錯誤 ID 應在復雜驅動模塊內(nèi)部定義。復雜驅動負責發(fā)起內(nèi)部恢復。
注意:對 Det 的調(diào)用可以使用模塊 ID 和/或實例 ID 參數(shù)來區(qū)分不同的復雜驅動。
與 OS 對接
通常,只有 BSW 調(diào)度程序和 RTE 可以使用 OS 對象或 OS 服務。因此,復雜驅動只能訪問 GetCounterValue 和 GetElapsedCounterValue 服務。
如果用于的 OS 對象未被另一個 BSW 模塊使用,則復雜驅動可以訪問 OS,例如,復雜驅動可以創(chuàng)建一個 OS 警報并使用它。
OS 可以通過 OsRestartTask 通知復雜驅動 OS 應用程序已被終止并重新啟動。然后,復雜驅動將采取適當?shù)那謇聿僮鳌?/span>
與同步時間基管理模塊對接
如果復雜驅動模塊實現(xiàn)用戶定義的時間基提供者,即如果它處理全局時間同步消息,則復雜驅動模塊應使用 StbM 模塊 API:
  • StbM_GetCurrentTime 讀取 StbM 的最新時間基準值
  • StbM_GetCurrentTimeRaw、StbM_GetCurrentTimeDiff 計算時間基準值更新
  • StbM_BusSetGlobalTime 將在總線上接收到的時間基準值轉發(fā)到 StbM

此接口當前僅限于不帶硬件時間戳的時間基提供者。請參閱同步時間基管理規(guī)范以獲取有關 API 的詳細信息。全局時間同步的復雜驅動模塊配置的相關詳細信息由配置中的容器 CddGlobalTimeContribution 指定。

多核系統(tǒng)中的復雜驅動



在多核架構的情況下,復雜驅動可以在任何核上運行,同時遵守以下規(guī)則:
  • 跨分區(qū)和跨核是允許的,但要使用主/從實現(xiàn)(參考 BSW 分配指南)。
  • 因此,如果復雜驅動需要訪問 BSW 的標準化接口,它需要駐留在同一核上。
  • 如果復雜驅動駐留在不同的核上,它可以使用普通端口機制訪問 AUTOSAR 接口和標準化的 AUTOSAR 接口。這將調(diào)用 RTE,RTE 使用操作系統(tǒng)的 IOC 機制將請求傳輸?shù)狡渌恕?/span>
  • 但是,如果復雜驅動需要訪問 BSW 的標準化接口且不駐留在同一核上:
  - 需提供標準化接口并將調(diào)用轉發(fā)到其他核  - 或者復雜驅動的 Stub 部分需要在其他核上實現(xiàn),并且需要使用操作系統(tǒng)的 IOC 機制進行本地通信。


MCAL 的復雜驅動模塊



可以執(zhí)行微控制器驅動器的復雜驅動,但它不能訪問其他標準模塊,因為它在較低的層中,除了 Det、Dem、SchM 等。一般來說,如果對特定層施加了一些限制,這也適用于復雜驅動。


注意事項


文檔化
  • 提供用戶手冊
  • 定義模塊 ID

實現(xiàn)
  • 遵循基礎軟件模塊規(guī)范
  • 定義關鍵區(qū)段
  • 模式管理
  • 內(nèi)存映射
  • 錯誤報告

代碼結構
  • 提供代碼文件
  • 提供頭文件
  • 檢查一致性

接口定義
  • 定義行為和接口
  • 配置參數(shù)

模塊關系
  • RTE 和 SW-C
  • 標準 BSW 模塊
  • 多核系統(tǒng)

轉自汽車電子與軟件
上海創(chuàng)程車聯(lián)網(wǎng)絡科技有限公司版權所有 滬ICP備11045498號-1   技術支持:網(wǎng)站建設
主站蜘蛛池模板: 成人夜间福利 | 国产精华最好的产品有哪些 | A级日本乱理伦片免费入口 四虎精品免费 | 最新免费av| 国产黄大片在线观看画质优化 | 精品欧美一区二区中文字幕视频 | 特a毛片 | 亚洲成成熟女人专区 | 欧美亚洲日韩不卡在线在线观看 | 国产精品香蕉在线观看网 | 国产剧情无码播放在线观看 | 国产精品免费视频一区二区 | 久久久久亚洲精品乱码按摩 | 国产呻吟久久久久久久92 | 好爽好黄好刺激的视频 | av黄色在线 | 午夜国产 | 久综合网| 无码少妇高潮喷水A片免费 欧美性xxxx视频 | 精品久久中文字幕97 | 色五月激情五月 | 91看片免费版 | 亚洲欧洲日韩综合二区 | 亚洲人av在线 | 欧美黄色a| 国产精品久久久不卡 | 日韩精品免费一区二区三区竹菊 | 亚洲精品久久无码AV片亚洲有色 | 欧美成亚洲| 一色一伦一区二区三区 | 九九欧美视频 | 人牛交VIDE欧美XXXX | xxx麻豆 | 人妻夫の上司犯感との中文字幕 | 超碰人人草人人 | av狼地址 | 国产精品99久久不卡二区 | 无码熟妇人妻AV在线网站 | 最新国产一区二区 | 欧美激情片一区二区 | 日韩一二区在线 |