基于FPGA技术实现USB通信说明书.doc

上传人:h**** 文档编号:129971 上传时间:2018-07-09 格式:DOC 页数:65 大小:779.50KB
下载 相关 举报
基于FPGA技术实现USB通信说明书.doc_第1页
第1页 / 共65页
基于FPGA技术实现USB通信说明书.doc_第2页
第2页 / 共65页
基于FPGA技术实现USB通信说明书.doc_第3页
第3页 / 共65页
基于FPGA技术实现USB通信说明书.doc_第4页
第4页 / 共65页
基于FPGA技术实现USB通信说明书.doc_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、基于 FPGA 技术实现 USB 通信 软件 【摘要】 本设计能实现的功能: PC 主机应用程序通过 USB 接口模块,对 FPGA 系统进行控制,以实现语音信号的采集、存储、回放,并且 FPGA 系统亦可通过 USB 接口模块将相关的状态信息回传给 PC 主机应用程序。本设计软件结构由四部分组成: PC 主机应用程序, USB 接口模块驱动程序, USB 接口模块固件程序, FPGA 系统控制程序。 【关键词】 应用程序, USB, FPGA,语音 USB Communication Based on FPGA Software Abstract: This Design can imple

2、ment the following functions: PC Application Program can control the FPGA-System through the USB-Interface module, in order to sample, store and replay the sound signal , and also FPGA-System can send back the status signal to the PC Application Program. The software structure of this design consist

3、 of 4 parts: PC Application Program, USB-Interface module Driver program, USB-interface module Firm program, FPGA-System control program. Key Words: Application Program, USB, FPGA, Sound 目 录 第一章 绪论 . 1 1.1 课题背景及意义 . 1 1.2 国内外相关研究 状况 . 2 1.3 USB 的特点 . 3 1.4 系统软件设计要求 . 4 1.5 系统基本方案 . 4 1.6 软件设计主要内容 .

4、4 第二章 软件实现方案选择论证 . 5 2.1 PC 主机应用程序设计实现方案 . 5 2.2 WINDOWS 下 USB 设备驱动程序的设计实现方案 . 5 2.3 USB 设备固件设计实现方案 . 5 2.4 FPGA 程序设计实现方案 . 6 第三章 PC 主机应用程序设计 . 7 3.1 开发环境 VC+ 6.0 简介 . 7 3.2 API 函数 简介 . 7 3.3 应用程序控制界面设计 . 7 3.4 应用程序设计 . 8 3.4.1 查找设备 . 10 3.4.2 打开设备 . 12 3.4.3 读写 USB 设备 . 12 3.4.4 关闭通信 . 13 第四章 USB 接

5、口模块驱动程序设计 . 14 4.1 驱动程序开发 . 14 4.1.1 WDM 驱动程序的分层结构 . 14 4.1.2 USB 驱动程序的 WDM 结构 . 16 第五章 USB 接口模块固件设计 . 18 5.1 PDIUSBD12 与 AT89S52 特性概述 . 18 5.1.1 PDIUSBD12 特性概要 . 18 5.1.2 AT89S52 特性概要 . 18 5.2 USB 通信协议重要概念概述 . 19 5.2.1 端点 . 19 5.2.2 帧 . 19 5.2.3 上行与下行 . 19 5.2.4 USB 的传输线结构 . 19 5.2.5 USB 的编码方案 . 20

6、 5.2.6 USB 的数据格式 . 20 5.2.6.1 域 . 20 5.2.6.2 包 . 21 5.2.6.3 事务 . 21 5.2.6.4 传输 . 23 5.3 USB 固件程序设计 . 23 第六章 FPGA 语音采集与回放程序设计 . 26 6.1 FPGA 语音采集、存储、回放控制程序设计 . 26 6.1.1 ADC0809 语音采集控制程序设计 . 26 6.1.2 语音数据存储器设计 . 26 6.1.3 DAC0832 语音回放控制程序设计 . 27 6.1.4 地址与控制总线选择器设计 . 28 6.1.5 FPGA 系统设计总体框图 . 29 第七章 系统调试

7、. 30 7.1 主机应用程序与 USB 接口模 块程序联调 . 30 7.2 FPGA 系统调试 . 30 7.3 整机系统调试 . 30 总结 . 31 致谢 . 32 参考文献 . 33 附录 . 34 1 第一章 绪论 1.1 课题背景及意义 USB 总线 ( Universal Serial Bus)翻译为中文就是通用串行总线,由 Compaq, DEC,IBM, Inter, Microsoft, NEC 和 Northen Telecom 等公司为简化 PC 与外设之间的互连而共同研究开发的一种免费的标准化连接 协议 ,它支持各种 PC 与外设之间的连接,还可实现数字多媒体集成。

8、 作为一种新兴的通用接口, USB 已经可以在所有类型的计算机上代替现有接口来连接低、中、高速标准的外设。 一直以来,作为电脑连接外围设备通道 接口,一直就没有一个统一的标准。 1994 年,由上述 几家世界著名的计算机和通讯公司成立了 USB 论坛; 1995 年 11 月正式制定了 USB 0.9 通用串行总线规范 ,自从通用串行总线 (USB)推出以来, USB 很快就成为了 PC 机事实上的外部通讯标准。 USB 当初的设计构想是,将这些接口统一起来,使用一个 4 针插头作为标准插头。更重要的是它还整合了电源线和数据线,其中两根芯线用于提供最低最高达 500mA 的电力,另外两根芯线用

9、于数据通讯。这样,很多外设就不再需要另外提供电源,只需要通过计算机的 USB 接口就能实现向外设供电,用户也就不再需要为每一个外设都预留下一个 电源插口,大大方便了用户的使用;而且它还支持最多 127 个外设的同时串联。 随着 USB 设备种类的增多, 1997 年,真正符合 USB1.1 技术规范的技术标准的外设出现了 , USB 逐步走进了实用阶段。尽管 USB 有许多优秀的特质,但它同时也被许多问题困扰着。所面临的主要问题是,速度仍然不够快, USB1.1 版的最高速度为 12Mbps,因此当连接设备多了时,带宽共享导致每个设备得到的有效带宽太小。所以 USB 所应用的范围仍然很窄,针对

10、于这些缺点,经过改进的 USB2.0 规范诞生了。 1999 年初在 Intel 的开发者论坛大会 上,与会者介绍了 USB 2.0 规范,该规范的支持者除了原有的 Intel、 Microsoft 和 NEC 等成员外,还有惠普、朗讯和飞利浦三个新成员。1999 年 10 月,正式制定了 USB2.0 通用串行总线规范 , 2001 年 11 月 Comdex 展览上,基于 USB 2.0 的外设产品系统如 USB 2.0 界面扩充卡、外接式硬盘、外接式刻录机等产品开始出现 。 2 随着时间的推移, USB 已成为 PC 的标准配置。基于 USB 的外设越来越多,现在可以直接使用 Windo

11、ws ME 默认驱动的外设就有:调制解调器,键盘,鼠标,光驱,数码相机,活动硬盘 ,手柄,软驱,扫描仪等,而非独立性 I/O 连接的外设将日渐减少。即主机控制式外设减少,智能软件控制的外设增多。 1.2 国内外相关研究状况 2008 年 11 月 18 日,由 Intel、微软、惠普、德州仪器、 NEC、 ST-NXP 等业界巨头组成的 USB 3.0 Promoter Group 宣布,该组织负责制定的新一代 USB 3.0 标准已经正式完成并公开发布。新规范提供了十倍于 USB 2.0 的传输速度和更高的节能效率,可广泛用于 PC外围设备和消费电子产品。 制定完成的 USB 3.0 标准已

12、经移交给该规范的管理组织 USB Implementers Forum(简称 USB-IF)。该组织将与硬件厂商合作,共同开发支持 USB 3.0 标准的新硬件,不过实际产品上市还要等一段时间。 第一版 USB 1.0 是在 1996 年出现的,速度只有 1.5Mb/s;两年后升级为 USB 1.1,速度也大大提升到 12Mb/s,至今在部分旧设备上还能看到这种标准的接口; 2000 年4 月,目前广泛使用的 USB 2.0 推出,速度达到了 480Mb/s,是 USB 1.1 的四十倍;如今八个半年头过 去了, USB 2.0 的速度早已经无法满足应用需要, USB 3.0 也就应运而生,最

13、大传输带宽高达 5.0Gb/s,也就是 625MB/s,同时在使用 A 型的接口时向下兼容。 IEEE 组织最近也批准了新规范 IEEE1394-2008,不过新版 FireWire 的传输速度只有 3.2Gb/s,相当于 USB 3.0 的 60多一点。难怪苹果等业界厂商普遍对该技术失去了兴趣。 USB 2.0 基于半双工二线制总线,只能提供单向数据流传输,而 USB 3.0 采用了对偶单纯形四线制差分信号线,故而支持双向并发数据流传输,这也是新规范速度 猛增的关键原因。 除此之外, USB 3.0 还引入了新的电源管理机制,支持待机、休眠和暂停等状态。测量仪器大厂泰克 (Tektronix

14、)在上个月第一家宣布了用于 USB 3.0 的测试工具,可以帮助开发人员验证新规范与硬件设计之间的兼容性。 USB 3.0在实际设备应用中将被称为“ USB SuperSpeed”,顺应此前的 USB 1.1 FullSpeed和 USB 2.0 HighSpeed。预计支持新规范的商用控制器将在 2009 年下半年面世,消费级产3 品则有望在 2010 年上市。 1.3 USB 的特点 USB 总 线与传统的外围总线接口相比,主要有以下一些特点: ( 1)传输速度快: USB 有低速( Low-Speed)、全速( Full-Speed)和高速( High-Speed)三种传输模式,传输速率

15、分别为 1.5Mbps、 12Mbps 和 480Mbps,可以灵活选择以适应各种不同类型外设的需求。 ( 2)安装配置简单快捷: USB 设备支持即插即用( Plug and Play)和热插拔( Hot Plug)功能。 USB 连接器将各种各样的外设 I/O 端口合而为一,使之可热插拔,并具有自动配置能力。在电脑正常工作时,用户只要简单地将外 设插入到 PC 的 USB 总线上, PC 就能自动识别所连接的是什么设备 , 并动态的加载驱动程序,而无须关机断电或重新启动,打开机箱等操作,实现真正的即插即用。 ( 3)供电方式灵活,总线结构简单 USB 总线自身能够提供 5V 电压,最大 5

16、00mA 电流。同时,也可以由外部供电,或使用两种供电方式的组合,并且支持挂起和唤醒模式。总线结构简单,信号定义仅由 2 条电源线, 2 条信号线组成。 ( 4)良好的兼容性: USB 接口标准有良好的向下兼容性,例如 USB2.0 就能很好的兼容 USB1.1 的外设。系统会自动侦测外设接口的版本,并自动 选择传输速度。 ( 5)使用和扩展灵活: 为了适应各种不同类型外设的要求, USB 提供了四种不同的数据传输模式。增加外设时无需在 PC 内添加接口卡,多个 USB 集线器可相互传送数据,使 PC 可以用全新的方式控制外设。使用 USB Hub 可以同时连接多达 127 个外设。 ( 6)

17、广泛的应用 4 1.4 系统软件设计要求 ( 1)通过大规模可编程芯片 FPGA 完成对数据的实时处理、并进行转换,以便进行数据传输。 ( 2)编写下载到 USB 芯片中的固件程序,完成对电路时序的控制,实现数据从硬件电路到计算机之间的传输。 ( 3)开发在 Windows 下的驱动程序和应用程序,完成数据的存储、分析及显示等功能。 1.5 系统基本方案 系统确定的基本方案: PC 主机控制程序与 USB 接口模块进行通信,并通过 USB 接口模块控制 FPGA 进行语音的采集、存储、回放。 系统框图如图 1_5-1 所示: P C 主 机 U S B 接 口 模 块 F P G A 小 系

18、统语 音 采 集模 块语 音 回 放模 块图 1_5-1 系统框图 1.6 软件设计主要内容 本系统软件主要由以下四个部分组成: ( 1) PC 主机应用程序设计 ( 2) USB 接口模块 WINDOWS 驱动程序设计 ( 3) USB 接口模块固件设计 ( 4) FPGA 模块语音采集,存储,回放控制程序设计 5 第二章 软件实现方案选择论证 2.1 PC 主机应用程序设计实现方案 方案一:采用 Visual Basic 编程 VB 是 Visual Basic,是微软的比尔盖茨发明的 ,专为编程初学者设计,界面友好。但 VB是不够完全的面向对象编程工具,属本地编译语言,其效率相对 VC

19、低了很多。 方案二:采用 Visual C+编程 VC+是在 Windows 平台下构建 32 位应用程序的强大而有复杂的开发工具,是目前世界上使用最多的开发工具之一。 VC+的应用非常广泛,从桌面应用程 序到服务器端软件,从系统软件到应用软件,从单机程序到分布式应用程序, VC+无所不在。 VC+是完全面向对象的编程工具, VC+效率高,封装性好,继承性高。掌握 VC+编程,对于电子专业人员而言也是非常必要的。 综上,选择方案二。 2.2 WINDOWS 下 USB 设备驱动程序的设计实现方案 方案一: 采用 DDK 进行驱动程序开发 DDK 是 Device Development Kit

20、 设备开发包,是由微软提供的专业的设备驱动程序开发包,里面有很多驱动程序开发的例子。但对于刚接触 USB 设备驱动程序开发的人员而言,有点博大精深。 方案二:采用 DriverStudio 进行驱动程序开发 DriverStudio 是 Numega 公司提供的驱动程序开发工具,它提供对 USB 总线的封装,大大简化了对 USB 总线的操作接口。 DriverStudio 中的 DriverWorks 软件为开发 WDM 程序提供了一个完整的框架,相比于 DDK 驱动程序的开发会比较简单。 综上,采用方案二。 2.3 USB 设备固件设计实现方案 方案一:采用汇编语言进行固件程序开发 汇编语言

21、有执行效率高的优点,但其可移植性和可读性差,以及它本身就是一种编程,6 效率低 下的低级语言,这些都使它的编程和维护极不方便,从而导致整个系统的可靠性也较差。 方案二:采用 C 语言进行固件程序开发 使用 C 语言进行嵌入式系统的开发,有着汇编语言编程不可比拟的优势。其优势主要是:编程调试灵活方便,生成的代码编译效率高,完全模块化,可移植性好,便于项目维护管理等。 综上,采用方案二。 2.4 FPGA 程序设计实现方案 方案一:采用 Verilog 语言进行开发 产业界 Verilog 比较流行,其语法比较自由。 Verilog HDL 推出已经有 20 年了,拥有广泛的设计群体,成熟的资源也

22、比 VHDL 丰富。 Verilog 更大的一个优势是:它非常容易掌握,只要有 C 语言的编程基础,通过比较短的时间,经过一些实际的操作,可以在 2 3 个月内掌握这种设计技术 方案二:采用 VHDL 语言进行开发 目前,高校教学主要采用 VHDL,其语法比较严谨。 VHDL 语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。 VHDL 具有与具体硬件电路无关和雨设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结 构化方面,表现了强大的生命力和应用潜力。本人对 VHDL 语法与设计

23、流程也比较熟悉,固以 VHDL为首选。 综上,选择方案二。 7 第三章 PC 主机应用程序设计 3.1 开发环境 VC+ 6.0 简介 本设计应用程序的开发采用 VC+ 6.0, VC+是在 Windows 平台下构建 32 位应用程序的强大而有复杂的开发工具, VC+是微软公司开发的一个 IDE(集成开发环境 ), 是目前世界上使用最多的开发工具之一。 VC+应用程序的开发主要有两种模式,一种是 WIN API 方式,另一种则是 MFC 方式,传统的 WIN API 开发方式比较繁琐,而 MFC 则是对 WIN API 再次封装。 3.2 API 函数 简介 API Application Programming Interface(应用程序接口)函数,这些函数是 Windows提供给应用程序编程的接口,也就是系统提供的函数,主要的函数都在 Windows.h 头文件中进行了声明。 Windows 操作系统提供了 1000 多种的 API 函数, API 函数名大都是有意义的单词的组合,每个单词的首字母大写,这些函数的准确拼写与调用语法都可以再 MSDN 中查找到。 3.3 应用程序控 制界面设计 本系统控制界面 设计如图 3_3-1 所示: 图 3_3-1 语音采集与回放系统控制界面

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。