标签:
学习USB开发再也不用买书啦,也不用花费重金去上培训班啦,IFLabs开创USB学习开发新模式,你所需要的知识、技术、范例、代码等等统统都在这里。IFLabs打造全网最丰富、最权威的USB开发平台和资料。
热卖的IFLabs精品USB2.0核心板套件再升级,全网独家推出最强、最全功能的Cypress USB 2.0 CY7C68013A-128AXC核心板开发板,全网最全配件和全网最全开发资料。只需这一次投入,即可实现USB接口开发的从入门到精通!并且有长期的全网最全开发手册更新支持。
史无前例的专业、可靠、全面、豪华,低投入拥有比拟专业培训机构的开发服务,绝不是其他低价产品所能比的。无论你是初学者,还是具有USB开发基础的工程师都值得拥有。
注意:本款核心板基于128引脚的Cypress CY7C68013A-128AXC全功能USB核心板,另外本店还有基于56引脚的CY7C68013A-56PVXC的精简版USB核心板,购买链接:http://item.taobao.com/item.htm?id=44406337109。
1.1 基本功能概述
高速USB 2.0接口芯片EZ-USB FX2LP是美国赛普拉斯公司(Cypress)推出的一款集成了USB 2.0协议的微处理器。EZ-USB FX2LP芯片提供了强大的功能,包括8051兼容的指令系统以及高速USB 2.0接口,并向下兼容全速USB接口。EZ-USB FX2LP芯片是在Cypress公司第一款USB接口微处理器(EZ-USB FX2)基础上进行优化设计的结果。EZ-USB FX2LP系列芯片包括多种型号,例如CY7C68013A、CY7C68014A、CY7C68015A和CY7C68016A等。不同型号之间的差别不大,本核心板以使用最为广泛的CY7C68013A芯片为基础进行最小系统的封装,使得用户拿到手便可以直接展开USB接口的学习和开发。全网最专业的布局布线以及最小的体积使得接口简单,可以作为一个模块轻松嵌入到用户的电路板中。另外随核心板还附带有全网最全的开发手册、全网最全的配件,真正做到学习和开发USB2.0接口仅需这一次投入,便可以拥有全套的USB接口开发资源,一板在手全程无忧,最终达到事半功倍的学习和开发效果。
本核心板开发套件的主要特色如下:
q 内置全球应用最广的Cypress公司EZ-USB FX2LP系列高速USB 2.0接口CY7C68013A-128AXC芯片,这是该系列中引脚最多、功能丰富最强的一款芯片;
q 提供了全网最完整的外围接口电路,到手即可单独使用,也可以嵌入到用户电路板中使用。
q 集成16KB大容量程序存储器(24LC128),一步到位拥有最完整的在系统编程方案,直接通过板上USB接口下载USB固件,无需二次编程器投入。
q 集成128KB大容量、高速SRAM存储器(CY7C1019DV33-10ZSXI),10ns读写速度,一步到位拥有最大的片外SRAM存储器扩展,可以在程序中处理超大数组,再也不担心数据太多没有地方存放。特别是在用户程序代码很大的时候,片内留给数据存储的空间会很少,这时候片外的高速SRAM存储器就可以发挥及其方便的作用.
q 板上24MHz高精度贴片晶振,提供最佳的时序性能。
q 提供了全网最专业的扩展接口,PA、PB、PC、PD、PE五组IO端口分类引出,控制引脚分类引出。扩展引脚的安排及其合理,便于用户使用,绝非简单的就近引出所能比拟的。
q 所有扩展引脚均为2.54mm(100mil)标准间距的高质量、特殊定制排针,同时具有排孔的功能。通过这一全网独家结构,用户可以在排孔上插跳线测试,也可以将其作为核心板插入用户电路板中使用,超级方便。
q 全网独家采用2mm加厚的专业、豪华、高强度电路板材,具有全网最佳的机械强度,带来更好的插拔性能,有效杜绝反复插拔导致电路板变形及布线断裂等情况的发生。
q 采用全网最专业的6层板布局布线,拥有极佳的信号质量。
q 具有48mm*70mm的全网最小体积,并且扩展引脚的间距也是全网最小的35.56mm(1400mil)。
q 内置高品质自恢复熔断器,提供专业的板上短路保护,有效减少由于使用不当引起的核心板损坏。
q 提供全网最丰富的配件资源,包括USB数据线、开发手册、电路原理图、测试跳线。一套在手,别无他求。
q 提供全网最全的开发手册,包括了核心板电路说明、USB基础知识、多平台USB驱动程序开发、多平台上位机程序开发、丰富详细的USB接口开发实例。相当于多本权威USB开发书籍的知识量。并且更多、更强的开发实例将不断为订单用户更新。一套在手,尽享专业级的开发服务。
q 提供Altium Designer格式的原理图库和PCB封装图库,可以作为一个集成的USB模块使用,便于用户嵌入到自己的系统中。
q 兼容Saleae Logic Analyze和USBEE AX,提供USB逻辑分析仪功能,具有强大的扩展能力。
1.2 IFLabs USB2.0 全功能核心板的优势
铺天盖地的USB开发板、USB核心板那款最适合您?IFLabs组织专业团队、不惜成本、耗费大量时间精力打造的精品USB核心板是您最佳的选择,优化的核心板结构、全网最全的开发手册、全面的配件,一套在手即可开展USB接口的开发。
IFLabs精品USB2.0 全功能核心板与目前在售的其他USB核心板的对比,如表1.1所示。IFLabs精品USB2.0 全功能核心板套件拥有你想要的全套USB开发资源,值得你拥有!
表1.1 对比优势
|
IFLabs USB2.0 全功能核心板
|
其它核心板
|
资源
|
16KB最大容量的EEPROM程序存储器
128KB最大容量的高速SRAM数据存储器
|
8K EEPROM程序存储器
无SRAM数据存储器
|
板厚
|
2mm加厚电路板,提供全网最佳的机械强度,带来更好的插拔性能,有效杜绝反复插拔导致电路板变形及布线断裂等情况的发生。
|
1.6mm板厚,不利于反复插拔使用,布线容易因电路板变形而断裂。
|
尺寸
|
外形:48mm*70mm
扩展引脚间距:35.56mm(1400mil)
全网最小
|
整体尺寸偏大
|
布线
|
6层板专业布线
|
2层板
|
IO分组
|
PA、PB、PC、PD、PE五组IO端口分组引出,控制引脚分组引出,使用超级方便。
|
就近引出,无分组,不便于使用。
|
扩展引脚
|
扩展引脚使用特殊定制的排针孔,用户可以在上面插跳线测试,也可以将其作为核心板插入用户电路板中使用,超级方便。
|
功能单一,无创意,使用不方便。
|
晶振
|
高精度贴片晶振
|
普通直插晶振
|
电路保护
|
高品质短路自恢复熔断器、电源开关双点双线高可靠设计等多项保护措施。
|
无
|
配件
|
配有测试跳线、USB电缆、光盘等等。
|
无
|
开发手册
|
长达1000多页的开发手册,相当于4~5本专业USB书籍的知识量,涵盖核心板原理图介绍、USB基础知识、多平台驱动开发、多平台上位机开发和丰富详细的开发实例。
|
无
|
库文件
|
提供Altium Designer格式的原理图库和PCB封装图库。
|
无
|
快递
|
顺丰包邮,最好的快递服务,基本全国范围极速1日达。
|
不包邮,一般快递速度慢。
|
供电能力
|
支持USB接口自供电、外部供电两种方式。
同时还提供USB5V、板上VCC(3.3V)向外输出供电能力。即使开发板不工作也可以向外提供5V供电噢!
|
只有USB接口自供电。
|
技术服务
|
为订单用户提供长期的开发手册更新服务,不断完善开发手册中的知识点、增加开发实例等等。
|
无
|
性价比
|
一次投入尽享全方位的USB开发资源=全网最佳USB2.0核心板+全网最全的开发手册(相当于4~5本专业USB书籍)+全面的配件+顺丰包邮极速达。
整体投入成本低、性价比高。
|
单一个核心板还不能够开展USB学习和开发,还需多次投入购买其他配件和资料,例如USB电缆、测试板、4~5本专业USB书籍、顺丰运费。
总体投入成本高、性价比低。
|
1.2 开发板结构
IFLabs USB 2.0 全功能核心板开发套件包括核心板*1,USB线*1,光盘*1,测试线*1,如图1.1所示。
图1.1 开发套件构成
整个核心板大小为48mm*70mm,其结构如图1.2所示。这里只作为整体结构的展示,其中部分元器件未找到合适的3D模型。各个组成部分介绍如下:
q USB接口:负责USB供电、USB数据传输,USB-B型接头。
q USB核心芯片:Cypress EZ-USB FX2LP系列CY7C68013A-128AXC芯片。
q 电压转换:负责将USB接口输出的5V转换为核心板工作所需的3.3V。
q 复位开关:用于USB芯片的复位。
q 电源开关:用于控制核心板供电的开关。
q LED指示:电源供电指示以及自恢复熔断器保护。
q P1扩展口:提供CY7C68013A-128AXC芯片PB、PD以及其他控制端口的扩展。
q P2扩展口:提供CY7C68013A-128AXC芯片PA、PC、PE以及其他控制端口的扩展。
q 16K EEPROM程序存储器:24LC128芯片,16K程序存储器。
q 128KB SRAM:CY7C1019DV33-10ZSXI芯片,128KB数据存储器。
q 高精度贴片晶振:24MHz贴片高精度晶振,为核心板提供精准的时序。
q GND测试点:连接电路板的GND,方便使用鳄鱼夹、示波器探头等夹持来进行测试操作。
图1.2 核心板结构
本核心板通过两个双排的2.54mm间距高质量圆排针提供扩展接口,其间距为35.56mm(1400mil),满足2.54mm的整数倍,适合于各类万用板、测试板以及用户自己的电路板系统。更可以作为一个USB模块嵌入到用户电路系统中。
本核心板支持USB接口自供电和外部供电两种方式。
q 自锁开关S1闭合将通过USB接口的+5V为核心板供电,此时P1端口的VCC为USB接口的+5V输出,P2端口的VDD为板上的+3.3V输出,可供核心板之外的元器件扩展使用。
q 自锁开关S1断开时可以通过P1端口的VCC为核心板供电,此时VCC是外部+5V供电输入引脚,P2端口的VDD仍为板上的+3.3V输出。
1.3 光盘文件说明
本开发套件光盘中提供了如下一些资源:
q IFLabs USB2.0 全功能核心板原理图.pdf:IFLabs USB2.0 全功能核心板电路原理图。
q CY3684 EZ-USB FX2LP Development Kit:Cypress CY3684开发包。
q Cypress Suite USB 3.4.7:Cypress的.net开发包。
q CY7C68013A英文数据手册.pdf:最新版英文数据手册。
q CY7C68013A中文数据手册.pdf:最新版中文数据手册。
q EZ-USB Technical Reference Manual.pdf: EZ-USB FX2LP系列芯片的构架说明。
q 库文件:IFLabs USB2.0 全功能核心板电路原理图库和PCB封装库文件。
q IFLabs USB2.0 全功能核心板开发手册.pdf:IFLabs USB2.0 FX2LP核心板开发手册。
q 实例源代码:开发手册中的实例源代码。
1.4 库文件说明
IFLabs USB2.0全功能核心板的原理图库文件,如图2.6所示。其中按核心板扩展引脚的排布顺序列出了所有的扩展引脚定义。同时,用户可以根据提供的原理图库源文件来自行修改引脚布局以适应各自的应用需求。IFLabs USB2.0全功能核心板的PCB封装库文件,如图2.7所示。其中各个尺寸均与核心板物理尺寸一致。有了IFLabs USB2.0全功能核心板的原理图库文件和PCB封装库文件,用户便可以将其作为一个USB模块来使用,就像一个芯片一样。
图2.6 原理图库图 图2.7 PCB封装库
1.5 开发手册目录简介
本开发套件光盘中提供的开发手册共计1000多页,包括5篇,分别介绍了IFLabs USB2.0全功能核心板、USB基础知识、多平台USB驱动开发、多环境上位机程序开发和USB接口开发实例。
第一篇是IFLabs USB2.0全功能核心板简介,详细介绍IFLabs USB2.0全功能核心板构成、使用、原理图说明以及库文件;
第二篇是USB基础知识,详细介绍了USB协议相关的各类知识;
第三篇是多平台USB驱动开发,包括了DriverStudio、Cypress通用驱动、Microsoft通用驱动、LabVIEW平台驱动开发等等;
第四篇是多环境上位机程序开发,包括了DriverStudio、Visual C++、Visual C#、LabVIEW等开发环境;
第五篇是USB接口开发实例,围绕IFLabs USB2.0全功能核心板详细介绍了各种开发场景和功能,包括LCD、AD、DA、键盘、LabVIEW、高速数据采集、逻辑分析仪、Android智能手机等等。每一个实例都进行了充分、详细的讲解。并且还在不断更新扩展。
这是迄今为止作为全面的开发手册,相当于4~5本专业USB开发书籍的知识量。一册在手,别无他求!
另外,IFLabs的专业团队将会对开发手册不定期进行更新升级,购买IFLabs USB2.0全功能核心板开发套件的用户均可以得到升级服务,只需在订单备注中留下姓名、旺旺号、接收新版开发手册的邮箱即可。IFLabs将会不定期把最新版的开发手册和资料通过邮箱发给各位IFLabs USB2.0全功能核心板用户,请各位用户自己使用不要公开传播。
IFLabs致力于打造USB接口开发的精品平台,让用户拥有超值体验!只需这一次投入,便可以得到不间断的开发学习服务。
当前最新版开发手册详细的目录结构如下:
IFLabs USB2.0 全功能核心板开发手册V1.1 1
目 录 2
第一篇 IFLabs USB2.0 全功能核心板简介 1
第1章 核心板简介 2
1.1 基本功能概述 2
1.2 IFLabs USB2.0 全功能核心板的优势 3
1.2 开发板结构 4
1.3 光盘文件说明 6
1.4 注意事项及技术支持 7
第2章 核心板电路原理图详解 8
2.1 核心板电路原理图接线详解 8
2.2 核心板原理图库和PCB封装库 13
第二篇 USB基础知识 15
第3章 USB技术概述 16
3.1 USB总线技术的产生 16
3.2 认识USB总线接口 18
3.2.1 USB A型插座和插头 18
3.2.2 USB B型插座和插头 19
3.2.3 USB mini型插座和插头 20
3.2.4 USB micro型插座和插头 21
3.2.5 USB 3.0型插座和插头 22
3.2.6 USB电缆结构 26
3.3 USB总线版本 29
3.3.1 USB 1.0 29
3.3.2 USB 1.1 29
3.3.3 USB 2.0 30
3.3.4 USB 3.0 30
3.3.5 其他USB规范 32
3.4 USB规范概览 33
3.5 USB总线结构 34
3.5.1 USB主机 35
3.5.2 USB电缆 35
3.5.3 USB设备 35
3.6 USB总线特点 37
3.7 USB的竞争技术解析 38
3.7.1 IEEE 1394接口技术 38
3.7.2 eSATA接口技术 39
3.7.4 USB PLUS接口技术 39
3.7.5 Thunder Bolt超高速接口技术 40
3.7.6 USB接口与其他计算机接口的对比 40
3.8 USB设备的开发 41
3.9 小结 42
第4章 USB电源管理 44
4.1 USB的供电 44
4.1.1 USB接口的电源指标 44
4.1.2 USB外设功率需求 45
4.2 典型USB外设的电源设计 45
4.2.1 USB根集线器 46
4.2.2 USB总线供电集线器 47
4.2.3 USB自供电集线器 47
4.2.4 USB总线供电低功率设备 48
4.2.5 USB总线供电高功率设备 49
4.2.6 USB自供电设备 49
4.2.7 USB设备功率需求的设置 50
4.3 USB电源管理 51
4.3.1 激活(ACTIVE) 52
4.3.2 挂起(SUSPEND) 52
4.3.3 空闲(FAST EXIT IDLE) 52
4.3.4 睡眠(SLOW EXIT IDLE) 53
4.3.5 USB 2.0与USB 3.0电源管理的区别 53
4.4 小结 54
第5章 USB事务处理 55
5.1 USB事务处理概述 55
5.2 令牌阶段 56
5.2.1 同步字段 56
5.2.2 令牌包 57
5.3 数据阶段 65
5.3.1 同步字段 65
5.3.2 数据包 66
5.4 握手阶段 67
5.4.1 同步字段 67
5.4.2 握手包 68
5.5 USB事务处理 69
5.5.1 IN事务处理 70
5.5.2 OUT事务处理 71
5.5.3 SETUP事务处理 73
5.5.4 PING事务处理 73
5.5.5 SOF事务处理 75
5.5.6 SPLIT事务处理 75
5.5.7 PRE事务处理 77
5.6 USB设备的总线状态 77
5.7 USB设备的总线列举 79
5.7.1 连接USB设备 79
5.7.2 断开USB设备 80
5.8 小结 80
第6章 USB数据传输类型 81
6.1 USB数据传输概述 81
6.1.1 USB下传数据 82
6.1.2 USB上传数据 83
6.1.3 USB的数据传输类型 83
6.2 USB块传输 84
6.2.1 USB块传输方式 84
6.2.2 块传输的数据包长度 84
6.2.3 块事务处理 84
6.3 USB中断传输 87
6.3.1 USB中断传输方式 87
6.3.2 中断传输的数据包长度 87
6.3.3 中断事务处理 88
6.4 USB同步传输 90
6.4.1 USB同步传输方式 90
6.4.2 同步传输的数据包长度 90
6.4.3 同步事务处理 91
6.5 USB控制传输 93
6.5.1 USB控制传输方式 93
6.5.2 控制传输数据包长度 94
6.5.3 控制事务处理 94
6.6 USB 3.0与USB 2.0数据传输对比 97
6.6.1 接口不同 97
6.6.2 数据传输方式不同 97
6.6.3 编码方式不同 98
6.6.4 数据传输对比 99
6.7 小结 100
第7章 USB设备配置 101
7.1 USB描述符概述 101
7.2 设备描述符(Device) 102
7.2.1 设备描述符定义 102
7.2.2 设备描述符示例 105
7.3 配置描述符(Configuration) 105
7.3.1 配置描述符定义 106
7.3.2 配置描述符示例 107
7.4 字符串描述符(String) 107
7.4.1 字符串描述符定义 108
7.4.2 字符串描述符示例 108
7.5 接口描述符(Interface) 109
7.5.1 接口描述符定义 109
7.5.2 接口描述符示例 111
7.6 端点描述符(Endpoint) 111
7.6.1 端点描述符定义 111
7.6.2 端点描述符示例 113
7.7 设备限定描述符(Device Qualifier) 114
7.7.1 设备限定描述符定义 114
7.7.2 设备限定描述符示例 116
7.8 其他速率配置描述符(Other Speed Configuration) 116
7.8.1 其他速率配置描述符定义 116
7.8.2 其他速率配置描述符示例 118
7.9 USB设备请求概述 118
7.9.1 标准USB设备请求概述 118
7.9.2 USB设备请求处理过程 119
7.10 读取状态请求(GetStatus) 120
7.19.1 读取设备 120
7.19.2 读取接口 121
7.19.3 读取端点 123
7.11 清除特性请求(ClearFeature) 124
7.11.1 清除设备特性 125
7.11.2 清除接口特性 126
7.11.3 清除端点特性 126
7.12 设置特性请求(SetFeature) 127
7.12.1 设置设备特性 127
7.12.2 设置接口特性 128
7.12.3 设置端点特性 129
7.12.4 设置测试特性 129
7.13 设置地址请求(SetAddress) 130
7.14 读取描述符请求(GetDescription) 130
7.15 设置描述符请求(SetDescriptor) 132
7.16 读取配置请求(GetConfiguration) 133
7.17 设置配置请求(SetConfiguration) 134
7.18 读取接口请求(GetInterface) 135
7.19 设置接口请求(SetInterface) 136
7.20 同步帧请求(SynchFrame) 136
7.21 设备请求示例 137
7.21.1 声明设备请求 137
7.21.2 设备请求的响应 138
7.22 小结 141
第8章 USB集线器配置 142
8.1 USB集线器简介 142
8.1.1 集线器设备类 143
8.1.2 集线器的配置 144
8.2 USB集线器描述符 145
8.2.1 集线器设备描述符 145
8.2.2 集线器配置描述符 147
8.2.3 集线器接口描述符 148
8.2.4 集线器端点描述符 149
8.2.5 集线器类描述符 150
8.3 USB集线器类请求 152
8.3.1 读取集线器状态请求GetHubStatus 152
8.3.2 读取下行端口状态请求GetPortStatus 153
6.3.3 禁止集线器的特性请求ClearHubFeature 154
8.3.4 禁止下行端口特性请求ClearPortFeature 154
8.3.5 使能集线器特性请求SetHubFeature 155
8.3.6 使能下行端口特性请求SetPortFeature 155
8.3.7 读取集线器描述符请求GetHubDescriptor 156
8.3.8 设置集线器描述符请求SetHubDescriptor 156
8.3.9 清除TT块请求ClearTTBuffer 157
8.3.10 复位TT块请求ResetTT 158
6.3.11 读取TT内部状态请求GetTTState 158
8.3.12 停止TT正常工作请求StopTT 159
8.4 小结 159
第9章 USB HID设备配置 160
9.1 USB HID设备简介 160
9.2 USB HID设备描述符 162
9.2.1 USB HID设备的定义 162
9.2.2 USB HID基本描述符 163
9.2.3 USB HID类描述符 168
9.3 USB HID设备类请求 170
9.3.1 获取报告请求GetReport 171
9.3.2 获取空闲速率请求GetIdle 171
9.3.3 获取HID协议请求GetProtocol 172
9.3.4 设置报告请求SetReport 173
9.3.5 设置空闲速率请求SetIdle 173
9.3.6 设置HID协议请求SetProtocol 174
9.4 小结 175
第10章 常用的USB芯片 176
10.1 USB芯片分类概述 176
10.1.1 通用USB芯片 176
10.1.2 专用USB芯片 177
10.2 通用USB 接口芯片 177
10.2.1 高速USB接口芯片EZ-USB FX2LP 177
10.2.2 可编程片上系统PSoC USB芯片 185
10.2.3 通用USB接口芯片CH375A 189
10.2.4 超高速USB 3.0接口芯片CYUSB3014 196
10.4 专用USB接口芯片 197
10.4.1 USB HID类接口芯片CY7C63723 198
10.4.2 NEC USB3.0芯片μPD720200 199
10.4.3 USB转串口芯片CH341 201
10.5 印制电路板基础 208
10.5.1 印制电路板的分类 208
10.5.2 印制电路板的基本概念 209
10.6 印制电路板设计规则 211
10.6.1 电路板的选择 212
10.6.2 电路板布局 212
10.6.3 电路板布线 213
10.6.4 其他设计规则 214
10.7 USB接口的PCB设计技巧 216
10.7.1 差分阻抗匹配 216
10.7.2 供电和接地 218
10.7.3 USB接头屏蔽 219
10.7.4 晶体振荡器 220
10.8 小结 220
第11章 Cypress EZ-USB寄存器详解 222
11.1 特殊功能寄存器 222
11.1.1 端口PA读写寄存器IOA 222
11.1.2 端口PB读写寄存器IOB 223
11.1.3 自动指针1地址高字节寄存器AUTOPTRH1 223
11.1.4 自动指针1地址低字节寄存器AUTOPTRL1 223
11.1.5 自动指针2地址高字节寄存器AUTOPTRH2 224
11.1.6 自动指针2地址低字节寄存器AUTOPTRL2 224
11.1.7 端口PC读写寄存器IOC 224
11.1.8 中断请求INT2清除寄存器INT2CLR 225
11.1.9 中断请求INT4清除寄存器INT4CLR 225
11.1.10 端点状态标志寄存器EP2468STAT 225
11.1.11 数据传输状态标志寄存器EP24FIFOFLGS 226
11.1.12 数据传输状态标志寄存器EP68FIFOFLGS 226
11.1.13 自动指针设置寄存器AUTOPTRSETUP 227
11.1.14 端口PD读写寄存器IOD 228
11.1.15 端口PE读写寄存器IOE 228
11.1.16 端口使能寄存器OEA~OEE 228
11.1.17 端点0和1的状态寄存器EP01STAT 229
11.1.18 触发GPIF寄存器GPIFTRIG 230
11.1.19 GPIF数据寄存器GPIFSGLDATH 230
11.1.20 GPIF数据寄存器GPIFSGLDATLX 231
11.1.21 GPIF数据寄存器GPIFSGLDATLNOX 231
11.2 GPIF波形描述 231
11.3 通用配置寄存器 232
11.3.1 CPU控制和状态寄存器 232
11.3.2 接口配置 233
11.3.3 Slave FIFO引脚配置 234
11.3.4 FIFO复位 235
11.3.5 断点 236
11.3.6 串行时钟 237
11.3.7 Slave FIFO接口引脚的极性 237
11.3.8 芯片版本ID 238
11.3.9 芯片版本控制 238
11.3.10 GPIF保持时间 239
11.4 端点配置寄存器 239
11.4.1 端点1IN和端点1OUT配置 239
11.4.2 端点2、4、6、8配置 240
11.4.3 端点2、4、6、8的Slave FIFO配置 241
11.4.4 端点2、4、6、8的AUTOIN包长度 242
11.4.5 端点的ISO IN包 243
11.4.6 IN数据包强制结束 243
11.4.7 OUT数据包强制结束 243
11.5 中断寄存器 245
11.5.1 端点Slave FIFO中断 245
11.5.2 Bulk In中断 246
11.5.3 端点握手中断 246
11.5.4 USB中断 247
11.5.5 端点中断 248
11.5.6 GPIF中断 249
11.5.7 USB错误中断 250
11.5.8 USB错误计数限制 251
11.5.9 清错误计数 251
11.5.10 INT2自动向量 251
11.5.11 INT4自动向量 252
11.5.12 INT2和INT4的SETUP 252
11.6 输入/输出寄存器 253
11.6.1 端口A的替换配置 253
11.6.2 端口C的替换配置 253
11.6.3 端口E的替换配置 254
11.6.4 XTALIN时钟源 254
11.6.5 I2C总线控制和状态 254
11.6.6 I2C总线数据 255
11.6.7 I2C总线控制 255
11.6.8 自动指针的MOVX操作 256
11.7 USB控制寄存器 256
11.7.1 USB控制和状态 256
11.7.2 进入挂起状态 257
11.7.3 唤醒控制及状态 257
11.7.4 数据触发控制 258
11.7.5 USB帧计数 258
11.7.6 USB微帧计数 259
11.7.7 USB功能地址 259
11.8 端点操作寄存器 260
11.8.1 端点0计数 260
11.8.2 端点1计数 260
11.8.3 端点2和6的Byte计数高位 261
11.8.4 端点4和8的Byte计数高位 261
11.8.5 端点2、4、6、8计数的低位 262
11.8.6 端点0控制和状态 262
11.8.7 端点1控制和状态 263
11.8.8 端点2控制和状态 263
11.8.9 端点4控制和状态 264
11.8.10 端点6控制和状态 265
11.8.11 端点8控制和状态 265
11.8.12 端点2和4的FIFO标志 266
11.8.13 端点6和8的FIFO标志 266
11.8.14 端点2的Slave FIFO字节计数高位 267
11.8.15 端点6的Slave FIFO字节计数高位 267
11.8.16 端点4和端点8的Slave FIFO字节计数高位 267
11.8.17 端点2、4、6和8Slave FIFO字节计数低位 268
11.8.18 Setup数据指针地址 268
11.8.19 Setup指针自动模式 269
11.8.20 8字节Setup数据 269
11.9 GPIF/FIFOs寄存器 270
11.9.1 GPIF波形选择 270
11.9.2 GPIF完成和空闲 271
11.9.3 CTL的输出状态 272
11.9.4 GPIF地址 273
11.9.5 GPIF流动状态 273
11.9.6 GPIF处理字节计数 274
11.9.7 端点2、4、6和8的GPIF标志选择 276
11.9.8 端点2、4、6和8的GPIF停止事务 276
11.9.9 端点2、4、6和8的GPIF触发 277
11.9.10 GPIF数据 277
11.9.11 GPIF RDY引脚的配置 278
11.9.12 GPIF RDY引脚状态 279
11.9.13 终止GPIF循环 279
11.10 端点缓冲寄存器 280
11.10.1 端点0 280
11.10.2 端点1IN 280
11.10.3 端点1OUT 281
11.10.4 端点2 281
11.10.5 端点4 282
11.10.6 端点6 283
11.10.7 端点8 283
第三篇 多平台USB驱动开发 284
第12章 USB驱动程序基础 285
12.1 WDM驱动程序概述 285
12.1.1 WDM驱动程序简介 285
12.1.2 WDM驱动程序特点 286
12.1.3 WDM驱动程序的分层结构 288
12.2 WDM功能驱动程序的组成 289
12.2.1 入口例程 290
12.2.2 即插即用例程 291
12.2.3 分发例程 294
12.2.4 电源管理例程 295
12.2.5 卸载例程 297
12.3 USB设备的即插即用实现 298
12.3.1 即插即用设备状态 299
12.3.2 启动USB设备 300
12.3.3 停止USB设备 301
12.3.4 删除USB设备 302
12.4 即插即用IRP请求的处理规则 303
第13章 驱动开发工具——DriverStudio 306
13.1 驱动开发工具DriverStudio简介 306
13.1.1 DriverStudio软件工具集 306
13.1.2 搭建DriverStudio驱动开发环境 307
13.1.3 配置DriverStudio编译环境 311
13.2 WDM驱动程序基本结构 312
13.2.1 基类KDriver 312
13.2.2 即插即用类KPnPDevice 315
13.2.3 物理对象类KPnpLowerDevice 318
13.3 使用DriverStudio创建USB驱动 319
13.3.1 创建USB驱动程序框架 319
13.3.2 USB驱动程序设计 324
13.4 小结 326
第14章 通用USB驱动程序解析 327
14.1 驱动程序文件简介 327
14.1.1 USB设备驱动程序安装 328
14.1.2 USB设备的识别 329
14.2 驱动程序INF文件的结构 330
14.2.1 版本节(Version) 331
14.2.2 源文件盘符节(SourceDisksNames) 334
14.2.3 源文件节(SourceDisksFiles) 334
14.2.4 目标磁盘节(DestinationDirs) 335
14.2.5 供应商节(Manufacturer) 336
14.2.6 默认安装节(DefaultInstall) 336
14.2.7 字符串节(String) 336
14.3 Cypress通用USB驱动——基于VC6.0平台 337
14.3.1 CyLoad.inf文件分析 337
14.3.2 CyUSB.inf文件分析 341
14.3.3 驱动程序的安装 344
14.4 Cypress通用USB驱动——基于.NET平台 348
14.4.1 CyUSB.inf文件 348
14.4.2 CyUSB.inf文件分析 351
14.5 微软通用USB驱动——WinUSB 353
14.5.1 WinUSB简介 353
14.5.2 WinUSB驱动程序安装包 355
14.5.3 WinUSB INF文件 356
14.6 小结 360
第15章 LabVIEW平台的USB驱动程序开发 361
15.1 NI LabVIEW平台简介 361
15.1.1 LabVIEW平台简介 361
15.1.2 NI-VISA开发平台 363
15.2 LabVIEW平台下的USB驱动开发 363
15.2.1 NI-VISA的USB驱动简介 364
15.2.2 创建USB驱动 364
15.2.3 INF安装文件 369
15.3 小结 374
第四篇 多环境上位机程序开发 375
第16章 基于DriverStudio的USB设备编程基础 376
16.1 USB编程类函数概述 376
16.2 设备编程类KUsbLowerDevice 376
16.2.1 激活设备配置函数ActivateConfiguration 377
16.2.2 终止设备配置函数DeActivateConfiguration 378
16.2.3 初始化厂商自定义请求函数BuildVendorRequest 378
16.2.4 分配USB类请求函数BuildClassRequest 379
16.2.5 清除USB特征标志函数ClearFeature 379
16.2.6 设置USB特征标志函数SetFeature 380
16.2.7 获取状态信息函数GetStatus 380
16.2.8 获取USB帧号函数GetCurrentFrameNumber 380
16.2.9 设置未配置状态函数Unconfigure 381
16.2.10 设置配置状态函数Configure 381
16.2.11 配置USB接口函数PreconfigureInterface 381
16.2.12 获取USB接口描述符函数LocateInterface 382
16.2.13 获取USB配置描述符函数Preconfigure 382
16.2.14 删除资源函数ReleaseResources 382
16.2.15 获取字符串描述符函数GetStringDescriptor 383
16.2.16 获取设备描述符函数GetDeviceDescriptor 383
16.2.17 初始化实例函数Initialize 383
16.2.18 URB发送函数SubmitUrb 384
16.3 接口编程类KUsbInterface 384
16.3.1 使能USB接口函数SelectAlternate 385
16.3.2 清除USB特征标志函数ClearFeature 385
16.3.3 设置USB特征标志函数SetFeature 385
16.3.4 获取状态信息函数GetStatus 386
16.3.5 厂商自定义请求函数BuildVendorRequest 386
16.3.6 分配USB类请求函数BuildClassRequest 387
16.3.7 设置管道函数Pipes 388
16.3.8 获取管道数量函数NumberOfPipes 388
16.3.9 获取接口协议函数Protocol 388
16.3.10 获取接口子类函数Subclass 388
16.3.11 获取接口类函数Class 388
16.3.12 获取接口号函数AlternateSetting 389
16.3.13 获取接口数量函数InterfaceNumber 389
16.3.14 初始化实例函数Initialize 389
16.3.15 关闭接口函数Close 390
16.3.16 判断是否打开函数IsOpen 390
16.3.17 打开实例函数Open 390
16.3.18 URB发送函数SubmitUrb 390
16.3.19 判断实例是否有效函数IsValid 391
16.4 管道编程类KUsbPipe 391
16.4.1 初始化实例函数Initialize 392
16.4.2 打开接口函数Open 392
16.4.3 判断是否打开函数IsOpen 392
16.4.4 关闭管道函数Close 393
16.4.5 中断数据传输函数BuildInterruptTransfer 393
16.4.6 控制数据传输函数BuildControlTransfer 393
16.4.7 块数据传输函数BuildBulkTransfer 394
16.4.8 同步数据传输函数BuildIsochronousTransfer 394
16.4.9 清除USB特征标志函数ClearFeature 395
16.4.10 设置USB特征标志函数SetFeature 395
16.4.11 获取状态信息函数GetStatus 396
16.4.12 管道复位函数Reset 396
16.4.13 丢弃传输函数Abort 396
16.4.14 初始化厂商自定义请求函数BuildVendorRequest 396
16.4.15 初始化类请求函数BuildClassRequest 397
16.4.16 获取最大帧字节数函数MaximumPacketSize 398
16.4.17 获取最大传输字节数函数MaximumTransferSize 398
16.4.18 获取管道句柄函数Handle 398
16.4.19 获取中断检查间隔函数PollInterval 398
16.4.20 获取管道端点地址函数EndpointAddress 399
16.4.21 设置最大传输字节数函数SetMaximumTransferSize 399
16.4.22 URB发送函数SubmitUrb 399
16.4.23 获取传输类型函数Type 399
16.5 小结 400
第17章 基于Visual C++的USB设备编程基础 401
17.1 基于Visual C++的USB设备编程环境 401
17.1.1 cyioctl类控制函数 401
17.1.2 CyAPI控制函数类 402
17.2 cyioctl控制函数类 403
17.2.1 中止端点请求接口IOCTL_ADAPT_ABORT_PIPE 403
17.2.2 断开设备接口IOCTL_ADAPT_CYCLE_PORT 403
17.2.3 获取设备地址接口IOCTL_ADAPT_GET_ADDRESS 404
17.2.4 获取替换接口IOCTL_ADAPT_GET_ALT_INTERFACE_SETTING 404
17.2.5 获取描述字符串接口IOCTL_ADAPT_GET_DEVICE_NAME 405
17.2.6 获取电源状态接口IOCTL_ADAPT_GET_DEVICE_POWER_STATE 405
17.2.7 获取版本号接口IOCTL_ADAPT_GET_DRIVER_VERSION 406
17.2.8 获取替换名称接口IOCTL_ADAPT_GET_FRIENDLY_NAME 406
17.2.9 获取端点数量接口IOCTL_ADAPT_GET_NUMBER_ENDPOINTS 406
17.2.10 获取单次传输大小接口IOCTL_ADAPT_GET_TRANSFER_SIZE 407
17.2.11 获取USBDI版本号接口IOCTL_ADAPT_GET_USBDI_VERSION 407
17.2.12 复位USB设备接口IOCTL_ADAPT_RESET_PARENT_PORT 408
17.2.13 复位USB端点接口IOCTL_ADAPT_RESET_PIPE 408
17.2.14 设置替换接口IOCTL_ADAPT_SELECT_INTERFACE 409
17.2.15 发送控制请求接口IOCTL_ADAPT_SEND_EP0_CONTROL_TRANSFER 409
17.2.16 数据通信接口IOCTL_ADAPT_SEND_NON_EP0_TRANSFER 410
17.2.17 设置电源状态接口IOCTL_ADAPT_SET_DEVICE_POWER_STATE 411
17.2.18 设置传输字节数接口IOCTL_ADAPT_SET_TRANSFER_SIZE 411
17.3 CyAPI控制函数类 412
17.3.1 USB设备控制类CCyUSBDevice 412
17.3.2 USB配置信息类CCyUSBConfig 423
17.3.3 USB端点控制类CCyUSBEndPoint 427
17.3.4 USB接口控制类CCyUSBInterface 433
17.3.5 USB块传输端点控制类CCyBulkEndPoint 436
17.3.6 USB控制传输端点类CCyControlEndPoint 437
17.3.7 USB中断传输端点控制类CCyInterruptEndPoint 439
17.3.8 USB同步传输端点控制类CCyIsocEndPoint 440
17.4 USB数据传输实例 442
17.5 小结 444
第18章 基于Visual C#的USB设备编程基础 445
18.1 基于Visual C#的USB设备编程环境 445
18.2 USBDeviceList类 446
18.2.1 USBDeviceList函数 446
18.2.2 Count成员变量 447
18.2.3 Dispose函数 447
18.2.4 USBDeviceList [int index]成员变量 448
18.2.5 USBDeviceList [string FriendlyName]成员变量 448
18.2.6 USBDeviceList [int VendorID, int ProductID]成员变量 449
18.2.7 USBDeviceList [int VendorID, int ProductID, int UsagePage, int Usage]成员变量 449
18.3 CyUSBDevice类 450
18.3.1 BcdUSB成员变量 451
18.3.2 DevClass成员变量 451
18.3.3 DevProtocol成员变量 451
18.3.4 DevSubClass成员变量 452
18.3.5 DriverName成员变量 452
18.3.6 FriendlyName成员变量 452
18.3.7 Manufacturer成员变量 453
18.3.8 Name成员变量 453
18.3.9 Path成员变量 454
18.3.10 ProductID成员变量 454
18.3.11 VendorID成员变量 454
18.3.12 SerialNumber成员变量 455
18.3.13 USBAddress成员变量 455
18.4 CyControlEndPoint类 456
18.4.1 Direction成员变量 456
18.4.2 Index成员变量 456
18.4.3 ReqCode成员变量 457
18.4.4 ReqType成员变量 457
18.4.5 Target成员变量 457
18.4.6 Value成员变量 457
18.4.7 XferData函数 458
18.4.8 Read函数 458
18.4.9 Write函数 459
18.5 CyIsocEndPoint类 460
18.5.1 GetPktBlockSize函数 460
18.5.2 BeginDataXfer函数 461
18.5.3 FinishDataXfer函数 461
18.5.4 GetPktCount函数 463
18.5.5 XferData函数 464
18.6 CyHidDevice类 465
18.6.1 GetFeature函数 466
18.6.2 GetInput函数 466
18.6.3 ReadInput函数 467
18.6.4 SetFeature函数 467
18.6.5 SetOutput函数 468
18.6.6 WriteOutput函数 468
18.6.7 ToString函数 469
18.7 CyUSBStorDevice类 472
18.7.1 SendScsiCmd函数 473
18.7.2 ToString函数 474
18.7.3 TimeOut成员变量 474
18.8 CyBulkEndPoint类 475
18.9 小结 476
第19章 基于LabVIEW的USB设备编程基础 477
19.1 NI-VISA USB设备交互控制 477
19.2 VISA控制函数 482
19.2.1 VISA打开 482
19.2.2 VISA关闭 483
19.2.3 VISA USB控制输出 483
19.2.4 VISA USB控制输入 484
19.2.5 VISA写入 485
19.2.6 VISA读取 485
19.3 小结 486
第五篇 USB接口开发实例 487
第20章 了解EZ-USB FX2LP基本固件框架 488
20.1 Cypress固件开发工具 488
20.1.1 安装开发包 488
20.1.2 开发包工具简介 491
20.2 基本固件框架 494
20.2.1 基本固件框架的建立 495
20.2.2 固件调试 496
20.3 固件程序设计 501
20.3.1 USB端口读写的程序设计 501
20.3.2 USB端口读写的固件仿真调试 505
20.3.3 USB端点的数据发送和采集 505
20.3.4 数据发送和采集仿真调试 510
20.4 小结 511
第21章 USB接口LED数码管显示实例 512
21.1 EZ-USB FX2LP的I/O端口 512
21.1.1 普通I/O功能 515
21.1.2 第二复用功能 519
21.2 控制端点0请求 521
21.2.1 USB控制传输 522
21.2.2 USB设备请求及固件响应 523
21.2.3 获得状态请求(Get Status) 523
21.2.4 设置特性请求(Set Feature) 525
21.2.5 清除特性请求(Clear Feature) 526
21.2.6 获得描述符请求(Get Descriptor) 527
21.2.7 设置描述符请求(Set Descriptor) 529
21.2.8 设置配置请求(Set Configuration) 529
21.2.9 获得配置请求(Get Configuration) 530
21.2.10 设置接口请求(Set Interface) 530
21.2.11 获得接口请求(Get Interface) 531
21.2.12 同步帧请求(Sync Frame) 531
21.2.13 固件加载请求(Firmware Load) 531
21.2.14 自定义请求 532
21.3 USB控制数码管实例 533
21.3.1 数码管显示原理 533
21.3.2 电路原理图 535
21.4 USB固件程序设计 536
21.4.1 主程序文件 537
21.4.2 功能实现代码 545
21.4.3 自定义请求的定义 546
21.4.4 USB描述 553
21.4.5 下载固件程序 559
21.5 USB主机程序设计 565
21.5.1 建立项目 565
21.5.2 程序设计 568
21.5.3 编译程序并运行 575
21.6 小结 576
第22章 EEPROM实现自定义USB设备启动 577
22.1 EZ-USB FX2LP启动配置模式 577
22.1.1 EZ-USB FX2LP的启动模式简介 578
22.1.2 默认USB设备状态 578
22.2 EEPROM引导EZ-USB FX2LP启动 579
22.2.1 无EEPROM引导启动 579
22.2.2 EEPROM引导启动 580
22.2.3 启动配置寄存器 581
22.2.4 固件下载和重列举 583
22.2.5 不同芯片的接线 583
22.3 电路原理图 584
22.4 固件程序设计 586
22.4.1 主程序文件 587
22.4.2 请求响应函数 590
22.4.3 初始化子程序 593
22.4.4 功能子程序 593
22.4.5 自定义请求的定义 594
22.5 USB描述符 594
22.5.1 设备描述符 594
22.5.2 高速配置描述符 595
22.5.3 全速配置描述符 597
22.5.4 字符串描述符 598
22.6 下载固件程序 599
22.7 驱动程序设计 603
22.8 主机程序设计 606
22.8.1 建立工程 606
22.8.2 用户界面设计 609
22.8.3 程序代码设计 610
22.8.4 编译执行 612
22.9 小结 613
第23章 USB接口LCD液晶显示实例 614
23.1 液晶显示模块概述 614
23.1.1 液晶显示模块的分类 614
23.1.2 液晶显示模块的特点 616
23.2 液晶显示控制驱动器 616
23.2.1 液晶显示控制驱动器概述 617
23.2.2 液晶显示控制驱动器功能 617
23.3 液晶显示控制器指令集 620
23.3.1 基本指令集 620
23.3.2 扩充指令集 623
23.3.3 控制器指令操作方式 625
23.4 液晶显示电路原理图 627
23.5 固件程序设计 630
23.5.1 建立USB项目 630
23.5.2 主程序文件 631
23.5.3 请求响应函数 633
23.5.4 初始化子程序 639
23.5.5 液晶汉字显示子程序 639
23.5.6 点阵图形型液晶控制子函数 640
23.5.7 USB描述符 644
23.6 驱动程序设计 648
23.7 主机程序设计 650
23.7.1 建立工程 650
23.7.2 用户界面设计 652
23.7.3 程序代码设计 653
23.8 小结 655
第24章 USB控制DA转换输出 656
24.1 D/A转换概述 656
24.1.1 D/A转换原理 656
24.1.2 D/A转换器的类型 657
24.1.3 D/A转换器的性能参数 659
24.2 高速D/A转换芯片AD558 660
24.2.1 AD558简介 660
24.2.2 AD558输出模式 662
24.2.3 AD558的数据锁存 664
24.3 电路原理图 665
24.4 固件程序设计 666
24.4.1 建立USB项目 666
24.4.2 主程序文件 668
24.4.3 请求响应函数 670
24.4.4 D/A转换子函数 675
24.4.5 USB设备配置描述符 676
24.5 驱动程序设计 681
24.6 主机程序设计 683
24.6.1 建立工程 683
24.6.2 用户界面设计 685
24.6.3 程序代码设计 686
24.7 小结 691
第25章 USB控制AD转换数据 692
25.1 A/D转换器概述 692
25.1.1 A/D转换原理 692
25.1.2 A/D转换器的技术参数 695
25.1.3 A/D转换器的选择原则 696
25.2 8通道电压型A/D转换器MAX197 697
25.2.1 MAX197的引脚接口 697
25.2.2 MAX197的控制字节 699
25.2.3 MAX197的控制时序 701
25.3 USB模拟电压采集实例 702
25.3.1 系统电路原理图 703
25.3.2 稳压电路 704
25.4 USB固件程序设计 705
25.4.1 建立USB项目 705
25.4.2 主函数程序设计 706
25.4.3 设备请求处理 709
25.4.4 A/D转换控制子函数 715
25.4.5 USB描述符 715
25.5 驱动程序设计 720
25.6 上位机程序设计 722
25.6.1 建立项目 723
25.6.2 程序设计 724
25.7 小结 728
第26章 USB读写I2C总线 729
26.1 I2C总线概述 729
26.1.1 I2C总线的工作原理 729
26.1.2 I2C总线的负载能力 730
26.1.3 I2C总线的寻址方式 730
26.1.4 I2C总线数据传输协议 731
26.2 电路原理图 733
26.3 固件程序设计 736
26.3.1 建立USB项目 736
26.3.2 主程序文件 737
26.3.3 请求响应处理 740
26.3.4 EEPROM读写 745
26.3.5 I2C接口子函数 746
26.3.6 USB设备配置描述符 751
26.4 驱动程序设计 756
26.5 主程序设计 759
26.5.1 建立工程 759
26.5.2 用户界面设计 761
26.5.3 程序代码设计 762
26.6 小结 764
第27章 USB读写Microware串行总线 765
27.1 Microware串行总线概述 765
27.2 Microware串行总线接口的EEPROM存储器 766
27.2.1 Microware串行总线接口EEPROM概述 766
27.2.2 Microware串行总线接口EEPROM的指令 767
27.2.3 Microware串行总线接口EEPROM的指令时序 768
27.3 电路原理图 771
27.4 固件程序设计 772
27.4.1 建立USB项目 772
27.4.2 主程序文件 774
27.4.3 请求响应函数 776
27.4.4 Microware读写子函数 781
27.4.5 三线制Microware串行总线读写子函数 781
27.4.6 USB设备配置描述符 785
27.5 驱动程序设计 790
27.6 主程序设计 792
27.6.1 建立工程 792
27.6.2 用户界面设计 794
27.6.3 程序代码设计 796
27.7 小结 798
第28章 USB控制实时时钟芯片 800
28.1 实时时钟芯片DS1302概述 800
28.1.1 实时时钟芯片DS1302概述 800
28.1.2 实时时钟芯片DS1302命令字节 801
28.1.3 实时时钟芯片DS1302数据格式 801
28.1.4 实时时钟芯片DS1302数据传输方式 804
28.2 电路原理图 805
28.3 固件程序设计 806
28.3.1 建立USB项目 806
28.3.2 主程序文件 807
28.3.3 请求响应处理 811
28.3.4 实时时钟操作 816
28.3.5 DS1302控制子函数 817
28.3.6 USB设备配置描述符 821
28.4 驱动程序设计 826
28.5 上位机程序设计 828
28.5.1 建立工程 828
28.5.2 用户界面设计 829
28.5.3 程序代码设计 831
28.6 小结 833
第29章 USB采集单总线温度传感器 834
29.1 单总线概述 834
29.2 单总线温度传感器DS18S20 835
29.2.1 温度传感器DS18S20概述 835
29.2.2 DS18S20的供电方式 836
29.2.3 DS18S20的数据操作 837
29.2.4 DS18S20的温度转换操作 839
29.3 电路原理图 840
29.4 固件程序设计 841
29.4.1 建立USB项目 842
29.4.2 主程序文件 843
29.4.3 请求响应处理 845
29.4.4 读取温度操作 850
29.4.5 DS18S20控制子函数 851
29.4.6 USB设备配置描述符 853
29.5 驱动程序设计 858
29.6 上位机程序设计 860
29.6.1 建立工程 861
29.6.2 用户界面设计 862
29.6.3 程序代码设计 863
29.7 小结 866
第30章 基于Slave FIFO模式的USB数据采集 867
30.1 Slave FIFO模式简介 867
30.1.1 Slave FIFO模式接口配置 868
30.1.2 典型的数据传输 874
30.2 Slave FIFO模式程序设计 883
30.2.1 Slave FIFO程序设计基本概念 884
30.2.2 Slave FIFO模式寄存器介绍 885
30.2.3 Slave FIFO工作模式一:Auto In模式 898
30.2.3 Slave FIFO工作模式二: Auto Out模式 900
29.2.3 Slave FIFO工作模式三:CPU访问OUT数据包 901
29.2.4 Slave FIFO工作模式四:CPU访问IN数据包 903
30.3 Slave FIFO模式数据采集实例 904
30.3.1 电路设计 905
30.3.2 USB固件程序设计 906
30.3.3 驱动程序设计 915
30.3.4 上位机程序设计 918
30.3.5 程序运行 925
30.4 小结 925
第31章 LabVIEW平台USB开发实例 926
31.1 电路原理图 926
31.2 固件程序设计 927
31.2.1 建立USB项目 928
31.2.2 主程序文件 929
31.2.3 请求响应函数 931
31.2.4 初始化子函数 936
31.2.5 自定义请求子函数 936
31.2.6 块传输处理 937
31.2.7 USB设备配置描述符 938
31.3 LabVIEW程序设计 943
31.3.1 USB驱动程序 943
31.3.2 VISA Interactive Control测试 946
31.3.3 前面板程序设计 951
31.3.4 程序框图设计 951
31.4 运行LabVIEW程序测试 952
31.5 小结 953
第32章 USB接口逻辑分析仪 954
32.1 Saleae Logic Analyzer 954
32.2 USBEE AX 959
32.3 小结 964
第33章 USB高速数据采集实例 965
33.1 EZ-USB的GPIF模式 965
33.1.1 GPIF模式简介 965
33.1.2 GPIF的硬件组成 967
33.1.3 GPIF硬件配置 969
33.2 GPIF波形图编辑 969
33.2.1 GPIF寄存器 969
33.2.2 可编程GPIF波形 970
33.2.3 波形图设计工具 970
33.2.4 波形图设计实例 972
33.3 GPIF固件编程 973
33.3.1 单字节读数据传输 973
33.3.2 单字节写数据传输 977
33.3.3 FIFO读数据传输 980
33.3.4 FIFO写数据传输 984
33.4 基于GPIF模式的高速数据采集电路 988
33.4.1 数据采集电路图 988
33.4.2 外部FIFO接口 989
33.5 数据采集波形图编辑 990
33.5.1 接口设计 991
33.5.2 数据读写设计 992
33.5.3 波形描述符文件 992
33.6 固件程序设计 996
33.6.1 USB描述符 997
33.6.2 主程序 1003
33.6.3 功能实现文件 1005
33.6.4 初始化代码 1006
33.6.5 数据传输函数 1007
33.6.6 调度函数 1008
33.6.7 自定义请求 1010
33.7 USB主机程序设计 1012
33.7.1 创建主机程序 1012
33.7.2 界面设计 1014
33.7.3 主机程序初始化 1016
33.7.4 按钮功能实现 1017
33.7.5 线程处理 1021
33.8 小结 1022
第34章 USB HID键盘设计实例 1023
34.1 简易USB HID键盘原理图 1023
34.2 USB HID固件程序开发 1024
34.2.1 建立USB固件程序 1024
34.2.2 键盘描述符 1025
34.2.3 主程序文件 1031
34.2.4 功能实现代码 1033
34.3 设备测试 1036
第35章 Android平台USB接口开发 1037
35.1 Android平台简介 1037
26.1.1 Android开放手机联盟 1037
35.1.2 Android的特性 1038
35.1.3 Android对比其他主流操作系统 1039
35.1.4 Android系统构架 1039
35.1.5 Android开发工具 1041
35.3.6 Android程序结构分析 1043
35.2 Android的USB接口 1046
35.2.1 Android USB接口模式 1046
35.2.2 USB附件模式 1047
35.2.3 USB主机模式 1050
35.2.4 调试注意事项 1053
35.3 USB硬件电路设计 1053
35.4 固件程序设计 1055
31.4.1 建立USB项目 1056
31.4.2 主程序文件 1057
31.4.3 请求响应函数 1059
31.4.4 初始化子函数 1064
31.4.5 自定义请求子函数 1064
31.4.6 USB设备配置描述符 1064
31.4.7 下载固件程序 1069
35.5 Android程序设计 1070
35.5.1 创建项目 1070
35.5.2 界面布局 1074
35.5.3 程序实现 1076
35.5.4 运行结果 1080
35.6 小结 1081
1.6 IFLabs USB2.0全功能核心板展示
本开发板默认顺丰包邮,为您提供最快最优质的快递服务。对于开发板使用过程中的任何疑问,本店提供全程技术支持。
IFLabs致力于打造开发者网购精品,IFLabs坚持名码实价,只售全新原装正品,真实库存,绝不虚假销售,用户核对型号后可以直接拍下,无需费时的沟通即可购得满意的产品。
向您推荐本店明星产品:
(1)最强CY7C68013A核心板开发板套件,超专业USB2.0模块,最全配件开发手册,长期更新支持
(2)独家CY7C68013A-128全功能核心板开发板套件,超专业USB2.0模块,最全配件开发手册,长期更新支持
(3)全网独家PSoC3 CY8C3866AXI-040开发板,无需昂贵的MiniProg3,内置USB BootLoader
(4)最强PSoC3开发板,无需Miniprog3,专业CY8C3866AXI-040核心板
链接:http://item.taobao.com/item.htm?id=45670456873
(5)最强PSoC5LP开发板,无需MiniProg3,专业CY8C5888AXI-LP096核心板
链接:http://item.taobao.com/item.htm?id=45621802396
独家全功能USB2.0开发板,最强CY7C68013A-128核心板,超强资料不断提供更新服务
标签:
原文地址:http://www.cnblogs.com/IFLabs/p/4591260.html