1 / 22
文档名称:

研究生FPGA实验题目串口通信.doc

格式:doc   大小:484KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

研究生FPGA实验题目串口通信.doc

上传人:wz_198613 2017/8/27 文件大小:484 KB

下载得到文件列表

研究生FPGA实验题目串口通信.doc

相关文档

文档介绍

文档介绍:实验三、FPGA串行通用异步收发器设计
实验目的:1、;
2、熟悉VHDL硬件描述语言编程及其调试方法;
3、学****用FPGA实现接口电路设计。
实验内容:
本实验目标是利用FPGA逻辑资源,编程设计实现一个串行通用异步收发器。实验环境为EDA实验箱。电路设计采用VHDL硬件描述语言编程实现,。
1、UART简介
UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。
基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。
UART的基本特点是:
(1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。
(2)起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。
(3)数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。
(4)校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。
(5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。
(6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,、1位、,一般为1位。
(7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。
(8)波特率:UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率9600=9600bps(位/秒)。
UART的数据帧格式为:
START
D0
D1
D2
D3
D4
D5
D6
D7
P
STOP
起始位
数据位
校验位
停止位
FPGA UART系统组成:如下图所示,FPGA UART由三个子模块组成:波特率发生器;接收模块;发送模块;
2、模块设计:
系统由四部部分组成:顶层模块;波特率发生器;UART接收器; UART发送器
1)顶层模块
异步收发器的顶层模块由波特率发生器、UART接收器和UART发送器构成。
UART发送器的用途是将准备输出的并行数据按照基本UART帧格式转为TXD信号串行输出。
UART接收器接收RXD串行信号,并将其转化为并行数据。
波特率发生器就是专门产生一个远远高于波特率的本地时钟信号对输入RXD不断采样,使接收器与发送器保持同步。
2)波特率发生器
波特率发生器实际上就是一个分频器。
可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。
波特率分频因子可以根据不同的应用需要更改。
3)UART接收器
由于串行数据帧和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一个数据帧的起始位。
然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0才可认定接收到的是起始位。由于内部采样时钟bclk周期(由波特率发生器产生)是发送或接收波特率时钟频率的16倍,所以起始位需要至少8个连续bclk周期的逻辑0被接收到,才认为起始位接收到,接着数据位和奇偶校验位将每隔16个bclk周期被采样一次(即每一个波特率时钟被采样一次)。
如果起始位的确是16个bclk周期长,那么接下来的数据将在每个位的中点处被采样。
UART接收器的接收状态机
接收状态机一共有5个状态: R_START(等待起始位);R_CENTER(求中点);
R_WAIT(等待采样);R_SAMPLE(采样);R_STOP(停止位接收)。
R_START状态
当UART接收器复位后,接收状态机将处于这一个状态。
在此状态,状态机一直在等待RXD的电平跳转,从逻辑1变为逻辑0,即起始位,这意味着新的一帧UART数据帧的开始,一旦起始位被确定,状态机将转入R_CENTER状态。
状态图中的RXD_SYNC信号是RXD的同步信号,因为在进行逻辑1或逻辑0判断时,