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

基于FPGA的UART设计(3)

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

 关键词:  UART FPGA VHDL

  实现用16倍波特率时钟确定起始位的具体方法是设计两个输入数据位寄存器rxd1和rxd2,使用语句“rxd1<=rxd;rxd2<=rxd1;”接收数据并进行判断。当检测到rxdl=O并且rxd2=1时可以确定下降沿发生,连续7个时钟rxd2=0即确定检测到起始位,之后为了确保在数据位中央接收数据,同样用16倍波特率时钟对数据位进行采样。接收数据的方法是设计一个寄存器rxd_buf(7 downto 0),用语句“rxd_buf(7)<=rxd2;rxd_buf(6 DOWNTO 0)<=rxd_buf(7 DOWNTO 1);”实现移位寄存器右移操作,执行8次后接收到一个完整数据。

  1.3 波特率发生器设计

  波特率发生器实质是设计一个分频器,用于产生和RS 232通信同步的时钟。在系统中用一个计数器来完成这个功能,分频系数N决定了波特率的数值。该计数器一般工作在一个频率较高的系统时钟下,当计数到N/2时将输出置为高电平,再计数到N/2的数值后将输出置为低电平,如此反复即可得到占空比50%的波特率时钟,具体的波特率依赖于所使用的系统时钟频率和N的大小。如系统时钟频率是40 MHz,要求波特率是9 600,则16倍波特率时钟的周期约等于260个系统时钟周期,则计数器取260/2=130时,当计数溢出时输出电平取反就可以得到16倍约定波特率的时钟。

  使用VHDL来描述波特率发生器的完整代码如下:

  

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

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

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

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

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

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