前言

USB是一种新型的计算机总线接口技术,其全称为Universal Serial Bus(通用串行总线)。目前,在消费电子产品以及智能测控等领域,USB接口得到了广泛的应用。USB接口使得计算机和外部设备的连接十分方便,例如USB鼠标、USB键盘、USB摄像头、USB移动硬盘、USB打印机等。在实际设计工作中,也越来越多地采用USB技术,例如USB接口控制、高速USB数据采集等。目前USB接口大有取代其他老式接口的趋势。因此,掌握USB接口的设计开发是非常必要的。

为了便于广大电子设计者能够掌握USB接口的知识,并快速开展基于USB接口的设计开发,本书详细介绍了新型USB总线接口的协议、工作原理、驱动程序开发、固件程序设计和上位机程序设计。另外,本书还以丰富的实例,全面详细地介绍了在各种应用场合下USB的设计实例。学完本书后,读者可以全面地掌握USB接口的设计开发。

和其他书籍相比,本书具有如下优点

1.知识点丰富全面

为了便于读者全面掌握USB总线接口技术,本书涉及USB总线技术接口协议、USB事务处理、USB数据传输类型、各类USB描述符及设备请求,同时还介绍了各种平台下的USB驱动程序开发和上位机编程。通过本书,读者可以完整掌握不同平台下USB设备的开发。

2.内容新颖

USB接口技术发展非常迅速,现在已经推出了全新的超高速USB 3.0接口技术协议。本章在介绍常规的USB接口协议和开发时,还介绍了当前最新的USB 3.0总线接口技术。同时,在USB接口开发和应用方面,针对近年来全新的LabVIEW平台USB接口开发以及嵌入式Android操作系统下的USB接口开发进行了介绍。这些内容都是近年来USB接口的全新应用点,十分具有前沿性。

3.遵循开发流程

由于USB开发涉及不同的领域,所以为了便于读者学习,本书按照开发流程和学习顺序,严格划分章节。通过USB总线技术接口协议、USB驱动程序开发、USB编程基础和USB开发实战4章的内容,逐步带领读者深入USB接口开发。同时,在每一章中,采用由浅入深的方式,逐步展开各个知识点的讲解。

4.实例完整详细

对于读者来说,完整详细的实例可以帮助读者理解和掌握USB接口的开发。本章对于每一个应用实例都详细介绍了开发基础知识,并提供了完整的电路原理图、驱动程序设计、固件程序和上位机程序。读者可以将本书实例直接应用于实际工作中。对于需要改进的实例,也只需要简单修改,就可以投入使用。

5.开发代码讲解注释详细

本书在每一个USB设计实例中,对程序代码进行了比较详细的注释和讲解,从而帮助读者理解程序代码的功能,加速USB设计学习的进度。

6.多平台开发模式

随着技术的不断进步和发展,USB 接口的开发可以采用多种方式。本书摆脱传统的单一平台设计模式,全面介绍了DriverStudio、Visual C++、Visual C#、LabVIEW和Android平台下的USB接口开发。读者可以更为全面地掌握USB接口开发,为日后的设计工作提供更多思路。

本书的内容

本书以全面性、实用性、系统性、完整性和前沿性为导向,详细介绍了USB总线技术接口开发的全过程。本书分为4部分,共26章内容。

第1部分是USB总线接口技术基础,共分为8章。详细介绍了USB接口技术、USB事务处理、USB数据传输类型、各类USB设备配置以及常用的USB接口芯片。

第1章为USB技术概述,介绍了USB总线技术的产生、USB接口类型以及USB总线版本,同时还对USB总线结构以及其他相关计算机接口进行了介绍对比。最后,给出了USB设备开发的基本流程。

第2章为USB电源管理,介绍了USB接口的供电方式,并重点介绍了典型USB接口的电源设计以及USB电源管理方式。

第3章为USB事务处理,介绍了USB事务处理的各个阶段以及7种典型的USB事务处理,这是USB接口协议的底层基础。

第4章为USB数据传输类型,详细介绍了USB接口的块传输、中断传输、控制传输和同步传输4种传输类型,并针对全新的USB 3.0介绍了传输方式的改变。

第5章为USB设备配置,对USB功能设备的描述符进行了全面的介绍,并详细讲解了USB设备请求。

第6章为USB集线器配置,详细介绍了USB集线器的描述符以及集线器设备请求。

第7章为USB HID设备配置,详细介绍了USB HID类设备的描述符以及USB HID设备请求。

第8章为常用的USB芯片,介绍了几种常用的通用USB接口芯片和专用USB接口芯片,这些内容是USB接口开发的基础,在实际开发过程中会经常用到。最后,还介绍了USB接口在PCB设计上的注意事项。

第2部分是USB驱动程序设计,共分为3章。详细介绍了USB驱动程序的概述,以及采用DriverStudio、通用驱动程序和LabVIEW平台下的USB驱动程序开发。

第9章为USB驱动程序,介绍了Windows平台的WDM驱动程序框架,并介绍了DriverStudio驱动开发工具。

第10章为通用驱动程序解析,详细讲解了驱动程序的INF文件结构,并介绍了Cypress通用驱动程序和微软通用USB驱动程序WinUSB。

第11章为LabVIEW平台的USB驱动程序开发,详细讲解了NI LabVIEW平台及NI-VISA平台,介绍了如何使用NI-VISA来创建LabVIEW平台的USB驱动程序。

第3部分是USB编程基础,共分为4章。详细介绍了在DriverStudio、Visual C++、Visual C#和LabVIEW平台下如何实现USB设备编程。

第12章为基于DriverStudio的USB设备编程基础,介绍了DriverStudio提供的上位机USB开发库函数及其应用。

第13章为基于Visual C++的USB设备编程基础,介绍了Cypress的USB接口开发库函数CyAPI的应用。

第14章为基于Visual C#的USB设备编程基础,介绍了Cypress提供的.net平台USB开发库函数及其应用。

第15章为基于LabVIEW的USB设备编程基础,介绍了在NI LabVIEW平台下使用VISA函数如何读写和控制USB设备。

第4部分是USB开发实战,共分为11章。详细介绍了在各个应用场合的USB接口开发,提供了完整的电路原理图、驱动程序、固件程序和上位机程序。

第16章为EZ-USB FX2LP固件设计,详细讲解了Cypress固件开发工具,并通过实例介绍了USB接口固件设计和调试方法。

第17章为USB控制数码管显示实例,详细讲解了USB接口的控制端点0及其请求,并使用EZ-USB FX2LP的IO端口来实现对数码管的控制。实例中提供了完整的电路原理图、固件程序和上位机程序。

第18章为使用EEPROM列举USB设备,详细讲解了EZ-USB FX2LP的EEPROM启动模式,并通过一个实例介绍了如何实现自定义USB设备的启动。实例中提供了完整的电路原理图、驱动程序、固件程序和上位机程序。

第19章为基于Slave FIFO模式的USB数据采集,详细介绍了EZ-USB FX2LP的Salve FIFO接口模式及其程序设计,并通过一个实例介绍了如何实现高速数据采集。实例中提供了完整的电路原理图、驱动程序、固件程序和上位机程序。

第20章为PSoC USB设计实例,本章采用PSoC 3系列USB接口芯片,介绍了使用PSoC Creator设计USB固件程序的方式、驱动程序和上位机程序设计。实例中提供了完整的电路原理图、驱动程序、固件程序和上位机程序。

第21章为USB控制DA输出实例,详细讲解了D/A转换器的工作原理,并使用PSoC芯片内部集成的 D/A 转换器来实现特定信号的输出。实例中提供了完整的电路原理图、驱动程序、固件程序和上位机程序。

第22章为USB控制A/D转换实例,详细讲解了A/D转换的工作原理,并通过一个高性能的8通道A/D转换器MAX1300来采集外部的多路模拟信号。实例中提供了完整的电路原理图、驱动程序、固件程序和上位机程序。

第23章为USB集线器开发实例,详细介绍了USB Hub芯片CY7C65642,并依此设计了一个4端口USB 2.0高速集线器。实例中提供了完整的电路原理图。

第24章为 U 盘设计实例,详细讲解了 U 盘存储芯片的操作方式以及 Nand-Flash 控制器CY7C68024,并依此设计了一个U盘。实例中提供了完整的电路原理图。

第25章为 USB 接口控制示波器实例,介绍了示波器及示波器的编程接口,并通过两个实例介绍了如何实现USB接口示波器的控制。实例中提供了上位机程序。

第26章为Android平台USB接口开发,详细讲解了Android操作系统开发平台以及Android的USB接口模式,并通过一个完整实例介绍了如何编写Android手机的USB控制程序。实例中提供了完整的电路原理图、固件程序和上位机程序。

本书由重庆电子工程职业学院的郑杰老师编著,本书知识点覆盖全面、结构安排紧凑、讲解详细、实例丰富、图文并茂。由于本书内容较多,编写时间比较仓促,书中如有遗漏或不足之处,恳请广大读者提出宝贵意见,以便于进一步改进。

请访问www.broadview.com.cn\21296下载相关资源。

适合的读者

◆ USB接口初学者。

◆ 具有一定开发经验的USB设计人员。

◆ 电子设计爱好者。

◆ 电子工程师。

◆ 系统开发人员。

◆ 大学、大专等相关专业的学生及教师。

◆ 硬件开发培训班。

编者

2013年6月