EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器

上传人:w****i 文档编号:94405676 上传时间:2019-08-06 格式:PPT 页数:11 大小:106KB
返回 下载 相关 举报
EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器_第1页
第1页 / 共11页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器_第2页
第2页 / 共11页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器_第3页
第3页 / 共11页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器_第4页
第4页 / 共11页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器》由会员分享,可在线阅读,更多相关《EDA技术与CPLD FPGA开发应用简明教程 教学课件 ppt 作者 978--302-15639-07.4 FPGA通用异步收发器(11页珍藏版)》请在金锄头文库上搜索。

1、UART简介,UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。 基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。,7.4 FPGA通用异步收发器设计,接下页,UART在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。 它的数据帧格式为:,UART系统FPGA接口电路,接下

2、页,由于RS-232 接口采用+3V-+15V 表示逻辑“0”,-3V-15V 表示逻辑“1”,因此必须利用MAX232 电平转换电路将其转换为数字逻辑电平。 具体线路连接如图7-19所示,其中MAX232 的7脚和8脚接标准的9针RS-232接口,9脚和10脚接FPGA的I/O引脚。,library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity TOP is Port ( CLK : in std_logic; uartin :

3、in std_logic; DIVCLK: out std_logic; DIVCLK2: out std_logic; RxAv:out std_logic); end TOP; architecture Behavioral of TOP is,UART系统VHDL描述,接下页,signal tempclk:std_logic; signal tempdivclk: std_logic; signal counter: std_logic_vector(3 downto 0); signal tempdivclk2: std_logic; signal counter2: std_logi

4、c_vector(11 downto 0); signal tempdata: std_logic_vector(7 downto 0); type state is (idle,work,tobuf); signal present_state:state; signal rxdbuf:std_logic; signal rxdin:std_logic; signal recclk:std_logic; signal data_buf:std_logic_vector(7 downto 0); signal cnt:std_logic_vector(3 downto 0);,接下页,sign

5、al divcnt:integer range 0 to 86; signal bitpos:integer range 0 to 7; component BUFG port (I: in std_logic; O: out std_logic); end component; component IBUF port (I: in std_logic; O: out std_logic); end component; begin u0:IBUF port map(I =uartin,O =rxdbuf); u1:BUFG port map(I =rxdbuf,O =rxdin); u3:B

6、UFG port map(I =clk,O =tempclk);,接下页,-产生16倍波特率的时钟T=542.5ns(波特率为115200) process(tempclk) begin if tempclkevent and tempclk=1 then if(counter=“1101“) then counter=“0000“; tempdivclk=not tempdivclk; else counter=counter+1; end if; end if; end process;,接下页,divclk RxAv=1; if rxdin=1 then cnt=“0000“; pres

7、ent_state=idle; else cnt=cnt+1; if cnt=“0111“ then,接下页,present_state if cnt=“1111“ then cnt=“0000“; data_buf(bitpos)=rxdin; bitpos=bitpos+1; if bitpos=7 then bitpos=0; present_state=tobuf; end if; else,接下页,cnt tempdata=data_buf; RxAv=0; present_state=idle; end case; end if; end process; end Behavioral;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号