首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的UART接口模块设计
来源:本站整理  作者:佚名  2011-09-23 10:35:18



2.2 接收模块设计

  UART接口模块由接收控制进程、读数据进程、接收数据串/并转换进程、状态操作进程等进程构成。

  在接收控制进程中同样声明了一个6比特的变量scir_v,由它的取值(状态机)状态来控制整个接收过程。其控制过程同发送模块相似,这里不再赘述。下面给出的是接收数据进程的源代码:

  ----接收行数据的串/转换进程---

  PROCESS(clk,reset)

  BEGIN

  IF(reset=0')'THEN

  d_fb<="00000000";

  ELSIF(clkE'VENTANDclk=0')'THEN

  IF((sh_r>="1000")AND(sh_r<="

  1111")AND(sl_r="01"))THEN

  d_fb(7)<=rxd;

  FORiIN0TO6LOOP

  d_fb(i)<=d_fb(i+1);--d_fb(0)被移

  出;d_fb(7)被移空

  ENDLOOP;

  ENDIF;

  ENDIF;

  ENDPROCESS;

  图4给出的是接收数据的仿真图。当rxd出现低电平后便启动一次接收过程,当8比特的数据接收完毕后,rxd变为高电平,同时将RDFULL信号置为高电平有效,RDFULL有效表示接收寄存器已经存储了一个刚刚接收到的数据,当CS和RD有效时将数据(实际接收到的数据是2AH)读出,同时RDFULL被置成无效状态。

 

图4 接收数据的仿真波形

  2.3 波特率发生器模块

  波特率发生器实际是一个分频器,分频器的输出连接到SCI的CLK输入端,且应为实际波特率的4倍频。因为在发送和接收控制进程中,状态机由一个6比特的寄存器(cit_v、cir_v)的高4位(sh_r、sh_t)进行控制,而高4位的状态改变需要4个CLK时钟(低2位向高4位进位)。当SCI与SCI进行通信时,通信双方波特率选择一致即可,当SCI同MCU通信时,SCI的波特率选择同MCU定时器的溢出率即可,当SCI需要同PC通信时,才将SCI的波特率定制成:1.2Kbps,2.4Kbps,4.8Kbps直到115.2Kbps,这时要求SCI的晶体振荡频率要足够高来满足波特率的匹配,或采用(11.0592或22.1184MHz)的特殊晶体来满足特率的匹配要求。

  3  结论

  将SCI下载到EPF10K10芯片中,40MHz有源晶振没有进行分频直接驱动SCI模块,用ICL57176进行RS485转换,用100m的网线进行了SCI与SCI之间全双工通信。测试结果表明波特率达到10Mbps时通信是正确的

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:187,289.10000 毫秒