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

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

ID:50300086

大小:106.00 KB

页数:11页

时间:2020-03-07

EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-07.4 FPGA通用异步收发器.ppt_第1页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-07.4 FPGA通用异步收发器.ppt_第2页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-07.4 FPGA通用异步收发器.ppt_第3页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-07.4 FPGA通用异步收发器.ppt_第4页
EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-07.4 FPGA通用异步收发器.ppt_第5页
资源描述:

《EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-07.4 FPGA通用异步收发器.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、始位数据位校验位停止位UART系统FPGA接口电路接下页由于RS-232接口采用+3V-+15V表示逻辑“0”,-3V--15V表示逻辑“1”,因此必须利用MAX232电平转换电路将其转换为数字逻辑电平。具体线路连接如图7-19所示,其中MAX232的7脚和8脚接标准的9针RS-232接口,9脚和10脚接FPGA的I/O引脚。libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityTOPisPort(CLK:instd_logic;uarti

3、n:instd_logic;DIVCLK:outstd_logic;DIVCLK2:outstd_logic;RxAv:outstd_logic);endTOP;architectureBehavioralofTOPisUART系统VHDL描述接下页signaltempclk:std_logic;signaltempdivclk:std_logic;signalcounter:std_logic_vector(3downto0);signaltempdivclk2:std_logic;signalcounter2:std_logic_vector(11downto0);signaltempd

4、ata:std_logic_vector(7downto0);typestateis(idle,work,tobuf);signalpresent_state:state;signalrxdbuf:std_logic;signalrxdin:std_logic;signalrecclk:std_logic;signaldata_buf:std_logic_vector(7downto0);signalcnt:std_logic_vector(3downto0);接下页signaldivcnt:integerrange0to86;signalbitpos:integerrange0to7;co

5、mponentBUFGport(I:instd_logic;O:outstd_logic);endcomponent;componentIBUFport(I:instd_logic;O:outstd_logic);endcomponent;beginu0:IBUFportmap(I=>uartin,O=>rxdbuf);u1:BUFGportmap(I=>rxdbuf,O=>rxdin);u3:BUFGportmap(I=>clk,O=>tempclk);接下页--产生16倍波特率的时钟T=542.5ns(波特率为115200)process(tempclk)beginiftempclk'e

6、ventandtempclk='1'thenif(counter>="1101")thencounter<="0000";tempdivclk<=nottempdivclk;elsecounter<=counter+'1';endif;endif;endprocess;接下页divclk<=tempdivclk;process(tempdivclk)beginiftempdivclk'eventandtempdivclk='1'thencasepresent_stateiswhenidle=>RxAv<='1';ifrxdin='1'thencnt<="0000";present_state

7、<=idle;elsecnt<=cnt+'1';ifcnt="0111"then接下页present_state<=work;cnt<="0000";bitpos<=0;endif;endif;whenwork=>ifcnt="1111"thencnt<="0000";data_buf(bitpos)<=rxdin;bitpos<=bitpos+1;ifbitpos=7thenbitpos<=0;presen

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。