Cypress USB驱动程序的几个版本

Cypress USB驱动程序的几个版本.txt
CYPRESS 68013A(FX2LP系列)开发手记——驱动程序(2011-01-21 14:36:44)转载
一、Cypress USB驱动程序的几个版本

截至目前,CY网站上至少公布了三个版本的驱动程序,最后那个SuiteUSB也在更新,罗列几个如下:

1,早期EZUSB.SYS,这是给AN2131年代写的驱动程序,90年代公布,目前CY网站上已经删除。

2,后期CYUSB.SYS,这是给FX2和FX2LP写的驱动,是前者的升级版本。随着《CY3684 EZ-USB FX2LP开发套件》一起发布。

3,2009年开始的SuiteUSB 3.4.2,2011年的3.4.4,同时上述2项废止。全称叫“SuiteUSB 3.4 - USB Development tools for Visual Studio”,最新3.4.4公布时间2011年01月12日。


2和3可以统称为CYUSB,它和EZUSB的区别如下:

1,EZUSB的VID ,PID是04B4,1002,具体由ezusbw2k.inf指定。这就是所谓通用驱动GPD( General Purpose Drive),主机控制台叫EZ-USB Control Panel。主机采用WindowsAPI进行开发,使用标准IOCTL函数。它由安装CypressEZ-USBDevelopmentKit开发包得到,版本号是261700。

2,CYUSB的VID,PID是04B4,1004,具体由INF文件指定,对应的驱动应该是cyusb.sys,cyusbpre.inf,控制台使用Cypress USB Console。主机使用CyAPI函数,当然IOCTL也可用(但与老版本有变化,见CYUSB.PDF)。它由安装“CY3684 EZ-USB FX2LP 开发套件”获得。最近一次更新时间是2010 年 01 月 05 日,它的软件资料也指向了SuiteUSB,即下面第三条所列。

CYUSB包含2个文件:

cy3684_ez_usb_fx2lp_development_kit_15.exe,FX2和FX2LP开发板、演示、驱动等,缺省安装在c:\Cypress\USB目录下。
cy3684_ez_usb_fx2lp_development_kit_17.zip,主要是GPIF工具、演示例程;缺省安装在C:\Program Files\Cypress\GPIF Designer目录下。
3,SuiteUSB,上个版本是3.4.2,如今更新到3.4.4。它与CYUSB的差别在于,它支持.NET平台,可以使用C++、C#语言开发上层应用。硬件上支持64位操作系统。SuiteUSB的下载地址:https://www.360docs.net/doc/486773841.html,/?rID=34870。3.4.2版本缺省安装在C:\Program Files\Cypress,最新的3.4.4版本缺省安装在C:\Cypress\Cypress Suite USB 3.4.4。

64 bit support for Windows XP, Vista and 7 has been incorporated.
Windows Driver Model (WDM) compliant
WHQL Certified (not signed)
Compatible with any USB 2.0 compliant device
Supports Windows PnP and Power Management level S4
Supports USB Remote Wake-up
Supports Control, Bulk, Interrupt and Isochronous endpoints
Supports multiple USB devices connected at once
Supports customizable driver GUID without rebuilding the driver
Supports high bandwidth data transfers passing multiple packets per uframe
从目前看,2和3都是可选的,随着Windows 7的推广,3会应用越来越广。如果使用VC6编程,只能选择2;如果使用C++、C#则选择3。我了解的信息是,2可以运行

在 Windows 2000, Windows XP、Windows Vista 32位、Windows 7 32位操作系统,但不能运行于Vista 64位、Windows 7 64位版本。



二、Cypress Suite USB3.4.4介绍





cyusb.sys驱动程序
Cypress通用USB驱动程序

C#库:cyusb.dll
用于与cyusb.sys, usbhid.sys, usbstore.sys驱动程序通讯的类库

C++库:cyapi.lib
用于与cyusb.sys通讯的类库

CyControlCenter, CyConsole etc.
C# 与 C++ 演示代码






可运行与下列操作系统和平台:

Windows 2000(w2K)
Windows XP (wxp)
Windows Vista (wlh)
Windows 7
CPU 类型:

x86(32bit-i386)
x64(64bit-amd64)
3.4.4包含了C#与C++的例子,即,二者都支持。这就打消了USB驱动升级带来的向下兼容的疑虑。我们可以放心地使用新的CYUSB.SYS,不管是C#开发环境还是C++环境。



三、Cypress Suite USB 3.4.4目录结构

C:\Cypress\Cypress Suite USB 3.4.4目录下共有5个子目录,分别列出:



1,C:\Cypress\Cypress Suite USB 3.4.4\Firmware目录下有5个子目录:



子目录名
文件名
内容

Bin
Hex2bix.exe
Hex格式固件转换成IIC格式

Include
Fx2.h

fx2regs.h

fx2regs.inc

fx2sdly.h

syncdly.h
固件开发时用到的include文件

Lib
EZUSB.LIB

USBJmpTb.a51

USBJmpTb.OBJ
固件开发时用到的库函数

Bulkloop
bulkloop.c等
批量传输的例子

CyStreamer
CyStreamer.c等
Screamer、streamer一类流式程序加载的固件




这些固件与之前的CYUSB版本的固件(前文第2项)并无太多差别。



2,C:\Cypress\Cypress Suite USB 3.4.4\CyAPI —— Cypress开发的USB支持函数

使用基于.NET 2.0 DLL库,CyAPI,软件开发人员可以快速建立一个与Cypress GPD cyusb.sys通讯的应用。cyusb.sys是通用驱动程序,经Windows logo确认。最初是在Studio 2005 和 .NET 2.0/3.0平台上开发的。



C:\Cypress\Cypress Suite USB 3.4.4\Firmware目录下有5个子目录和2个文件:



子目录名
文件名
内容

Examples\ cybulk
若干
批量传输的C++示例

Examples\cydesc
若干
读取设备描述符的C++示例

Examples\FxEEPROM
若干
BC++示例

Examples\Streamer
若干
测试端点吞吐量的C#示例,支持同步和批量传输

Inc
CyAPI.h

cyioctl.h

usb100.h

usb200.h
头文件

Lib\ BC6
CyAPI.lib
BC++函数库

LIB\x64
CyAPI.lib
64位C函数库

Lib\x86
CyAPI.lib
32位C函数库


CyAPI.chm
CyAPI文档


CyAPI.pdf
CyAPI文档




3,C:\Cypress\Cypress Suite USB 3.4.4\CyConsole

C:\Cypress\Cypress Suite USB 3.4.4\CyConsole目录下有3个文件:



子目录名
文件名
内容


CyConsole.exe
控制台程序


CyConsole.chm
控制台程序文档


CyConsole.pdf
控制台程序文档




4,C:\Cypress\Cypress Suite USB 3.4.4\https://www.360docs.net/doc/486773841.html,

C:\Cypress\Cypress S

uite USB 3.4.4\https://www.360docs.net/doc/486773841.html,目录下有3个子目录,4个文件:



子目录名
文件名
内容

Bin
BulkLoop.exe

CyControl.exe

CyUSB.dll

Screamer.exe
.NET平台下的应用程序

Lib
CyUSB.dll
支持文件

Examples\ BulkLoop
若干
C#编写的环路测试例程

Examples\ Control Center
若干
C#编写的控制中心例程,可测试cyusb.sys、usbhid.sys、usbstore.sys支持的各种设备

Examples\ Screamer
若干
C#编写的同步传输例程

Examples\ Template
若干
C#编写的用于显示设备连接、驱动程序连接的模板


CyControlCenter.chm

CyControlCenter.pdf
控制中心例程的文档


https://www.360docs.net/doc/486773841.html,.chm

https://www.360docs.net/doc/486773841.html,.pdf
.NET类库,CyUSB.dll的文档






5,C:\Cypress\Cypress Suite USB 3.4.4\Driver —— USB底层驱动,IOCTL支持

C:\Cypress\Cypress Suite USB 3.4.4\Driver目录下有2个子目录,2个文件:



子目录名
文件名
内容

inc
cyioctl.h
IOCTL支持的头文件

bin\w2k\x86
cyusb.inf

cyusb.sys
Windows2000 32bit平台的安装文件

bin\wlh\x64
cyusb.inf

cyusb.sys
Vista 64bit平台的安装文件

bin\wlh\x86
cyusb.inf

cyusb.sys
Vista 32bit平台的安装文件

bin\wxp\x64
cyusb.inf

cyusb.sys
Windows XP 64bit平台的安装文件

bin\wxp\x86
cyusb.inf

cyusb.sys
Windows XP 32bit平台的安装文件


CyUSB.chm

CyUSB.pdf
IOCTL支持文档,INF文件制作过程




需要说明的是,类库CyAPI.lib 和 Cyusb.dll 是高级接口,而CYUSB.SYS是低级接口。我们可以使用IOCTL操作设备(如同EZ-USB,前文第一项,但与早期的定义差别很大),也可以使用类库。



四、硬件、固件的相关文章



AN14557——讲述了开发USB应用的变迁,从EZUSB的对设备句柄进行IO操作,到后来的静态链接库方式的CYAPI(它只能操作使用 cyusb.sys 的设备),到目前的https://www.360docs.net/doc/486773841.html, 2.0(它可以操作 cyusb.sys, usbstor.sys、usbhid.sys上的设备)。文章讲述了使用Visual Studio 2005建立新应用的过程。

AN15456——FX2LP硬件设计和调试指南。讲述了最小系统的构成,如果出现问题根据CLKOUT管脚的四种情况查找故障原因。重点讲述了驱动程序的故障排除。

AN50963——在使用小容量EEPROM的前提下,如何建立一个固件,可以自动下载到FX2LP中。

AN45197——Hex2Bix转换程序的用法。讲述了将.Hex格式转换成BIX(raw binary)、A51、IIC格式的操作方法。

AN45471——制造商命令设计指南。

AN61244——固件的优化。

AN58790——C#编写的Bulk传输的主机应用。

AN1196——FX2 PCB设计建议。讲述了电路板分层、铺地、眼图等一系列内容

AN1200——串口波特率发生器,软件等。针对全速设备。

AN1193——EZ-USB定时器中断的用法。

AN58985——使用VC++2008进

行固件下载。如何解析一个HEX文件,并使用CYAPI.LIB将其下载到器件的RAM中。

AN4053——通过同步传输或者批量传输端点的流应用。

AN1036——电磁噪声环境下的USB错误处理。

High-speed USB PCB Layout Recommendations —— PCB布线建议。

AN13632——测试USB信号质量。

USB Compliance Testing Overview——USB符合(Windows logo)测试概述。

AN52970——WHQL数字签名的过程。

USBDriverUpdate.pdf——把系统较早时间的cyusb.sys升级到新版。

AN61465——详细讲解了使用CYUSB.SYS制作INF文件的过程(针对新版Suite USB)。



五、INF文件的构建

1,AN61465详细介绍了INF文件的结构。





2,C2启动模式下的INF文件





3,C0启动模式下加载SPT文件的INF文件










相关文档
最新文档