当前位置RFID世界网 > 技术文章 > 其它 > 正文

嵌入式UART接口模块的设计

作者:不详 来源:RFID世界网 2012-06-25 13:55:03

摘要:通用异步收发器(UniversalAsynchrONousReceiv2er/Transmitter,UART)是辅助计算机与串行设备之间的通信,作为RS232通信接口的一个重要的部分,目前大部分的处理器都集成了UART。

关键词::嵌入式[0篇]  UART接口[0篇]  模块[62篇]  移位寄存器[0篇]  

  2.1 信号检测器模块

  信号检测器用于对RS232的输入信号进行实时监测,一旦发现新的数据则立即通知UART内核。信号检测器的仿真波形如图3所示。

图3 信号检测器仿真波形图

  其中,RxD第一次为低时,new_data信号阐述输出,之后RxD又变低,但由于信号检测器处于锁定状态,所以new_data信号并没有输出;最后,reset_n信号将信号检测器复位,RxD再次变低时,new_data又有输出。可见信号检测器的实现完全正确,其功能完全符合设计要求。

  2.2 移位寄存器模块

  移位寄存器模块的作用是存储输入或者输出数据。

  当UART接收RS232输入时,移位寄存器在波特率模式下采集RS232输入信号,且保存结果;当进行RS232输出时,UART内核首先将数据加载到移位寄存器内,再使移位寄存器在波特率模式下将数据输出到RS232输出端口上。移位寄存器的仿真波形图如图4所示。

图4 移位寄存器仿真波形图

  如图4所示,移位寄存器在复位后的每个时钟的上升沿工作。由于数据发送时是先发送有效数据的最低位,因此移位寄存器是将接收的数据由高位向低位移动,dout输出移位寄存器的最低位。图中的regs数据用16进制表示。

  2.3 波特率发生器模块

  波特率发生器的功能是产生和RS232通信所采用的波特率同步的时钟,这样才能方便地按照RS232串行通信的时序要求进行数据接收或者发送。比如,波特率为9600b/s,即每秒传输9600b数据,则同步的波特率时钟频率为9600Hz,周期为1/9600=0.10417。

  设计波特率时钟的基本思路就是设计一个计数器,该计数器工作在速度很高的系统时钟下,当计数器计数到某数值时将输出置高,再计数到一定的数值后再将输出置低,如此反复便能够得到所需的波特率时钟。该系统所用的FPGA系统时钟为50MHz,RS232通信的波特率为9600b/s,则波特率时钟的每个周期相当于

  5208个系统时钟周期。假如要得到占空比为50%的波特率时钟,只要使得计数器在计数到1604时将输出置高,之后在计数到5208时将输出置低并且重新计数,就能实现和9600波特率同步的时钟。

  为了便于仿真,使计数器计到2时将输出置高,之后计到4时将输出置地并且重新计数。波特率发生器的仿真波形图如图5所示。

图5 波特率发生器仿真波形图

  观察波形可以看到波特率发生器每经过4个时钟周期输出1个完整的波特率时钟周期,占空比为1/2,并且在每次输出波特率时钟周期之后输出1个系统时钟脉宽的提示信号indicator,UART通过此信号来了解波特率发生器已输出的波特率时钟周期个数。由波形图可见波特率发生器的工作完全满足设计的要求。

 已有0条评论 我要评论 联系编辑 分享到:网易新浪腾讯人人开心网豆瓣MSN


最新评论(加载最新评论):


上一篇:基于无线网络控制系统在沥青站的设计与应用

下一篇:TMP03/04型 数字温度传感器的工作原理


相关文章:


关键字搜索:


新闻中心::嵌入式[0篇]  UART接口[0篇]  模块[124篇]  移位寄存器[0篇]  

成功应用::嵌入式[0篇]  UART接口[0篇]  模块[4篇]  移位寄存器[0篇]  

解决方案::嵌入式[0篇]  UART接口[0篇]  模块[11篇]  移位寄存器[0篇]  


图片文章:

热点专题