趙鑫
摘 要:對于車輛而言,其中的車輛監(jiān)控系統(tǒng)就是對其進行實時的監(jiān)測和控制,現(xiàn)在在社會上已經(jīng)得到了廣泛的運用。但是,因為發(fā)展的時間比較短,可能在系統(tǒng)結(jié)構(gòu)上還不是特別完善,而作為車輛監(jiān)控系統(tǒng)核心的數(shù)據(jù)服務(wù)中心(DSC),一定要設(shè)計出一個擴展性比較強的結(jié)構(gòu),協(xié)議是被控對象和數(shù)據(jù)服務(wù)中心之間的橋梁,起著非常重要的作用。本文對車輛監(jiān)控系統(tǒng)中的協(xié)議解析和構(gòu)造技術(shù)進行了分析。
關(guān)鍵詞:車輛監(jiān)控系統(tǒng);協(xié)議解析;協(xié)議構(gòu)造
1 車輛監(jiān)控系統(tǒng)中協(xié)議解析和構(gòu)造技術(shù)
1.1 協(xié)議解析
在接收到數(shù)據(jù)幀之后,按照相關(guān)的協(xié)議格式解析其中的具體信息。下面以一個具體的實例進行分析,圖1是在車輛監(jiān)控系統(tǒng)中實際監(jiān)測到的一個數(shù)據(jù)包,經(jīng)過詳細的分析可以非常清楚的明白協(xié)議解析的過程。
在接收到這樣的數(shù)字組時,要先從數(shù)字組的首位開始分析。首先是找到幀頭,也就是連續(xù)有兩個CCH的,而43H、45H不符合,但是在觀察到第3和第4個字節(jié)時,就能發(fā)現(xiàn)和我們定義的幀頭是相同的,我們可以假設(shè)這就是幀頭,所以說接下來的兩個應(yīng)該是幀的長度。根據(jù)幀的長度我們可以分析出在56個字節(jié)之后應(yīng)該是幀尾,也就是兩個AAH,和實際情況對比發(fā)現(xiàn)一致,這就是我們所定義的數(shù)據(jù)幀,也就是說是真實的車輛監(jiān)控系統(tǒng)上傳的信息[1]。
對于GPS信息而言,第一個字節(jié)就是其信息有效的標志,表示的是實測,緊接著的4個字節(jié)(1 4 1 5)為經(jīng)度信息,但是再具體的經(jīng)度就要經(jīng)過重新?lián)Q算;隨后的4個字節(jié)(2 3 2 4)為緯度信息,之后的兩個字節(jié)(8 0)為速度,方位角為一個字節(jié)(1),最后的是GPS的信號強度,帶有一定的浮動性,因此用了一個字節(jié)(2)。對于兩個字節(jié)的(0 1)來說,屬于開關(guān)輸入信息,我們只知道它占用了兩個字節(jié),但是具體的情況要按照數(shù)據(jù)庫中的開關(guān)配置信息進行解析。比如,對十六進制的(0 1)來說,轉(zhuǎn)換成為二進制(00000000 00000001),雖然知道2號開關(guān)對應(yīng)的是0,但是卻不能判定開關(guān)的具體狀態(tài),必要對其進行詳細的解析。
1.2 協(xié)議構(gòu)造
所謂的協(xié)議構(gòu)造,實際上是將協(xié)議解析反過來,就是將已知的信息按照協(xié)議的格式構(gòu)成一組數(shù)據(jù)幀,之后輸送出去。要想實現(xiàn)車載模塊實時信息的發(fā)送,中心控制模塊一定要將各個模塊所采集到的數(shù)據(jù)進行協(xié)議構(gòu)造,之后再發(fā)送給數(shù)據(jù)服務(wù)中心。
下面以“下發(fā)控制命令幀的構(gòu)造過程”為例,對協(xié)議構(gòu)造進行詳細的分析,首先要充分了解控制命令的幀格式,如下表所示(表1)。應(yīng)答幀和其他模塊之間的區(qū)別單純是在幀標識上為24H,其他方面都是相同的。
比如,如果客戶發(fā)現(xiàn)他的車存在被盜的現(xiàn)象,要對該車輛實施鎖車行為。在業(yè)務(wù)展示部分將鎖車的信息傳遞給數(shù)據(jù)服務(wù)中心時,數(shù)據(jù)服務(wù)中心首先要做的就是明確該車所對應(yīng)的類型,之后再找到鎖車所對應(yīng)的開關(guān)量輸出通道,假設(shè)開關(guān)量輸出通道0號,以下是協(xié)議構(gòu)造數(shù)據(jù)幀的具體過程:其中開關(guān)量輸出的數(shù)量n是1,而對應(yīng)的字節(jié)值為8*n,也就是8,。如果開關(guān)量的屬性始終不變,那么一直都是1,該字節(jié)就為二進制:00001111,也就是FH。隨后又是開關(guān)量輸出,因為是1號通道,p0繼電器的狀態(tài)應(yīng)該處于異常,所以該字節(jié)也應(yīng)該是00001110,也就是EH。之后,可以進行分層的封裝,第一層應(yīng)該是信息層,具體為8 F E,第二層是幀標識層,具體為34 8 F E,第三層也是最外面的一層是幀長,具體為4 0 34 8 F E。最后一步加上針頭和幀尾就成為了一個完成的數(shù)據(jù)幀,也就是CC CC 4 0 34 8 F E AA AA[2]。
通過上述,是在人工的角度對一個數(shù)據(jù)幀的解析和構(gòu)造過程進行了詳細的分析,先期的系統(tǒng)設(shè)計也是根據(jù)這個思想通過代碼來實現(xiàn)的。但隨著系統(tǒng)的逐漸發(fā)展,客戶種類越來越多,協(xié)議也要隨之進行很大的改變,不僅在數(shù)目上逐漸增多,在代碼方面改變的也很多,因此,會出現(xiàn)比較混亂的現(xiàn)象。如果從重構(gòu)的角度出發(fā)對其進行分析,那么解析程序的作用就會很大,有可能解析更多的協(xié)議,重構(gòu)的方法是比較實用的。
2 結(jié)束語
綜上,車輛監(jiān)控系統(tǒng)是現(xiàn)代車輛安全運行的重要保障,正在國內(nèi)外的交通系統(tǒng)中廣泛應(yīng)用。但是因為發(fā)展的時間比較短,系統(tǒng)中的結(jié)構(gòu)和功能等還不夠完善,經(jīng)常存在很多問題,而數(shù)據(jù)服務(wù)中心中的協(xié)議解析構(gòu)造器能夠充分改進車輛監(jiān)控系統(tǒng)的性能,一個結(jié)構(gòu)明確、方便維修、實用性強的協(xié)議解析構(gòu)造器是我們車輛監(jiān)控系統(tǒng)中重點關(guān)注的問題,能夠?qū)崿F(xiàn)車輛監(jiān)控系統(tǒng)的發(fā)展目標。
參考文獻
[1]陳什,朱巖.大規(guī)模車輛監(jiān)控系統(tǒng)中通信服務(wù)器的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2011,(11):112-115.
[2]周東.廣域監(jiān)控系統(tǒng)中協(xié)議解析器的設(shè)計與實現(xiàn)[D].南京理工大學(xué),2010.
(作者單位:中國人民解放軍軍事交通學(xué)院)