色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AUTOSAR通信之CanIf模塊簡介1

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

1 位置和作用

如圖1所示,CAN接口模塊(下文簡“CanIf”)位于底層CAN驅動(CanDrv)、CAN收發器(CanTrcv)和上層通信服務層(CanSm、CanNm)、CAN傳輸協議(CanTp)、PDU路由器(PduR)之間。它表示上層通信層的CAN驅動程序服務接口。

圖片

圖1 CanIf的位置

CanIf提供了獨特的接口來管理不同CAN硬件,如CAN控制器和CAN收發器。同時,基于物理CAN通道相關的CAN狀態管理器模塊(CanSm)可以控制多個底層內部和外部的CAN控制器或CAN收發器。

CanIf由與CAN硬件無關的任務組成,屬于ECU CAN通信驅動程序。CanIf滿足PduR和AUTOSAR COM棧上層通信模塊的控制流和數據流要求:發送請求處理、發送確認、接收指示、錯誤通知和CAN控制器的啟動/停止,從而喚醒或參與網絡。它的數據處理和通知API基于CAN L-SDU,用于控制和模式處理的API提供了CAN控制器相關的視圖。

圖片

圖2 CanIf模塊和其他模塊的關系

在發送請求時,CanIf用相應的參數完成L-PDU的傳輸,并通過對應CanDrv將CAN L-PDU轉發給CAN控制器。在接收端,CanIf將接收到的I-PDU作為I-SDU分發到上層模塊。接收L-SDU和上層之間的分配是靜態配置的。在傳輸確認時,CanIf負責向上層發送傳輸成功的信息

CanIf提供對CAN驅動程序的通信抽象訪問和CAN收發驅動程序服務,用于對CAN網絡的控制和監視。CAN接口將CAN狀態管理器的狀態向下轉發到底層CAN驅動程序,向上CAN接口模塊將CAN驅動程序或 CAN收發器驅動程序傳遞到相應的NM模塊。

2 上下層關系

上層

AUTOSAR BSW分層架構中,CanIf的上層可以是PduR,可以是CanNm,可以CanTp,可以CanSm,EcuM或復雜的驅動模塊CDD,普遍標定協議模塊XCP,全局時間同步模塊CanTSyn ,J1939傳輸層模塊 J1939Tp和J1939網絡管理模塊 J1939Nm。

CanIf使用的API由通知服務組成,它們將CAN相關數據傳輸到目標上層。這些服務的調用參數指向CanDrv中的緩沖信息,或者直接指向CAN硬件。另外,CanIf支持對總線鏡像模塊的調出,來報告接收和傳輸幀的內容。EcuM會初始化CanIf。

下層

CanIf的下層模塊主要是CAN驅動程序CanDrv。由于CanIf在AUTOSAR BSW架構中的地位,它與CanDrv有著密切的關系。CanDrv只提供對CAN控制器的硬件抽象訪問,但是CanDrv會檢測和處理CAN控制器的事件,并將這些事件通知到CanIf。CanIf將CanSm的操作模式請求傳遞給相應的底層CAN控制器。

圖片

CanDrv提供了標準化的L-PDU,以確保CanIf的硬件獨立性。指向這個規范化的L-PDU的指針要么指向一個臨時緩沖區,要么指向依賴于CAN硬件的CanDrv。CanDrv調用的回調服務是在CanIf中聲明和實現的。由CanIf調用的回調服務被聲明并放置在對應的上層通信服務層中,如PduR、CanNm、CanTp。

配置的CAN控制器的數量不一定是使用的CAN收發器的數量。如果多個不同類型的CAN控制器在同一個CAN網絡上運行,一個CAN收發器是足夠的,但是根據CAN控制器設備的類型,需要一個或兩個不同的CanDrv。

第二個可用的底層CAN設備驅動程序是CAN收發器CanTrcv。

每個CanTrcv對CAN收發器進行操作模式的控制。CanIf只是將幾個底層CanTrcv的API映射到一個惟一的API,因此,CanSm能夠觸發相應CAN收發模式的轉換。CanIf中不執行屬于CanTrcv所控制的功能。

CanIf將所有底層CanTrcv的下列服務映射到一個惟一的接口:

  • 唯一的CanTrcv模式請求和讀取服務來管理每個底層CAN收發設備的操作模式;
  • 為CAN收發器讀取服務,喚醒原因支持;
  • 模式請求服務啟用、禁用、清除喚醒事件狀態使用的每個CAN收發器(CanIf_SetTrcvMode)。

3 配置

CanIf的設計經過優化,以管理CAN協議的特定功能和用于底層CAN控制器的處理。

CanIf不需要重構就可以更改CAN配置。函數CanIf_Init()從配置容器和參數中獲取所需的CAN配置信息。

圖片

可以獲取到的信息包括:

  • CAN控制器的數量。CAN控制器的數量對于發送和接收I-PDU的調度以及對可用CAN驅動程序狀態的控制是非常必要的,如下圖CanIfCtrlDrvCfg。

圖片

  • 硬件對象句柄的數目。為了監督發送請求,CAN接口需要知道HTH的數量以及每個HTH與相應的CAN控制器之間的分配,如下圖CanIfHthCanCtrlIdRef和CanIfHthIdSymRef。

圖片

圖片

  • 通過每個硬件對象的過濾器所接收到的CAN ID的范圍。CAN接口使用HRH和L-PDU之間的固定分配,在相應的硬件對象中接收,進行搜索算法,見下圖CanIfHrhSoftwareFilter,CanIfHrhCanCtrlIdRef和 CanIfHrhIdSymRef。

圖片

圖片

圖片

CanIf需要所有已使用的上層通信服務層和L-SDU的信息來分配。為了在AUTOSAR COM棧中集成CanIf,必須在配置時設置以下信息:

  • 傳遞上層模塊,并為每個傳輸L-SDU傳輸I-PDU,用于發送確認服務的調度,參見CanIfTxPduId。

圖片

  • 接收上層模塊并為每個L-SDU接收I-PDU。用于接收指示期間的L-SDU調度,參見 CanIfRxPduId。

圖片

ECU連接到一個或多個CAN網絡,CanIf需要控制器和ECU的描述。因此,以下信息是從AUTOSAR系統配置的一部分CAN通信矩陣中獲取得到,見CanIfTxPduCfg和CanIfRxPduCfg:

  • ECU物理通道上接收的所有I-PDU,用于軟件過濾和接收L-SDU調度;
  • 所有I-SDU應由ECU上的每個物理通道傳遞,用于發送請求和發送L-PDU調度;
  • L-PDU的屬性,包括ID和數據長度,用于軟件濾波,接收指示服務,數據長度檢查;
  • 傳輸L-SDU的傳遞模塊,即PduR、CanNm和CanTp,用于發送確認服務;
  • 接收L-SDU的接收器,即PduR、CanNm和CanTp,用于L-PDU的調度;
  • L-PDU和L-SDU名稱,用于表示Rx/Tx數據緩沖區的地址;
圖片

圖片

4 功能服務

CanIf的服務可以分為以下幾個主要內容:

  • 初始化
  • 發送請求服務
  • 發送確認服務
  • 接待指示服務
  • 控制器模式控制服務
  • PDU模式控制服務

CanIf的應用模式:

  • 中斷模式:

CanDrv處理由CAN控制器觸發的中斷。CanIf在事件發生時得到觸發,在這種情況下,在CanDrv中相應的ISR中調用相關的CanIf服務。

  • 輪詢模式:

由SchM觸發CanDrv,并執行后續進程。在這種情況下,必須在定義的時間間隔內,調用下列函數:

  • Can_MainFunction_Write
  • Can_MainFunction_Read
  • Can_MainFunction_BusOff
  • Can_MainFunction_Wakeup
  • Can_MainFunction_Transceiver

CanIf由CanDrv通知事件接收、發送、BusOff和超時),這些事件發生在一個CAN控制器中等同于中斷驅動操作。CanDrv更新屬于CAN控制器中發生事件的相應信息,如接收L-PDU。

  • 混合模式:

中斷和輪詢驅動CanDrv。根據所使用的CAN控制器,該功能可以分為中斷驅動和輪詢驅動兩種操作模式。比如,輪詢驅動的FullCAN接收和中斷驅動的基本CAN接收,輪詢驅動的傳輸和中斷驅動的接收等。

AUTOSAR提供了獨特的接口,對三種類型的操作模式都有效。無論是在中斷、輪詢還是混合處理事件時,CanIf都以相同的方式工作,區別是調用內容不同,還有通知中斷的方式:搶占式或協作式。所有服務都是按照配置執行的。

初始化

EcuM調用CanIf的函數CanIf_Init()來初始化整個CanIf。在初始化過程,將對所有全局變量和數據結構初始化,包括標示和緩沖區。EcuM分別通過調用相應的初始化服務來執行CanDrv和CanTrcv的初始化。

在初始化完成后,CAN控制器保持在啟動復位后的停止模式。在這種模式下,CanIf和CanDrv既不能發送也不能接收L-PDU。

如果在運行期間需要重新初始化整個CAN模塊,EcuM會調用CanSm,通過調用CAN接口模塊的API服務CanIf_SetControllerMode()來啟動CAN控制器所需的狀態轉換,具體過程后續介紹CAN狀態管理時會展開。CanIf將來自CanSm的調用映射到Candrv的調用上。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 收發器
    +關注

    關注

    10

    文章

    3436

    瀏覽量

    106056
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2756

    瀏覽量

    463881
  • 路由器
    +關注

    關注

    22

    文章

    3734

    瀏覽量

    113961
  • PDU
    PDU
    +關注

    關注

    0

    文章

    94

    瀏覽量

    16992
收藏 人收藏

    評論

    相關推薦

    AUTOSAR MCAL MCU模塊的相關資料分享

    作者:Stephen Du免責聲明: 本文為個人學習筆記及總結,僅代表個人觀點,盡可能保證內容準確性。復制/轉發請注明來源/作者。歡迎添加微信交流學習。AUTOSAR MCAL MCU模塊解析1
    發表于 11-03 08:18

    AUTOSAR的相關資料推薦

    AUTOSAR基礎篇EcuM_wto9109的博客-CSDN博客【AutoSAR】【EcuM】ECU狀態管理專注汽車軟件開發、AutoSAR、車載以太網、SOA、EE架構。07-08
    發表于 01-27 08:25

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

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

    AUTOSAR通信CanIf模塊簡介2

    CAN接口模塊(下文簡“CanIf”)位于底層CAN驅動(CanDrv)、CAN收發器(CanTrcv)和上層通信服務層(CanSm、CanNm)、CAN傳輸協議(CanTp)、PDU路由器(PduR)之間。它表示上層
    的頭像 發表于 02-13 14:29 ?2517次閱讀
    <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

    AUTOSAR通信CanIf模塊簡介3

    CAN接口模塊(下文簡“CanIf”)位于底層CAN驅動(CanDrv)、CAN收發器(CanTrcv)和上層通信服務層(CanSm、CanNm)、CAN傳輸協議(CanTp)、PDU路由器(PduR)之間。它表示上層
    的頭像 發表于 02-13 14:29 ?3537次閱讀
    <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>3

    AutosarBSWM配置簡介

    AUTOSAR基礎軟件層主要用于提供基礎軟件服務,包括標準化的系統功能以及功能接口,并且由一系列的基礎服務軟件組件構成,包括系統服務、內存服務、通信服務等。
    的頭像 發表于 05-26 11:15 ?1730次閱讀
    <b class='flag-5'>Autosar</b><b class='flag-5'>之</b>BSWM配置<b class='flag-5'>簡介</b>

    AUTOSAR通信協議棧配置詳解

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

    AUTOSAR軟件開發流程簡介

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

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

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

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

    實現汽車電子控制單元(ECU)的軟件設計和開發。這個架構包括多個層,其中通信層是AUTOSAR架構中的關鍵組成部分之一。 1. 通信組件概述 AUT
    的頭像 發表于 12-17 14:55 ?325次閱讀

    AUTOSAR通信與CAN協議的關系

    的概念,允許應用層組件(如軟件組件和ECU抽象層)通過定義良好的接口進行通信。 1. 通信服務: AUTOSAR提供了一系列通信服務,包括復
    的頭像 發表于 12-17 14:57 ?228次閱讀

    AUTOSAR通信框架的優勢 AUTOSAR通信實例與應用場景

    AUTOSAR通信框架的優勢 AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件架構合作伙伴計劃,旨在創建并建立一個開放的標準化軟件架構
    的頭像 發表于 12-17 14:58 ?302次閱讀

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

    )的開發和生產。通信堆棧是AUTOSAR架構中的關鍵組成部分,負責處理ECU之間的通信。 AUTOSAR通信堆棧的配置
    的頭像 發表于 12-17 15:01 ?295次閱讀

    AUTOSAR通信實現中的常見問題

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

    AUTOSAR通信與網絡安全 AUTOSAR通信在車輛中的應用

    架構合作伙伴計劃,旨在創建并建立一個開放的標準化軟件架構,以簡化汽車電子控制單元(ECU)的開發和生產。 1. AUTOSAR通信概述 AUTOSAR定義了一個分層的軟件架構,其中包括
    的頭像 發表于 12-17 15:06 ?286次閱讀
    主站蜘蛛池模板: 91久久偷偷看嫩草影院无费| 国产成人综合在线视频| 国产色婷亚洲99精品AV| 我的家庭女教师| 国语对白老女人8av| 最近高清中文字幕无吗免费看| 男人免费网站| 国产精品美女久久久久AV超清| 一本道久在线综合道| 欧美午夜特黄AAAAAA片| 国产精品久久人妻无码蜜| 在线 | 果冻国产传媒61国产免费| 欧美丰满熟妇无码XOXOXO| 国产欧美日韩网站| 2012中文字幕手机在线| 日韩欧美一级| 久久精品热99看| 超碰人人澡人人胔| 夜色私人影院永久入口| 日本欧美久久久久免费播放网| 国产剧情福利AV一区二区| 69式国产真人免费视频| 午夜福利免费院| 男女无遮挡吃奶gift动态图 | 国产69TV精品久久久久99| 亚洲区视频在线观看| 欧美精品99久久久啪啪| 果冻传媒在线观看高清完整免费| chinesedaddy80老年人| 亚洲午夜福利未满十八勿进| 日韩 无码 手机 在线| 久久热这里面只有精品| 国产精品久久久久久久人热 | 超碰免费视频在线观看| 野花韩国在线观看| 天天操天天干天天爽| 嗯啊哈啊好棒用力插啊| 精品一二三区久久AAA片| 国产av在在免费线观看美女| 97碰成视频免费| 杨幂被视频在线观看|