999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于J1939 協議多包報文的時序研究及應用

2022-11-07 02:16:24潘文卿付雨鑫
汽車電器 2022年9期
關鍵詞:故障

潘文卿,付雨鑫,任 飛

(濰柴動力股份有限公司,山東 濰坊 261061)

基于J1939協議的多包報文主要有故障診斷相關報文DMx,例如DM1是記錄當前故障信息,屬于周期發送的報文,發送周期是1s,DM2是記錄歷史故障信息的報文,屬于PGN請求類報文,在收到PGN請求的時候才會發送此報文。其他的報文還有描述發動機配置信息的EC報文,描述緩速器配置信息的RC報文,EC和RC報文的固定周期是5s,其中當轉速或者扭矩百分比變化10%的時候會事件觸發1次,但是周期不會快于500ms。還有其他PGN請求類的多包報文,例如描述組件信息報文CI、軟件信息報文Soft。這些報文都會通過BAM廣播報文和PACK數據包報文發送,所以如何實現不丟包有序發送,時序配置管理非常關鍵。

1 J 1939協議

1.1 PGN定義

標準的J1939協議的地址為29bits,擴展幀地址如圖1所示,包含P優先級,長度是3bits,優先級范圍為0~7,0為最高優先級,7為最低優先級;R保留位1bit,DP為數據頁,長度是1bit;PF為PDU格式,長度是8bits;PS為PDU細節,長度是8bits;SA為源地址,長度是8個bit,表示當前報文是哪個控制器發出的,像發動機控制器為0x00,變速器控制器為0x03。當PF的范圍在0~239之間,即0x00~0xEF,PS為目的地址,PGN=PF×256;當PF的范圍在240~255之間,即0xF0~0xFF,PS為組擴展GE,PGN=PF×256+GE。

圖1 J1939協議擴展幀地址格式

以表1為例,報文Msg1和Msg2的PF為0xDA,小于0xF0,所以PGN都是0xDA00,Msg1的目的地址是0xF1,源地址是0x00,表示是控制器0x00發給控制器0xF1的報文,是點對點的報文;Msg2的目的地址是0x17,源地址是0xF1,表示Msg2是控制器0xF1發給控制器0x17的報文,同樣也是點對點的報文;Msg3的PF為0xF0在0xF0~0xFF范圍內,所以PS的值0x23為組擴展GE,所以PGN為0xF023,源地址SA為0x3D,這是一條廣播式報文,發送到總線上,只要有接收需求的控制器節點都可以獲取到此報文的信息。

表1 報文地址&PGN

1.2 多包報文

基于標準的J1939協議,每條報文最多發送8個字節的數據,如果報文的內容超過8個字節,需要用多包報文進行傳輸。多包報文需要2條報文:一個是廣播報文BAM,一個是數據包報文PACK。兩個報文的定義如表2和表3所示。

表2 BAM報文定義

表3 PACK報文定義

BAM和PACK的報文發送時序為:先發送一條BAM報文廣播當前報文的總字節數,接下來要發送PACK的包數,以及此條報文的PGN參數,然后是數據包PACK報文,PACK報文的第1個字節表示當前數據包PACK報文的包數,報文的接收方會根據收到的BAM報文的PGN參數群編號和全部數據包數,有效數據字節數進行校驗判斷,接收到的數據包數和BAM中聲明的是否一致,如果不一致可能會存在丟數據、數據不完整等問題,會提示接收錯誤。

當前PGN的BAM報文和上一條同PGN的BAM報文的時間間隔為此條PGN多包報文的周期用T表示,BAM和第1條PACK的時間間隔用T表示,數據包PACK之間的時間間隔用T表示。T是報文的周期是固定的,T的時間和T可以通過標定量來實現自主標定,本論文是基于T=T=50ms進行設計的。

多包報文的錯誤處理機制設定:以DM1報文為例,說明當多包報文出現不同情況下的超時或者丟幀時的處理機制。接收方如果在4個T周期內未收到DM1的BAM報文,就會報出DM1報文超時的故障。如果收到了BAM報文,在4個T周期內如果沒有收到T報文,就會報出DM1報文BAM2PACK超時的故障。如果其中一個中間的PACK報文后面4個T周期未收到下一個PACK報文,就會報出DM1報文的PACK2PACK報文超時的故障。如果中間的PACK報文丟了一個或者兩個,就會報出DM1報文PACK報文丟幀的故障。如上的故障報出后,都會觸發錯誤處理機制,比如當前報文丟棄,沿用上一個周期的報文數據保持不變。

2 多包報文的時序研究

表4為多包周期報文信息,包含:DM1報文、EC報文、RC報文的報文地址,PGN,周期,字節數和包數。DM1報文按照J1939-73的規定,一個故障碼使用4個字節,故障系統中每次最多可以記錄20個故障,即82個字節,12包數據,但是一次同時出現20個情況比較少見,論文中以10個故障,42個字節為例。我們看到像DM1報文的地址0x18FECA00是不存在的,多包報文實際上只有BAM報文和PACK報文,接收方按照J1939多包報文的協議進行組合,會顯示解析到的0x18FECA00報文以及所有的數據。

表4 多包周期報文信息

DM1報文的周期是1s,EC報文和RC報文的周期是5s。每5個周期,DM1和EC,RC報文就會同時出現在一個周期中。設定EC報文的BAM報文相較于DM1報文的BAM時間間隔為T,用于研究DM1發送完成BAM后間隔多久開始發送EC報文的BAM報文;RC報文的BAM報文相較于DM1報文的BAM時間間隔為T,用于定義RC報文的BAM報文相較于DM1報文的BAM報文后的發送時機。

2.1 3個周期報文的時序研究

如圖2所示,T為390ms,T為790ms,DM1報文的一幀BAM報文和6幀PACK報文使用300ms即可發送完畢,最后一幀PACK(330.355537s)發送完畢后推遲90ms再發送EC報文的BAM報文(330.445528s),RC報文的BAM報文(330.845486s)與DM1的BAM報文(330.055545s)間隔是790ms,此時RC報文的BAM(330.845486s)與EC報文的最后一幀PACK報文(330.745516s)的時序間隔為100ms,這樣EC報文與RC報文的時間間隔有些浪費,可以進一步修正。

圖2 DM1&EC&RC報文的時序1

將T設定為310ms,T為620ms,將EC報文的BAM 報 文(2777.021331s)與DM1 最 后 一 幀PACK 報 文(2777.011292s)的 時 間 間 隔 和RC 報 文 的BAM 報 文(2777.021331s)與EC 報 文 最 后 一 幀 的PACK 報 文(2777.011292s)的時間間隔都設定為10ms,這樣會減少時序的浪費,如圖3所示。在報文都會有序發送的情況下,此方案是對時序的最佳設計,但是如果報文有延時,或者周期任務執行時有延時,對報文時序也會有影響。

圖3 DM1&EC&RC報文的時序2

當故障診斷系統出現當前最大故障個數20個故障碼的時候,DM1會有82個字節,12包數據,加上EC報文和RC報文的數據總共是21包數據,在1s的DM1時間周期內不能完成數據完整發送,所以,鑒于DM1報文的數據長度不固定性,為了達到時序的最優設置,可以將EC報文和RC報文拆開,分別放到兩個DM1周期中,將T設定為600ms,T為1600ms,如圖4所示。為DM1報文的可變包數留足空間,發 送 完 第1 個DM1 的BAM 報 文(567.938838s)后,間 隔600ms發送EC報文的BAM報文(568.538814s),在此周期內不再發送RC 報文,在第2 個DM1 報文的BAM 報文(568.938772s)后,間隔600ms再發送RC報文的BAM報文(569.538732s),此時RC報文的BAM報文(569.538732s)與第1個DM1報文的BAM報文(567.938838s)間隔1600ms。這樣可以很好地避免DM1突然增加數據包數而導致后面的EC或RC報文丟失的問題,同時還為突然而來的PGN請求的多包報文留下發送的空間,可以達到最優時序配置。

圖4 DM1&EC&RC報文的時序3

2.2 PGN請求多包報文的時序研究

在DM1報文、EC報文、RC報文周期發送的過程中,如果收到PGN請求報文時,會如何響應,接下來分如下幾種情況進行分析。

1)第1種情況:如圖5所示,在DM1報文的最后一幀PACK報文(3940.932138s)發送完成后,收到了PGN請求DM2報文(3941.386074s),此時會及時響應DM2報文,后面的EC報文和RC報文就不會再發送了,而是重新發送DM1報文(3941.632075s),再按照時序的設定發送后面的EC報文和RC報文。

圖5 DM1報文后面收到PGN請求報文

2)第2種情況:如圖6所示,PGN請求報文(5.026737s)在EC報文的BAM報文(4.093637s)之后收到,此時控制器會先回復一個否定響應,然后EC報文廢棄,后面的PACK報文不再發送,而是接著發送DM1報文(5.783483s)。在發送DM1報文的第4包PACK報文(5.983489s)和第5包PACK報文(6.033486s)之間收到PGN請求報文(6.101697s),此時影響DM1報文后面的PACK報文繼續發送,發送完成DM1后,發送PGN請求的DM2報文(6.103468s),DM2報文發送完成后,會重新發送DM1報文(6.7834132s),然后繼續發送EC報文。也就是說,在BAM報文后發送PGN請求報文時,不予響應,廢棄當前的多包周期報文,也不響應請求的多包報文,而是從DM1報文重新發送。在DM1報文的PACK報文之間收到PGN多包報文請求時,待DM1報文的PACK報文發送完畢之后,會繼續響應被請求的多包報文,被請求的多包報文發送完畢之后,先發送DM1報文再按照時序發送EC、RC周期報文。

圖6 BAM之后收到PGN請求報文

3)第3種情況:在非DM1報文的PACK報文之間收到PGN請求報文,如圖7所示。此時會回復一個負響應,繼續完成PACK報文的發送,不能影響當前的報文有序發送,待報文發送完成后,之前的PGN請求報文也不再發送了,會繼續按照設定的多包報文的時序完成DM1報文、EC報文和RC報文的發送。此時序的設置是因為EC和RC的發送都是基于DM1的BAM報文做的時序偏移,不能影響DM1報文的周期發送。

圖7 RC報文PACK之間收到PGN請求報文

所以在固定周期的多包報文發送的過程中,不同的時間段收到PGN請求報文會有不同的處理機制,在不影響周期最小的多包報文的前提下完成PGN請求多包報文的發送。

3 結論

本文基于標準的J1939協議,完成了DM1報文、EC報文和RC報文3條固定周期的多包報文的時序設定機制的研究,考慮到DM1報文的長度是可變的,又考慮到上一個報文的PACK與當前報文的BAM報文的時間間隔最優設定設置了DM1、EC、RC3條報文的最佳時序配置。同時考慮到還有部分PGN請求報文在不同時間段進行事件觸發,設定了不同的處理機制。DM1報文是周期最小的多包報文,周期時序的設置和PGN請求的不同處理機制都是以對DM1報文影響最小的前提下做的處理機制設定,為多包報文的有序完整發送提供了理論和實踐數據基礎。

猜你喜歡
故障
故障一點通
奔馳R320車ABS、ESP故障燈異常點亮
WKT型可控停車器及其故障處理
基于OpenMP的電力系統并行故障計算實現
電測與儀表(2016年5期)2016-04-22 01:13:50
故障一點通
故障一點通
故障一點通
故障一點通
故障一點通
江淮車故障3例
主站蜘蛛池模板: 亚洲第一成年免费网站| 国产成人欧美| 福利视频一区| 日韩在线成年视频人网站观看| 欧美一区二区自偷自拍视频| 国产成人久久综合一区| 亚洲男人天堂久久| 97在线免费| av手机版在线播放| 欧美在线精品怡红院| 日韩一二三区视频精品| 极品尤物av美乳在线观看| 中国一级毛片免费观看| 日韩精品专区免费无码aⅴ| 亚洲乱码视频| 成年人福利视频| 欧美自拍另类欧美综合图区| 亚洲男人天堂2018| 国产在线观看一区二区三区| 国产拍揄自揄精品视频网站| 久久九九热视频| 91在线播放国产| 欧美激情第一欧美在线| 午夜无码一区二区三区在线app| 久久超级碰| 中国一级特黄大片在线观看| 999国内精品视频免费| 国产成人狂喷潮在线观看2345| 国产AV无码专区亚洲精品网站| 国产午夜精品一区二区三区软件| 狠狠色丁香婷婷综合| AV无码国产在线看岛国岛| 在线无码私拍| 91亚瑟视频| 国产女人水多毛片18| 日本国产精品一区久久久| 国产大全韩国亚洲一区二区三区| 9丨情侣偷在线精品国产| 亚洲精品在线91| 国产精品林美惠子在线观看| 亚洲精品日产精品乱码不卡| 免费国产高清视频| 亚洲专区一区二区在线观看| 欧美国产日韩在线| 久久久精品国产亚洲AV日韩| 中文字幕va| 青青草91视频| 亚洲无限乱码| 欧美a级完整在线观看| 无码精品一区二区久久久| 九色视频在线免费观看| 不卡网亚洲无码| 欧美激情福利| 亚洲乱码精品久久久久..| 成人毛片免费在线观看| 青青草一区二区免费精品| 一级毛片网| 五月婷婷精品| 亚洲三级a| 国产高清国内精品福利| 日本爱爱精品一区二区| 成·人免费午夜无码视频在线观看| 亚洲精品无码在线播放网站| a毛片在线播放| 亚洲第一黄片大全| 免费可以看的无遮挡av无码 | 国产18在线| 波多野结衣中文字幕一区| 国产成人精品视频一区二区电影| 国产尤物在线播放| 71pao成人国产永久免费视频| 国产网友愉拍精品| 成年人福利视频| 亚洲国产综合精品中文第一| 亚洲国产精品VA在线看黑人| 九九热精品视频在线| 精品91视频| 国内精品手机在线观看视频| 第九色区aⅴ天堂久久香| 久久中文字幕不卡一二区| 91精品专区| 免费又爽又刺激高潮网址|