0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AUTOSAR通信之CanIf模塊簡介3

jf_78858299 ? 來源:汽車控制與人工智能 ? 作者:Demu ? 2023-02-13 14:29 ? 次閱讀

PDU模式控制服務(wù)

每個L-PDU分配給一個專用的物理CAN通道,該通道連接CAN控制器和CAN網(wǎng)絡(luò)。通過這種方式,所有屬于物理通道的L-PDU都可以在處理邏輯上,單一的L-PDU通道組上進(jìn)行控制。這些邏輯組表示ECU連接到底層CAN網(wǎng)絡(luò)的所有I-PDU。圖 展示了L-PDU信道組與上層或網(wǎng)絡(luò)的關(guān)系。

圖片

圖5 PDU組的通道

一個L-PDU只能分配給一個信道組。PduR或網(wǎng)絡(luò)管理等典型用戶負(fù)責(zé)控制PDU的操作模式。CanIf提供了服務(wù)CanIf_SetPduMode()和CanIf_GetPduMode()來防止處理:

  • 所有的I-PDU都屬于一個邏輯通道,
  • 所有發(fā)送I-PDU和接收I-PDU屬于一個邏輯通道。

只允許在對應(yīng)的控制器模式等于CAN_CS_STARTED時,更改PDU通道模式。而CANIF_ONLINE和CANIF_OFFLINE在PDU信道模式下影響整個通信,分別啟用和禁用CANIF_TX_OFFLINE和CANIF_TX_OFFLINE_ACTIVE傳輸路徑。CanIf通過服務(wù)CanIf_GetPduMode()提供關(guān)于當(dāng)前PDU通道模式的信息

圖片

圖6 PDU組的通道模式控制

在初始化期間,CanIf應(yīng)該將每個通道切換到CANIF_OFFLINE。如果調(diào)用CanIf_SetControllerMode(),則CanIf會將對應(yīng)通道的PDU通道模式設(shè)置為CANIF_OFFLINE。

對于切換到CANIF_OFFLINE模式的物理通道,CanIf應(yīng)該:

  • 防止將相關(guān)L-PDU的傳輸請求CanIf_Transmit()轉(zhuǎn)發(fā)給CanDrv,
  • 清除相應(yīng)的CanIf傳輸緩沖區(qū),
  • 防止調(diào)用上層模塊的接收指示回調(diào)服務(wù),
  • 防止調(diào)用上層模塊的傳輸確認(rèn)回調(diào)服務(wù)。

如果調(diào)用CanIf_SetControllerMode()或CanIf_ControllerBusOff(),則CanIf應(yīng)將相應(yīng)通道的PDU通道模式設(shè)置為CANIF_TX_OFFLINE。

對于切換到CANIF_TX_OFFLINE模式的物理通道,CanIf應(yīng)該:

  • 防止將相關(guān)L-PDU的傳輸請求CanIf_Transmit()轉(zhuǎn)發(fā)給CanDrv,
  • 清除相應(yīng)的CanIf傳輸緩沖區(qū),
  • 防止調(diào)用上層模塊的傳輸確認(rèn)回調(diào)服務(wù)。
  • 支持調(diào)用上層模塊的接收指示回調(diào)服務(wù)。

在CANIF_OFFLINE和CANIF_TX_OFFLINE的情況下,BusOff通知被隱式地抑制,因為沒有I-PDU可以被傳輸,因此CAN控制器不能通過新請求的L-PDU進(jìn)入BusOff模式進(jìn)行傳輸。

如果已經(jīng)在CAN transmission硬件對象中等待傳輸?shù)腖-PDU在切換到CANIF_TX_OFFLINE或CANIF_OFFLINE模式并發(fā)生后續(xù)BusOff事件后立即被傳輸,那么CanIf不禁止執(zhí)行BusOff通知。喚醒通知不受PDU通道模式更改的影響。

對于切換到CANIF_ONLINE模式的物理信道,CanIf應(yīng)該:

  • 允許將相關(guān)L-PDU的傳輸請求CanIf_Transmit()轉(zhuǎn)發(fā)到CanDrv,
  • 支持調(diào)用上層模塊的接收指示回調(diào)服務(wù),
  • 允許調(diào)用上層模塊的傳輸確認(rèn)回調(diào)服務(wù)。

如果CanIfTxOfflineActiveSupport為TRUE,CanIf提供通過CANIF_TX_OFFLINE_ACTIVE模式成功傳輸?shù)?a href="http://www.wenjunhu.com/analog/" target="_blank">模擬。該模式是通過調(diào)用CanIf_SetPduMode()來啟用的,并且只影響傳輸路徑。

對于每個被分配到CANIF_TX_OFFLINE_ACTIVE模式信道的L-PDU, CanIf會立即調(diào)用上層模塊的傳輸確認(rèn)回調(diào)服務(wù),而不是在調(diào)用CanIf_Transmit()時將L-PDU緩沖或轉(zhuǎn)發(fā)到CanDrv。

在CANIF_TX_OFFLINE_ACTIVE模式下,上層必須處理傳輸確認(rèn)的執(zhí)行。發(fā)送確認(rèn)處理在發(fā)送請求結(jié)束時立即執(zhí)行。這個功能對于實現(xiàn)特殊的操作模式(如診斷無源模式)是有用的,以避免總線流量而不影響通知機(jī)制。此模式通常用于診斷。

5 API

API這里羅列一下,就不展開贅述了,后續(xù)有機(jī)會再串起來介紹。

  • CanIf_Init
  • CanIf_DeInit
  • CanIf_SetControllerMode
  • CanIf_GetControllerMode
  • CanIf_GetControllerErrorState
  • CanIf_Transmit
  • CanIf_ReadRxPduData
  • CanIf_ReadTxNotifStatus
  • CanIf_ReadRxNotifStatus
  • CanIf_SetPduMode
  • CanIf_GetPduMode
  • CanIf_GetVersionInfo
  • CanIf_SetDynamicTxId
  • CanIf_SetTrcvMode
  • CanIf_GetTrcvMode
  • CanIf_GetTrcvWakeupReason
  • CanIf_SetTrcvWakeupMode
  • CanIf_CheckWakeup
  • CanIf_CheckValidation
  • CanIf_GetTxConfirmationState
  • CanIf_ClearTrcvWufFlag
  • CanIf_CheckTrcvWakeFlag
  • CanIf_SetBaudrate
  • CanIf_SetIcomConfiguration
  • CanIf_GetControllerRxErrorCounter
  • CanIf_GetControllerTxErrorCounter
  • CanIf_EnableBusMirroring

回調(diào)函數(shù)

  • CanIf_TriggerTransmit
  • CanIf_TxConfirmation
  • CanIf_RxIndication
  • CanIf_ControllerBusOff
  • CanIf_ConfirmPnAvailability
  • CanIf_ClearTrcvWufFlagIndication
  • CanIf_CheckTrcvWakeFlagIndication
  • CanIf_ControllerModeIndication
  • CanIf_TrcvModeIndication
  • CanIf_CurrentIcomConfiguration

總****結(jié)

CanIf位于底層CAN驅(qū)動、CAN收發(fā)器和上層通信服務(wù)層、CanTp、PduR之間。它表示上層通信層的CAN驅(qū)動程序服務(wù)接口。其中涉及眾多API函數(shù)和回調(diào)函數(shù),具體功能最好結(jié)合函數(shù)的定義和應(yīng)用場景理解。

縮略詞:

L-PDU : CAN Protocol Data Unit,

CAN協(xié)議數(shù)據(jù)單元

L-SDU : CAN Service Data Unit,

CAN服務(wù)數(shù)據(jù)單元

CanDrv : CAN Driver module,

CAN驅(qū)動模塊

CAN FD : CAN with Flexible Data-Rate

CanId : CAN Identifier,

CAN標(biāo)識符

CanIf: CAN Interface module,

CAN接口模塊

Can Nm : CAN Network Management module,

CAN網(wǎng)絡(luò)管理模塊

CanSm : CAN State Manager module,

CAN狀態(tài)管理模塊

CanTp : CAN Transport Layer module,

CAN傳輸層模塊

CanTrcv : CAN Transceiver Driver module,

CAN收發(fā)器驅(qū)動模塊

CanTSyn : Global Time Synchronization overCAN,

ComM : Communication Manager module,

通信管理模塊

DCM: Diagnostic Communication Manager module,診斷通信管理模塊

EcuM : ECU State Manager module,

ECU狀態(tài)管理模塊

HOH : CAN hardware object handle,

硬件對象句柄

HRH : CAN hardware receive handle,

硬件接收句柄

HTH: CAN hardware transmit handle,

硬件發(fā)送句柄

PduR : PDU Router module,

PDU路由模塊

SchM : Scheduler Module,

進(jìn)程模塊

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 收發(fā)器
    +關(guān)注

    關(guān)注

    10

    文章

    3440

    瀏覽量

    106110
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2762

    瀏覽量

    464007
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3738

    瀏覽量

    114129
  • PDU
    PDU
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    17005
收藏 人收藏

    評論

    相關(guān)推薦

    AUTOSAR MCAL MCU模塊的相關(guān)資料分享

    簡介MCU驅(qū)動程序提供微控制器初始化,掉電功能,復(fù)位和微控制器其他MCAL軟件模塊所需的特定功能的服務(wù)(這里主要指那些公共寄存器的設(shè)置)。需要注意的是,啟動代碼和用于升級的Bootloader是不在AUTOSAR負(fù)責(zé)范圍內(nèi)的,
    發(fā)表于 11-03 08:18

    AUTOSAR的相關(guān)資料推薦

    AUTOSAR基礎(chǔ)篇EcuM_wto9109的博客-CSDN博客【AutoSAR】【EcuM】ECU狀態(tài)管理專注汽車軟件開發(fā)、AutoSAR、車載以太網(wǎng)、SOA、EE架構(gòu)。07-08
    發(fā)表于 01-27 08:25

    AUTOSAR_MCAL_CAN_IM.pdf提示找不到 config/CanIf.xdm怎么解決?

    AUTOSAR_MCAL_CAN_IM.pdf 文件中聲明還需要 CanIf 插件來實現(xiàn) CAN 插件。但是,當(dāng)我嘗試在 Tresos 上添加 CanIf 模塊時,它給出了一個錯誤
    發(fā)表于 03-30 08:48

    AUTOSAR通信CanIf模塊簡介1

    CAN接口模塊(下文簡“CanIf”)位于底層CAN驅(qū)動(CanDrv)、CAN收發(fā)器(CanTrcv)和上層通信服務(wù)層(CanSm、CanNm)、CAN傳輸協(xié)議(CanTp)、PDU路由器(PduR)之間。它表示上層
    的頭像 發(fā)表于 02-13 14:29 ?4169次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>通信</b><b class='flag-5'>之</b><b class='flag-5'>CanIf</b><b class='flag-5'>模塊</b><b class='flag-5'>簡介</b>1

    AUTOSAR通信CanIf模塊簡介2

    CAN接口模塊(下文簡“CanIf”)位于底層CAN驅(qū)動(CanDrv)、CAN收發(fā)器(CanTrcv)和上層通信服務(wù)層(CanSm、CanNm)、CAN傳輸協(xié)議(CanTp)、PDU路由器(PduR)之間。它表示上層
    的頭像 發(fā)表于 02-13 14:29 ?2541次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>通信</b><b class='flag-5'>之</b><b class='flag-5'>CanIf</b><b class='flag-5'>模塊</b><b class='flag-5'>簡介</b>2

    AutosarBSWM配置簡介

    AUTOSAR基礎(chǔ)軟件層主要用于提供基礎(chǔ)軟件服務(wù),包括標(biāo)準(zhǔn)化的系統(tǒng)功能以及功能接口,并且由一系列的基礎(chǔ)服務(wù)軟件組件構(gòu)成,包括系統(tǒng)服務(wù)、內(nèi)存服務(wù)、通信服務(wù)等。
    的頭像 發(fā)表于 05-26 11:15 ?1746次閱讀
    <b class='flag-5'>Autosar</b><b class='flag-5'>之</b>BSWM配置<b class='flag-5'>簡介</b>

    AUTOSAR通信協(xié)議棧配置詳解

    通訊協(xié)議棧幾乎是CP AUTOSAR中最龐雜的一塊。由于其涉及的模塊比較多(僅實現(xiàn)CAN信號的收發(fā)就需要ECUC/CAN/CANIF/CANTP/PDUR/COM/XCP這么多模塊的協(xié)
    的頭像 發(fā)表于 09-21 10:02 ?6101次閱讀
    <b class='flag-5'>AUTOSAR</b>中<b class='flag-5'>通信</b>協(xié)議棧配置詳解

    AUTOSAR軟件開發(fā)流程簡介

    軟件功能和性能要求。這包括確定軟件組件、接口和模塊的功能和規(guī)格要求。 架構(gòu)設(shè)計:在這個階段,根據(jù)需求分析的結(jié)果,設(shè)計AUTOSAR軟件的整體架構(gòu)。這包括定義軟件組件的功能和接口,以及確定軟件模塊的分層結(jié)構(gòu)和
    的頭像 發(fā)表于 10-27 15:55 ?3183次閱讀
    <b class='flag-5'>AUTOSAR</b>軟件開發(fā)流程<b class='flag-5'>簡介</b>

    AUTOSAR通信協(xié)議解析 如何實現(xiàn)AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽車開放系統(tǒng)架構(gòu),該架構(gòu)支持汽車電子控制單元(ECU)之間的通信,實現(xiàn)了高度模塊化和可重用性。AUTO
    的頭像 發(fā)表于 12-17 14:54 ?822次閱讀

    AUTOSAR通信組件介紹 AUTOSAR通信層功能分析

    AUTOSAR通信組件介紹 AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件架構(gòu)合作伙伴計劃,旨在創(chuàng)建和建立一個開放的標(biāo)準(zhǔn)化軟件架構(gòu),以
    的頭像 發(fā)表于 12-17 14:55 ?398次閱讀

    AUTOSAR通信與CAN協(xié)議的關(guān)系

    AUTOSAR通信模型: AUTOSAR定義了一個分層的軟件架構(gòu),其中包括應(yīng)用層、基礎(chǔ)軟件層和微控制器抽象層。在這些層中,通信模型是實現(xiàn)ECU之間
    的頭像 發(fā)表于 12-17 14:57 ?287次閱讀

    AUTOSAR通信框架的優(yōu)勢 AUTOSAR通信實例與應(yīng)用場景

    AUTOSAR通信框架的優(yōu)勢 AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件架構(gòu)合作伙伴計劃,旨在創(chuàng)建并建立一個開放的標(biāo)準(zhǔn)化軟件架構(gòu)
    的頭像 發(fā)表于 12-17 14:58 ?353次閱讀

    AUTOSAR通信堆棧的配置 AUTOSAR通信模塊測試方法

    )的開發(fā)和生產(chǎn)。通信堆棧是AUTOSAR架構(gòu)中的關(guān)鍵組成部分,負(fù)責(zé)處理ECU之間的通信。 AUTOSAR通信堆棧的配置
    的頭像 發(fā)表于 12-17 15:01 ?312次閱讀

    AUTOSAR通信實現(xiàn)中的常見問題

    配置與使用問題 通信協(xié)議棧模塊理解不足 問題 :開發(fā)者可能對AUTOSAR通信協(xié)議棧的組成模塊(如Com、Dcm、PduR、IpduM、TP
    的頭像 發(fā)表于 12-17 15:03 ?425次閱讀

    AUTOSAR通信與網(wǎng)絡(luò)安全 AUTOSAR通信在車輛中的應(yīng)用

    隨著汽車行業(yè)的發(fā)展,車輛的電子化和智能化水平不斷提高,這使得車輛的通信系統(tǒng)變得日益復(fù)雜。AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件
    的頭像 發(fā)表于 12-17 15:06 ?329次閱讀