基于单片机和USB接口技术的高速数据采集系统的设计
文 摘 数据采集系统是结合基于计算机的测量软硬件产品实现灵活的、用户自定义的测量系统。数据采集包括从信号源采集信号,将其数字化,存储分析并传递到个人PC上。通用串行总线(USB)作为一种新的微机总线接口规范.具有便捷、易扩展、低成本、低干扰等特点,非常适合作为主机和外设之间的通信接口。USB为数据采集设备/仪器与PC机之间的连接提供了一个费用低廉且简单易用的方案。本次毕业设计(论文)设计了一种基于USB的高速数据采集系统的硬件及固件PDIUSBD12程序设计方案。 关键字 数据采集系统;USB接口;单片机
1 方案提出的背景
1.1 研究课题的提出
信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。USB设备需要依据USB协议进行数据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以WDM为模型,以DDK为开发工具,以IRP为消息传播载体,来实现与Windows系统底层核心机制向交互的功能。
随着控制系统的日益复杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分必要的。USB技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂商和用户所接受,出现了USB打印机、摄像头等产品。随着PC机日益广泛的应用,其外设也逐日增多,但PC机接口的数量是一定的,这就限制了PC机挂接外设的数量。在很多应用场合,如工业数据采集,常使用采集板卡来完成工作,采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备,而通用串行总线可以很容易的实现高可靠性、多点的数据采集。
1.2 USB接口的主要优点
USB接口主要优点为:
1
(1)速度快。USB接口有高速和低速两种方式,主模式为高速模式,速率为12Mb/s, USB2.0版规范允许480Mb/s的速率传输数据,另外为了适应一些不需要很大吞吐量和很高实时性的设备(如鼠标等),USB还提供低速方式,速率为1.5Mb/s。
(2)设备安装和配置容易。安装USB设备不必打开机箱,加减已安装过的设备不用关闭计算机。所有USB设备支持热插拔,系统对其进行自动配置。
(3)易于扩展。通过使用户HUB扩展可接多达127个外设。标准USB电缆长度为3m(5m低速),通过USB或中继器可以使外设距离达到30m。
(4)使用灵活。USB有控制传输(contronl)、同步传输(synchronization)、中断传输(interrupt)、批量传输(bulk)4种传输模式和2种传输速率,可以适应不同设备的需要。
2 系统的原理及其组成
基于USB的数据采集和控制系统的硬件模块主要是由A/D转换器、D/A转换器、微处理器、USB接口控制芯片、串行口控制芯片、放大器等组成。本数据采集和控制系统是以飞利浦 公司的 PDIUSBD12 作为系统的微控制器,管理和控制整个系统。该芯片集成度高,与51单片机兼容,不同的是片内是8KB的flash内存。 整个数据采集和控制系统的总体结构框图如图1所示:
从结构图中可知,模拟输入信号通过信号处理(放大和滤波)后,输出到A/D转换器,微控制器把经过A/D转换器转换后的数字信号通过USB控制芯片输出给计算机,同时可以在计算机上实现数据的显示和键盘控制;另一方面,经过A/D转换器采集到的数字信号可以通过算法实现控制后,经过D/A转换器输出,进而可以对其它设备进行控制;同时,该系统还可以作为一种USB和串行口的转接卡,通过串行口与USB接口实现数据之间的交互,充分利用了USB的快速性和RS-232远距离的优势,实现了资源优势互补,可以通过该板卡实现数据的远程控制和数据传输,既提高了传输速率,又增加了传输距离。
而USB主机及显示部分则通过输出接口在PC机上显示,采用软件来模拟显示输入信号的波形。同时可以控制A/D转换器的启停、数据存取器的存取、USB外设芯片的工作、显示图形的放大和缩小等。
USB数据传输的硬件结构由以下三部分组成:通用USB控制芯片,微处理器,USB接口。它们构成了一个USB数据传输的最小系统。其功能为:USB收发器负责处理所有与USB总线事务有关的任务,如总线唤醒、数据接受/发送、打包、CRC校验等,但该收发器不负责解释这些数据的意义;微处理
2
器负责处理数据、响应主机请求、以及控制USB收发器的工作;内存负责存储和提供数据。
图1 设计数据采集和控制系统原理图
其中,状态监视器是一个高速的单稳态多频振荡器,用来实现掉电和恢复操作的,当系统连续3ms检测不到主机的请求时,系统就会进入挂起状态;当系统从挂起状态退出以后,状态监控器就产生一个正脉冲以复位/唤醒整个系统。
3 数据采集系统的硬件设计
基于USB的数据采集和控制系统主要利用了A/D转换技术、D/A转换技术和USB技术,是伴随着USB技术的迅速发展与新的数据采集技术的发展而发展起来的。采集到的数据通过主机接口(USB口)发送到上位机并实时显示出来,其波形保真性能与A/D转换器的转换速率、分辨率与精度密切相关。A/D转换速率越高,复现的波形的分辨率也就越高;A/D转换器位数越多,精度越高,波形保真性越高。
在选择一个芯片时,用户一般考虑的是芯片含有的功能、价位、是否容易取得以及是否容易开发等因素。一个芯片是否容易开发与开发工具是否容易取得及其品质,设备的驱动程序,有无示例程序代码,以及对设备结构等的了解而定。下面对本系统中芯片的选择作一个简单的介绍。
3.1 芯片的选择
基于USB的外置式硬件电路的设计核心是USB控制器的选择,在进行一个具体的USB设备开发之前,首先要根据具体要求选择合适的USB控制器,整个USB外围设备的设计将围绕该控制器展开。在选定USB控制器以后,如果是带USB接口的单片机,则是一般单片机应用系统的开发;若是USB外
3
设接口芯片,就是USB外设接口芯片与单片机应用系统的接口问题。一般USB接口芯片都支持多种并行总线结构(复用/非复用),可以方便地与多种单片机连接。
目前,市场上可供选择的USB接口芯片很多,按照功能基本上分为两类:一类是纯粹的USB接口芯片或通用USB外设接口芯片(也称USB设备器件);另一类是带有USB接口芯片的单片机(也称USB主控制器)。
(1)带USB接口的单片机(USB主控制器)
这类芯片主要有Cypress公司的CY7C63xxx/CY7C64xxx系列和EZ-USB, Intel公司的8X930/8x931, Philips公司的ISP 1161 (USB 1.1) / ISP I 561 (USB2.0 ), Scanlogic的SL11R以及Motorola的MC68HC908JB8系列等。这种方案的最大好处在于开发难度较小,因为大多数这样的单片机芯片都是基于8051结构或者其它常见的结构,有自己的精简指令集,与单片机类似,熟悉单片机开发的开发者对系统结构和指令集非常熟悉,但其开发一般需要专用的仿真器,对于简单或低成本系统,价格高将会是最大的障碍。
(2)纯粹的USB外设接口芯片(USB设备器件)
这类芯片主要有NS公司的USBN9602/9603/9604, Scan logic的SUIT以及Philips公司的PDIUSBD11/PDIUSBD12 (USB1.1) /ISP1581 (USB2.0)等。纯粹的USB外设接口芯片仅处理USB总线相关事务,必须有一个外部微处理器来进行协议处理和数据交换。这种方案的主要特点是价格便宜、接口形式多样、可靠性高、灵活性大,尤其适合于产品的改型设计,缺点是开发者需要非常熟悉USB协议,还必须用微处理器来控制USB外设接口芯片的工作。
综合比较,PDIUSBD 12是一款性价比很高的USB器件,可使设计者选择最合适的微控制器,减少开发时间、风险及费用,是最实用最快捷的方法实现最经济的USB外设的方案。该芯片支持一个控制端点以及4个额外的端点地址。一个端点的缓冲区可以储存到128个字节,而双缓冲区可以到256个字节。PDIUSBD 12通常用作微控制器系统中实现与微控制器进行通信的高速通用并千示接口,并支持本地DMA传输。PDIUSBD 12完全符合USB1.1规范,并符合大多数器件的分类规格:成像类、海量存储器件、通信器件、打印设备以及人机接口设备。同样地,PDIUSBD 12还适用于打印机、扫描仪、外部存储设备和数码相机等等。另外,该芯片还集成了许多特性,包括SoftConnect, GoodLink、可编程时钟输出、低频晶振和终止寄存器集合,简化USB功能在外设上的应用。
由于51系列的单片机是应用非常广泛的一种微处理器,在其基础上开发了大量的软件包,对其内部结构和工作原理我们都非常了解,故本系统中我们采用8902进行核心程序的设计来实现其所需的功能。A/D选用我们熟悉而且能满足要求的AD0809。而PDIUSBDI2能够完成将数据信号到符合USB规范的信号的转换。为此,我们利用89C52中丰富的软件资源和USB总线技术即插即用、热插
4
拔特性来完成高速数据采集系统。这样可以降低开发成本,缩短开发周期、降低风险。
3.2 PDIUSBD12的性能特点和内部结构
PDIUSBD12是一款性价比很高的USB器件,通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,它还支持本地的DAM传输。PDI USBD12(以下简称D12)完全符合USB1. 1规范,它具有的低挂起功好耗连同LazyClock输出可以满足使用ACPI, OnNOW和USB电源管理的要求。D12集成了许多新的特性,包括可编程时钟输出、SoftConnet, GoodLink、低频晶振。 (1)可编程时钟输出:不必考虑电路设计时使用高频晶振产生的EMI问题D12的CLKOUT引脚输出时钟信号,可用作MCU时钟,最低4MHZ,最高达48MHZ. D12内部有倍频电路,外部只需6M晶振即可提供D12自身工作时钟(48MHZ)及输出时钟。
(2)软连接(SoftConnet)技术:芯片内集成有1.5 KΩ的USB上拉电阻,连接此电阻将D+置为高设置为高速USB设备。连接的建立通过外部MCU发送命令来实现,这就允许设备在决定与USB总线建立连接之前完成初始化时序。USB总线连接的连接可以重新初始化而不需要拔插USB电缆。 (3)GoodLink技术:可提供良好的USB连接指示。在枚举中,LED指示根据通信情况间歇闪烁。当成功枚举和配置后,LED指示将一直点亮。USB支持两种信号速率。USB的最高速率是12Mb/s,但它可以工作在1. 5Mb/s的较低速率,同一个USB系统可同时支持这两种模式,但1. 15Mb/s低速率方式主要为了降低对速度要求不高的设备的成本,只支持少数像鼠标这样的低带宽要求的设备。 (4)可编程的时钟频率输出:集成320字节多结构FIFO存储器,具体组成如字节数端点0端点1端点320=16(IN)+16(OUT)+16(IN)+16(OUT)+[64(IN)+64(OUT)] * 2(双缓冲)主端点的双缓冲配置增加了数据吞吐量,并轻松实现实时数据传输;
(5)多中断模式实现批量和同步传输。端点可通过Set Mode命令配置为4种不同的模式,分别为: 模式0 Non-ISO模式(非同步传输) 模式1 ISO-OUT模式(同步输出传输) 模式2 ISO-IN模式(同步输入传输) 模式3 ISO-IO模式(同步输入输出传输)
USB电缆可以允许使用不同长度的电缆,最长可达几米。为了提供可靠的输入电压和适当的终端阻抗,在电缆的每一端带偏压的终端。该终端可以发现任一端口上USB设备的“插入”和“拔除”操作,并能区分全速和低速设备。图2指示了高速USB设备在集线器的终端位置及其所连的功能设备,从中可以看出在电缆的下行端的电阻Rpu是接在D+线上的,在低速设备中,Rpu电阻是接在 D-
5