好文档 - 专业文书写作范文服务资料分享网站

FPGA的UART完整设计

天下 分享 时间: 加入收藏 我要投稿 点赞

.

图3-5reset为零时仿真图

如图为UART的数据发送模块的功能仿真图,为方便观察,其中的时钟是直接给出来的,根据图中的数据判读,其功能为正确,UART的数据发送模块编译成功。

1.当计时器为140ns时,为数据接收 2.当计时器为357ns时,为数据发送

3.当计时器为705ns时,为奇偶校验结果发送 4.当计时器为825ns时,发送高电平 当reset为1时 如图3-6

.

.

图3-6reset为1时仿真图

.

.

3.4UART接收模块

3.4.1UART数据接收服务

串行 数 据 帧和接收时钟是异步的,由逻辑1跳变为逻辑0可视为一个数据帧的开始,所以接收器首先要判断起始位。如表3.2

计数器 操作

0 测 1~~~~8 偶校验 9 10 数据判断 数据起始位检数据接收和奇奇偶校验 表3.2uart的数据接收服务

其基 本 特 点是:

UART 接收状态 一 共 有 4个:state0(检测起始位),stat e1( 对数据位进行采样,并串/并转换),state2(奇偶校验 分析),state3(接收数据正确与否检测)。 ① 起始位判读:当UART接收器复位以后,接收器将处 于这一状态。在该状态,控制器一直等待read电平的跳 变,即从逻辑1变为逻辑0,也就是等待起始位的到来 。一旦检测到起始位,就对采样时钟elk一 rev 上跳沿计 数,当计数为8时,也就是确保在起始位的中间点 ,然后转到state1 状态。

② 数据接收 :该状态下,每间隔16位倍频采样一位 串行数据,接收8位异步数据并进行串/并转换。即对 clk一 rev 上跳沿计数,当为16时,就对数据采样,这样 保证了数据位是在中点处被采样的,同时串/并转换,当检测到已收到8个数据后以后,便进入了state2状态。

③ 奇偶校验 :该状态实现的功能是奇偶校验。本文采 用的是偶校验。校验结束以后,转到state3状态。

④ 数据帧判读 :该状态是用来帧校验的,即在校验位 以后,检测停止位是否为逻辑高电平

.

.

.

.

3.4.2UART数据接收操作

图3-7UART数据接收操作 起始位检测 空闲检测 Cpu接收位检测 检测 毛刺检测 数据帧检测 接收等待 数据位读取和奇偶校验 奇偶结果比较 图3-7UART数据接收操作

解释:数据接收速度9600波特率,以16倍频接收

cpu接收位检测:当奇偶结果比较和数据帧检测都正确时,cpu检测接收位cs置位

3.4.3UART的数据接收模块程序

///发送数据模块 module txd(

dat_in,send,reset,clk_enable4,clk,

send_enable,clear4,counters,ks);//发送数据module

input[7:0] dat_in,counters; input reset,clk,send_enable;

.

FPGA的UART完整设计

.图3-5reset为零时仿真图如图为UART的数据发送模块的功能仿真图,为方便观察,其中的时钟是直接给出来的,根据图中的数据判读,其功能为正确,UART的数据发送模块编译成功。1.当计时器为140ns时,为数据接收2.当计时器为357ns时,为数据发送3.当计时器为705ns时,为奇偶校验结果发送4
推荐度:
点击下载文档文档为doc格式
39ocp4futj5dq8n1sig30fluh9bohz00uib
领取福利

微信扫码领取福利

微信扫码分享