91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

汽車ECU開發(fā) ? 來源:汽車電子嵌入式 ? 2023-02-02 10:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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

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

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

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

正文

1.Lin報文的發(fā)送機制

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

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

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

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

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

LinIf模塊實現(xiàn)Lin調(diào)度表中報文的周期發(fā)送,且所有報文都是通過調(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ù)失敗則不會發(fā)送Lin報文。

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

繼續(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ù)會首先會檢查PDU所在的PduGroup是否Started了,如果沒有Started,則Com_TriggerTransmit函數(shù)返回E_NOT_OK。、

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

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

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

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

NM報文由CanNm模塊控制發(fā)送,App報文由Com/ComM模塊控制發(fā)送,那么我們怎么保證每次上電/Reset后NM報文首先發(fā)送到總線上去了?

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

Std_ReturnType Nm_GetState(

NetworkHandleType nmNetworkHandle,

Nm_StateType* nmStatePtr,

Nm_ModeType* nmModePtr

)

接口可以獲取當前NM模式和狀態(tài),如果我們在請求ComM到FullCom前先確包NM模式進入到Network狀態(tài)的話,那么NM報文一定會在APP報文之前發(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報文所在的PDU的停止和發(fā)送了?

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

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

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






審核編輯:劉清

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

    關(guān)注

    145

    文章

    2043

    瀏覽量

    135213
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    398

    瀏覽量

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

    關(guān)注

    0

    文章

    101

    瀏覽量

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

    關(guān)注

    4

    文章

    234

    瀏覽量

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

    關(guān)注

    0

    文章

    7

    瀏覽量

    6283

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    三格電子13年老廠家,專注工業(yè)通訊#通信協(xié)議

    通信協(xié)議
    jf_68793483
    發(fā)布于 :2026年03月05日 09:32:44

    松下A6伺服通信協(xié)議介紹

    松下A6伺服通信協(xié)議是工業(yè)自動化領(lǐng)域中廣泛使用的一種高性能通信標準,其設(shè)計旨在實現(xiàn)伺服驅(qū)動器與控制器之間的高效數(shù)據(jù)交互。該協(xié)議基于松下自主開發(fā)的通信架構(gòu),支持多種
    的頭像 發(fā)表于 03-02 17:16 ?505次閱讀
    松下A6伺服<b class='flag-5'>通信協(xié)議</b>介紹

    機器人通信協(xié)議EtherCAT和CAN如何選擇

    當下,雖然行業(yè)中存在許多通信協(xié)議,但業(yè)內(nèi)人士普遍認為,EtherCAT和CAN兩大協(xié)議,是機器人行業(yè)未來最重要的兩大協(xié)議。
    的頭像 發(fā)表于 01-27 15:54 ?2488次閱讀

    車載以太網(wǎng)通信協(xié)議如何測?UT和SP聯(lián)手!

    引言在汽車以太網(wǎng)的通信測試中,面對復雜的協(xié)議分層與交互,一個核心挑戰(zhàn)在于:如何高效、直接地對ECU內(nèi)部的網(wǎng)絡(luò)層、傳輸層等協(xié)議實現(xiàn)進行驗證?僅僅通過外部網(wǎng)絡(luò)接口
    的頭像 發(fā)表于 01-21 10:04 ?1611次閱讀
    車載以太網(wǎng)<b class='flag-5'>通信協(xié)議</b><b class='flag-5'>棧</b>如何測?UT和SP聯(lián)手!

    LIN總線相關(guān)知識

    可以連接16個節(jié)點,無需仲裁。 (2)對硬件要求簡單,僅需UART/SCI 接口,輔以簡單驅(qū)動程序便可實現(xiàn) LIN 協(xié)議。 (3)LIN的一大優(yōu)點是成本低,最大傳輸速率為20Kbps。建議的
    發(fā)表于 12-10 08:14

    LIN協(xié)議電平以及幀結(jié)構(gòu)

    范圍來保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性。 (3)發(fā)送信號電壓必須滿足隱形電平>Vbat80%,發(fā)送信號電壓必須滿足顯性電平Vbat60%,發(fā)送信號電壓必須滿足顯性電平
    發(fā)表于 12-10 07:05

    通信協(xié)議IIC與SPI最全對比分析

    )通信協(xié)議,這意味著總線中的只有一支中心設(shè)備能發(fā)起通信。當SPI主設(shè)備想讀/寫從設(shè)備時,它首先拉低從設(shè)備對應(yīng)的SS線(SS是低電平有效),接著開始發(fā)送工作脈沖到時鐘線上,在相應(yīng)的脈沖時間上,主設(shè)備把信號
    發(fā)表于 12-10 06:04

    Xilinx FPGA串行通信協(xié)議介紹

    Xilinx FPGA因其高性能和低延遲,常用于串行通信接口設(shè)計。本文深入分析了Aurora、PCI Express和Serial RapidIO這三種在Xilinx系統(tǒng)設(shè)計中關(guān)鍵的串行通信協(xié)議。介紹了它們的特性、優(yōu)勢和應(yīng)用場景,以及如何在不同需求下選擇合適的
    的頭像 發(fā)表于 11-14 15:02 ?2532次閱讀
    Xilinx FPGA串行<b class='flag-5'>通信協(xié)議</b>介紹

    分布式能源并網(wǎng)的通信協(xié)議有哪些?

    在分布式能源(如光伏、儲能、微電網(wǎng))并網(wǎng)場景中,通信協(xié)議需滿足 設(shè)備互聯(lián)、數(shù)據(jù)傳輸、遠程控制、調(diào)度協(xié)同 等核心需求,不同協(xié)議因設(shè)計目標不同,適用于從設(shè)備層到調(diào)度層的不同層級。以下按 “國際標準協(xié)議
    的頭像 發(fā)表于 09-18 16:40 ?1572次閱讀
    分布式能源并網(wǎng)的<b class='flag-5'>通信協(xié)議</b>有哪些?

    如何實現(xiàn)安全的AUTOSAR通信

    。未經(jīng)保護的通信鏈路可能面臨數(shù)據(jù)篡改、重放攻擊及冒充攻擊等風險,危及車輛功能的正確性和用戶安全。因此,在AUTOSAR架構(gòu)中建立完備的通信安全機制,已成為行業(yè)共識與技術(shù)剛需。
    的頭像 發(fā)表于 09-08 16:43 ?1237次閱讀

    工業(yè)通信協(xié)議都有哪些?#三格電子

    通信協(xié)議
    三格電子科技
    發(fā)布于 :2025年08月28日 10:35:26

    哪些協(xié)議是工業(yè)通信協(xié)議?#三格電子

    通信協(xié)議
    三格電子科技
    發(fā)布于 :2025年08月27日 14:16:07

    如何在保證數(shù)據(jù)安全的前提下優(yōu)化通信協(xié)議

    產(chǎn)品實拍圖 在保證數(shù)據(jù)安全的前提下優(yōu)化通信協(xié)議,核心是 **“安全機制輕量化、安全與效率協(xié)同設(shè)計、按需適配場景風險”**—— 既不因過度安全(如復雜加密、冗余校驗)犧牲傳輸效率,也不因追求效率(如
    的頭像 發(fā)表于 08-27 09:55 ?723次閱讀
    如何在<b class='flag-5'>保證</b>數(shù)據(jù)安全的前提下優(yōu)化<b class='flag-5'>通信協(xié)議</b>?

    用于各種設(shè)備協(xié)議間做報文轉(zhuǎn)換的網(wǎng)關(guān)是什么

    用于各種設(shè)備協(xié)議間做報文轉(zhuǎn)換的網(wǎng)關(guān)通常被稱為協(xié)議轉(zhuǎn)換網(wǎng)關(guān),也常被稱為工業(yè)協(xié)議網(wǎng)關(guān)(在工業(yè)場景中)或多協(xié)議網(wǎng)關(guān)。它是一種專門用于解決不同設(shè)備、
    的頭像 發(fā)表于 08-11 14:08 ?1026次閱讀
    用于各種設(shè)備<b class='flag-5'>協(xié)議</b>間做<b class='flag-5'>報文</b>轉(zhuǎn)換的網(wǎng)關(guān)是什么

    LIN協(xié)議:汽車電子中的隱形功臣

    在汽車電子通信領(lǐng)域,CAN/CANFD和車載以太網(wǎng)常被提及,但有一個低調(diào)卻不可或缺的協(xié)議LIN,正默默支撐著車窗、車燈等車身系統(tǒng)的智能化控制。LIN
    的頭像 發(fā)表于 07-01 11:40 ?1952次閱讀
    <b class='flag-5'>LIN</b><b class='flag-5'>協(xié)議</b>:汽車電子中的隱形功臣