UART接口设计及FPGA验证本科毕业论文可编辑Word下载.docx
- 文档编号:17405792
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:18
- 大小:31.24KB
UART接口设计及FPGA验证本科毕业论文可编辑Word下载.docx
《UART接口设计及FPGA验证本科毕业论文可编辑Word下载.docx》由会员分享,可在线阅读,更多相关《UART接口设计及FPGA验证本科毕业论文可编辑Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
按照学校要求提交毕业设计(论文)的印刷本和电子版本;
学校有权保存毕业
设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;
学校可以采用影印、
缩印、数字化或其它复制手段保存论文;
在不以赢利为目的前提下,学校可以公布
论文的部分或全部内容。
作者签名:
UART接口设计及FPGA验证TheDesignofUARTInterfaceandFPGA
Verification
摘要:
随着电子技术的发展,以及数据传送的需要,通用异步接收/发送器
(UART)已成为MCU、CPU、DSP等的基本配置,应用广泛。
UART数据通过串行输入、
输出,不同装置间通信不需要传送时钟信号,避免了同步传送的时序处理问题,数
据线引脚较少,避免了信号间的相互干扰,是未来数据传送的发展方向。
本文主要
讨论如何应用VerilogHDL语言,基于FPGA器件实现可复用的UARTIPCore。
通过修改配置文件,用户可以根据需要设置相应的参数,以实现相应功能的UART
器件。
本设计模块主要包括UART发送器、接收器、波特率发生器,以及总线接口
控制逻辑。
设计通过Xilinx公司的Spartan-3系列器件XC3S400FPGA进行功能
验证。
关键词:
UART、IP核、发送器、接收器、波特率发生器、VerilogHDL
Abstract:
Withthedevelopmentofelectronictechnology,astheneedofdatatransmitter,theUniversalAsynchronousReceiver/TransmitterUARTnowisthebasiccomponentofMCU,CPU,DSP,etc.Byseriesdatainput/output,thereisnoneedtosendclocksignalwhencommunication
betweendifferentequipments,avoidingtimingsynchronousproblem,andthedatapinisonlyone,avoidthedisturbamongthesignalsinparallelcommunication.So,seriesdatatransmittingisthedevelopmentdirectioninfuture.ThispaperfocusesonhowtouseVerilogHDLtocarryoutreusableUARTIPCore,basedonFPGA.Bymodifyingtheconfigurationdocuments,theusercandesigndifferentUARTcomponent.Thedesignismadeupofthesemodules,suchasTransmitter,Receiver,Bade_rategenerator,andtheBusinterfacemasteringlogic.Whenvalidatingthedesign,weuseXC3S400FPGAofXilinxCO.,LTD’sSpartan-3spectrum
KeyWords:
UART,IPCore,Transmitter,Receiver,VerilogHDL
引言……………………………………………………………………1
UART的协议……..2
2.1异步通信…………………………………………………………2
2.2串行通信的过程及通信协议…………………………………….32.2.1
串并转换与设备同步………………………………………….3
2.2.2串行通信协议…………………………………………………3
2.3UART的典型应用……………………………………………….5
2.4UART的时钟控制……………………………………………….6
2.5UART的数据采样……………………………………………….6
第三章UART的硬件设计…………………………………………………….7
3.1UART总体构架………………………………………………….7
3.1.1UART结构…………………………………………………7
3.1.2UART的帧格式………………………………………….…7
3.1.3UART的设计规格……………………………………………8
3.2串行数据发送模块……………………………………………11
3.2.1发送顶层模块……………………………………………11
3.2.2取数控制………………………………………………..…123.2.3发送状态机………………………………………………13
3.2.4EDA工具验证………………………………………………14
3.3串行数据接收模块……………………………………………153.3.1接收顶层模块……………………………………………15
3.3.2数据同步装置……………………………………………15
3.3.3数据抽样装置……………………………………………16
3.3.4接收状态机………………………………………………17
3.3.5EDA工具验证……………………………………………….18
3.4波特率发生器…………………………………………………183.4.1波特率发生器概述…………………………………………183.4.2EDA工具验证………………………………………………19
3.5总线接口控制模块……………………………………………19
3.5.1接口功能描述………………………………………………20
3.5.2EDA综合结果……………………………………………..…21
第四章UART的FPGA验证…………………………………………………224.1
XilinxSpartan-3系列器件介绍…………………………224.2FPGA实现过程…………………………………………………23
第五章结论…………………………………………………………………26
致谢……………………………………………………………………………27
参考文献………………………………………………………………………28
外文译文………………………………………………………………………29
翻译原文………………………………………………………………………35
引言
目前,基于传统IC芯片的微电子应用系统设计技术正在转向基于知识产权(IP,IntellectualProperty)核的片上系统(SoC,SystemonChip)技术发展。
IC设计在国内外的发展很快,各种规模的IC设计中心和公司不断出现。
因此,IP核的设计已开始逐渐成为国内微电子系统设计的一项支撑技术。
从应用功能角度划分,IP核分为两大类:
微处理器IP核(如8位8051核、32位ARM核等)和各种接口IP核(如LCD控制器、各种串行总线接口IP核等)。
其中,接口IP核在数字通信系统中有着广泛的应用。
设备间的通信方式,可分为并行和串行两种。
在相同频率下,并行总线优于串行总线。
随着并行总线的数据传输率越来越高,传统的并行接口逐渐暴露出一些信号传输上的缺陷,其中最致命的莫过于信号互相干扰问题。
要满足高速传输的需要,要么提升它的总线频率,要么增加数据宽度。
但是这两种都会导致成本的上升,并且使信号偏移和串扰更加严重。
而串行技术采有极少的数据线,并使用差分信号线,在传输数据时几乎不会因为受到干扰而出错。
通用异步接收器和发送器(UART)用异步串行输入、输出进行通信。
串行
传输以速度为代价,换取了成本的降低和连线复杂度的降低。
UART提供串行异步接收数据的同步化,发送器和接收器两个部分的并串转换和串并转换,对于串行传输系统而言,这些功能是必不可少的。
串行数据流的同步化是通过给发送数据增加起始位和停止位、以形成一个数据字符而实现的。
数据完整性是通过在数据字符中附加一个校验位来实现的,由接收器来检验。
对于主机系统,UART就像一个能读取和写入的8位输入和输出端口,任何时候,当主机要发送数据,它只需以字节格式把这些数据发送到UART(8个位宽);
当UART从另一个串行装置接收数据时,它把这些数据临时缓存在它的FIFO中(同样是8个位宽),然后通过内部寄存器位或硬件中断信号向主机指示这些数据的可用性。
随着串行通信技术的发展,新一代的串行通信接口如USB1.0,USB2.0,1394,SATA等高速串行接口逐渐成熟,串行通信的传输速度不断提升,接口技术有串行化的趋势。
本课题通过对由CCITT制定的串并转换协议RS-232-C,及其协议实现的通用器件?
?
UART的研究、实现,以期进一步了解串行通信技术,并系统学习IPCore的设计。
第二章UART的协议
UART(即通用异步接收传送器)按照异步通信传输格式传送数据,它的传送符合通信协议的规范。
以下主要介绍异步通信及通信协议,以及UART中数据传输的具体方式。
2.1异步通信
在异步通信中,数据是一帧一帧(包括一个字符代码或一个字节数据)传
送的,一帧的数据格式如下图所示。
图2-1异步通信的一帧数据格式
在帧格式中,一个字符由四个部分组成:
起始位、数据位、奇偶校验位和停止位。
起始位(0)只占用一位,通知接收设备一个待接收的字符开始到达。
线路上
不传送字符时应保持为1,接收端不断检测线路的状态,若连续为1后测到一个0,就表示发来一个新字符,应马上准备接收。
字符的起始位还被用作同步接收端的时钟,以保证以后的接收能正确进行。
起始位后面紧接着是数据位,它可以是5位(D0~D4)、6位、7位或8位(D0~D7)。
奇偶校验(D8)只占一位,也可以不用校验位,则这一位就可省略。
也可用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等)。
停止位用来表征字符的结束,一定是高电位
(1)。
停止位位宽可以是1位、1.5位或者2位。
接收端收到停止位后,表明上一字符已传送完毕,同时,也为接收下一个字符做好准备,如果再接收到0,就是新的字符开始传送。
若停止位以后不是紧接着一个字符,则使线路电平保持为高电平
(1)。
2.2串行通信的过程及通信协议
串行通信指数据是一位一位按顺序传送的通信方式。
它的突出优点是只需一对传输线,这样就大大降低了传送成本,特别适用于远距离通信;
其缺点是传送速度较低。
串行通信的传送方向通常有三种:
单工、半双工、全双工。
全双工是一对单向配置,它要求两端的通信设备都具备完整和独立的发送和接收能力。
本文设计的UART以全双工模式工作。
2.2.1串并转换与设备同步
两个通信设备在串行线路上成功地实现通信必须解决两个问题:
一是串并、并串转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;
二
是设备同步,即同步发送设备和接收设备的工作节拍,以确保发送数据在接收端被正确读出。
2.2.1.1并串转换与串并转换
串行通信是将计算机内部的并行数据转换成串行数据,然后将其通过一根通信线传送;
在接收时将串行数据再转换成并行数据,再通过与主机的连接将其送到计算机中。
在计算机串行发送数据之前,计算机内部的并行数据被送到移位寄存器并一位一位地移出,将并行数据转换成串行数据。
如下图所示。
图2-2发送时的并串转换
在接收数据时,来自通信线路的串行数据被送入移位寄存器,移位保存满8位后并行送到计算机内部。
图2-3接收时的串并转换
2.2.1.2设备同步
进行串行通信的两台设备必须同步工作才能有效地检测通信线路上地信号变化,从而采样传送数据脉冲。
设备同步必须保证两点:
一是必须采用统一的编码方法;
二是通信双方必须保证相同的传送速率。
统一的编码方法确定了一个字符的位发送顺序和位串长度,以及统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。
通信双方只有保持相同的速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。
发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。
2.2.2串行通信协议
通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。
通信双方必须遵循统一的通信协议。
串行通信协议包括同步协议和异步协议。
以下是异步串行通信协议和异步串行协议规定的字符数据的传送格式。
1、起始位
通信线上没有数据被传送时处于逻辑1状态。
当发送设备要发送一个字符数据时,首先加入一个逻辑0的信号,这个逻辑低电平就是起始位。
起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接受数据位信号。
起始位能使设备同步,通信双方必须在传送数据位前协调同步。
2、数据位
当接收设备接收到起始位后,紧接着就会收到数据位。
数据位的个数可以是5、6、7或8。
这些数据位被接收到移位寄存器中,构成传送数据字符。
在字符数据传送过程中,数据位从最低有效位开始发送,依次顺序在接收设备中被转
换为数据。
3、奇偶校验位
数据位发送完,可发送奇偶校验位。
奇偶校验属于有限差错检测,通信双方需约定一致的奇偶校验方式。
如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个数必须是偶数;
如果选择奇校验,那么逻辑1的个数必须是奇数。
4、停止位约定
在奇偶位或数据位(当无奇偶检验时)之后发送停止位。
停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的高电平。
接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。
5、波特率设置
通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度决定,即以每秒多少个二进制位来衡量的,这个速度就叫波特率。
如果数据以300个二进制位每秒在通信线上传送,那么传送速度为300波特,通常记为300b/s。
6、握手信号约定
计算机与modem进行数据交换时,往往通过一些信号线作为交换数据的先提条件,当满足条件时允许数据进行传送;
当不满足条件时,处于等待状态,等到允许数据传送的信号发生时,才又开始传送数据。
2.3UART的典型应用
UART由于理想的低功耗、降低软件开销、降低CPU开销、避免丢失数据、发送和接收通道可以在不同的波特率下工作等优点,广泛应用于对速度要求不高
的数据传输中。
典型应用如下:
ADSLboxes
基站
PC
PABX系统
便携式电话
Fax服务器
Modem
集线器和路由器
工业自动控制
导航系统
自动售货机(/角子机)
其他更多…
2.4UART的时钟控制
UART以异步方式工作,接收器和传输器工作于不同的时钟频率,在传送数据的时候,一定要预先知道被传送数据的传输频率。
也就是说,对于接收的UART来说,它在接收之前需要知道传输的UART的工作频率;
相反,对于传输的UART来说,在它传输之前应该知道接收的UART的工作频率。
由于很多情况下,同一个UART的传输器和接收器都工作于相同的频率下,可以把UART的传输、接收模块设置为统一的工作频率。
2.5UART的数据采样
在接收器接收数据时,UART的内部时钟频率往往高于外部数据输入频率。
当接收器开始接收信号时,如果内部时钟工作的频率接近或者小于外部数据传输频率,那么在接收器接收数据时,在数据采样的边缘很可能采集不到数据,或者采集到错误的数据。
采样的频率可以设置为外部数据传输频率的8倍,16倍。
该UART采用的16倍外部时钟频率,采样的波形图如下所示。
图2-4采样波形图
第三章UART的硬件设计
UART是广泛使用的串行数据传输协议,允许在串行链路上进行全双工的通信。
串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。
如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当
复杂,有的含有许多辅助的模块(如FIFO)。
有时我们不需要使用完整的UART的功能和这些辅助功能。
如果设计上用到了FPGA/CPLD器件,那么就可以将所需要的UART功能集成到FPGA内部。
本设计使用VerilogHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。
3.1UART总体构架
3.1.1UART结构UART主要有由数据总线接口、总线控制逻辑、波特率发生器、发送部分和接收部分组成。
其功能包括微处理器接口,发送缓冲器(tbr)、发送移位寄存器(tsr)、帧产生、并转串、数据接收缓冲器(rbr)、接收移位寄存器(rsr)、帧产生、串转并。
图3-1UART的模块构成
3.1.2UART的帧格式
UART的帧包括线路空闲状态(idle,高电平)、起始位startbit,低电平、5~8位数据位databits、校验位paritybit,可选和停止位stopbit,位数可为1、1.5、2位。
这种格式是由起始位和停止位来实现字符的同步UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置。
图3-2UART的帧格式
3.1.3UART的设计规格
设计采用模块化、层次化的设计思想,全部设计采用VerilogHDL实现。
整个UARTIP由串行数据发送模块、串行数据接收模块、接收和发送FIFO、总线接口逻辑、寄存器和控制逻辑构成。
串行发送模块和接收完成并/串和串/并的
转换。
发送和接收FIFO用于缓存发送和接收的数据。
总线接口逻辑用于连接UARTIP内部总线和微控制器接口。
寄存器和控制逻辑实现UARTIP内部所有数据的收发、控制和状态寄存器、内部中断的控制及波特率信号的产生。
3.1.3.1UART模块的划分
该UART主要由波特率产生器模块、发送器模块、接收器模块、微控制器模块构成。
结构图可参考图3-1。
主要模块代码包括:
UART.v:
UART的顶层模块,主要是完成各子模块的调用。
U_XMIT.v:
异步发送传输模块,将数据由并行转换成串行的输出。
U_REC.v:
异步接收模块,完成数据由串行到并行的转换,并送给CPU。
U_BAUD.v:
波特率生成模块,主要产生波特率时钟。
U_MP.v:
微控制器模块,完成UART内部信号的处理、与外部信号的连接。
3.1.3.2输入输出信号描述
整个UART的输入输出信号如下描述:
表3-1UART输入输出信号说明
信号输入/输出信号说明
输入输出信号定义
SYS_CLKinput系统时钟
表3-1续
SYS_RSTinput系统复位信号
MP_CSInputUART片选信号
MP_WRInputUART写使能信号
MP_RDInputUART读使能信号
BAUD_RAT_DIVInput波特率分频系数
UART_DATAInputUART数据接收端
MP_DATA_TO_UARTInput控制器向UART的将要输出的数据UART_XMITHOutputUART数据发送端
XMIT_DONEOutputUART数据发送完成反馈信号
MP_DATA_FROM_UARTOutputUART到控制器的UART已经接收到的数据MP_DATA_READYOutputUART通知控制器可以取数信号3.1.3.3模块简介
1、发送器模块
发送器模块主要由并串转换装置、状态机、逻辑控制单元和数据选择器构
成。
它主要是负责并行数据转换成串行数据的输出,并在数据传输的开始置开始
位0,数据传输结束是置停止位1。
图3-3发送器模块外部接口图
表3-2发送器输入输出信号说明
UART_CLKinputUART时钟
UART_RSTinputUART复位信号
XMITHinputUART发送使能信号
表3-2续
XMIT_DATAinputUART发送数据并行输入口
UART_XMITTHoutputUART发送数据线
UART_DONEHoutputUART数据发送完成应答信号
2、接收器模块
接收器模块主要由状态机、串并转换装置和逻辑控制单元组成。
主要功
能是在检测开始位后,对输入的有效数据进行串行到并行的转换,在接收到的数
据到一个字符宽度后将并行数据输出。
图3-4接收器模块外部接口图
表3-3接收器输入输出信号说明
UART_DATAinputUART数据接收信号
REC_DATAoutputUART接收数据并行输出线REC_READYoutputUART数据接收完成应答信号
3、波特率产生模块
波特率产生模块主要由计数器、逻辑控制单元和反向器构成。
它主要负
责由系统时钟生产波特率时钟。
图3-5波特率产生模块外部接口图
表3-4发送器输入输出信号说明
BAUD_RAT_DIVinput波特率分频系数输入
UART_CLKoutputUART时钟输出信号
总线接口控制模块
本设计的数据接口比较简洁,包含两个接口:
UART管脚和同步处理器总线接口。
UART管脚包括发送和接收管脚,能直接通过底层通信协议与计算机进行通讯,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UART 接口 设计 FPGA 验证 本科毕业 论文 编辑