无线数据通信误帧率测试仪的研发及应用
2010-06-25冯菊香卢上二
冯菊香,卢上二,赵 利
(1.玉林师范学院 传媒实验室,广西 玉林 537000;2.桂林电子科技大学 信息与通信学院,广西 桂林 541004)
1 引言
数字信号在传输过程中由于衰变、干扰等各种原因不可避免地会产生差错。随着数据量的增大、传输速率的提高、通信距离的增加,系统在传输过程中出现的误帧率也会增大[1]。对无线通信来说,误帧率是测试系统性能的一项重要指标。目前市场上有专门的误帧测试仪,它既可以用于有线通信系统的测量,也可以用于无线通信系统的测量,但存在价格昂贵、针对性不强等缺点。针对山区无线数据传输信道的特点,笔者结合异步串行通信规程设计了一款基于AT89S52单片机[2]的误帧测试系统——无线数据通信误帧率测试仪,它是测试无线数据传输性能的一种智能化仪器。
2 误帧率测试系统方案设计
2.1 系统方案设计
误帧率测试系统方案如图1所示。用到的设备包括误帧仪、数传电台和天线等,误帧仪由单片机、电平转换器、数码管显示模块、按键、指示灯等部件组成,误帧率的测试是将误帧仪发射的数据不断地发送到接收端,接收端接收该数据流后检查收到的数据流中是否有传错或丢失的数据帧,传输过程中丢失与出错的帧数和除以发送总帧数即可计算出通信信道的误帧率。设计的该误帧仪既可以发射数据也可以接收数据,因而箭头是双向的。
图1 误帧仪技术方案图
2.2 组帧与检错规则设计
2.2.1 组帧设计
本设计所发送的帧数据包是由一系列BCD码组成的,并对每个BCD码进行编号以便于误帧测试,如a0,a1,a2,…,帧格式如图2所示。数据包由102帧组成,起始为同步字,同步字设定为7EH,终了为结束字,结束字设定为 8FH,中间有 100 个数据帧。a0,a1,a2,…,a99分别用 00,01,02,…,99填入,传输时每个数据帧为10 byte异步帧格式。
图2 串行通信帧格式
2.2.2 检错规则
帧检错流程如图3所示。
发送端发出102个帧长的数据包,并对每一个帧数据包设置编号,即a0,a1,a2,…,a99,接收端用 1 个“误帧计数器”来统计发错或丢失的数据帧数目。发送端在发送数据之前,接收端处于接收状态。当接收端接收到同步字7EH时开始接收数据,如果收到的数据帧与预设的不同(即检测接收的ai与预设的不同,i=0,1,2,…,99),或该数据帧丢失,则“误帧计数器”加1,寄存在“误帧计数器”中;当收到结束字8FH时,表明此数据包发送结束。最后用误帧计数器的值除以发送的数据帧的总数,即得到误帧率并用数码管显示出来。将测得的误帧率与目标误帧率进行比较,检测是否达到数据通信的要求。
图3 帧检错规则流程图
3 硬件的设计与实现
本误帧仪硬件电路结构框图如图4所示。
图4 误帧仪硬件电路结构框图
图4中,作为核心部件的单片机采用低功耗的AT89S52。其他相应的外围电路由7个主要部分组成:
1)按键,用于输入操作,由2个电平按键组成,分别用来进行发送数据操作和接收数据操作。
2)指示灯,用于输出,指示发送和接收的信息,发送数据时红灯亮,接收数据时绿灯亮。
3)晶振电路,由1个11.0592 MHz的晶振和2个30 pF的小电容组成,决定了单片机的工作时间精度为1 μs。
4)复位电路,采用的是按键复位,由200 Ω,1 kΩ的电阻以及22 μF的电容和1个4脚复位开关组成。
5)电源变换电路,为整个电路提供+5 V的工作电压。此电路有滤波功能,滤掉了高频和低频,从而使电源更加纯正,系统采用性能稳定的三端稳压芯片7805。
6)LED数码显示器,用于显示测试结果。
7)RS-232电平转换电路,用于提供RS-232的标准接口方式,与数传电台ND889A的标准接口相对应。
4 软件的设计与实现[3]
4.1 软件流程设计
发送程序流程图如图5所示。
图5 发送程序流程图
接收程序流程图如图6所示。
图6 接收程序流程图
本系统的软件主要由以下5个部分组成:
1)总控主程序,控制整个系统的软件运行。首先对整个系统进行初始化,然后对串口、数码管、按键等进行管理和控制。
2)按键管理程序,用来进行键功能管理。首先判断是否有键被按下,并完成对键的消抖动功能、然后识别按下的键是发送键还是接收键,若是发送键,程序转向发送键处理,若是接收键,程序转向接收键处理。
3)显示子程序,通过数码管显示误帧测试结果,包括数码管初始化、接收显示指令、接收显示数据等部分。4)串口中断程序,用来实现系统的中断数据接收。5)发送/接收子程序,用来对数据进行串行发送和接收。
4.2 主要软件模块
软件主要分为数码管显示模块、发送数据模块和接收数据模块。
1)系统初始化程序
系统初始化程序如下:
2)数码管显示模块
数码管显示模块的驱动程序如下:
3)发送数据模块
系统初始化,准备好数据包,将数据包存入发送缓冲器SBUF,设置好单片机定时器及波特率,将误帧仪与PC机用串口线连接,用串口调试工具终端检测PC是否接收到发送的数据包,如果串口调试工具终端能接收到误帧仪发送的数据,则发送模块调试成功,其代码为:
4)接收数据模块
系统初始化,设置好单片机定时器及波特率,并使误帧仪处于接收状态,将误帧仪与PC机用串口线连接,用串口调试工具终端向误帧仪发送数据,如果误帧仪数码管显示模块能显示出串口调试工具终端发送的数据,则接收模块调试成功,其代码为:
5 误帧测试仪的调试与测试
5.1 硬件与软件的调试
5.1.1 硬件调试
硬件的好坏直接影响到测试的结果,也影响程序调试的进度。硬件调试是整个系统设计的重要环节。系统硬件由两块电路板组成,电路较为复杂,模块较多,每个模块都要经历硬件调试的各个步骤,具体调试可分为静态检查和加电检查。静态检查主要检查整个电路板是否有虚焊、脱焊、短路、断路情况,观察元件安装是否正确,特别是芯片座及一些有极性元件是否装反。加电检查包括不安装重要芯片情况下的通电检查、装上芯片后的检查和后期检查。不安装重要芯片情况下的通电检查,主要是防止电路设计中疏忽的细节问题造成重要芯片的损坏。安装上芯片后,主要检查芯片安装是否正确,确认无误后,通电检查芯片和外围元件等是否正常。
5.1.2 软件调试
后期检查指的是在程序调试过程中遇到问题所进行的检查。软件调试的大部分都是建立在硬件调试的基础上,而且在中后期也是和硬件调试混合在一起。在软件的编写上,采用了模块化的设计,将各个模块的程序单独调试成功之后,再连接在一起调试[4]。
5.2 误帧测试仪的测试[5]
5.2.1 测试方案一
在没有电台的条件下,误帧仪的测试方案如图7所示。
图7 误帧测试方案图
将两台误帧仪按图7进行连接,由于误帧仪本身可以发送和接收数据,以上测试方案是可行的。将两个误帧仪用一根交叉串口线连接进行测试。测试分为两步:发送的数据与预设的数据相同,检测此时的误帧率;发送的数据与预设的数据不同,人为地设定错误,如将数据帧06改为07,检测此时的误帧率。
5.2.2 测试方案二
在接电台的条件下,误帧仪的测试方案如图8所示。
图8 误帧率测试方案图
方案中采用日本日精公司ND889A专业数传电台两台、由单片机构成的误帧测试仪2台、佛山市健博通电讯实业有限公司TQJ-230c全向天线、定向天线及馈线等。其中ND889A数传电台工作在UHF频段上,收发机均采用最先进的FET低噪声放大电路,发射功率大,接收灵敏度高,数传误码率低,带有RSSI电平指示输出。
发端发出的数据经过误帧测试仪检测后通过RS-232接口从数传电台的TXD脚输入,通过电台内置的Modem进行调制后发送到空中。在收端,数传电台接收到信号后,内置的Modem把解调出来的数据信号从RXD脚输出,通过RS-232接口传至误帧测试仪进行检测。
5.2.3 测试结果分析
两次测试的结果如表1所示。
表1 测试结果比较
实测时,波特率设为2400 baud,循环周期为100次,即发送10200帧数据,发送码元总数为102000个码元,测试用时42.5 s,可测量的误码率环境为10-5。测试结果表明系统正常工作时间内无误码出现,设备可用,较好地体现了异步串行方式传输数据的优点。测试结果证明,误帧测试仪系统性能良好,可以用于实际工程中。
6 小结
异步串行通信是无线数据通信采用的主要传输方式,针对无线数据通信系统勘察设计的实际要求,开发设计出的无线数据通信误帧率测试仪具有体积小、成本低、稳定可靠、高性价比等优点,可极大拓宽嵌入式视频监控的应用范围。随着无线通信技术的发展以及人们对无线信道低误帧率等指标的要求也越来越高,误帧测试仪将有广泛的市场。
[1]郭梯云,邬国扬,李建东.移动通信[M].西安:西安电子科技大学出版社,2006.
[2]Atmel.8-bit microcontroller with 8K bytes in-system programmable flash-AT89S52[EB/OL].[2010-01-01].http://www.datasheetcatalog.org/datasheet/atmel/doc1919.pdf.
[3]袁兰英,蒋湘,黄继武.异步数据通道误码测试仪的研制[J].武汉大学学报:自然科学版,1997(10):677-680.
[4]蒋海明,张剑英,赵二涛,等.PPLive网络电视通信机制研究[J].电视技术,2009,33(12):61-63.
[5]李剑雄.CDMA移动台误帧率的测试[J].中国无线电管理,2000(10):24.