舒?zhèn)魅A, 唐海波, 曹 贛
(中國太原衛(wèi)星發(fā)射中心試驗技術部 太原 030027)
近年來陸續(xù)在導彈武器等飛行器系統(tǒng)中引入1553B總線技術[1~4],大大減少了飛行器上設備及電纜數(shù)量,減輕了飛行器重量,同時高可靠雙冗余1553B總線系統(tǒng)的應用,也大幅增加了信號可靠性,簡化了測試流程。采用1553B總線后,飛行器上模擬信號轉變?yōu)閿?shù)字信號傳輸,實現(xiàn)了飛行器上信號數(shù)字化,滿足了信息化要求,同時有利于各設備進行通用化設計,便于拓展功能。
1553B總線在我國的標準是GJB289A-97《數(shù)字式時分制指令/響應型多路傳輸數(shù)據(jù)總線》[5],總線上傳輸?shù)南⒂煽偩€系統(tǒng)中的總線監(jiān)控器記錄下來。對于導彈武器等飛行試驗,獲得導彈在飛行過程中彈體各系統(tǒng)尤其是控制系統(tǒng)的狀態(tài)參數(shù)和飛行彈道等數(shù)據(jù)是試驗目的之一,為此總線監(jiān)控器通過接口與無線遙測連接??偩€監(jiān)控器以消息為基本單位對1553B總線上傳輸?shù)臄?shù)據(jù)進行接收記錄,并對消息數(shù)據(jù)進行打包,然后每固定周期XXms傳輸一組(每組數(shù)據(jù)包括多個消息),再經(jīng)統(tǒng)一編幀后進行無線遙測傳輸,在地面接收端對這些先打包再編幀的總線數(shù)據(jù)作解析處理,得到彈體狀態(tài)參數(shù)和飛行彈道等數(shù)據(jù)。
1553B總線技術的引入,對飛行器上遙測測量體制[6]是一個較大的改變,同時也帶來了遙測數(shù)據(jù)處理[7,8]的巨大改變。與傳統(tǒng)測量方式下的遙測數(shù)據(jù)相比,1553B總線數(shù)據(jù)在遙測幀中數(shù)據(jù)量大、采樣率高(每秒達七萬個采樣點以上),在不同飛行器應用中往往總線數(shù)據(jù)架構設計復雜、格式不完全規(guī)范統(tǒng)一,因此1553B總線數(shù)據(jù)處理需要兩大步:第一步解析其中包含的各類消息;第二步按消息內(nèi)格式由原碼計算消息中的各參數(shù)。1553B總線在消息解析處理上要求高、技術難度大,包含某些重要參數(shù)(如指令參數(shù))的消息點數(shù)有時極為有限,有的只在一個遙測幀中傳輸消息數(shù)據(jù),有的甚至在一個遙測幀中只傳送一次消息數(shù)據(jù),因此必須盡量解析出該參數(shù)所在的這唯一一條消息,這對遙測數(shù)據(jù)處理提出了很大的挑戰(zhàn)。
由于1553B總線數(shù)據(jù)處理結果就是對解析出的消息原碼的直接計算,因此消息解析是1553B總線數(shù)據(jù)處理的核心。本文通過分析1553B總線數(shù)據(jù)架構特點及該特點對1553B總線消息解析方法的具體要求和影響,提出并實現(xiàn)了基于1553B總線數(shù)據(jù)架構特點的消息解析方法。該方法已多次應用于飛行試驗任務數(shù)據(jù)處理中,效果良好,對其它新型飛行器1553B總線數(shù)據(jù)處理具有借鑒意義。最后,通過多次解析處理實踐發(fā)現(xiàn),架構格式設計影響著解析消息結果的準確性和完整性,因此建議架構設計應更規(guī)范統(tǒng)一。
如前所述,在地面接收端需要處理先打包再編幀的總線數(shù)據(jù),因此總線數(shù)據(jù)架構的主要特點體現(xiàn)在消息包格式和對每組數(shù)據(jù)編幀時插入的填充特征碼及可能需要的其它組特征信息。消息包內(nèi)容主要包括這條消息和打包所用的附加信息,消息包格式詳細介紹了消息包中各字節(jié)的含義和對應的數(shù)據(jù)內(nèi)容,它還反映了具體消息內(nèi)容的剪裁情況和消息中字的高低位排序等情況。
下面介紹四種常見的1553B總線數(shù)據(jù)架構格式,并對它們的特點進行分析。其中經(jīng)常提到的“消息”和“字”的含義可參見GJB289A-97標準,現(xiàn)簡要說明如下:
字:字是一個信息序列,它包括同步頭、16位信息段及一個奇偶校驗位。有三種類型的字:指令字、狀態(tài)字和數(shù)據(jù)字。一般情況下,記錄下的總線數(shù)據(jù)中指令字、狀態(tài)字和數(shù)據(jù)字只包含字中的16位信息段內(nèi)容,即字長為2字節(jié)。1553B總線字格式如圖1所示。
消息:消息是包括一個指令字、一個狀態(tài)字(或出現(xiàn)在遠程終端到遠程終端傳輸時的兩個指令字、兩個狀態(tài)字)、若干個數(shù)據(jù)字(字數(shù)從0到32不等)及狀態(tài)響應間隔的傳輸序列。即一條消息的標準長度N為(非遠程終端到遠程終端傳輸時):指令字長(2字節(jié))+狀態(tài)字長(2字節(jié))+m個數(shù)據(jù)字長(2m字節(jié));對于遠程終端到遠程終端傳輸,消息的標準長度N為:指令字長(4字節(jié))+狀態(tài)字長(4字節(jié))+m個數(shù)據(jù)字長(2m字節(jié))。
圖1 1553B總線字格式Fig.1 The word format of 1553B bus
1.1.1 1553B總線數(shù)據(jù)架構格式一
1553B總線數(shù)據(jù)架構格式一的消息包格式見表1,其中MT指總線監(jiān)控器,N為根據(jù)命令字由GJB289A-97標準計算的標準消息長度,它是命令字、數(shù)據(jù)字和狀態(tài)字所占字節(jié)的總長。
編幀時插入的填充特征碼為十六進制碼0xZZ,未插入其它組特征信息。
架構特點:
①存在包頭特征字:十六進制碼0xXXYY,長度為2字節(jié);
②存在數(shù)據(jù)長度信息:長度為1字節(jié);
③存在總線監(jiān)控器MT時間字和塊狀態(tài)字,長度各2字節(jié),共占4字節(jié);
④數(shù)據(jù)字/位指定:字的高字節(jié)在前,低字節(jié)在后,符合GJB289A-97標準;
⑤消息中包括命令字、狀態(tài)字和數(shù)據(jù)字,架構設計上沒有刪掉狀態(tài)字或剪裁數(shù)據(jù)字中的部分內(nèi)容,也沒有增加其它附加狀態(tài)字,符合GJB289A-97標準。
1.1.2 1553B總線數(shù)據(jù)架構格式二
1553B總線數(shù)據(jù)架構格式二的消息包格式見表2。
表1 架構格式一1553B消息包格式Table 1 The 1553B message package format of frame format one
表2 架構格式二1553B消息包格式Table 2 The 1553B message package format of frame format two
編幀時插入的填充特征碼為十六進制碼0xZZ,未插入其它組特征信息。
架構特點:
①存在包頭特征字:十六進制碼0xXXYY,長度為2字節(jié);
②存在數(shù)據(jù)長度信息:長度為1字節(jié);
③存在總線監(jiān)控器MT時間字和塊狀態(tài)字,長度各為2字節(jié),共占4字節(jié);
④數(shù)據(jù)字/位指定:字的低字節(jié)在前,高字節(jié)在后,不符合GJB289A-97標準,處理時需要進行高低字節(jié)交換;
⑤消息中包括命令字、狀態(tài)字和數(shù)據(jù)字,架構設計上沒有刪掉狀態(tài)字或剪裁數(shù)據(jù)字中的部分內(nèi)容,也沒有增加其它附加狀態(tài)字,符合GJB289A-97標準。
1.1.3 1553B總線數(shù)據(jù)架構格式三
1553B總線數(shù)據(jù)架構格式三的消息包格式有兩種,分別見表3和表4。
表3 架構格式三1553B消息包格式1Table 3 The 1553B message package format one of frame format three
表4 架構格式三1553B消息包格式2Table 4 The 1553B message package format two of frame format three
編幀時插入的填充特征碼為十六進制碼0xZZ,未插入其它組特征信息。
架構特點:
①不存在包頭特征字;
②不存在數(shù)據(jù)長度信息;
③不存在總線監(jiān)控器MT時間字和塊狀態(tài)字;
④數(shù)據(jù)字/位指定:字的高字節(jié)在前,低字節(jié)在后,符合GJB289A-97標準;
⑤消息中都包括命令字和數(shù)據(jù)字,但架構設計上在消息尾附加了錯誤狀態(tài)字,并裁掉了部分消息內(nèi)容中的狀態(tài)字,在消息解析時必須注意這些差別,這些均不符合GJB289A-97標準;
⑥存在兩種1553B消息包格式,這是裁掉了部分消息內(nèi)容中的狀態(tài)字所造成的不統(tǒng)一。
1.1.4 1553B總線數(shù)據(jù)架構格式四
1553B總線數(shù)據(jù)架構格式四的消息包格式也有兩種,分別見表5和表6。
表5 架構格式四1553B消息包格式1Table 5 The 1553B message package format one of frame format four
表6 架構格式四1553B消息包格式2Table 6 The 1553B message package format two of frame format four
編幀時插入的填充特征碼為十六進制碼0xZZ,插入的其它組特征信息:將1553B總線數(shù)據(jù)在一個遙測幀中所占的有效長信息插入總線數(shù)據(jù)在該幀分路波道的第一波道中。
架構特點:
①不存在包頭特征字;
②不存在數(shù)據(jù)長度信息;
③不存在總線監(jiān)控器MT時間字和塊狀態(tài)字;
④數(shù)據(jù)字/位指定:字的高字節(jié)在前,低字節(jié)在后,符合GJB289A-97標準;
⑤消息中都包括命令字和數(shù)據(jù)字,但架構設計上裁掉了所有消息內(nèi)容中的狀態(tài)字,并裁減了部分消息數(shù)據(jù)字中的內(nèi)容,在消息解析時必須注意這些差別,這些均不符合GJB289A-97標準。
⑥存在兩種1553B消息包格式,這是裁掉了部分消息內(nèi)容中p字節(jié)數(shù)據(jù)字所造成的不統(tǒng)一。
本節(jié)從消息包格式、編幀時插入的填充特征碼、插入的其它組特征信息等方面具體梳理分析以上四種常見架構格式的相同與不同之處,對其特點進行歸納總結,并進一步分析格式特點對總線消息解析處理的影響。
①從上述四種架構格式看,在不考慮消息內(nèi)容具體裁剪情況時,消息包格式最大的不同之處在于它是否存在包頭特征字。事實上,包頭特征字是消息解析思路的關鍵要素,它用在對消息包頭的識別上。對于不存在包頭特征字的總線數(shù)據(jù)消息解析,為了確定消息頭,就需要先確定消息頭的標志碼,通常使用數(shù)據(jù)處理文件中列出的各消息的命令字,此時各個需要解析的消息的命令字都成為了包頭特征字。
②1553B總線數(shù)據(jù)在編幀傳輸時都插入了填充特征碼,事實上,上述幾種格式的特征碼并不完全一致,具體的特征碼內(nèi)容需通過數(shù)據(jù)分析得出。結尾處是否存在預期的填充特征碼是判斷消息包是否合理完整的一種依據(jù)(還存在別的依據(jù),如結尾處是否為某消息包頭特征字等),這是消息解析時必須考慮的因素。只有對1.1.4節(jié)編幀時插入了有效長信息的架構格式進行總線數(shù)據(jù)消息解析例外,因為處理過程中在提取有效數(shù)據(jù)時已經(jīng)濾掉了填充特征碼,所以判斷消息是否合理完整時不再考慮這類標志碼。
③某些架構在1553B總線數(shù)據(jù)編幀傳輸時插入了其它組特征信息,如1.1.4節(jié)編幀時插入了有效長信息,在消息解析時必須先從每幀分路數(shù)據(jù)中提取出有效數(shù)據(jù),然后才能進行下一步的消息解析處理。
④數(shù)據(jù)字/位指定給出了總線數(shù)據(jù)中字的高低字節(jié)的前后順序,上述四種架構格式中高低字節(jié)前后順序就不完全相同,數(shù)據(jù)處理時必須弄清楚數(shù)據(jù)字/位指定情況,按照GJB289A-97標準要求,字構成時高字節(jié)在前、低字節(jié)在后,如果總線數(shù)據(jù)中字的高低字節(jié)的前后順序相反,如架構格式二,解析處理時就需要先將高低字節(jié)交換,否則將解析不出符合要求的消息。
⑤消息包格式和內(nèi)容是架構格式特點的關鍵,在同一種架構格式下消息包的具體格式也可能存在多種情況(如1.1.3節(jié)和1.1.4節(jié)),處理時必須考慮這些細節(jié)。
⑥從上述四種架構格式看,只有格式一、二的消息內(nèi)容符合GJB289A-97標準,架構設計上沒有裁減或增加其它任何信息,格式三和四都存在裁減或增加情況,這給數(shù)據(jù)處理帶來了很大的復雜度,解析時必須考慮具體情況,因為裁減或增加其它任何信息都會改變消息的長度,同時還要考慮這些改變只針對部分已裁減或已增加的具體消息對象。各種消息包的具體長度在消息解析時相當于步長因子,是必須考慮的重要因素。
在介紹消息解析方法之前,先說明總線數(shù)據(jù)中常見的消息類型,這里不考慮總線中廣播操作產(chǎn)生的消息。
①總線控制消息,當子地址為0或31時,總線進行方式控制,此時總線消息數(shù)據(jù)中只有命令字和狀態(tài)字,某些控制方式還帶一個數(shù)據(jù)字,此時的總線數(shù)據(jù)用作總線方式控制情況分析,不進行第二步消息參數(shù)處理。
②常規(guī)消息,即遠程終端和控制器之間或兩個遠程終端之間傳輸?shù)南?,?shù)據(jù)處理文件中列出的消息屬于常規(guī)消息,這些消息解析后需進一步處理為各個參數(shù)。
③其他消息,它符合總線消息協(xié)議,但是不屬于數(shù)據(jù)處理文件中規(guī)定的消息,這些消息數(shù)據(jù)可用于總線工作情況等后續(xù)分析。
④額外數(shù)據(jù),是指因失鎖等原因造成的不符合總線協(xié)議的消息數(shù)據(jù)以及遠程終端處于忙碌狀態(tài)時的總線數(shù)據(jù),這些消息數(shù)據(jù)可用于總線工作情況等后續(xù)分析。
根據(jù)第1節(jié)關于1553B總線數(shù)據(jù)架構格式特點及對數(shù)據(jù)消息解析處理影響的分析,結合多次在試驗任務中對總線數(shù)據(jù)進行消息解析的實踐經(jīng)驗總結,提出了1553B總線數(shù)據(jù)消息解析消息包頭特征字識別+步長計算+合理完整消息包結尾標志碼判別的三步走方法,具體步驟如下:
①在1553B總線數(shù)據(jù)中逐兩個字節(jié)順序搜索消息包頭特征字。
對不存在包頭特征字的總線數(shù)據(jù)作消息解析時,將包頭特征字設為各個需要解析消息的命令字,即任一個需要解析消息的命令字都是包頭特征字;下文中不再對這兩種消息包頭特征字進行區(qū)分。
②搜索到消息包頭特征字后,依據(jù)消息包格式的具體形式計算該消息包數(shù)據(jù)的總長度(不包括包頭特征字),簡稱為步長。
針對架構格式一和二,利用消息包格式中數(shù)據(jù)長度信息計算步長,步長均為N+4+1。對于不存在數(shù)據(jù)長度信息的消息包格式,在搜索到包頭特征字后,步長計算與以包頭特征字為頭的消息具體類型密切相關,即依據(jù)2.1節(jié)對消息類型的介紹,先判斷消息類型是常規(guī)消息還是額外數(shù)據(jù)中的置忙消息,再根據(jù)消息類型具體計算步長。例如,架構格式三中存在狀態(tài)字消息的步長為N(常規(guī)消息)或6(置忙消息),不存在狀態(tài)字消息的步長為N-2(常規(guī)消息)或4(置忙消息);架構格式四中沒有裁減數(shù)據(jù)字內(nèi)容消息的步長為N-4(常規(guī)消息)或4(置忙消息),裁減了數(shù)據(jù)字中p字節(jié)內(nèi)容消息的步長為N-p-4(常規(guī)消息)或4(置忙消息)。
③獲取位于消息包頭特征字后再跨步長后的兩字節(jié)數(shù)據(jù),判別這兩字節(jié)數(shù)據(jù)是否是合理完整消息包結尾標志碼,若是,則表明該消息包頭特征字搜索正確,其后步長數(shù)據(jù)中包含了某條消息,依據(jù)消息包格式獲取該消息內(nèi)容,然后在結尾標志碼開始處進行下一個消息包頭特征字搜索識別,返回步驟①;若不是,直接返回步驟①。重復步驟①~③,直至數(shù)據(jù)結束。
其中對于填充特征碼為0xZZ的總線數(shù)據(jù)消息解析,合理完整消息包結尾標志碼包括0xZZ+0xZZ、消息包頭特征字、0xZZ+消息包頭特征字高字節(jié)0xXX,而不存在填充特征碼的合理完整消息包結尾標志碼只包括消息包頭特征字。
由上述三步法可知,消息解析的關鍵在于消息包頭特征字、步長和合理完整消息包結尾標志碼三要素的判別。對于任何新型架構格式的1553B總線數(shù)據(jù)消息解析,只要從分析架構格式特點上著手,分析和弄清這三要素,即可按三步法合理準確完成消息解析。
在已合理正確分析判別出消息包頭特征字、步長和合理完整消息包結尾標志碼三要素的前提下,基于1553B總線數(shù)據(jù)架構特點的消息解析方法實現(xiàn)流程如圖2所示。
圖2 消息解析方法實現(xiàn)流程Fig.2 The flow chart of the message parsing method
該方法已多次應用于飛行試驗任務遙測數(shù)據(jù)處理中,已合理、準確完成了六種具體架構格式下的1553B總線數(shù)據(jù)消息解析,應用效果良好,達到了準確解析消息的目的。
但是,在多次消息解析處理中發(fā)現(xiàn),對類似于架構格式三或格式四的總線數(shù)據(jù)作消息解析時,本文方法存在以下幾個方面的不足:
①對于架構格式三或格式四,由于缺少針對各種消息統(tǒng)一的消息包頭特征字,所以只能解析出常規(guī)消息,即數(shù)據(jù)處理文件中列出的消息,但當這些消息的命令字存在誤碼時,消息就無法解析;而對于架構格式一或格式二,這類消息會解析在“其他消息”或“額外數(shù)據(jù)”中,當對這些數(shù)據(jù)進行分析時,就能判斷出這條消息應該屬于命令字出現(xiàn)誤碼的某條常規(guī)消息,在某些特殊情況下,如在某特征時刻進行關鍵狀態(tài)分析時,這條消息很可能非常重要。
②可能帶來個別條消息解析錯誤。事實上,這并不是方法的問題,而是缺少包頭特征字或狀態(tài)字給消息解析帶來的軟件上無法判別而導致的,只有通過人工參與分析數(shù)據(jù)才可能獲取正確的消息。如存在某條消息A的命令字(只有命令字)后跟上某條消息B的一段數(shù)據(jù),在消息A的長度大于消息B,且消息A后數(shù)據(jù)為合理完整消息包結尾標志碼時,利用軟件會判斷這段數(shù)據(jù)為消息A,事實上,這段數(shù)據(jù)也可能為關于命令字A的置忙消息(無狀態(tài)字)和一條消息B,究竟是一條消息A還是關于命令字A的置忙消息(無狀態(tài)字)和一條消息B,在沒有架構格式一或格式二中的消息包頭特征字或在狀態(tài)字省略的情況下,必須通過人工參與分析才能判別出來。
③由于缺少針對各種消息統(tǒng)一的消息包頭特征字或各消息中的狀態(tài)字,所以無法解析出總線控制消息、其他消息和額外數(shù)據(jù),雖然這些消息在有些數(shù)據(jù)處理要求文件中并沒有明確指出需要解析,但解析出總線數(shù)據(jù)中所有可能的消息,對分析系統(tǒng)總線的工作情況,尤其是消息載荷情況,具體掌握和分析總線工作過程都是十分重要的,是不可或缺的數(shù)據(jù)支撐。
④架構格式的不統(tǒng)一導致解析出來的消息原碼在格式上也存在一定的差異,這對數(shù)據(jù)的利用分析造成一定的困擾,尤其對那些不熟悉架構格式特點的人員,但若要求利用分析數(shù)據(jù)的人員都熟悉掌握每一種具體的架構格式,也不太實際。
總之,類似架構格式三或格式四的這種缺少對各種消息統(tǒng)一的消息包頭特征字和缺少狀態(tài)字的架構格式,是非常不利于消息解析的,很可能會造成個別條消息解析錯誤或個別重要消息丟失(在誤碼情況下),還無法解析出總線控制消息、其他消息和額外數(shù)據(jù),造成事后無法分析系統(tǒng)的工作過程和狀態(tài)。另外,消息內(nèi)容的隨意刪減或架構格式中數(shù)據(jù)字高低字節(jié)前后順序不符合GJB289A-97標準這些細節(jié)都給消息解析處理增加了復雜度,所以建議系統(tǒng)總線數(shù)據(jù)架構格式應更加規(guī)范、標準和統(tǒng)一。
本文梳理了當前常見的幾種1553B總線數(shù)據(jù)的架構特點,分析了架構格式對總線消息解析處理的影響,結合多次在試驗任務中對總線數(shù)據(jù)進行消息解析的實踐經(jīng)驗總結,提出并實現(xiàn)了基于總線數(shù)據(jù)架構特點的三步走消息解析方法,著重分析了消息解析的關鍵三要素:消息包頭特征字、步長和合理完整消息包結尾標志碼。該方法已多次應用于飛行試驗任務數(shù)據(jù)處理中,效果良好,對其它新型飛行器系統(tǒng)的1553B總線數(shù)據(jù)處理具有借鑒意義。通過多次消息解析處理實踐發(fā)現(xiàn),架構格式設計影響著解析消息結果的準確性和完整性,因此建議架構設計應更規(guī)范統(tǒng)一。
[1]熊華鋼.1553B總線通信技術的應用與發(fā)展[J].電子技術應用,1997,(8):27~28.Xiong Huagang.Application and Development of1553B Bus Communication Technology[J].Application of Electronic Technique,1997,(8):27 ~28.
[2]劉士全,雋 揚,蔡潔明,等.1553B總線應用發(fā)展研究[J].電子與封裝,2013,13(12):12~15.Liu Shiquan,Juan Yang,Cai Jieming, et al.Research on the Application Development of 1553B Bus[J].Electronics&Packaging,2013,13(12):12 ~15.
[3]張傳武,黃勤珍.Mil-Std-1553總線協(xié)議分析 [J].西南民族大學學報(自然科學版),2007,33(2):381~383.Zhang Chuanwu,Huang Qinzhen.Protocol Analysis of the Mil-Std-1553 Bus[J].Journal of Southwest University for Nationalities(Natural Science Edition),2007,33(2):381 ~383.
[4]安捷倫科技.MIL-STD-1553B總線簡介及測試方法[J].國外電子測量技術,2011,30(2):1~3.Agilent Technologies.Introduction and TestMethod of the MIL-STD-1553B Bus[J].Foreign Electronic Measurement Technology,2011,30(2):1 ~3.
[5]中華人民共和國電子工業(yè)部.GJB289A-1997數(shù)字式時分制指令、響應型多路傳輸數(shù)據(jù)總線[S].北京:中國航空工業(yè)總公司,1996.
[6]邵發(fā)聲.運載火箭遙測系統(tǒng)[M].北京:國防工業(yè)出版社,2004.
[7]楊延軍.靶場數(shù)據(jù)處理技術[M].北京:國防工業(yè)出版社,2008.
[8]陳以恩.遙測數(shù)據(jù)處理[M].北京:國防工業(yè)出版社,2002.