通用异步收发器UART设计说明.doc

通用异步收发器UART设计说明.doc

ID:58180448

大小:1.85 MB

页数:14页

时间:2020-04-26

通用异步收发器UART设计说明.doc_第1页
通用异步收发器UART设计说明.doc_第2页
通用异步收发器UART设计说明.doc_第3页
通用异步收发器UART设计说明.doc_第4页
通用异步收发器UART设计说明.doc_第5页
资源描述:

《通用异步收发器UART设计说明.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、通用异步收发器UART设计——现代电子系统设计一、实验原理:通用异步收发器是一种广泛应用的短距离串行传输接口。常用于短距离,低速,低成本的微机与下位机的通讯中,—基本的UART连接通信图如下:RXD设备二TXDGNDTXD设备一TXDRXDGNDTXDUART只需两条信号线(RXD,TXD)和一条地线就可以完成全双工传输。由于UART是异步通讯,所以需要对数据进行同步,UART传输一个数据帧的容如下:UART发送部分的用途是将准备输出的并行数据,按照基本帧格式,转为TXD信号串行输出,这里串行话的时钟信号只要使用对应要求的波特率的本地时钟即可。UART接收部分RXD

2、接收串行信号并将其转化为并行数据,但串并转化的时钟显然同发送器一样处理,收发设备的时钟误差是会累计的,会导致接收数据不正确,这就需要用一个远远高于波特率的本地时钟信号对输入RXD不断取样,以不断让接收器和发送器保持同步,在设计中采用只有波特率时钟周期的1/16的时钟,需要用一个波特率发生器专门产生,因此本设计包含波特率发生器、UART接收器和发送器3个子模块和一个总模块。波特率发生器波特率发生器实际就是一个简单的分频器,可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子。已算出的波特率因子作为分频器的分频数。波特率发生器产生的时钟频率不是波特率时

3、钟频率,而是波特率时钟频率的16倍,目的是为在接收时进行精确地采样,以提出异步的串行数据。接收器...部采样时钟blck(波特率发生器产生)是发生或接收波特率时钟频率的16倍。所以需要至少8个连续blck周期的逻辑0被接收到,才认为起始位接收到,接着数据位将每隔16个blck周期被采样一次(即每一个波特率时钟采样一次),如果起始位的确是16个blck周期长,那么接下来的数据将在每个位的中点被采样。收发器状态图如下:r_tartr_enterr_wartr_sampr_stopr_start:等待起始位。当UART接收器复位后,接收状态机将处于这一状态,在此状态,状态

4、机一直等待RXD的电平跳变,从1变到0,即起始位,这意味着新的一帧UART的开始,一旦起始位被确定,状态将转入r_center状态。r_center:求中点。在本状态,就是由起始位求出每位中点,通过对bclk的个数进行计数(rcnt16)计数值不是理想的“1000”,要经过一个状态,即经过一个bclk周期,所希望的是的到的是采样时的1/2位,另外,对于偶然出现的干扰脉冲,由于其周期很短,所以可以认为当保持逻辑0超过1/4个位时间的信号一定是起始位。r_wait:等待采样。处于这一状态时,等待计满15个bclk,在第16个bclk是进入r_sample状态进行数据的采

5、样检测,同时也判断是否采集的数据长度已达到数据帧的长度(Framelen),如果达到,说明停止位来临了。本设计中,Frample默认为8,即对应得UART工作在8位数据位,无校验位。r_sample:数据位采样检测,完成后无条件转入r_wait状态,等待下次数据位的到来。r_stop:无论停止位是1位还是1.5位,或是2位,状态机载r_stop状态下不具体检测RXD,只是输出帧接收完毕信号(rec_done<=1)停止位后状态机转回到r_start状态,等待下一帧的起始位。发送器发送器状态转化图如下:x_Idleex_startx_waitx_shiftx_stop

6、x_Idle:空闲状态。当UART被reset复位后,进入这一状态,在此状态中,UART的发送器一直在等待一个数据帧发送命令xmit_cmd。X...mit_cmd_p信号是对xmit_cmd的处理,xmit_cmd_p是一个短脉冲信号。当xmit_cmd_p=1时,进入x_start,准备发送起始位。x_start:起始位。在此状态下,UART的发送器一个时间宽度的逻辑0信号至TXD,即起始位,紧接着状态机进入x_wait状态,xcnt16时bclk的计数器。x_wait:移位等待。接收x_wait类似。x_shift:移位状态。实现待发数据的并串转换。x_sto

7、p:停止位。数据帧发送完毕,转入该状态,并发送16个bclk周期的逻辑1信号,即1位停止位,发送完停止位后回到x_Idle状态,并等待另外一个数据帧的发送命令。总模块其实相当于UART的外部线路接口,就是成品的引脚图,它的接口一部份连接着其它模块,另一部份连接外部通信设备,其程序就是一些接口间数据的传送和接收。以下是对UART总模块中涉及的外部接口的简要说明。时钟信号clk(输入):UART的系统时钟。复位信号rest(输入)):UART系统总复位。16倍时钟bclk(输出):16倍于波特率时钟。UART发送txd(输出):UART异步串行发送端。发送缓冲xbu

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

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

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