基于PDIUSBD12的USB数据采集系统的设计
1引 言
随着计算机微处理器芯片性能的高速发展,计算机逐渐在各种领域中广泛使用,但随之而来的问题是计算机本身软硬件资源的严重不足。为节省计算机的软硬件资源,USB接口应运而生。
USB在诞生之初便面对许多已趋成熟
的计算机接口的挑战,这既要求它有对于其他接口的明显优势,并不断完善,才可能被广大用户接受。表1[1]是USB和其他常见总线在几个参数上的比较。
表1 USB及其他常用总线的比较
USB的优势特点:
(1)速度快。高速模式速率为12Mbps,低速模式速率也可达到1.5Mbps。USB2.0理论上传输率可以达到480Mbps。
(2)安装配置容易。USB设备支持即插即用,支持热拔插。系统对其进行自动配置,不占用中断资源或者DMA资源。USB为接缆和连接头提供了单一模型,解决了插槽紧张问题。
(3)易于扩展。用USB连接的外围设备数目最多达127个,通过集线器可以使外设距离达到12米。
(4)总线供电。USB总线提供最大达5V,500mA电流,对于功耗较小的设备来说这是非常有效的。
(5)使用灵活。USB共有4种传输模式以适应不同设备的需要。
(6)价格便宜。实现USB功能的模块具有低廉的价格。
2 接口芯片PDIUSBD12[2]介绍
PDIUSBD12是Philips公司推出的一种并行接口芯片,它支持多路复用、非多路复用和DMA并行传输。芯片遵循协议USB1.1,支持不同用途的传输类型。PDIUSBD12需要外接微控制器(MCU)来进行协议处理和数据交换,它对MCU没有特殊的要求,因此设计者可以选择适合类型的MCU对芯片进行控制,也可以利用Philips公司的固件结构来做开发。
图1 PDIUSBD12内部结构
PIDUSBD12内部含有集成收发器接口,可通过端口电阻直接连接到USB通信电缆。PDIUSBD12片内集成有3.3V调节器,可给收发器提供电源。该电压可以外接1.5kΩ的上拉电阻作为输出,也可以连接内部集成的1.5kΩ的上拉电阻作为SoftConnectTM的内部电源;由于片内集成了6~48MHz 倍频PLL,因此只需外接低频晶振就可工作,EMI会相应降低。
位时钟恢复电路将时钟从USB数据流中恢复出来,还可以对频率漂移和信号抖动进行跟踪。
SIE(串行接口引擎)能完整地执行USB协议,它已经被完全固化在芯片内部,因此不需要任何固件干涉。这一部分包括同步识别、并行/串行转换、CRC检测/产生、PID确认/产生、地址识别以及握手评定/产生。
SoftConnect(软连接)可通过MCU将指令发到D+(全速设备)来实现。PDIUSBD12的初始化在MCU发命令之前完成。下一次连接无需拔出USB线就可完成。
对MCU来说,PDIUSBD12是一个有8位数据总线和1位地址线的存储设备,它支持地址数据总线复用、非地址数据总线复用以及DMA数据传输方式。
当外设经PDIUSBD12连接到集线器后,集线器就会检测外设的连接状态并向主机报告。一旦发现有设备连接,主机就发送一系列请求给集线器,使得集线器在主机和设备之间建立一个通信通道。然后主机开始列举设备,列举成功后,主机即可从外设获得相关的配置信息对外设进行配置。只有经过配置以后的外设才能被主机识别,并能和主机进行通信。
3 硬 件 设计
此数据采集系统的硬件框图如图2所示。由于USB的协议框架比较大,所以MCU使用带有8kEPROM的89C52。USB接口芯片为 PDIUSBD12。89C52和D12的连接有独立的地址数据总线方式和复用的地址数据总线方式。由于PDIUSBD12既要接受来自89C52的命令又要和89C52进行通信,而他们使用共同的接口D[0…7],所以D12地址的含义是对命令和数据的选择。在第一种方式中,用A0脚表示地址位:A0为 1表示命令,A0为0表示读写的是数据,将它与89C52的一个IO口相连。在发送命令(数据)前先对A0进行置1(0),然后再把命令(数据)的内容送到数据总线上。此时,D12的ALE脚未使用,可直接接地。而我们在此处是使用第二种连接方式,命令和数据使用不同的地址,地址字节中仅LSB位具有实际意义。对偶数地址赋值表示送往D12的是读/写数据,对奇数地址赋值表示往D12写入一个命令。这种接法中,D12的ALE与89C52的ALE相连,ALE的时序关系与89C52跟一般存储器相连相同,在下降沿对地址锁存。此时,A0不使用,应该接高电平。89C52的P0口直接与D12的数据总线相连,作为并行数据和命令传输通道。它的时钟可以直接从D12的CLKOUT接入,而不需要外接晶振。
图2 硬件框图
单片机采集外界模拟量,转换成数字量,再经过PDIUSBD12通过USB接口传送给PC机。这其中主要的难点是89C52和PDIUSBD12之间的通信问题,所以我们把主要精力集中在USB协议这一部分上,重点调通它们之间的通信。
4 软 件 设 计
4.1固件设计[3][4]
USB单片机固件程序通常由三部分组
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)