1北京邮电大学信息与通信工程学院电路综合实验报告串行口数据传输的仿真及硬件实现姓名:学号:班内序号:班级:指导老师:日期:10.102摘要:现代数字逻辑电路中电子器件只能直接识别出二进制数0和1,因此在数据传输的过程中,我们使用一连串代表0和1的高低电平作为数字信号从发生端到接收端,并可以通过串行或并行的方式进行检测、锁存。该实验模拟了这一过程,完成了输入端序列信号发生器、将信号转换为并行的串并转换电路、测试了串行和并行两种检测方法来检测同步码、完成了控制电路和锁存输出显示。总体上来看即构成了简单的串行口数据传输系统。其中,序列信号同步码、信息传输等都可以通过简单电路组合常见芯片来实现。发送端的信息可在接收端用数码管的方式来显示为直观可读的信息。二进制的序列是数字电路的基础,在发送、检测、接受和显示等方面都是十分高效可行的。关键字:QuartusII、数据发生、串并转换、数据传输、数据显示3Abstract:Inmoderndigitallogiccircuits,electronicdevicescanonlydiscernbinarynumber0and1directly.So,duringthedatatransmission,weuseaseriesofhighlow-levelvoltagewhichstandfor0and1asdigitalsignals.Andtheytransferfromthesendingendtothereceivingend.Andtheycanbedetectedandstoredbytheserialparallelway.Thisexperimenthassimulatedtheprocess.Ithasaccomplishedtheinputsequencesignalgenerator,serialparalleltransformcircuit,theshowofcontrolcircuitlatchedoutput,detectedsynchronouscodeintheserialandparallelway.Onthewhole,theexperimenthasaccomplishedasimpleserialparalleltransmissionsystem.Amongthesystem,thesequencesignalsynchronizationcodeandtheinformationtransmissioncanberealizedbysimpleelectriccircuitandsomecommonchips.Theinformationonthesendingendcanbeshowedintuitivelyonthereceivingendbythenixietube.Binarysystemasthedigitalcircuitsbasement,itisefficientandfeasibleinthesending,detecting,receiving,showingrespects.Keywords:QuartusII,datageneration,deserialize,datatransmission,datadisplay4目录一、实验目的………………………………………………………………1二、实验内容………………………………………………………………1三、实验设计………………………………………………………………11.分频电路………………………………………………………………12.序列信号发生器………………………………………………………23.串、并转换模块………………………………………………………34.串行检测模块…………………………………………………………45.并行检测模块…………………………………………………………66.控制电路………………………………………………………………67.锁存显示模块…………………………………………………………78.总体电路图和仿真结果………………………………………………79.纠错电路(未完成)…………………………………………………9四、实验的硬件实现及结果分析…………………………………………10五、遇到的问题与解决方法………………………………………………13六、心得体会………………………………………………………………14七、参考文献………………………………………………………………15八、附录1一、实验目的串行口数据传输是数字系统中常用的一种数据传输方式。本次课程设计要求学生综合数字逻辑电路和串行口通信的有关知识,用硬件独立设计完成一个简单的串行口数据传输系统。二、实验内容实验要求学生用硬件独立设计完成一个简单的串行口数据传输系统。系统框图如下:系统分为发送端、接收端两部分,发送端主要是同步字符,结束字符,时钟电路和信息码发生器。接收端包括串、并转换电路,字符检测电路,控制电路,锁存接受和显示电路。各模块之间数据传输关系如系统框图所示。实验要求发送端信息码为:111100010011010,由信息码形成电路实现。其中,同步码为:1111000(信息码前七位),要求在电路板加电后,首先显示同步码。同步码由字符检测电路检测,要求分别使用串行检测和并行检测两种方式检测实现。同步码以及其他各组串行码要求在数码管逐个显示。显示时应将频率调到2Hz以下。三、实验设计1.分频电路:实验室所提供的晶振的时钟频率为1MHz,若直接使用人眼将无法正常观测出实验结果。所以需要设计分频模块,将1MHz的时钟频率通过分频器降低到约2Hz,这样才可以正确显示结果。为实现分频,我们使用74LS163四位同步计数器级联实现分频功能。每个74LS163最多为24=16分频。为了实现本实验分频的要求,分频系数应该达到:106÷2=5×105≈219。所以需要5块74LS163芯片级联实现分频,所得频率为1MHz/219=1.9Hz.具体电路图如下:2仿真结果:2.序列信号发生器发送端需要产生的信息码为111100010011010这个15位循环码。字符发生模块使用由D触发器构成移位寄存器的序列信号发生器。由于循环码为15位,2^3152^4,故至少应该使用4位D触发器。经检查,此序列所构成的15个4位的序列不重复,刚好可以用4为D触发器来做次序列发生器,D触发器选用74LS175四D触发器。先做出状态转移表:状态转移表:Q4Q3Q2Q1D111101110011000100010001000100010011001100110011011101010101010111011101111再作出卡诺图:3卡诺图:由卡诺图化简后可以得:D=Q4⊕Q3,但经过检查,通过此反馈是无法自启动的。通过增加自由项,得D=Q4⊕Q3+Q4̅̅̅̅Q2̅̅̅̅Q1̅̅̅̅。经过检查,此此反馈可以自启动。电路原理图为:仿真结果:3.串、并转换模块:根据数字电路中的知识,我们知道移位寄存器可用来实现串并转换电路。由于需要7位并行输出,所以需要两片移位寄存器74LS194级联来实现。电路图如下:4仿真图为:4.串行检测模块顾名思义,串行检测模块即一位一位得进行检测,当检测到1111000时输出一个信号。但如果每一位都进行检测,将会使用很多的触发器,不利于实验的实现。经过观察后容易发现,同步码1111000中后面四位1000在序列中是唯一的,故可以检测序列1000,当与目标相匹配时,则可输出信号。首先做出状态转移图:对A、B、C、D分别编码为00、01、11、10,最后可得到Q2n,Q1n,输出信号Z5的卡诺图如下:最后可以得到电路图如下:仿真图为:65.并行检测模块:相对于串行检测电路,并行检测电路容易得到一些。只需要将串并转换之后的信号利用数据比较器进行7位数据的比较就行。最先,我们考虑将输入信号与序列1111000进行比较,但是实践后发现这样会从目标的后面一位开始输出,于是进行了调整,将输入信号与序列0111100进行比较。而需要的比较器可由两个数据比较器74LS85级联得到。具体的电路图如下:仿真图如下:6.控制电路控制电路部分思路很容易理解,即再没有检测到同步码之前,保证锁存器关闭,没有任何的输出;当检测到同步码信号之后,打开锁存器,并行输出发送的信息码。该功能可用一片D触发器74LS74接受检测信号,再通过组合逻辑电路与时钟信号结合使锁存器开始正常工作。经过完善后(参见问题及解决办法部分),具体电路图如下:7仿真图为:7.锁存显示模块锁存显示模块较为简单,只需要一片74LS273锁存芯片就可以。需要将串并转换后的7位信号接在锁存器的输入端,再将锁存器的时钟接到控制信号上,最后从锁存器对应的输出端输出并行结果即可。具体的电路图如下:仿真图如下:8.总体电路图和仿真结果有了上面各模块的详尽电路图之后,只需要按照系统框图以及逻辑分析按顺序连接即可。总体电路图如下:串行检测:8其仿真结果图:并行检测:其仿真图为:99.纠错模块:提高要求部分要求设计完成一个简单的串行数据传输纠正错码系统,那么首先需要设计错码发生器。在我们的实验中,我们将错误码设为111100000011010,仿照序列信号发生器可以设计类似电路,但经过检查会发现有重复出现,故这里采用同步计数器和数据选择器来构成错码序列信号发生电路。其电路图如下:然后需要设计检测电路,当检测到错误码时输出1,这里可以仿照串行检测电路来设计,其电路图如下:10最后是纠错部分,这里只需要将接收到检测电路生成的1与原错码序列一起进行或运算,就能将错误码0改成1。其电路图如下:仿真图为:最终该部分由于时间问题,我们只完成了仿真和部分电路的搭建,并未能完成整体的实际电路。四、实验的硬件实现及结果分析1.实验的硬件实现分析根据电路特点,首先将实验需要用到的用以提供高频时钟的晶振放在电路板的左上角。关于布线的原则是尽量避免环线干扰,布线时让线的走势按照E字形,整体11布局力求简洁美观,功能性强。具体的实现方式为首先在第一排插好分频电路模块,将它的输出作为后续板块的总时钟;然后再在第二排依此插好字符发生器模块、串并转换模块、锁存显示模块以及数码管,各输入输出环环相扣;最后在第三排插好串、并检测模块和控制电路模块,并将控制电路的输出接到锁存器上。最后再在纵向的总线上布好Vcc和地线,整个硬件部分就完成了。最后再进行波形分析和实践检测,最终实验成功。以下为电路的硬件实现图:12(靠右为基础部分,左侧为提高部分)2.实验的结果分析首先从理论上来看,分频电路将晶振产生的高频时钟进行分频后,将频率降到2Hz以下,肉眼才可以识别,并将分频后的clk信号作为后续部分的总时钟;在时钟的作用下,字符发生器串行产生所需的信息码;然后在串行检测中,产生的序列一方面进行同步码检测,一方面进行串并转换并接到锁存器上;进行同步码检测制后,将检测信号接到控制电路上,控制电路再输出时钟信号给锁存器,于是最终从锁存器显示的应该是从1111000开始,每次移动一位,进行7位并行输出显示。从实际上而言,将七位并行输出依此接在数码管上。通电之后,数码管会从倒C开始,依此输出字符,并且循环。其最终效果图如下:13五、遇到的问题及解决方法1.问题一:最开始插电路时,在分频部分,插好后通电接示波器,但示波器上没有任何方波信号输出,只有干扰,将探笔直接接在晶振上,有高频时钟脉冲显示。解决方法:经过仔细检查芯片的器件图后发现,每一块芯片都有自身的高低电平工作端口,即给各芯片提供工作电压。这是由于我们的疏忽大意导致的失误,检查后将各芯片接上高低电平,问题得以解决。2.问题二再接好总体电路后,发现数码管输出一开始就有,并不按照预期的从倒C开始输出,无法实现同步功能。于是我们用示波器挨个模块进行排查,最后发现我们最初设计的控制电路完全没有发挥它的功能,而是直接将时钟信号输出到锁存器上,使得锁存器始终打开,从一开始就输出。解决方法:这是我们最初的控制模块电路图:其思路