欢迎来到天天文库
浏览记录
ID:16428460
大小:93.00 KB
页数:5页
时间:2018-08-09
《uart原理及接收模块设计原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、UART原理2.1UART的通信原理UART即通用异步收发器,是一种串行通信方式。数据在传输过程中是通过一位一位地进行传输来实现通信的,串行通信方式具有传输线少,成本底等优点,缺点是速度慢。串行通信分为两种类型:同步通信方式和异步通信方式。但一般多用异步通信方式,主要因为接受和发送的时钟是可以独立的这样有利于增加发送与接收的灵活性。异步通信是一个字符接着一个字符传输,一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。每一个字符的传输靠起始位来同步,字符的前面一位是起始位,用下降沿通知收方开始传输,紧接着起始位之后的是
2、数据位,传输时低位在前高位在后,字符本身由5~8位数据位组成。数据位后面是奇偶校验位,最后是停止位,停止位是用高电平来标记一个字符的结束,并为下一个字符的传输做准备。停止位后面是不同长度的空闲位。停止位和空闲位都规定为高电平,这样可以保证起始位有一个下降沿。UART的帧格式如图2.1所示。0/10/10/10/10/10/10/10/1LSBMSB起始位数据位停止位校验位空闲位图2.1UART的帧格式Figure2.1TheframeformatofUARTUART的帧格式包括线路空闲状态(idle,高电平)、起始位(st
3、art bit,低电平)、5~8位数据位(data bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。 在串口的异步通信中,数据以字节为单位的字节帧进行传送。发送端和接收端必须按照相同的字节帧格式和波特率进行通信。其中字节帧格式规定了起始位、数据位、寄偶效验位、停止位。起始位是字节帧的开始。使数据线处于逻辑0状态,用于向接收端表明开始发送数据帧,起到使发送和接收设备实现同步。停止位是字节帧的终止,使数据线处于逻辑1状态。用于向接收端表明数据帧发送完毕。波特率采用标准速度
4、9600bit/s。这种格式是由起始位和停止位来实现字符的同步。UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置将发送器和接收器模块组装起来,就能较容易地实现通用异步收发器总模块,而且硬件实现不需要很多资源,尤其能较灵活地嵌入到FPGA/CPLD的开发中。2.2UART的结构UART的设计采用模块化的设计思想,主要分为3个模块:数据发送模块、数据接收模块及波特率发生器控制模块。发送模块实现数据由并行输入到串行输出,接收模块实现数据由串行输入到并行输出
5、,波特率发生器模块控制产生UART时钟频率。CPU总线接口控制逻辑发送部分接收部分波特率发生器对象器件接收图2.2UART的典型结构图Figure2.2ThetypicalstructureofUART从图中可以看出UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分组成且控制逻辑一般是由MP即微处理器模块实现,图中的对象器件一般指和CPU进行通信的外围串行通信设备类打印机等。连线采用最简单的3线制连接模式,即只需要两根信号线和一根地线来完成数据收发。而FPGA只需要选择两个普通I/O引脚分别与接口芯片
6、MAX3232对应引脚T2IN、R2OUT相连即可完成将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/CMOS电平的转换。一个MAX3232芯片可以支持两个串口的电平变换,我们选择其中的一组接口,图中的4个电阻可以省去。在电路中加入了0Ω的跳线电阻,是为了在这组接口出故障时可以方便地跳线,使用另一组接口。3UART模块设计3.2接收模块3.2.1接收模块的实现方法串行数据帧和接收时钟是异步的,发送来的数据由逻辑1变为逻辑0可以视为一个数据帧的开始。接收器先要捕捉起始位,在rdn信号有效的条件下,由rx
7、d1非与rxd2相与,启动接收程序,计数器开始计数,数据从rxd[7..0]串行输入,由接收移位寄存器rsr[7..0]逐位移位接收,并在接收完成时传送给接收缓冲寄存器rbr[7..0],最后,接收缓冲寄存器rbr[7..0]将接收的数据传送至dout[7..0],由它并行输出。确定rxd输入由1到0,逻辑0要8个CLK16时钟周期,才是正常的起始位,然后在每隔16个CLK16时钟周期采样接收数据,移位到输入接收移位寄存器rsr,最后输出数据dout。还要输出一个数据接收标志信号标志数据接收完。当rdn为0的情况下,接收器
8、才开始接收数据,而数据由接收移位寄存器传给接收数据缓冲器主要由no_bits_sent信号控制。当no_bits_sent==0时SDO的值为0,就是数据的起始位,当no_bits_sent==1,2,3,4,5,6,7,8时开始接收八位数据,当no_bits_sent==9时sdo〈=奇偶校验位的值此
此文档下载收益归作者所有