- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA CPLD设计与实现UART
基于FPGA/CPLD设计与实现UART
[日期:2005-7-7] 来源:今日电子? 作者:江阴职业技术学院电子信息工程系 井新宇 [字体:大 中 小]
摘 要:UART是广泛使用的串行数据通讯电路。本设计包含UART发送器、接收器和波特率发生器。设计应用EDA技术,基于FPGA/CPLD器件设计与实现UART。关键词:FPGA/CPLD;UART;VHDL
---UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。---串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。
一 UART简介1 UART结构---UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。---功能包括微处理器接口,发送缓冲器(tbr)、发送移位寄存器(tsr)、帧产生、奇偶校验、并转串、数据接收缓冲器(rbr)、接收移位寄存器(rsr)、帧产生、奇偶校验、串转并。---图1是UART的典型应用。2 UART的帧格式---UART的帧格式如图2所示。
---包括线路空闲状态(idle,高电平)、起始位(start bit,低电平)、5~8位数据位(data bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。---这种格式是由起始位和停止位来实现字符的同步。---UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置。
二 UART的设计与实现1 UART发送器---发送器每隔16个CLK16时钟周期输出1位,次序遵循1位起始位、8位数据位(假定数据位为8位)、1位校验位(可选)、1位停止位。---CPU何时可以往发送缓冲器tbr写入数据,也就是说CPU要写数据到tbr时必须判断当前是否可写,如果不判这个条件,发送的数据会出错。---数据的发送是由微处理器控制,微处理器给出wen信号,发送器根据此信号将并行数据din[7..0]锁存进发送缓冲器tbr[7..0],并通过发送移位寄存器tsr[7..0]发送串行数据至串行数据输出端dout。在数据发送过程中用输出信号tre作为标志信号,当一帧数据发送完毕时,tre信号为1,通知CPU在下个时钟装入新数据。---发送器端口信号如图3所示。---引入发送字符长度和发送次序计数器length_no,实现的部分VHDL程序如下。---if std_logic_vector(length_no) = “0001” then---tsr = tbr ; --发送缓冲器tbr数据进入发送移位寄存器tsr---tre = 0 ; --发送移位寄存器空标志置“0”---elsif std_logic_vector(length_no) = “0010” then---dout = 0 ; --发送起始位信号“0”---elsif std_logic_vector(length_no) = “0011” and std_logic_vector(length_no) = “1010” then---tsr = 0 tsr(7 downto 1); --从低位到高位进行移位输出至串行输出端dout---dout = tsr(0) ;---parity = parity xor tsr(0) ; --奇偶校验---elsif std_logic_vector(length_no) = “1011” then---dout = parity ; 校验位输出---elsif std_logic_vector(length_no) = “1100” then---dout = 1 ; --停止位输出---tre = 1 ; --发送完毕标志置“1”---end if ;---发送器仿真波形如图4所示。
2 UART接收器---串行数据帧和接收时钟是异步的,发送来的数据由逻辑1变为逻辑0可以视为一个数据帧的开始。接收器先要捕捉起始位,
您可能关注的文档
最近下载
- 自动控制原理上下册宋永端答案详解.docx
- 全国大学生职业规划大赛获奖PPT模板.pptx
- 《中汇税务师事务所》课件.pptx VIP
- “礼让斑马线”习惯的养成主要靠道德引导VS法律约束辩论赛 反方辩词一辩、二辩、三辩、四辩发言稿.docx
- (样本)2024年全球中大型储能系统用BMS行业总体规模、主要企业国内外市场占有率及排名 DHJ.docx
- 《医用内窥镜 内窥镜摄像系统可靠性设计规范》.docx VIP
- 人教版道德与法治二年级下册《小水滴的诉说》教学设计.pdf
- 精品解析:重庆市第八中学校2023-2024学年七年级上学期期末语文试题-A4答案卷尾.docx VIP
- 大学生职业生涯规划.pptx VIP
- GJBZ127B-2023装备质量管理统计方法应用指南.pdf
文档评论(0)