EDA原理第12章通用异步接收发送器的设计和实现.ppt
《EDA原理第12章通用异步接收发送器的设计和实现.ppt》由会员分享,可在线阅读,更多相关《EDA原理第12章通用异步接收发送器的设计和实现.ppt(39页珍藏版)》请在三一办公上搜索。
1、通用异步接收发送器 的设计和实现,何宾2011.09,UART的设计和实现-本章概要,本章给出了PLD器件在简单通信系统的应用-UART设计。通用异步接收/发送器的设计也是PLD在通信系统的经典应用。该章首先介绍了UART设计原理,其中包括UART原理和设计描述、接收模块设计,随后介绍了UART的VHDL代码描述,最后介绍了URAT的软件仿真验证和硬件验证。,UART的设计和实现-设计原理,基于通用异步接收发送器UART的RS-232接口是以前计算机上提供的一个串行数据接口,用来将接收的串行数据转换成并行数据,同时将并行数据转换成串行数据后发送出去。当PLD和其它外设通过串口通信时就非常有用。
2、UART发送的数据,经过电平转换后,传送到PLD的外部串行总线接口,然后这些串行数据被送到PLD内部进行处理。被处理的数据然后转换为串行数据经电平转换后传回串口。,UART的设计和实现-设计原理,该设计包含下面几个方面:并行/串行和串行/并行数据转换使用用户定义的奇偶校验位(缺省设置为奇校验)数据波特率可修改(缺省9600)包含测试代码和测试向量,UART的设计和实现-符号描述图,UART的设计和实现-原理和设计描述,UART设计主要包括两部分:并行数据转化成串行数据,串行数据转换成并行数据。UART设计的接收端口将接收到的串行数据转换成并行数据,同时UART的发送端口负责并行数据转换成串行数
3、据。测试代码完成对UART设计的验证,该验证已经在Xilinx大学计划提供的开发平台进行了验证,该设计也很容易的移植到其它的EDA平台上。,UART的设计和实现-原理和设计描述符号,UART的设计和实现-原理和设计描述,UART设计包含两个主要模块,这两个模块封装在一个UART的设计文件中。这两个模块一个处理接收的串行数据,另一个处理发送的串行数据。接收模块的端口接收一个字节的有效数据,并将其转换成8位的并行数据。转换的并行数据放在DBOUT端口。发送模块将发送的数据送到DBIN端口,并且将其转换成一个字节的串行发送数据,转换完的数据TXD端口上。,UART的设计和实现-接收模块的设计,接收模
4、块接收串行数据并将其转换为并行数据。该设计包括下面几个部分:串行数据控制器用于同步的两个计数器移位寄存器,移位寄存器保存来自RXD的数据。错误比特控制器。来自RXD串口的数据以一定的波特率被接收,所以需要有个控制器同步接收数据的采集相位。串行同步控制器的设计采用了一个状态机和两个同步计数器。在设计中,在每个接收比特数据的中间采集数据。,UART的设计和实现-接收模块状态机,UART的设计和实现-接收模块状态机原理,当处于idle状态时,串行数据管脚RXD处于高电平状态,在该状态一直等待直到检测到RXD为低电平时,进入到EightDelay状态。在该状态,主要是进行同步,使得在每个比特位的中间采
5、样数据,计数器ctr比波特率快16倍。在该状态下,ctr计数到8。然后进入到WaitFor0状态,waitfor1状态跟在其后,这两个状态的转移由ctr的最高两位确定。进入到GetData状态时,开始对RXD数据进行移位。,UART的设计和实现-接收模块状态机原理,这两个状态保证有足够的延迟保证读取采样数据的正中间。当计数器计数到10(8个数据位、一个奇偶位和一个停止位),然后进入到CheckStop状态。这个状态进行奇偶校验。当该状态结束后,进入到idle状态。,对接收数据进行采样的时序的描述,UART的设计和实现-差错控制的实现,差错控制寄存器分析接收到的数据,并对三种错误进行判断:奇偶错
6、、帧错误和溢出错误。奇偶错误指接收数据的得到的校验和与接收到的Par不一样。当进行偶校验的时候,D0到D7的和应该是偶数,否则是奇校验。该设计中缺省设置为偶校验。当奇偶校验错误时,PE端口为高。帧错误是指UART在给定的时序没有正确的读到数据。当停止位不为1时,表示帧错误,此时FE端口为1。溢出错误是指,当前帧接收完,但还没有读时下一帧数据就到了的情况。当单字节的串行数据可读时RDA为高,移位后的并行数据放在DBOUT端口。一旦RDA端口为高,且此时数据仍在DBOUT端口时,OE溢出错误标志为高。,UART的设计和实现-接收模块内各个子模块的连接关系,UART的设计和实现-发送模块的设计,发送
7、模块接收来自DBIN模块的数据,并以串行数据的发送发送到TxD端口上。发送端口的波特率和接收数据的波特率一样,接收和发送波特率的修改方式一样。为了发送存储在DBIN端口的数据,发送模块必须有一个发送控制器、两个控制数据的波特率的同步计数器和发送移位寄存器。两个计数器中的一个计数器用于延迟发送控制器,另一个计数器用来计算发送的串行数据位的个数。TXD端口和发送移位寄存器的最低位连接。,UART的设计和实现-发送模块的状态机,UART的设计和实现-发送模块的状态机,UART在idel状态,当WR为高时状态发生变化。然后,发送模块加载DBIN端口的数据,下一个状态发送数据。Transfer状态准备发
8、送移位寄存器发送数据。设置load=1,移位寄存器开始加载数据,其顺序是一个起始位、一个字节的DBIN数据、一个奇偶校验位和一个停止位。下一个状态进入到shift状态。在该状态下,移位信号置1,表示移位寄存器移1。Tfincr信号也置1表示递增数据计数器。如果数据计数器不等于9,表示发送移位寄存器没有进行移位操作,此时进入delay状态。如果移位完成,此时进入WaitWrite状态。,UART的设计和实现-发送模块的状态机,在delay状态下,发送数据按照正确的波特率发送数据。当tdelayctr与波特率常数一样时,结束该状态。进入到Shift状态。一旦进入到waitwrite状态,结束发送过
9、程。在这个状态需要确认WR信号为高,才能开始发送过程。,UART的设计和实现-发送模块的状态机内部结构,UART的设计和实现-UART的VHDL设计代码,entity UARTcomponent is Port(TXD:out std_logic:=1;RXD:in std_logic;CLK:in std_logic;DBIN:in std_logic_vector(7 downto 0);DBOUT:out std_logic_vector(7 downto 0);RDA:inout std_logic;TBE:out std_logic:=1;RD:in std_logic;WR:in
10、std_logic;PE:out std_logic;FE:out std_logic;OE:out std_logic;RST:in std_logic:=0);end UARTcomponent;,UART的设计和实现-UART的VHDL设计代码,architecture Behavioral of UARTcomponent is type rstate is(strIdle,strEightDelay,strGetData,strWaitFor0,strWaitFor1,strCheckStop);type tstate is(sttIdle,sttTransfer,sttShift,
11、sttDelay,sttWaitWrite);constant baudRate:std_logic_vector(12 downto 0):=1010001011000;constant baudDivide:std_logic_vector(8 downto 0):=101000110;signal rdReg:std_logic_vector(7 downto 0):=00000000;signal rdSReg:std_logic_vector(9 downto 0):=1111111111;signal tfReg:std_logic_vector(7 downto 0);signa
12、l tfSReg:std_logic_vector(10 downto 0):=11111111111;signal clkDiv:std_logic_vector(9 downto 0):=0000000000;signal ctr:std_logic_vector(3 downto 0):=0000;signal tfCtr:std_logic_vector(3 downto 0):=0000 signal dataCtr:std_logic_vector(3 downto 0):=0000;,UART的设计和实现-UART的VHDL设计代码,signal parError:std_log
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 原理 12 通用 异步 接收 发送 设计 实现

链接地址:https://www.31ppt.com/p-2433818.html