ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:215.06KB ,
资源ID:16344471      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16344471.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通用异步收发器设计课程设计报告 UART EDAWord文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通用异步收发器设计课程设计报告 UART EDAWord文件下载.docx

1、 UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。功能较为简单,但使用方便、占用资源少,可以灵活地嵌入到各种设计之中。串行外设用到的RS232-C异步串行接口,一般采用专用的集成电路即UART实现。使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。1.1 UART结构UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。1.2 UART的帧格式UART是异步通信方式,发送方和接收方分别有各自独立的时钟,传输的速度由双方约定,使用起止式异步协议。起止式异步协议的特点是以每一个字符为单位进行传输,字符之间没有固定的时

2、间间隔要求,每个字符都以起始位开始,以停止位结束。帧的格式如图一所示,每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5到8比特数据位组成,接着是一位校验位(也可以没有校验位),最后是一位(或一位半、二位)停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证了起始位开始处一定有一个下降沿。从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。UART的帧格式的示意图如图一所示:图一 基本UART帧格式1.3 UART的基本原理基本的UART通信只需要两条信号线:RXD和TXD,TXD是UART的发送端,RXD是UART的接

3、收端,接收与发送是全双工工作的。通过在串行端口上使用调制解调器,串行数据可以通过电话线进行长距离的收发(图二)。用于收发串行数据的串行通信接口通常称为UART(通用异步收发机)。UART串行数据传输的示意图如图二所示:图二 串行数据传输发送数据过程:空闲状态,线路处于高电位,当收到发送数据指令后,拉低线路一个数据位的时间T,接着数据按低位到高位依次发送,数据发送完毕后,接着发送奇偶校验位和停止位(停止位为高电位),一帧数据发送结束。接收数据过程:空闲状态,线路处于高电位,当检测到线路的下降沿(线路电位由高电位变为低电位)说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,

4、接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备准备接收数据或存入缓存。2 UART的设计与实现2.1 UART发送器串行发送数据时每秒钟发送的比特个数称之为波特率,常用串行口波特率有9600、19200、115200等多种。UART的数据帧的形式分组发送数据,以8位数据位、1位起始位和1位停止位的帧格式为例,每一个数据帧由10位数据构成,首先是一个低电平起始位来标志帧开始,随后由低至高发送8位数据,最后是1位高电平的停止位。在逻辑结构上,每秒9600次的发送节拍由波特率发生器产生,它是一个参数化、分频比的整数分频器。这里使用边沿逻辑,对于分频时钟的占空比并没有要求,所以直接用模n计算

5、器进行分频。9600Hz的时钟信号驱动10bit的一位计数器,将数据总线上载入的8bit数据加上起始位和停止位后由低到高依次移除。发送逻辑的结构框图如图三所示: 图三 发送结构框图UART发送器的发送流程图如图四所示:图四 UART发送器的发送流程图2.2 UART接收器UART是异步传输接口,没有时钟信号同步。所以接收端需要进行过采样来保证数据的接收,RS232标准规定的过采样率是以发送波特率的16倍时钟对数据进行检测。UART接收逻辑通过检测TxD上起始位的下降沿作为帧同步标准,这样就相当于把每个位分成了16份,为了避免干扰取16份中位于中部的6、7、8三个采样进行判别,以它们中两个或两个

6、以上相同的值作为采样结果。接收器结构框图如图五所示:图五 接收结构框图接收器的接收原理流程图如图六所示:图六 接收器的接收原理流程图2.3数码管动态显示图八所示的是共阳数码管及其电路,其中每个数码管的8个段: h、g、f、e、d、c、b、a(h是小数点)都连在一起。图九是4 位数码扫描显示电路,4个数码管分别由4个选通信号k1k4来选择。被选通的数码管显示数据。例如,在某一时刻,k3为低电平,其余选通信号为高电平,这时仅k3对应的数码管显示来自段信号端的数据,就必须使得4个选通信号k1k4分别被单独选通,与此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实

7、现扫描显示的目的。共阳数码管及其电路示意图如图七所示:图七 共阳数码管及其电路4位数码扫描电路的示意图如图八所示: 图八 4位数码扫描电路 2.4 波特率发生器UART的接收和发送是按照相同的波特率进行收发的。波特率发生器产生的时钟频率不是波特率时钟频率,而是波特率时钟频率的16倍,目的是为在接收时进行精确地采样,以提出异步的串行数据。2.5 UART设计总模块将发送器和接收器模块组装起来,就能较容易地实现通用异步收发器总模块,而且硬件实现不需要很多资源,尤其能较灵活地嵌入到FPGA/CPLD的开发中。UART设计流程图如图九所示:图九 UART设计流程图3硬件电路的调试3.1硬件的测试图十为

8、硬件的测试程序显示图,测试程序让4为数码管全部亮,蜂鸣器响。通过测试,硬件正常工作。部分测试程序代码:清单1 部分测试程序P7=PPPP(0);P6=PPPP(1);P5=PPPP(2);P4=PPPP(3);P3=PPPP(4);P2=PPPP(5);P1=PPPP(6);P0=PPPP(7); KKKK = K4 & K3 & K2 & K1; C4=CCCC(0);C3=CCCC(1);C2=CCCC(2);C1 PPPP=00000000;CCCC0000MING END CASE; END PROCESS;硬件的测试图如图十所示:图十 硬件的测试图3.2 数码管动态数据通过动态数码管

9、显示程序使动态扫描数码管实现动态显示。图十一是数码管动态显示结果图。动态数码管显示程序代码:清单2 动态数码管显示程序P2:PROCESS(T)BEGINCASE T IS WHEN 00 CA NULL; END PROCESS P2;P3:PROCESS (A) CASE A IS WHEN 1 = L= 10011111 -MING00100101 -2 WHEN 3 =00001101 -3 WHEN 4 =10011001 -4 WHEN 5 =01001001 -5 WHEN 6 =01000001 -6 WHEN 7 =00011111 -7 WHEN 8 =00000001 -

10、8 WHEN 9 =00001001 -9 WHEN 0 =00000011 -0 WHEN OTHERS = END CASE; END PROCESS P3;动态数码管显示如图十一所示:图十一 动态数码管显示3.3 通过按键实现数据增减3.3.1 键盘按键消抖机械式键盘在按下时,由于机械触点的弹性与接触特性,会产生瞬间的电平抖动,在实际应用中如果不对按键进行消抖处理可能会引起控制的逻辑的误触发。在本下次设计中,采用脉冲采样的方法,即对输入信号进行3次取样,如果取样值均是统一电平,则认为有按键按下且处于稳定状态,如果采样过程中不能发现连续满足3次采样值相同时,认为是误触发。键盘按键消抖程序部

11、分代码:清单3键盘按键消抖程序部分代码p2: process(clock,key_in) begin if clockevent and clock= then if div_clk=then dout1=key_in; dout2=dout1; dout3=dout2; end if; end if; end process p2; p3: process(clock) begin if clock buff=dout1 or dout2 or dout3; end if; end process p3; key_edge if tim=1001 tim else=tim+1;0010 if

12、 tim= timnull; end case; end if; end process p4;3.3.3 仿真图图十二是用RTL Viewer仿真的电路图(用了62个宏模块,22个引脚):图十二 RTL电路图4 总结通过本次课程设计,系统学习了应用EDA的VHDL语言设计、仿真与实现硬件的方法。在本次的设计中通过对波特率发生器、发送器和接收器模块的设计与仿真,能实现通用异步收发器总模块。5 参考文献1 郑亚民,董晓舟.VHDL与VerilogHDL比较学习及建模指导【M】.北京:国防工业出版社,2008.62 潘松,黄继业. EDA技术实验教程(第二版)【M】.北京:科学出版社,20053 江国强. 数字系统的VHDL设计【M】.北京:机械工业出版社,2008.104 李莉,路而红. 电子设计自动化(EDA)课程设计与项目实例【M】.北京:中国电力出版社,2009

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1