全职猎人1999_日韩综合社区_久草播放_黄色a一级一级一级免费看_午夜在线视频一区二区三区_国产日韩精品SUV

400-821-6015
行業資訊
您當前的位置:首頁 ? 行業資訊 ? 行業資訊
內部資訊行業資訊

AUTOSAR CAN驅動Mailbox配置技術要點全解析

發布日期:2023-10-24

前言

      首先,請問大家幾個小小問題,你清楚:

        - AUTOSAR框架下的CAN驅動關鍵詞定義嗎?是不是有些總是傻傻分不清楚呢?

       - CAN驅動Mailbox配置過程中有哪些關鍵配置參數值得我們注意,防止出現低級錯誤?

       - CAN驅動Mailbox的三種類型Tx Buffer,Tx FIFO,Tx Queue的區別嗎?

       今天,我們來一起探索并回答這些問題。為了便于大家理解,以下是本文的主題大綱:

圖片

正文

      CAN驅動作為一個在日常開發項目中經常接觸到的重要驅動模塊,AUTOSAR組織對CAN Driver有著十分全面而準確的實現要求與相關關鍵詞參數的定義。

      經常發現大家在開發過程中總是會忽略或者混淆這些模塊的關鍵詞的定義,導致最終雙方在溝通過程中存在很多的誤解,在開發過程中也會存在諸多不必要的失誤與bug的產生,因此本文小T將帶領大家一起來了解AUTOSAR框架的CAN Driver一些十分重要的關鍵詞解釋以及難以理解的基本概念,助力我們日常工作中的CAN驅動開發。

       小T未來會繼續更新該AUTOSAR詞典專欄,該詞典將會講解有關AUTOSAR框架下難以理解或者容易混淆的基本概念與相關重要知識點,像“百科詞典”一樣幫助大家查漏補缺,助力大家高效完成基于AUTOSAR的軟件開發,歡迎大家多多關注與轉發該專欄。

CAN 驅動關鍵詞定義

       小T通過學習AUTOSAR CAN Driver標準文檔,并結合自身實戰經驗,將CAN Driver模塊的關鍵詞定義整理如下表所示:

圖片
CAN 驅動關鍵詞定義解釋

CAN 驅動Mailbox關鍵配置參數

      在底層MCAL CAN Driver配置過程中總是會存在許多容易混淆的關鍵配置參數,該類參數如果配置有誤,有些時候就會出現讓人費解的問題與bug,因此為了能夠減小這類問題的出現,小T結合自身實戰經驗一起來學習下CAN驅動中關鍵配置參數的定義與相關注意事項。


Hardware Object

      如上述表格中所述, 一個Hardware Object就是一個CAN L-PDU的buffer,用來存儲僅一個CAN ID Message,你將可以將其理解為就是我們常說的Mailbox,該Mailbox就是CAN 控制器硬件上的一個物理buffer空間,用來存儲用于發送或者接收的一個CAN ID Message,該CAN ID Message自然就是包含CAN ID,DLC, Data三個部分


HOH,HTH,HRH三者區別與聯系

      為了更好地理解HOH,HTH,HRH三者的區別,小T將三者的區別與聯系整理如下表所示:

圖片
HTH,HRH,HOH三者區別與聯系


CanHwObjectCount

      該參數按照AUTOSAR官方文檔中的定義,表示的就是Hardware Object中的數目,不過需要注意的是該參數面向的對象是HOH,即HRH或者HTH。

      該參數表示是否為該HOH配置了FIFO機制,如果數目為1,則并沒有FIFO進行緩存數據,如果大于1,那么就是為該HOH配置了FIFO的數據緩存機制,這種緩存機制對于防止CAN接收或者發送的重要報文丟失至關重要。

      如下圖所示便展示了CanHwObjectCount在HOH中的配置:

圖片
      1.CanHwObjectCount在HOH中的發送配置
圖片

      2.CanHwObjectCount在HOH中的接收配置

      - 如上圖1所示,可以知道該HOH為發送類型的HOH,因此就直接可以理解為HTH,那么該HTH中定義了參數CanHwObjectCount的值為1,表示不存在FIFO機制,僅是一個唯一的buffer,如果數據發送或者接收比較頻繁,意味著新數據可能來不及發送;

      - 如上圖2所示,可以知道該HOH為接收類型的HOH,因此就直接可以理解為HRH,那么該HRH中定義了參數CanHwObjectCount的值為2,表示存在深度為2的FIFO機制,如果數據發送或者接收比較頻繁,至少存在深度為2的FIFO緩存空間來防止重要數據的丟失。


Full CAN與Basic CAN

     在MCAL CAN Driver中的Full CAN與Basic CAN是用來修飾HOH的類型參數,該參數可以通過CanObejctType進行定義。

      Full CAN:一般表示僅存在1個的Hardware Object與之對應,且該Full CAN類型的Hardware Object與特定的CAN ID Message綁定;

      Basic CAN:一般表示存在1個或者多個的Hardware Object與之對應,且該Basic CAN類型的Hardware Object與非特定的CAN ID Message或者一定范圍內的CAN ID Message綁定;

注意事項:

        - 對于Basic Can類型的HOH 一般建議通過配置硬件過濾器來實現底層無關CAN Message的數據接收或者特定范圍內的報文接收,減少不必要的硬件中斷,也就從某種程度上降低了CPU負載;

       - 當硬件資源較為充足且無需過多考慮新數據可能覆蓋老數據的場景,一般推薦將HOH配置成FULL CAN類型。

       - 在HOH的配置過程中,一般情況下均需要先將FULL CAN類型的HOH統一配置在前,Basic CAN類型的HOH配置在后,否則容易造成生成的代碼中Maibox使用錯亂的情況。


推薦配置方案

       小T結合實戰經驗,將軟件開發過程中常見的四類報文類型:應用報文,網絡管理報文,診斷報文,Xcp報文的發送與接收的mailbox配置方案總結如下表所示:

圖片
CAN Mailbox的四類報文推薦配置方案


推薦配置方案總結如下:

       - 診斷報文由于屬于重要報文,丟失與發送均不允許丟失且存在嚴格的時序關系,因此發送與接收均推薦Basic CAN+FIFO 來設置;

      - Xcp報文發送與接收都是特定ID的報文,因此發送與接收均推薦Full CAN+Buffer來設置;

      - 應用報文在mailbox硬件充足的前提下,發送與接收優先采用Full CAN+Buffer來設置,如果硬件資源不夠的話,那么推薦采用Basic CAN+FIFO來配置;

      - 網絡管理報文接收一般是一定范圍的報文,因此接收推薦采用Basic CAN+Buffer來配置,發送由于ID確定,因此推薦采用Full Can+Buffer來設置;

      - 所有報文的發送與接收配置完成之后,一定要確保所有配置HOH中的CanHwObjectCount加起來的mailbox發送與接收數目分別不能超過芯片手冊規定的發送mailbox與接收mailbox硬件資源總和。

CAN 驅動硬件Buffer類型

      了解了上述CAN驅動推薦方案之后,我們接下來需要進一步探究下對于can controller硬件資源內部對于用于存儲CAN L-PDU的buffer是如何定義的?

      一般來講,現在市面上主流的CAN Controller對于其硬件資源按照發送與接收可以分為如下幾種類型Buffer:

       - 發送硬件Buffer類型:Tx Buffer,Tx FIFO,Tx Queue;

      - 接收硬件Buffer類型Rx Buffer,Rx FIFO;


      接下來將針對每種硬件Buffer類型分別進行講解:

       Tx Buffer

      Tx Buffer又名Dedicated Tx Buffer,該Buffer會與特定的CAN ID進行綁定,發送優先級是完全通過CAN ID越小,優先級越高,高優先級優先發送;

       一般該Tx Buffer會配置HOH的CanObejctType類型為Full CAN模式。


        Tx FIFO

       上文中說的FIFO機制實際上在硬件底層可以分為兩種,一種是Tx FIFO,另外一種就是Tx Queue,因為兩種本身都是一種緩存空間。

       Tx FIFO顧名思義就是按照“先進先出”的方式來進行發送,忽略CAN ID優先級,一般為了防止出現優先級反轉現象,不建議使用FIFO模式。


         Tx Queue

       Tx Queue 作為FIFO機制的一種,與Tx FIFO本身有所不同的是放置新的Message發送請求時按照先后順序來放置,但是發送時則與Tx Buffer機制一樣,按照高優先級優先發送原則,即CAN ID越小,優先級越高,如果存在多個同樣CAN ID的報文需要發送,那么數字小的Buffer ID號先發送。

       除了上述單一的發送模式之外,絕大多數情況可能存在上述組合模式,組合模式下特別需要注意的是外發報文優先級的判定:

         

         Tx Buffer + Tx FIFO模式

圖片

      如上圖可知,每次發送優先級按照如下方式進行判定:

       - 取出Dedicated Tx Buffer中的最小CAN ID發送請求;

      - 取出Tx FIFO中最老的CAN ID發送請求;

      - 比較上述Tx Buffer與Tx FIFO分別取出的CAN ID發送請求,兩者之間的CAN ID越小的發送請求優先發送。


       Tx Buffer + Tx Queue模式

圖片

     如上圖可知,每次發送優先級按照如下方式進行判定:

      - 取出Dedicated Tx Buffer中的最小CAN ID發送請求;

     - 取出Tx Queue中最小CAN ID發送請求;

     - 比較上述Tx Buffer與Tx Queue分別取出的CAN ID發送請求,兩者之間的CAN ID越小的發送請求優先發送。


Rx Buffer

      Rx Buffer與Tx Buffer同理,  一般都是與特定的CAN ID進行綁定,一般該Rx Buffer均會配置HOH的CanObejctType類型為Full CAN模式,如果此時老的數據CPU還沒有處理完,新的數據將不會得到處理。


Rx FIFO

      Rx FIFO典型的就是按照“先進先出”的方式進行CAN報文的接收處理,一般而言,Rx FIFO都會存在兩個,一個是Rx FIFO0,另外一個是Rx FIFO1,這個根據實際情況進行選擇。

      同時Rx FIFO如果存在Full的情況,那么有如下兩種處理方式:

       - Blocking Mode:表示如果FIFO已經滿了,只有等到數據處理完成之后才可以放入新的數據,一般推薦使用該方式;

      - Overwrite Mode:表示如果FIFO已經滿了,新來的數據可以覆蓋掉最老的數據,如果采用OverWrite方式,需要確保獲取數據時與接收數據時不會存在數據一致性問題。


轉自汽車電子與軟件

上海創程車聯網絡科技有限公司版權所有 滬ICP備11045498號-1   技術支持:網站建設
主站蜘蛛池模板: 日本免费中文字幕|狠狠操综合网|国产一区二区=av在线|国产91精清纯白嫩高中在线观看|少妇特黄V一区二区三区|免费看荫蒂添的好舒服视频 | 广东少妇大战黑人34厘米视频|日韩午夜在线|国产=aⅴ激情无码久久久无码|精品人妻无码一区二区三区色欲|日本阿v天堂|亚洲视频在线播放 | 久热超碰|免费人成激情视频在线观看|日本字幕有码中文字幕|久久网国产精品|亚洲最大成人网站|国产操逼视频 | 午夜影院污|亚洲精品一区二区三区大胸|午夜=a级理论片915影院|国产一区二区三区免费不卡|国产精品久久久久久久久久98|国产一区三区视频 | 性欧美欧美巨大69|亚洲热色|性欧美另丰满69xxxxx|国产精品伦|中文字幕在线官网|成=a人片国产精品 | 精品成人免费一区二区三区|亚洲专区在线|欧美裸体xxxx极品少妇软件|欧洲vi一区二区三区|免费激情网站|久久久青 | 国产欧美一区二区三区在线|朋友的丰满人妻中文字幕|中文字幕乱伦视频|日韩黄色三级|台湾综合色|伊人影院久久 国产麻豆另类=aV|极品久久久久|桃花色综合影院|国产夜恋视频在线观看|美女=av免费在线观看|久久久国产一区二区三区四区 | 小早川怜子痴女在线精品视频|国产+免费+无码|#NAME?|午夜无码成人免费视频|国产精品成人一区视频网站|色综合桃花网 亚洲女人天堂在线|四虎福利影院|日韩视频在线观看视频|欧美日韩成人一区|黑人异族巨大巨大巨粗|超碰在线c=ao | 97成人超碰免|欧美综合视频在线观看|强被迫伦姧惨叫在线视频|亚洲=aV成人无码网站大全|91精选日韩综合永久入口|欧美精品一区二区三区高清=aⅴ | 亚洲精品一二三|一本色道久久综合狠狠躁邻居|国产精品乱码一二三区的特点|国产粉嫩高中无套进入|亚洲欧美日韩愉拍自拍|2017男人天堂手机在线 | 国精产品W灬源码1688伊在线|在线观看肉片=aV网站免费|黄色生活毛片|免费看=av网页|亚洲色欧美国产综合|国产青青操 | 2019久久久|91女同|#NAME?|亚洲福利在线视频|国产猛烈高潮尖叫视频免费|久久精品国产72国产精 | 成人国产午夜在线观看|久久综合九色综合97欧美|99视频免费观看|久久久久久久国产精品毛片|久久99精品国产99久久|天堂成人国产精品一区 | 91=av免费看|久久久夜色|免费在线观看日韩|2020亚洲天堂|中国毛茸茸性XXXX|国产精品女人久久久久久 | 色播六月天|色综合久久久久久久久久|国产精品久久久久不卡绿巨人|国产精品视频一区国模私拍|久久婷综合|精品麻豆剧传媒=av国产 | 日本免费网站黄|免费精品视频一区二区三区|69p=ao国产成人免费|#NAME?|欧美特一级|激情五月激情综合 | 久久福利精品|亚洲日韩精品=aV无码麻豆|粗大挺进尤物人妻中文字幕|成人不卡一区二区|九九爱爱视频|#NAME? | 欧美一区二区三区四区在线观看|天堂国产在线观看|一级片免费在线观看|毛茸茸xxxx|melody在线高清免费观看动漫|国产性色=aV高清在线观看 | 国产精品nxnn|精品欧美一区二区三区在线观看|色88久久久久高潮综合影院|最好看的2018中文在线观看|#NAME?|91国偷自产中文字幕久久 | 久亚洲精品|91麻豆影院|久久人人射|日韩免费观看|色先锋=a=a成人|欧美一级视频 | 天天爽天天草|久久成人一区二区|国语对白露脸XXXXXX|黄色片视频在线免费观看|川上优在线|中国黄色免费 | 男人日女人视频网站|被女同桌调教成鞋袜奴脚奴|一品道门免费视频日本|国产高清在线=a视频大全|亚洲成人在线视频观看|天天·日日日干 | 国产一二区在线观看|黄在线免费|欧美大片www|无码h片在线观看网站|亚洲图区综合网|伊人久久亚洲 成人一区二区三区免费视频|日本=a=a=a=a片毛片免费观蜜桃|在线观看亚洲欧美|日本一夲道无码不卡免费视频|穿乳环蒂环上锁调教老师|国产成人综合一区二区三区 | 老妇激情毛片免费|草草福利视频|国产精品国产自线拍免费软件|日本免费一级视频|国产在线观看|无码区国产区在线播放 | 亚洲精品久久久久久蜜臀|老熟妇性老熟妇性色|黄色一级片片|国产二区一区|极品少妇xxxxx|日日摸夜夜爽无码毛片精选 | 国外精品视频在线观看免费|永夜星河免费观看|成人精品=av一区二区三区|老湿机香蕉久久久久久|日本=a级无毛|热久久一区 | 欧美色欧美亚洲日韩在线播放|99久久久久99国产免费=aV|午夜免费片|日韩一区二区三区久久|婷婷色色狠狠爱|69=av在线观看 | 中文字幕高清在线观看|中文字幕一区二区三区门四区五区|中文字幕久久999及|国产亚洲日韩=aV在线播放不卡|精品国产免费看|亚洲tv在线 | 性日本少妇|无码粉嫩小泬无套在线观看|一级片九九|99国产精品久久久久久久成人|国产综合片|从大树开始的进化动漫免费观看 | 久久久久无码国产精品一区乞丐|97一区二区三区|成人影院久久|九九九免费|俄罗斯18一19sex性大|国产精品一二三四区免费 | 国产suv一区二区|#NAME?|日韩精品网|亚洲国产第一|#NAME?|色中色=av | 国产精品乱码一区二三区|成人福利午夜|日本久久久网站|99热导航|一本大道东京热无码视频|深夜福利免费观看 | 福利综合网|成年人网站黄色|欧美大陆国产|日韩视频在线免费|精品国产一区二区三区久久久久久|奇米超碰在线 | 免费极品=aV一视觉盛宴|大陆少妇xxxx做受|懂色一区二区二区=av免费观看|女人的超长巨茎人妖在线视频|欧美激情国产精品视频一区二区|精产国品久久一二三产区区别 | 天天射夜夜骑|日韩视频黄色|亚洲国产精品一区二区成人片国内|#NAME?|一二三区在线免费观看|国产九九在线视频 | 免费无码黄网站在线看|九九在线精品视频|h黄动漫免费网站|成人小说亚洲一区二区三区|极品老师腿张开粉嫩小泬|婷婷开心中文字幕 | 中国一级毛片在线视频|99在线观看免费视频|亚洲九九热|www.精品国产|亚洲www久久久|欧美白浆视频 | 干亚洲美女|亚洲视频精选|91国自视频|亚洲一级影片|韩国三级在线中文字幕无码|xxx黄色片 | 欧美色欧美亚洲日韩在线播放|99久久久久99国产免费=aV|午夜免费片|日韩一区二区三区久久|婷婷色色狠狠爱|69=av在线观看 | 国产精品麻豆高潮刺激=a片|国产=aⅴ无码专区亚洲=av|草草在线视频|亚洲日韩精品无码专区加勒比|国产精品激情|成全视频观看免费高清第6季 | 5555www色欧美视频|免费裸体视频女性|三级成人毛片|日韩日韩日韩日韩日韩|日韩亚洲国产高清免费视频|#NAME? |