吴忠躺衫网络科技有限公司

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

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

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

AUTOSAR LIN通信協(xié)議棧怎么保證NM報(bào)文先發(fā)送的?

汽車ECU開發(fā) ? 來源:汽車電子嵌入式 ? 2023-02-02 10:19 ? 次閱讀

前言

最近在研究AUTOSAR通信協(xié)議棧的時(shí)候產(chǎn)生了以下幾個(gè)問題:

(1)Lin數(shù)據(jù)由linif的調(diào)度表觸發(fā)發(fā)送的話,com怎么控制Lin類型的PDU停止和發(fā)送了?

(2)怎么保證NM報(bào)文先發(fā)送的?

本文先梳理一遍通信協(xié)議棧的一些關(guān)鍵概念及重要機(jī)制,然后回答這些問題。

正文

1.Lin報(bào)文的發(fā)送機(jī)制

Lin報(bào)文的發(fā)送機(jī)制在<<Can/Lin報(bào)文的觸發(fā)發(fā)送(Trigger Transmit) >>一文中已經(jīng)詳細(xì)講解過,這里再簡單回顧下。

16824096-a29a-11ed-bfe3-dac502259ad0.png

Lin報(bào)文的周期發(fā)送是通過調(diào)度表實(shí)現(xiàn)的,而Lin調(diào)度表存在于LinIf模塊,LinIf模塊在周期調(diào)用調(diào)度表的時(shí)候通過callback的方式實(shí)現(xiàn)IPDU的trigger transmit,也就是向上獲取到sdu數(shù)據(jù),然后調(diào)用Lin_SendFrame發(fā)送報(bào)文。調(diào)度表中的報(bào)文都是需要周期發(fā)送處理的報(bào)文,對(duì)于偶發(fā)sporadic frame的發(fā)送,COM --> PDUR -->CanIf_Transmit中設(shè)置發(fā)送flag,實(shí)現(xiàn)偶發(fā)幀發(fā)送。我們這里主要討論Lin周期報(bào)文的發(fā)送機(jī)制。

1693418e-a29a-11ed-bfe3-dac502259ad0.png

16b34ed4-a29a-11ed-bfe3-dac502259ad0.png

LinIf模塊實(shí)現(xiàn)Lin調(diào)度表中報(bào)文的周期發(fā)送,且所有報(bào)文都是通過調(diào)用pdur模塊的PduR_TriggerTransmit的callback函數(shù)完成sdu數(shù)據(jù)的獲取。

16c5e59e-a29a-11ed-bfe3-dac502259ad0.png

16e314e8-a29a-11ed-bfe3-dac502259ad0.png

LinIf模塊調(diào)用PduR_LinIfTriggerTransmit函數(shù)來獲取PDU數(shù)據(jù),如果獲取數(shù)據(jù)成功,則調(diào)用LinIf_SendFrame往LinDriver發(fā)送數(shù)據(jù),如果獲取數(shù)據(jù)失敗則不會(huì)發(fā)送Lin報(bào)文。

那也就是說,如果找到PduR_LinIfTriggerTransmit返回失敗的原因也就找到了LinIf停止發(fā)送報(bào)文的原因。

繼續(xù)往下分析PduR_LinIfTriggerTransmit函數(shù),PduR_LinIfTriggerTransmit --> Com_TriggerTransmit

分析Com_TriggerTransmit函數(shù)

16f2a282-a29a-11ed-bfe3-dac502259ad0.png

17044910-a29a-11ed-bfe3-dac502259ad0.png

Com_TriggerTransmit函數(shù)會(huì)首先會(huì)檢查PDU所在的PduGroup是否Started了,如果沒有Started,則Com_TriggerTransmit函數(shù)返回E_NOT_OK。、

也就是說如果PDU所在的PduGroup沒有Started則Com_TriggerTransmit返回E_NOT_OK,PduR_LinIfTriggerTransmit返回失敗,則LinIf_ManiFunction_<>不會(huì)往LinDriver發(fā)送數(shù)據(jù)。

2.NM報(bào)文和App報(bào)文的發(fā)送

171a1ae2-a29a-11ed-bfe3-dac502259ad0.png

如果我們使用Can網(wǎng)絡(luò)管理的話,那么Can網(wǎng)絡(luò)管理報(bào)文由CanNm模塊控制發(fā)送,而應(yīng)用報(bào)文的發(fā)送是由Com模塊和ComM模塊協(xié)同管理發(fā)送的,那么問題就來了:

NM報(bào)文由CanNm模塊控制發(fā)送,App報(bào)文由Com/ComM模塊控制發(fā)送,那么我們?cè)趺幢WC每次上電/Reset后NM報(bào)文首先發(fā)送到總線上去了

AUTOSAR標(biāo)準(zhǔn)里面沒有規(guī)定NM報(bào)文和APP報(bào)文誰先發(fā)送出去的配置。但是NM模塊提供了一個(gè)

Std_ReturnType Nm_GetState(

NetworkHandleType nmNetworkHandle,

Nm_StateType* nmStatePtr,

Nm_ModeType* nmModePtr

)

接口可以獲取當(dāng)前NM模式和狀態(tài),如果我們?cè)谡?qǐng)求ComM到FullCom前先確包NM模式進(jìn)入到Network狀態(tài)的話,那么NM報(bào)文一定會(huì)在APP報(bào)文之前發(fā)送出去。

Example:

Nm_StateType NmCurrentState;


Nm_ModeType NmCurrentMode; Nm_GetState(ComMConf_ComMChannel_ComMChannel_Can_Network_0,&NmCurrentState,&NmCurrentMode);


if(( NM_MODE_SYNCHRONIZE == NmCurrentMode )||( NM_MODE_NETWORK == NmCurrentMode ))


{


    ComM_RequestComMode(ComMConf_ComMUser_ComMUser_Can_Network_0,COMM_FULL_COMMUNICATION);


    ComM_RequestComMode(ComMConf_ComMUser_ComMUser_Can_Network_1,COMM_FULL_COMMUNICATION);


}

3.問題回答

問題1:Lin數(shù)據(jù)由Linif的調(diào)度表觸發(fā)發(fā)送的話,com怎么控制所有Lin報(bào)文所在的PDU的停止和發(fā)送了?

:LinIf通過LinIf_MainFunction --> PduR_LinIfTriggerTransmit --> Com_TriggerTransmit獲取Lin報(bào)文的PDU數(shù)據(jù),如果獲取失敗則不會(huì)調(diào)用LinIf_SendFrame發(fā)送報(bào)文。而Com_TriggerTransmit函數(shù)在獲取PDU數(shù)據(jù)時(shí)首先會(huì)檢查PDU所在的PduGroup是否Started,如果沒有Started則Com_TriggerTransmit返回E_NOT_OK,最終LinIf_MainFunction停止往驅(qū)動(dòng)發(fā)送報(bào)文,也就停發(fā)Lin報(bào)文。也就是說,我們通過BswM調(diào)用Com模塊提供的Com_IpduGroupStart,Com_IpduGroupStop同樣能控制Lin報(bào)文的停止和發(fā)送

問題2:怎么保證NM報(bào)文先發(fā)送的?

:需要手寫代碼或者通過BswM模式控制和仲裁實(shí)現(xiàn)。具體就是在請(qǐng)求APP報(bào)文所在Network進(jìn)入到FullCom之前確保NM模式已經(jīng)進(jìn)入了NetWork狀態(tài)。






審核編輯:劉清

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

    關(guān)注

    145

    文章

    1955

    瀏覽量

    131099
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    363

    瀏覽量

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

    關(guān)注

    0

    文章

    94

    瀏覽量

    17033
  • LIN
    LIN
    +關(guān)注

    關(guān)注

    4

    文章

    219

    瀏覽量

    40390
  • 通信協(xié)議棧
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6191

原文標(biāo)題:AUTOSAR LIN通信協(xié)議棧問題總結(jié)

文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PROFINET通訊協(xié)議報(bào)文解析

    PROFINET是一種廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的通信協(xié)議,由PROFIBUS國際組織開發(fā),基于以太網(wǎng)技術(shù),支持工業(yè)控制系統(tǒng)和設(shè)備(如傳感器、執(zhí)行器和其他控制器)之間的通信。本文將對(duì)PROFINET
    的頭像 發(fā)表于 02-03 14:29 ?123次閱讀

    ADS1278通過SPI通信協(xié)議讀取轉(zhuǎn)換數(shù)據(jù)時(shí)遇到的疑問求解

    我用的是TI的ADS1278進(jìn)行六通道電壓同步采樣,工作在SPI的TDM,離散數(shù)據(jù)模式。在通過SPI通信協(xié)議讀取轉(zhuǎn)換數(shù)據(jù)時(shí),采用了下面的讀取方法: 通過DSP處理器SPI接口MISO讀取
    發(fā)表于 01-14 06:31

    總線通信協(xié)議解析及應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,總線通信協(xié)議扮演著至關(guān)重要的角色。它們定義了數(shù)據(jù)如何在處理器、內(nèi)存、輸入/輸出設(shè)備等組件之間傳輸。 總線通信協(xié)議的基本概念 總線通信協(xié)議是一組規(guī)則,它規(guī)定了數(shù)據(jù)在系統(tǒng)總線上的傳輸
    的頭像 發(fā)表于 12-31 10:07 ?216次閱讀

    AUTOSAR通信對(duì)自動(dòng)駕駛的影響 AUTOSAR通信與嵌入式系統(tǒng)設(shè)計(jì)

    AUTOSAR通信與嵌入式系統(tǒng)設(shè)計(jì)緊密相連,共同推動(dòng)著自動(dòng)駕駛技術(shù)的發(fā)展。 AUTOSAR通信對(duì)自動(dòng)駕駛的影響 提高通信效率和可靠性
    的頭像 發(fā)表于 12-17 15:09 ?373次閱讀

    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 ?488次閱讀

    AUTOSAR通信堆棧的配置 AUTOSAR通信模塊測(cè)試方法

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

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

    的概念,允許應(yīng)用層組件(如軟件組件和ECU抽象層)通過定義良好的接口進(jìn)行通信。 1. 通信服務(wù): AUTOSAR提供了一系列通信服務(wù),包括復(fù)雜驅(qū)動(dòng)
    的頭像 發(fā)表于 12-17 14:57 ?370次閱讀

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

    通信協(xié)議是一個(gè)復(fù)雜的系統(tǒng),它涵蓋了多種通信方式和模塊,以實(shí)現(xiàn)車內(nèi)ECU之間的高效、可靠的數(shù)據(jù)交換。以下是對(duì)AUTOSAR通信協(xié)議的解析及實(shí)
    的頭像 發(fā)表于 12-17 14:54 ?1034次閱讀

    串口通信協(xié)議解析 串口通信應(yīng)用實(shí)例

    串口通信協(xié)議解析 串口通信協(xié)議是指規(guī)定了數(shù)據(jù)包的內(nèi)容,內(nèi)容包含了起始位、主體數(shù)據(jù)、校驗(yàn)位及停止位,雙方需要約定一致的數(shù)據(jù)包格式才能正常收發(fā)數(shù)據(jù)的有關(guān)規(guī)范。以下是串口通信協(xié)議的介紹: 基本概念
    的頭像 發(fā)表于 11-21 17:03 ?714次閱讀

    PROFINET通信協(xié)議是什么

    PROFINET通信協(xié)議是一種專為工業(yè)自動(dòng)化領(lǐng)域設(shè)計(jì)的基于以太網(wǎng)的實(shí)時(shí)通信協(xié)議。以下是對(duì)PROFINET通信協(xié)議的詳細(xì)解析,包括其定義、特點(diǎn)、體系結(jié)構(gòu)、工作原理、通信方式、應(yīng)用領(lǐng)域以及
    的頭像 發(fā)表于 09-25 18:13 ?2560次閱讀

    簡單認(rèn)識(shí)UART通信協(xié)議

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)通信協(xié)議是一種常見的串行通信協(xié)議,廣泛應(yīng)用于計(jì)算機(jī)、嵌入式系統(tǒng)、傳感器、無線通信
    的頭像 發(fā)表于 07-25 18:07 ?1567次閱讀

    CAN報(bào)文為什么會(huì)發(fā)送失敗?

    CAN總線調(diào)試過程中出現(xiàn)報(bào)文發(fā)送失敗。很多工程師都對(duì)此只知其一不知其二,今天我們就以CAN報(bào)文發(fā)送失敗的問題來做一次探討。在了解CAN報(bào)文
    的頭像 發(fā)表于 04-12 08:25 ?2311次閱讀
    CAN<b class='flag-5'>報(bào)文</b>為什么會(huì)<b class='flag-5'>發(fā)送</b>失敗?

    UART串口通信協(xié)議是什么?

    ,廣泛應(yīng)用于嵌入式領(lǐng)域。 在UART串口通信協(xié)議中,數(shù)據(jù)以字節(jié)的形式進(jìn)行傳輸。發(fā)送和接收端的通信流程如下: 1、通信波特率設(shè)置:發(fā)送端和接收
    的頭像 發(fā)表于 03-19 17:26 ?1549次閱讀

    AUTOSAR平臺(tái)研究報(bào)告:國產(chǎn)基礎(chǔ)軟件+芯片全方案加快量產(chǎn)

    2023年12月7日,AUTOSAR組織發(fā)布了最新版本AUTOSAR R23-11標(biāo)準(zhǔn),從功能角度方面,更新主要集中在信息安全、功能安全以及通信協(xié)議等三個(gè)方面。
    的頭像 發(fā)表于 02-21 15:30 ?3358次閱讀
    <b class='flag-5'>AUTOSAR</b>平臺(tái)研究報(bào)告:國產(chǎn)基礎(chǔ)軟件+芯片全<b class='flag-5'>棧</b>方案加快量產(chǎn)

    串行通信協(xié)議的帶寬是指什么?

    在SPI和I2C等串行通信協(xié)議,兩者帶寬不一樣,這里的帶寬是指什么,傳輸速率還是其他什么?如果要求很高的傳輸速率,那么要求發(fā)送端要能很快的發(fā)送數(shù)據(jù),要有很短的上升沿下降沿時(shí)間,高低位電平也維持很短
    發(fā)表于 02-08 18:04
    百家乐官网所有技巧| 凌龙棋牌游戏大厅| 博彩网址| 百家乐官网波音平台开户导航| 百家乐官网技巧真人荷官网| 百家乐赌博现金网平台排名| 悠游棋牌游戏| 左贡县| 百家乐官网永利娱乐网| 百家乐那个平台好| 娱乐城注册送68| 百家乐官网电投网站| 澳门百家乐娱乐城信誉如何| 大发888赌城| 百家乐官网稳赢赌法| 澳门百家乐打缆| 大发888公司赌场| 百家乐官网说明| 澳门百家乐赢钱公式不倒翁 | 如何赢百家乐官网的玩法技巧和规则| 新锦江百家乐赌场娱乐网规则| 长寿区| 真人百家乐代理合作| 威尼斯人娱乐城求助| 百家乐官网公式球打法| 实战百家乐官网的玩法技巧和规则 | 大发888收获| 网上百家乐官网有哪些玩法| 百家乐生活馆| 新巴尔虎右旗| 百家乐赢赌场百家乐| 必博网| 网上百家乐官网哪家较安全| 君怡百家乐的玩法技巧和规则 | 蒙特卡罗国际| 澳门百家乐官网手机软件| 大发888亚洲城娱乐城| 百家乐官网园云鼎娱乐平台| fl水果机教程| 保单机百家乐官网破解方法| 百家乐澳门百家乐澳门赌场|