《基于fpga技术实现usb通信软件(毕业设计)》由会员分享,可在线阅读,更多相关《基于fpga技术实现usb通信软件(毕业设计)(37页珍藏版)》请在金锄头文库上搜索。
1、基于FPGA技术实现USB通信软件【摘要】本设计能实现的功能:PC主机应用程序通过USB接口模块,对FPGA系统进行控制,以实现语音信号的采集、存储、回放,并且FPGA系统亦可通过USB接口模块将相关的状态信息回传给PC主机应用程序。本设计软件结构由四部分组成:PC主机应用程序,USB接口模块驱动程序,USB接口模块固件程序,FPGA系统控制程序。【关键词】应用程序,USB,FPGA,语音 USB Communication Based on FPGA SoftwareAbstract: This Design can implement the following functions: PC
2、 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 of 4 parts: PC Application Prog
3、ram, USB-Interface module Driver program, USB-interface module Firm program, FPGA-System control program.Key Words: Application Program, USB,FPGA, Sound 目 录第一章 绪论11.1 课题背景及意义11.2 国内外相关研究状况21.3 USB的特点31.4 系统软件设计要求41.5 系统基本方案41.6 软件设计主要内容4第二章 软件实现方案选择论证52.1 PC主机应用程序设计实现方案52.2 WINDOWS下USB设备驱动程序的设计实现方案5
4、2.3 USB设备固件设计实现方案52.4 FPGA程序设计实现方案6第三章 PC主机应用程序设计73.1 开发环境VC+ 6.0简介73.2 API函数 简介73.3 应用程序控制界面设计73.4 应用程序设计83.4.1 查找设备103.4.2 打开设备123.4.3 读写USB设备123.4.4 关闭通信13第四章 USB接口模块驱动程序设计144.1 驱动程序开发144.1.1 WDM驱动程序的分层结构144.1.2 USB驱动程序的WDM结构16第五章 USB接口模块固件设计185.1 PDIUSBD12与AT89S52 特性概述185.1.1 PDIUSBD12特性概要185.1.
5、2 AT89S52 特性概要185.2 USB通信协议重要概念概述195.2.1 端点195.2.2 帧195.2.3 上行与下行195.2.4 USB的传输线结构195.2.5 USB的编码方案205.2.6 USB的数据格式205.2.6.1 域205.2.6.2 包215.2.6.3 事务215.2.6.4 传输235.3 USB固件程序设计23第六章 FPGA语音采集与回放程序设计266.1 FPGA语音采集、存储、回放控制程序设计266.1.1 ADC0809语音采集控制程序设计266.1.2 语音数据存储器设计266.1.3 DAC0832语音回放控制程序设计276.1.4 地址与
6、控制总线选择器设计286.1.5 FPGA系统设计总体框图29第七章 系统调试307.1 主机应用程序与USB接口模块程序联调307.2 FPGA系统调试307.3 整机系统调试30总结31致谢32参考文献33附录34第一章 绪论 1.1 课题背景及意义 USB总线(Universal Serial Bus)翻译为中文就是通用串行总线,由Compaq,DEC,IBM,Inter,Microsoft,NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接协议,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。作为一种新兴的通用接口,USB
7、已经可以在所有类型的计算机上代替现有接口来连接低、中、高速标准的外设。一直以来,作为电脑连接外围设备通道接口,一直就没有一个统一的标准。1994年,由上述几家世界著名的计算机和通讯公司成立了USB论坛;1995年11月正式制定了USB 0.9通用串行总线规范,自从通用串行总线(USB)推出以来,USB很快就成为了PC机事实上的外部通讯标准。USB当初的设计构想是,将这些接口统一起来,使用一个4针插头作为标准插头。更重要的是它还整合了电源线和数据线,其中两根芯线用于提供最低最高达500mA的电力,另外两根芯线用于数据通讯。这样,很多外设就不再需要另外提供电源,只需要通过计算机的USB接口就能实现
8、向外设供电,用户也就不再需要为每一个外设都预留下一个电源插口,大大方便了用户的使用;而且它还支持最多127个外设的同时串联。 随着USB设备种类的增多,1997年,真正符合USB1.1技术规范的技术标准的外设出现了,USB逐步走进了实用阶段。尽管USB有许多优秀的特质,但它同时也被许多问题困扰着。所面临的主要问题是,速度仍然不够快,USB1.1版的最高速度为12Mbps,因此当连接设备多了时,带宽共享导致每个设备得到的有效带宽太小。所以USB所应用的范围仍然很窄,针对于这些缺点,经过改进的USB2.0规范诞生了。 1999年初在Intel的开发者论坛大会上,与会者介绍了USB 2.0规范,该规
9、范的支持者除了原有的Intel、Microsoft和NEC等成员外,还有惠普、朗讯和飞利浦三个新成员。1999年10月,正式制定了USB2.0通用串行总线规范,2001年11月Comdex展览上,基于USB 2.0的外设产品系统如USB 2.0界面扩充卡、外接式硬盘、外接式刻录机等产品开始出现。随着时间的推移,USB已成为PC的标准配置。基于USB的外设越来越多,现在可以直接使用Windows ME默认驱动的外设就有:调制解调器,键盘,鼠标,光驱,数码相机,活动硬盘,手柄,软驱,扫描仪等,而非独立性I/O连接的外设将日渐减少。即主机控制式外设减少,智能软件控制的外设增多。1.2 国内外相关研究
10、状况 2008年11月18日,由Intel、微软、惠普、德州仪器、NEC、ST-NXP等业界巨头组成的USB 3.0 Promoter Group宣布,该组织负责制定的新一代USB 3.0标准已经正式完成并公开发布。新规范提供了十倍于USB 2.0的传输速度和更高的节能效率,可广泛用于PC外围设备和消费电子产品。制定完成的USB 3.0标准已经移交给该规范的管理组织USB Implementers Forum(简称USB-IF)。该组织将与硬件厂商合作,共同开发支持USB 3.0标准的新硬件,不过实际产品上市还要等一段时间。第一版USB 1.0是在1996年出现的,速度只有1.5Mb/s;两年
11、后升级为USB 1.1,速度也大大提升到12Mb/s,至今在部分旧设备上还能看到这种标准的接口;2000年4月,目前广泛使用的USB 2.0推出,速度达到了480Mb/s,是USB 1.1的四十倍;如今八个半年头过去了,USB 2.0的速度早已经无法满足应用需要,USB 3.0也就应运而生,最大传输带宽高达5.0Gb/s,也就是625MB/s,同时在使用A型的接口时向下兼容。 IEEE组织最近也批准了新规范IEEE1394-2008,不过新版FireWire的传输速度只有3.2Gb/s,相当于USB 3.0的60多一点。难怪苹果等业界厂商普遍对该技术失去了兴趣。USB 2.0基于半双工二线制总
12、线,只能提供单向数据流传输,而USB 3.0采用了对偶单纯形四线制差分信号线,故而支持双向并发数据流传输,这也是新规范速度猛增的关键原因。除此之外,USB 3.0还引入了新的电源管理机制,支持待机、休眠和暂停等状态。测量仪器大厂泰克(Tektronix)在上个月第一家宣布了用于USB 3.0的测试工具,可以帮助开发人员验证新规范与硬件设计之间的兼容性。USB 3.0在实际设备应用中将被称为“USB SuperSpeed”,顺应此前的USB 1.1 FullSpeed和USB 2.0 HighSpeed。预计支持新规范的商用控制器将在2009年下半年面世,消费级产品则有望在2010年上市。1.3
13、 USB的特点USB总线与传统的外围总线接口相比,主要有以下一些特点:(1)传输速度快:USB有低速(Low-Speed)、全速(Full-Speed)和高速(High-Speed)三种传输模式,传输速率分别为1.5Mbps、12Mbps和480Mbps,可以灵活选择以适应各种不同类型外设的需求。(2)安装配置简单快捷:USB设备支持即插即用(Plug and Play)和热插拔(Hot Plug)功能。USB连接器将各种各样的外设I/O端口合而为一,使之可热插拔,并具有自动配置能力。在电脑正常工作时,用户只要简单地将外设插入到PC的USB总线上, PC就能自动识别所连接的是什么设备, 并动态
14、的加载驱动程序,而无须关机断电或重新启动,打开机箱等操作,实现真正的即插即用。(3)供电方式灵活,总线结构简单USB总线自身能够提供5V电压,最大500mA电流。同时,也可以由外部供电,或使用两种供电方式的组合,并且支持挂起和唤醒模式。总线结构简单,信号定义仅由2条电源线,2条信号线组成。(4)良好的兼容性:USB接口标准有良好的向下兼容性,例如USB2.0就能很好的兼容USB1.1的外设。系统会自动侦测外设接口的版本,并自动选择传输速度。(5)使用和扩展灵活:为了适应各种不同类型外设的要求,USB提供了四种不同的数据传输模式。增加外设时无需在PC内添加接口卡,多个USB集线器可相互传送数据,
15、使PC可以用全新的方式控制外设。使用USB Hub可以同时连接多达127个外设。(6)广泛的应用1.4 系统软件设计要求(1)通过大规模可编程芯片FPGA完成对数据的实时处理、并进行转换,以便进行数据传输。(2)编写下载到USB芯片中的固件程序,完成对电路时序的控制,实现数据从硬件电路到计算机之间的传输。(3)开发在Windows下的驱动程序和应用程序,完成数据的存储、分析及显示等功能。1.5 系统基本方案系统确定的基本方案:PC主机控制程序与USB接口模块进行通信,并通过USB接口模块控制FPGA进行语音的采集、存储、回放。系统框图如图1_5-1所示:图1_5-1 系统框图1.6 软件设计主要内容本系统软件主要由以下四个部