- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA原理_第12章_通用异步接收发送器的设计和实现
通用异步接收发送器 的设计和实现 何宾 2011.09 UART的设计和实现-本章概要 本章给出了PLD器件在简单通信系统的应用-UART设计。 通用异步接收/发送器的设计也是PLD在通信系统的经典应 用。该章首先介绍了UART设计原理,其中包括UART原 理和设计描述、接收模块设计,随后介绍了UART的 VHDL代码描述,最后介绍了URAT的软件仿真验证和硬 件验证。 UART的设计和实现-设计原理 基于通用异步接收发送器UART的RS-232接口是以前计算机上提供的一个串行数据接口,用来将接收的串行数据转换成并行数据,同时将并行数据转换成串行数据后发送出去。当PLD和其它外设通过串口通信时就非常有用。UART发送的数据,经过电平转换后,传送到PLD的外部串行总线接口,然后这些串行数据被送到PLD内部进行处理。被处理的数据然后转换为串行数据经电平转换后传回串口。 UART的设计和实现-设计原理 该设计包含下面几个方面: 并行/串行和串行/并行数据转换 使用用户定义的奇偶校验位(缺省设置为奇校验) 数据波特率可修改(缺省9600) 包含测试代码和测试向量 UART的设计和实现-符号描述图 UART的设计和实现-原理和设计描述 UART设计主要包括两部分:并行数据转化成串行数 据,串行数据转换成并行数据。 UART设计的接收端口将接收到的串行数据转换成 并行数据,同时UART的发送端口负责并行数据转换成串 行数据。 测试代码完成对UART设计的验证,该验证已经在 Xilinx大学计划提供的开发平台进行了验证,该设计也很 容易的移植到其它的EDA平台上。 UART的设计和实现-原理和设计描述符号 UART的设计和实现-原理和设计描述 UART设计包含两个主要模块,这两个模块封装在一 个UART的设计文件中。 这两个模块一个处理接收的串行数据,另一个处理发 送的串行数据。 接收模块的端口接收一个字节的有效数据,并将其转 换成8位的并行数据。转换的并行数据放在DBOUT端口。 发送模块将发送的数据送到DBIN端口,并且将其转换 成一个字节的串行发送数据,转换完的数据TXD端口上。 UART的设计和实现-接收模块的设计 接收模块接收串行数据并将其转换为并行数据。该 设计包括下面几个部分: 串行数据控制器 用于同步的两个计数器 移位寄存器,移位寄存器保存来自RXD的数据。 错误比特控制器。 来自RXD串口的数据以一定的波特率被接收,所以 需要有个控制器同步接收数据的采集相位。串行同步控 制器的设计采用了一个状态机和两个同步计数器。在设 计中,在每个接收比特数据的中间采集数据。 UART的设计和实现-接收模块状态机 UART的设计和实现-接收模块状态机原理 当处于idle状态时,串行数据管脚RXD处于高电平状 态,在该状态一直等待直到检测到RXD为低电平时,进入 到EightDelay状态。 在该状态,主要是进行同步,使得在每个比特位的中间 采样数据,计数器ctr比波特率快16倍。在该状态下,ctr计 数到8。然后进入到WaitFor0状态,waitfor1状态跟在其 后,这两个状态的转移由ctr的最高两位确定。进入到 GetData状态时,开始对RXD数据进行移位。 UART的设计和实现-接收模块状态机原理 这两个状态保证有足够的延迟保证读取采样数据的 正中间。当计数器计数到10(8个数据位、一个奇偶位 和一个停止位),然后进入到CheckStop状态。这个状 态进行奇偶校验。当该状态结束后,进入到idle状态。 UART的设计和实现-差错控制的实现 差错控制寄存器分析接收到的数据,并对三种错误进 行判断:奇偶错、帧错误和溢出错误。 奇偶错误指接收数据的得到的校验和与接收到的Par不 一样。当进行偶校验的时候,D0到D7的和应该是偶数, 否则是奇校验。该设计中缺省设置为偶校验。当奇偶校验 错误时,PE端口为高。 帧错误是指UART在给定的时序没有正确的读到数 据。当停止位不为1时,表示帧错误,此时FE端口为1。 溢出错误是指,当前帧接收完,但还没有读时下一帧 数据就到了的情况。当单字节的串行数据可读时RDA为 高,移位后的并行数据放在DBOUT端口。一旦RDA端口 为高,且此时数据仍在DBOUT端口时,OE溢出错误标志 为高。 UART的设计和实现-接收模块内各个子模块的连接关系 UART的设计和实现
文档评论(0)