用于偶极子声波测井仪的高精度数据采集系统的设计

时间:2023-09-23 03:36:22 作者:知禾 综合材料 收藏本文 下载本文

【导语】“知禾”通过精心收集,向本站投稿了8篇用于偶极子声波测井仪的高精度数据采集系统的设计,以下是小编为大家整理后的用于偶极子声波测井仪的高精度数据采集系统的设计,仅供参考,欢迎大家阅读。

篇1:用于偶极子声波测井仪的高精度数据采集系统的设计

用于偶极子声波测井仪的高精度数据采集系统的设计

摘要:一种用于偶极子声波测井仪的四通道高精度数据采集系统,该系统具有16位分辨率、100ksps的最高转换速度。复杂可编程逻辑器件CPLD实现数据采集速率和采集数据量的程控选择功能,并控制FIFO的波形数据缓存。在单片机的控制下进行采集速率和采集数据量设置及四个通道波形采集和数据处理的并行执行。整个电路控制灵活、结构紧凑、体积小,适合井下使用。

关键词:数据采集 模/数转换器 复杂可编程逻辑器件 FIFO存储器 声波测井仪

20世纪90年代以来,国外测井公司陆续开发研制了以DSI(Schlumberger,1990)、MAC(Western Atlas,1992)和LED(Halliburton,1994)为代表的新一代多极阵列声波测井仪器,这类测井仪具有其它声波测井仪器不可替代的强大功能。它可在软、硬地层中测量充液井孔中的纵波、横波和斯通利波的波速,可以记录反射的斯通利波和反射纵波。这些波形数据中包含大量有应用价值的地质信息,如横波和反射的斯通利波信息可以评价低角度裂缝;反射的纵波可对井周近10米范围内的地质结构进行成像;交叉偶极资料可用于地层各向异性的评价。近几年来,我国斥巨资直接请斯仑贝谢测井公司服务,并引进了几十套包括MAC在内的ECLIPS2000系统。借鉴国外在声波测井仪器研制方面的成功技术,开发新一代偶极声波测井仪器是提高我国测井装备水平的重要途径。

(本网网收集整理)

数据采集系统是决定偶极子声波测井仪能否取得合格数据的关键部分之一,对整个仪器系统的性能有重大影响。声波信号的频率及数据处理对数据精度、动态范围的要求是决定数据采集系统设计的主要因素。为了适应广泛的地层条件和保证数据能进行高精度数值计算(如声速衰减等),要求该仪器系统有大的动态范围和高分辨率的测量,并适合井下高温、高压工作环境。

1 系统设计

根据交叉偶极测量的声系设计要求,采用四组接收换能器,通过四组数据采集通道完成多道数据同时采集的任务。为了使各通道具有较好的一致性,并满足系统扩展需要,把采集系统分为四个功能完全相同的独立的数据采集通道。每个采集通道主要由ADC、采集通道逻辑控制单元、存储器等几个部分构成。它们的位置可以互换,并通过一个井下控制微处理机MPU统一控制。

偶极子声波测井仪接收信号的最高频率是14kHz左右的声波信号(偶极子发射换能器为500Hz~4kHz,单极子发射换能器为2kHz~14kHz),根据Nypuist定律,ADC的采样频率最少是28kHz。为保证对采集波形的频域分析,本系统使用最高采样频率为100kHz的ADC。当偶极模式工作时,声波的频率上限只有4kHz左右,可采用较低的采集速率。利用外部时钟进行模/数转换的ADC可通过控制采集时钟的频率来控制采集速率。由于要进行如声速衰减等的计算,对数据的采集精度和动态范围要求较高,采用16位ADC和1000倍程控前置位大器,使系统具有150dB以上的动态范围,可以满足设计要求。ADC采用ADI公司的AD676TD,它具有片内采样保持功能,输入量程由参考电压决定,最大为±10V。AD676采用电容阵列和电荷重新分配的技术取代传统的对薄膜电阻阵列进行激光修整方法,消除了由温度变化导致电阻值不匹配带来的线性误差;用片内微处理器和刻度DAC测量并补偿电容失配误差,利用刻度电容失配误差修正采集结果,使测量精度达到了较高水平。

采集通道控制器有多种方案实现。传统的中小规模数字电路功耗大、体积大,而且走线太多,给印刷板的布线带来困难,不是一种好方案。由于是多通道并行高速采集,且数据间隔的精度直接影响到对数据的分析精度,因而一般微控制器难以满足要求。而大规模复杂可编程逻辑器件CPLD具有集成度高、速度快(通常比单片机用软件控制至少提高两个数量级以上)的优点,并能通过重新编程来修改和增强系统的功能,不必重新设计印刷板,是优选的方案。本设计选用Lattice公司的ispLSI1k系列的低端器件ispLSI1016E,可满足系统控制功能。

高速数据缓存采用IDT公司的8K字节FIFO存储器IDT7205。FIFO存储器有两个数据端口,写入端口数据采集端,读出端口接MPU端,内部地址计数器根据写入数据的次序有序地将数据写入相应的RAM单元中,读出数据时按数据存入的先后依次取出。

如上述,本设计以AD676、ispLSI1016、IDT7205为主构成优化的数据采集通道。选用87C51作为井下控制单片机MPU,控制四个采集通道进行并行数据采集,并完成单、偶极控制发信号接收处理等其它功能。

2 系统构成

2.1 硬件部分

整个并下声波采集系统由四个完全独立、功能相同、可以互换的数据采集通道及控制各个通道工作的井下单片机87C51(MPU)构成,如图1所示。MPU通过外部GAL译码电路产生采集通道控制信号,将采集通道的数据读入单片机外部RAM,并加上一些辅助信息后,由遥测电路上传给地

面系统。

数据采集通道原理如图2所示。每一路数据采集通道主要由模拟开关、放大器、高精度ADC AD676、采集通道控制器ispLSI1016、FIFO数据缓存器IDT7205、光耦等构成。

二选一模拟开关DG419具有高精度、低导通电阻、快速导通截止等优点,在采集通道控制器控制下切换声波模拟信号。放大器采用高性能运放AD845,以放大和缓冲来自模拟开关的模拟声波信号。高精度模/数转换器AD676在采集通道控制器的控制下,对声波信号进行数据采集。由于采用高速大容量FIFO及其采集通道控制器,可以保证在不占用MPU系统资源情况下,完成对多道信号的精确等间隔序列采样,保证了声波数据的质量。

采集通道控制器ispLSI1016是数据采集系统中的关键部件,要作用是根据MPU预先设置的命令来控制由MPU启动的数据采集过程。它由控制命令寄存器组、八路2:1MUX、FIFO控制器、采集深度可控计数器、可控分频器、ADC采集时序控制器等部分组成。数据采集速率及采集数据量(即采集深度)、ADC时序控制及接口、FIFO的数据分解及写入控制等均由该控制等完成,其内部逻辑结构如图3所示。控制命令寄存器组用来寄存器来自MPU的命令,并根据MPU的命令设置可控分频器、采集深度可控计数器,选择要采集的模拟通道,启动采集深度可控计数器。可控分频器利用ADC的状态,并根据控制命令寄存器组的命令,对时钟进行分频,ADC中状态控制其是否对时钟进行分频,控制命令寄存器组中寄存的.命令决定分频的频率。不同的采集速率有不同的分频频率,共有4种数据采集速率(10、20、40、80μs/点)。采集深度可控计数器根据控制命令寄存器组的启动命令,利用来自可控分频器的时钟进行计数,并在计数过程中产生允许FIFO控制器和ADC采集时序控制器工作的信号,当计到指定的采集深度(256、512、1024、2048字,16位/字)后,停止采集,直到下一次采集命令再重新开始采集深度计数。ADC采集时序控制器利用可控分频器时钟,在采集深度可控计数器允许其工作的过程中产生用来控制ADC工作的采集、刻度和时钟信号。八路2:1MUX用于选择16位的采集数据的高8位或低8位数据。FIFO控制器在每一次信号采集中产生两次八路2:1MUX的选择和FIFO写信号,把16位的采集数据分两次写入8位FIFO,以利于与8位MPU接口。由MPU发出的“开始采集”命令可通过对写命令线的控制使所有通道控制器同时得到,保证了多通道并行采集的时间同步。

2.2 软件部分

系统的四个采集通道在单片机MPU的控制下完成数据采集,而MPU本身通过遥测电路接收来自地面系统的指令。上电后,MPU都要先对采集通道进行刻度,即送刻度命令到每一个采集通道控制器,然后由采集通道控制器给AD676发出刻度信号和时钟信号,使AD676完成刻度,并利用刻度结果修正采集数据。刻度也可以由地面系统发命令给MPU来完成。刻度之后,当MPU接到地面系统的采集命令时,便根据命令选择采集通道采集信号,设置采集速率和采集数据量。完成设置后,MPU同时启动所有通道的采集,采集通道控制器连续产生ADC控制信号,同时把上次采集数据由16位变为8位存入FIFO,直至完成指定数据量。MPU从各个采集通道读走数据送入遥测电路,传送给地面系统处理,然后MPU等待新的地面命令到来,准备下一次数据采集。图4是MPU控制软件的流程框图。

采用的高性能16位ADC,用CPLD作采集通道实时控制,使用FIFO作数据缓存,在单片机87C51的控制下组成了四通道声波波形并行采集系统,可以达到以下技术指标:

(1)采集分辨率:16位;

(2)采集速率:10、20、40、80μs可选;

(3)采集深度:256、512、1024、2048字,可选。

采用CPLD及FIFO存储器可以减小印刷板的面积,降低布线难度,提高电路的可靠性,特别适合井下使用。数据采集通道相对独立,容易扩展为八个,甚至更多的通道。

篇2:用于偶极子声波测井仪的高精度数据采集系统的设计

用于偶极子声波测井仪的高精度数据采集系统的设计

摘要:一种用于偶极子声波测井仪的四通道高精度数据采集系统,该系统具有16位分辨率、100ksps的最高转换速度。复杂可编程逻辑器件CPLD实现数据采集速率和采集数据量的程控选择功能,并控制FIFO的波形数据缓存。在单片机的控制下进行采集速率和采集数据量设置及四个通道波形采集和数据处理的并行执行。整个电路控制灵活、结构紧凑、体积小,适合井下使用。

关键词:数据采集 模/数转换器 复杂可编程逻辑器件 FIFO存储器 声波测井仪

20世纪90年代以来,国外测井公司陆续开发研制了以DSI(Schlumberger,1990)、MAC(Western Atlas,1992)和LED(Halliburton,1994)为代表的新一代多极阵列声波测井仪器,这类测井仪具有其它声波测井仪器不可替代的强大功能。它可在软、硬地层中测量充液井孔中的纵波、横波和斯通利波的'波速,可以记录反射的斯通利波和反射纵波。这些波形数据中包含大量有应用价值的地质信息,如横波和反射的斯通利波信息可以评价低角度裂缝;反射的纵波可对井周近10米范围内的地质结构进行成像;交叉偶极资料可用于地层各向异性的评价。近几年来,我国斥巨资直接请斯仑贝谢测井公司服务,并引进了几十套包括MAC在内的ECLIPS2000系统。借鉴国外在声波测井仪器研制方面的成功技术,开发新一代偶极声波测井仪器是提高我国测井装备水平的重要途径。

数据采集系统是决定偶极子声波测井仪能否取得合格数据的关键部分之一,对整个仪器系统的性能有重大影响。声波信号的频率及数据处理对数据精度、动态范围的要求是决定数据采集系统设计的主要因素。为了适应广泛的地层条件和保证数据能进行高精度数值计算(如声速衰减等),要求该仪器系统有大的动态范围和高分辨率的测量,并适合井下高温、高压工作环境。

1 系统设计

根据交叉偶极测量的声系设计要求,采用四组接收换能器,通过四组数据采集通道完成多道数据同时采集的任务。为了使各通道具有较好的一致性,并满足系统扩展需要,把采集系统分为四个功能完全相同的独立的数据采集通道。每个采集通道主要由ADC、采集通道逻辑控制单元、存储器等几个部分构成。它们的位置可以互换,并通过一个井下控制微处理机MPU统一控制。

偶极子声波测井仪接收信号的最高频率是14kHz左右的声波信号(偶极子发射换能器为500Hz~4kHz,单极子发射换能器为2kHz~14kHz),根据Nypuist定律,ADC的采样频率最少是28kHz。为保证对采集波形的频域分析,本系统使用最高采样频率为100kHz的ADC。当偶极模式工作时,声波的频率上限只有4kHz左右,可采用较低的采集速率。利用外部时钟进行模/数转换的ADC可通过控制采集时钟的频率来控制采集速率。由于要进行如声速衰减等的计算,对数据的采集精度和动态范围要求较高,采用16位ADC和1000倍程控前置位大器,使系统具有150dB以上的动态范围,可以满足设计要求。ADC采用ADI公司的AD676TD,它具有片内采样保持功能,输入量程由参考电压决定,最大为±10V。AD676采用电容阵列和电荷重新分配的技术取代传统的对薄膜电阻阵列进行激光修整方法,消除了由温度变化导致电阻值不匹配带来的线性误差;用片内微处理器和刻度D

[1] [2] [3]

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

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

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

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

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

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].企业技术开发,2017,36(1):69-71

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

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

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

篇5:高精度三维地震(I):数据采集

高精度三维地震(I):数据采集

随着油气勘探目标越来越复杂和油气田开发程度的加深,迫切需要提高三维地震勘探的精度,加快实施高精度三维地震.高精度三维地震可理解为在高分辨率三维地震勘探的基础上,实现高精度三维偏移成像.它与精细三维地震有一定的区别.精细三维地震强调的是工作做精做细,这样可以确保三维地震效果的稳定;细中见大,可以产生巨大的勘探效益.但要提高精度,除工作的精细以外,还必须有高新技术的含量,技术上还有许多问题需要研究和开发,这为地球物理技术发展提供了一个广阔的空间.提高三维地震勘探的精度与许多因素有关,涉及到勘探以外的多个学科,并与当代高新技术水平直接相关.从地震勘探技术本身的一些环节出发,简要地提出了一些问题并进行了简单的分析和讨论,内容包括地震数据采集、地震数据处理、地震数据解释、提高地震勘探分辨率、与地震技术紧密相关的配套技术以及勘探技术一体化的思路等6个方面.围绕提高三维地震勘探的精度问题,阐述了每一个方面所发挥的作用以及它们所处的.地位,最后阐述了作者的一些认识.在整个讨论过程中,强调的是处理问题的思路和方法,以及技术的实际应用技巧和实际应用效果,而不是每一个方法的具体细节和公式推导,因而是一份实用性较强的培训教材.

作 者:熊翥 Xiong Zhu  作者单位:中国石油集团东方地球物理公司,河北涿州,072751 刊 名:勘探地球物理进展 英文刊名:PROGRESS IN EXPLORATION GEOPHYSICS 年,卷(期):2009 32(1) 分类号:P631.4 关键词:高精度三维地震   数据采集   高密度空间采集   观测系统优化   三维观测系统参数   照明分析技术  

篇6:基于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和工业数据采集系统。

篇7:基于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。工程中用户可根据自己的需求选择一款性价比高的芯片。另外可用开发资源也是要考虑的重要方面,例如开发板和芯片厂商提供的网上资源,可大大降低开发的难度。

篇8:采用USBN9602的数据采集系统设计

摘要:通用串行总线(USB)作为一种新的微机总线接口规范,具有便捷、易扩展、低成本、低干扰等特点,非常适合作为主机和外设之间的通信接口。本文介绍基于USB总线的数据采集设备的开发方法,包括硬件设计、Firmware(固件)设计、基于Windows驱动程序模型(WDM)的设备驱动程序设计以及应用软件的设计,同时还介绍基于USB的远程数据采集系统。

关键词:USB 软件狗 加解密技术 反破解

在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及422卡、485卡、采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备;而用串行总线USB(Universal Serial Bus)能很发地解决以上这些冲突。

利用89C51设计基于USB总线的数据采集设备,还可与MAX485结合起来实现数据的远程采集。该系统具有可靠性高、性价比高和多点采集等优点。

1 系统硬件设计

USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。硬件总体结构框图如图1所示。

USB接口芯片采用National Semiconductor公司的一种专用芯片USBN9602。该芯片内部集成微处理器接口、FIFO存储器、时钟发生器、串行接口引擎(SIE)、收发器和电压转换器,支持DMA和微波接口。

多路模拟输入信号经多路模拟开关控制将其中的一路接入串行A/D转换器,A/D转换器经光电隔离后串行输出到移位寄存器,移位寄存器将此结果转为8位并行数据。89C51系统通过8位的并行接口传送A/D转换器采集的数据,存储在FIFO存储器中;一旦FIFO存满,SIE立刻对数据进行处理,然后89C51系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。USBN9602与89C51的具体接口电路如图2所示。图中USBN9602的CLKOUT与89C51的XTAL1相连,即USBN9602的时钟输出为89C51提供时钟输入。USBN9602的复位端接RC电路,以保证复位电路可靠地工作。由于晶振频率较高,结合USBN9602内部网络,在XOUT端串接100μF电容及470μF电感,起稳定内部振荡频率的.作用。

(本网网收集整理)

2 系统软件设计

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

2.1 设备固件(firmaware)设计

此处固件是指固化到89C51 Flash中的程序。其主要功能是:①控制A/D转换器的采样;②控制芯片USBN9602接受并处理USB驱动程序的请求及应用程序的控制指令。现主要介绍89C51系统如何控制USB控制器(USBN9602)与主机的通信。

89C51系统对USB控制器的操作是严格按照USB协议1.1进行的。按照USB协议1.1的规定,USB传输方式分为4种:控制传输、块传输、同步传输和中断传输。在实际开发中使用了控制传输和块传输。控制传输主要完成主机对设备的各种控制操作,也就是实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作。块传输主要完成主机和设备间的大指数据传输以及对传输数据进行错误检测(若发生错误,它支持“重传”功能)。

89C51系统控制USB控制器的工作工程可以简单地概括为:当USB控制器从USB总线检测到主机启动的某一传输请求后,USB控制器通过中断方式将此请求通知89C51系统;89C51系统通过访问USB控制器的状态寄存器和数据寄存器,获得与此次传输有关的各种参数,并根据具体的传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。理解了以上的工作过程就可以进行相应的固件设计。

2.2 USB设备驱动程序设计

USB系统驱动程序的设计是基于驱动程序模型WDM(Window Driver Model)的。WDM采用分层驱动程序模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线模块(USBD)和较低级的主控制器驱动程序模块(HCD)。

目前,Windwos98提供了多种USB设备驱动程序,但并不针对数据采集设备,因此需用DDK(设备驱动程序开发包)开发工具设计专用的USB设备驱动程序。目前,写USB驱动程序的软件也很多,它们均提供用于生成USB驱动的代码生成器,用户按照提示可以定义设备的配置和功能,然后做功能的修改即可。利用软件中提供的例子进行修改也是一个比较好的捷径。可以把USB设备驱动程序的功能划分成4个不同的模块来实现:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。

初始化模块提供1个入口函数DriverEntry(),整个驱动程序的入口点为DriverEntry例程。在DriverEntry中,需要提供一个AddDe

vice例程,把驱动程序添加到驱动程序堆栈中去。另外,所有对各种IRP(I/O请求包,如:IRP_MJ_CREATE,IRP_MJ_WRITE,IRP_MJ_CLOSE,IRP_MJ_READ,IRP_MJ_DEVICE_CONTROL等)的处理例程都在此入口函数中作为定义,如:

DriverEntry(IN PDRIVER_OBJECT DriverObject,…) //驱动程序入口

{

DriverObject->DriverExtension->AddDevice=USBAddDevice;

DriverObject->DriverUnload=USBUnload;

DriverObject->MajorFunction[IRP_MJ_READ]=USBRead;

DriverObject->MajorFunction[IRP_MJ_WRITE]=USBWrite;

}

图2 USBN9602与89C51接口电路

即插即用管理模块用来实现USB设备的热插拔及动态配置。当硬件检测到有USB设备接入时,Windows98查找响应的驱动程序,并调用它的DriverEntry例程。PnP(即插即用)管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备。在此处理过程中,驱动程序收到一个设备启动请求(IRP_MN_START_DEVICE)的IRP。同理,当要拔除时,PnP管理器会发出一个设备删除请求(IRP_MN_REMOVE_DEVICE)的IRP,由驱动程序进行处理。通过对这些PnP请求的处理,可支持设备的热插拔和即插即用功能。

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

I/O功能实现模块完成I/O请求的大部分工作。若应用程序想对设备进行I/O操作,它便使用Windows API函数,对WIN32子系统进行WIN32调用。此调用由I/O系统服务接收并通知I/O管理器,I/O管理将此请求构造成一个合适的I/O请求包(IRP)并把它传递给USB设备驱动程序。USB设备驱动程序接收到这个IRP以后,根据IRP中包含的具体操作代码,构造相应的USB请求块并把此URB(USB请求块)放到一个新的IRP中。然后,把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所含的URB执行相应的操作(如从USB设备读取数据等),并把操作结构通过IRP返还给USB设备驱动程序。USB设备驱动程序接收到此IRP后,将操作结果通过IRP返还给I/O管理器。最后,I/O管理器将此IRP中操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。

2.3 应用程序设计

用户态的应用程序是数据采集系统的中心,其主要功能为:开启或关闭USB设备、检测USB设备、设置USB数据传输管道、设置A/D状态和数据采集端口、实时从USB接口采集数据、显示并分析数据。

由于USBN9602提供的FIFO不超过64字节,当它存满后,USBN9602自动将数据打包即时请求读入数据,由SIE自动发送数据包。另外,当系统启动A/D模块后,便会创建两个线程:采样线程和显示存盘线程。采样线程负责将采集数据写到应用程序提交的内存;而显示存盘线程负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存读取数据并显示和存盘。此处需要注意的是,采样线程和显示存盘线程在读写应用程序提交的内存时要保持同步。

基于LabVIEW数据采集系统的混沌电路实验

农业数据采集体系设计思考论文

无线数据采集在环境监控系统中应用

多线程的光陀螺信号采集系统设计

无线扩频技术在地震勘探数据采集系统中的应用

教学系统设计

病史采集范文

广东生益科技通过引入胜龙条码数据采集系统,提高SAP系统应用效能

室内环境自动监测系统的数据分析研究

仪发言稿

用于偶极子声波测井仪的高精度数据采集系统的设计(精选8篇)

欢迎下载DOC格式的用于偶极子声波测井仪的高精度数据采集系统的设计,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档