版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计UART的设计与实现 课程设计 题目:UART的设计与实现 2012 年 10月 20 日21摘要本文对通用异步收发器UART进行了概述,描述了UART的功能以及模块化的设计思路,给出了设计的VHDL语言程序,并进行了相应的仿真验证。摘要16页空?目录字号:正文小四号注意空白与图片大小第1章 设计要求整个课程设计的要求如下:a. 采用8位宽的数据总线,16位宽的地址总线;b. 具有完整的数据收发功能,且波特率可调;c. 8位数据位、1位奇校验位、1位停止位;d. 一级数据缓冲;e. 具备奇校验检错功能;第2章 原理概述1、 UART的整体框图异步收发器的原理框图如图1-1所示。图1-
2、12、 UART的原理(1) UART简述UART即Universal Asynchronous Receiver Transmitter通用异步收发器,是一种应广泛的短距离串行传输接口。往往用于短距离、低速、低成本的微机与下拉机的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。“异步”指不需要额外的时钟线进行数据的同步传输,是一种串行总线接口,只需占用两根线就可以完成数据的收发(一根接收数据,一根发送数据)。常用的传输率有4800bps、9600bps、19200bps和115200bps等。(2) 基本帧格式1. 基本概念1 在信号线上有两种状态,可分别用逻辑1和逻
3、辑0来区分。在发送空闲时,数据线应保持在逻辑1状态;2 起始位。发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接收器数据传输即将开始;3 数据位。起始位之后就是传送数据位。数据位一般为一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后;4 校验位。可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。 本课程设计里,UART使用1比特的奇校验位;5 停止位。停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态;6 位时间。即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、
4、1位、1.5位格式,一般为1位;7 帧。从起始位开始到停止位结束的时间间隔称之为一帧;8 波特率。UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。2. 帧格式UART的帧格式如下:STARTD0D1D2D3D4D5D6D7PSTOP起始位数 据 位校验位停止位UART的整个设计分为3个子模块和一个顶层模块:波特率发生器、发送模块、接收模块和一个顶层模块。(3) 波特率发生器波特率发生器实
5、际上就是一个简单的分频器。它把系统时钟(clk)分频成16倍的波特率时钟,称为分频时钟(bclk)。分频时钟控制了发送器和接收器的采样速率,从而达到精准采样的目的。(4) 发送器发送器要做的工作就是把CPU从数据总线上送来的8位并行数据按照波特率时钟变为串行数据,先发1位的起始位,然后发8位的数据,之后1位的奇校验位和停止位。每1位都是发一个波特率时钟,即16个分频时钟。在发送完数据后,产生一个发送确认信号(命名为txd_done),当该信号为1时表示一帧的数据发送完毕,等待下一帧数据的发送。(5) 接收器接收器要做的工作就是把外部送来的串行数据按照波特率时钟转换成8比特的并行数据,然后放在数
6、据总线上供CPU使用。首先它要能够检测低电平的起始位,等待8个分频时钟后确认信号是否一直保持低电平,是的话就开始每16个分频时钟(即一个波特率时钟)采一次数据。接收完数据后返回奇校验信息,并把接收完成信号(命名为r_ready)置为高电平,表示一帧的数据接收完毕。(6) 顶层模块顶层模块把地址总线上的16位地址信号进行地址译码。将译码后的信号送往对应的子模块,把数据总线上的8位数据做并串转换后输出,或者把外部串行数据做串并转换后送往数据总线。并且返回相应的接收完成信号和奇校验信号,或者返回发送完成信号。第3章 模块设计与仿真1、 波特率发生器设计与仿真波特率发生器实际上就是一个简单的分频器。可
7、以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子。已算出的波特率分频因子作为分频器的分频数。对于波特率发生器中的系数一般在FPGA实现时往往是固定的,但对于不同的实现,这个系数需要更改。波特率发生器产生的分频时钟,不是波特率时钟,而是波特率时钟的16倍,目的是为了在接收事实进行精确地采样,以提出异步的串行数据。在VHDL实现的时候,设置了4个输入端口和1个输出端口,其中输入端口k用于设置所需的波特率。当k为00时对应的波特率为4800bps;k为01时对应的波特率为9600bps;k为10时对应的波特率为19200bps;k为11时对应的波特率为115200bps。输入端口
8、clk接系统时钟,ben为使能端口,resetb为复位端口,低电平有效。输出端口信号bclk即为不同波特率所对应的分频时钟。这里的系统时钟clk设为32MHz。波特率发生器的仿真结果如图3-1所示。图3-12、 接收器设计与仿真由于串行数据帧和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一个数据帧的起始位。然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0才可认定接收到的是起始位。由于内部采样时钟bclk周期(波特率发生器产生)是发送或接收波特率时钟频率的16倍,所以起始位需要至少8个连续bclk周期的逻辑0被接收到,才认
9、为起始位接收到,接着数据位和奇偶校验位将每隔16个bclk周期被采样一次(即每一个波特率时钟被采样一次)。如果起始位的确是16个bclk周期长,那么接下来的数据将在每个位的中点处被采样。图3-2是UART接收器的接收状态机。图3-2状态机一共有4个状态,分别命名为:rx_idle,rx_sync,rx_data,rx_stop。接收机复位以后,将处于rx_idle状态。这时,接收机等待输入信号rxdr变为低电平,即起始位,这意味着新的一帧UART数据帧的开始,一旦起始位被确定,状态机将转入rx_sync状态。rxd_sync信号是rxdr的同步信号,因为在进行逻辑1或逻辑0判断时,不希望检测的
10、信号是不稳定的,所以不直接检测rxdr信号,而是检测经过同步后的rxd_sync信号。rx_sync状态:这一状态是起始位的检测阶段,即接收器在连续收到8个分频时钟的低电平后,才能确定接收到的信号是起始位,才能进入下一状态;否则,接收器重新进入rx_idle状态。进入rx_sync状态会有一个分频时钟的延迟,所以计数值为6(即二进制的0110,从0000开始计数)时,便可以确定接收到的是起始位。rx_data状态:对于异步串行信号,为了使每一次都检测到正确的位信号,而且在较后的数据位检测时累计误差较小,显然在每位的中点检测是最为理想的。所以在计数值为15(即二进制的1111,从0000开始计数
11、)时,把接收到的同步信号rxd_sync送入移位寄存器rbufs的最低位,然后移位寄存器向左移一次位,同时把rxd_sync与校验信号rx_check(初始值为0)做异或操作,结果返回到rx_check中;当移位寄存器移了8次后,在移位计数值为9时进入下一状态,否则重新进入rx_data状态。这个时候9比特的数据(包括一位奇校验位)就接收完成。同时,奇校验也同时完成。rx_stop:这一状态是接收停止位状态。其实,接收器并不严格接收停止位,而是把r_ready信号输出一个波特率时钟。这一状态里,r_ready信号为逻辑1,计数值全部清0,移位寄存器中的值送给输出寄存器rbuf,奇校验信息送给寄
12、存器r_check。之后进入rx_idle状态。这里r_check为1时说明接收到的数据是没有检验错误的,否则便出现数据错误。接收器的仿真结果如图3-3所示。图3-3(1)图3-3(2)图3-3(3)图3-3(4)3、 发送器设计与仿真发送器只要遵循每经过一个波特率时钟便输出一位数据即可,顺序为1位起始位,8位数据位,1位奇校验位和1位停止位。发送器的状态机如图3-4所示。图3-4发送器有5个状态,分别命名为:x_idle,x_start,x_send,x_done,x_stop。x_idle状态:当发送器复位后,等待使能信号ten变为逻辑1。如果ten为1,则进入下一状态,并且输出txds变为0;否则重新进入x_idle状态,输出txds为1,发送完成信号txd_done为0。x_start状态:这一状态是发送一个波特率时钟的起始位。发送完起始位后,进入下一状态。x_send状态:发送8位数据。这一状态里,每一个波特率时钟移位寄存器里的最低位输出,然后向右移一次位,同时把输出与校验信号做异或操作,结果返回到检验信号tx_check;当发送完最后1位数据时,进入下一状态。x_done状态:发送一个波特率时钟的校验位,并把txd_done中值变为1,进入下一状态。x_stop状态:发送停止位,进入x_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年草除灵乙酯项目建议书
- 2025年多路信号老化检测系统项目合作计划书
- 急腹症护理科研进展视频
- 肺部疾病的护理创新实践
- 癫痫护理技能培训要点
- 精神护理中的伦理问题与应对策略
- 刮痧护理与现代医学结合
- 听课件困教学课件
- 预防医学中的医患
- 非销售场景沟通话术
- 全球重点区域算力竞争态势分析报告(2025年)-
- 2025北京热力热源分公司招聘10人参考笔试题库及答案解析
- 2025年湖南省法院系统招聘74名聘用制书记员笔试参考题库附答案
- 2025广西机电职业技术学院招聘教职人员控制数人员79人备考题库及答案解析(夺冠)
- 2026届高考政治一轮复习:必修2 经济与社会 必背主干知识点清单
- 大学生校园创新创业计划书
- 护士职业压力管理与情绪调节策略
- 贵州国企招聘:2025贵州凉都能源有限责任公司招聘10人备考题库及答案详解(必刷)
- 招标人主体责任履行指引
- 2025-2026学年北师大版五年级数学上册(全册)知识点梳理归纳
- 2021年广东省广州市英语中考试卷(含答案)
评论
0/150
提交评论