基于USB总线接口的控制系统设计
2012-08-10杨翠军
朱 静,钱 敏,杨翠军
(苏州大学 电子信息学院微电子系,江苏 苏州 215006)
0 引言
通用串行总线是一种高效、快速、双向和支持热插拔的新型接口,可实现 PC机与外设的通信。同时,它使用了一种易于扩展的结构,理论上可接127个设备[1]。当前,越来越多的电子产品中都会涉及到USB接口。因此,对基于USB接口的通信系统的研究是非常必要的。目前USB3.0协议已经制定并将大行其道。
基于USB接口设计了符合USB1.1协议的控制系统。整个系统通过 PC机的应用程序界面控制操作,USB接口负责单片机与PC机的通信。总体设计方案为:选用 Atmel公司的 MCU芯片STC89C52RC和Philips公司的USB控制接口芯片PD12,进行系统的硬件设计和软件编程。硬件设计主要是 PD12与单片机间的接口电路及外围电路单元(如LCD、按键),软件分为3部分:①固件,控制PD12识别USB数据流、输入输出等;②USB功能设备驱动程序,介于硬件和应用软件之间,提供桥梁作用;③客户应用程序,完成顶层软件对底层硬件的控制。
1 USB协议及PD12简介
USB是一种数据传输总线协议。首先,USB系统被定义为3部分: ①USB的连接;②USB的主机;③USB的设备。主机在USB通信中居于核心地位,它与USB设备的通信模型如图1所示。主机和设备都被划分成不同的层次[2],每个层次的实现对USB有不同的要求。

图1 USB通信模型之间的基本信息流
USB数据流是协议中的重点内容。从逻辑上讲,USB数据的传输是通过虚拟管道进行的。实际上,主机与设备的通信过程如下:设备驱动程序首先调用USB驱动接口(USB Driver Interface)发出I/O请求(IRP, I/O Request Packet);USB驱动程序收到该请求后,调用主控制器接口,将IRP转化为USB的基本传输;……
