欢迎来到天天文库
浏览记录
ID:40549411
大小:245.51 KB
页数:8页
时间:2019-08-04
《UART数据通信(发送模块部分)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、UART数据通信摘要:UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能,只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART的三个核心功能模块,本课程设计分成三部分,本人负责UART接受模块的设计和仿真,其余部分由另两位同学完成。本文使用Verilog语言对发送功能模块进行描述并加以整合,并利用XilinxISE软件进行仿真,其结果完全符合UART协议的要求。1.UART数据通信协议的介绍UART(即 Universal Asynchronous Receiver Transmitter通用异步收发器)是广泛使用
2、的串行数据传输协议。UART允许在串行链路上进行全双工的通信。UART通信接口简单,只需要两根线(本文只讨论两根线的情况,不涉及状态控制等信号):tx是UART数据发送信号,rx是UART数据接收信号。由于没有时钟信号作为采样信号,因此在UART的串行数据中需要增加一些额外的信息,这些信息连同数据组成UART的数据帧格式。UART的数据帧格式是:起始位(值为0)、数据位(可根据需要设置成6,......,9或其他位数,数据位是低位在先、高位在后)、奇偶校验位(可根据需要设置成奇校验、偶校验或无校验,本章介绍的是无校验)、停止位(停止位可有1,......,2位)0。UART的具体数据帧格式如下
3、图所示。UART数据帧格式起始位的意义是提醒接收方数据即将到来,请做好接收数据的准备。数据位是接收方需要接收的数据信息。奇偶校验位的意义是给接收方提供一种校验数据正确与否的方法和信息。这需要双方事先约定好是奇校验还是偶校验或者无校验。停止位是提醒接收方数据已发送完毕,如果接收方按照UART协议没有正常接收到停止位,则说明该帧数据不完整,可以判定数据无效。1.UART数据发送模块建模根据UART数据通信协议,UART数据发送模块还是比较简单的。实现过程描述如下:在空闲状态接收发送数据的指令后,在装载数据的同时,在数据的低位加上1位的开始位0,在数据的高位加上1位的停止位1,接着在时钟的节拍下把这
4、10位数据从低位到高位发送出去,最后恢复UART数据发送模块为空闲状态。根据以上描述设计流程图,如下图所示。UART数据发送流程图2.UART数据接受模块UART数据接收模块相对UART数据发送模块来说更复杂些。下面简单的介绍一下UART数据接收的时序分析。因为UART是异步通信,在数据采样上没有同步时钟作为参考点。结合UART数据通信协议,UART首先需要捕获数据线上的起始信号,在起始位后连续接收8位数据,最后判断停止位是否有效,如果有效则表示一帧UART数据完整接收,否则表示UART数据帧出错(这里不考虑奇偶校验位)。由于没有传送时钟信号,所以接收方需要知道发送方发出数据的波特率。虽然知道
5、了发送方的波特率,但由于接收方与发送方可能是两个不同的时钟源,所以时钟频率存在偏差。为了解决不同时钟的偏差,UART在接收方对采样时钟做出规定,即采样时钟是数据波特率的16倍。上面讲到接收方接收一个数据需要采样16次,这16次是这样分配的:当捕获到数据线上的下降沿时开始计数,计数到第8个采样周期时的采样数据作为接收到的数据。当计数到第16个采样周期时,计数器归零重新计数。每计数到8时进行数据采样。这样,只要发送方与接收方的时钟信号的频率不超过1/16,就可以正确采样数据了。1.UART分频器假设数据的波特率为p,则所需时钟的频率为16*p。以波特率p为9600为例,系统时钟为50MHz,则分频
6、系数为50000000/(16*9600)=325.52,取整为326。分频器VerilogHDL语言代码如下:moduleclkdiv(clk,clkout);inputclk;//系统时钟outputclkout;//采样时钟输出regclkout;reg[15:0]cnt;always@(posedgeclk)//分频进程beginif(cnt==16'd162)beginclkout<=1'b1;cnt<=cnt+16'd1;endelseif(cnt==16'd325)beginclkout<=1'b0;cnt<=16'd0;endelsebegincnt<=cnt+16'd1;en
7、dendEndmodule1.UART数据发送模块仿真下面使用XilinxISEDesignSuite12.4对UART数据发送模块进行仿真对工程文件进行“SimulateBehavioralModel”得到波形仿真图。0-10ns,模块复位信号r_rst_n,低电平有效(r_rst_n值为0)。(1)波形仿真图时序分析① 0-443ns,数据接收信号w_uart_tx值为1,此时一直空闲,未发送
此文档下载收益归作者所有