基于verilog的串口通信实验指导和源程序.docxVIP

基于verilog的串口通信实验指导和源程序.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自己看了很多材料以后,精心整理的串口通信实验原理和指导,在 网上找了很多代码,大部分因为没有很好的注释,看起来很头疼, 于是自己写了一份,附带详细的注释,在 modelsim 仿真器上已经 得到验证,现在传上来,仅供参考。 PS1:最后部分给出了一个测试文件,写的非常简单,只是验证了功 能,不是很好的测试; PS2:代码部分看上去有点乱,因为在 word 中代码的层次结构无 法清晰显示,如有需要,下载后把代码 copy 到 notepad++这种类 似的专用变成工具里面,就很清晰的显示代码和注释了。 第一部分:实验原理 串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于计算机 和外设的数据交换。通常都由通用 异 步 收 发 器(UART)来实现串口通信的功能。 在实际应用中,往往只需要 UART 的几个主要功能,专用的接口芯片会造成资 源浪费和成本提高。随着 FPGA/CPLD 的飞速发展与其在现代电子设计中的广 泛应用,FPGA/CPLD 功能强大、开发过程投资小、周期短、可反复编程、保 密性好等特点也越来越明显。因此可以充分利用其资源,在芯片上集成 UART 功能模块,从而简化了电路、缩小了体积、提高了可靠性,而且设计时的灵活 性更大,周期更短。 UART 简介 UART(Universal Asynchronous Receiver Transmitter 通用异步收发器) 是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通 讯中。8250、8251、NS16450 等芯片都是常见的 UART 器件。 基本的 UART 通信只需要两条信号线(RXD、TXD)就可以完成数据的相 互通信,接收与发送是全双工形式。TXD 是 UART 发送端,为输出;RXD 是 UART 接收端,为输入。 UART 的基本特点是: 在信号线上共有两种状态,可分别用逻辑 1(高电平)和逻辑 0(低 电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。 起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送, 起始位使数据线处于逻辑 0 状态,提示接受器数据传输即将开始。 数据位(Data Bits):起始位之后就是传送数据位。数据位一般为 8 位一个字节的数据(也有 6 位、7 位的情况),低位(LSB)在前,高位 (MSB)在后。 校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用 来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。 停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻 辑 1 状态。 位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是 一致的,停止位有 0.5 位、1 位、1.5 位格式,一般为 1 位。 帧:从起始位开始到停止位结束的时间间隔称之为一帧。 (8)波特率:UART 的传送速率,用于说明数据传送的快慢。在串行通信 中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示, 称之为波特率。如波特率 9600=9600bps(位/秒)。 UART 的数据帧格式为: STAR T D0 D1 D2 D3 D4 D5 D6 D7 P STO P 起始 位 数 据 位 校验 位 停止 位 FPGA UART 系统组成 :如下图所示,FPGA UART 由三个子模块组成: 波特率发生器;接收模块;发送模块; 模块设计: 系统由四部部分组成:顶层模块;波特率发生器;UART 接收器; UART 发送器 顶层模块 异步收发器的顶层模块由波特率发生器、UART 接收器和 UART 发送器构 成。 UART 发送器的用途是将准备输出的并行数据按照基本 UART 帧格式转为 TXD 信号串行输出。 UART 接收器接收 RXD 串行信号,并将其转化为并行数据。 波特率发生器就是专门产生 一个远远高于波特率的本地时钟信号对输入 RXD 不断采样,使接收器与发送器保持同步。 波特率发生器 波特率发生器实际上就是一个分频器。 可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分 频因子,算出的波特率分频因子作为分频器的分频数。 波特率分频因子可以根据不同的应用需要更改。 波特率发生器模块主要用于产生接收模块和发送模块的时钟频率,其实质 就是一个分频器,可以根据给定的系统时钟频率和要求的波特率算出波特率分 频因子,作为分频器的分频数。波特率发生器产生的时钟频率 CLK16X 不是波 特率时钟频率 CLK,而是波特率时钟频率 CLK 的 16 倍。 UART 在发送或接收数据时,使用的时钟信号频率 f 是波特率(b=9 600 b/s)的 16 倍,由外部系统时钟进行 16 分频得到。UART 每

文档评论(0)

fangqing12 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档