USB数据采集技术
2009-02-27
作者:美国国家仪器
概览
Serges Lemo,NI全球数据采集产品市场工程师朱君, NI中国技术市场部经理
简介
近几年来,USB已经从用于鼠标、键盘和其它电脑配件的简单低速外设总线,发展为一种能够满足高要求应用方案的总线选择,这其中就包括了数据采集(data acquisition,简称DAQ)应用。一份最近由Sensors杂志做的网上调查显示,相比于其它总线,工程师们更倾向于在他们的下一个数据采集应用中使用USB总线。
随着USB总线的广泛应用,许多数据采集公司都开始致力于缩小USB与诸如PCI和PXI等嵌入式DAQ设备间的性能差距。NI公司刚刚发布的CompactDAQ平台就是一个例证。CompactDAQ平台采用模块化的设计,使得工程师们可以灵活地选择不同的模块来构建他们的测试系统,并满足他们的测试需求。通过将高速USB标准、全新半导体技术,以及NI灵活、高效的软件平台和专利的信号流技术相结合,CompactDAQ平台不但具有卓越的性能,并且简单易用,使其成为便携式测试和控制应用的理想选择。
在评价USB数据采集设备性能的时候,需要着重考虑两种主要的性能表现:一是把采集到的大量缓冲数据传输到PC机的存储器中的能力,二是对于较低速物理过程实施单点控制的能力。下文将主要阐述NI的专利技术如何达到这些性能要求,并且还将给出应用实例来介绍如何发挥新型NI CompactDAQ平台在高性能和易用性方面的优势。
信号流技术(Signal-streaming Technology)
NI公司专利的信号流技术通过下列方法,来满足上述两项任务的性能要求:
l 把部分驱动程序下移到设备级,以尽可能减少USB总线上的控制通信流量。
l 在设备内部实现数据采集和USB总线两部分间的DMA传输,以确保主机可以随时调用所需数据。
这种新型的信号流技术最大限度地改善了USB总线的总吞吐量,并且优化了设备对应用程序的响应灵敏度。
USB构架和传输机制:
为了更好的理解这项技术,这里有必要来回顾一下USB总线的传输机制。图1给出了数据采集设备中,USB数据传输的相关部件的高层示意图。
图表1:使用USB电缆来简化电脑与设备间的数据传输
在USB通信中,数据传输总是由USB主机端(由图1结构中的PC机所表示)发起的。应用软件(如NI LabVIEW和NI-DAQmx等)通过将输入/输出请求包(I/O request packets,IRP)排队来请求自设备端的数据传输。这些请求被传递给USB驱动程序,后者把他们分成包。这些包被传递给USB主控制器,由其发送给设备。USB主控制器是用于控制PC机的USB总线通信的硬件。每传输一个包,就要在PC机与设备间进行一次交互。图2显示了USB输入和输出交互实例。
图2USB主机端通过输入令牌后接数据和握手包来发起交互
在每次交互中,主控制器以令牌包为开始发起数据传输。这个令牌包提供了目标设备的地址、数据的流向和设备上特定的数据源地址。这个特定的数据源被称为USB终端。在数据采集设备中,USB终端包括模拟信号输入、模拟信号输出和数字信号输入。在令牌包后面,如果数据是可用的,那么设备会响应并发送数据包,最后主机发送一个握手包来结束交互。
当交互由于传输错误、数据无法获取或者设备没有准备好而失败时,主机会把此次交互重新安排到下一个可用的时间段。这些重新安排要尽量减到最小限度,因为他们可能会造成严重的数据传输延时。NI公司的信号流技术在设备的数据采集和USB总线部分之间实现了高速数据通道,将这些重试的发生次数减小到最低限度。
信号流综述:
按照惯例来说,设备上的控制器负责处理数据采集或者输入/输出端部分与USB接口间的数据传输。这种传统的中断驱动式方法会导致了主要的延时,并且会降低响应灵敏性和设备性能。NI公司的信号流技术使用设备上连接USB接口和数据采集接口的DMA通道来进行传输,以取代传统的方法(如图3所示)。
图3 每一个数据采集I/O端口的DMA通道都会以高吞吐量与USB接口终端间进行数据收发。
图中的每个数据采集I/O端口的DMA通道都表示一个特定的数据采集功能(例如模拟信号输入),并且被映射为USB接口相对应的终端上。通过这种映射,每一个DAQ I/O端口通道直接从对应的USB终端缓存收发数据流,而不涉及与控制器的交互。这种传输机制保证了一旦数据有效,会立即在USB总线上得到收发,同时设备对于主机端的数据请求响应数量会达到最大限度。
根据USB协议,USB终端是独立进行工作的,所以在设备上实现的DMA映射,实际上就是在USB 总线上为设备上的6条高速信号通道提供不同的数据采集功能。利用这项技术的设备,诸如NI公司M系列多功能USB数据采集设备,可以在USB总线上获得高达16MS/s的吞吐量。
最小的采集建立时间:
这项技术的另一条重要性能是它的底层软件,它智能化地把设备上的非数据型USB总线通信降低到最小。设备上有专门电路来接收从主机发出的函数调用,并且进行诸如写寄存器等的系统配置操作。通过这个额外的特性,主机可以发出一个函数并且把写寄存器的操作留给设备去完成,以尽可能减少USB总线上的非数据传输。
在单点式采集应用中,采集每个点都需要大量的建立时间——比如建立控制寄存器。按照惯例,主机通过USB总线对所有的建立进行控制,这样就使得建立时间变长。现在通过这种全新的信号流技术,设备上的控制器可以通过配置设备来进行单点式数据采集,而同时主机再也不需要通过从USB总线发送命令来设定每个寄存器。最近的测试表明,利用信号流技术,设备单点式采集的速率性能大幅度提高,增加可高达1600%。
表格1NI公司信号流技术对于单点式采集性能的改进
NI公司的信号流技术对USB设备的响应灵敏度也进行了改善。按照惯例来说,对于点数一定的采集集合来说,比如10000点,那么在采集到10000个点之前,用户不能访问到数据集的任何一个子集。利用信号流技术,设备采集到数据即可实现发送。每个信号流又配有一个标志寄存器来告诉设备需要发送多少子集采样点。当达到那个数目之后,可用的采样点被发送给主机端应用程序并且传输中止。同时,在主机端,另一项传输任务被制定以获取其余的采样点。比如,如果需要10000个采样点,并且要求即刻获取第一个采样点,那么用户可以把标志寄存器设为1,那么采集到的第一个采样点就被发送出来,并终止10000个采样点的传输。同时,另一个传输任务被制定来获得其余的9999的采样点。
NI公司的数据流技术同时运用软硬件以显著地改善USB总线的吞吐量和数据采集的响应灵敏度。使用这种新技术,高性能、高速度的数据采集设备,诸如新型的USB M型和新型的NI CompactDAQ平台,可以以高达3.2MS/s的速度进行采样。