主頁(http://www.130131.com):基于GSM的無線智能監(jiān)控設(shè)計(2) 如表3.1所示為AHDLC協(xié)議的格式,Data是要傳送的n個字節(jié)數(shù)據(jù),Command是命令字節(jié),用它對數(shù)據(jù)進行解釋, Length表示數(shù)據(jù)長度的字節(jié).若傳送數(shù)據(jù)的幀格式為:Length,Command,data0,data1,…,datan-1,CheckSum.它們都是字節(jié)數(shù)據(jù),范圍是0~0xFF,直接傳送以上的幀格式,如果接收方在接收中有一個錯誤,則以后的接收將識別不到下一個數(shù)據(jù)幀的開始,通信將會混亂。所以必須有開始標(biāo)志StartMark和一個結(jié)束標(biāo)志EndMark。 StartMark和EndMark也是字節(jié)數(shù)據(jù), 范圍是0~0xFF。設(shè)StartMark = EndMark=0x7E,若Length,Command,data0,data1,…,datan-1,CheckSum中出現(xiàn)與開始標(biāo)志StartMark相同的數(shù)據(jù),通信也會不可靠.為此設(shè)一個ReplaceMark字節(jié),取值ReplaceMark=0xFD,用ReplaceMark代替Length,Command,data0,data1,…,datan-1,Check-Sum中出現(xiàn)的,與StartMark數(shù)值相同的字節(jié),代替規(guī)則如下:發(fā)送時,用ReplaceMark,0x01兩個字節(jié)代替出現(xiàn)的StartMark數(shù)值(StartMark→ReplaceMark,0x01);用ReplaceMark,0x00兩個字節(jié)代替出現(xiàn)的ReplaceMark數(shù)值(RepalceMark→ReplaceMark,0x00),之后進行發(fā)送。接收時,如果接收到ReplaceMark,由下一個字節(jié)判斷,若下一個字節(jié)是0x01,則接收的數(shù)值用StartMark的數(shù)值代替(ReplaceMark,0x01→StartMark);若下一個字節(jié)是0x00,則接收的數(shù)值用ReplaceMark的數(shù)值代替(ReplaceMark,0x00→ReplaceMark)。 用ReplaceMark和附加的字節(jié)(0x00或0x01)代替Length,Command,data0,data1,…,datan-1,CheckSum中可能出現(xiàn)的與StartMark相同的數(shù)值與真正的ReplaceMark數(shù)值.這樣避免了幀內(nèi)出現(xiàn)與標(biāo)志符相同的數(shù)值,同時又可以經(jīng)過變換傳送與標(biāo)志符相同的數(shù)值. 3.2AHDLC的效率分析 data0,data1,…,datan-1,CheckSum中,若不出現(xiàn)與StartMark及ReplaceMark相同的數(shù)值,則需要傳送n+5個字節(jié)的數(shù)據(jù).若出現(xiàn)n個與StartMark或ReplaceMark相同的數(shù)值,則需要傳送2n+5個字節(jié)的數(shù)據(jù).效率隨著StartMark或ReplaceMark數(shù)值出現(xiàn)個數(shù)的增加而降低. StartMark和ReplaceMark數(shù)值出現(xiàn)的概率都是(n+3)/256,則用AHDLC協(xié)議傳送的統(tǒng)計平均字節(jié)數(shù)為:
對于n=100,用ASCⅡ碼方式傳送需要208個字節(jié),效率=105/208=50.5%;用AHDLC協(xié)議方式傳送平均需要105.8個字節(jié),效率=105/105.8=99.2%,比用ASCⅡ碼方式傳送效率提高48.7%.StartMark(或EndMark)和ReplaceMark的數(shù)值可以根據(jù)實際情況自己定義,使AHDLC幀格式中出現(xiàn)StartMark和ReplaceMark的概率越低,則通信的效率越高。 4.結(jié)束語 (中國集群通信網(wǎng) | 責(zé)任編輯:陳曉亮) |





