分享

CYPRESS 68013A(FX2LP系列)开发手记——驱动程序(1)

 杰杰梅梅一生一世 2013-05-31

一、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的下载地址:。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文档

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多