USB控制芯片PDIUSBD12典型应用研究
摘要:该文首先介绍对PDIUSBD12的结构、原理和特性进行了简单介绍,给出了PDIUSBD12与AT89S51连接的电路原理图。以ATMEL单片机和PHILIPS公司的PDIUSBD12构成USB设备控制端,对PDIUSBD12芯片及应用进行研究。
关键词:USB;PDIUSBD12;端点;指令集;单片机
中图分类号:TN141 文献标识码:A文章编号:1009-3044(2009)25-7305-03
Application of USB Controller Chip PDIUSBD12
LIU Yun-peng, CHEN Yang
(Jiaozuo University, Jiaozuo454003, China)
Abstract: Structure, woking principle and characteristic property of PDIUSBD12 are introduced firstly, and the circuit diagram between PDIUSBD12 and AT89S51 is also described. ATMEL MCU and PHILIPS PDIUSBD12 constitute a USB device control terminal, and application of PDIUSBD12 chip is studied finally.
Key words: USB; PDIUSBD12; endpoint;Instruction collection; monolithic machine
USB总线由于支持即插即用和热拔插,以及速度快、易于扩展、总线供电等优点,目前己成为PC机与外部通信的主流接口,并迅速在自动化测试等许多领域中得到应用,以满足对数据通信更高的要求[1-2]。
USB设备的开发,大体可分为设备端开发和主机端开发两部分。设备端驱动程序是设备端开发的核心,它主要完成设备初始化、USB协议标准请求处理以及其它应用程序等。主机端开发[3-4],主要是在Windows下开发USB设备驱动程序。
设备控制端一般由单片机和USB控制芯片构成。在硬件设计中,要根据硬件系统的性能要求进行器件的选型,还要充分考虑性能价格比以及应用的方便。本文以ATMEL单片机和PHILIPS公司的PDIUSBD12构成USB设备控制端,对PDIUSBD12芯片及应用进行研究。
1 USB控制器PDIUSBD12
目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)或纯粹的USB接口芯片。带USB接口的单片机,但由于价格、开发工具以及单片机性能有限等问题,所以一般不推荐选用。
纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。典型产品有PHILIPS公司的PDIUSBD11(I2C接口),PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构做很大的改动)。PHILIPS公司的PDIUSBD12具有独特优点,常在USB接口系统中选用。
1.1 PDIUSBD12的特点
PDIUSBD12是一款性价比很高、符合通用串行总线(USB)1.1版规范的USB接口器件,它通常用在微控制器系统中实现微控制器与PC机进行通信的高速通用并行接口。它还支持本地的DMA传输。这种USB控制器使得设计者可以选择最合适的微控制器,从而使开发更具灵活性,减少了开发周期、风险及费用,进而为USB外设的实现提供了一种最快捷的解决方案。
除此之外,PDIUSBD12器件还具有以下特性:
1) 高性能USB接口器件,集成了SIE,FIFO存储器、收发器以及电压调整器;
2) 符合大多数器件的分类规格;
3) 可与任何外部微控制器/微处理实现高速并行接口(2M字节/秒);
4) 完全自治的直接内存存取(DMA)操作;集成320字节多结构FIFO存储器;
5) 主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;
6) 在批量模式和同步模式下均可实现1 M字节/秒的数据传输速率;具有良好EMI特性的总线供电能力;
7) PDIUSBD12所具有的低功耗挂起连同LazyClock输出可以满足使用ACPI、OnNOW和USB电源管理的要求,低的操作功耗还使总线供电于外设成为可能;
8) 可通过软件控制与USB的连接;
9) 采用GoodLink技术的连接指示器,在通讯时使LED闪烁;
10) 可编程的时钟频率输出;
11) 双电源操作3.3 ±0.3 V或扩展的5V电源,范围为3.6V~5.5V;
12) 多中断模式,支持批量和同步传输。
1.2 PDIUSBD12的管脚配置
PDIUSBD12的管脚排列如图1所示,其管脚说明如表1所列。
1.3 PDIUSBD12的内部结构与功能
PDIUSBD 12的功能框图如图2所示,其功能和相关说明如下。
图2PDIUSBD12功能框图
1) 模拟收发器:
集成的模拟收发器接口可通过终端电阻直接与USB电缆相连。
2) 电压调整器
片内集成了一个3.3V的调整器用于模拟收发器的供电。该电压还作为输出连接到1.5K?的内部上拉电阻。可选择PDIUSBD12提供的带1.5KΩ内部上拉电阻的软件连接技术。
3) PLL
片内集成了6M到48M的时钟乘法PLL,因此可使用6M晶振,既降低成本,又降低EMI。
4) 位时钟恢复
位时钟恢复电路使用4X过采样规则,从进入的USB数据流中恢复时钟。它能跟踪USB规定范围内的抖动和频漂。
5) PHILIPS串行接口引擎(PSIE)
PHILIPS SIE实现了全部的USB协议层,完全由硬件实现而无需固件的参与。该模块的功能包括:同步模式的识别、并行/串行转换、位填充/解除填充、CRC校验/产生、PID校验/产生、地址识别和握手评估/产生等功能。
6) SoftConnectTM
与USB的连接是通过1.5K?的上拉电阻将D+(用于告诉USB器件)置为高实现的。1.5KΩ上拉电阻集成在PDIUSBD12片内,默认状态下不与VCC相连。连接的建立通过外部系统微控制器发送命令来实现。这就允许系统微控制器在决定与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。
PDIUSBD12在连接可以建立之前会检测USB VBUS是否可用。VBUS可通过EOT_N管脚进行检测。
7) GoodLinkTM
GoodLinkTM技术可提供良好的USB连接指示。在枚举中,LED指示根据通信的状况间歇闪烁。当PDIUSBD12成功的枚举和配置后,LED指示将一直点亮。随后与PDIUSBD12之间成功的传输(带应答)将关闭LED,处于挂起状态时,LED将会关闭。
8)存储器管理单元(MMU)和集成RAM
在以12Mb/s的速率传输并与微控制器并口相连时,MMU和集成RAM作为USB之向速度差异的缓冲区。这就允许微控制器以它自己的速率对USB信息包进行读写。
9)并行和DMA接口
PDIUSBD12对于微控制器而言,看起来就象一个带有8位数据总线和一个地址位的存储器件。PDIUSBD12支持多路复用和非复用的地址和数据总线。还支持主端点(端点2)和本地共享RAM之间直接读取的DMA传输。支持单周期和突发模式的DMA传输,且可以和对其他端点的正常I/O操作交叉进行。DMA操作中的自动指针处理,在跨过缓冲区边界时无需本地CPU的干预。
1.4 PDIUSBD12的端点和指令集
PDIUSBD12的端点适用于不同类型的设备,如图像、打印机、海量存储器和通信设备。PDIUSBD12支持3个端点,其中主端点最多能保存128B,自动切换的双缓冲结构允许保存256B,允许USB和本地CPU之间的并行读写操作,这既增加了数据的吞吐量,也导致了缓冲区操作的透明性。
PDIUSBD12主端点可通过“SET MODE”命令配置为模式0~3四种不同的模式。模式0 ( NON-ISO模式)为非同步传输。模式1 ( ISO-OUT模式)为同步输出传输。模式2(ISO-IN模式)为同步输入传输。模式3(ISO-IO模式)为同步输入输出传输。
PDIUSBD12有自己的指令集,用于管理USB总线事务,这些指令在微处理器控制下执行,可以分为三类:初始化、数据流和通用命令。模式配置和指令集在此不作详述。
2PDIUSBD12的典型连接
PDIUSBD12与单片机的接口有两种方式:多路地址/数据总线配置方式和单独地址/数据总线配置方式。当PDIUSBD12接收到主机的有效信息时,会产生一个中断通知单片机进行处理。
在多路地址/数据总线配置方式中使用了单片机的INT、ALE、WR、RD和P0口,PDIUSBD12在ALE下降沿的时候对单片机的输出地址进行锁存。在这种方式中单片机使用MOVX指令就可以对PDIUSBD12进行数据操作了。倘若输出地址为奇数表示对PDIUSBD12发送指令,输出的地址为偶数时则表示对PDIUSBD12进行数据传输。在我们的实际应用中,USB接口系统采用的就是多路地址/数据总线接口方式。
在USB接口电路的设计中,PDIUSBD12完成所有的USB传输功能,与PDIUSBD12相连的是微处理器AT89S51,微处理器底层应用程序完成USB总线枚举过程、PDIUSBD12的中断访问过程、电源管理功能和USB协议层的功能。USB控制芯片PDIUSBD12有能与微控制器接口的8位并行数据总线。基于PIUSBD12的USB接口电路原理图如图3。
PDIUSBD12具有内置的上电复位电路。所以RESET_ N脚可以直接连到Vcc。但是如果静电放电足够大,会导致PDIUSBD12进入不确定状态。为了避免这种状态出现,在这使用外部控制源(AT89S51)提供PDIUSBD12的复位信号。而不是将RESET_N脚直接连到Vcc。另外有个好处就是复位变得容易,在PDIUSBD12在数据传输请求时可随时复位。
3 结束语
本文讨论了USB核心芯片PDIUSBD12的特性,给出了PDIUSBD12与AT89S51连接的电路图, 可以看出PDIUSBD12控制器为USB外设的实现提供了一种最快捷的解决方案,可以使设计者选择最合适的微控制器,从而使开发更加灵活,缩短了开发周期、降低了风险和开发费用。本文对USB协议、软件设计以及USB外设的固件编程没有做更深入的探讨。
参考文献:
[1] 武安河.Windows 2000/XP WDM设备驱动程序开发[M] .北京:电子工业出版社,2003:284-325.
[2] 周涛,张辉.采用PDlUSBU12的USB系统固件程序设计[J].电子技术应用[J].2003 29(5):70-72.
[3] 陈军波.USB接口芯片PDIUSBD12及应用[J].国外电子元器件,2002,11:47-49.
[4] 万利峰.基于PDIUSBD12的USB数据采集系统的设计[J].微计算机信息,2006,22(5-1):110-111.