AUTOSAR如何實(shí)現(xiàn)CANBusOff恢復(fù)的功能_第1頁(yè)
AUTOSAR如何實(shí)現(xiàn)CANBusOff恢復(fù)的功能_第2頁(yè)
AUTOSAR如何實(shí)現(xiàn)CANBusOff恢復(fù)的功能_第3頁(yè)
AUTOSAR如何實(shí)現(xiàn)CANBusOff恢復(fù)的功能_第4頁(yè)
AUTOSAR如何實(shí)現(xiàn)CANBusOff恢復(fù)的功能_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

AUTOSAR如何實(shí)現(xiàn)CANBusOff恢復(fù)的功能什么是CANBusOff?什么是CAN網(wǎng)絡(luò)?汽車車輛CAN網(wǎng)絡(luò)由多個(gè)CAN網(wǎng)絡(luò)組成,如動(dòng)力CAN網(wǎng)絡(luò),信息娛樂(lè)CAN網(wǎng)絡(luò)等。不同CAN網(wǎng)絡(luò)之間的通信,通過(guò)網(wǎng)關(guān)(Gateway)轉(zhuǎn)發(fā)。如信息娛樂(lè)CAN網(wǎng)絡(luò)上需要的發(fā)動(dòng)機(jī)相關(guān)的CAN信號(hào),就需要網(wǎng)關(guān)從動(dòng)力CAN網(wǎng)絡(luò)上轉(zhuǎn)發(fā)。CAN總線網(wǎng)絡(luò)是一個(gè)廣播網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)(如下圖中的ECUA)向總線請(qǐng)求發(fā)送CAN數(shù)據(jù)幀,獲得允許后開(kāi)始發(fā)送;每個(gè)節(jié)點(diǎn)發(fā)送的CAN報(bào)文都在CAN網(wǎng)絡(luò)傳輸,每個(gè)節(jié)點(diǎn)根據(jù)自身需求過(guò)濾接收到的報(bào)文,只處理需要接收的報(bào)文。deploym-entnetworkBusOff是什么?BusOff是CAN網(wǎng)絡(luò)節(jié)點(diǎn)的一種故障狀態(tài),即CAN網(wǎng)絡(luò)節(jié)點(diǎn)處于總線關(guān)閉狀態(tài),接收和發(fā)送功能都關(guān)閉了。為什么?為了保證CAN網(wǎng)絡(luò)通信的穩(wěn)定可靠性。若某個(gè)節(jié)點(diǎn)持續(xù)的發(fā)生發(fā)送錯(cuò)誤,或者接收錯(cuò)誤,直接將該節(jié)點(diǎn)通信功能關(guān)閉,減少CAN網(wǎng)絡(luò)上的錯(cuò)誤幀,保護(hù)珍貴的信道資源。也就是從源頭做起,減少CAN網(wǎng)絡(luò)上錯(cuò)誤幀,保證CAN網(wǎng)絡(luò)中其他節(jié)點(diǎn)通信正常。CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)分為三種狀態(tài),即主動(dòng)錯(cuò)誤,被動(dòng)錯(cuò)誤,總線關(guān)閉三種狀態(tài)1。CAN網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)狀態(tài)介紹接收功能發(fā)送功能Tips:如果總線上只有一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)發(fā)送數(shù)據(jù)幀后得不到應(yīng)答,TEC最大只能計(jì)數(shù)到,28,即這種情況下節(jié)點(diǎn)只會(huì)進(jìn)入被動(dòng)錯(cuò)誤狀態(tài)而不會(huì)進(jìn)入總線關(guān)閉狀態(tài)。CAN網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)機(jī)變換TEC:發(fā)送計(jì)數(shù)器(芯片實(shí)現(xiàn)),發(fā)送失敗,也就是CANoetrace窗口上的Txerror,TEC+8;發(fā)送成功,TEC-83。REC:接收計(jì)數(shù)器(芯片實(shí)現(xiàn)),接收失敗,也就是CANoetrace窗口上的Rxerror4,REC減少;接收成功,REC增加。優(yōu)態(tài)ErrwActiveErrorPassiveBusOffbrrorActivel=C<=127ORREC<=127TEC>127ORREC>127/rrrorPassiveTnC<128ORREC<128TEC>127ORRFC>127TEC>255BusonNormalRequestand12811rece55ivebitsJTEC>255整車廠關(guān)于CANBusOff的恢復(fù)策略需求是什么?國(guó)內(nèi)整車廠對(duì)于CANBusoff的測(cè)試較為嚴(yán)格,尤其是引進(jìn)第三方測(cè)試團(tuán)隊(duì)之后,對(duì)需求的測(cè)試覆蓋度很高。無(wú)論是項(xiàng)目管理,還是工程師(包括系統(tǒng),軟件),對(duì)此要有清晰的認(rèn)識(shí),避免在這個(gè)基本功能上犯錯(cuò)誤?,F(xiàn)將與CANBusOff相關(guān)的需求總結(jié)如下:CANBusoff恢復(fù)策略1、快恢復(fù)(L1)恢復(fù)時(shí)間,<=100ms恢復(fù)次數(shù),5?10次不等2、慢恢復(fù)(L2)恢復(fù)間隔,[200ms,1s]恢復(fù)次數(shù),不限CANBusOffDTC相關(guān)需求1、成熟條件?恢復(fù)N次不能成功之后,記錄DTC,N的具體數(shù)值,各個(gè)OEM定義不同。節(jié)點(diǎn)通信丟失類DTC使能條件BusOff產(chǎn)生后,不再記錄通信類DTC,原因顯而易見(jiàn),所有通信類DTC都會(huì)產(chǎn)生,記錄沒(méi)有意義,不能準(zhǔn)確定位到是什么通信故障發(fā)生,有一個(gè)Busoff的DTC就夠了。Autosar如何實(shí)現(xiàn)CANBusOff恢復(fù)策略

需求分析根據(jù)文檔5中需求分析,對(duì)CANBusOff恢復(fù)功能進(jìn)行需求分解,主要?jiǎng)澐纸o了CANDriver,CANInterface,CANstateManager三個(gè)模塊。[BRS_Csn_010eD}TheCANdTi'/ershallns-treoDv€rtombu=-uffaLtomaticEilly[SRS_Can_01C29]TheCANInterfaceshalllEps-rttus-offstatEofadevicetnanupp-er旬目[BRS_Csn_010eD}TheCANdTi'/ershallns-treoDv€rtombu=-uffaLtomaticEilly[SRS_Can_01C29]TheCANInterfaceshalllEps-rttus-offstatEofadevicetnanupp-er旬目jSRS_Can_DH43]TheCAh:SlBtEMsnagETBhsllcanlsinbCANBusOff后田踞時(shí)slgaithm-fc^eactiusedCANCDrtrdlsr[SRS_Can_O14)5E3TheCANDriverstallpresideanatificaiicnforbus-ofistete;SRS_C3n_0114^TheCAMStatsManagershallsuppzytsccnfigufsblEBuOffremvErytime[SRS_Car_D1-U4]ThECAM,也挖Mans-gershallsippirtaconfigutwblaBusOffTECGVEry:im-eCANDriver要做什么?該模塊負(fù)責(zé)實(shí)現(xiàn)供一個(gè)報(bào)告CANBusoff狀態(tài)的接口[SRS_Can_01055],但不能自動(dòng)恢復(fù)[SRS_Can_01060]

CANInterface要做什么?該模塊需要實(shí)現(xiàn)向上層報(bào)告CANBusOff狀態(tài)的接口[SRS_CAN_01029]CANStateManager要做什么?TheCanSmmoduleisresponsibleformodecontrolmanagementofallsupportedCANControllersandCANTransceivers.該模塊需要實(shí)現(xiàn)為每一個(gè)CAN控制器實(shí)現(xiàn)CANBusOff恢復(fù)算法[SRS_Can_01146]該模塊需要支持CANBusOff恢復(fù)時(shí)間配置[SRS_Can_01143]該模塊需要提供一個(gè)接口,以在上電初始化時(shí),支持通信模式配置(Nocommunication,orsilentcommunication)[SRS_Can_01144].靜態(tài)設(shè)計(jì)下面根據(jù)文章,介紹下CANDriver,CANInterface,CANStateManager三個(gè)模塊的靜態(tài)設(shè)計(jì),主要內(nèi)容有需求追溯表,本模塊關(guān)于BusOff的需求定義,以及接口定義。CANDriver需求追溯表RequirementSRS_Csn_01055SatisfiedRequirementSRS_Csn_01055SatisfiedbySWS_Cai_C0020s5WS_G日n_QQ234SWS_CanJ0272SWS.Can.QOSZa,

SWS_Can_0D274TheCANDnrershallprovideanotrfiGationforbus-offstatsTheGANdriver5hallnotreccverfrombus-offSRS_Can_01060autcmatically根據(jù)參考文檔6中描述,BUSOFF事件會(huì)引起CANdriver模塊狀態(tài)機(jī)變化,CANDriver狀態(tài)由STARTED變?yōu)镾TOPPED,同時(shí),通知CANInterface模塊發(fā)生BUSOFF事件。](SRS_Can_0l055)[SWS_Can_00272][Afterbus-offdetection,theCANcontrollershalltransitiontothestateSTOPPEDandtheCanmoduleshallensurethattheCANcontrollerdaesnntparticipateanthenetworkanymore.J(SRS_Can_0lO6O)[SWS_Can_00273][Afterbus-offdetection,theCanmoduleshallcancelstillpendingmessages.]{SRSCan_01060)[SWS_Can_00274][TheCanmoduleshalldisableorsuppressautomaticbus-offrecovery.](SRS_Can_01060)CANInterface需求追溯表CANStatemanager需求追溯表[SWS_CanSM^0D606][ThecallbackfunctionCanSM_CortrQlhrBusOff(ref.toSWS..C日nSM_0OO64)shalltriggerthestatemachineCANSMBSM(nettoFigure7-1)fortheCANnetworkwithTBUSOFF,rfoneofitsconfiguredCANconiroilersmaichestothefunctionp目母m白伯rControl9rldofIhecallbadkKinelionCanSM_C£mlrollerBusOffLJ(SRS_Can_D1144hSRS_Can_0114&)(SWSCanSMODSOO][IICaiSMmodulehasgotallmodeindications(ref.toSWS_CanSM_003S6jfortheconfiguredCANcontrollersofIheCANnetwork(rolloE0UC_CanSM_30141)afterthe唔『電qu白ststostarttheCANcontrollersoftheCANnetwork(ref.toSW$_CanSM_00804hthisshalltriggerthesubstaleCANSL1_BSM_S_£ILENTC0M_BOR(rot.toFigure7-6)oftheCANnatworkwithT_RESTART_CC_INDICATED.](SRS_Can_0H42FSRS_Can0114^,SRS_Can_01144,SRS_Can_01146)[SWS_CanSM_00602][AfteratimeoutofCANSM_MODEREQ_REPEAT_TIME(ref.toECUC_CanSM_00336Jforallsu即白領(lǐng)dcontrollerglaredrrtodeirtdicatbns(怕f.2SWSCsnSM00600),IhisconditionshalltriggerthesubstatemachineCANSM_BSM_S_SILENTCOMBOR(ref.toFigure7-6)oftherespectivenetworkwithT_RESTART_CC_TIMEOUT.J(SRS_Can_0l142hSRS_Can_0l1l5;SRS_Gan_01144,SRS?Gan_01146)(SWS_CanSM_0Q637JSWSCanSM.O3637]|Servicename:<Us白rGe怕usOffPilay〉Syntax;id<User_GetBusOffDelay>(NetworkH.and1eTypenetwork,uintfi*delayCyclesPtr?Sync/Async:ffeenirartcy:ReentrantfordifferentnetworksParameters(in):network |CANn&tworkwhereaBusOffoccurred.ParametersNoneParameters(cut):delayCyclesPlrNumbero(CanSMbasetyctestowaiEadditionallytoL1/L2afteraBusOffoccurred.Returnvalue:忖口照Descriptor?;ThiscalloutfunctionretumsthenumberofCanSMba&ecyclestowaitadditionallyloL1/L2afleraBusOtroccurred.](SRS_Can_01144;SRS_Can_01146)接口CANDriver,CANInterface,CANStateManager三個(gè)模塊中與BusOff恢復(fù)相關(guān)接口定義如下圖所示,各模塊內(nèi)部為其所實(shí)現(xiàn)的接口,各模塊之間的連接線,代表模塊間的依賴關(guān)系。如ComM模塊和CanStateManager模塊之間的依賴關(guān)系,表示CanStateManager模塊要使用ComM模塊實(shí)現(xiàn)的ComM_BusSM_ModeIndication接口,該接口由ComM模塊負(fù)責(zé)實(shí)現(xiàn)。其他模塊之間的依賴關(guān)系同此方式,連線圓圈端表示接口提供端,另一端為調(diào)用方。

各個(gè)函數(shù)接口的參數(shù),返回值,或其他特性在此不再贅述,具體可參考三個(gè)模塊的AUTOSAR標(biāo)準(zhǔn)文檔。其中,CANStateManager模塊使用到ComM,BswM,Dem三個(gè)模塊的函數(shù)的具體定義,可參考其相應(yīng)AUTOSAR標(biāo)準(zhǔn)文檔。ampCMTipwi-rri/n3M_Cwrert5tok{l^t?Gri!HandleType.Can3N_BMrf.1Curre-ni5tsteTjpe]rrotd日u*klr/cdslndcstl&rCHnlf.SetFtiuMDdft?himorlacGCmn 11曰0U!!C肝日u*klr/cdslndcstl&rCHnlf.SetFtiuMDdft?himorlacGCmn 11曰0U!!C肝十CmnlLCorMlI曰日usO^IjinIHi/c?Conlf-SG^G?riiMiIlQ^adaiulrcB.CEi"uQnorollarSigiE-Tif'pQ;:Sttf_fljcnjenTrF^+CsnlLCcrtealleifHcdtlnii:aliwLuiMfl,^-_-^r7:-nllefSs£tT?pE:ifikcCanlF_C<xi1t=lle*QL5OIICan3[匚QTi'Wllihfd?血?jiǎng)討B(tài)設(shè)計(jì)CAN網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生BusOff事件后,AUTOSAR標(biāo)準(zhǔn)中BusOff恢復(fù)策略分為以下三步:Step1.CANBusOff事件上報(bào)。Step2.執(zhí)行CANBusOff事件恢復(fù)策略。Step3.根據(jù)策略,執(zhí)行相應(yīng)動(dòng)作。各步驟具體介紹見(jiàn)以下章節(jié)介紹。CANBusoff發(fā)生后,怎么辦?外設(shè)CANcontroller發(fā)生BusOff事件怎么辦?這個(gè)可是最嚴(yán)重的事件,代表這個(gè)CAN網(wǎng)絡(luò)節(jié)點(diǎn)掉線了,不能發(fā)送消息,也不能接收消息、。你在這個(gè)圈里失聯(lián)了,讓你干的事,你干不了了;讓你收集的有用信息,其他節(jié)點(diǎn)也獲取不到了。徹底失聯(lián)!掉線了,這怎么辦?假如你在實(shí)際工作中,遇到這種緊急問(wèn)題,咋辦?我的第一反應(yīng)是,趕緊告訴領(lǐng)導(dǎo)!對(duì),在AUTOSAR標(biāo)準(zhǔn)中,也是這么設(shè)計(jì)的??纯聪旅孢@這幾個(gè)模塊是怎么層層上報(bào)的。當(dāng)然,每個(gè)模塊也是先要做好自己的事情,然后再上報(bào)。要不然,會(huì)挨批的。CANcontroller(外設(shè),MCU芯片內(nèi)部集成)檢測(cè)到BusOff事件發(fā)生后,向CANDriver模塊報(bào)告事件CANDriver模塊設(shè)置CANcontroller狀態(tài)為STOPPED狀態(tài)CANDriver執(zhí)行完其相應(yīng)職責(zé),調(diào)用CanIf_ControllerBusOff()函數(shù),向上層模塊CanInterface通知BusOff事件

4.5.CANInterface模塊收到信息后,更改該controller狀態(tài),重置其發(fā)送報(bào)文序列4.5.Ed&equencaCANInterface執(zhí)行完其相應(yīng)職責(zé)后,調(diào)用函數(shù)CanSM_ControllerBusOff(),向上層CANStateManager模塊,報(bào)告BusOff事件。Ed&equenca檢測(cè)到BusOff后,如何處理?AUTOSAR標(biāo)準(zhǔn)(V4.3.1)中,定義CANStatemanager模塊負(fù)責(zé)實(shí)現(xiàn)CANBusOff恢復(fù)的策略。如下圖所示,圖中內(nèi)容為CanStateManager模塊實(shí)現(xiàn)的狀態(tài)機(jī)CANSM_BSM,控制某個(gè)CANcontroller通信的狀態(tài)。CANSM_BSM狀態(tài)機(jī)中,CANSM_BSM_S_FULLCOM,CANSM_BSM_S_SILENTCOM,這兩個(gè)狀態(tài)與BusOff事件相關(guān)。Why??在狀態(tài)CANSM_BSM_S_FULLCOM下需要進(jìn)行BusOff事件的處理,意味著在CAN通信處于全通信(發(fā)送,接收功能正常)狀態(tài)下,發(fā)生BusOff事件,需要進(jìn)行BusOff。具體處理機(jī)制見(jiàn)子狀態(tài)機(jī)CANSM_BSM_S_FULLCOM章節(jié)的描述。在狀態(tài)CANSM_BSM_S_SILENTCOM下,需要處理BusOff事件。一開(kāi)始看到這個(gè)狀態(tài)下需要發(fā)生BusOff事件會(huì)有些不解,這個(gè)狀態(tài)下怎么會(huì)發(fā)生BusOff事件呢?Busoff事件不是在發(fā)送報(bào)文計(jì)數(shù)器TEC>255的條件下,才會(huì)發(fā)生嗎?CANSM_BSM_S_SILENTCOM這個(gè)模式,不是代表靜默模式嗎,不就是只接收,不發(fā)送嗎?不發(fā)送CAN報(bào)文,怎么會(huì)發(fā)送TEC>255的情況呢?后來(lái)想到,這個(gè)場(chǎng)景可能在臨界的情況下發(fā)生,也就是CANStateManager請(qǐng)求進(jìn)入CANSM_BSM_S_SILENTCOM狀態(tài)后,下層CANcontroller外設(shè)還在發(fā)送CAN報(bào)文,發(fā)送不能成功,也就可能發(fā)生了BusOff的事件。CANSM_BSM_S_SILENTCOM狀態(tài)下,BusOff恢復(fù)處理機(jī)制見(jiàn)子狀態(tài)機(jī)CANSM_BSM_S_SILENTCOM_BOR中的描述。IE_FULL_COWC^MiM_E3U_5_PH£FLLLgMEKTlFtilnlToFUllCOWEHIFalMKPCa*T_rULL_COM_WK>DerreaUE5TTFUtLC^UjHCAEREqLEST/OiN9MBSMWA'ALIDATIQlO.CWKiM.SEM-.S.FULLGDNEwtPcnlCHAMSE_0R1T_NO_iD0M_WOO6_REdLE$T.枝3R£L6_l:ULL_COlJ_MCiC£_RECliJ££TEC:it_SR_EN&_R/iJL_C<JMT_&lEWT_DZiW_H??r^QljESTjE_FlAL_T0_3IUeMrjMNIEFDjP電iiKELPM_RCET/rajpwkeup3T-3TWIThWKELFSOURCECAMSHJK心"%WiE-BALOfWEIE_FULL_COWC^MiM_E3U_5_PH£FLLLgMEKTlFtilnlToFUllCOWEHIFalMKPCa*T_rULL_COM_WK>DerreaUE5TTFUtLC^UjHCAEREqLEST/OiN9MBSMWA'ALIDATIQlO.CWKiM.SEM-.S.FULLGDNEwtPcnlCHAMSE_0R1T_NO_iD0M_WOO6_REdLE$T.枝3R£L6_l:ULL_COlJ_MCiC£_RECliJ££TEC:it_SR_EN&_R/iJL_C<JMT_&lEWT_DZiW_H??r^QljESTjE_FlAL_T0_3IUeMrjMNIEFDjP電iiKELPM_RCET/rajpwkeup3T-3TWIThWKELFSOURCECAMSHJK心"%WiE-BALOfWET_FUJ__'ZOM^MOD£_S1ECUE&7.!Z_ELETn_TQ_nJLL_OTN日而qEfULL.Qf.SLEh|DSILEWCOWJUKIDEHECtES-TED?EBREND舌1正疝CWN3M_63M_5_5ILEr4TCt>WPFE\CCCtMiM5M_e$M_5?5!LENTWM_D3>TMi38MM0;£flEQU=5-TiE陽(yáng)EMDCOWT_mO_CQM_MQDE_R1:<X€iT.T_HEPEfcT_WAXiEPRENDO3?CAM9M_05.vl_9_PftE_hiaoOWIm:£MX?二和ICAMSM_BSM_S_N0I_riiTl4LiZFgzEHFigure7-1:CANSM_BSM3statemachinediagramforoneCANnetwork?子狀態(tài)機(jī)CANSM_BSM_S_FULLCOMCAN通信網(wǎng)絡(luò)在在子狀態(tài)機(jī)CANSM_BSM_S_FULLCOM下,處于全功能通信狀態(tài)(發(fā)送,接收功能正常)。進(jìn)入此狀態(tài)的條件,需要完成一系列外設(shè)初始化的條件,還有系統(tǒng)外圍環(huán)境的判斷,屬于狀態(tài)機(jī)CANSM_BSM的內(nèi)容,與本文主題BusOff無(wú)關(guān),暫不贅述。如下圖所示,1、TriggerT_BUS_OFF根據(jù)參考文檔7中需求[SWS_CanSM_00500]中描述,CanSM若收到下層模塊CanInterface關(guān)于BusOff的事件報(bào)告后(報(bào)告方式見(jiàn)3.3.1章節(jié)),狀態(tài)機(jī)CANSM_BSM_S_FULLCOM中TriggerT_BUS_OFF成立(見(jiàn)下圖中1,2處),執(zhí)行EffectE_BUS_OFF2、EffectE_BUS_OFF根據(jù)參考文檔7中需求[SWS_CanSM_00508][SWS_CanSM_00521][SWS_CanSM_00522]中描述,CANStateManager獲取到發(fā)生BusOff信息后,需要向BswM,ComM模塊報(bào)告自己當(dāng)前狀態(tài)變化,并設(shè)置BusOff相關(guān)的DTC為DEM_EVENT_STATUS_PRE_FAILED狀態(tài)。完成上述操作后,進(jìn)入S_RESTART_CC狀態(tài)。3、S_RESTART_CC進(jìn)入S_RESTART_CC狀態(tài)后(見(jiàn)下圖中3處),根據(jù)參考文檔7中需求[SWS_CanSM_00509],CANStateManager模塊應(yīng)當(dāng)執(zhí)行改變CANcontroller狀態(tài)請(qǐng)求,具體執(zhí)行方式見(jiàn)3.3.3章節(jié)。4、G_RESTART_CC_OK根據(jù)參考文檔7中[SWS_CanSM_00510]需求描述,需求[SWS_CanSM_00509]中所調(diào)用API都返回E_OK后,此條件成立,進(jìn)入狀態(tài)CANSM_BSM_S_RESTART_CC_WAIT5、TRESTARTCCINDICATED根據(jù)參考文檔7中[SWS_CanSM_00511]需求描述,若CanSM收到所有CANController的modeindication(具體過(guò)程見(jiàn)3.3.3章節(jié)),會(huì)觸發(fā)子狀態(tài)機(jī)的T_RESTART_CC_INDICATED觸發(fā)器,執(zhí)行E_TX_OFF6、EFFECT:E_TX_OFF根據(jù)參考文檔7,什么行為也不執(zhí)行。進(jìn)入S_TX_OFF狀態(tài)7、S_TX_OFF此狀態(tài)下什么也不執(zhí)行,判斷G_TX_ON條件是否成立8、G_TX_ON如下圖中8處,根據(jù)參考文檔7中[SWS_CanSM_00514]需求描述,若CanSMEnableBusOffDelay參數(shù)為FALSE,上一次BUSOFF事件發(fā)生后,若BUSOFF恢復(fù)不成功次數(shù)小于CanSMBorCounterL1ToL2[ECUC_CanSM_00131],且L1(快)恢復(fù)間隔時(shí)間CanSMBorTimeL1[ECUC_CanSM_00128]已到達(dá),觸發(fā)器G_TX_ON條件成立;根據(jù)參考文檔7中[SWS_CanSM_00515]需求描述,若CanSMEnableBusOffDelay參數(shù)為FALSE,上一次BUSOFF事件發(fā)生后,若BUSOFF恢復(fù)不成功次數(shù)大于,或者等于CanSMBorCounterL1ToL2[ECUC_CanSM_00131],且L2(慢)恢復(fù)間隔時(shí)間CanSMBorTimeL2[ECUC_CanSM_00129]已到達(dá),觸發(fā)器G_TX_ON條件成立;根據(jù)參考文檔7中[SWS_CanSM_00636]需求描述,若CanSMEnableBusOffDelay參數(shù)為TRUE,則需求[SWS_CanSM_00514],[SWS_CanSM_00515]中觸發(fā)器G_TX_ON成立條件,需要額外加上有回調(diào)函數(shù)<User_GetBusOffDelay>制定的時(shí)間;**EFFECT:ETXON**GuardconditionG_TX_ON條件成立后,子狀態(tài)機(jī)執(zhí)行E_TX_ON根據(jù)參考文檔7中[SWS_CanSM_00516][SWS_CanSM_00648][SWS_CanSM_00517][SWS_CanSM_00518]需求描述,如果ECU處于被動(dòng)通信(PASSIVE)狀態(tài)下,CanSM需要將相應(yīng)controller的狀態(tài)設(shè)置為CANIF_TX_OFFLINE_ACTIVE;若非被動(dòng)通信狀態(tài)下,將CANIF狀態(tài)設(shè)置為CANIF_ONLINE。同時(shí),需要同時(shí)BswM8,ComM9模塊,已處于CANSM_BSWM_FULL_COMMUNICATION,COMM_FULL_COMMUNICATION狀態(tài)下。然后進(jìn)入S_BUS_OFF_CHECK狀態(tài),表示9、G_BUS_OFF_PASSIVE根據(jù)參考文檔7中需求描述,G_BUS_OFF_PASSIVE成立的條件有兩種:一種以需求[SWS_CanSM_00496]中描述,當(dāng)配置參數(shù)CanSMBorTxConfirmationPolling[ECUC_CanSM_00339]為假時(shí),需要等待配置參數(shù)CanSMBorTimeTxEnsured[ECUC_CanSM_00130]定義時(shí)間,以確保BusOFF恢復(fù)?;蛘?,以需求[SWS_CanSM_00497]中描述,當(dāng)配置參數(shù)CanSMBorTxConfirmationPolling[ECUC_CanSM_00339]為真時(shí),需要APICanIf_GetTxConfirmationState(ref.tochapter8.5.1)返回狀態(tài)CANIF_TX_RX_NOTIFICATION。G_BUS_OFF_PASSIVE成立后,執(zhí)行E_BUS_OFF_PASSIVE,也就是按[SWS_CanSM_00498]需求中定義,調(diào)用Dem_SetEventStatus()設(shè)置BUSOFF相關(guān)DTC為DEM_EVENT_STATUS_PASSED.狀態(tài)

7.2.23SubstatemachineCANSM_BSM_S_FULLCOMGAN5M_65M_3_RJUQ0?I^.TX.ONliEFKDNI0OT_8uS_0fF|^_BU4_QFFT一在,TA"_0GJUJ3ED片丁也5FT_HE41由甲jCG」N0KAI1E口m_TK_QFFoI^.TX.ONliEFKDNI0OT_8uS_0fF|^_BU4_QFFT一在,TA"_0GJUJ3ED片丁也5FT_HE41由甲jCG」N0KAI1E口m_TK_QFFoHSVI5R=5rARrCCA0_OC_TIMEDUTT_H$TART,C1>USWEErtrvRainl—oT_TXTIMECLJTEK醛FWHM_^M?S_TN_TiMECVF_ExC£rrid4EiilPniniT?7ifn?juiT」,一W

?EJU8_C*FT_CHAM)E_Bfl=RE<WE5TCHKHSEEsCSS'AWMODEEmiPmeCHAsGE.BfigRESTARTCG_E_UK|EmiPmeCHAsGE.BfiTdo!M9ETCCMODESTMTED\ uFigure八比CANSM_B5M_S_FULLCOM,與ub5驚忸machinecfCANSM_BSM?子狀態(tài)機(jī)CANSM_BSM_S_SILENTCOM_BOR如下圖所示,為CANSM_BSM_S_SILENTCOM_BOR子狀態(tài)機(jī)圖1、Effect:E_BUS_OFF根據(jù)參考文檔7[SWS_CanSM_00605]需求描述,CanSM需要調(diào)用Dem_SetEventStatus()向DEM模塊通告BUSOFFDTCprefailed信息Stateoperation:根據(jù)參考文檔7[SWS_CanSM_00604]需求描述,子狀態(tài)機(jī)在S_RESTART_CC狀態(tài)下,CanSM會(huì)向所有CANcontroller發(fā)送狀態(tài)設(shè)置為CAN_CS_STARTED的請(qǐng)求。該請(qǐng)求具體執(zhí)行過(guò)程見(jiàn)3.3.3章節(jié)

2、Trigger:T_RESTART_CC_INDICATED根據(jù)參考文檔7[SWS_CanSM_00600]需求描述,若CanSM收到所有CANController的modeindication(具體過(guò)程見(jiàn)3.3.3章節(jié)),會(huì)觸發(fā)子狀態(tài)機(jī)的T_RESTART_CC_INDICATED觸發(fā)器,執(zhí)行E_TX_OFF3、Guard:G_RESTART_CC_E_OK根據(jù)參考文檔7[SWS_CanSM_00603]需求描述,若CanSM收到在S_RESTART_CC狀態(tài)下所有設(shè)置行為的返回值E_OK,則此條件成立,進(jìn)入CANSM_BSM_S_RESTART_CC_WAIT狀態(tài)。4、Trigger:T_RESTART_CC_INDICATED行為同下圖中2處Trigger5、Trigger:T_RESTART_CC_TIMEOUT根據(jù)參考文檔7[SWS_CanSM_00602]需求描述,子狀態(tài)機(jī)若在定時(shí)器CANSM_MODEREQ_REPEAT_TIME[referto]時(shí)間內(nèi),未收到所有CANcontroller的modeindication,視為請(qǐng)求超時(shí),觸發(fā)器T_RESTART_CC_TIMEOUT條件成立。重新進(jìn)入S_RESTART_CC狀態(tài)6、Effect:E_TX_OFF根據(jù)參考文檔7,什么行為也不執(zhí)行。然后,直接退出狀態(tài),根據(jù)狀態(tài)機(jī)CANSM_BSM圖中所示,進(jìn)入狀態(tài)CANSM_BSM_S_SILENTCOM。在子狀態(tài)機(jī)CANSM_BSM_S_SILENTCOM_BOR中,有了下圖中的路徑2,為什么需要狀態(tài)CANSM_BSM_S_RESTART_CC_WAIT?根據(jù)我目前的理解,狀態(tài)CANSM_BSM_S_SILENTCOM_BOR表示,設(shè)置所有CANController的請(qǐng)求已經(jīng)發(fā)出,且返回值OK。但CANcontroller真正恢復(fù)情況的狀態(tài)還不可知,此時(shí)也不能再次請(qǐng)求設(shè)置CANcontroller狀態(tài),在狀態(tài)下S_RESTART_CC呆著也不合適,因?yàn)榇藸顟B(tài)下,要一直請(qǐng)求設(shè)置CANcontroller狀態(tài)。因此,需要一個(gè)設(shè)置操作完成,等待CANcontroller恢復(fù)的狀態(tài)。歸根到底,如此設(shè)計(jì)的原因是CANcontroller狀態(tài)不會(huì)一下子就會(huì)從BUSOFF狀態(tài)下恢復(fù)的,需要等待。這也就是下圖中路徑2與路徑3,4同時(shí)存在的原因。7.2.21Substatemachine:CANSM_BSM_S_SILENTCOM_BORFigure7-6:CANSM_BSMS_SILENTCOM_BOR,substatemachinecfCANSM_日SM3.3.3如何執(zhí)行,控制CANcontroller狀態(tài)如下圖中1處所示,為CanSM模塊獲取BUSOFF事件發(fā)生后,請(qǐng)求設(shè)置CANcontroller的執(zhí)行流程。下圖中2處表示,Cancontroller狀態(tài)恢復(fù)為STARTTED狀態(tài)后,向CanSM模塊報(bào)告狀態(tài)的流程。置d cnvrr:£^MM—?Mfflrflg.tr:UF4Ir—■=■■■CAWDrluw■P?ripb*nJ■.CLinCcmrc4Iw=□?:--II:匚窘—,仃口士,3.%:_才1*,=燃」'一111次川_匚二71皿11-「0480”1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論