资源描述
北京邮电大学
信息与通信工程学院
电路综合实验报告
串行口数据传输的仿真及硬件实现
姓名:
学号:
班内序号:
班级:
指导老师:
日期: 10.10
摘要:
现代数字逻辑电路中电子器件只能直接识别出二进制数0和1,因此在数据传输的过程中,我们使用一连串代表0和1的高低电平作为数字信号从发生端到接收端,并可以通过串行或并行的方式进行检测、锁存。该实验模拟了这一过程,完成了输入端序列信号发生器、将信号转换为并行的串并转换电路、测试了串行和并行两种检测方法来检测同步码、完成了控制电路和锁存输出显示。总体上来看即构成了简单的串行口数据传输系统。其中,序列信号同步码、信息传输等都可以通过简单电路组合常见芯片来实现。发送端的信息可在接收端用数码管的方式来显示为直观可读的信息。二进制的序列是数字电路的基础,在发送、检测、接受和显示等方面都是十分高效可行的。
关键字:
QuartusII、数据发生、串并转换、数据传输、数据显示
Abstract:
In modern digital logic circuits ,electronic devices can only discern binary number 0 and 1 directly .So ,during the data transmission ,we use a series of high low-level voltage which stand for 0 and 1 as digital signals .And they transfer from the sending end to the receiving end .And they can be detected and stored by the serial parallel way .This experiment has simulated the process .It has accomplished the input sequence signal generator ,serial parallel transform circuit ,the show of control circuit latched output ,detected synchronous code in the serial and parallel way .On the whole ,the experiment has accomplished a simple serial parallel transmission system.Among the system ,the sequence signal synchronization code and the information transmission can be realized by simple electric circuit and some common chips .The information on the sending end can be showed intuitively on the receiving end by the nixie tube .Binary system as the digital circuits basement ,it is efficient and feasible in the sending , detecting ,receiving ,showing respects .
Keywords:
Quartus II ,data generation ,deserialize,data transmission ,data display
目录
一、 实验目的………………………………………………………………1
二、 实验内容………………………………………………………………1
三、 实验设计………………………………………………………………1
1. 分频电路………………………………………………………………1
2. 序列信号发生器………………………………………………………2
3. 串、并转换模块………………………………………………………3
4. 串行检测模块…………………………………………………………4
5. 并行检测模块…………………………………………………………6
6. 控制电路………………………………………………………………6
7. 锁存显示模块…………………………………………………………7
8. 总体电路图和仿真结果………………………………………………7
9. 纠错电路(未完成)…………………………………………………9
四、 实验的硬件实现及结果分析…………………………………………10
五、 遇到的问题与解决方法………………………………………………13
六、 心得体会………………………………………………………………14
七、 参考文献………………………………………………………………15
八、 附录
15
一、 实验目的
串行口数据传输是数字系统中常用的一种数据传输方式。本次课程设计要求学生综合数字逻辑电路和串行口通信的有关知识,用硬件独立设计完成一个简单的串行口数据传输系统。
二、 实验内容
实验要求学生用硬件独立设计完成一个简单的串行口数据传输系统。系统框图如下:
系统分为发送端、接收端两部分,发送端主要是同步字符,结束字符,时钟电路和信息码发生器。接收端包括串、并转换电路,字符检测电路,控制电路,锁存接受和显示电路。各模块之间数据传输关系如系统框图所示。
实验要求发送端信息码为:111100010011010,由信息码形成电路实现。
其中,同步码为:1111000(信息码前七位),要求在电路板加电后,首先显示同步码。
同步码由字符检测电路检测,要求分别使用串行检测和并行检测两种方式检测实现。
同步码以及其他各组串行码要求在数码管逐个显示。显示时应将频率调到2Hz以下。
三、 实验设计
1. 分频电路:
实验室所提供的晶振的时钟频率为1MHz,若直接使用人眼将无法正常观测出实验结果。所以需要设计分频模块,将1MHz的时钟频率通过分频器降低到约2Hz,这样才可以正确显示结果。
为实现分频,我们使用74LS163四位同步计数器级联实现分频功能。每个74LS163最多为24=16分频。为了实现本实验分频的要求,分频系数应该达到:106÷2=5×105≈219。所以需要5块74LS163芯片级联实现分频,所得频率为1MHz/219=1.9Hz.具体电路图如下:
仿真结果:
2. 序列信号发生器
发送端需要产生的信息码为111100010011010这个15位循环码。字符发生模块使用由D触发器构成移位寄存器的序列信号发生器。由于循环码为15位,2^3<15<2^4,故至少应该使用4位D触发器。经检查,此序列所构成的15个4位的序列不重复,刚好可以用4为D触发器来做次序列发生器,D触发器选用74LS175四D触发器。
先做出状态转移表:
状态转移表:
Q4
Q3
Q2
Q1
D
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
再作出卡诺图:
卡诺图:
由卡诺图化简后可以得:D= Q4⊕Q3,但经过检查,通过此反馈是无法自启动的。通过增加自由项,得D= Q4⊕Q3+Q4Q2 Q1。经过检查,此此反馈可以自启动。
电路原理图为:
仿真结果:
3. 串、并转换模块:
根据数字电路中的知识,我们知道移位寄存器可用来实现串并转换电路。由于需要7位并行输出,所以需要两片移位寄存器74LS194级联来实现。电路图如下:
仿真图为:
4. 串行检测模块
顾名思义,串行检测模块即一位一位得进行检测,当检测到1111000时输出一个信号。但如果每一位都进行检测,将会使用很多的触发器,不利于实验的实现。经过观察后容易发现,同步码1111000中后面四位1000在序列中是唯一的,故可以检测序列1000,当与目标相匹配时,则可输出信号。
首先做出状态转移图:
对A、B、C、D分别编码为00、01、11、10,最后可得到Q2n,Q1n,输出信号Z的卡诺图如下:
最后可以得到电路图如下:
仿真图为:
5. 并行检测模块:
相对于串行检测电路,并行检测电路容易得到一些。只需要将串并转换之后的信号利用数据比较器进行7位数据的比较就行。最先,我们考虑将输入信号与序列1111000进行比较,但是实践后发现这样会从目标的后面一位开始输出,于是进行了调整,将输入信号与序列0111100进行比较。而需要的比较器可由两个数据比较器74LS85级联得到。具体的电路图如下:
仿真图如下:
6. 控制电路
控制电路部分思路很容易理解,即再没有检测到同步码之前,保证锁存器关闭,没有任何的输出;当检测到同步码信号之后,打开锁存器,并行输出发送的信息码。该功能可用一片D触发器74LS74接受检测信号,再通过组合逻辑电路与时钟信号结合使锁存器开始正常工作。经过完善后(参见问题及解决办法部分),具体电路图如下:
仿真图为:
7. 锁存显示模块
锁存显示模块较为简单,只需要一片74LS273锁存芯片就可以。需要将串并转换后的7位信号接在锁存器的输入端,再将锁存器的时钟接到控制信号上,最后从锁存器对应的输出端输出并行结果即可。
具体的电路图如下:
仿真图如下:
8. 总体电路图和仿真结果
有了上面各模块的详尽电路图之后,只需要按照系统框图以及逻辑分析按顺序连接即可。总体电路图如下:
串行检测:
其仿真结果图:
并行检测:
其仿真图为:
9. 纠错模块:
提高要求部分要求设计完成一个简单的串行数据传输纠正错码系统,那么首先需要设计错码发生器。在我们的实验中,我们将错误码设为111100000011010,仿照序列信号发生器可以设计类似电路,但经过检查会发现有重复出现,故这里采用同步计数器和数据选择器来构成错码序列信号发生电路。其电路图如下:
然后需要设计检测电路,当检测到错误码时输出1,这里可以仿照串行检测电路来设计,其电路图如下:
最后是纠错部分,这里只需要将接收到检测电路生成的1与原错码序列一起进行或运算,就能将错误码0改成1。其电路图如下:
仿真图为:
最终该部分由于时间问题,我们只完成了仿真和部分电路的搭建,并未能完成整体的实际电路。
四、 实验的硬件实现及结果分析
1. 实验的硬件实现分析
根据电路特点,首先将实验需要用到的用以提供高频时钟的晶振放在电路板的左上角。
关于布线的原则是尽量避免环线干扰,布线时让线的走势按照E字形,整体布局力求简洁美观,功能性强。
具体的实现方式为首先在第一排插好分频电路模块,将它的输出作为后续板块的总时钟;然后再在第二排依此插好字符发生器模块、串并转换模块、锁存显示模块以及数码管,各输入输出环环相扣;最后在第三排插好串、并检测模块和控制电路模块,并将控制电路的输出接到锁存器上。最后再在纵向的总线上布好Vcc和地线,整个硬件部分就完成了。最后再进行波形分析和实践检测,最终实验成功。以下为电路的硬件实现图:
(靠右为基础部分,左侧为提高部分)
2. 实验的结果分析
首先从理论上来看,分频电路将晶振产生的高频时钟进行分频后,将频率降到2Hz以下,肉眼才可以识别,并将分频后的clk信号作为后续部分的总时钟;在时钟的作用下,字符发生器串行产生所需的信息码;然后在串行检测中,产生的序列一方面进行同步码检测,一方面进行串并转换并接到锁存器上;进行同步码检测制后,将检测信号接到控制电路上,控制电路再输出时钟信号给锁存器,于是最终从锁存器显示的应该是从1111000开始,每次移动一位,进行7位并行输出显示。
从实际上而言,将七位并行输出依此接在数码管上。通电之后,数码管会从倒C开始,依此输出字符,并且循环。
其最终效果图如下:
五、 遇到的问题及解决方法
1. 问题一:
最开始插电路时,在分频部分,插好后通电接示波器,但示波器上没有任何方波信号输出,只有干扰,将探笔直接接在晶振上,有高频时钟脉冲显示。
解决方法:
经过仔细检查芯片的器件图后发现,每一块芯片都有自身的高低电平工作端口,即给各芯片提供工作电压。这是由于我们的疏忽大意导致的失误,检查后将各芯片接上高低电平,问题得以解决。
2. 问题二
再接好总体电路后,发现数码管输出一开始就有,并不按照预期的从倒C开始输出,无法实现同步功能。于是我们用示波器挨个模块进行排查,最后发现我们最初设计的控制电路完全没有发挥它的功能,而是直接将时钟信号输出到锁存器上,使得锁存器始终打开,从一开始就输出。
解决方法:
这是我们最初的控制模块电路图:
其思路为最初1D是0,1Q返的输出与时钟进行与运算,使得最终输出会在检测到有1信号之后再开始显示。
关于这个问题,我们想了很久也不明白,因为该部分电路仿真是正确的。后来用万能表将74LS74各个端口进行了检测,发现1D和1Q再通电一瞬间会输出一个高电平,使得最初的计划失效。于是我们增添了一块D触发器,将原电路图改为了设计图中的样子:
利用第二块D触发器通电一瞬间的高电平与第一块的复位信号相接,这样就能很好地解决这个问题,最终显示我们所需要的同步码。
3. 问题三:
利用QuartusII仿真时,最终的锁存显示总是与预期有略微不同,而且在不同的电脑上仿真,错误的地方也不一样。
解决方法:
我们最后经过反复尝试认为是软件本身同步性问题,便忽略掉它。最终在实践环节,并没有出现任何问题,显示一切正常,问题也没有出现。
六、 心得体会
通过本次实验,我们加深了对数字电路的硬件连接及各种数字电路元器件的理解,深入了解了组合电路和时序电路的工作特点,并且初步掌握了实际电路的设计思路方法,提高了独立设计电路和验证实验的能力,锻炼了哦我们不抛弃不放弃的意志力,也培养了我们对科学研究的浓厚兴趣。
具体谈一下收获,主要有如下几点:
1. 电路仿真这种研究方法的有着极其重要的意义。虽然仿真并不能够完全与实际切合,但是它能在一定程度上方便我们在较少误差下设计电路,并且能够在检查电路故障时候提供便利,是我们设计实际电路的第一步。
2. 该实验培养了我们的耐心和细心。连接电路需要足够的耐心和细心,一个小小的错误可能就会导致无法正常输出波形,甚至烧毁器件,一定要耐住性子。不能着急,不能盲目改电路,实验中一定要分析清楚再对电路进行改动。
3. 电路实验是关于科学研究的,科学研究需要有一颗严谨的心态,切不可草草了事,一切都需要认真分析,包括布线方式都要好好预算,决不可随随便便弄得七零八落,带来巨大误差。
统而言之,本次试验极大地提高了我们的动手动脑能力,锻炼了意志力,培养了我们对数字电路的兴趣,激发了我们对更加前沿科学的向往,使我们受益匪浅。
最后要感谢刘文京老师的谆谆教诲和耐心的指导!
七、 参考文献
[1]刘培植等.数字电路与逻辑设计(第2版).北京邮电大学出版社
[2]袁东明、史晓东等.现代数字电路与逻辑设计实验教程(第2版)
八、 附录
详细的总体电路图参见前面实验设计部分。
展开阅读全文