- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用异步收发器(UART)设计
一:简介
通用异步收发器(Universal Asynchronous Receiver Transmitter,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 位。
⑦ 帧:从起始位开始到停止位结束的时间间隔称之为一帧。
⑧ 波特率:UART 的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率115200=115200bps(位/秒)。UART 的数据帧格式如表1。
表 1 UART数据帧格式
START D0 D1 D2 D3 D4 D5 D6 D7 P STOP 起始位 数据位 校验位 停止位
FPGA UART 由三个子模块组成,即波特率发生器;接收模块;发送模块。原理方框图如图1所示。
图 1 UART原理方框图
二.分析,模块设计
1. 顶层模块
异步收发器的顶层模块由波特率发生器、UART 接收器和UART 发送器构成。UART 发送器的用途是将准备输出的并行数据按照基本UART 帧格式转为TXD 信号串行输出。UART接收器接收RXD 串行信号,并将其转化为并行数据。波特率发生器就是专门产生一个远远高于波特率的本地时钟信号对输入RXD 不断采样,使接收器与发送器保持同步。电路图如图2所示。
图2 顶层模块的电路图
2. 波特率发生器
波特率发生器实际上就是一个分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。波特率分频因子可以根据不同的应用需要更改。
3. UART 接收器
由于串行数据帧和接收时钟是异步的,由逻辑1 转为逻辑0 可以被视为一个数据帧的起始位。然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0 才可认定接收到的是起始位。由于内部采样时钟bclk周期(由波特率发生器产生)是发送或接收波特率时钟频率的16 倍,所以起始位需要至少8 个连续bclk周期的逻辑0 被接收到,才认为起始位接收到,接着数据位和奇偶校验位将每隔16 个bclk周期被采样一次(即每一个波特率时钟被采样一次)。如果起始位的确是16 个bclk 周期长,那么接下来的数据将在每个位的中点处被采样。图2是UART接收器的接收状态机。
图 2 UART接收器
状态机一共有5 个状态:R_START(等待起始位)、R_CENTER(求中点)、R_WAIT(等待采样)、R_SAMPLE(采样)和R_STOP(停止位接收)。
① R_START 状态:当UART 接收器复位后,接收状态机将处于这一个状态。在此状态,状态机一直在等待RXD 的电平跳转。当RXD从逻辑1 变为逻辑0,即起始位,这意味着新的一帧UART 数据帧的开始,一旦起始位被确定,状态机将转入R_CENTER 状态。图2中的RXD_SYNC 信号是RXD 的同步信号,因为在进行逻辑1 或逻辑0 判断时,不希望检测的信号是不稳定的,所以不直接检测RXD 信号,而是检测经过同步后的RXD_SYNC 信号。
② R_CENTER 状态:对于异步串行信号,为了使每一次都检测到正确的位信号,而且在较后的数据位检测时累计误差较小,显然在每位的中点检测是最为理想的。在本状态,就是由起始位求出每位的中点,通过对bclk 的个数进行计数(RCNT16),但计数值不是想当然的“1000”,要考虑经过一个状态,也即经过了一个bclk
您可能关注的文档
最近下载
- 2025年甘肃省武威市凉州区发放镇招聘专业化管理大学生村文书笔试备考试题及答案解析.docx VIP
- 中国宫腔镜诊断与手术临床实践指南(2023年).pptx VIP
- 2025年法律职业资格(客观题)真题含答案.docx VIP
- 展板版式设计.ppt VIP
- 2025年全国司法考试客观题试卷及答案.docx VIP
- 职能科室对医技科室医疗质量督查记录表(检验科、放射科、超声科、功能科、内镜室).pdf VIP
- 中国宫腔镜诊断与手术临床实践指南(2023版).pptx VIP
- 血透患者心理健康宣教ppt.pptx
- 【新教材】英语必修第二册(新人教版)教材习题参考答案.pdf VIP
- 手机数据恢复精灵误删信息轻松恢复.PDF VIP
文档评论(0)