主页(http://www.pttcn.net):基于GSM的无线智能监控设计(2) 如表3.1所示为AHDLC协议的格式,Data是要传送的n个字节数据,Command是命令字节,用它对数据进行解释, Length表示数据长度的字节.若传送数据的帧格式为:Length,Command,data0,data1,…,datan-1,CheckSum.它们都是字节数据,范围是0~0xFF,直接传送以上的帧格式,如果接收方在接收中有一个错误,则以后的接收将识别不到下一个数据帧的开始,通信将会混乱。所以必须有开始标志StartMark和一个结束标志EndMark。 StartMark和EndMark也是字节数据, 范围是0~0xFF。设StartMark = EndMark=0x7E,若Length,Command,data0,data1,…,datan-1,CheckSum中出现与开始标志StartMark相同的数据,通信也会不可靠.为此设一个ReplaceMark字节,取值ReplaceMark=0xFD,用ReplaceMark代替Length,Command,data0,data1,…,datan-1,Check-Sum中出现的,与StartMark数值相同的字节,代替规则如下:发送时,用ReplaceMark,0x01两个字节代替出现的StartMark数值(StartMark→ReplaceMark,0x01);用ReplaceMark,0x00两个字节代替出现的ReplaceMark数值(RepalceMark→ReplaceMark,0x00),之后进行发送。接收时,如果接收到ReplaceMark,由下一个字节判断,若下一个字节是0x01,则接收的数值用StartMark的数值代替(ReplaceMark,0x01→StartMark);若下一个字节是0x00,则接收的数值用ReplaceMark的数值代替(ReplaceMark,0x00→ReplaceMark)。 用ReplaceMark和附加的字节(0x00或0x01)代替Length,Command,data0,data1,…,datan-1,CheckSum中可能出现的与StartMark相同的数值与真正的ReplaceMark数值.这样避免了帧内出现与标志符相同的数值,同时又可以经过变换传送与标志符相同的数值. 3.2AHDLC的效率分析 data0,data1,…,datan-1,CheckSum中,若不出现与StartMark及ReplaceMark相同的数值,则需要传送n+5个字节的数据.若出现n个与StartMark或ReplaceMark相同的数值,则需要传送2n+5个字节的数据.效率随着StartMark或ReplaceMark数值出现个数的增加而降低. StartMark和ReplaceMark数值出现的概率都是(n+3)/256,则用AHDLC协议传送的统计平均字节数为:
对于n=100,用ASCⅡ码方式传送需要208个字节,效率=105/208=50.5%;用AHDLC协议方式传送平均需要105.8个字节,效率=105/105.8=99.2%,比用ASCⅡ码方式传送效率提高48.7%.StartMark(或EndMark)和ReplaceMark的数值可以根据实际情况自己定义,使AHDLC帧格式中出现StartMark和ReplaceMark的概率越低,则通信的效率越高。 4.结束语 (中国集群通信网 | 责任编辑:陈晓亮) |