基于FPGA的误码率测试 与研究_第1页
基于FPGA的误码率测试 与研究_第2页
基于FPGA的误码率测试 与研究_第3页
基于FPGA的误码率测试 与研究_第4页
基于FPGA的误码率测试 与研究_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 题目名称: 基于fpga的误码率测试 目 录一、设计任务及内容31.1设计任务31.2设计内容3二、设计方案32、1系统需求分析32、2系统总体设计方案42、3方案论证4三、系统硬件设计53、1硬件系统总体设计方案53、2误码率检测系统的设计53、2、1 fpga芯片的介绍53、2、2误码率发送子系统的设计63、2、3 误码率接收子系统的设计63、3单片机最小系统的设计73、3、1 stc89le52芯片的介绍73、3、2复位电路的设计103、3、3外部晶振电路的设计103、4显示系统的设计11四、系统软件设计114、1 fpga部分的设计11411误码检测电路的设计11412伪随机码产生模

2、块的设计13413误码插入模块的设计13414伪随机码同步模块的设计144、2单片机部分的设计154.2.1数据处理模块154.2.2显示模块16五、系统调试185、1 误码率测试的fpga仿真调试185、2 单片机的调试19六、课程设计总结19七、参考文献20八、附录21一、 设计任务及内容1.1设计任务课题的任务是数字通信系统中需要误码率在线测试单元,要求能够实时显示接收数据的误码率。1.2设计内容本文主要有fpga和单片机两部分组成。fpga主要用max+plus为软件平台,基于flex10k芯片,通过vhdl语言,采用自顶向下的设计流程完成误码的检测。单片机将检测到的误码进行算法处理,

3、得到整个信道的比较准确和可靠的实时误码率,并输出显示。二、 设计方案2、1系统需求分析经过分析,整个设计由两个独立的子系统:发送子系统和接收子系统构成。 误码仪发送子系统完成误码测试中伪随机测试码的发送基本功能。为方便系统的参数调整和基本功能的实现,提高误码测试系统的灵活性,误码仪发送子系统由fpga芯片和单片机芯片来实现,需要完成系统要求的如下基本功能模块: 2151伪随机码产生模块; 误码插入模块; 接口码型编码模块 接口电平转换模块 单片机控制模块 误码仪接收子系统在整个误码仪系统中作为系统的核心系统,完成误码的统计计算以及显示。需要完成如下几个功能模块: 接口电平转换模块 接口码型译码

4、模块 同步时钟提取模块 伪随机测试码同步模块 误码统计及误码率运算程序 lcd信息输出模块 eeprom数据存储模块2、2系统总体设计方案根据系统需求分析,可把误码仪分解为两个独立的子系统:发送子系统和接收子系统。如图1所示,给出了构成误码仪系统的总体结构。发送子系统完成测试信号的发送和信道编码的基本功能,而接收子系统负责误码仪误码测试子系统与操作人员信息交换。采用这种收发系统分开的结构方式可以方便地进行单程误码测试和环路误码测试,使得测试系统的应用范围更大更灵活。 接口码型编码模块伪随机码产生模块误码插入模 块单片机控制 模 块误 码 统计 模 块伪随机码同步 模块接口码型译码模块单片机控制

5、 模 块 图1误码仪总体结构图 根据系统需求制定了系统总构架框图,选用大规模可编程门阵列芯片fpga作为主控芯片,利用eda软件设计fpga的外围电路和必要的功能电路,例如电源电路,存储器电路等等,设计的同时在eda实验板上设计各个功能模块的软件,由于vhdl是基于硬件的编程语言,所以需要软件和硬件设计同时进行,相辅相成,根据eda实验模拟仿真后,总结出需要设计的硬件功能以及管脚的分配,最后确定硬件的电路设计并制版,完成后基于模块单元逐步调试,在硬件电路确定正常工作后,开始进行基于该硬件系统的误码仪内核的编写,并上板调试,直至最终设计完成。2、3方案论证根据系统需求制定了系统总构架框图,把误码

6、仪系统分为发送子系统和接收 子系统,这样的结构虽然电路和程序都复杂化了,但是由于收发系统可以分开独立工作,使得误码仪可以应用在单程的测试中,这是很多误码仪中没有的功能。在设计独立分开的收发系统时,只要能解决伪随机码的同步和位时钟的同步就可以实现伪随机码的比较,从码元比较结果可以得出码元在信道传输中产生的误码数。在fpga芯片中可以采用随机窗口滑动比较技术来解决伪随机码同步问题。为了让误码仪能适应多种速率下的测试功能,传输码元的速率也是可变的,因此要求接收系统必须有提取多种不同码元速率同步时钟的功能,通过设置接收系统中位时钟提取电路的时钟分频数可以达到适应多种速率的要求。由此可知,本误码仪总体结

7、构方案是合理,科学的三、 系统硬件设计3、1硬件系统总体设计方案本系统是以单片机中心,将各个模块结合起来。误码测试的是要检测出同步头的误码个数,将结果送往cpu进行算法处理,再把结果用数码管输出显示。误码率在线测试电路也是整个系统的核心单元,这部分主要用fpga来实现。电路总框如图2所示误码率检测电路扩展并行接口晶振及复位电路cpu显示电路 图2 误码率测试电路结构框图3、2误码率检测系统的设计3、2、1 fpga芯片的介绍fpga是现场可编程门阵列(field programmable gate array)的简称。一般采用查找表结构,查找表结构根据查表结果来实现,而不是通过计算,比用一般逻

8、辑实现的算法快。fpga器件一般采用sram工艺。fpga器件具有下列优点:高密度、高速度、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。altera公司fpga器件:flex6000,flex8000,flex10k,flex10e,cyclone,cycloneii,stratix,stratixii,stratixgx。这些器件都采用了查找表(look up table)来实现逻辑功能,采用sram工艺制造。上面器件最小单元为le,每个le包含一个4输入的lut、一个可编程的具有同步使能的触发器、进位链和级联链。3、2、2误码率发送

9、子系统的设计 发送系统是误码仪的测试码元发送端,主要完成以下几个功能。原理图见附录二:系统硬件原理图(1)发送系统原理图,相应的pcb图见附录三:系统硬件pcb 图(1)发送系统pcb。m序列发生器 llq序列发生模块的主要功能是根据用户的速率要求产生测试序列一一m序 列。实际设计时,采用itu-t建议的用于低速数据传输设备测试误码的m序列, 其特征多项式为x15+xh+1。 插入误码控制模块 发送端另外一个重要的功能是实现误码插入。也就是在发送序列中插入固定频率的误码信号,然后在接收端检测这些误码,最后可以将检测的结果与发送端 己插入误码率进行比较,以判断通信系统的误码性能。这也是检测通信系

10、统的误 码性能的重要方法之一汹1。该模块的实现相对较为简单,只要在相应码元上对发送数字量作取反操作即可。 3、2、3 误码率接收子系统的设计接收系统是误码仪的接收和测量端,主要完成以下几个功能。原理图见附录二:系统硬件原理图(2)接收系统原理图,相应的pcb图见附录三:系统硬件pcb图(2)接收系统pcb。 位同步模块位同步模块的主要功能是从传来的码元中提取位同步信息码元时钟,并将这一时钟提供给本地序列同步模块,以便在本地恢复出与测试序列同步的检验序列。 本地序列同步模块 在位时钟的控制下产生本地伪随机序列,本地伪随机序列与伪随机码序列产 生器的发送序列是完全一样的码型。由于传输过程中,信道的

11、延时是不确定的,不同的通信信道,延时的时间长度不一样,造成接收到的伪随机序列跟本地的伪随机序列有一相位差,而这个相位差也是不确定的,因此模块中采用了滑动窗口 比较的方法来保证接收到的伪随机序列跟本地的伪随机序列相位同步。采用这种 同步方式,不需要插入特定的帧同步码,提高了误码仪在检测过程中的准确度。 滑动窗口比较技术是在两路较长序列中同时截取其中的-4,段作为比较,截取时间是随机的,因此截取的码元序列也是随机的。当截取的段中序列对应位状态不一致,即状态不同步时,电路产生一个控制信号,通过停扣时钟电路扣除一个时钟脉冲。这样经过停扣时钟电路的时钟信号来触发本地伪码发生器,相当于本地位码序列延迟一个

12、时钟周期,也就是说,本地伪码序列等待一个时钟周期,然后再与接收序列进行比较。当电路扣除一个时钟周期后,在下一个窗口截取序列时,其实就相当于把本地序列的截取窗口往后滑动了一个码元宽度。在截取序列判断时,若连续几次发现本地序列和接收序列状态相同,则认为接收序列与本地序列已经达到同步,此时电路停止扣除时钟信号,同时通知相应电路“可以进行码元比较了”。当序列达到同步时,同步保护电路开始起作用。在同步保护状态下,若窗口截取的序列由于传输误码而引起码元判断不一致时,电路不会马上通过扣除时钟来调整,而是保持同步状态,只有当连续几个截取窗口的码元序列都不一致时,才能认为是失步了,此时可以进行扣除时钟重新调整同

13、步。同步保护电路的功能一方面是起同步控制作用,另一方面是在系统状态同步后,一旦出现误码或短时的不同步,也不立即进行同步捕获,而是设置了一定的失锁保护时间,以保证系统同步的稳定性。 序列比较模块 序列比较模块用于比较检验序列与测试序列的一致性。通过比较就能知道经 过被测信道传输后测试序列中有多少码元产生了错误,并以此评估被测信道的性 能。由于133序列是周期序列,所以测试序列与检验序列的比较必须在周期的同一位置开始进行(即同相)。这也是本地序列同步模块的另一项重要功能。完成了序列比较后,序列比较模块将实时地把传输的总码元数和误码数传送给单片机。 设计中采用逐位比较型误码检测的方法,其基本原理是通

14、过发端和收端两列类型相同的序列经过同步处理之后逐个码元进行比较,若出现误码,那么两列码序列中本来相同的码元就会变得不同,利用这种差异性,在位同步时钟的控制下通过异或门逐个码元进行比较,将比较的结果通过计数器送到显示电路进行显 示。3、3单片机最小系统的设计3、3、1 stc89le52芯片的介绍stc89c51rc/rd+ 系列单片机是宏晶科技推出的新一代超强抗干扰/ 高速/ 低功耗的单片机,指令代码完全兼容传统8051 单片机,12 时钟/ 机器周期和6 时钟/ 机器周期可任意选择,最新的d 版本内部集成max810 专用复位电路。特点:1. 增强型6 时钟/ 机器周期,12 时钟/ 机器周

15、期 8051 cpu2. 工作电压:5.5v - 3.4v(5v 单片机) / 3.8v - 2.0v(3v 单片机)3. 工作频率范围:0 - 40 mhz,相当于普通8051 的 080mhz.实际工作频率可达48mhz.4. 用户应用程序空间 4k / 8k / 13k / 16k / 20k / 32k / 64k 字节5. 片上集成 1280 字节 / 512 字节 ram6. 通用i/o 口(32/36 个),复位后为: p1/p2/p3/p4 是准双向口/ 弱上拉(普通8051 传统i/o 口)p0 口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为i/o 口用时,需加上拉电阻

16、。7 . i s p (在系统可编程)/ i a p (在应用可编程),无需专用编程器/ 仿真器可通过串口(p3.0/p3.1)直接下载用户程序,8k 程序3 秒即可完成一片8. eeprom 功能9. 看门狗10.内部集成max810 专用复位电路(d 版本才有),外部晶体20m 以下时,可省外部复位电路 图3 stc89le52芯片引脚图引脚介绍:1、主电源引脚vss和vcc vss接地 vcc正常操作时为+5伏电源2、外接晶振引脚xtal1和xtal2 xtal1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 xtal2内部振荡电路反相放大器的输出

17、端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。3、控制或与其它电源复用引脚rst/vpd,ale/ , 和 /vpp rst/vpd 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在vcc掉电期间,此引脚可接上备用电源,由vpd向内部提供备用电源,以保持内部ram中的数据。 ale/ 正常操作时为ale功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ale 引脚以不变的频率(振荡器频率的 )周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ale脉冲,ale 端可以驱

18、动(吸收或输出电流)八个lsttl电路。 对于eprom型单片机,在eprom编程期间,此引脚接收编程脉冲( 功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, 在每个机器周期内两次有效。 同样可以驱动八lsttl输入。 /vpp 、 /vpp为内部程序存储器和外部程序存储器选择端。当 /vpp为高电平时,访问内部程序存储器,当 /vpp 为低电平时,则访问外部程序存储器。对于eprom型单片机,在eprom编程期间,此引脚上加21伏eprom编程电源(vpp)。4、输入/输出引脚p0、p1、p2和p3口p0.0p0.7(3932脚):访问片外存贮器时作为低八位地址

19、线和八位数据线(复用)。负载能力为8个lsttl门。p1.0p1.7(18脚): 8位准双向i/o口。负载能力为3个lsttl门。p2.0p2.7(2128脚):访问片外存贮器时作为高八位地址线。p3.0p3.7(1017脚):8位准双向i/o口。负载能力为3个lsttl门。另外还有专门的第二功能。3、3、2复位电路的设计 图4 复位电路图4中s22、c13、r17构成复位电路是较为简单的上电复位模式,该电路具有上电自动复位和手动复位功能。rio$1c12构成rc充电电路,在上电时,电源通过rio对电容c13充电,在充电期间,单片机复位脚的电平由高至低变化,当电容达到饱和时,复位脚的电平保持在

20、“0”电平,从而使得单片机进入正常工作状态。当需要手动复位时,按键s22按下,单片机复位脚变为高电平,单片机进入复位状态,同时电容c13放电。放开按键后,电源重新对c13电容进行充电直至饱和后,单片机复位脚重新恢复“0电平,重新进入正常工作状态。采用这种复位电路可以避免以下两种不利现象: (1)电源二次开关间隔太短时,复位不可靠; (2)当电源电压中有浪涌现象时,可能在浪涌消失后不能产生复位脉冲。 通过此电路产生的复位信号分别对单片机及其外设进行可靠复位3、3、3外部晶振电路的设计 图5 外部晶振电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂 的同步时序电路,为了保证同

21、步工作方式的实现,电路应在唯一的时钟信号控制 下严格地按时序进行工作。图38中c15、c16、y2构成振荡电路,振荡电路的接法很固定汹1。与单片机的xtall和xtal2管脚相连接。振荡频率fosc主要由石英晶体的频率确定,不同型号的产品可选的频率范围有所不同。一般在05-24mhz之间。典型值为12mhz、110592mhz和6mhz。电容c15和c16主要作用是帮助振荡器起振其值的大小对振荡频率也有影响,因此常用调节电容的大小实现对频率微调,典型值为30pf。在pcb设计的时候应该注意该部分的电路与单片机紧紧相靠,这样以保证时钟的稳定性。 电路中jpxx2接口是单片机程序下载接口,at89

22、s52单片机足i:at89c51单片机的管脚完全兼容同样都是51内核,只是at89s52支持isp在线程序模块而且内部存储容量比at89c51大一倍,所以在单片机选型的时候决定选用at89s52。jpxx2就是isp程序下载接口,用来将编译好的十六进制或者二进制源代码下载到单片机内进行在线调试。 jp001、jp002、jp003是上拉排阻,因为单片机的po口内部没有上拉电阻,i0口没有驱动能力所以我们在使用po口的时候必须加上拉电阻。其他的io口虽然内部具有上拉电阻,但是驱动能力比较微弱,因此也加接上上拉电阻用来加强iod的驱动能力。3、4显示系统的设计显示部分采用数码显示。基本的半导体数码

23、管是由7个条状的发光二极管(led)按顺序排列而成的,可实现数字09及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个led组成,我们分别把这些发光二极管命名为 a,b,c,d,e,f,g,dp。led显示器的控制方式有静态显示和动态显示。静态显示是当显示某个字符时,相应的发光二极管恒定导通或截止。这种显示方式的每一位都需要1个8位输出口控制。而动态显示是指逐位扫描轮流显示,在这种显示控制方法中,显示分时工作,每次只能有一个器件显示,由于人的视觉暂留。所以从宏观上看起来是所有器件在工作。本设计就采用动态显示。本设计中利用串行输入bcd码-十进制译码驱动显示器件

24、mc14499来完成与单片机系统的显示接口。显示方式采用4个共阴led8字数码管。9四、 系统软件设计4、1 fpga部分的设计411误码检测电路的设计在通信系统中具有独特的帧结构,每一帧长为19.2mbs,其中同步头为连续7个128位的伪随即码。误码率的目的就是要检测出同步头的误码个数,将结果送往cpu进行算法处理,得到实时误码率。7w5开w2读入开w5复位w11复位开w3开w2开clkdata同步捕捉128位寄存器48位辅计数器开关电路1128位寄存器pn码异或128位计数器38.4k计数器64k主计数器10比特896比特清零error关闭开关电路2w1开w2关闭输出图6 误码测试电路的原

25、理图如图6所示,解调后的19.2 mbs的基带数据流和时钟输入到同步电路和128位移位寄存器中,首先同步电路开始搜索同步头,以128位伪随即码的前16位作为同步头初捕译码电路,如在数据流中捕到相同的16位数据,则送出初同步信号w1,在开关电路1打开的情况下,送出真正的帧同步信号w11,w11打开开关电路2并使所有的计数器清零后开始记数同时将128位伪随即码“异或”处理后的数据读到另外128位移位寄存器中。如果有误码,则读入数据对应位为“1”,反之为“0”。在随后的128个时钟作用下,将128位移位寄存器中的数据经开关电路2串行移入64k主计数器和48位辅助计数器,遇“1”记一次数,遇“0”不记

26、数,当记到128个时钟后,再将下一个128位伪随即码进行“异或”处理后读入128位移位寄存器中,然后再一次进行误码记数。如此操作7次,就记数完在7个128位伪随即码中检测到误码,w4信号关闭开关电路2,使两个误码计数器停止记数。在下一帧开始时,38.4k计数器送出一个信号w5,w5就再次打开开关电路2,使64k主计数器开始记数,并将辅助记数器清零后重新开始记数。辅助记数器的作用就是当w1为假同步或误码数很高,一帧同步头误码数达到48个以上时,就判断数据以失步,此时送出信号w2,w2打开开关电路1,同步搜索电路重新捕捉同步头,w2并关闭38.4k记数器。w3信号的作用就是为了保证只有第一个128

27、位伪随即码的同步头起作用,防止第二个到第七个128位伪随即码和数据中的伪同步头起作用而设计的。11412伪随机码产生模块的设计通常产生伪随机序列的电路为一反馈移存器。它可分为线性反馈移存器和非 线性反馈移存器两类。由线性反馈移存器产生出的周期晟长的二进制数字序列称 为最大长度线性反馈移存器序列,通常简称为m序列。 一个n级反馈移存器町能产生的最长周期等于(2n_1)。根据反馈系数的取值不同,电路可以产生出各种具有不同特性的数字序列。对于一定的移位寄存器级数r,存在一些特殊的ci取值,使得输出序列的周期达到最长,即为2l1。这样的序列被称为最长线性反馈移位寄存器序列,印m序列。 本误码仪采用2“

28、一1比特伪随机码进行测试。图4 8是2“一l比特伪随机码发生器结构图其生成多项式采用ccitt建议的x“嘣“+l的结构,采用15级移位寄存器构成,同时为了打破由于寄存器全“0”引起的非输出状态第一级寄存器的初始状态由全部寄存器的状态共同控制;当全部寄存器状态都为0时,第一级寄存器的初始状态为1,当时钟到来后第一级寄存器的状态就会变为“l”,从而打破了全“0”的状态。 图7 伪随机码产生电路413误码插入模块的设计误码插入就是在传输的码元中人为地插入一些固定的误码,以便在接收端能 够检测并显示出来,通过对比来验证系统是否正常工作。插入误码的具体实现方 法就是将输入码元与其反码相异或,这样就可以达

29、到产生误码的目的,具体电路 如图8所示。 图8 误码插入模块连接图clk是与码元同步的输入时钟信号,clls是外部单片机提供的周期为1s的基准时钟信号,而errset30则是插入误码率的选择信号。err_cont是误码控制信号,当信号为高电平“1时,对输出的伪随机序列信号进行取反,从而人为的形成一定的误码,这些插入误码的数量是可控的,通过控nerr 信号高电平的定时长度就可以控制插入的误码个数, 码插入控制模块。 414伪随机码同步模块的设计在接收系统中,伪随机码的同步是误码测试的关键技术,只有当接收的伪随 机序列跟本地的伪随机序列完全同步时,才能够进行误码统计计算。现有的同步 技术多种多样,

30、一般情况下大多数是采用插入帧同步码进行,也就是说在发送端 的伪随机序列前面插入一个固定的帧同步码,接收端通过对帧同步码的检测来得到伪随机序列的起始码元,同时调整本地伪随机序列发生器,使得接收序列跟本地序列达到同步。由于插入的帧同步码不参与误码的比较,因此通过插入帧同步 码来达到同步的方法对错误码的统计是存在误差的。本设计采用的是滑动窗口比 较技术来达到同步,这种方法不需要插入帧同步码,当系统达到同步以后,所有 的传输码元都参与错误码的统计,因此不存在误码计数的误差。其模块接口如图 9所示。 图9 伪随机码同步模块接口图 图9中,data是接收序列输入端。clk是位同步时钟输入端。rest是模块

31、复位端,当复位有效时,模块内部电路将重新进入同步搜索状态。code a和code b分别是接收序列输出端和本地序列输出端,在程序调试时,可以通过示波器观察这两路信号的同步情况,同时通过对这两路信号的比较可以得出传输中的误码信息。clkout是位同步时钟输出端。synplus是移位时钟扣除脉冲。cp_cont是在比较截取码元后扣除了一位时钟周期的移位时钟。test_time是比较截取码元的定时脉冲。syn out是同步输出信号,当接收的序列跟本地序列达到同步时输出“1电平,否则为“0”电平。伪随机码同步模块的内部电路图如图10所示。 图10 伪随机码同步模块内部电路图4、2单片机部分的设计4.2

32、.1数据处理模块 开机后,将检测电路的设计程序主动加载到flex10k10器件中,其余个部件完成初始化工作。解调后的基带数据和时钟输入到检测电路,检测电路在一定时间段内给at89s2cpu int。口送一中断信号,cpu响应中断,从8255的b口采集检测电路检测到的误码数的高8位数据,从a口采集低8位数据,然后存储到cpu内部数据存储区或外部ram中,接下来对数据进行处理,将处理结果送往显示电路进行显示,提供一个直观手段。17程序流程图如下系统开机复位系统初始化误码数据采集数据处理等待外部中断响应中断误码率实时显示图11 数据处理模块的流程图4.2.2显示模块数码管要正常显示,就要用驱动电路来

33、驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。本设计采用动态驱动方式进行编程。动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码。9本设计中共有四个数码管。第一位显示个位和小数点,第二位为小数点后第一位,第三位为“一”号,第四位为一数字。当设定每一个128位伪随机码中误码个数为2时,电路板的四个数码管显示为:“1.5-2”,表示误码率为1.5%;程序流程图如下ny开始

34、初始化读入数据设置4个位码读段码送位码延时位加1判断n是否为4图12 显示电路的流程图五、 系统调试5、1 误码率测试的fpga仿真调试5.1.1伪随机码产生模块的仿真调试本误码仪采用2“一1比特伪随机码进行测试。图4 8是2“一l比特伪随机码发生器结构图其生成多项式采用ccitt建议的x“嘣“+l的结构,采用15级移位寄存器构成,同时为了打破由于寄存器全“0”引起的非输出状态第一级寄存器的初始状态由全部寄存器的状态共同控制;当全部寄存器状态都为0时,第一级寄存器的初始状态为1,当时钟到来后第一级寄存器的状态就会变为“l”,从而打破了全“0”的状态。伪随机码产生电路的仿真波形如图12所示。 图

35、13 伪随机码产生电路仿真波形图512误码插入模块的仿真调试 clk是与码元同步的输入时钟信号,clls是外部单片机提供的周期为1s的基准时钟信号,而errset30则是插入误码率的选择信号。err_cont是误码控制信号,当信号为高电平“1时,对输出的伪随机序列信号进行取反,从而人为的形成一定的误码,这些插入误码的数量是可控的,通过控nerr 信号高电平的定时长度就可以控制插入的误码个数, 码插入控制模块。 在本发端系统中可以通过一组控制信号选择插入数量,选择信号selt_err 分别为0011控制信号时,err_cont高电平的定时长度分别为2clk周期长度,输出误码分别为2bits。仿真

36、波形如图14所示 图14 误码插入电路仿真波形图5、2 单片机的调试单片机系统的调试包括硬件调试和软件调试两部分。(1) 硬件调试:根据设计的原理电路做好实验样机,便进入硬件调试阶段。调试工作的主要任务是排除样机故障,其中包括设计错误和工艺性故障。调试的内容主要包括脱机检查和仿真调试。(2) 软件调试:软件调试可用以下方法:a. 交叉汇编b. 用汇编语言c. 手工汇编以上调试完成以后,即可通过eprom写入器,将目标代码写入eprom中,将其插入相应的插座上,系统即可投入运行。六、 课程设计总结 本次课程设计主要设计了一个误码率测试电路,该电路主要由fpga部分产生误码以及由单片机部分完成控制

37、显示完成测试误码率的功能。 在这次课程设计中,从选题到方案设计再到画原理图以及软件调试 ,其中我们遇到了许多的困难,但是让我们学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够

38、牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!七、 参考文献1王玉雷一种误码测试仪的灌码同步系统数字通信,19951;52552李东生,张勇,许四毛protel 99se电路设计技术入门与应用北京:电子工业出版社,200223dallas d52172 bit error rate test(bert)

39、dallas20044孔令成串行eeprom at24cxx的原理及应用国外电子元器件,19978.35375王正华基于12c总线的eeparom在数字气压计中的应用电子技术应用,2002:45486马或,王丹利,王丽英cpldfpga可编程逻辑器件实用教程北京:机械工业出版社,20067八、 附录附录一、系统硬件原理图附录二、程序代码1、误码插入模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity err_int isport

40、(clk,cp_1s:in std_logic; selt_err:in std_logic_vector(3 downto 0); err_cont:out std_logic);end err_int;architecture a of err_int issignal m,n:integer range 0 to 512;signal tp1,tp2:std_logic;signal outp1,outnl:std_logic;beginn=0 when selt_err=0001else1 when selt_err=0010else2 when selt_err=0011 else4 when selt_err=1011 else8 when selt_err=0101 else16 when selt_err=0110else32 when selt_err=0111else64 when selt_err=1000else128 when selt_err=1001else256 when selt_err=1010else512 when selt_err=10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论