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

複雜(zá)驅動應如(rú)何集成到(dào) AUTOSAR 架構中?

發布日(rì)期:2023-11-24

CDD 簡介


複雜(zá)驅動(Complex Driver,CDD)是(shì)一(yī)種δ©不(bù)受 AUTOSAR 标準化(huà)約束的(de)軟件(jiàn)實體(tǐ),它±↑$×可(kě)以通(tōng)過 AUTOSAR 接 > 口和(hé)/或基礎軟件(jiàn)模塊 API ∞φ±進行(xíng)訪問(wèn) AUTOSAR 組件(jiàn♣ φΩ)或者被 AUTOSAR 組件(jiàn)訪¶δ↕←問(wèn)。
根據 AUTOSAR 的(de)分(fēn)層軟件(jiàn)架構文(wén)檔,複雜(zá✔★)驅動是(shì)基礎軟件(jiàn)複雜(zá)驅動 ↑✔層的(de)一(yī)種特定模塊,它與标準 BSW 模塊或 RTE ∏<<∏進行(xíng)交互。
複雜(zá)驅動的(de)主要(yào)目的(de)是(s±εε★hì)利用(yòng)特定的(de)中斷和(hé)/或複雜(zá)的(de)微(wēi)控≥ 制(zhì)器(qì)外(wài)設、外(÷≠∞δwài)部設備(通(tōng)信收發器(qì)、ASIC 等)實現(xi€✘¥àn)複雜(zá)的(de)傳感器(qì)評估和(hé)™→執行(xíng)器(qì)控制(zhì),以滿足特殊的(de)功能(néng)和(hé)£‍↑時(shí)序要(yào)求。
此外(wài),它還(hái)可(kě)以用(yòng)于實現(xiàn)增強的(de)服δφ✘務/協議(yì)或封裝非 AUTOSAR 系統的(de€♥$→)功能(néng)。複雜(zá)驅動的(de)實現(xiàn)₩≠¶₩可(kě)能(néng)依賴于具體(tǐ)的(de)應用(yòng)、微(wēi)控制(zhì)>∑↕α器(qì)和(hé) ECU。
複雜(zá)驅動可(kě)以作(zuò)為‌¶♥(wèi)一(yī)種遷移機(jī)制(zhì),将現(xiàn♥✘±)有(yǒu)的(de)或新的(de)概念引入 Aβ↓UTOSAR 軟件(jiàn)架構。


複雜(zá)驅動設計(jì)建議(yì)


為(wèi)了(le)便于複雜(zá)驅動與 AUTOSAR 架構互聯互通(tōn£∑g),設計(jì)者應考慮以下(xià)要(yào)點:


文(wén)檔

用(yòng)戶手冊

複雜(zá)驅動的(de)提供商應提供用(yòng)戶手冊,以方便集成和(hé)為↓©(wèi)客戶提供信息:
  • 複雜(zá)驅動簡介和(hé)概述
  • 描述功能(néng)操作(zuò)(初始化(huà)、正常操作(zuò)、¶λ關閉、故障操作(zuò)等)
  • 描述與其他(tā) BSW 模塊、SchM 和(hé) Rte 的(de)關系及需求;例♣↔如(rú)需要(yào)從(cóng) NvM 獲取內(nèφ↓≠i)存塊,需要(yào)配置的(de)關鍵區(qū)段等
  • 文(wén)件(jiàn)結構和(hé)依賴關系&n±δbsp; 
  • 接口描述(包括服務):名稱、描述、重入性、參數(shù)(名稱、×€類型、範圍、值)、返回值(名稱、類型、範圍、值™¥)、配置類
  • 非功能(néng)需求描述:時(shí)$>序和(hé)行(xíng)為(wèi)需求、資源使用(yòng)情況、與其•>他(tā) BSW 模塊或 SW-C 的(de)行(xíng)為(φ₩≥>wèi)等
  • Dem 錯(cuò)誤描述,可(kě)選的(de) Det 錯(cuò)誤,調試變量
  • 配置參數(shù)描述(名稱、類型、範圍、值)
  • 內(nèi)存映射需求(Flash、RAM)α≥☆
  • 使用(yòng)限制(zhì)和(hé)已知(zhī¶♣​)問(wèn)題
  • 集成約束和(hé)對(duì)其他(tā)模塊的(de)需求
  • 示例

模塊 ID
複雜(zá)驅動模塊的(de)模塊 ID 範圍在 BSW 模塊列表文(wén)檔₩↔>​中進行(xíng)了(le)描述。


實現(xiàn)

AUTOSAR 對(duì)複雜(zá)驅動實現(¶ε→xiàn)沒有(yǒu)太多(duō)限制(zhì)。至少(shǎo):

  • 複雜(zá)驅動應遵循基礎軟件(jiàn)模塊的(de)一(yī)般要(yào)求、規範等‌↕≥₩文(wén)檔的(de)輸入規範。
  • 複雜(zá)驅動應定義關鍵區(qū)段以便由 SchM 或 OS 機(jī)制(>©®zhì)處理(lǐ)。
  • 複雜(zá)驅動的(de)模式可(kě)由 EcuM 和(hé) BswM 模塊管理(lǐ)<£ 。
  • 複雜(zá)驅動可(kě)以使用(yòng÷™)內(nèi)存映射機(jī)制(zhì)處理(lǐ)其內(n≥☆& èi)存區(qū)段。
  • 複雜(zá)驅動可(kě)以使用(yòng) Det 或 De←×m 模塊報(bào)告錯(cuò)誤。


CDD文(wén)件(jiàn)



代碼文(wén)件(jiàn)
除了(le)基礎軟件(jiàn)模塊的(de) β一(yī)般要(yào)求文(wén)檔中的(de)要(yào)求外(wài),複雜(zá)驅動模£∑塊的(de)代碼文(wén)件(jiàn)結構不(bù)是(shì)固定的(de)。
至少(shǎo)應提供 CDD_.c。中斷函數(shù)₽§<♠可(kě)放(fàng)在 CDD__Irq.c 中。回調函數(shù)可(kě)放(fàng)γ₩δ在 CDD__Callout.c 中。根據需要(yào),鏈接時(shí)從(cóng)配置生♦≠>×(shēng)成的(de) C 對(duì)象可(kě)放(♠≈≤fàng)在 CDD__Lcfg.c 文(wén)件(jiàn)中。
根據需要(yào),構建後從(cóng)配置生(shēng)成的(de)  ☆C 對(duì)象可(kě)放(fàng)在 CDD__PBcfg.c • 文(wén)件(jiàn)中。
如(rú)果複雜(zá)驅動模塊實現(xiàn)需要(yào)額外(wài)的(de)代 ♦∏®碼文(wén)件(jiàn),可(kě)以自(zì)由包•<α含它們。


頭文(wén)件(jiàn)

下(xià)圖包含了(le)複雜(zá)驅‌ε動模塊的(de) AUTOSAR 定義的(de)頭文(wén)件(jiàn)層次♠α→結構。
複雜(zá)驅動模塊應提供一(yī)個(gè)頭文(wén)件(jiàn)結構,以便隻φ©ε需要(yào)包含 CDD_.h 文(w ∞ én)件(jiàn)就(jiù)可(kě)以使用(yòng)該模塊。
如(rú)果需要(yào)由其他(tā) BSγ≠W 模塊處理(lǐ)某些(xiē)回調函數(shù),複雜(zá)" ε驅動模塊可(kě)以提供 CDD__Cbk.h 頭文(wén)件(j↔‍♦'iàn)。
根據需要(yào),配置生(shēng)成的(de) C 對(duì)象聲明(míng↓​')可(kě)放(fàng)在 CDD__Cfg.h≠↓δ, CDD__PBcfg.h, CDD_₩εε_Lcfg.h 文(wén)件(jiàn)中。
如(rú)果複雜(zá)驅動模塊實現(xiàn)需要(yào)額外(wài)的(d♣&e)頭文(wén)件(jiàn),可(kě)以自(zì)由包含它們。頭文  (wén)件(jiàn)應該是(shì)自(zì)包含的(de),即它們将包含所需的(de)Ω♠♣其他(tā)所有(yǒu)頭文(wén)件(jiàn)。
複雜(zá)驅動模塊可(kě)以包含 Det.h 和(hé)/或 Dem↕₽.h 頭文(wén)件(jiàn)來(lái)報(bào)告錯(cuò)誤。
如(rú)果需要(yào)定義某些(xiē)內(nèi)存映射區(qū)域,☆☆☆ε複雜(zá)驅動模塊可(kě)以包含_MemMap.h α€∞Ω頭文(wén)件(jiàn),其中 是(↓♣♣>shì)模塊實現(xiàn)前綴。
如(rú)果配置了(le)與 RTE 的(₽×₹de)接口,複雜(zá)驅動模塊可(kě)以包含 Rte_CDD_.h 頭文×≤♥(wén)件(jiàn)。


推薦的(de)文(wén)件(jiàn)結構

下(xià)圖描述了(le)複雜(zá)驅動模塊的(de)基本定義的(de) AUTOS™¶ λAR 頭文(wén)件(jiàn)層次結構。

圖片


一(yī)緻性檢查
複雜(zá)驅動模塊應避免集成不(bù)兼容的(de)±≤(.c 或.h)文(wén)件(jiàn),如(rú)基礎軟件(jiàn)模塊通(tōng←Ω)用(yòng)規範中所定義的(de)。


行(xíng)為(wèi)和(hé)接口描述

一(yī)些(xiē)複雜(zá)驅動不(bù)僅與其他(tā) BSW 模塊或組"↑¥件(jiàn)有(yǒu)接口,還(hái)通(×∞tōng)過 RTE 具有(yǒu)更抽象的(de)接口€δ✔可(kě)以被應用(yòng) SW-C 訪問(wèn)。
在這(zhè)些(xiē)情況下(xià),需要(yào)一(y✔✔≥₽ī)個(gè) CDD SW-C 類型來(lái)♦σε連接 RTE 和(hé)複雜(zá)驅動,并∏"<≠且複雜(zá)驅動必須遵循 BSW 模塊描述模闆的( ∏de)要(yào)求。
這(zhè)個(gè)描述文(wén)件(jiàn♦♥π)應包含:
  • 複雜(zá)驅動服務的(de)描述
  • 類型和(hé)端口接口  
  • 內(nèi)部行(xíng)為(wèi)及可(kě)運行(xíng)實體(tǐ)的(de)描述∑&±
  • 可(kě)運行(xíng)實體(tǐ)所需的(de)觸發事(shì)件(ji♥↕✘∑àn)描述
  • 共享資源保護的(de)互斥區(qū)描述
  • 內(nèi)存映射

這(zhè)裡(lǐ)需要(yào)的(de)更抽象接口稱為(wèi) A‍ΩUTOSAR 接口,它們通(tōng)過軟件(jiàn)組件(jià®™n)模闆(SWCT)進行(xíng)描述,包括端口、端口接口及其詳細信息☆←∞。
用(yòng)于描述這(zhè)些(xiē)元素的(de) SWCT 的(de)基類是(sh←☆÷ì) ComplexDeviceDriverSwComponentTyp ≈✘¶e。
SWCT 中還(hái)包含稱為(wèi) Runnab≤€↕leEntities 的(de)可(kě)運行(xíng)實體(tǐ),£>☆α用(yòng)于對(duì)從(cóng) RTE 調用(yòng)複雜(zá)驅動的(de)函φ¥π♦數(shù)建模。用(yòng)于描述 RunnableEntities(和(hé)其他(tā)φ"一(yī)些(xiē)東(dōng)西(xī))的(de) SWCT™‍ 的(de)基類稱為(wèi) SwcInternalBehavior。
CDD 可(kě)運行(xíng)實體(tǐ)應設計(jì)為(wèi)減★¥∑少(shǎo) RTE 開(kāi)銷,例如(rú):
  • 推薦服務器(qì)可(kě)運行(xíng)實體(tǐ)為(wèi)可(kě)重入♥←的(de):可(kě)以同時(shí)調用(yòng) = TRUE。
  • 可(kě)運行(xíng)實體(tǐ)簽名為(wèi£σ• ):void 或 StdReturnType RunnableName(void 或參數(shù↔ → ))

參數(shù)配置

如(rú)果需要(yào)使用(yòng) AUTOSAR GCE 配置€₩π₩參數(shù),複雜(zá)驅動必須遵循 ECU 配置規範。

至少(shǎo):
  • 配置文(wén)件(jiàn)應通(tōn ÷α£g)過 AUTOSAR 和(hé)軟件(jiàn)版本标識αΩ模塊。
  • 對(duì)于生(shēng)産階段,不(bù)應♦α&✔包含 Det,因此需要(yào)在配置中參數(shù)以‍→禁用(yòng)錯(cuò)誤報(bào)告。


與其他(tā)模塊對(duì)接



與 RTE 和(hé) SW-C 的(de)對(duì)接

複雜(zá)驅動可(kě)能(néng)需要(yào)通(tōng)過 RTE 與 SW&∑-C 對(duì)接:

  • 應按 AUTOSAR 規定指定和(hé)實現(xiàn)所需的(de)端口和(  hé)接口(AUTOSAR 接口)。
  • 在某些(xiē)情況下(xià),複雜(zá)驅動必須使用(yòng) RTE 定義的(de∏β≈)某些(xiē)端口特定參數(shù)。

與庫的(de)對(duì)接

複雜(zá)驅動可(kě)以使用(yòng) AUTOSAR 庫。ε×★例如(rú):複雜(zá)驅動可(kě)以使用(yòng) E2E®$≤ 庫機(jī)制(zhì)傳輸防止數(shù)據損壞或丢失的(de)通®±(tōng)信保護。


與标準 BSW 模塊對(duì)接

複雜(zá)驅動可(kě)能(néng)需要(yào)與分(fēn)層軟件(jiàn)架構中的←£δ(de)其他(tā)模塊對(duì)接,或者分(fēn)層軟件(jiàn)架構的(de)模α≥塊可(kě)能(néng)需要(yào)與複雜(zá)驅動對(duì)接。如(rú)果是(shì)©$₽這(zhè)種情況,适用(yòng)以下(xià∞β•♣)建議(yì):

BSW 到(dào) CDD 的(de)接口
複雜(zá)驅動應提供可(kě)以由訪問(wèn)的(de) AUTOSAR 模塊一(yī)般±×"配置的(de)接口。一(yī)個(gè)典型例♣®γ子(zǐ)是(shì) PDU 路(lù)由:複雜(zá↕"✘)驅動可(kě)以實現(xiàn)新總線系統的(de)接口模塊。
CDD 到(dào) BSW 的(de)接口
複雜(zá)驅動要(yào) AUTOSAR☆φ≠λ BSW 的(de)模塊,隻有(yǒu)在相(xiàng)關的(de)分(fēn)層軟件(jiδα₹àn)架構模塊提供接口,并準備被複雜(zá)驅動訪問(φ&γwèn)時(shí)才被允許。
複雜(zá)驅動應提供滿足依賴該信息的(de)其他(tā) AUTOSAR 模塊所需的(de)π☆所有(yǒu)配置參數(shù),例如(rú✔✔π)如(rú)果調用(yòng) Dem 來(lái)報(bào)告生(shēng)産錯(cuò)©✘$☆誤,則必須根據 Dem 錯(cuò)誤代碼定義的(de)配置标準在複雜(zá®♦♥)驅動配置中定義并引用(yòng) Dem 錯(cuò)誤代碼。
與 MCAL 模塊的(de)接口
複雜(zá)驅動可(kě)以直接訪問(wèn)微(wēi)控制(zhì)器(qε✔ì)資源(例如(rú)硬件(jiàn)計(jì)時(s≈↑≤↔hí)器(qì))。如(rú)果所需的(de)資源由 MC$≤ε≈AL 模塊管理(lǐ),并且沒有(yǒu)特定的(de)約束(例如(rú)實時(shí)需求)。在"♥這(zhè)種情況下(xià),複雜(zá)驅動應使用(yòng) MCAL 模• Ω₹塊的(de)标準 API 訪問(wèn) MCAL 模塊。
與 BswM、EcuM 的(de)接口
如(rú)果使用(yòng)了(le) ECU<ε§♦ 狀态管理(lǐ),則 ECU 模式管理(lǐ)和(hé) BSW 模式管理¶ €(lǐ)應該是(shì)模式管理(lǐ)的(de•±")唯一(yī)訪問(wèn)點。
在以下(xià)情況下(xià)應使用(yòng) ECU 狀态管理(lǐ):
  • Init 和(hé) De-Init 函φ<®數(shù)應由 EcuM 和(hé)/或 BswM 模塊專屬調用(yòng)。φ‍σ♥
  • 如(rú)果複雜(zá)驅動處理(lǐ)喚醒源,它必須遵循 ECU 狀✔​态管理(lǐ)規範中指定的(de)處理(lǐ)喚醒事(shì)件(jiàn)的(de)協議λ↑∑(yì)。

在以下(xià)情況下(xià)應使用(yòng) BSW©¥π♦ 模式管理(lǐ):
  • 複雜(zá)驅動模式更改管理(lǐ)
  • BswM(在主核上(shàng))确定 ECU 應關閉并向每個(gè)®≠☆核分(fēn)發适當的(de)模式切換。從(cóng)核上(sπ©hàng)的(de)複雜(zá)驅動必須捕獲此模式切換,适當地(dì)取消初Ω$α始化(huà)并向 BswM 發送适當的(de)信号以指示其準備情況。

與內(nèi)存的(de)接口
如(rú)果內(nèi)存僅由複雜(zá)驅動管理(lǐ),則可(kě)以直÷✘接訪問(wèn) NVRAM 之外(wài)的(de)內(nèi)存。↓± ¶如(rú)果複雜(zá)驅動使用(yòng)标準內(nèi)存堆棧,則 NVRAγ↕$M 管理(lǐ)是(shì)內(nèi)存堆棧的(de)唯一(yī)訪問(wèn ε₽✔)點:複雜(zá)驅動應使用(yòng) ≈ NVM API 訪問(wèn)內(nèi)¶‍α存。
與看(kàn)門(mén)狗的(de)接口
看(kàn)門(mén)狗可(kě)以監視(α↑≤shì)一(yī)個(gè)或多(duō)φδ個(gè)複雜(zá)驅動可(kě)運行(xíng)實體(tǐ)的(de)執行(δ↕xíng)作(zuò)為(wèi)受監督實體(tǐ)。應按照(zhào)₽$看(kàn)門(mén)狗管理(lǐ)規範所述進行(xíng)配置,并且複雜(z"♠₩σá)驅動可(kě)運行(xíng)實體(tǐ)應調用(yòng)看(kàn♥↕)門(mén)狗 API。
看(kàn)門(mén)狗管理(lǐ)是(shì)獨占§≈↕看(kàn)門(mén)狗堆棧的(de)訪問€♥↔(wèn)點。複雜(zá)驅動不(bù)應直接與•♠↓•看(kàn)門(mén)狗管理(lǐ)交互,而應通(tōng)過 RTE 定義的(deπ↔♦)端口。
與通(tōng)信協議(yì)棧的(de)接口
複雜(zá)驅動可(kě)通(tōng)過以下(xià)方式與通↕∏™∞(tōng)信協議(yì)棧交互:
  • 可(kě)以與 PDU 路(lù)由模塊來(lái)處理(l∑​≥ǐ) IPDU。
  • 可(kě)以與接口交互。
  • 可(kě)以與 NM 模塊交互。
  • 可(kě)以與 TcpIp 模塊交互。
  • 可(kě)以直接與 Com 模塊交互,因為(wèi)可(kě)以有(yǒu)信号接↑≤★口。

一(yī)般來(lái)說(shuō),不(bù)适合混合使用(yòng)上(shàng)述方式,↑πδ¶即同時(shí)使用(yòng) Pdu‍↑≥R 訪問(wèn)和(hé) Com 訪問(wèn)或接口。處理(lǐ)通(t₩δōng)信并可(kě)能(néng)觸發 PDU 傳輸的(de)複雜(zá)驅動應提™→→←供啓用(yòng)/禁用(yòng)傳輸的(de) API。
與 PduR 的(de)接口
PduR 是(shì)與通(tōng)信堆棧對(duì)接以傳輸 IPDU 的  (de)總線和(hé)協議(yì)獨立的(de)訪問(wèn)點。複雜(z≥ á)驅動應使用(yòng) PduR 模塊的≥↔♠♠(de)标準 API 訪問(wèn) IPDU。當複雜(z₹$©‌á)驅動與 PduR 交互時(shí),應在 PduR 內(nèi)為(wè®σi)每個(gè)複雜(zá)驅動配置一(yī)個(g♥←≈è)容器(qì)。
與Interface 模塊的(de)接口
接口模塊是(shì)與通(tōng)信堆棧對(duì)接¥♦π的(de)總線特定訪問(wèn)點。
當複雜(zá)驅動與接口交互時(shí),複雜(zá)驅動使用(yòng)為(wèi)接口定義的 γ₽(de)訪問(wèn)函數(shù),并且應根據複雜(zá)驅動的γγσπ(de)需求配置接口回調。接口應配置包含 CDD__Cbk.h 頭文(wén≈')件(jiàn)。
與 Com 模塊的(de)接口
如(rú)果複雜(zá)驅動處理(lǐ) Com 信号,則應使用(yòng) Com 模塊的(♦ ‍de)标準 API 或 RTE 定義來(lái)訪問(wèn)信号。請(qǐng)參考通(tōn ↓ >g)信規範以獲取更多(duō)詳細信息。
與 ComM 模塊對(duì)接
如(rú)果複雜(zá)驅動使用(yòng) Com 信号,則應使用(₽Ωyòng) Com 管理(lǐ)的(de)标準 API 請(qǐng)求“通(tōng)信模 ∑₹式”。如(rú)果複雜(zá)驅動處理(lǐ≤•")非 AUTOSAR 标準的(de),則狀态應由 ♦λ∞∏ComM 處理(lǐ)以協調總線通(tōng)信堆棧。
與網絡管理(lǐ)接口模塊的(de)接口
如(rú)果複雜(zá)驅動處理(lǐ)非 ☆λα AUTOSAR 标準的(de),則狀态應由Nm_CD≈↕D 模塊處理(lǐ)。Nm_CDD 應向網絡管理(l<<π±ǐ)提供服務來(lái)管理(lǐ)狀态。
與 TCP/IP 模塊對(duì)接
TcpIp 模塊是(shì)套接字為(wèi)基礎與通(tōng)信堆棧對(duì)接的(de)獨占訪問≥β®(wèn)點。複雜(zá)驅動應使用(yòng) TCP/IP 模塊的(de)标準 ↓×≈API 訪問(wèn)套接字。
與 XCP 模塊對(duì)接
如(rú)果複雜(zá)驅動處理(lǐ)非 AUTOSAR 标準的(de),×↑XCP 可(kě)以接口_CDD 來(lái)轉發數(shù)據。XCP 模塊提供可(kě)由複≈$$∑雜(zá)驅動使用(yòng)的(de)可(kě)配置接口:
  • :API 請(qǐng)求通(tōng)過 CDD 發送<§✔ PDU
  • :API 确認 PDU 的(de)成功傳輸
  • :CDD 調用(yòng)的(de) AP​₹I 指示成功接收 LPDU。

必須激活 XCP 模塊的(de) XcpOnCddEnabled σ★•參數(shù)以允許複雜(zá)驅動功能(néng)。如(rú)果需要(yào),"  複雜(zá)驅動可(kě)以調用(yòng)回調函數(λ¥πshù) Xcp_RxIndication。
與診斷日(rì)志(zhì)和(hé)跟蹤對(duì)接
如(rú)果複雜(zá)驅動處理(lǐ)非 λδ± AUTOSAR 标準的(de),Dlt 可(kě)以接口_CDD 來(lái)轉發₹↓©​數(shù)據。Dlt 将數(shù)據轉發給 Dcm 或使用(yòng)串行(xíng)接口的(de)複雜(zá)驅動等。
Dlt 沒有(yǒu)定義特定的(de)通(tōng)信接口。Dlt ™™規範定義了(le)一(yī)個(gè)內(nèi)部 Dlt 通(tōng)信模塊的(de←✘) API。由實現(xiàn)者決定如(rú)何實現(xiàn)此通("©←tōng)信模塊及其如(rú)何與可(kě)能(néng)的δ≤‍(de)複雜(zá)驅動通(tōng)信(例如(rú)串行(xíng)或 USB)。
與默認錯(cuò)誤跟蹤器(qì)和(hé)診斷事(shì)件(ji☆↕àn)管理(lǐ)對(duì)接
複雜(zá)驅動應使用(yòng) Detπ"、Dem 報(bào)告錯(cuò)誤,如(rú) AUTOγ‍★ SAR 标準錯(cuò)誤描述文(wén)檔中所述。複↕≥✘雜(zá)驅動應使用(yòng) Det 和(hé) Dem 模塊的(de)标準 A‌​PI。複雜(zá)驅動應像任何 BSW 模塊一(y↔ <ī)樣反應。錯(cuò)誤 ID 應在複雜(záδ•)驅動模塊內(nèi)部定義。複雜(zá)驅動負責發起內(nèi)部恢複。
注意:對(duì) Det 的(de)調用(yòng)可(kě)以使用(yòng)模塊 I→$D 和(hé)/或實例 ID 參數(shùσ≤)來(lái)區(qū)分(fēn)不(bù)同的(de)複雜(zá)驅γφλ動。
與 OS 對(duì)接
通(tōng)常,隻有(yǒu) BSW 調度'♦程序和(hé) RTE 可(kě)以使用(yòng) OS 對(€✘duì)象或 OS 服務。因此,複雜(zá)驅動隻能(néng)訪問(wèn)α₩π GetCounterValue 和(hé) GetElapsedCounterVal&<∑‌ue 服務。
如(rú)果用(yòng)于的(de) OS 對<↑÷(duì)象未被另一(yī)個(gè) BS→δW 模塊使用(yòng),則複雜(zá)驅動可(kě)以訪問(wèn)∏÷ OS,例如(rú),複雜(zá)驅動可(kě)以創建一(yī)個(gè) OS 警報(b♥ δεào)并使用(yòng)它。
OS 可(kě)以通(tōng)過 OsRestartTask 通(t♣λōng)知(zhī)複雜(zá)驅動 OS 應用(yòng)&γ↓程序已被終止并重新啓動。然後,複雜(zá)驅動将采取适當的(de)清理(‍≠§ lǐ)操作(zuò)。
與同步時(shí)間(jiān)基管理(lǐ)模≥€<塊對(duì)接
如(rú)果複雜(zá)驅動模塊實現(xiàn) ®用(yòng)戶定義的(de)時(shí)間(jiān)基提供者,即如(rú)果它處理(lǐ)全✔♠δ‍局時(shí)間(jiān)同步消息,則複雜(zá)驅動模塊應使用(yòng) Stb≥&↕M 模塊 API:
  • StbM_GetCurrentTime 讀(dú)取 S"≠♥ tbM 的(de)最新時(shí)間(jiān)基準值
  • StbM_GetCurrentTimeRa$←w、StbM_GetCurrentTimeDiff 計(jì)算(π ±↕suàn)時(shí)間(jiān)基準值更新
  • StbM_BusSetGlobalTim∏ β>e 将在總線上(shàng)接收到(dào)的(de)時(shí)間(jiān)基準值轉發π±≠★到(dào) StbM

此接口當前僅限于不(bù)帶硬件(jiàn)時(sh☆¶β‍í)間(jiān)戳的(de)時(shí)間(jiān)基提供者。請(q♠$¶&ǐng)參閱同步時(shí)間(jiān)基管理(lǐ)規範以獲取有(yǒu₩®♣)關 API 的(de)詳細信息。全局時(✘δ♦shí)間(jiān)同步的(de)複雜(zá)驅動模塊配置的(de)相(xiàng)關詳>'&細信息由配置中的(de)容器(qì) CddGlobalTimeContri₩₩bution 指定。

多(duō)核系統中的(de)複雜(zá)驅動



在多(duō)核架構的(de)情況下(xià),複雜(zá)驅動可(kě)以在任何α★↑核上(shàng)運行(xíng),同時(shí)遵守以下(xià)§>規則:
  • 跨分(fēn)區(qū)和(hé)跨核是(shì)允許的(de),但( ©↔dàn)要(yào)使用(yòng)主/從(cóng)實現(xiàΩ£®n)(參考 BSW 分(fēn)配指南( ★‍™nán))。
  • 因此,如(rú)果複雜(zá)驅動需要(yào)訪問(≈≥☆∏wèn) BSW 的(de)标準化(huà)接口,它需要(yào)駐留在同一(yī)核&α $上(shàng)。
  • 如(rú)果複雜(zá)驅動駐留在不(bù)同的(dα☆¥ e)核上(shàng),它可(kě)以使用(yòng)普通(tōng)端口機(jī)制¥•↓∞(zhì)訪問(wèn) AUTOSAR Ω™ 接口和(hé)标準化(huà)的(de) AUTOSAR 接口。這(zhè)将調用(≈Ω✘yòng) RTE,RTE 使用(yòng)操作(zu≥←Ωò)系統的(de) IOC 機(jī)制(zhì)将請(qǐng)↔δ求傳輸到(dào)其他(tā)核。
  • 但(dàn)是(shì),如(rú)果複雜(zá)驅動需要(yào)訪問★​§$(wèn) BSW 的(de)标準化(huà)接口且不(bù)駐留在同一€↓(yī)核上(shàng):
  - 需提供标準化(huà)接口并将調用(yòng)轉發到(dào)其他♦✘®←(tā)核  - 或者複雜(zá)★∑πα驅動的(de) Stub 部分(fēn)需要(yào)在其•₹δ他(tā)核上(shàng)實現(xiàn),并且需要(yàπ↔₽o)使用(yòng)操作(zuò)系統的(de) IO ∑C 機(jī)制(zhì)進行(xíng)本地(dì)通(tōng)信。


MCAL 的(de)複雜(zá)驅動模塊



可(kě)以執行(xíng)微(wēi)控制(zhì)器(qì)驅動器(qì)的(de)∑•複雜(zá)驅動,但(dàn)它不(bù)能(né≈α∞αng)訪問(wèn)其他(tā)标準模塊,因為(wèi)它在較低(dī)的(de)層®λφφ中,除了(le) Det、Dem、SchM 等。一(yī)般來(lái)說(shu∏δō),如(rú)果對(duì)特定層施加了(le)一(yī)些(xiē)限制(zhì),這(zhèπβ♦Ω)也(yě)适用(yòng)于複雜(zá)驅動。


注意事(shì)項


文(wén)檔化(huà)
  • 提供用(yòng)戶手冊
  • 定義模塊 ID

實現(xiàn)
  • 遵循基礎軟件(jiàn)模塊規範
  • 定義關鍵區(qū)段
  • 模式管理(lǐ)
  • 內(nèi)存映射
  • 錯(cuò)誤報(bào)告

代碼結構
  • 提供代碼文(wén)件(jiàn)
  • 提供頭文(wén)件(jiàn)
  • 檢查一(yī)緻性

接口定義
  • 定義行(xíng)為(wèi)和(hé)接口
  • 配置參數(shù)

模塊關系
  • RTE 和(hé) SW-C
  • 标準 BSW 模塊
  • 多(duō)核系統

轉自(zì)汽車(chē)電(diàn)子©♥(zǐ)與軟件(jiàn) ✔×φ•
北京德智尚車聯科技有限公司版權所有(yǒu) 京ICP證000000号   技(jì)術(shù)支持:網站(zhàn)建設