基于 USB 2. 0 Slave FIFO模式下软件开发框架
袁 卫
1, 2
(
1渭南师范学院 信息与教育科学系 ,陕西 渭南 714000; 2西安电子科技大学 ,西安 710071
)
摘 要 : 以 Cypress公司的基于 USB2. 0的 EZ - USB FX2系列芯片之一 CY7C68013为例 ,简要介绍了其内部结构 ,并
详细说明在 Slave FIFO模式下实现批量数据传输中相应软件系统 ,包括固件程序、W indows驱动程序及应用程序的开发过
程.
关键词 : Slave FIFO模式 ;固件程序 ;驱动程序 ;应用程序
中图分类号 : TP311 文献标志码 : A 文章编号 : 1009—5128
(
2007
)
02—0057—02
收稿日期 : 2006—03—29
基金项目 :渭南师范学院科研基金项目
(
06YKS032
)
作者简介 :袁卫
(
1973—
)
,男 ,陕西渭南人 ,渭南师范学院信息与教育科学系讲师 ,西安电子科技大学物理与电子专业
硕士研究生.
通用串行总线
(
Universal Serial Bus,简称 USB
)
作为外围设备与计算机之间的新型标准接口 ,与传统
的 I/O连接模式相比具有可热插拔、即插即用、快速、双向和价格低廉等特性获得了越来越多用户的接受.
但由于其晦涩的英文资料和其复杂的通信协议 ,使广大的开发者望而却步 ,本文就以 CYPRESS公司的 EZ
- USB FX2系列芯片之一 CY7C68013为例详细的介绍其内部结构组成以及在 Slave F IFO模式下与 FPGA
之间的数据通信的软件开发过程.
1 USB2. 0接口芯片 CY7C68013的内部结构
CYPRESS公司的 EZ - USB FX2系列芯片之一 CY7C68013是最早符合 USB2. 0协议的微控制器之
一. 它集成有 1个增强型的 8051处理器
(
称为 CPU核
)
,其和标准的 8051的指令完全兼容 ,其主频最高可
设为 48MHZ,而性能是标准 8051的 5~10倍 ; 1个串行接口引擎
(
SIE
)
和 1个 USB收发器
(
统称 USB核
)
,
在高速模式下 ,USB核可通过执行 USB本身的协议来完成数据传输 ,其数据的传输以数据包为单位 ,而不
需要 CPU的参与 ,克服了 CPU传送数据的“带宽瓶颈 ”,并简化 8051代码的编写 ; 8. 5kB片上 RAM,主要
完成存储固件程序 ; 7个端点缓冲区 ,包括 3个 64字节的端点 0、端点 1 IN、端点 1OUT和四个
(
EP2、EP4、
EP6、EP8
)
可配置不同大小 缓冲 的 IN 或 OUT 端点. 数 据 传输 有 全速 传 输
(
12Mbp s
)
和高速 传输
(
480Mbp s
)
,并具有 USB协议所规定的 4种传输方式 ,即控制方式、中断方式、批量传输、和同步传输方式.
CY7C68013与外部设备有 3种不同的接口模式 : Ports模式、Slave FIFO模式和 GPIF模式. Ports模式
下 ,其数据的传输主要在 CPU核的参与下完成 ,数据的传输是通过执行指令实现 ,因此数据的传输率比较
低. 对大批量数据传输一般采用后两种方式 , Slave FIFO 方式是从机方式 ,外部控制器
(
如 FPGA或单片
机
)
可像普通 FIF0操作一样对 FX2的多层缓冲 FIFO
(
由 EP2、EP2、EP4、EP6、EP8组成
)
进行读写 ,而不考
虑该包的大小 ,传输速率可明显提高 ; GP IF方式 ,称通用可编程接口方式 ,是主机方式 , EZ - USB FX2可由
软件编程输出读写控制波形 ,除了可对 FX2的四个 FIFO端点进行操作外 ,还几乎可以对任何通用总线接
口进行访问 ,如 ASIC,DSP和存储器等 ,使用非常灵活. 下面我们将以常用的 Slave FIFO方式为例 ,详细介
绍 USB的软件的开发过程.
2 系统软件的开发
USB系统软件主要包括设备底层固件程序、USB设备驱动程序和应用程序 3个部分.
2. 1 底层固件设计
底层固件程序开发有两种方式 ,
(
1
)
对于熟悉 8051汇编语言的用户来说 ,可以直接利用汇编语言编
写结构紧凑、高效的固件程序 ;
(
2
)
还可以利用现成的固件程序框架函数 ,根据设备的要求添加相应的用
2007年 3月
第 22卷 第 2期
渭南师范学院学报
Journal ofW einan Teachers University
March 2007
Vol. 22 No. 2