基于VXI总线的旋翼试验等角度数据采集系统设计

| 收藏本文 下载本文 作者:warai

下面就是小编整理的基于VXI总线的旋翼试验等角度数据采集系统设计(共含10篇),希望大家喜欢。同时,但愿您也能像本文投稿人“warai”一样,积极向本站投稿分享好文章。

基于VXI总线的旋翼试验等角度数据采集系统设计

篇1:基于VXI总线的旋翼试验等角度数据采集系统设计

基于VXI总线的旋翼试验等角度数据采集系统设计

旋翼试验是直升机研制过程中的'重要一环,对于减少研制风险,缩短研制周期起到重要的作用.本文从试验主要参数的性质人手,提出对测试系统的要求,说明了旋翼试验等角度采集的重要性.在分析传统阶次分析方法和计算型阶次分析方法的基础上,利用VXI总线典型产品设计了旋翼试验等角度采集系统.

作 者:李新民 刘正江 LI Xinmin LIU Zhengjian  作者单位:中国直升机设计研究所,旋翼动力学国防科技重点实验室,景德镇,333001 刊 名:直升机技术 英文刊名:HELICOPTER TECHNIQUE 年,卷(期): “”(4) 分类号:V216 关键词:旋翼试验   等角度采集   VXI总线  

篇2:基于USB2.0总线的高速数据采集系统设计

基于USB2.0总线的高速数据采集系统设计

摘要:本文主要介绍支持USB2.0高速传输的EZ-USB FX2单片机CY7C68013,并详细说明用此芯片实现高速数据采集系统和相应的Windows驱动程序及底层固件程序的开发过程。

关键词:CY7C68013  USB2.0  数据采集  固件

1    引言

现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦、价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。

通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。

2    硬件设计

2.1支持USB2.0高速传输的CY7C68013

Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微处理器,它集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。FX2这种独创性结构可使数据传输率达到56Mbytes/s,即USB2.0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。GPIF(General Programmable Interface)和主/从端点FIFO(8位或16位数据总线)为ATA、UTOPIA、EPP、PCMCIA和DSP等提供了简单和无缝连接接口。

CY7C68013的GPIF引擎具有自动传输数据结构的特性,这种特性使得外围设备和主机通过CY7C68013可以无缝的、高速的.传输数据。为了实现高速的数据传输,CY7C68013CPU不会直接参与数据的传输,而是直接利用GPIF的自动传输数据模式。图1和图2说明了主机IN和OUT数据传输过程。

2.1.1 端点缓冲区

FX2包含3个64字节端点缓冲区和4K可配置成不同方式的缓冲,其中3

个64字节的缓冲区为EP0、EP1IN和EP1OUT。EP0作为控制端点用,它是一个双向端点,既可为IN也可为OUT。当需要控制传输数据时,FX2固件读写EP0缓冲区,但是8个

SETUP字节数据不会出现在这64字节EP0端点缓冲区中。EP1IN和EP1OUT使用独立的64字节缓冲区,FX2固件可配置这些端点为BULK、INTERRUPT或ISOCHRONOUS传输方式,这两个端点和EP0

一样只能被固件访问。这一点与大端点缓冲区EP2、EP4、EP6和EP8不同,这四个端点缓冲区主要用来和片上或片外进行高带宽数据传输而无需固件的参与。EP2、EP4、EP6和EP8是高带宽、大缓冲区。它们可被配置成不同的方式来适应带宽的需求。

2.1.2 接口信号

在利用GPIF进行高速数据传输系统设计时,GPIF waveforms的编辑是非常重要的,它控制着整个数据传输过程的读写时序。此时CPU的作用已经非常小了,它只起着下载代码到内部RAM以及在固件中如何触发GPIF waveforms的作用。FX2专门为GPIF提供了外围接口信号,如8位或16位的数据线、控制信号、Ready信号以及地址线。

IFCLK(双向时钟信号):IFCLK是一个参考时钟,可以配置成输入或输出。当配置为输出时,IFCLK被FX2驱动为

30MHz或48MHz;当配置为输入时,时钟范围为5-48MHz。

GPIFADR[8:0](输出):GPIF使用GPIFADR信号为外部设备提供地址线,在总线上地址值是自增的。

FD[15:0](双向):这是USB主机通过FX2和外部设备进行数据传输的数据线,它可配置成8位或16位。当16位时,FD[7:0]代表端点FIFO

中的第一个字节,FD[15:8]代表第二个字节。

CTL[5:0](输出):FX2为外部设备提供了几个控制信号,如读写选通、使能等。

RDY[5:0](输入):FX2提供了几个状态检测信号,它可以检测外部设备的状态,如FIFO的空、满、半满等。

GSTATE[2:0](输出):这是调试信号,表示GPIF波形执行的状态,通常连接到逻辑分析仪上。

2.2   AD9238

AD9238是一个双通道的12位

A/D转换器,采用单3V供电,速度可以是20MSPS、40MSPS和65MSPS;低功耗,工作在20MSPS时,功耗为180mW,40MSPS时,功耗为330mW,65MSPS时,功耗为600mW;具有500MHz 3dB带宽的差分输入;片上参考源及SHA;灵活的模拟输入范围:1Vp-p~2Vp-p;适用于:超声波设备,射频通讯,电池电源仪器,低价示波器等。本系统采用20MSPS的AD9238,可充分发挥USB在高速传输模式下的数据传输优势。

2.3   数据采集系统

该数据采集系统整个框图如图3所示,该系统由以下几部份组成:USB控制器、FIFO、CPLD、AD9238以及数据采集前端电路。

图3 数据采集系统框图

CPLD主要是控制时序,时钟分频等。FIFO主要是起着高速数据缓冲作用,当FIFO半满时,数据开始向USB主机发送。我们采用的是同步FIFO,时钟信号接IFCLK,当FIFO的/RD信号和/OE信号有效时,每个IFCLK上升沿就输出一个数据;当FIFO的/WR信号有效时,IFCLK上升沿就读进一个数据。AD9238的20MHz时钟信号是通过CPLD分频所得。当程序使能AD9238的/OEB_A和/OEB_B信号时,AD9238双通道开始进行数据采集并向FIFO写数据。

系统前端的调理电路采用的是AD公司的AD8138,该放大器具有较宽的模拟带宽(320MHz,-3dB,增益1),而且可以实现将单端输入变成差分输出的功能。此项功能在现代高速模数变换电路中非常有用,因为几乎所有的高速A/D芯片都要求模拟信号为差分输入,虽然部分芯片的手册中提到对于单端输入信号也可使用,但这样一来会使A/D转换结果的二次谐波增大,降低信噪比(SNR)。AD8138很好的解决了这个问题,用户可以很容易的将单端信号转换成差分输出而不必使用变压器,并且它的输入阻抗高达6MΩ,可以直接与输入信号相连而省略隔离放大器,大大精简了电路结构。图4为AD8138的典型应用电路。

图4  AD8138典型应用电路

3

; 软件设计

3.1 Windows驱动程序设计

USB设备驱动程序基于WDM。WDM型驱动程序是内核程序,与标准的Win32用户态程序不同。采用了分层处理的方法。通过它,用户不需要直接与硬件打它道(在USB驱动程序中尤为明显),只需通过下层驱动程序提供的接口号访问硬件。因此,USB设备驱动程序不必具体对硬件编程,所有的USB命令、读写操作通过总线驱动程序转给USB设备。但是,USB设备驱动程序必须定义与外部设备的通讯接口和通讯的数据格式,也必须定义与应用程序的接口。

Cypress公司提供了完整的CY7C68013驱动程序源码、控制面板程序及固件的框架,这大大提高了用户开发的进度。用户只需稍加修改或不需任何修改即可使用所带驱动程序,软件开发者大量的时间主要集中在应用程序和固件的开发。本文所述的数据采集系统驱动程序就在原来的基础上进行了简单的修改来满足我们的需要。根据我们自己的需求,一般只需修改DeviceIoControl例程,如我们主要增加了控制数据传输函数、启动和停止AD、复位FIFO等,即IOCTL_START_AD、IOCTL_STOP_AD、IOCTL_RESET_FIFO。

3.2 底层固件设计

要实现USB2.0的高带宽数据传输,必须使用它特有的GPIF特性,在开发固件前,首先必须根据实际需要对GPIF waveform进行编辑。CY7C68013开发工具中带有一个GPIF Designer,如图5所示,编辑完waveform后,选择Tools->Export to GPIF.c File来输出GPIF.c文件,然后将该文件加入keil c工程进行编译。

由于CY7C68013的EP2、EP4、EP6、EP8四个端点共享4K FIFO缓冲区,所以在该系统中,我们将EP2配置成4K的缓冲区,并设置为IN。用EP1OUT作为AD的控制参数传递,如启动和停止AD数据输出、复位FIFO等。在固件程序中,最重要的就是TD_Init和TD_Poll()两个函数。

图5 GPIF Designer

在TD_Init()中主要完成GPIF相应寄存器的初始化,如下:

void TD_Init(void)             // Called once at startup

{

// set the CPU clock to 48MHz

CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1);

SYNCDELAY;

EP2CFG = 0XE8;     // EP2IN, bulk, size 1024, 4x buffered

SYNCDELAY;

EP4CFG = 0x00;     // EP4 not valid

SYNCDELAY;

EP6CFG = 0x00;     // EP6 not valid

SYNCDELAY;

EP8CFG = 0x00;     // EP8 not valid

SYNCDELAY;

FIFORESET = 0x80;  // set NAKALL bit to NAK all transfers from host

SYNCDELAY;

FIFORESET = 0x02;  // reset EP2 FIFO

SYNCDELAY;

FIFORESET = 0x00;  // clear NAKALL bit to resume normal operation

SYNCDELAY;

EP2FIFOCFG = 0x01; // allow core to see zero to one transition of auto out bit

&

nbsp;SYNCDELAY;

EP2FIFOCFG = 0x11; // auto out mode, disable PKTEND zero length send, word ops

SYNCDELAY;

EP6FIFOCFG = 0x09; // auto in mode, disable PKTEND zero length send, word ops

SYNCDELAY;

GpifInit ; // initialize GPIF registers

SYNCDELAY;

EP2GPIFFLGSEL = 0x02; // For EP2IN, GPIF uses FF flag

SYNCDELAY;

// global flowstate register initializations

FLOWLOGIC = FlowStates[19];      // 0011 0110b - LFUNC[1:0] = 00 (A AND B), //TERMA/B[2:0]=110 (FIFO Flag)

SYNCDELAY;

FLOWSTB = FlowStates[23];        // 0000 0100b - MSTB[2:0] = 100 (CTL4), not //used as strobe

SYNCDELAY;

GPIFHOLDAMOUNT = FlowStates[26]; // hold data for one half clock (10ns) assuming //48MHz IFCLK

SYNCDELAY;

FLOWSTBEDGE = FlowStates[24];    // move data on both edges of clock

SYNCDELAY;

FLOWSTBHPERIOD = FlowStates[25]; // 20.83ns half period

SYNCDELAY;

// reset the external FIFO

OEA |= 0x07;     // turn on PA0、 PA1、 PA2 as output pin

IOA |= 0x07;     // pull PA0、 PA1、 PA2 high initially

IOA &= 0xFB;     // bring PA2 low

EZUSB_Delay (1); // keep PA2 low for ~1ms, more than enough time

IOA |= 0x04;     // bring PA2 high and exit reset

IOA &= 0xFC;     // bring PA0、 PA1 low and enable AD

}

在TD_Poll()中主要完成外部FIFO状态的检测和数据的传输,主要程序部分如下:

void TD_Poll(void)

{

if ( GPIFTRIG & 0x80 )                  // if GPIF interface IDLE

篇3:基于USB2.0总线的高速数据采集系统设计

基于USB2.0总线的高速数据采集系统设计

摘要:本文主要介绍支持USB2.0高速传输的EZ-USB FX2单片机CY7C68013,并详细说明用此芯片实现高速数据采集系统和相应的Windows驱动程序及底层固件程序的开发过程。

关键词:CY7C68013  USB2.0  数据采集  固件

1    引言

现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦、价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。

通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。

2    硬件设计

2.1支持USB2.0高速传输的CY7C68013

Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微处理器,它集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。FX2这种独创性结构可使数据传输率达到56Mbytes/s,即USB2.0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。GPIF(General Programmable Interface)和主/从端点FIFO(8位或16位数据总线)为ATA、UTOPIA、EPP、PCMCIA和DSP等提供了简单和无缝连接接口。

CY7C68013的`GPIF引擎具有自动传输数据结构的特性,这种特性使得外围设备和主机通过CY7C68013可以无缝的、高速的传输数据。为了实现高速的数据传输,CY7C68013CPU不会直接参与数据的传输,而是直接利用GPIF的自动传输数据模式。图1和图2说明了主机IN和OUT数据传输过程。

2.1.1 端点缓冲区

FX2包含3个64字节端点缓冲区和4K可配置成不同方式的缓冲,其中3个64字节的缓冲区为EP0、EP1IN和EP1OUT。EP0作为控制端点用,它是一个双向端点,既可为IN也可为OUT。当需要控制传输数据时,FX2固件读写EP0缓冲区,但是8个SETUP字节数据不会出现在这64字节EP0端点缓冲区中。EP1IN和EP1OUT使用独立的64字节缓冲区,FX2固件可配置这些端点为BULK、INTERRUPT或ISOCHRONOUS传输方式,这两个端点和EP0一样只能

[1] [2] [3] [4] [5] [6]

篇4:基于USB总线的高速数据采集系统

基于USB总线的高速数据采集系统

摘要:介绍了一种基于USB总线的高速数据采集系统,讨论了USB控制器EZ-USB FX2?CY7C68013?的性能及传输方式?给出了该系统的硬件和基于GPIF主控方式实现数据传输的软件设计方法。

关键词:USB;数据采集;EZ-USB FX2;GPIF

1 引言

现代工业生产和科学研究对数据采集的要求日益提高。目前比较通用的是在PC或工控机内安装数据采集卡(如A/D卡及422、485卡)。但这些数据采集设备存在以下缺陷:安装麻烦、价格昂贵、受计算机插槽数量、地址、中断资源的限制,可扩展性差,同时在一些电磁干扰性强的测试现场,可能无法专门对其作电磁屏蔽,从而导致采集的数据失真。

传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。PCI总线虽然具有较高的传输速度(132Mbps),并支持“即插即用”功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个),ISA总线显然存在同样的问题。RS-232C串行总线虽然连结简单,但其传输速度慢(56kbps),且主机的串口数目也有限。

通用串行总线(Universal Serial Bus,简称USB)是1995年康柏、微软、IBM、DEC等公司为了解决传统总线的不足,而推出的一种新型串行通信标准。该总线接口具有安装方便、高带宽、易扩展等优点,已经逐渐成为现代数据传输的发展趋势。基于USB的数据采集系统充分利用USB总线的上述优点,有效地解决了传统数据采集系统的缺陷。USB的规范能针对不同的性能价格比要求提供不同的选择,以满足不同的系统和部件及相应不同的功能,从而给使用带来极大方便。

(本网网收集整理)

2 系统介绍

2.1 数据采集系统的结构与功能

常见的数据采集系统的硬件总体结构如图1所示。其中数据采集接口卡是硬件部分的核心,它包括A/D转换器、微控制器、USB通信接口等。

在高速数据采集系统中?由于现场输入信号是高频模拟信号,因而信号的变化范围都比较大?如果采用单一的增益放大?那么放大以后的信号幅值有可能超过A/D转换的量程?所以必须根据信号的`变化相应地调整放大器的增益。在自动化程度较高的系统中?希望能够在程序中用软件控制放大器的增益?AD8321正是这样一种具有增益可编程功能的芯片。AD8321是美国AD公司生产的一种增益可编程线性驱动器。它具有频带宽、噪声低、增益可编程且易于与单片机进行串行通信等优点,十分适合在数据采集系统中做前置放大。

经过调理后的信号可送入模/数变换器(ADC)进行A/D变换。笔者选用的ADC是TLC5540,它是一种高速8位模拟数字转换器,能以高达每秒40M的采样速率进行转换,由于采用半闪速结构和CMOS工艺制造,因此功耗和成本很低。其75MHz(典型值)的模拟输入带宽使该器件成为欠采样应用的良好选择。该器件带有内部电阻,可用于从5V电源产生2V满度的基准电压,以减少外部元件数。数字输出置于高阻方式。它仅需要5V电源工作,可由USB总线供电。

由于数据采集接口卡是硬件部分的核心,因此应选择能适用USB协议的合适芯片。EZ-USB FX2是一种USB2.0集成微控制器。它的内部集成了USB2.0收发器、串行接口引擎(SIE)、增强的8051微控制器和一个可编程的串行接口。其主要特性如下:

●带有加强的8051内核性能,可达到标准8051的5~10倍,且与标准8051的指令完全兼容;

●集成度高,芯片内部集成有微处理器、RAM、SIE(串行接口引擎)等多个功能模块,从而减少了多个芯片接口部分需要时序配合的麻烦;

●采用软配置,在外设未通过USB接口接到PC机之前,外设上的固件存储在PC上;而一旦外设连接到PC机上,PC则先询问外设是“谁”(即读设备描述符),然后将该外设的固件下载到芯片的RAM中,这个过程叫做再枚举。这样,在开发过程中,当固件需要修改时,可以先在PC机上修改好,然后再下载到芯片中;

●具有易用的软件开发工具,该芯片开发系统的驱动程序和固件的开发和调试相互独立,可加快开发的速度。

图2 USB接口示意图

2.2 方案选择

FX2有三种可用的接口模式:端口、GPIF主控和从FIFO。

在“端口”模式下,所有I/O引脚都可作为8051的通用I/O口。

在“从FIFO”模式下,外部逻辑或外部处理器直接与FX2端点FIFO相连。在这种模式下,GPIF不被激活,因为外部逻辑可直接控制FIFO。这种模式下,外部主控端既可以是异步方式,也可以是同步方式,并可以为FX2接口提供自己的独立时钟。

“GPIF主控”接口模式使用PORTB和PORTD

构成通向四个FX2端点FIFO( EP2? EP4? EP6和EP8)的16位数据接口。GPIF作为内部的主控制器与FIFO直接相连,并产生用户可编程的控制信号与外部接口进行通信。同时,GPIF还可以通过RDY引脚采样外部信号并等待外部事件。由于GPIF的运行速度比FIFO快得多,因此其时序信号具有很好的编程分辨率。另外,GPIF既可以使用内部时钟,也可以使用外部时钟。故此,笔者选择了GPIF模式。

高速数据采集卡的设计存在两大难点:一是模拟信号的A/D高速转换;二是变换后数据的高速存储及提取。对于第一个问题,由于制造ADC的技术不断进步,这个问题已经得到解决。而对于第二个问题,一般的数据采集系统是将A/D转换后的数据先存储在外部数据存储器中,然后再对其进行处理。对于高速数据采集而言,这种方式将严重影响采集速度,且存储值也会受到很大限制。而改进方案是将A/D转换后的数据直接送至计算机内存,这样,采集速度将大大提高,而且可存储大量数据,以便于下一步的处理。

为了解决同步问题,可以由CPLD产生同步时钟信号提供给ADC和FX2。在本数据采集系统的设计中,CPLD同时还可用于产生不同的控制信号,以便对采样进行实时控制。CPLD是复杂可编程逻辑器件,它包括可编程逻辑宏单元、可编程I/O单元和可编程内部连线。由于CPLD的内部资源丰富,因而可广泛应用在数据采集、自动控制、通讯等各个领域。在本系统的设计中,笔者选用的CPLD是Lattice公司的ispLSI1016。图2所示是其整个USB接口卡的硬件电路图。

3 系统软件设计

该系统软件主要包括USB设备驱动程序、设备固件和应用程序。

3.1 设备固件(Firmware)设计

设备固件是设备运行的核心,可采用汇编语言或C语言设计。其主要功能是控制CY7C68013接收并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态,请求或设置设备接口等USB2.0标准请求)、控制芯片CY7C68013接收应用程序的控制指令、控制A/D模块的数据采集、通过CY7C68013缓存数据并实时上传至PC等。

即使外部逻辑或内置的普通可编程接口(GPIF)在没有CPU的任何干涉下能够通过四个大的端点FIFO来处理高速宽带数据,固件还是有如下固定的工作:

●配置端点;

●通过控制端点零来响应主机请求;

●控制和监测GPIF的活动;

●利用USART处理所有的特殊请求任务,如计时器、中断、I/O引脚等。

3.2 USB设备驱动程序开发

USB系统驱动程序采用分层结构模型?分别为较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线驱动程序模块(USBD)和较低级的主控制器驱动程序模块(HCD)。

在上述USB分层模块中,USB函数层(USBD及HCD)由Windows提供,负责管理USB设备驱动程序和USB控制器之间的通信;加载及卸载USB驱动程序;与USB设备通用端点(endpoint)建立通信并执行设备配置、数据与USB协议框架和打包格式的双向转换任务。目前?Windows提供有多种USB设备驱动程序,但并不针对实时数据采集设备,因此需采用DDK开发工具来设计专用的USB设备驱动程序。该设备驱动程序应由初始化模块、即插即用管理模块、电源管理模块以及I/O功能等四个模块来实现。

初始化模块可提供一个DriverEntry入口点以执行大量的初始化函数。

即插即用管理模块用来实现USB设备的热插拔及动态配置。当硬件检测到USB设备接入时,Windows查找相应的驱动程序,并调用它的DriverEn-try例程,同时告诉它添加了一个设备;然后,驱动程序为USB设备建立一个FDO(功能设备对象)。在此处理过程中,驱动程序收到一个IRP MN START DE-VICE 的IRP,在它之中包括有设备的资源信息。至此,设备被正确配置,驱动程序开始与硬件进行对话。当然,在设备运行过程中,如果设备状态发生变化(拔除、暂停等),PnP管理器也同样发出相应的IRP,以便由驱动程序进行相应的处理。

电源管理模块负责设备的挂起与唤醒。

I/O功能实现模块可完成I/O请求的大部分工作。当应用程序提出I/O请求时,它将调用Win32 API函数DeviceIoControl向设备发出命令,然后由I/O管理器构造一个IRP并设置其MajorFunction.域为IRP MJ DEVICE CONTROL。在USB设备驱动程序收到该IRP后?它将取出其中的控制码?并利用一个开关语句查找对应的程序入口。

3.3 应用程序设计

应用程序设计由两个部分组成:动态链接库和应用程序。动态链接库负责与内核态的USB功能驱动程序通信并接收应用程序的各种操作请求,而应用程序则负责对所采集的数据进行实时显示、分析和存盘。

动态链接库的工作原理如下:当它收到应用程序开始采样的请求后,首先创建两个线程:采样线程和显

示存盘线程。采样线程负责将采样数据写到应用程序提交的内存;而显示存盘线程则负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存中读取数据并显示和存盘。要注意的是:采样线程和显示存盘线程在读写应用程序提交内存时要保持同步。

PC机或工控机应用程序是数据实时采集系统的中心?可采用Labview编程。它是当今国际上唯一的编译型图形化编程语言,其特点如下:

(1) 能完成对固体表面速度的实时测量;

(2)主介面与多重窗口结合?可完成数据连续采集、实时统计分析、系统参数设置、信号波形显示、被测参数输出等综合系统功能。

(3)能充分利用Labview开发平台和WINDOWS视窗所提供的良好操作环境?集曲线、图形、数据于一体?可准确描述过程参数的变化。

图3所示是用高速数据采集系统采集通过Lab-view显示的一个波形实例,其输入信号是一个频率为5MHz的正弦波。

4 结束语

随着电子计算机的广泛应用,社会的数字化程度越来越高,数据采集也越来越重要,本系统是一种通用的高速数据采集系统,可用于生物电波、电子学频谱、声波分析等瞬态信号的实时采集和观察等场合。其中基于USB总线的高速数据采集系统具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,因而具有良好的应用前景和很大的实用价值。

篇5:基于USB总线的实时数据采集系统设计与实现

基于USB总线的实时数据采集系统设计与实现

摘要:介绍了基于USB总线的实时数据采集系统的USB设备固件程序、驱动程序、应用程序的设计与具体实现。

关键词:通用串行总线 实时数据采集 设备固件 驱动程序

在现代工业生产和科学技术研究的各行业中,通常需要对各种数据进行采集。目前通用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真?熏易受计算机插槽数量和地址、中断资源的限制,(本网网收集整理)可扩展性差。而通用串行总线USB(Universal Serial Bus)的出现,很好地解决了上述问题,很容易实现便捷、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。

1 系统硬件设计与实现

1.1 硬件总体结构

基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。多路模拟信号经过模拟开关传到A/D转换器转换为数字信号?熏单片机控制采集,USB接口芯片存储采集到的数据并将其上传至PC,同时也接收PC机USB控制器的控制信息。

1.2 PDIUSBD12芯片

USB接口芯片采用Philips公司的一种专用芯片PDIUSBD12(以下简称D12)。该芯片完全符合USB1.1规范,集成了SIE、320B的多配置FIFO存储器、收发器、电压调整器、SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等,支持双电压工作、完全自动DMA 操作、多中断模式,内部结构如图2所示。

单片机通过8位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D+、D-发送至PC。上述过程遵循USB1.1协议。D12与89C51的具体实现电路如图3所示。

2 系统软件设计与实现

系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片D12采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令。

2.1 USB设备固件程序设计与实现

设备固件是设备运行的核心,用C语言设计。其主要功能是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB1.1标准请求;控制芯片D12接收应用程序的控制指令等。其程序主框图如图4所示。单片机检测到D12后进入主循环。此时PC机先发令牌包给D12,D12接收到令牌包后给单片机发中断,单片机据中断类型设定标志位Status;最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。

2.2 驱动程序设计与实现

USB系统驱动程序采用分层结构模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由通用串行总线驱动程序模块(USBD)和主控制器驱动程序模块(HCD)组成。

图3 PDIUSBD12与89C51的具体实现电路

为使驱动程序具有通用性,也为简化应用程序的'开发,编写了供应用程序调用的动态链接库。这样应用程序只需调用此库提供的接口函数即可完成对USB设备的操作。USB函数层(USBD及HCD)由Windows98提供,负责管理USB设备驱动程序与USB控制器之间的通信、加载及卸载USB驱动程序等。目前Windows98提供的多种USB设备驱动程序并不针对实时数据采集设备,因此采用DDK开发工具设计专用的设备驱动程序。其由四个模块组成:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。

初始化模块提供一个DriverEntry入口点执行一系列的初始化过程。

即插即用管理模块实现USB设备的热插拔及动态配置。当Windows98检测到USB设备接入时,查找相应的驱动程序,并调用它的DriverEntry例程,PnP管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备;然后驱动程序为USB设备建立一个功能设备对象。在此过程中,驱动程序收到一个IRP_MN_START_DEVICE的IRP,包括设备分配的资源

信息。至此,设备被正确配置,驱动程序开始与硬件进行对话。电源管理模块负责设备的挂起与唤醒。

I/O功能实现模块完成I/O请求的大部分工作。当动态链接库提出I/O请求时调用Win32API函数DeviceToControl向设备发出命令;然后由I/O管理器构造一个IRP并设置其MajorFunction域为IRP_MJ_DEVICE_CONTROL。USB设备驱动程序收到该IRP后取出其中的控制码,并利用一个开关语句找到对应的例程入口。

2.3 应用程序设计与实现

应用程序采用Visual Basic6.0编写。由于其只需调用动态链接库,故开发较简单。主要功能包括检测USB设备、开启/关闭USB设备、设置A/D状态和数据采集端口、显示并分析实时采集的数据。主框图如图5所示。

由于D12的端点1的FIFO为16字节,端点2的FIFO为64字节,当缓冲区存满后自动将数据打包,由SIE自动发送数据包。程序获得数据包后需延迟至下组数据包准备完毕,从而保证程序与数据采集同步。另外程序还发出停止采集和关闭USB设备的命令。

3 系统特点

基于USB总线的实时数据采集系统严格遵循USB1.1协议,有以下特点:

(1)易于扩展。最长传输距离5m,采用USBHub可达30m;最多可同时接127个设备。

(2)电磁干扰影响极小。本系统放置在计算机外部,不受板卡间的电磁干扰影响;若在电磁干扰极强的环境下工作,需专门为其设计电磁屏蔽方案。

(3)安装方便,支持即插即用。克服了以往数据采集板卡需要打开机箱的麻烦。

(4)性价比高,远优于传统的实时数据采集系统。

(5)实时采集,实时显示

篇6:基于USB总线的实时数据采集系统设计与实现

基于USB总线的实时数据采集系统设计与实现

摘要:介绍了基于USB总线的实时数据采集系统的USB设备固件程序、驱动程序、应用程序的设计与具体实现。

关键词:通用串行总线 实时数据采集 设备固件 驱动程序

在现代工业生产和科学技术研究的各行业中,通常需要对各种数据进行采集。目前通用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真?熏易受计算机插槽数量和地址、中断资源的`限制,可扩展性差。而通用串行总线USB(Universal Serial Bus)的出现,很好地解决了上述问题,很容易实现便捷、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。

1 系统硬件设计与实现

1.1 硬件总体结构

基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。多路模拟信号经过模拟开关传到A/D转换器转换为数字信号?熏单片机控制采集,USB接口芯片存储采集到的数据并将其上传至PC,同时也接收PC机USB控制器的控制信息。

1.2 PDIUSBD12芯片

USB接口芯片采用Philips公司的一种专用芯片PDIUSBD12(以下简称D12)。该芯片完全符合USB1.1规范,集成了SIE、320B的多配置FIFO存储器、收发器、电压调整器、SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等,支持双电压工作、完全自动DMA 操作、多中断模式,内部结构如图2所示。

单片机通过8位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D+、D-发送至PC。上述过程遵循USB1.1协议。D12与89C51的具体实现电路如图3所示。

2 系统软件设计与实现

系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片D12采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令。

2.1 USB设备固件程序设计与实现

设备固件是设备运行的核心,用C语言设计。其主要功能是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB1.1标准请求;控制芯片D12接收应用程序的控制指令等。其程序主框图如图4所示。单片机检测到D12后进入主循环。此时PC机先发令牌包给D12,D12接收到令牌包后给单片机发中断,单片机据中断类型设定标志位Status;最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。

[1] [2] [3]

篇7:数据采集系统设计研究论文

摘要:针对LabVIEW及MSP430F5529单片机构成的多路数据采集系统研究及设计,分为上位机和下位机两个主要模块来进行阐述。MSP430F5529作为前端数据采集系统进行数据采集,采集到的电压通过串口传到上位机LabVIEW界面。

关键词:MSP430F5529,单片机,数据采集,LabVIEW

LabVIEW程序设计方面相对来说比较简单,但是,Lab-VIEW的使用灵活性和功能完整性也很强大。MSP430F5529单片机多路电压数据采集系统的设计,从结构上来看比较简单,此类单片机工作电压区间比较低,耗能相对较低,内部集成了许多功能模块,功能完整性比较强大。结构简单的单片机系统与LabVIEW上位机的串行通信的功能结合,增加了系统灵活性。同时,又利用了MSP430F5529的超低耗功能,降低成本,使用简便。另外,虚拟仪器除了在物理形式上实现之外,也可以实现系统内的软件、硬件资源共享。将两者结合的多路电压数据采集系统无论是从运行效率还是编程方式,都展现了强大的优势。

篇8:数据采集系统设计研究论文

1.1数据采集系统需求基于LabVIEW及单片机构成的多路电压数据采集系统研究和设计,其中MSP430F5529单片机、ADC转换器组成的下位机数据采集系统实现采集电压的功能;采集到的多路电压信号被发送至LabVIEW程序功能模块进行分析和处理,并显示数据处理的结果;研究电平的转换。下位机的TTL电平转换成上位机能够接收的RS232电平。首先系统进行初始化,然后单片机通过串口进行多路数据采集,打开ADC转换器,开始转换,读取转换结果。然后发送到上位机界面,显示得到的数据处理结果。1.2数据采集系统方案设计的采集系统以上位机数据显示界面和数据采集系统实物的形式呈现,研究上位机与下位机的数据交互机制,实现数据的交互。方案:在上位机与下位机之间需要研究一个电平转换,采用MSP430系列单片机作为下位机采集模块,LabVIEW作为上位机处理模块;两个模块之间加入电平转换模块,采用的是CP2102转换芯片。此方案编程简单且方便,成本也相对较低,从整体来说也比较严谨。系统初始设计时,第一部分设计下位机单片机模块,启动A/D转换,得到的转换结果发送到单片机处理。并且加入了LCD显示模块;第二部分设计上位机LabVIEW程序处理模块,将采集到的结果上传到上位机显示。设计方案的流程图如图1所示。

2下位机采集系统设计此次设计采用

MSP430F5529Launchpad,MSP430F5529开发板内部集成A/D转换模块,多路电压采集系统下位机的重点在于A/D转换,所谓A/D转换即指模拟量等转换为数字量。MSP430F5529单片机可以自定义参考电压,此次设计的参考电压设计的是3.3V。所以本数据采集系统可采集的电压范围是0~3.3V。本设计是采集多路电压,转换的方法模式是采用转换速度较快的序列通道多次转换,提高转换速率。在程序设计里面是用ADC12CONSEQ_3来选择采样模式。同时,定义了ADC12SHP等于1,来定义信号的来源是采样定时器。ADCMEMx存储器用来存储转换结果。此类存储器是CSTARTADDx位定义的。参考电压和通道是需要经过定义才能工作的,一般是通过ADC12MCTLx寄存器。多路电压数据采集的下位机流程图如图2所示。首先执行端口初始化,第一步便是关闭看门狗,在MSP430单片机中,主程序首先要关闭看门狗,如果不关闭看门狗,程序执行一段时间后,可能会导致程序无法运行。因为看门狗有定期重置CPU的功能。然后端口定义,ADC转换和串口通信的工作模式的初始化,之后进入中断采集数据,在有信号输入的时候才会进入中断,如果没有外部电压信号的输入不会进行中段。采集电压信号后开始转换,转换完成之后数据被传送两个方向:一是传送到LCD显示,二是发送到上位机LabVIEW程序界面显示。在AD转换的`过程中是进入中断进行数据测量的,此次多路数据采集系统的下位机设计的中断标志位采用ADC12IFG寄存器设置。MSP430单片机的中断可以说是非常大的一个亮点。想要有效提高程序运行的速率,在程序中加入中断便可实现。MSP430单片机的每个片上运行后,CPU便被唤醒,此时低功耗模式是不存在的,中断完成后,CPU脱离唤醒模式。此时的单片机回到低功耗状态。在下位机串口发送方面,U-CA0CTL控制寄存器来定义了时钟源,需要通过相应的时钟源来确定波特率,此控制寄存器的第0位是USCWRST,它具有软件复位的功能,在设计中需要使它置1,那么逻辑将会在复位状态一直保持。第6到7位的UCSSEL,用来选择时钟源,时钟源选择的是AMCLK,那么UCSSEL的状态是01,此时的波特率需要求出相应的分频细数来定义,AMCLK的频率是32768Hz。跟据定义,在低频时钟的情况下,分频参数是时钟频率与波特率的比重,此次设计的波特率是9600,因此可以得出的是分频参数是3.41,所以,UCA0BR0等于3。

3显示界面上位机设计

3.1上位机LabVIEW设计此次多路电压数据采集系统的上位机LabVIEW程序流程图如图3所示。上位机的部分,首先设计了单路的电压数据采集系统,其程序框图如图4所示。上位机LabVIEW的设计首先是配置串口参数,参数的配置与下位机端要保持一致,参数配置完成后要进入while循环中的VISAREAD,读取从下位机传来的数据。单路数据采集就是直接显示电压。加入while循环的目的是使程序可以一直运行,而且是直接只运行读取缓冲区数据部分,不用每次都配置串口参数,提高了程序运行速率。3.2TTI与RS232电平转换MSP430单片机输出的L电平与上位机接收的电平不是同一种,分别为TTL和RS232。所以上位机与下位机之间需要进行转换,15V~5V指的是RS232电平逻辑1时的状态,而逻辑0的话,是在+5V~+15V,而TTL电平逻辑0在0~0.8V之间,逻辑1在2.4V~5V之间,所以在TTL电平与RS232之间,需要进行正负逻辑的转换。在此次设计中选用的是主要由CP2102转换芯片构成的转换模块。同时里面也集成了MAX2485和MAX232通信芯片。CP2102是一种品质较好,工作比较稳定的且性能强大的转换芯片。整个转换模块体积小,便于移动。此次设计用MSP430F5529专门用于串口发送的P3.3口与RX引脚连接。如图5所示。CP2102的RX引脚专门用来接收TTL电平。CP2102的另一端与电脑相连,打开上位机LabVIEW程序,串口信息配置好之后,便可以显示采集的电压数据。

4多路电压数据采集系统测试

为了便于系统能够成功采集数据,采集的电压采取就近原则,直接采集单片机管脚电压,此次测试三次电压分别为:3.3V电源管脚电压、普通管脚电压(1.78V)以及GND管脚电压(0V)。由于误差作用,系统不能准确测到3.3V,以及3.3V会对旁边线路产生影响,所以第二路电压信号会从1.78V拉高到2.76V,第三路接地,所以是0.00V。除去显示结果以外,增加了波形显示,使采集到的电压变化变得一目了然。此外加入了串口工作灯指示,在串口正常工作的情况下,串口灯是绿色,在串口工作异常的情况下,串口灯是红色。改变某一路电压后,把第三路采集电压的管脚从接地端拔了下来,悬空时的电压是1.78V,同样会被3.3V的电压拉高,电压的变化直接在上位机界面呈现出来,直观明了,如图7所示。波形显示的坐标是可以自动变换的,根据数据的大小智能变换,改变采集管脚的电压后,如图8所示。

5结束语

基于MSP430F5529和LabVIEW进行多路电压数据采集系统,实际应用的结果,下位机与上位机的通信功能正常,操作也非常简单方便,完成了设计之初的要求,可以实现的功能有:①采集三路0V~3.3V的电压;②采集到的电压在LCD屏显示;③采集到的电压上传至LabVIEW上位机数据采集编写模块显示;④上位机LabVIEW界面显示电压数据及电压波形。研究并实现了MSP430F5529单片机的数据采集及处理、ADC转换、TTL电平转RS232电平、上位机与下位机之间的串口通信。同时,此次设计也存在些许不足:①只能采集三路数据;②不能调取历史采集数据。

参考文献

[1]陈美玉.基于单片机及LabVIEW的多路数据采集系统设计[J].企业技术开发,,36(1):69-71

[2]王克胜.系统软件设计及控制分析[J].科技与企业,(4):81-81

[3]段新燕.单片机液晶显示系统的设计[J].电子科技,,25(8):13

[4]周丽,裴东兴.基于MSP430单片机的超低功耗温度采集系统设计[J].电子测试,(10):35-38

篇9:基于Web的MCF5249数据采集系统的设计

数据采集系统的软件设计主要分为两大模块,即数据采集模块与数据显示模块。

2.1数据采集模块的设计

数据采集模块是系统的'核心模块,为了提高数据采集的实时性,应采用中断方式完成数据采集。其流程图如图2所示。

MCF5249微处理器为其内部ADC提供了一个控制寄存器ADCONFIG,其地址是MBAR2_ADDR+0x402,在初始化程序中需要指定MBAR2_ADDR地址。

通过ADCONFIG寄存器可以设置A/D转换器工作方式、采样频率、是否采用中断方式等。下面给出设置ADCONFIG寄存器实例。

#define MBAR2_ADDR 0x8000000

#define AD_CONFIG 0x402

#define AD_VALUE 0x406

…………

//设置ADC

*(volatile unsigned short int *)(MBAR2_ADDR+AD_CONFIG)=0x442;

该设置确定ADIN0作为模拟信号输入通道,采样频率设置为1/4系统总线时钟频率。当时钟产生4095次翻转时,系统产生一个软件中断(中断号为63)。一次采样结束,并将采样结果存于ADVALUE寄存器(其地址为MBAR2_ADDR+0x406)。A/D转换值可以用如下公式计算:

Vi=(X/(2 n-1)) ×Vfullscate

其中,Vi为ADC的输入电压;Vfullscate为满量程输入电压;

X为ADC输出的数字量;

n为ADC的位数。

A/D转换的结果在中断处理程序中读取。读取一次转换的程序代码如下:

Volatile u

nsigned shortint m;

m=*(volatile unsigned short int *)(MBAR2_ADDR+AD_VALUE);

通常,A/D转换需要连续采样。采样结果应存放在一个多访问循环队列MACQ(Multiple Access Circular Queue)中。

MACQ是一个定长有序的数据结构。源进程(生产者,ADC采样程序)将数据存入MACQ,一旦初始化,MACQ总是满的。当有新的数据被存入(PUT)MACQ,旧数据即被丢弃(如图3)。应用进程(消费者)可以从MACQ中读取任何数据。读功能是非破坏性的,即读操作不会改变MACQ。

在uClinux中,A/D转换中断程序的编写方法是将A/D转换器作为一个字符设备来处理。中断程序是在linux/drivers/char目录下编写,其结构如下:*File:m5249_adirq.c

#include

#include

#define ADC_IRQ(128+63)//定义中断号

#define MBAR2_ADDR 0x8000000

#define AD_CONFIG 0x402

#define AD_VALUE 0x406

/*定义中断处理函数*/

void adirq_interrupt(int irq,void *d,struct pt_regs *regs){

在此读取A/D转换的值并存入队列中。

}

/*设备初始化函数*/

int adirq_init{

int result;

unsigned short adc_irq;

adc_irq=ADC_IRQ;

result=request_irq(adc_irq,&adirq_interrupt,SA_INTERRUPT,5249_adirq NULL);//注册中断

if(result= = -1)

{printk(“Can't get assigned %d”adc_irq);

return result;}

return 0;

}

中断服务程序的添加方法如下:

①编辑uClinux/drivers/char目录下的mem.c,添加“adirq_init();”;

②编辑此目录下的Makefile加入“obj-y+=m5249_adirq.o”;

③编译(make)。

2.2 数据显示模块的设计

为了实现采集到的数据以Web方式显示,需要选择一个Web服务器。本文采用的Web服务器是BOA。在CGI程序中编写一个函数读取MACQ队列中的数据并显示。

主要有以下显示模块。

(1)编写一个CGI程序

*编写一个读取MACQ队列中数值的函

readFromMacq()。

*编写一个生成动态HTML页面的函数show()。

Void show_t(){

……

printf(“Content-type:text/html”);

prinft{“

”);

在此将MACQ中的数据读出,假设值赋给变量n

prinft(“

",n);

}

*编写一个CGI的主程序main_cgi。

在主程序中需要读取HTML页面中的字符,并判断应执行那一个CGI程序。

(2)用HTML语言编写一个主页

在主面中应包含:

键接字符.

其中,flag的值是main_cgi用于判断应执行哪一个CGI程序的标志。

结语

本文描述了使用MCF5249微处理内部∑―ΔADC进行数据采集的硬件和软件设计方法。给出的MCF5249应用方案和具体的应用细节都已现场调试成功。MCF5249是一个性价比较好的微处理器,可以用于家庭网关、MP3和工业数据采集系统。

篇10:基于USB接口的数据采集系统设计

摘要:以自行开发的基于USB接口的数据采集系统为例,介绍了USB接口的硬件和软件开发过程。

关键词:USB数据采集 PDIUSBD12

1USB协议和芯片选择

理解好USB协议是USB系统开发的第一步。USB协议版本包括1.0、1.1和2.0,USBOTG是对2.0版本协议的补充。虽然USB协议内容繁多且复杂,然而,对USB开发影响较大的却只是少数部分,以下对协议版本1.1[1]中这些部分进行介绍。

1.1USB协议

一般,每个USB设备由一个或多个配置(Configuration)控制其行为。使用多配置原因是对操作系统的支持;一个配置由接口(Interface)组成;接口则是由管道(Pipe)组成;管道与USB设备的端点(Endpoint)对应,一个端点可以配置为输入输出两个管道。在固件编程中,USB设备、配置、接口和管道都用描述符报告其属性。

图1为USB多层次通信模型。端点0默认配置为控制管道,用来完成所规定的设备请求(USB协议第九章)。其它端点可配置为数据管道。对开发而言,主要的大数据传输都是通过数据管道完成的[2]。

USB传输类型包括批量传输、等时传输、中断传输和控制传输,每种传输类型的传输速度、可靠性以及应用范围都不同[3]。控制传输可靠性是最高的,但速度最慢;等时传输速度快,满足实时性,但可靠性低。在具体应用中,端点传输类型可根据传输速度和可靠性选择。

在USB通信协议中,主机取得绝对主动权利,设备只能是“听命令行事”,通过一定的命令格式(设备请求)完成通信。USB设备请求包括标准请求、厂商请求和设备类请求。设备的枚举是标准请求命令完成的;厂商请求是用户定义的请求;设备类请求是特定的USB设备类发出的请求,例如海量储存类、打印机类和HID(人机接口)类。固件编程中设备请求必须遵循一定的格式,包括请求类型、设备请求、值、索引和长度。

1.2USB接口芯片选择

USB接口芯片的类型有:

(1)按传输速度的高低:低速(1.5Mbps)和全速(12Mbps)可选USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可选USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。

(2)是否带MCU(微控制器):一般Philips公司的都不带MCU,Cypress公司大多都带,例如AN2131。

(3)是否带主控器功能:不需要主机参与,主从设备间可进行数据传输,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。

还有专门用途USB芯片,例如闪存专用芯片IC1114。工程中用户可根据自己的需求选择一款性价比高的芯片。另外可用开发资源也是要考虑的重要方面,例如开发板和芯片厂商提供的网上资源,可大大降低开发的难度。

地震智能数据采集系统

低轼耗数据采集系统的USB接口设计

小功率电弧等离子体发动机实验数据采集系统

基于模拟ARINC49总线自动测试的系统设计与实现

基于移动GIS的数字城管数据采集系统架构与实现

轴流式压气机参数采集系统的设计与实现

PCI-8361BN数据采集卡在光纤电容液滴分析系统中的应用

自动式机轮刹车组件弹簧试验系统的设计

南襄盆地区域大剖面采集观测系统的设计与应用

基于VXI总线的旋翼试验等角度数据采集系统设计(共10篇)

欢迎下载DOC格式的基于VXI总线的旋翼试验等角度数据采集系统设计,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式

相关文章

热门推荐

HOT

猜你喜欢

NEW
点击下载本文文档