FPGA的嵌入式系统USB接口设计_第1页
FPGA的嵌入式系统USB接口设计_第2页
FPGA的嵌入式系统USB接口设计_第3页
FPGA的嵌入式系统USB接口设计_第4页
FPGA的嵌入式系统USB接口设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 FPGA的嵌入式系统USB接口设计 系统工作过程:当有来电时,DAA向FPGA申请中断。FPGA收到中断后,使用USB的中断传输向主机有外接来电,则PC的应用软件会提示用户选择摘机或拒绝。摘机后,FPGA在接收到命令后就会接通电话,然后语音数据通过USB的同步传输开展双向传送。当用户向外拨号时,其过程与来电时的情况是相同的。 2 系统硬件模块设计 2.1系统硬件框图 本设计采用FPGA作为控制器件,其控制对象是USB2.0接口器件EZ-USB FX2 CY7C68013A-56。图2为EZ-USB器件工作在Slave FIFO模式下时FX2 USB和FPGA的典

2、型电路连接图。 2.2 FPGA和USB简介 设计中的控制器件FPGA选用Ahrea公司的EP2C8Q208C8,而USB设备器件则选用Cypress公司的CY7C68013A-56。EP2C8Q208C8是Ahera Cyclone II系列器件中的一种,Cyclone II FPGA是基于Stratix II的90 nm工艺生产的低成本FPGA。Cyclone II FPGA的应用主要定位在终端市场,如消费类电子、计算机、工业和汽车等领域。EP2C8Q208C8内部有2个锁相环(PLL)和8个全局时钟网络,8 256个逻辑单元(LE)个,36个M4K RAM,18个乘法器模块,可用IO数1

3、38个。EP2C8Q208C8具有低成本、高性能、低功耗和对IP-PBX系统的可扩展性(足够多的IO接口)的优点,因此这里选择该器件作为系统的控制器件。 CY7C68013A-56器件是第1个包含USB2.0的集成微控制器,其内部集成有1个增强型的8051,1个智能USB串行接口引擎(SIE),1个USB数据收发器,3个8位。IO、16位地址线、8.5 KB RAM和4 KB的FIFO等。增强型8051内核完全与标准805l兼容,而性能可到达标准805l的3倍以上。图3为CY7C68013A-56的构造框图。 CY7C68013A器件在数据传输时利用4 KB的FIFO,包含7个端点:EPOIN

4、OUT,EPlIN,EPlOUT,EP2,EP4,EP6,EP8。其中EPO、EPIIN和EPlOUT是3个64 B的缓冲端点,只能被固件访问,EP0是默认的数据输入输出端口缓存,默认工作于控制传输,EPlIN和EPlOUT是独立的64 B缓存,可以配置成块传输、中断传输或同步传输。端点2、4、6、8是大容量高宽带的数据传输端点,可配置为各种带宽以满足实际需求。端点2、6能配置成每帧成512 B或l 024 B,并可配置为2、3、4级,则EP2,EP6能被配置为4 KB的缓存;端点4、8则能配置为每帧512 B的缓存。 3 系统软件设计 3.1 USB Firmware设计 由于设计中使用FP

5、GA控制USB设备开展语音电话通信,所以在USB部分使用3种USB传输模式:控制传输、中断传输、等时传输。控制传输用于实现设备枚举主机的标准请求以及厂商自定义请求;中断传输用于实现设备对主机的唤醒,是的设备主动向主机发送数据的传输方式;等时传输用于实现语音数据的双向同步传输。USB Firmware设计重点是语音的通信段。 CY7C68013A具有PORTS、Slave FIFO、GPlF共3种工作模式。PORTS模式是基本的数据传输方式,其数据传输需CPU直接参与,适于传输速率要求不高的场合;GPIF模式是主机方式,内部主机控制端点FIFO;Slave FIFO模式是从机方式,外部控制器,如

6、FPGA、DSP。应用中使用异步FIFO方式,采用内部48 MHz时钟,自动方式,而固件程序的编写则以Cypress公司提供的固件程序框架为根底,在其初始化函数中添加自己的配置代码。 在整个系统中,CY7C68013A的固件主要完成以下工作:初始化USB器件;作为USB接口与主机通信并传输数据;利用CY7C68013A器件的Slave FlFO接口控制USB器件和外部控制器之间的数据传输。因此同件主程序比较复杂,除了上面的TD_lnit()初始化外,还需要大量函数,但基本构造相对简单,包括3个过程:USB控制器的初始化;主函数,包括处理标准设备请求的代码;中断处理,包括处理各种中断的程序代码。

7、图4为同件主程序流程。 3.2 USB驱动程序 USB系统软件由主机中的软件和设备同件构成。USB主机中的软件主要包括USB设备驱动(USBDD)、USB总线驱动(USBD)和USB主控制器驱动(HCD)。 USB设备驱动程序(或客户驱动程序)处于顶层,它支持特定设备类的驱动,负责与其对应的USB设备开展通信和读写控制,实现各个USB设备特殊的功能应用。连接USB设备的每种类型的功能单元都必须具有客户驱动程序。客户驱动程序把USB设备看作是一个可被访问的端点的集合。USB设备可以被控制并与其功能单元通信。USB设备驱动程序通过IO请求包(IRP)向USB总线驱动程序发送请求。这些请求包将一个给

8、定的传输初始化。这种传输可以来自于一个USB目标设备或发送到USB设备。 USB总线驱动(USBD)是在主机控制器驱动和USB设备驱动之间的模块,它对应USB协议的USBD,在Windows系统中由USBD.SYS模块提供。它是在某一操作系统上对USB总线和协议提供支持的软件,独立于USB设备和USB设备驱动,并对它们开展控制和提供统一编程接口。 USB主控制器驱动程序(HCD)处于层,它负责对主机控制器开展抽象和对USB提供低级支持。 3.3 PC端的软件设计 PC端的软件设计采用面向对象程序设计,分为类(包括Provider,Data,Net)和应用类(包括UI,Call,Record)。

9、其中类提供对硬件、操作系统和网络环境的支持,应用类在类的根底上提供对用户操作的支持。Provider类定义对USB设备的读写操作,提供读取数据方法(readusb()和写数据方法(writeusb();Data类包括地址数据(Address)、音频数据(Audio)和控制数据(Command)的定义,并提供数据的分解方法(Decompose()和组合方法(Compose();Net类提供对网络的支持,包括网络协议的选择和数据的接收与发送。UI类提供对用户界面的支持,包括窗口、对话框等,实现基本用户框架与应用入口;Call类提供通话功能;Record类则提供电话录音功能;根据不同应用要求,可扩展其他应用类。具体构造如图5所示。 4 结束语 USB灵活的接口和可编程特性可简化外部硬件的设计,提高系统可靠性。而USB2.O控制器CY7C68013A也广泛应用于许多数据传输领域。FPGA已成为通信、计算机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论