- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA设计与现UART
基于FPGA设计与实现UARTUART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。---串行外设用到RS232异步串行接口,本基于FPGA器件设计与实现UART。 一 UART UART是通过串行传送数据而实现通信的,它的帧格式--
-包括线路空闲状态(高电平)、起始位(低电平)、5~8位数据位、可选校验位和停止位(可为1、1.5、2位)。这种格式是由起始位和停止位来实现字符的同步。 UART的设计与实现-- Generated by Quartus II Version 4.0 (Build Build 190 1/28/2004)
-- Created on Sun Nov 20 17:09:41 2005
--文件名:baud.vhd
--功能:将外部输入的4MHz的信号分成频率为153600Hz=9600Hz×16的信号
--26倍分频计
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity baud is
Port (clkb,resetb:in std_logic; clk_out:out std_logic);
end baud;
architecture Behavioral of baud is
begin
process(clkb,resetb)
variable div:integer range 0 to 26;
begin
if resetb=1 then --复位
div:=0; clk_out=0;
elsif clkb event and clkb=1 then--设置分频系数
div:=div+1;
if div=13 then --一半的时候置0
clk_out=0;
elsif div=26 then --26的时候置1
clk_out=1;
div:=0;
end if;
end if;
end process;
end Behavioral;
2、 UART接收器---串行数据帧和接收时钟是异步的,发送来的数据由逻辑1变为逻辑0可以视为一个数据帧的开始。接收器先要捕捉起始位,确定rxd输入由1到0,逻辑0要8个CLK16时钟周期,才是正常的起始位,然后在每隔16个CLK16时钟周期采样接收数据,移位输入接收移位寄存器,最后输出数据dout。数据接收标志信号标志数据接收完-- Generated by Quartus II Version 4.0 (Build Build 190 1/28/2004)
-- Created on Sun Nov 20 17:09:41 2005
--文件名:receive.vhd。
--功能:UART接受器。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity receive is
Port (clkr:in std_logic; --采样时钟
resetr:in std_logic; --复位信号
rxd:in std_logic; --数据串行输入信号
r_lock:in std_logic; --接收锁存信号
frame_end:out std_logic;--一位接收完毕信号
frame_error:out std_logic;--接收出错信号
dout:out std_logic_vector(7 downto 0));--显示接收数据
end receive;
architecture Behavioral of receive is
begin
pro:process(clkr,resetr,rxd) --接收信号进程
variable number:std_logic_vector(3 downto 0);
--接收数据的位数计数
variable
您可能关注的文档
- 在教育工作暨科学技奖励会上的讲话.doc
- 在数字化城市的框架建设城市通卡系统.doc
- 在深韩资制造型企业文化冲突对员工行为模式影响分析.doc
- 在集团公司2009工作总结及先进表彰大会上的讲话.doc
- 在集团公司2011计划统计调度工作会上的讲话3.doc
- 地下室外墙防水工程工方案 - 副本.doc
- 地下室施工基础施工案(紫金).doc
- 地下室施工方案(正版).doc111.doc
- 地下室滤水层施工方(卵石层回填)_secret.doc
- 地下室筏板基础大体砼施工组织方案.doc
- 江苏省灌云高级中学2023-2024学年高三上学期第一次月考地理试题含答案.docx
- 备战2024年高考物理一轮重难点复习 第十三章 近代物理.docx
- 江苏省高邮市一中2021-2022学年高三上学期第一次月考语文试题(原卷版).docx
- 江苏省华罗庚中学2023-2024学年高三上学期12月阶段检测数学试卷含答案.docx
- 江苏省海门中学2023-2024学年高三上学期第一次调研考试地理试题及答案.docx
- 备战2024年高考物理一轮重难点复习 第九章 恒定电流.docx
- 江苏省高邮市2023-2024学年高三下学期3月学情调研数学试题含答案.docx
- 备战2024年高考物理一轮重难点复习 实验十一:探究影响感应电流方向的因素.docx
- 备战2024年高考物理一轮重难点复习 实验三:验证平行四边形定则.docx
- 备战2024年高考物理一轮重难点复习 第十四章 光.docx
文档评论(0)