版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
AUTOSAR中CAN通信協(xié)議棧配置詳解AUTOSAR的通信協(xié)議棧是由BSW通信服務(wù),通信硬件抽象和通信驅(qū)動程序組成。ServicesLayerECUAbsLayerMCAILayerServicesLayerECUAbsLayerMCAILayer圖1AUTOSAR通信協(xié)議棧的組件COM模塊AUTOSARCOM是位于RTE和PduR之間的服務(wù)層模塊,主要用于與RTE之間的信號交互,對信號進(jìn)行打包和解包。另外在該模塊中還可以配置IPDU的通信周期、通信周期偏移量、IPDUGroup等。PduR模塊PduR的作用是為通信協(xié)議棧中的不同總線的IPDU提供路由路徑。例如它將接收的IPDU路由至COM、Dcm等模塊,或者將COM模塊需要發(fā)送的IPDU路由至CanIf模塊,最后傳送至芯片的CANDriver,將信號發(fā)送至總線。CanTp模塊Tp表示傳輸協(xié)議。該模塊是特定于總線,其配置取決于基礎(chǔ)總線協(xié)議,可以是CAN、LIN、CANFD等總線。該模塊主要用于長報文的分段發(fā)送,以及對分段報文進(jìn)行重組。BusSM模塊總線狀態(tài)管理模塊負(fù)責(zé)相應(yīng)總線狀態(tài)機(jī)的管理和總線故障的處理。它可以基于CAN總線的CanSM,或者是基于LIN總線的LinSM等。BusTrcvDriver模塊它是ECU抽象層的一部分。它可以是用于CAN收發(fā)器的CanTrcv,用于以太網(wǎng)收發(fā)器的EthTrcv,用于Flexray收發(fā)器的FrTrcv等。此模塊用于對收發(fā)器進(jìn)行初始化配置,它提供獨(dú)立于控制器硬件的用于啟動傳輸?shù)姆?wù)和用于通知接收事件的回調(diào)函數(shù)。BusDriver該模塊是AUTOSARMCAL層的一部分(例如:CanDrv,LinDrv,F(xiàn)rDrv),它實際上與ECU的底層硬件進(jìn)行交互,并為其上層提供獨(dú)立于硬件的接口。此模塊取決于硬件,并且驅(qū)動程序代碼可能會根據(jù)基礎(chǔ)硬件而有所不同。BusIf是唯一可以訪問此總線驅(qū)動程序的模塊。CAN總線的COM配置實施下面我們來看看CAN通信協(xié)議棧,如下圖2所示,包括Com、PduR、CanTp、CanSm、CanIf、CANDriver等模塊,其中COM與PduR模塊是通用的,其功能與總線銅線協(xié)議無關(guān)。Com .CansmCanTp ■CanIfCANDriver圖2AUTOSARCAN通信協(xié)議棧下面來詳細(xì)聊聊各個模塊的配置選項。COM模塊配置的COM模塊基本目的是在上層RTE層和下層PDU路由器之間建立系統(tǒng)通信,而不考慮通信協(xié)議。這可以通過定義和配置四個不同的對象來完成。1、I-PDUI-PDU包含從通信棧中某一模塊接收到的消息或需要發(fā)送給某一模塊的消息。2、I-PDU組如果我們有大量的I-PDU,則可以將它們分為不同的組,通常至少分為兩個組,一個為TxGroup,一個為RxGroup。3、信號I-DPU可以包含一個或多個信號,可以理解為一個I-PDU為一幀CAN消息,信號就是dbc中定義的。4、信號組如果需要將多個信號發(fā)送到同一I-PDU,則信號可以進(jìn)一步形成信號組。COM模塊包含兩個主要的部分,分別為ComGeneral和ComConfig。ComGeneral(多重性:1)1、ComConfigurationUseDet:如果此布爾參數(shù)設(shè)置為ON,則任何當(dāng)COM模塊出現(xiàn)錯誤時,會調(diào)用Det_ReportError函數(shù),記錄在DET模塊中(多重性:0.1)。2、ComCancellationSupport:這是一個布爾參數(shù),用于啟用/禁用用于取消PDU傳輸請求的取消功能。(多重性:0.1)。3、ComEnableSignalGroupArrayApi:這是一個布爾參數(shù),用于激活/禁用信號組陣列訪問API。(多重性:1)。4、ComSupportedIPduGroups:它是一個整數(shù)參數(shù),用于說明所支持的IPDU組的最大數(shù)量。(多重性:1)。5、ComVersionInfoApi:布爾參數(shù),用于激活/禁用版本信息APICom_GetVersionInfo。(多重性:1)。6、ComRetryFailedTransmitRequests:如果此參數(shù)設(shè)置為true,則啟用重試失敗的傳輸請求。(多重性:0.1)。7、ComEnableMDTForCyclicTransmission:如果啟用此選項,則它將在I-PDU的循環(huán)傳輸和重復(fù)傳輸之間提供最小延遲時間監(jiān)視。(多重性:0.1)。ComConfig(多重性:0.1)它包含四個容器,分別為ComSignals、ComIPdus、ComIPduGroups、ComSignalGroups。它還具有用于傳輸模式配置,信號網(wǎng)關(guān)配置,時基配置和過濾器參數(shù)配置的配置參數(shù)。Comlpdu(多重性:1)該容器用于為不同的IPDU參數(shù)提供定義,如果沒有該參數(shù),則無法通過COM模塊進(jìn)行通信。ComIPdu也通過ComPduIdRef鏈接到PDU。I-PDU包含一個或多個信號和/或信號組。以下是ComIpdu的一些基本屬性。1、ComIPduHandleId:這是分配為該IPDU的ID的數(shù)字值。此ID用于在各種發(fā)送和接收API調(diào)用以及相應(yīng)的回調(diào)API中引用此IPDU。(多重性:0.1)。2、ComPduIdRef:它提供對COM棧的全局PDU結(jié)構(gòu)的引用。(多重性:1)。3、ComIPduGroupRef:它是指IPDU所屬的IPDU組。(多重性:0...*)。4、ComIPduSignalRef:提供對該IPDU中包含的所有信號的引用。一個IPDU可以包含一個或多個單獨(dú)的信號。(多重性:0…*)。、5、ComIPduSignalGroupRef:提供對此IPDU中包含的所有信號組的引用(多重性:0…*)6、ComlPduCallout:此參數(shù)可定義相應(yīng)I-PDU的callout函數(shù)的名稱,該函數(shù)在接收IPDU時或在發(fā)送PDU之前調(diào)用。(多重性:0…1)。7、ComlPduDirection:定義I-PDU是為發(fā)送(SEND)PDU還是為接收(RECEIVE)PDU。(多重性:1)。8、ComIPduSignalProcessing:用于配置信號是立即處理還是周期性處理,分別對應(yīng)immediate或DEFERRED模式。(多重性:1)。如果將ComIPduDirection設(shè)置為SEND,則需要設(shè)置其他參數(shù),例如傳輸是周期的還是混合型的等等。這是通過添加ComTxIPdu對象來添加的。ComlpduGroup(多重性:1)它包含COM模塊的IPDU組的配置參數(shù)。如果不包含ComIPduGroup容器,則未定義IPDU組。在這種情況下,無法通過COM模塊進(jìn)行通信。(多重性:1)1、ComIPduGroupHandleId:用作此IPDU組ID的數(shù)值。API調(diào)用需要它來啟動和停止IPDU組。(多重性:1)2、ComIPduGroupGroupRef:它提供對包括該IPDU組的所有IPDU組的引用。(多重性:0…*)ComSignalIPDU可以由一個或多個信號組成。來自RTE不同應(yīng)用程序的這些信號在被傳輸?shù)絇duR之前被打包到PDU中。該容器提供各種參數(shù)來配置PDU中的信號位位置,信號位大小和其他屬性。1、ComHandleId:這是分配給每個信號ID的數(shù)字值。與信號操作有關(guān)的不同API調(diào)用需要它。(多重性:0…1)。2、ComTimeoutFactor:它定義了監(jiān)視的超時時間。(多重性:0..1)3、ComTransferProperty:以下選項定義此信號是否可以觸發(fā)相應(yīng)IPDU的傳輸;(多重性:0…1)我們可以設(shè)置以下五個選項之一:TRIGGEREDPENDINGTRIGGERED_ON_CHANGE,TRIGGERED_WITHOUT_REPETITIONTRIGGERED_ON_CHANGE_WITHOUT_REPETITION4、ComBitPosition:指出信號在IPDU中的開始位置,(多重性:1)。5、ComBitSize:它定義信號的大?。ㄒ晕粸閱挝唬#ǘ嘀匦裕?...1)6、ComSignalEndianess:定義信號網(wǎng)絡(luò)表示的字節(jié)排序??梢允荁IG_ENDIAN,LITTLE_ENDIAN,OPAQUE。(多重性:0…1)7、ComSignalInitValue:用于設(shè)置信號的初始值。(多重性:0…1)8、ComSignalLength:它指定UINT8[n]類型的n(以字節(jié)為單位:1...8)。對于其他類型,它將被忽略。(多重性:0…1)9、ComSignalType:它指定符合BOOTEAN,SINT8,UINT8等。(多重性:1)10、ComTimeoutNotification:定義發(fā)生超時時在發(fā)送方或接收方要調(diào)用的函數(shù)的名稱(多重性:0…1)ComSignalGroup然后,當(dāng)我們需要向同一IPDu發(fā)送或接收多個信號時,可以將這些信號組合在一起以形成一個信號組。此容器包含名稱與ComSignal容器相似的參數(shù),并且對信號組具有完全相同的作用。因此,在本節(jié)中,我僅提及參數(shù)名稱,要了解其行為,請參閱ComSignal部分。ComHandleId(多重性:0…1)ComTimeoutFactor(多重性:0…1)ComFirstTimeoutFactor(多重性:0…1)ComTransferProperty(多重性:0…1)ComNotification(多重性:0...1)ComInvalidNotification(多重性:0...1)ComErrorNotification(多重性:0...1)ComTimeoutNotification(多重性:0…1)PDU路由器(PduR)PduR負(fù)責(zé)將PDU路由到特定的總線接口。在PduR之上的所有層中,所有PDU都是獨(dú)立于協(xié)議的。在PduR之下的所有PDU都屬于特定的協(xié)議接口模塊,PduR模塊為主要容器提供以下參數(shù)配置。PduRBswModules(多重性:0...*)每個容器都描述了PDU路由器必須連接的特定BSW模塊。添加PduRBswModule時,容器的簡稱必須與Bsw模塊的名稱匹配,例如CanIf。PdurGeneral(多重性:1)這是PduR模塊的子容器,它指定PDU路由器的常規(guī)配置參數(shù)。以下是一些基本配置參數(shù)。1、PduRDevErrorDetect:如果啟用,它將默認(rèn)錯誤跟蹤器(Det)檢測和通知打開。(多重性:1)2、PduRVersionInfoApi:如果設(shè)置為true,貝UPduR_GetVersionInfoAPI可用。(多重性:1)PduRRoutingTables(多重性:1)它表示路由路徑表。此路由表允許使用多個配置,這些配置用于在同一配置中創(chuàng)建多個路由表。1、PduRConfigurationld:它提供了使用PduRAPI讀取的PduR配置的配置的標(biāo)識。(多重性:1)2、PduRMaxRoutingPathCnt:給出所有路由表中最大路由路徑數(shù)。(多重性:1)3、PduRMaxRoutingTableCnt:它給出了路由表的最大數(shù)量。(多重性:1)PduRSrcPdu這是PduRRoutingPath容器的子容器,它指定要路由的PDU的源。1、PduRSourcePduHandleld:這是PDU路由器分配的PDU標(biāo)識符。(多重性:1)2、PduRSrcPduRef:此參數(shù)提供對唯一PDU標(biāo)識符的引用,該標(biāo)識符表示PDU的源地址。(多重性:1)PduRDestPdu這是PduRRoutingPath容器的子容器,并為要路由的PDU指定一個目的地。1、PduRDestPduHandleld:由PDU路由器分配的PDU標(biāo)識符,通信接口和傳輸協(xié)議模塊使用該P(yáng)DU標(biāo)識符進(jìn)行確認(rèn)。(多重性:0...1)2、PduRDestPduDataProvision:此參數(shù)指定如何以PDU_DIRECT或PDUR_TRIGGERTRANSMIT提供數(shù)據(jù)。(多重性:0…1)3、PduRDestPduRef:它提供參考唯一的PDU標(biāo)識符,表示PDU路由的目的地(多重性:1)4、PduRDestTxBufferRef:提供對用于單幀路由的通信接口網(wǎng)關(guān)和傳輸協(xié)議網(wǎng)關(guān)所需的緩沖區(qū)的引用。(多重性:0…1)CAN狀態(tài)管理器(CanSM)CAN狀態(tài)管理器(CanSM)是通信服務(wù)層的成員,該層與通信硬件抽象層和系統(tǒng)服務(wù)層進(jìn)行交互。CanSM模塊負(fù)責(zé)CAN狀態(tài)機(jī)的管理,包括CanTrcv、CanIf、CANDriver的狀態(tài)機(jī)切換。CanSM模塊具有以下容器用于其配置。CanSMGeneral(多重性:1)它包含CanSM模塊的通用預(yù)配置參數(shù)。1、CanSMDevErrorDetect:用于打開或關(guān)閉開發(fā)錯誤檢測API是否可以調(diào)用。(多重性:1)2、CanSMMainFunctionTimePeriod:它定義MainFunction的循環(huán)周期(單位為秒)(多重性:1)3、CanSMVersionInfoApi:用于打開或關(guān)閉版本信息APICanSM_GetVersionInfo。(多重性:1)CanSMManagerNetwork(多重性:1...*)該容器包含用于確定底層CanController(即每個CAN網(wǎng)絡(luò))處理方式的CAN網(wǎng)絡(luò)特定參數(shù)。1、CanSMModeRequestRepetitionTime:它確定CanSM模塊將使用CanIf模塊的API重復(fù)模式更改請求的持續(xù)時間。(多重性:1)2、CanSMModeRequestRepetitionMax:它確定模式請求重復(fù)的最大次數(shù),如果超過次數(shù)CanSM模塊向Det報告開發(fā)錯誤。(多重性:1)每個CAN網(wǎng)絡(luò)的CanSMConfiguration容器都有一個CanSMManagerNetwork。它包含每個CAN網(wǎng)絡(luò)的CAN網(wǎng)絡(luò)特定參數(shù)。1、CanSMBorCounterL1ToL2:它定義總線斷開錯誤的計數(shù),從快恢復(fù)切換到慢恢復(fù)的門檻值。(多重性:1)2、CanSMBorTimeL1:以秒為單位,定義快恢復(fù)的持續(xù)時間。(多重性:1)2、CanSMBorTimeL2:以秒為單位,定義慢恢復(fù)的持續(xù)時間。(多重性:1)CanSMController(多重性:1...*)每個容器引用一個唯一的CAN控制器。1、CanSMControllerld:引用一個特定CAN控制器的唯一標(biāo)識符。(多重性:1)CanIf模塊CANIf模塊位于通信棧中的通信服務(wù)層和通信驅(qū)動程序?qū)又g。它負(fù)責(zé)控制CAN驅(qū)動程序模塊的初始化,并在消息的接收(CanIf_RxIndication)或傳輸(CanIf_TxConfirmation)時為CAN驅(qū)動程序模塊提供通知服務(wù)。CANIf模塊獨(dú)立于硬件。CanlfPublicCfg(多重性:1)該容器包含CanIf的公共配置參數(shù)。1、CanlfDevErrorDetect:如果設(shè)置為true,它將打開開發(fā)錯誤檢測和通知功能。如果設(shè)置為false,則關(guān)閉。(多重性:1)2、CanlfPublicVersionInfoApi:啟用或禁用用于讀取版本信息的API。(多重性:1)該容器包含CanIf的專用配置參數(shù)。1、CanIfPrivateDlcCheck:選擇是否支持DLC檢查。如果啟用,則如果該幀的DLC小于配置的DLC,則該幀將不會轉(zhuǎn)發(fā)到上層。如果接收到的幀的DLC大于或等于配置的DLC,則將幀轉(zhuǎn)發(fā)到上層。CanlfCtrlDrvCfg(多重性:1...*)1、它提供了基礎(chǔ)CAN驅(qū)動程序模塊的配置參數(shù)。一個CanIfDrvCfg引用一個CanDriver模塊。它包含CanIf的所有初始化參數(shù)。此容器至少有一個實例。它定義了所有與PDU相關(guān)的配置。CanlfBufferCfg(多重性:0…*)它是CanIfInitCfg的子容器。此容器包含傳輸緩沖區(qū)配置。必須為將用于傳輸幀的每個CanController添加此容器的一個實例。CanIfTxPduCfg(多重性:0…*)它是CanIfInitCfg的子容器。它包含發(fā)送CANL-PDU的配置參數(shù)。每次需要發(fā)送CANL-PDU時都要對其進(jìn)行配置。1、CanIfTxPduCanId:定義發(fā)送CAN標(biāo)識符,11位標(biāo)準(zhǔn)幀或29位擴(kuò)展幀。(多重性:1)2、CanIfTxPduCanIdType:定義發(fā)送CAN標(biāo)識符的類型,是標(biāo)準(zhǔn)格式(11位)還是擴(kuò)展格式(29位)。(多重性:1)3、CanIfTxPduDlc:定義發(fā)送L-PDU的數(shù)據(jù)長度(以字節(jié)為單位)。范圍是0到8個字節(jié)。(多重性:1)CanIfRxPduCfg(多重性:0...*)它是CanIfInitCfg的子容器。它包含每個接收到的CANLPDU的配置參數(shù)。CanIfRxPduCanId:定義接收CAN標(biāo)識符,11位標(biāo)準(zhǔn)幀或29位擴(kuò)展幀。(多重性:1)CanIfRxPduCanIdType:定義接收CAN標(biāo)識符的類型,是標(biāo)準(zhǔn)格式(11位)還是擴(kuò)展格式(29位)。(多重性:1)CanIfRxPduDlc:定義接收L-PDU的數(shù)據(jù)長度(以字節(jié)為單位)。范圍是0到8個字節(jié)。(多重性:1)CAN驅(qū)動該容器保存單個CAN驅(qū)動程序的配置參數(shù)。CanGeneral(多重性:1)提供模塊范圍的配置,其中包含常規(guī)的CanDevErrorDetection和CanVersioninfoApi。1、CanDevErrorDetectio:啟用/禁用開發(fā)錯誤檢測和通知。(多重性:1)2、CanVersionInfoApi:啟用/禁用版本信息的API。(多重性:1)CanConfigSet(多重性:1)它包含CAN控制器和CAN硬件對象的配置。它是CAN驅(qū)動程序的多配置集容器。CanController(多重性:1)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 靶向治療注意事項
- 證券估價課件教學(xué)課件
- 藥劑科應(yīng)急演練
- 慢性哮喘病人護(hù)理查房
- 積分獎勵課件教學(xué)課件
- 第三章3.2金屬材料課件-高一化學(xué)人教版2019必修第一冊
- 骨科護(hù)士課件教學(xué)課件
- 吉林省2024七年級數(shù)學(xué)上冊第2章整式及其加減全章整合與提升課件新版華東師大版
- 檢修安全措施及注意事項
- 早幼粒細(xì)胞白血病
- 國家開放大學(xué)電大本科《社會統(tǒng)計學(xué)》2023期末試題及答案(試卷代號:1318)
- 《小鯉魚跳龍門》教學(xué)設(shè)計3篇
- 新能源公司商業(yè)計劃書
- 農(nóng)田灌溉水渠施工方案
- 部編 統(tǒng)編 人教版九年級上冊初中語文 期末總復(fù)習(xí)課件 全冊專題課件
- 《大數(shù)據(jù)分析與應(yīng)用》教學(xué)大綱
- 三維激光掃描原理及應(yīng)用課件
- 民事訴訟法概述《民事訴訟法學(xué)》馬工程課件
- (完整版)環(huán)境保護(hù)考核表
- 箱變安裝施工方案66375
- (通風(fēng)工)三級安全教育試卷及答案
評論
0/150
提交評論