基于89C52单片机和PDIUSBD12芯片实现USB设备
应用程序的设计
嵌入式系统(EmbeddedSystems)被定义为以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它是面向用户、产品和用户的,它具有功耗低、体积小、可靠性高、处理速度快等优点。该嵌入式检测系统采用嵌入式微控制器(microcontrollerunit)为 ,以单片机89C52和Philip公司的单纯的USB接口芯片PDIUSBD12为主要器件,所以该检测系统是一个USB接口设备,而USB接口设备在生活中已经随处可见了,它由三部分组成:具有USB接口的PC系统,能够支持USB的系统软件和使用USB接口的设备。它的提出是基于采用通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目地。它的 显著优点是支持热插拔,当用户插入USB外设后,计算机能够自动识别接入的外设,而不需要重新启动系统。
用户对USB设备的控制是通过应用程序来实现的。但应用程序不能直接访问USB设备,它必须先与驱动程序通信,通过驱动程序来访问USB设备。所以,应用程序的工作是把用户的对设备的请求翻译成相应的控制代码,并将其传递给驱动程序,同时还负责接收从驱动程序返回的数据。为对应用程序的工作原理有一个较深入的了解,下面先总体介绍一下应用程序与USB设备的通信流程。
2、USB总线特性
USB是英文UniversalSerialBus的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的新型接口技术。 那么为什么选用USB呢?因为它具有很多很好的特性。包括: 2.1使用方便
使用USB接口可以连接多个不同的设备,支持热插拔。在软件方面,为USB设计的驱动程序和应用软件可以自动启动,无需用户干预。USB设备也不涉及IRQ冲突等问题,它单独使用自己的保留中断,不会同其它设备争用PC机有限的资源,为用户省去了硬件配置的烦恼。USB设备能真正做到“即插即用”。
2.2速度加快
快速性能是USB技术的突出特点之一。USB接口的 传输率比串口快了整整100倍,也比并口快了十多倍。今后USB的速度还将会不断提高。 2.3连接灵活
USB接口支持多个不同设备的串列连接,一个USB口理论上可以连接127个USB设备。而每个外设间距离(电缆长度)可达5米。USB还能智能识别USB链上外围设备的接入或拆卸。在USB方式下,所有的外设都在机箱外连接,不必打开机箱; 2.4独立供电
普通使用串口、并口的设备都需要单独的供电系统,而USB设备则不需要,因为USB接口提供了内置电源。USB电源能向低压设备提供5V的电源,
因此新的设备就不需要专门的交流电源了,从而降低了这些设备的成本并提高了性价比。 3、通信流程
在应用程序与设备开始通信之前,设备必须先连接在总线上。然后Windows检测该设备,通过设备列举,取得设备的各种描述符。Windows将从该设备所读取的描述符,与它的.inf文件做比较来识别该设备,找出应该使用哪个设备驱动程序来与设备通信,然后载入选定的驱动程序。
接下来应用程序取得一个设备的句柄,此句柄让应用程序识别该设备以及与它通信。设备的句柄是一个惟一的标识符,由Windows指定给每个设备的实例变量。应用程序通过调用带有一个能识别该设备的符号链接的
CreateFileAPI函数,来取得该设备的句柄。该符号链接包含一个全域惟一标识符(globallyuniqueidentifier,GUID)。GUID是一个128位的号码,Windows用来惟一识别一个对象。
当设备已经连接好准备传输数据后,主机就可以开始要求传输。当用户要读取一个数据捕获单位的数据时,他可以按下应用程序的按钮来读取一个读数,或是选择让应用程序每分钟要求一个读数。
在用户请求一个传输之后,应用程序开始与设备通信。它通过API函数来与USB设备沟通。API包含有3个与设备交换数据的函数:ReadFile,WriteFile和DeviceControl。ReadFIle与WriteFile是一般用途的函数,用来读取与写入数据到驱动程序内。读取与写入的数据,是储存在函数所指定的缓冲区内。DeviceIoControl是另一个传输缓冲区数据的函数,它包含一个码用