串行口数据传输的仿真及硬件实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行口数据传输的仿真及硬件实现
学院:信息与通信工程学院
专业:通信工程
班级:
姓名:
序号:
一、 实验目的
综合数字逻辑电路和串行口通信的有关知识,用硬件独立设计完成一个简单的串行口数据传输系统,并用FPGA 可编程逻辑器件进行仿真。 二、 实验要求
1) 发送信息码:111100010011010;
2)
用同步检测电路检测同步码:1111000,并使电路板加电后
首先显示同步码; 3) 同步码及其他各组串行码要求在数码管上逐个显示; 4)
字符检测电路中先用串行检测方法设计实现,再用并行检
测方法设计实现。 三、总体方案框图
电路总体分为7个模块:时钟电路模块、字符发生器模块、串/并转换模块、字符检测电路模块、控制电路模块、锁存显示模块和显示电路模块。各模块间的输入输出数据流如图所示。 四、 各部分电路的数字逻辑设计过程和结果
1、时钟电路模块:
实验室所提供的晶振的时钟频率为1MHz ,若直接使用人眼将无
信息码发生器
时钟电路 串并转换
锁存接收
显示电路
字符检测电路 控制电路
法正常观测出实验结果。所以需要设计分频模块,将1MHz的时钟频率通过分频器降低到约2Hz,这样才可以正确显示结果。
本次实验使用74LS163四位同步计数器级联实现分频功能。每个74LS163最多为2^4=16分频。为了实现本实验分频的要求,分频系数应该达到:10^6÷2=5×10^5≈2^19。所以需要5块74LS163芯片级联实现分频,所得频率为1MHz/2^19=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
卡诺图:
由卡诺图得: 0000项为任意项,为了确保电路可以自启动,将其当1项圈入,得D= 。
电路图如下:
3、串/并转换模块:
串并转化的实现可以通过移位寄存器来实现,因为需要7位并行输出,所以需要两块移位寄存器74LS194级联构成。电路图如下:
4、串行字符检测模块:
串行字符检测需要一位一位检测,然后每位都符合才输出信号。
若每位都检测,将会使用较多触发器,使电路复杂化。经过观察,同步码1111000中后四位1000在整个序列111100010011010中是唯一的,所以检测1000四位即可。当连续有4位与1000相应匹配时,则输出信号。
状态转移图如下:
对A、B、C、D分别编码为00、01、11、10,则状态转移表为:
D=0 D=1
00 00 01
01 11 01
11 10 00
10 00 00
输出为:
Z
D=0 D=1
00 0 0
01 0 0
11 0 0
10 1 0
卡诺图分别如下:
所以,由卡诺图可得:
D1=
D2=
Z=
由此可得到电路图:
5、并行字符检测模块:
由两个数据比较器74LS85级联可得7位数据比较器,当并行输入为1111000时输出高电平作为控制电路输入,实现并行字符检测。具体电路图如下:
6、控制电路模块:
控制电路完成的功能比较复杂。首先,控制电路要保证在检测到同步码之前,锁存器关闭,没有任何输出;其次,在检测到同步码之后,字符检测电路不能对后级有任何影响,而是由控制电路控制每个
7位输出一次。
对于第一个功能可以使用一块D触发器74LS74接受字符检测电路的信号,再通过反馈电路使接收到同步码产生的高电平后D触发器的时钟信号恒为1,无触发沿,电路输出维持原状态,即恒为1,对锁存电路没有影响。
对于第二个功能,可以由一个7进制计数器实现,这里选用同步置位的计数器74LS161。用进位信号的非作为预置信号,计数器的状态循环为:1001 1010 1011 1100 1101 1110 1111 1001 。并用D触发器的输出和主时钟信号的与作为计数器的时钟,确保计数器从检测电路输出第一个高电平,即同步码1111000第一次出现的时刻起计数。
并行检测控制电路:由于信息码经过串并转换电路时延迟了一个CP,所以并行检测的输出比同步码1111000的输出晚了一个CP,而计数器74LS161在时钟信号未到达时默认起始状态为0000,故须在15个CP之后才产生第一个预置信号,从而才开始7进制计数。故7进制计数器输出的第一个高电平脉冲正好比第一个同步码1111000的输出迟了16个CP,从而正好对上了第二个同步码1111000的输出,从而达到使电路首先输出同步码1111000,再逐个显示其他各组串行码的目的。具体见坐标纸所画波形图。