精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

淺析AutoSAR CAN Stack在配置工具中的實現

冬至子 ? 來源:Vehicle軟件開發 ? 作者:KTing_CD ? 2023-06-14 14:26 ? 次閱讀

CAN****模塊的開發歷程

當時在開發MCAL相關模塊的時候,偶爾會看下CAN整個模塊的配置,由于CAN相關的模塊一直同事在配置,當時感覺內容好多,各種CANxxx模塊在配置工具里,感覺如果能有機會配置下的話一定是一件非常偉大的事情,到了18年年底,我終于分到了CAN模塊的配置任務,負責一個CAN通道的配置。由于前邊同事已經配置了一個通道,我在他基礎上繼續配置,當時我已經處于無人管理的狀態了,開始自己的瞎發揮,可能內容比較多,一直沒有配置好,嘗試了ECUM的Flex模式和Fix模式,手動修改了好多BSWM的Rules,當時也不是很懂,看程序在哪有問題就直接手動改代碼,后來問同事,也知道了一些注意的地方,然后我就開始擼代碼看,發現好多CAN通信的變量值沒變化,后來在地鐵上看COMM的AutoSAR文檔,發現需要請求通道的通信,當時瞬間感覺找到了問題的所在,果然第二天一大早早早去公司試了下,居然成功了,當時別提多開心了,在自己稀里糊涂的琢磨了大概一個月終于看到了CAN的信號,當時真的很開心,因為這算是我自己獨立搞出來的,成就感瞬間爆棚。也從這一刻開始心中對AutoSAR配置的害怕感漸漸的消失,大概從19年開始到7月份就一直在做CAN相關的配置。從CAN最底層的驅動到CANTrcv、CANIf、PDUR、COM、CANSM、ComM等基本的CAN相關的模塊都配置了解了一遍,雖然中間做了一些架構相關的工作也支持了別的項目的開發,但是每天都會花點時間看一些CAN相關的技術資料,配一些基本的功能,并立馬調試、擼代碼、解決Bug,漸漸的對CAN通信在AutoSAR架構的實現理解也加深了。其中在CANSM的配置中也明白了CAN相關的BusOff以及恢復機制,雖然自己在大學學了一點CAN通信的東西,但一直到配置CAN模塊的時候才算有了全面的了解,之前也做過一些STM32的CAN通信的程序,但是當時也并沒有深入的研究,在和同事測試CAN BusOff以及恢復中漸漸的對CAN通信有了更深的理解,隨后也通過抓取CAN總線上的波形對數據和時間進行了分析,理解了CAN總線的空閑、校驗、位填充、位時間等概念。對于普通CAN信號不帶相關協議和網絡管理的信號)的傳輸模塊配置可參考之前的公眾號《淺析TC277CAN模塊在AutoSAR的應用》。

除了做基本的CAN信號的配置(不帶相關協議和網絡管理的信號),在那段時間里也完成了J1939TP、XCP以及CANNM的配置。在配置J1939TP的時候當時連基本的J1939協議也不是完全懂,在磕磕碰碰中實現了J1939TP的功能,后來也對J1939協議結合在AutoSAR的實現有了基本的認識,雖然不是很透徹,但是基本的原理和實現都明白了。其中走J1939TP的CAN信號在CANIf層后不能直接到PDUR層,必須要經過J1939TP這個模塊,然后將信號傳輸到PDUR,一般走特殊協議的CAN信號都會在CANIf與PDUR之間加一層特殊的協議模塊(J1939TP、UDS等)。

為了滿足一些測試的目的做了XCP的配置,在XCP的配置的過程中更加對AutoSAR的分層理念有了更深的理解,XCP的配置不同于其他的一般CAN信號,直接從CANIf層到XCP進行傳輸,然后與RTE、APP層進行交互。對CAN的一些基本的模塊配置完成后,發現診斷和網絡管理這兩部分也是比較重要的,時至今日,對于診斷模塊的配置也沒有深入的研究,只是簡單的看下課同事配置的CANTP和DCM的東西,這部分后期也會在公眾號內分享。網絡管理模塊大概是19年4月份做的吧,一開始自己對網絡管理和喚醒也不是很懂,剛開始認為喚醒就是網絡管理把CAN模塊的通信喚醒,只要CAN的通信能正常工作就達到了網絡管理和喚醒的目的,后來漸漸的提高了自己的認知,喚醒就是把MCU從睡眠的狀態進入到正常的工作模式,而網絡管理更是一種整車層面的多個ECU的進行通信的策略,在某些特定的情況下實現部分ECU的休眠減少消耗。

之后開始將CANNM和NM功能集成到了配置環境中,并嘗試了一些喚醒的功能,此時只是單純的CAN信號層面實現報文的收發和總線休眠,那個時侯由于自己對整個AutoSAR下的BSWM、ECUM、OS等模塊控制的下電過程還一無所知,因此只是實現了簡單的CAN信號的禁用和開啟,結合AutoSAR的網絡管理流程基本上能跑的通,一些網絡管理相關的狀態機可以根據自己的測試和外部條件進行轉換,后來自己做了整個系統的上下電功能后基本上也可以實現部分網絡管理和喚醒的功能了。一直延續到19年7月份,在利用一些零碎或者特定的時間段下基本上對CAN相關的AutoSAr模塊的整個配置(除了診斷)都熟悉了一遍。

在配置中有好幾個時間段確實遇到了比較大的挑戰,并且那段時間手上還有別的任務,好幾次都在抱怨一群神經病發明了AutoSAR,大家好好手寫代碼不好嗎,抱怨也好,發牢騷也罷,想到自己身上的房貸,想到當初自己從機械專業轉入到汽車軟件開發的初衷,想到未來還有很多人也會有我這樣的煩躁和抱怨,就又老老實實的在看AutoSAR的技術手冊,開始通過各種途徑來請教別人,確實也得到了同事和好多未曾謀面人的幫助,這段配置階段,我就想以后一定要分享一些自己的問題和遇到的坑,盡可能的幫助那些像我一樣笨的AutoSAR開發工程師。有時候感覺從0做一些事情,對人的心理也是一個挑戰。經歷過整個CAN模塊的配置后,感覺心理上對AutoSAR的害怕或者迷茫也減少了,基本知道了它的一些方法論和小竅門,在AutoSAR的配置中自信心也漸漸的增強了,也更加的喜歡和堅定了自己的選擇。

說了幾句廢話,言歸正傳,下面簡單總結下CAN相關的模塊相關配置。

CAN

CAN模塊的配置主要配置CAN的中斷優先級(中斷模式下使用)或者Polling模式下的周期處理函數;CAN消息在控制器中使用了多少個郵箱,進行收發數據;選擇硬件上CAN消息的通道;喚醒功能的使能;CAN的濾波器;CAN通信的時鐘;CANFD相關功能的配置等

CANTrcv

CANTrcv 模塊主要配置CANTrcv外部芯片,一般CANTrcv芯片有兩種模式,一種自帶喚醒功能的CANTrcv和不帶喚醒功能的CANTrcv。帶有喚醒CANTrcv模塊主要的是選擇和喚醒功能相關Pin腳,Pin腳要與硬件上與CANTrcv芯片相連的引腳一一對應。如果是不帶Wak功能的主要選擇Rx的Pin即可。

CANIf

CANIf模塊主要定義了上/下層的CAN信號在發送和接收時候的標準接口。AutoSAR中CANIf模塊一個重要的功能就是和WakeUp有密切的關系,要根據實際情況進行配置。CANIf模塊要對下層的CANDrv和CANTrcv進行定義,區分CANIf下層的交互模塊。如果CANIf中對應的CAN通道配置了CANTrcv則要選擇與之對應的CANTrcv通道,表明該CAN通道是通過CANTrcv發出去的,CANIf的狀態變換也是與CANTrcv密切相關的。如果沒有CANTrcv通道,那么該模塊中不需要添加相應的CANTrcv。CANIf要定義數據接收和發送的Buffer,對于CAN信號收發采用的郵箱也需要定義。同時支持回調函數功能;對于CAN信號在CANIf這一層對上面一層交互的模塊(XCP、PDUR、CANNM、CANTP/J1939等)也要定義清楚。根據實際信號在使用的時候的路由進行選擇即可,XCP的就選XCP,J1939協議的選擇J939TP等等。同時CANSM會對CANIf狀態進行控制,達到對CAN信號的使能和禁用。

CANSM

CANSM配置模塊中對CANSM與CANIf之間進行Mode邊變化的時間做了限制,同時定義了BusOff處理的相關時間參數。定義相關CAN模塊的BusOff段短恢復和長恢復機制。

COM

COM模塊主要為應用層(或者RTE)模塊提供信號傳輸的接口,提供的接口主要是以Signal的形式存在,同時也包含信號組的形式,信號組一般對應應用層的結構體變量,在COM層實現了Signal在I_PDU中的打包和解包;定義了信號傳輸的權限;信號傳輸的模式和信號傳輸的過濾器設置;信號傳輸的延遲時間;超時的監控機制;與其他模塊的調用和被調用函數等。在COM層可以實現信號的組管理,實現信號使能或者禁用的成組控制。

ComM

ComM模塊的主要作用在于:實現對總線的管理和控制。如果網絡管理功能使能的情況下,實現對網絡管理模式的配置和選擇。

PDUR

在PDUR配置中,主要建立COM層與下面具體的傳輸層(CANTP、J1939、CANIf等)之間的路由。也可以將PDUR作為一個網關使用,實現不同ECU在PDUR層的信息傳遞,不需要再往上傳輸在APP做信號傳輸轉換的網關。

XCP

將與XCP相關的PDU進行關聯,XCP的信號可以直接被RTE調用,根據XCP相關的協議在XCP的配置中定義好具體的內容,定義XCP處理的時間相關的參數,時間周期、時間基準等。同時將XCP通信的處理放到特定的處理事件中;定義具體的XCP實現方式(DAQ、STIM等)。

J1939TP

在J1939TP模塊中根據J1939協議的內容配置到具體的參數中即可。

CANNM

CANNM要關聯到具體的CAN通道,同時特定幀喚醒的情況下要關聯具體的CAN報文,定義周期的處理時間和超時時間等。根據實際的需求定義發送的網絡管理報文的具體內容,發送的網絡管理報文一般因OEM不同會有稍微的區別。對于PN網絡管理的相關參數根據具體的需求進行使能和不定義。

NM

NM模塊的主要適應ComM模塊和各種總線的NM模塊,實現函數的Call和Callback;定義是否使能總線網絡管理的協調機制,參考的ComM的總線通道;定義ShutDown的時間,定義總線的同步機制等。由于這個模塊是所有的總線相關的,在實際的配置中主要采用了它的CAN的網絡管理的請求和釋放通信功能。

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

    關注

    5

    文章

    93

    瀏覽量

    17811
  • AUTOSAR
    +關注

    關注

    10

    文章

    350

    瀏覽量

    21479
  • XCP
    XCP
    +關注

    關注

    0

    文章

    11

    瀏覽量

    11715
  • DAQ
    DAQ
    +關注

    關注

    6

    文章

    91

    瀏覽量

    32156
  • 過濾器
    +關注

    關注

    1

    文章

    427

    瀏覽量

    19559
收藏 人收藏

    評論

    相關推薦

    Autosar軟件開發技術概述

    AUTOSAR這個架構有利于車輛電子系統軟件的交換與更新,并為高效管理愈來愈復雜的車輛電子、軟件系統提供了一個基礎。此外,AUTOSAR確保產品及服務質量的同時,提高了成本效率。寶馬集團自2001
    發表于 12-26 10:34

    AUTOSAR CAN網絡管理

    一、背景: AUTOSAR CAN網絡管理框架下,如果所有的節點都按照狀態機要求,ReadSleep狀態下停發NM幀,Prepare
    發表于 07-26 06:47

    基于RT-Thread內核的AUTOSARn32g上的實現方案

    1、基于RT-Thread內核的AUTOSARn32g上的實現隨著小米宣布造車,當下“軟件定義汽車”的趨勢如火如荼,autosar的全稱Automotive Open System
    發表于 07-27 14:30

    在哪里可以找到CAN驅動程序的演示Autosar代碼呢

    我想獲得STM32F4VET6CAN驅動程序的演示Autosar代碼?在哪里可以找到呢
    發表于 12-13 08:10

    LLCE driver是否可以autosar os運行?

    S32DS、RTD和LLCE CAN驅動有對應的工具版本嗎?我想知道,LLCE driver是否可以autosar os運行,是否有關
    發表于 04-18 09:21

    AUTOSAR CAN時鐘同步問題

    請問有沒有AUTOSAR CAN時鐘同步的能運行的代碼,或者有沒有能做這一塊的大佬,主要是CanTsyn和STBM這兩個模塊的。有償,價格都好商量,急需。
    發表于 11-09 00:00

    AUTOSAR_SWS_CAN網絡管理規范標準4.3.1

    AUTOSAR_SWS_CAN網絡管理規范標準4.3.1
    發表于 03-28 17:02 ?13次下載

    CAN網絡管理規范 AUTOSAR CP中文版

    CAN網絡管理規范 AUTOSAR CP中文版免費下載。
    發表于 04-06 16:21 ?0次下載

    NvMAUTOSAR的層次結構

    AUTOSAR的NvM看起來挺難的,特別是配置的時候,一堆參數,都不知道是干什么用的。想去研究它,卻不知如何下手。其實吧,AUTOSAR
    的頭像 發表于 04-21 10:47 ?4013次閱讀

    AUTOSAR CAN網絡管理協議

    AUTOSAR_SWS_CANNetworkManagement AUTOSAR CAN網絡管理協議,4.4.0版本
    發表于 08-01 11:09 ?16次下載

    AutoSARCAN通信網絡管理的概述

    AutoSARCAN通信的網絡管理主要是根據CANNode接收和發送的NMMessage進行該節點在整個網絡的活動的,根據NM Message控制整個網絡對Normal模式和Sle
    的頭像 發表于 01-18 10:21 ?5674次閱讀
    <b class='flag-5'>AutoSAR</b><b class='flag-5'>中</b><b class='flag-5'>CAN</b>通信網絡管理的概述

    AUTOSAR配置的PostBuild、Precompile、Linktime

    AUTOSAR配置軟件,經常可以見到PostBuild、Precompile、Linktime這三個的影子,所以想搞清楚它們的區別,以及知道大概是干什么的。
    的頭像 發表于 07-17 14:56 ?5017次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>配置</b><b class='flag-5'>中</b>的PostBuild、Precompile、Linktime

    一文解析AUTOSAR CAN網絡管理

    AUTOSAR CAN 網絡管理是一個獨立于硬件的協議,只能在 CAN 上使用。它的主要目的是協調網絡的正常運行和總線休眠模式之間的轉換。
    的頭像 發表于 09-09 10:32 ?5571次閱讀
    一文解析<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>CAN</b>網絡管理

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系統設計工具

    AUTOSAR Builder是達索旗下一款基于Eclipse并使用Artop的可擴展工具套件。Artop是由AUTOSAR成員和合作伙伴共同推動的開放的AUTOSAR
    的頭像 發表于 01-08 18:06 ?533次閱讀
    <b class='flag-5'>AUTOSAR</b> Builder—符合<b class='flag-5'>AUTOSAR</b>(CPAP)的嵌入式系統設計<b class='flag-5'>工具</b>

    極海半導體推出AUTOSAR MCAL軟件包和配置工具

    針對G32A14XX系列汽車通用MCU,極海正式推出具備獨立知識產權、完全自主開發的?AUTOSAR MCAL軟件包和配置工具,這標志著極海已具備完善的、高水準的、獨立自主的AUTOSAR
    的頭像 發表于 11-17 16:42 ?352次閱讀
    極海半導體推出<b class='flag-5'>AUTOSAR</b> MCAL軟件包和<b class='flag-5'>配置</b><b class='flag-5'>工具</b>