基于FPGA的数字通信误码测试系统设计摘要:本文提出了一种基于FPGA的数字通信误码测试系统设计方法,重点讨论了实现误码测试的伪随机序列产生,自校验误码插入,位同步原理及实现方法,在EP1K30TC144-3FPGA上实现了测试系统的核心模块。关键词:误码测试FPGA在数字通信系统传输过程中,无论是设备故障,还是传播衰落、码间干扰、邻近波道干扰等,都可能造成系统性能变差甚至造成通信中断,其结果都可以通过误码的形式表现出来。数字通信系统的研发制造、运行维护中最基本的性能指标测试是误码测试。本文提出了基于FPGA的数字通信误码测试系统的设计方法,重点讨论了实现误码测试的伪随机序列产生,自校验误码插入,位同步等关键技术原理及实现方法,并在Altera公司EP1K30TC144-3FPGA上实现了测试系统的核心模块。1.系统组成原理数字通信系统的误码测试一般有近端测试和远端测试2种方式,如图1(a)、(b)所示。(a)近端测试(单向)方式图(b)远端测试(环路)方式图图1数字通信系统的误码测试图1中误码测试发送部分与误码测试接收部分为误码测试系统的基本组成。本文设计的误码测试发送和接收系统图分别如图2和图3所示。图2误码测试发送系统码型产生与发送接收与误码检测被测通信系统码型产生与发送接收与误码检测被测通信系统时钟信号发生器码型产生与选择误码插入控制输出接口电路控制码型产生比特误码检测误码计数输出图(3)误码测试接收系统误码测试发送部分主要由时钟信号发生器、伪随机码和人工码发生器、误码插入发生器以及接口电路组成,它可以输出各种不同序列长度的伪随机码(从(2^7-1)~(2^23-1)bit)和16bit的人工码,以满足ITU-T对不同速率的PCM系统所规定的不同测试用的序列长度。它具有“0”码插入功能,并能发出带有10^-3~10^-6误码率的数据,可用于检测被测设备和系统的承受能力和检测告警功能等。接口电路用来实现输出CMI码、HDB3码、NRZ码和RZ码等码型,以适应符合ITU-T要求的被测电路的各种不同接口码型。输出码型经被测信道或被测设备后,由误码测试接收部分接收,接收部分可产生一个与发送部分码发生器产生的图像完全相同的且严格同步的码型,并以此为标准,在比特比较器中与输入的图案进行逐比特比较。被测设备产生的任何一个错误比特,都会被检出误码,并送误码计数器显示。2.伪随机序列发生与自校验误码插入误码测试系统的工作码流是伪随机序列。m序列具有良好的伪随机噪声性质,是在通信工程中被广泛应用的伪随机序列之一,本系统采用m序列发生器产生伪随机序列。图4为n=7的伪随机序列发生器结构。伪随机序列发生器在2.048MHz时钟信号的作用下产生序列长度为2^7-1=127的伪随机序列。图(4)n=7伪随机序列发生器结构图伪随机序列发生器部分VHDL源程序如下:libraryieee;useieee.std_logic_1164.al;lentitympsn7isport(clk:instd_logic;load:instd_logic;Q:outstd_logic);1234567同步检测被测序列输出+输出序列endmpsn7;architectureoneofmpsn7issignalc0,c1,c2,c3,c4,c5,c6,c7:std_log-ic;beginprocess(clk,load)beginif(clk′eventandclk=′1′)thenif(load=′1′)thenc7=′0′;c6=′0′;c5=′0′;c4=′0′;c3=′0′;c2=′0′;c1=′0′;c0=′1′;Q=c7;elsec1=c0;c2=c1;c3=c2;c4=c3;c5=c4;c6=c5;c7=c6;c0=c7xorc4xorc3xorc2;Q=c7;endif;endif;endprocess;endone;图(5)给出了在EP1K30TC144-3FPGA上实现VHDL伪随机序列发生器模块时序仿真结果。伪随机序列通过误码插入模块实现“禁插”和“插入单个误码”功能的选择。误码插入模块由时钟控制的二级D触发器构成,如图6所示。经过误码插入处理后的码流下一步流入接口电路。3.同步设计原理要实现正确检测必须使被测信号与接收端的伪随机码发生器产生的伪随机码同步。同步过程由同步检测电路完成。一旦失步,同步检测送出一脉冲信号控制开关,使码型发生器反馈中断,由被测信号取代伪随机码,并开始同步捕捉,一旦检查到连续32bit无误码,就认为同步。这时,同步检测电路控制开关,断开送入码型发生器的被测信号,使码型发生器环路闭合。误码测量时,一次测量持续的时间间隔(t0)由计数器控制,t0也就是闸门脉冲宽度。ITU-T推荐用于电话业务的误码测量时间间隔为1min,这与一次电话呼叫的平均时间相当:用于数据业务的误码测量时间间隔取1s,这与分组码码长相当。当被测信号送入误码测试的接收部分后,一个很重要的工作是提取位同步时钟信号。位同步的方法有插入导频法(外同步法)和直接法(自同步法)2种。插入导频法是在发送有用信号的同时,在适当频率位置上插入一个(或多个)称为导频的正弦波;直接法则不需要专门的导频,而是在接收信号中直接提取同步信号。数字通信中常使用数字锁相法,本测试系统采用微分整流型数字锁相环提取位同步信号。位同步是数字通信系统有效可靠工作的基础,其性能的好坏直接影响到整个数字通信系统的好坏,因此采用一个良好的位同步系统至关重要。微分整流型数字锁相环法实现位同步的基本原理是:输入信码经微分整流器输出位同步基准脉冲,这些脉冲包含了输入信码的边沿信息。本地振荡器产生的脉冲经控制电路扣除或附加脉冲后再经N分频输出位同步脉冲。由于发端信码时钟振荡源与接收端本地振荡源存在频率和相位上的误差,数字鉴相器可根据误差的大小输出分频比调整信号,不断扣除或附加脉冲,保证位同步脉冲与位同步基准脉冲之间的相位误差在给定的范围内。图7为在EP1K30TC144-3FPGA中实现的位同步模块顶层原理图。添加脉冲控制图(7)FPGA位同步模块顶层仿真图图(7)中位同步基准脉冲作为相位比较器的触发脉冲。当位基准脉冲出现时,相位比较器就从可变模分频器中读出分频器计数值,并判别是同步、滞后或是超前状态,然后再根据判断结果来修改分频器模值存储器中的模值。可变模分频器在完成一个分频周期输出位同步脉冲时,会重新加载分频器模值存储器中的模值。高频时钟信号的频率应远高于基带码元的速率。位同步脉冲要求能在最佳判决时刻对接收码元进行抽样判决。在一般接收时可在码元的中间位置抽样判决,而在最佳接收时应在码元的终止时刻进行抽样判决。这两种情况对相位比较器的要求是不同的。设码元速率为fb,本地振荡器频率为Nfb,即可变模分频器的初始分频值为N。这里选择的是一般接收,当位同步基准到来时,如果读取的分频器计数值为N/2,则判为同步状态;大于N/2时判为滞后状态;小于N/2时判为超前状态。分频器按减1计数,那么滞后状态时应减小分频值,超前状态时应增大分频值。因为本地振荡器的频率fosc=Nfb,所以,选择本地振荡器的频率实际上就是选择合适的分频值。分频值的选取则与同步的精度有关。若fb=1200bit/s,本地fosc=12MHz,若取N=fosc/fb=10000,则相位误差最高,这将导致同步建立时间变长,且需设计一个14位长的可变模分频器(计数器),使设计占用FPGA的资源较大。在可变模分频器前加一个定模分频器(模100),则N=100,只需设计一个7位长的可变模分频器。此时同步精度会有所降低,但节省了FPGA片内资源,同时也缩短了同步建立时间。锁相环法位同步的主要性能指标有相位误差、同步建立时间、同步保持时间和同步带宽等。在初始建立同步时,同步建立时间的长短与初始相位误差有关,最差的情况是初始相位是半个码元宽度t/2。设分频值为N,且连“0”码与连“1”码的概率与“0”、“1”交替出现的概率相等,则最大的同步建立时间为Ntb。可见N越大,同步建立时间越长。另一方面,分频值为N时对应的相位误差为360°/N,N越大,相位误差越小,本系统相位误差小于3°。4.心得体会:紧张的大三一直坚持了一个学期,刚考完就开始做课程设计,通信原理学的理论比较多,设计实物实在是费了力气,每天在图书馆查阅资料知道了做设计的难处,另外也明白了一个设计要做到应付各种情况有多么不容易,要考虑到所有的情况。这个学期学习了EDA我就用VHDL语言结合资料做了这个设计,从程序调试到仿真都是一个艰辛的历程,设计的路上有苦也有甜,当设计有眉目的时候那种喜悦是什么都不能比拟的。相位比较器可变模分频器扣除脉冲控制两脉冲输出位同步基准提取本地振荡器本文以EP1K30TC144-3FPGA为核心模块,实现了数字通信的误码检测。由于FPGA片内资源充裕,功耗低,设计效率高,使本误码测试系统与采用传统数模结合方法实现的系统相比,具有功能设置灵活,可靠性高的优点。设计思路是最重要的,只要你的设计思路是成功的,那你的设计已经成功了一半。因此我们应该在设计前做好充分的准备,像查找详细的资料,为我们设计的成功打下坚实的基础。对设计出来的电路进行,一步步的分析调试,最终的一个比较满意的结果。要熟练地掌握课本上的知识,这样才能对试验中出现的问题进行分析解决。本次实习给我最大的教育就是要认真学习,我们这个学期学习通信原理以及EDA时候由于我正忙于准备考研所以课下看的时间就少了很多,到设计时候什么都记不起来,什么都要翻书,这种情形使我很恼火,怎么什么都不会呢,学习要扎实不是没有道理的,如果什么都看书那我们的效率也就没了,做完设计我的大学生活三年了,在过去的三年里我经历了很多,懂了很多,接下来的半年是考研的关键时间应该抓紧时间准备了。最后谢谢薛艳茹老师的精心指导,希望老师多领我们做些设计,我觉得这样学好多知识。AdesignofTestsystemaccordingFPGAtothenumericalcorrespondencemistakeofthecodeAbstract::ThispaperpresentsaFPGA-baseddigitalcommunicationssystemwhichisdesignedforerrortesting,focusedontherealizationofthetesterrorpseudo-randomsequencegenerated,sincethechecksumerrorinsertion,bitsynchronizationprincipleandmethod,InEP1K30TC144-3FPGArealizingthetestsystem'scoremodule.Keyword:BERtestFPGA参考文献:[1]樊昌信.通信原理.第五版[M].北京:国防工业出版社,2000.[2]沈越泓高媛媛魏以民编著,《通信原理》,机械工业出版社,2004[3]曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,2000.[4]杨同友,刘炎卿.光纤通信系统测试[M].北京:人民邮电出版社,1993.[5]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2002.