接上一篇文章,今天来讲讲这个USB UART串口发送机。

  我们知道,当我们的微处理器(单片机、FPGA、DSP等)要和电脑进行通信的时候一般会采用串行通信方式,而最常用的串行通信协议的物理层接口是RS232串行口,这时候为满足RS232串行通信协议,常常需要一个电平转换芯片,比如MAX232\233等。但是这些年随着计算机技术的发展,RS232串行接口在好多电脑上已经找不到了,特别是笔记本电脑(我的本本上就已经找不到这种接口了),取代它的往往是更常见的USB口。但是这种异步串行通信协议简单啊,往往只要规定波特率,然后按它的数据格式收发就可以了,不像USB协议,据说需要厚厚的几百页书阐述,这种工作量可不是一般的开发人员能够胜任的。所以人们就开发出一种折中的方式--用USB接口来实现异步串行通信协议,个人认为这个就是所谓的USB UART。好了,闲话不多说,让我们就以NEXYS3这块板子为例来看看是怎么实现这两种协议的转换的。

  老规矩,先上硬件原理图。这里要说明一下,我们在Digilent官网上能弄到两份pdf,一份叫NEXYS3_sch,这个是详细的硬件原理图,还有一个参考手册,叫Nexys3_rm,这里面的连接图往往是简化了的,但是也很重要,特别是对于一些比较复杂的器件的使用,会有一些文字上的描述。我们今天就用这份pdf做参考。

  找到标题USB-UART Bridge,pdf上的描述很简单,短短的几行文字,再加上下面的这个图:

                         

  连接接口跟FPGA的是一块FT232,而文字描述第一句话的意思就是这块FT232允许PC与开发板之间通过标准的Windows COM端口进行通信。原来如此,就是这么一块小小的芯片帮助我们完成了串行通信协议到USB协议之间的转换。这块芯片具体的工作原理我们暂且不去深究,对于我们这个开发来说,我们只需要搞清楚怎么使用它。那到底接下来怎么继续呢?似乎不太有头绪,那就先连接上电脑再说吧!将J13跟电脑的USB口连接上去,会发现这时电脑正在安装一个驱动,就像一般的U盘这些USB设备第一次连接电脑一样。既然如此,那我们不妨打开电脑的设备管理器,看看它到底装了些什么。然后我们会发现,多了的东西并不在USB设备里,反而在端口处多了一个COM3,如下图所示:

                              

  这一下我们不妨大胆预测了--原来FT232是在我们的计算机上虚拟出了一个COM,然后利用USB端口完成数据的传输!后来经过查找FT232的相关资料验证了我这个想法,真相大白后一切就变的简单多了,原来我们虽然用的是USB口,但我们根本不用去理会USB协议,我们最后操作的还是异步串行传输协议!再看看FT232连接到FPGA上的端口,就两个--TXD\RXD,看来我们只需要在FPGA里实现一般串口的收发机就能完成与PC之间的通信了!

  没想到光原理就废话了这么多,鉴于篇幅,具体怎么实现这个收发机,我将在下一篇文章中具体叙述。

NEXYS 3开发板练手--USB UART(一)的更多相关文章

  1. NEXYS 3开发板练手--USB UART(三)

    接着上一篇,今天我们来建立一个能用于实际工程中的DEMO. 首先,为了使我们的发送机不像上一个DEMO一样无节制的循环发送,我们需要修改代码,增加使发送机停止发送的控制部分,修改后的代码如下: `ti ...

  2. NEXYS 3开发板练手--USB UART(二)

    上一篇文章中提到实际上我们操作的只是一个“伪”USB协议,我们真正需要完成的收发机遵循的协议应该是异步串行通信协议.这个协议对于大家来说应该是再熟悉不过了,在这里我就不多废话了.需要说明的是,我在这个 ...

  3. NEXYS 3开发板练手--LED与数码管时钟

    做科研的时候从学校拿到一块基于Xilinx公司Spartan-6主芯片的FPGA开发板,因为之前一直在用Altera公司的FPGA,一开始接触它还真有点不太习惯.但毕竟核心的东西还是不会变的,于是按照 ...

  4. 基于STM32L476开发板的USB音频设备

    现代音频设备中有很多知识产权. 我想研究创建一个与手机交互的算法设备(运行non-trivial算法的嵌入式设备). 我发现创建一个Lightning设备比创建一个连接到Android手机的的USB设 ...

  5. ESP-EYE V2.1 开发板 WINDOWS 10 开发入门

    准备工作 1 × ESP-EYE V2.1 开发板 1 × Micro USB B 电缆 1 × PC(Windows10) 简介 ESP-EYE 是一款面向人脸识别和语音识别市场的开发板,搭载 ES ...

  6. MDK972-EK开发板裸调试设置和裸机程序烧写(转)

    硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示: ...

  7. 用Java开发的【智能语音开发板MEGA ESP32AI】

    有点激动 ~ ~ ~ 新鲜出炉,用视频看看效果哦 我们新研发出世的语音开发板MEGA ESP32AI,来看看吧,有点腻害哦!!!先演示下功能语音控制开关等.播报天气 戳下面链接看视频哦? MEGA E ...

  8. 基于Neptune开发板的键盘蓝牙模块DIY指南

    目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...

  9. 小白自制Linux开发板 二. u-boot移植

    上一篇:小白自制Linux开发板 一. 瞎抄原理图与乱画PCB  中我们做了一个小型而没用的开发板,用的是Licheepi Nano的镜像,那从本篇开始我们开始自己构建它的灵魂吧. 我们都知道,PC在 ...

随机推荐

  1. redis sentinel(哨兵机制)部署(Windows下实现)

    另外参考:http://www.cnblogs.com/LiZhiW/p/4851631.html 一.准备条件 1.操作系统:win7 2.redis版本:redis-2.8.19 二.下载Redi ...

  2. ZH奶酪:Linux/Ubuntu 安装/卸载 软件

    1.安装.deb文件 以安装Chrome为例: (1)到官方网站下载Chrome浏览器相应版本,比如google-chrome-stable_current_i386.deb: (2)Ctrl+Alt ...

  3. 深入研究嵌入式web服务器的视频监控应用

    http://embed.chinaitlab.com/pc/776136.html uCLinux下,主要有3个Web Server:Httpd.Thttpd和BOA.Httpd是最简单的一个Web ...

  4. 远程binlog

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

  5. 1z0-052 q209_10

    10: A user, who is authenticated externally, logs in to a remote machine and connects to the databas ...

  6. jquery获取td所在的行和列

    今天在做项目时.遇到一个须要获取第几行第几列的问题. 后来.网上找了找资料,整理了此文.(使用jquery的preAll()获取列) 代码例如以下: <!DOCTYPE html PUBLIC ...

  7. 怎样让CodeBlocks支持C99

    转载请注明出处,否则将追究法律责任http://blog.csdn.net/xingjiarong/article/details/47080303 CodeBlocks是一个写C/C++的比較好的编 ...

  8. def函数之另类用法

    #python 27 #xiaodeng def list_opts(): return [ ('name', 'xiaodeng'), ('age', 28), ('), ('where', 'en ...

  9. sqlite 附加和分离数据库

    附加数据库 ATTACH DATABASE 'testDB.db' as 'TEST'; 分离数据库 DETACH DATABASE 'Test';

  10. jQuery ajax - ajax() 方法详解

    一些代码通过jQuery来做ajax异步提交. //验证昵称是否存在 function checkNickNameIsExist(){ var nickName = jQuery("#nic ...