以下内容均以Xilinx的Nexys3作为开发板
1. UART简介
UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。 
串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。
以上内容摘自某位网友的热心博文。
就我个人而言,UART就是一个异步串行接口,见过最多的就是RS232。而我们的开发板则是一个Mircro USB来模拟这样一个接口,电路图如下:
 
 
根据manual的介绍,我们可以通过指令来通过这个接口首发数据。Mircroblaze提供了这一接口的控制器,官网上也有着一接口的VHDL语言Demo。所以原理内容本人就不再赘述,主要还是注意串行异步通信协议,如下图所示。
 
 
道理很简单,但是这个Demo笔者却研究了很久时间,因为我一直使用Verilog语言,VHDL语言和Verilog区别还是挺大的,为了方便其他使用Verilog研究本Demo,笔者现将Xilinx网站上的GPIO_UART Demo改写为Verilog。
该Demo采用单工方式,开发板最为发送器,PC最为接收器。同时,该Demo还兼具了按键消抖,7段数码管显示等模块,笔者也进行了改写,但此处不做详细介绍。
由于该源代码注解较为详细,现仅将功能介绍:其实由switch控制led显示,同时switch[0]作为系统复位端。五个按键的中间按键也可作为复位端。程序烧录后,启动系统,系统将自动向PC发送27个16位字符串;当按其他按键时,开发板也将向PC发送24个16位字符串。字符串内容相同,但数据不同。其中笔者认为该程序按键消抖部分不是很好,但是本人并未修改,毕竟只是改写人家的源代码。Xilinx官网的大部分都是VHDL程序,看起来真的是很费力,希望对感兴趣的同学有帮助吧。 
 
2.程序源代码介绍
                
  其中,笔者使用IPcore生成rom,按键发送和初始发送的数据内容相同,但长度不同,作为测试依据。源码打包在最后面。
 
 
3.实验截图
(1)状态机截图
 
                图1 顶层文件状态机
 
 
          图2 子层状态机
 
(2)测试截图
        验证工具为网上下载的小工具——串口调试器。打开该工具前需要保证开发板已经与PC相连,否则无法找到串口COM3。测试前,别忘记将选择串口选为COM3,波特率9600,数据位8,校验位无,停止位1,单击打开串口即可测试。如图。
  
 
4.附件
(1)源代码
       uart.rar
 

(2)串口调试器

 
以上内容均可以在百度网盘下载http://pan.baidu.com/share/link?shareid=940132753&uk=1092766566

【原创】FPGA开发手记(一) UART接口的更多相关文章

  1. 【原创】FPGA开发手记(二) VGA接口

    以下内容均以Xilinx的Nexys3作为开发板 1.VGA接口介绍 首先,先看电路图(3*5为例): 标准VGA一共15个接口,但是实际应用的接口信号只用五个:HSYNC,行同步信号:VSYNC,场 ...

  2. Cypress的开发板的UART接口打印调试信息

    说实话,在官方论坛现在还没有找到相关有用的消息,因为我们这个开发板的UART没引出来. http://www.cypress.com/?app=forum&id=167&rID=527 ...

  3. 【原创】FPGA开发手记(三) PS/2键盘

    以下内容均以Xilinx的Nexys3作为开发板   1.PS/2键盘简介 虽然Nexys3开发板是利用USB接口搭载键盘,但是其原理与PS/2键盘完全相同,现在就仅以PS/2键盘为例讲解如何将键盘搭 ...

  4. FPGA开发板

    kingst.cnblogs.com 各种应用需要的接口不同: 做数字信号处理的,需要有AD/DA, 做图像处理,需要有图像接口.如果是通信的,需要有通信的接口,例如PCI/LVDS等.... 然后根 ...

  5. GVIM与模板——让FPGA开发变得更简单

    还在使用FPGA开发环境自带的代码编辑器?还在逐个字母敲击冗长重复的代码?明德扬至简设计法让你快速提高代码编写效率!利用GVIM这一高效的编辑工具并添加自定义模板,通过简短的脚本命令即可自动生成所有常 ...

  6. FPGA开发随笔汇总

    点击标题即可进入相关随笔. DE-SOC开发板VrilogHDL开发相关部分: (本过程需要Verilog HDL 的基本语言基础) 1.FPGA的发展史及FPGA 的基础架构 2.首先看一下友晶DE ...

  7. Arduino与Air800开发板使用UART通信:传输DHT22传感器数据

    硬件介绍 Arduino Leonardo在数字引脚0(RX)和1(TX)进行串口通信时是使用“Serial1”,USB的串口通信使用的是“Serial”.在数字引脚0(RX)和1(TX)与USB是相 ...

  8. FPGA开发流程1(详述每一环节的物理含义和实现目标)

    要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...

  9. FPGA开发流程

    需求说明:Verilog设计 内容       :FPGA开发基本流程及注意事项 来自       :时间的诗 原文来自:http://www.dzsc.com/data/2015-3-16/1080 ...

随机推荐

  1. 一个layer可以跟着画完的线移动ios程序 好玩啊。

    用法:采用的是关键帧实现的. 实验目的:让上层的layer子层能够跟着在另一个子层上花的线进行移动 .即当线画完之后,图形开始移动,并且能够停在最后的那个位置 效果图: 采用是直接在layer图层上进 ...

  2. html19-----视频,音乐的插入

    视频格式 MP4 格式是一种新的即将普及的因特网视频格式.HTML5 .Flash 播放器以及优酷等视频网站均支持它. 格式 文件 描述 AVI .avi AVI (Audio Video Inter ...

  3. 【html】【17】高级篇--loading加载

    参考: http://aspx.sc.chinaz.com/query.aspx?keyword=%E5%8A%A0%E8%BD%BD&classID=835 下载:   http://sc. ...

  4. DLL详解及Denpendcy Walker的使用

    下面的文章被N次转载,为了尊重原作,\(^o^)/~,贴出最早发布这篇文章的地址及作者.   动态链接库 Windows的活动大陆 2006-07-26 09:21  作者:狂ρκ来源:电脑爱好者 在 ...

  5. Java对象的序列化与反序列化:默认格式及JSON格式(使用jackson)

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3558663.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  6. windows下vs2013使用C++访问redis

    刚开始在windows下使用c++访问reids各种报错,经过网上到处搜方案,终于可以在windows下访问redis了,特将注意事项记录下来: 1.获取redis Window下的开发库源码,从gi ...

  7. ubuntu12.04 U盘自动挂载配置

    Ubuntu12.04禁止U盘等设备的自动挂载方法如下: 在图形界面(字符界面无效)内进入系统终端,ctrl+alt+T或者gnome-terminal 禁止自动挂载:$ gsettings seto ...

  8. 排序算法ONE:选择排序SelectSort

    /** *选择排序: * 对冒泡排序的一个改进 * 进行一趟排序时,不用每一次都交换,只需要把最大的标示记下 * 然后再进行一次交换 */ public class SelectSort { /** ...

  9. RX学习笔记:FreeCodeCamp的JavaScript基本算法挑战

    FreeCodeCamp的JavaScript基本算法挑战 https://www.freecodecamp.com 2016-07-03 JavaScript还不是非常熟悉,用已经会的知识来解这些题 ...

  10. android xml产生和解析

    public static void writeToXml(Map<String, Object> map,Writer writer) throws Exception, Illegal ...