首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 解决方案 > 基于FPGA的UART设计(2)

基于FPGA的UART设计(2)

北极星电力网技术频道    作者:聂  涛,许世宏   2011/2/17 14:35:43   

 关键词:  UART FPGA VHDL

  1.2 接收器设计

  比较而言,UART发送器的设计相对容易,只要每隔一个发送周期并按照数据帧格式输出数据即可,本文将对接收器的设计和实现做详细说明,发送器的设计方法基本相同。

  接收器的工作过程如下,在接收数据寄存器被读出一帧数据或系统开始工作以后,接收进程被启动。接收进程启动之后,检测起始位,检测到有效起始位后,以约定波特率的时钟开始接收数据,根据数据位数的约定,计数器统计接收位数。一帧数据接收完毕之后,如果使用了奇偶校验,则检测校验位,如无误则接收停止位。停止位接收完毕后,将接收数据转存到数据寄存器中。

  为确保接收器可靠工作,在接收端开始接收数据位之前,处于搜索状态,这时接收端以16倍波特率的速率读取线路状态,检测线路上出现低电平的时刻。因为异步传输的特点是以起始位为基准同步的。然而,通信线上的噪音也极有可能使传号“1”跳变到空号“0”。所以接收器以16倍的波特率对这种跳变进行检测,直至在连续8个接收时钟以后采样值仍然是低电平,才认为是一个真正的起始位,而不是噪音引起的,其中若有一次采样得到的为高电平则认为起始信号无效,返回初始状态重新等待起始信号的到来。找到起始位以后,就开始接收数据,最可靠的接收应该是接收时钟的出现时刻正好对着数据位的中央。由于在起始位检测时,已使时钟对准了位中央,用16倍波特率的时钟作为接收时钟,就是为了确保在位宽的中心时间对接收的位序列进行可靠采样,当采样计数器计数结束后所有数据位都已经输入完成。最后对停止位的高电平进行检测,若正确检测到高电平,说明本帧的各位正确接收完毕,将数据转存到数据寄存器中,否则出错。

  

  采用有限状态机模型可以更清晰明确地描述接收器的功能,便于代码实现。接收器的状态转换图如图3所示,为突出主要过程,图中省略了奇偶校验的情况。接收器状态机由5个工作状态组成,分别是空闲状态、起始位确认、采样数据位、停止位确认和数据正确,触发状态转换的事件和在各个状态执行的动作见图中的文字说明。

  在状态机模型的基础上,使用VHDL来描述接收器功能,其主要代码如下:

  

来源:现代电子技术
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有