基于Verilog HDL的UART模块设计与仿真.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Verilog HDL的UART模块设计与仿真 摘要:通用异步 收发器UART常用于微机和外设之间的数据交换,针对UART的特点,提出了一种基于Ver4log HDL的UART设计方法。采用自顶向下的设计路线,结合状态机的描述形式,使用硬件描述语言设计UART的顶层模块及各个子模块,从而使整个设计更加紧凑、可靠。同时采用参数化的设计方法,增强系统的可移植性。仿真结果表明,该系统可支持标准异步串行传输 RS-232协议,可集成到 FPGA 芯片中使用。   随着微机应用和计算机网络的发展,计算机与外界之间的信息交换变得越来越重要,为了保证串行通信的正常进行,提高串行通信的效率和CPU的利用率,在微机系统中采用专用的大规模 集成电路 来完成这些工作,这就是串行通信 接口。通用异步接收 发送器UART(Universal asynchronousreceiver/transmitter)主要用于控制设备之间的串行通信。广泛应用于调制 解调器 Modem、手持工业设备、条形码阅读器、测试设备、消费产品与计算机PC、 微处理器以及小型通信网络之间的通信等。在SOC设计中,异步串行通信接口已成为不可缺少的一部分,它的性能优劣将直接影响相应 电子系统的性能和指标。   1 UART原理   串行通信是指外部设备和计算机间使用一根 数据线 (另外需要地线,可能还需要控制线)进行数据传输的方式。数据在一根数据线上一位一位传输,每一位数据都占据一个固定的时间长度。与并行通信方式相比,串行通信方式的传输速度较慢,但这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,因此得到了广泛的应用。   基本的UART只需要发送和接收两条数据线就可以完成数据的全双工通信,其基本功能是在发送端将控制器通过 总线 传过来的并行数据,以设定的格式,设定的频率串行地传输出去,并同时在接收端将串行接收到的数据,转换成相应的并行数据发送出去。UART的基本帧格式如图1所示。其中,起始位总是逻辑O状态,停止位总是逻辑l状态,其持续时间可选为1位、1.5位或2位,其数据位可为5、6、7、8位,校验位可根据需要选择奇校验位,偶校验位或无校验位。   2 UART的设计   现今复杂的数字系统的设计往往采用自顶向下的设计方案,利用层次化结构化的方法,将一个设计方案划分为若干模块,在不同层次的模块都可以进行仿真,可以很方便地查看某一层次的代码以改正仿真时发现错误。在本设计中UART主要由波特率 发生器、接收模块、发送模块3部分组成,并具有l位停止位和无校验位。波特率发生器实现波特率的变换,利用外部时钟信号产生一个所需波特率16倍的波特率时钟,用来控制UART的接收与发送。接收模块是用于接收串行信号,并将其转化为并行数据;而发送模块则将准备输出的并行数据按照UART的帧格式转化为串行数据输出。图2为UART结构图。   2.1 波特率发生器   波特率表示的是每秒钟传送的二进制数据的位数,即单位时间内传送的信息量。在串行异步传送中,常用到的波特率为1 200、2 400、4 800、9 600、19 200等。波特率发生器实际上是一个 分频器,主要是产生和。RS-232通信所采用的波特率同步的时钟。由于串行数据帧与接收数据时钟是异步的,所以存UART的接收端在什么时刻将数据移入寄存器,怎样选择可靠的采样点是非常关键的。一般采用高速时钟对串行数据采样是非常有效的方法。在实际设计中,一般最大选择16倍于波特率的时钟频率。实现波特率时钟的基本思路就是设计一个 计数器 ,该计数器工作在速度很高的系统时钟下,通过总线写入不同的数值到波特率发生器保持寄存器中,然后用计数器的方式生成所需要的各种波特率就能得到所需的波特率时钟,仿真如图3所示。   2.2 接收模块   接收模块是整个UART的设计的重点,其主要功能是检测数据的起始位,并对接收的数据进行串并转换,并将接收好的数据储存等待微机处理。由于串行数据帧与接收数据时钟是异步的,接收功能实现的关键是接收器与每个接收字符同步。要保证异步通信的双方准确无误地交换信息,必须有效控制采集通信线路上的电平信号的时机。由异步串行通信的特点可知,接收同步是通过低电平起始位实现的。而为了保证采样的正确性,采样在数据位的中间进行,并且接收单元采样数据的频率与发送单元发送数据的频率相同,是波特率时钟周期的16倍,这样可以有效地降低由于时钟不匹配而导致的误采样。接收模块的设计主要由状态机实现其核心功能,采用独热编码方式,虽然独热编码多用了两个触发器,但所用组合 电路可节省一些,使电路的速度和可靠性有显著提高。控制接收器的起始/停止位检测,接收数据的计数,移位寄存的

文档评论(0)

0004499 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档