一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

淺析AutoSAR CAN Stack在配置工具中的實(shí)現(xiàn)

冬至子 ? 來源:Vehicle軟件開發(fā) ? 作者:KTing_CD ? 2023-06-14 14:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CAN****模塊的開發(fā)歷程

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

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

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

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

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

說了幾句廢話,言歸正傳,下面簡單總結(jié)下CAN相關(guān)的模塊相關(guān)配置。

CAN

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

CANTrcv

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

CANIf

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

CANSM

CANSM配置模塊中對CANSM與CANIf之間進(jìn)行Mode邊變化的時間做了限制,同時定義了BusOff處理的相關(guān)時間參數(shù)。定義相關(guān)CAN模塊的BusOff段短恢復(fù)和長恢復(fù)機(jī)制。

COM

COM模塊主要為應(yīng)用層(或者RTE)模塊提供信號傳輸?shù)慕涌?,提供的接口主要是以Signal的形式存在,同時也包含信號組的形式,信號組一般對應(yīng)應(yīng)用層的結(jié)構(gòu)體變量,在COM層實(shí)現(xiàn)了Signal在I_PDU中的打包和解包;定義了信號傳輸?shù)臋?quán)限;信號傳輸?shù)哪J胶托盘杺鬏數(shù)倪^濾器設(shè)置;信號傳輸?shù)难舆t時間;超時的監(jiān)控機(jī)制;與其他模塊的調(diào)用和被調(diào)用函數(shù)等。在COM層可以實(shí)現(xiàn)信號的組管理,實(shí)現(xiàn)信號使能或者禁用的成組控制。

ComM

ComM模塊的主要作用在于:實(shí)現(xiàn)對總線的管理和控制。如果網(wǎng)絡(luò)管理功能使能的情況下,實(shí)現(xiàn)對網(wǎng)絡(luò)管理模式的配置和選擇。

PDUR

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

XCP

將與XCP相關(guān)的PDU進(jìn)行關(guān)聯(lián),XCP的信號可以直接被RTE調(diào)用,根據(jù)XCP相關(guān)的協(xié)議在XCP的配置中定義好具體的內(nèi)容,定義XCP處理的時間相關(guān)的參數(shù),時間周期、時間基準(zhǔn)等。同時將XCP通信的處理放到特定的處理事件中;定義具體的XCP實(shí)現(xiàn)方式(DAQ、STIM等)。

J1939TP

在J1939TP模塊中根據(jù)J1939協(xié)議的內(nèi)容配置到具體的參數(shù)中即可。

CANNM

CANNM要關(guān)聯(lián)到具體的CAN通道,同時特定幀喚醒的情況下要關(guān)聯(lián)具體的CAN報文,定義周期的處理時間和超時時間等。根據(jù)實(shí)際的需求定義發(fā)送的網(wǎng)絡(luò)管理報文的具體內(nèi)容,發(fā)送的網(wǎng)絡(luò)管理報文一般因OEM不同會有稍微的區(qū)別。對于PN網(wǎng)絡(luò)管理的相關(guān)參數(shù)根據(jù)具體的需求進(jìn)行使能和不定義。

NM

NM模塊的主要適應(yīng)ComM模塊和各種總線的NM模塊,實(shí)現(xiàn)函數(shù)的Call和Callback;定義是否使能總線網(wǎng)絡(luò)管理的協(xié)調(diào)機(jī)制,參考的ComM的總線通道;定義ShutDown的時間,定義總線的同步機(jī)制等。由于這個模塊是所有的總線相關(guān)的,在實(shí)際的配置中主要采用了它的CAN的網(wǎng)絡(luò)管理的請求和釋放通信功能。

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

    關(guān)注

    5

    文章

    97

    瀏覽量

    18387
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    376

    瀏覽量

    22554
  • XCP
    XCP
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    11894
  • DAQ
    DAQ
    +關(guān)注

    關(guān)注

    6

    文章

    101

    瀏覽量

    32816
  • 過濾器
    +關(guān)注

    關(guān)注

    1

    文章

    438

    瀏覽量

    20325
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    一、背景: AUTOSAR CAN網(wǎng)絡(luò)管理框架下,如果所有的節(jié)點(diǎn)都按照狀態(tài)機(jī)要求,ReadSleep狀態(tài)下停發(fā)NM幀,Prepare
    發(fā)表于 07-26 06:47

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

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

    LLCE driver是否可以autosar os運(yùn)行?

    S32DS、RTD和LLCE CAN驅(qū)動有對應(yīng)的工具版本嗎?我想知道,LLCE driver是否可以autosar os運(yùn)行,是否有關(guān)
    發(fā)表于 04-18 09:21

    AUTOSAR CAN時鐘同步問題

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

    AUTOSAR_SWS_CAN網(wǎng)絡(luò)管理規(guī)范標(biāo)準(zhǔn)4.3.1

    AUTOSAR_SWS_CAN網(wǎng)絡(luò)管理規(guī)范標(biāo)準(zhǔn)4.3.1
    發(fā)表于 03-28 17:02 ?13次下載

    CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版

    CAN網(wǎng)絡(luò)管理規(guī)范 AUTOSAR CP中文版免費(fèi)下載。
    發(fā)表于 04-06 16:21 ?0次下載

    NvMAUTOSAR的層次結(jié)構(gòu)

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

    AUTOSAR CAN網(wǎng)絡(luò)管理協(xié)議

    AUTOSAR_SWS_CANNetworkManagement AUTOSAR CAN網(wǎng)絡(luò)管理協(xié)議,4.4.0版本
    發(fā)表于 08-01 11:09 ?16次下載

    AutoSARCAN通信網(wǎng)絡(luò)管理的概述

    AutoSARCAN通信的網(wǎng)絡(luò)管理主要是根據(jù)CANNode接收和發(fā)送的NMMessage進(jìn)行該節(jié)點(diǎn)在整個網(wǎng)絡(luò)的活動的,根據(jù)NM Message控制整個網(wǎng)絡(luò)對Normal模式和Sle
    的頭像 發(fā)表于 01-18 10:21 ?6899次閱讀
    <b class='flag-5'>AutoSAR</b><b class='flag-5'>中</b><b class='flag-5'>CAN</b>通信網(wǎng)絡(luò)管理的概述

    AUTOSAR配置的PostBuild、Precompile、Linktime

    AUTOSAR配置軟件,經(jīng)??梢砸姷絇ostBuild、Precompile、Linktime這三個的影子,所以想搞清楚它們的區(qū)別,以及知道大概是干什么的。
    的頭像 發(fā)表于 07-17 14:56 ?7271次閱讀
    <b class='flag-5'>AUTOSAR</b><b class='flag-5'>配置</b><b class='flag-5'>中</b>的PostBuild、Precompile、Linktime

    一文解析AUTOSAR CAN網(wǎng)絡(luò)管理

    AUTOSAR CAN 網(wǎng)絡(luò)管理是一個獨(dú)立于硬件的協(xié)議,只能在 CAN 上使用。它的主要目的是協(xié)調(diào)網(wǎng)絡(luò)的正常運(yùn)行和總線休眠模式之間的轉(zhuǎn)換。
    的頭像 發(fā)表于 09-09 10:32 ?7601次閱讀
    一文解析<b class='flag-5'>AUTOSAR</b> <b class='flag-5'>CAN</b>網(wǎng)絡(luò)管理

    AUTOSAR Builder—符合AUTOSAR(CPAP)的嵌入式系統(tǒng)設(shè)計工具

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

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

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

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

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

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

    AUTOSAR(Automotive Open System Architecture)汽車開放系統(tǒng)架構(gòu)旨在實(shí)現(xiàn)汽車電子的軟硬件分離,降低ECU軟件開發(fā)的復(fù)雜度,提高軟件可重用性。 一、通信協(xié)議棧
    的頭像 發(fā)表于 12-17 15:03 ?1071次閱讀