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

下载本文档

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

文档简介

题 目: 基于FPGA的误码率测试 目录一设计内容及任务.3 1.1设计内容.3 1.2设计任务.3二设计方案.4 2.1方案猜想.4 2.2系统整体方案设计.4三系统硬件调试.43.1系统硬件的整体设计框图.43.2FLEX 10K最小系统.53.3单片机最小系统.73.4并行接口电路.73.5显示电路.83.6复位电路.9四系统软件设计.104.1发送模块.104.1.1M码产生模块.104.1.2误码插入模块.124.2接收模块.124.2.1伪随机码同步模块.124.2.2误码统计模块.134.3单片机模块.14五系统调试.15六课程设计总结.16参考文献.17附录.18一、设计内容及任务1.1设计内容 误码率=接收出现差错的比特数/总的发送的比特数实现一个误码率测试电路,在数字通信中,必须在数字信号序列中插入标示码元起始位置的同步码元,否则接收端将无法识别连接数字序列中每一个字符或每一帧的起始码元位置。对于接收端来说,信息序列是随机的,不可预知的,但帧同步码元则是已知的,所以可以通过检测帧同步码的错码情况来确定整个系统的误码率。1.2设计任务本系统的核心单元是误码率测试电路,无码测试主要是检测同步头的无码个数,这部分用FPGA来实现,要求数据的速率为19.2MB/S,同步头为7个128位的伪随机码。测试完毕,将误码个数与总的比特数送往CPU进行处理,计算误码率,最后把测试结果送往数码管输出显示。误码率测试电路扩展并行口CPU显示电路晶振及复位电路二、设计方案2.1设计猜想根据设计要求得出误码测试原理是:通过对经过被测系统的序列和原序列进行逐位比较,从而得到误码数。基本原理如图所示:测试码产生器误码检测接收设备信道发送设备2.2系统整体设计方案本系统是以单片机中心,将各个模块结合起来。误码测试的是要检测出同步头的误码个数,将结果送往CPU进行算法处理,再把结果用数码管输出显示。误码率在线测试电路也是整个系统的核心单元,这部分主要用FPGA来实现。误码测试系统主要由发送( 测试码产生器) 和接收( 误码检测)两部分组成。发送部分完成系统需求的各种伪随机码产生、发送功能,误码插入功能。接收部分完成对被测系统传输数据的接收和预处理。在使用伪随机信号作被测信号工作方式下,码元接收模块接收被测信号并启动本地伪随机发生模块,产生与发送方相同的伪随机序列,以便进行收发双方逐位误码检测。比对过程如图:从逻辑上看,误码仪的工作过程大致可以分成以下几个步骤:(1)发端模块产生原始数据,并使其通过被测通信系统构成的信道;(2)收端模块产生与发端相同码型、相同相位的数据流;(3)将收到的数据流与收端产生的本地数据流逐比特地比较,并进行误码统计;(4)根据误码统计结果,计算出相应的误码率,并输出误码指示。三、系统硬件设计3、1系统硬件的总体设计框图该硬件系统设计是以FPGA为核心的星型结构分布,所有的部件都连接于核心模块FPGA上由FPGA统一控制和处理。 3-1发送发端框图 3-2接收端框图3.2 FLEXIO KIO 最小系统电路本系统硬件部分采用的FPGA芯片是FLEX10KEPMlOKlOLC84-4,它是Altera公司FLEXIOK系列中的芯片。因为m 序列产生、序列同步等都是在FPGA芯片内部由VHDL语言编程实现所需要的硬件逻辑,所以该部分的硬件电路比较的简单。 表3-1: 3-41FLEXIO KIO最小系统框图3.3单片机最小系统单片机是人机界面子系统的核心,它根据用户的选择控制各模块的正常工作,并根据各模块提供的状态向用户发出误码事件、状态告警、故障提示等信息。综合考虑带fl ash存储器和存储器独立的M CU 性价比,选择YAT89S52作为系统的M CU ,存储器为用户查询误码信息提供了方便,为了简化电路设计,选用了l zC总线通信方式的E2PRO M (24LCl 28)。AT89S52除了具有51内核外还具有如下特点:(1)自带8K的Fl ash程序存储器(2)支持重复读写操作1000(3)具有256*8内部RAM(4)3个定时计数器(5) 硬件看门狗M CU 最小应用系统主要由复位电路、振荡电路、下载口、按键、排阻组成。 3-5单片机最小系统框图3.4扩展并行接口电路本设计把P0口作为扩展外部存储器和I/O接口的数据总线和低八位地址总线。由于数据和地址是分时复用P0口,所以在P0口接一片74LS373锁存器,用来锁存P0口输出的低八位地址信号,这样就把数据和地址分开了。74LS373的输出就是低八位地址码A0-A7。 3-6扩展电路3.5显示电路本设计选用的LCD的型号是TGl 2864,带中文字库的128 64是一种具有4位8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128x64,内置引脚功能:第l 脚:VSS为地电源第2脚:VDD接5V正电源第3脚:VO 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“ 鬼影,使用时可以通过一个IO K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:Rw 为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和Rw 共同为低电平时可以写入指令或者显示地址,当RS为低电平Rw 为高电平时可以读忙信号,当RS为高电平RW 为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:DO -D7为8位双向数据线。第15、18脚:空脚第16脚:PSB为串并行控制选择端,PSB接VCC时为并行控制方式,PSB接GN D时为串行控制方式。第17脚:复位端,低电平有效,模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。第1920脚:背光电源脚 3-7LCD显示电路图3.6复位电路该电路具有上电自动复位和手动复位功能。RIO $1C12构成RC充电电路,在上电时,电源通过RIO 对电容C12充电,在充电期间,单片机复位脚的电平由高至低变化,当电容达到饱和时,复位脚的电平保持在“ 0” 电平,从而使得单片机进入正常工作状态。当需要手动复位时,按键S8按下,单片机复位脚变为高电平,单片机进入复位状态,同时电容C12放电。放开按键后,电源重新对C12电容进行充电直至饱和后,单片机复位脚重新恢复“ 0电平,重新进入正常工作状态。 3-8复位电路四、软件设计软件平台主要是MUXPLUS2和, Max+plusII软件支持多种HDL的设计输入,包括标准的VHDL、Verilog HDL及ALtera公司自己开发的硬件描述语音AHDL。首先介绍一下FPGA内部各模块设计:4.1发送模块4.1.1M码产生模块前面提到一般用伪随机序列来作为被测系统的测试信号。伪随机序列或称为伪随机码,是模仿随机序列的随机特性而产生的一种码字。伪随机序列有很多种,通常产生伪随机序列的电路为一反馈移存器。它又可分为线性反馈移存器和非线性反馈移存器两类。由线性反馈移存器产生出的周期最长的二进制数字序列称为最大长度线性反馈移存器序列,通常称为m 序. 4-1M序列发生器产生原理图 4-2伪随机码发送原理图 4 -3伪随机码产生电路4.1.2误码插入模块误码插入就是在传输的码元中人为地插入一些固定的误码,以便在接收端能够检测并显示出来,通过对比来验证系统是否正常工作。插入误码的具体实现方法就是将输入码元与其反码相异或,这样就可以达到产生误码的目的,具体电路原理如图所示:CLK是与码元同步的输入时钟信号,CLl S是外部单片机提供的周期为1s的基准时钟信号,而ERRSET30则是插入误码率的选择信号。ERR_CO N T是误码控制信号,当信号为高电平“ 1时,对输出的伪随机序列信号进行取反,从而人为的形成一定的误码,这些插入误码的数量是可控的,通过控N ERR信号高,电平的定时长度就可以控制插入的误码个数。4.2接收模块误码仪接收系统是整个系统中的关键部件,所有测试参数都在接收系统中计算和完成,同时通过外部单片机的控制,误码仪的所有功能将在模块中实现,内部包括伪随机码同步模块、误码统计模。4.2.1伪随机码同步模块在接收系统中,伪随机码的同步是误码测试的关键技术,只有当接收的伪随机序列跟本地的伪随机序列完全同步时,才能够进行误码统计计算。现有的同步技术多种多样,一般情况下大多数是采用插入帧同步码进行,也就是说在发送端的伪随机序列前面插入一个固定的帧同步码,接收端通过对帧同步码的检测来得到伪随机序列的起始码元,同时调整本地伪随机序列发生器,使得接收序列跟本地序列达到同步。由于插入的帧同步码不参与误码的比较,因此通过插入帧同步码来达到同步的方法对错误码的统计是存在误差的。 4-4伪随机码同步产生电路4.2.2误码统计模块误码计数电路要完成的功能就是将输入的伪随机序列跟接收端本地产生的伪随机序列逐比特进行比较,对比不相同时则认为产生误码,计数器加1。具体实现方法是将输入序列和本地序列相异或,不相等则异或门输出为“ l ,计数器就加1,从而达到误码检测计数功能。图中CODEA和CODEB分别是接收序列输入端和本地序列输入端,两路信号相异或得到误码信息。EN 为计数使能信号,当EN 为l 时,允许计数器对误码信息进行计数,否则计数器不进行计数。RES是计数器复位信号,当RES= 1 时,所有计数器清零。计数器CoN T一10是一个十进制计数器,VH DL程序见附录六( 7) 十进制计数模块。由6个十进制计数器组成误码仪的误码统计计数器,因此得到的最大误码计数数值为999999个。 4-5误码统计电路图4.3单片机单片机部分的软件设计比较简单,主要是完成误码率的计算和输出显示。设计流程图如下:系统开机复位系统初始化误码数据采集数据处理等待外部中断响应中断误码率实时显示五、系统调试在设计过程中,我们是分步进行调试的。首先调试的是发送模块。第一步伪随机码产生电路,这部分是通过在muxplus2中的原理图设计实现的。然后先通过波形仿真看是否通过,通过后再由串口下载到FPGA中,看是否能产生连续的码元,结果现实了。波形仿真如图第二步是误码插入部分,这一部分是用编程实现的,原理比较简单。仿真波形图如图:然后是接收模块,这部分首先是伪随机码同步,同步之前的仿真图如同步之后的仿真图:六、课程设计总结课程设计结束了,在李春杰老师的指导下,我们完成了课设任务。通过这次课设我们收获颇多。一、对实验原理有更深的理解 通过编译原理课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。二、对该理论在实践中的应用有深刻的理解 通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。 三、 激发了学习的积极性 一回来我们就去图书馆查阅的大量的单片机和FPGA的资料,由于资料比较分散,所以整理有用的资料就显得很重要,有些东西实在是不懂我就把资料带回来请教同学,让我受益匪浅。然后在硬件电路的设计中,由于要涉及软件设计的具体情况,又和组员共同讨论,最终确定了一个大家都可以接受的方案。当时感觉这下任务该完成了,没有想到的是在实际的调试中更是遇到了太多的麻烦。我们拿着设计程序去实验室调试,第一次就给了我们致命的打击,程序在软件上调试可以通过,可是下载到电路板上却没有现象,后来经过大量的时间在好多次失败的情况下终于完成了误码率测试的所有要求。通过该课程设计,全面系统的理解了一般原理和基本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的EDA和单片机的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调各个部件运行,对EDA和单片机原理的认识更加深刻。4、 课设中的小问题 这一次的课程设计结果不是很让人满意,这过程中遇到了很多问题,大家的团结问题,我们的知识水平问题还有大家的积极程度都不够好,可能是因为大四了大家面临找工作的问题,所以都忙着去招聘会就忽略了课设,所以有很多部分还没有调试出来,是我们很遗憾的。不过我们还是把大部分的结果调试出来了,比如最主要的部分伪随机码的产生,最开始的时候我们对这部分一点头绪都没有,后来通过老师的指导和自己上网搜资料找到了关于伪随机码产生的原理、它的原理框图等等,这些都对我们有很大的帮助。然后我们根据产生原理和算法,以及回忆了一些EDA的知识,通过大家的努力一点一点编译出来,最后仿真通过了,我们每个人都很高兴。参考文献 1 樊吕信通信原理第五版北京:国防工业出版社, 2 黄进,钟立人智能误码测试仪地震地磁观测与研究,2002.4.1416 3 蔡亮华H C200111型袖珍式PCM 一次群误码仪元器件与仪表,2002.8 124 叶梧基于FPAG的智能误码测试仪电子技术应用,2003.9.14175 段吉海,黄智伟,基丁CPLDFPGA的数字通信系统建模与设计北京:电子工业出版2004.8附录(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(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,OUTN1:STD_LOGIC;BEGINN=0 WHEN SELT_ERR=0001ELSE 1 WHEN SELT_ERR=0010ELSE 2 WHEN SELT_ERR=0011ELSE 4 WHEN SELT_ERR=0100ELSE 8 WHEN SELT_ERR=0101ELSE 16 WHEN SELT_ERR=0110ELSE 32 WHEN SELT_ERR=0111 ELSE 64 WHEN SELT_ERR=1000ELSE 128 WHEN SELT_ERR=1001ELSE 256 WHEN SELT_ERR=1010ELSE 512 WHEN SELT_ERR=1011ELSE 0;PROCESS(CLK,CP_1S)BEGINIF CP_1S=0 THENM=0;TP2=0;TP1=0;ELSIF CLKEVENT AND CLK=1THENTP1=CP_1S;IF M=N THENTP2=1;ELSE M=M+1;END IF;END IF;END PROCESS;ERR_CONT=TP1 XOR TP2; END A;(2)同步序列检测LIBRARY IEEE;USE IEEESTD_LOGIC_I164.ALL;USE IEE

温馨提示

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

评论

0/150

提交评论