多路信号采集范文
多路信号采集范文(精选8篇)
多路信号采集 第1篇
关键词:矩阵信号,单片机,HD7279
1 引言
多路矩阵开关信号采集传输系统可广泛应用于各种场合,但一般来说必须具有以下功能才能够达到我们实用的目的。首先必须具有数据采集功能,该功能部分能够完成数据的有效采集和编码,将模拟信号转化为二进制信号,其次,数据传输部分能够完成对数据的可靠传输;第三,该系统的处理单元要能够完成集中控制和数据管理储存,并完成向计算机的数据传输;第四,该系统要能够实时显示采集的数据。基于这些要求我们对系统进行设计。
2 系统概要设计
开关信号采集的系统传统上采用分立元件,如利用74LS148芯片进行设计,但系统不具备足够的信息储存能力,对信息的记忆能力较差。如果信号输入过快,就会造成信息丢失,达不到效果。
考虑到系统的实际需求和设计完整性,我们采用带有储存单元的HD7279芯片和单片机AT89S51来完成系统设计。芯片集成度高,数据信息不会丢失,可以提高信号传输的有效性和可靠性,更好的达到有效的采集和传输数据的目的,而且比较经济。多片HD7279之间都是并行关系,可同时对若干个终端进行信号的采集与传输,单片机主要是对多片HD7279进行控制,并将HD7279传输来的信号暂时储存在单片机中,由单片机实现与计算机之间的通信,把HD7279来得信息传输到计算机中。该系统的原理图如图1。
该系统由数据采集单元、单片机控制单元,通信传输单元组成。DB25接口可以外接所需的矩阵开关信号终端,扩大此系统的应用范围。数据采集单元有信号输入时,就向单片机发出中断请求,通过键盘扫描单片机对数据进行采集并储存在各个串口的寄存器中,然后由单片机通过串行通讯接口逐个将各路信号数据传输到计算机中。
3 主要芯片功能
3.1 AT89S51单片机
AT89S51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其主要管脚说明如下:[1]
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口。
3.2 HD7279芯片
HD7279是一片具有串行接口的,可同时驱动8位共阴极式数码(或64支独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。其特点如下:[2]
1)串行接口,无需外围元件可直接驱动LED
2)各位独立控制译码/不译码及消隐和闪烁属性
3)(循环)左移/(循环)右移指令
4)具有段寻址指令,方便控制独立LED
5)64键键盘控制器,内含去抖动电路
HD7279A需要一外接的RC振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15p F。
4 电路设计
4.1 单片机控制电路设计
由于单片机AT89S51有P0、P1、P2、P3四个I/O接口组,一共有32个独立的I/O通道。应此我们采用单片机的P0作为数据端口,P0口的每个I/O口分别和HD7279的DATA口相连,作为数据传输通道。P1口与HD7279的片选CS相连,每个口接一个HD7279的片选端。P2口接HD7279的KEY端子,P1口给出片选信号,让对应终端进行数据的采集,让后将采的的数据传输到P0端口,并保存在P0端口的寄存器当中。同时,单片机将数据进行转移到单片机的串口当中,由串口和计算机进行数据的传输。[3,4,5]
该部分的电路设计如图2。
4.2 数据采集单元的设计
数据采集单元主要是由HD7279芯片来完成,通过接入64位键盘,对所采集到的数据具有保存的功能。图3是对这部分的具体设计。
4.3 按键部分设计
按键部分的原理电路下图所示。键值赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置0电平,读出各行状态为非全1状态,这时的行、列数据组合成键值。以上图为例,从左到右、从下到上依次是77,7B,7D,7E;B7,BB,BD,BE;;E7,EB,ED,EE。这时键值依次为88,84,82,81;48,44,42,41;;18,14,12,11。
其主要工作方式主要包括:
4.3.1 编程扫描工作方式
编程扫描工作方式是利用CPU在完成其它工作的空余,调用键盘扫描子程序,来响应键输入要求。在执行键功能时,CPU不再响应键输入要求。键盘扫描子程序完成下述几个功能:
1)判断键盘上有无键按下。
2)去键的机械抖动影响。
3)求按下的键号。
4)键闭合一次仅进行一次键功能
4.3.2 定时扫描工作方式
定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描、并在有键按下时转入键功能处理程序。
当键盘中有键按下时,先检查KM标志,KM=0时,表示尚未作去抖动影响处理,此时中断返回同时KM置1。因为中断返回后要经10ms才能再次中断,相当于实现了10ms延时效果,因而程序中不需要演示。当再次定时中断后检查KP标志,由于开始时KP=0,程序进入查找键号,并使KP置1,执行键功能程序,然后返回。在KM,KP均为1时,表示键处理完毕,再次定时中断时,都返回原来CPU状态。
4.4 串行通信及系统硬件设计
为了和计算机之间进行快速有效的通信,我们采用串行通信方式,这种方式有两种协议,分别为RS232和RS485协议。232适合于短距离的串行通信,485适合于长距离的通信,可根据需要进行选择使用。
5 软件设计
5.1 单片机控制程序设计
单片机对HD7279的控制程序流程图如下。当然,单片机还对收发的数据进行进行编码和传输。其原理框图如图5所示:[6,7]
5.2 数据采集程序设计
对开关信息采集系统的软件编程,主要是单片机对HD7279的操作进行的编程,,主要完成读键盘程序、接收一个字节等功能。其程序流程图如图6。
5.3 串行通信程序设计
串行通信的程序设计主要指对串口的初始化,设定串口的工作方式,波特率,打开那个中断源,以及中断的优先级等。
6 小结
系统设计原理正确可靠,采用HD7279芯片和一片AT89S51单片机完成了硬件的设计,相比于采用74LS148芯片和RS485芯片设计的电路,数据存储及时可靠,系统鲁棒性强,信号传输的有效性和可靠性好,但是本文所设计的电路是理想条件下的基础电路,对一些特殊情况没有进行处理,如多路数据同时输入单片机处理机制等。在实际应用中需要结合应用领域背景对其进行扩展,加以完善。
参考文献
[1]Baidu Encyclopedia[OL].[2009-03-23].http://baike.baidu.com/view/1641206.htm.
[2]Baidu Encyclopedia[OL].[2009-03-23].http://baike.baidu.com/view/2383834.htm
[3]张侃谕,王亚哲,袁亚丽.ARM和CPLD实现温室多路数据采集控制系统[J].微计算机信息,2006,10(2):19-21.
[4]李正岱.多路信号采集器的硬件电路设计[J].微计算机信息.2008(24):60-63.
[5]赵曙光.可编程逻辑器件原理开发与应用.[M].西安:西安电子科技大学出版社,2002.
[6]张齐,杜群桂.单片机应用系统设计技术——基于C语言编程[M].北京:电子工业出版社,2004.
多路信号采集 第2篇
智能测温模块由MSC1210微转换器构成,模块本身具有完整的信号调理、A/D转换、数据修正计算及变换内部标准等功能。为了避免外部干扰对A/D转换的.影响,SPI接口使用高速光电耦合电路,并采用模块自带的稳压电路供电。由于一个模块只能处理1~4路温度,因此可以同步进行多组模块的温度测量,大大加快了多点温度测量的速度。主机用来控制测温模块,从测温模块中读取温度数据并处理,同时完成人机接口以及其它功能。视应用场合的不同,主机可以使用多路类型的单片机,这里选用ATMEL公司的ATmega128。该款CPU采用Harvard流水线结构以及RISC指令,并具有较大程序容量(128KB)的FLASH,在16MHz主频下可以达到16MIPS的处理速度。
2 MSC1210的增强功能及使用注意事项
作为智能高精度测温模块的核心,MSC1210完成了微弱信号的多路切换、信号缓冲、PGA编程放大、24位∑-ΔA/D转换、数字滤波、数据处理、信号校准以及SPI通讯等功能。
MSC1210集成了一个8通道24位∑-ΔA/D转换器,采用8051兼容内核。与笔者之前使用的ADuC824相比,其有如下增强的功能:
(1)CPU工作频率可达33MHz,每条指令只需4个时钟周期,运算速度较快。
(2)采用非常灵活的FLASH与SRAM存储器配置,,可以对片上FLASH进行分区,根据需要设定程序FLASH与数据SRAM所占的比例。该写次数可达一百万次,数据可保存1。
(3)片上RAM为1280B,有34个高电流驱动I/O,可以设外部存储器的存取时间,使用双数据指针提高存取速度,具有完善的节电功能,还用双数据指针提高存取速度,具有完善的节电功能,还有电压监视器、21个中断源、3个16位定时器计数器以及内部时间间隔计数器(TIC)。
(4)自带BOOT ROM,可以调试使用或在程序中调用内置固化程序,完成在线调试、数据采集、UART通讯以及读写FLASH等工作,方便了编程以及调试。
图2 标准热电阻测温模块硬件框图
(5)片上24位∑-ΔADC具有一些增强特性:8位输入通道可以任意配置为单端或差分输入;有快速、Sinc2、Sinc3三种数字滤波,同时有自动数字滤波功能,可以加快A/D转换输出;带PGA偏置DAC,可以不引入额外误差而扩大测量范围;自带一个32位累加器,可以对ADC输出数据作快速平均处理。
(6)自带高精度电压标准,精度为0.2%,漂移为5ppm/℃,可以节省空间以及器件成本,也可输出该电压标准或外接电压标准。
(7)片上16位PWM,可以作为DAC输出来源。
(8)增强的SPI接口可以使用DMA方式传输数据,在DMA方式下,可以间接寻址RAM,设定多达128B的发送接收FIFO;具有完整的端口驱动以及发送接收中断设定,适合大批量的数据传输,同时点用CPU资源较少。
MSC1210功能较强
且易于使用,但因为是新器件,参考资料较少。笔者在使用过程中发现需要注意如下问题:
(1)MSC1210片内FLASH分区只能通过对HCR0以及HCR1这两个硬件配置寄存器事先编程来进行,在程序运行过程中无法设定或更改分区比例。在程序运行中读写FLASH时,要注意读写地址与调试时的地址不同,具体应参考存储器分配表;用户程序无法直接读写FLASH,调用BOOT ROM中的读写函数来进行;与AVR等芯片的EEPROM不同,写入FLASH之前必须先进行擦除操作,BOOT ROM中有可调和场擦除子程序,可以在汇编或C程序中调用。
(2)在做A/D转换时,每次更改PGA放大倍数需要重新校准,在需要频繁切换输入通道的场合,建议设定特殊寄存器ADCON1的SM1~0位为00,即进入自动模式数字滤波。这样当通道切换后,随着A/D采样次数的增强,数据滤波依次为快速转换、Sinc2、Sinc3数字滤波,可以最大限度地提高转换速度和转换精度。
(3)BOOT ROM中固化的程序对于MSC1210的编程和调试非常关键,其中部分可以在用户程序中直接调用,完成数据采集、UART输入输出等重要功能。可以通过串口或并口进行编程。
(4)使用TI提供的下载工具及调试终端,可以对MSC1210实现在线调试。这种调试会占用UARTO资源,同时辅助中断的入口地址也有变化,这在编程时需要注意。也可以利用Windows自带的超级终端进行调试。与TI终端不同,Windows超级终端不能自动初始化MSC1210使之进入调试状态,需要人工进行调试复位。
图3 标准热电阻测量以及信号调理电路
3 高精度测温模块的硬件描述
MSC1210最多可以配置4组差分输入通道:对于标准四线热电阻的测量,需要两组通道来分别测量驱动电流及电压;对于标准热电偶的测量,如果采用冰点作为冷端补偿,需要一组差分通道;如果采用自带冷端测量,则往往需要另外两组通道测量冷端热电阻的温度。因此,对于标准热电阻测量,同一个模块最多有两路测温通道;对于标准热电偶测量,如果用统一的冷端补偿,最多可以有4路测温通道。同一模块的不测温通道的切换需要时间稳定信号以及重新建立ADC测量输出,在有速度要求或需要进行多值平均的情况下,为了得到较快的测温速度,每个模块的测温路数会相应减少。这里介绍单通道标准热电阻测温模块,其硬件框图如图2所示。
模块采用独立的模拟供电(5V)和数字供电(3V)。在印制板设计上,数字地与模拟地分离,在MSC1210芯片下相连,同样,为了进一步减少外界和数字电路对模拟电路部分的干扰,SPI接口与外部之间采用高速光电耦合连接。所有的电源以及信号接口采用统一的两边插针形式,便于直接插入主机母板。这里将比较有特色的标准热电阻测量以及信号调理电路绘出,如图3所示。
在图3中,分压电阻R12与R13为运算放大器U2提供一个参考电压,在R10上产生一个恒定的电流,经Q1输出。为了减少高精度低温漂电阻的使用数量,R10、R12、R13均采用普通电阻。使用高精度低温漂电阻Rr作为电流检测电阻,将输出电压信号经R2、R3送往MSC1210的一组差分输入端,恒定电流通过四线标准铂电阻Rs,将产生电压经R4、R5送入MSC1210的另一组差分输入端,经MSC1210进行四线法测量电阻的计算,以消除铂电阻温度计引线的影响。R2、R3、R4、R5是限流电阻,防止输入电压过高损坏MSC1210;D1、R6、C12提供一个参考电压,使MSC1210有合适的差分电压输入。由于使用MSC1210的内置电压标准输出,电容C9、C10、C11是不可缺少的。MSC1210具有内置PGA(1~128),因此无需放大电路即可直接测量微弱信号。
4 高精度测温模块软件的描述
在多路高精度测温系统中,测温模块能独立进行数据采集、拟合修正、分度转换、与下位机的数据通讯,并通过SPI接口向上位机(主机)发送测量到的温度数据,接收上位机发来控制指令,进行参数设置及校准操作。与上位机通讯的指令采用不定长的ASC代码指令,用不同的信令头(SOT)代表不同的控制,并有CRC纠错以保证数据正确传输,信令有统一的结束码(EOT)。
在测温模块的MSC1210的程序功能中,分度转换是重要的组成部分,也是耗时较多的计算过程,这里简要说明一下。
对于高精度温度测量,需要考虑的一个重要问题是温度传感器的选择。对于热电阻与热电偶,有标准传感器与工业传感器之分,这里选择精度较高的标准传感器,并根据ITS-90国际温标以及中国相关计量检定规程进行分度转换。
与工业热电阻、热电偶不同,标准热电阻或热电偶的分度计算是一个比较复杂的问题,简单的查表计算或曲线拟合一般很难达到分度转换的精度要求。以标准铂电阻温度计为例,它使用一组规定的定义固定点和参考函数以及相应的差值函数内插,在0~419.527℃温区内,温度t由下列公式确定:
(本网网收集整理)
其中,Wr(t)为参考函数,Ci与Di为系统,ΔW8(t)为差值函数,W(t)为电阻比,a8与b8为具体标准铂电阻温度计的分度系数,可以通过具体温度计校准结果Wzn、Wsn、W100等参数计算得到。在选择了相应的热电阻之后,将该参数通过SPI接口的通讯控制指令输入测温模块。
可以看到,MCU只有具有较快的运算速度,才能在每次ADC输出数据后及时将电阻值转换为温度值,分度计算、误差修正、
数值处理以及通讯控制等均由MSC1210完成。修正到上位机的是测量得到的温度值,这样上位机即使在配置多个测温模块的情况下也能从容完成处理工作。
多路信号采集 第3篇
针对这些问题, 文中将现场可编程门阵列 (FP-GA) 和AVR单片机相结合, 应用于激光光幕坐标靶测试, 达到了高速密集多路光信号的并行采集, 充分发挥FPGA I/O口众多、响应速度快和单片机控制方便的特点。
1 Altera FPGA和AVR单片机
文献[6]介绍了一种实弹射击精确自动报靶系统。在该系统中, 发光二极管发射平行光束, 光电二极管组成接收传感器阵列, 共同组成光电靶。子弹穿过靶遮挡光束, X、Y轴对应的光电二极管输出脉冲信号, 通过编码形成8位二进制地址码, 利用单片机进行数据处理。为了解决I/O口不足的问题, 文献[5]不得不采用13片74148芯片的8-3线编码器组合成100-8线编码器, 这样做不仅连线繁杂而且无法适应大靶面的需求。而用FPGA和单片机相结合, 就可以很好地解决这些问题。
Altera公司的Cyclone I系列的FPGA, 是基于Stratix的工艺架构, 采用0.13μm的工艺制造, 其内部有锁相环、RAM块、逻辑容量从2 910~20 060个LE。本系统选用了Cyclone的EP1C6Q240C8, 它有5 980个LE、20个M4K的RAM, 2个锁相环、最大用户I/O数为185[8]。由于测坐标模块的X轴和Y轴各需要125个光电探测器组成, 所以必须有125路输入信号, 加上各种控制管脚和输出口, 选用的FPGA用户I/O口必须在140个以上。
ATMEL公司的AVR是8位单片机中第一个真正采用RISC结构的单片机。它采用了大型快速存取寄存器组、快速单调周期指令系统以及单级流水线等先进技术, 使得AVR单片机具有高达1 MIPS/MHz的高速运行处理能力。系统的总控制模块使用ATMEL公司的ATmega16L作为控制器, 它采用先进的RISC结构和AVR内核, 拥有16 KB在线可编程Flash程序存储器, 1 KB片内SRAM数据存储器, 512字节片内在线可编程EEPROM数据存储器。支持片内调试, 包含丰富的外围接口, 同时具备了宽电压、高速度、低功耗等优点[9]。完全满足系统的要求。
2 FPGA和单片机应用于密集多路光电开关信号检测
2.1 控制和采集
激光光幕测坐标靶的控制和采集部分由单片机Atmega16和FPGA EP1C6Q240C8组成。控制部分的框图如图1所示, 由于X轴和Y轴的采集系统相同, 故只画出Y轴的系统框图。
激光光幕测坐标靶的原理与文献[6]相似, 也是对X、Y轴的输出脉冲信号进行处理, 在此不赘述, 从图1中可以看出, 输出脉冲信号经过施密特触发器, 使输出的电压满足FPGA的电压要求。
2.2 FPGA和单片机的软件处理
软件的处理主要分为FPGA和单片机的软件处理, 其中要用到的信号如表1所示。
FPGA主要负责信号的并行采集, 由于I/O口丰富, 可以并行采集125路数据, 免去了串联编码芯片的繁杂。工作的流程图如图2所示。
单片机主要负责将FPGA传输来的数据转换成坐标数据, 然后进行显示。主程序工作流程图如图3所示。
3 应用分析及仿真验证
3.1 应用分析
为了能使FPGA和单片机应用到弹丸坐标的测试中, 首先应该满足的条件就是有足够快的反应速度。这里设定弹丸长度为3 cm, 光幕宽度为0.5 mm, 这样, 弹丸通过光幕时, 采集装置必须在这35 mm的路径之内对弹丸飞行坐标进行采集。设弹丸速度为2 000 m/s, 则弹丸从飞入光幕到飞出光幕的时间为17.5μs, 设置FPGA的采集间隔为20 nm, 这样, 在35 mm的路径中, FPGA已经对同一个弹丸的坐标值采集了875次, 绝对满足弹丸坐标数据的采集。但如果将这875次的数据全部传输给单片机, 不仅造成数据的拥塞, 还会给单片机的处理造成麻烦, 所以FPGA将这875次数据进行相或的运算, 得出一组数据, 这样不仅保证了准确度, 而且需要传输的数据量也不大。
对于AVR单片机, 使用的是7.372 8 MHz的晶振, 每个机器周期为125 ns左右, 为了使单片机不拖延FPGA的运行速度, 这里采用采集和处理相独立的方法, 单片机的处理速度不会影响到FPGA的采集速度, 因此不会影响系统性能。
系统是否能测连发, 关键是看第二发通过启动光幕之前, 系统是否已经对第一发数据处理完毕并复位, 即枪械的射频不能超过系统每秒处理弹丸数据的次数。假设弹丸的速度为720 m/s, 靶距为2 m, 则弹丸通过两光幕的时间为2.8 ms, AVR单片机采用7.372 8 M晶振, 系统一个时钟周期大约是0.14μs, 系统进入一个子函数需要3个时钟周期, 进入外部中断至少需要8个时钟周期。
在编写程序时, 为了节省单片机处理数据的时间, 系统对弹丸参数只进行简单的处理, 待全部打完之后, 由上位机发送信号, 使单片机对数据进行处理, 然后发送。这样就可以满足连发的测试要求。
此外, FPGA还有I/O口众多的优点, 弥补了其他处理器的采集端口不足的缺点, 如果要求测试的靶面较大, 可以采用FPGA拼接的方法, 利用多个FPGA并行采集, 系统的响应速度也不会降低。
3.2 仿真验证
FPGA工作的仿真图如图4所示, 在FPGA初始化后, 当ain不为0时, FPGA开始采集, 当ain再次回到0时, into发出下降沿, 单片机将cs拉低后, 在16个dclk脉冲之后, 将q信号读到单片机中。在整个系统中, FPGA独立完成数据的采集以及储存, 这样做的好处是可以发挥FPGA I/O资源丰富, 速度快的优点。
为了验证系统是否可以测高速连发弹丸坐标, 文中对单片机的程序进行仿真, 如图5所示。通过在AVR Studio软件上仿真可知, 从弹丸穿过截止靶, 系统开始接收数据, 到最后初始化完成, 等待下一发弹丸, 程序上总共用了122.21μs, 不足1 ms, 即只要枪械每一发的射出时间间隔大于1 ms, 系统就可以测试该枪械的连发弹丸参数。
4 靶场坐标测试实验
为了测试FPGA和单片机应用在激光测坐标靶中的性能, 进行了现场实弹射击实验, 用某半自动步枪发射直径为7.62 mm的子弹, 弹丸速度约为750 m/s, 通过串口显示阻挡Y轴探测器的路数。Y轴测试长度为125路信号 (可扩展) , 靶纸位置距光敏二极管阵列为2 m, 光幕宽度约为5 mm, 由于接收装置选用了直径为4 mm的光敏二极管阵列, 所以本系统的精度为±2 mm, 且子弹通过光幕最多遮挡两路信号。测试数据如表2所示。
从实际测得的10发子弹的弹着点坐标数据中, 可以看出, 弹着点分布于整个有效靶区范围内, 即在靶区的任何位置, FPGA和单片机都能够准确地显示坐标数据。
在试验数据中, 发现有部分实验数据和比对数据出现偏差, 其原因是因为每次子弹通过坐标纸后, 以相同直径的铁棒插进弹孔, 然后查看光敏二极管阵列中哪几路被挡光, 由于人为因素, 插入弹孔的铁棒不一定能与地面保证平行, 且不一定能准确反映子弹弹道, 所以应该以显示数据为准。
实验没有对连发弹丸进行弹着点坐标的测试, 因为在单发测试中已经表明, 只要满足FPGA的反应速度, 就可以准确地捕捉到弹丸的过靶信号。
5 结论
在对比文献[4]和文献[5]的基础上, 将现场可编程门阵列 (FPGA) 和单片机相结合, 用于激光光幕坐标靶测试。通过使用FPGA来代替众多编码器的串联, 同时利用单片机控制的灵活性对采集数据进行处理。
理论和实践都表明, 由FPGA和单片机组成的数据处理、采集装置应用在激光光幕测坐标系统中, 不仅继承了光电靶的众多优点, 满足不同尺寸弹丸飞行坐标的测试, 还解决了传统激光光幕测坐标靶的处理器I/O紧缺、处理速度慢等缺点。同时, FPGA和单片机可以应用在大靶面的坐标测试中, 同时保证较高的测试精度和较小的误差。
此外, 它不仅能测试弹丸的弹着点坐标, 还可以测试高速物体的飞行轨迹以及速度, 应用前景比较广阔, 在军事、反恐、安检、商业等方面都可以得到很好的应用。
摘要:针对激光光幕坐标靶测试中控制器I/O口不足的问题, 提出现场可编程门阵列 (FPGA) 和单片机相结合实现高速密集多路光电信号的并行采集与控制。采用FPGA作为光电开关信号数据的采集和存储装置, 单片机控制FPGA的工作, 并处理、显示数据。对7.62 mm弹丸的过靶坐标进行了测试实验, 结果证明, 基于FPGA和单片机的高速密集多路光电信号并行采集与控制系统解决了传统激光光幕测坐标靶的处理器I/O口紧缺、处理速度慢等缺点。系统具有响应速度快、灵敏度高、可拼接的优点。
关键词:激光测坐标靶,FPGA,AVR单片机
参考文献
[1]王昌明.实用弹道学[M].北京:国防工业出版社, 1994.
[2]周承仙.连发射弹弹丸速度及弹着点坐标测量系统的研究[D].太原:中北大学, 2008.
[3]赵豫姝, 赵冬娥, 赵辉.一种新型激光测速系统的设计与应用[J].弹箭与制导学报2008 (4) :285-287
[4]白兴满.炮用激光测速系统的设计[D].太原:中北大学, 2003.
[5]王连海, 杨慧武.组合平行激光光幕靶.中国200420007418.7[P].
[6]范茂彦, 张丽芳.实弹射击自动精确报靶系统研制[J].传感器世界, 2003 (11) :3-5.
[7]秦向军, 周汉昌.激光光幕自动报靶系统的设计与实现[J].计量与测试技术, 2009 (3) :14-17.
[8]黄智伟.FPGA系统设计与实践[M].北京:电子工业出版社, 2005.
多路信号采集 第4篇
声信号采集系统,是声信号处理的基础,是声纳、声目标定位、声信号分离、声信号增强的采集系统,其设计的性能直接影响到这些处理的结果。系统基本结构如图1,
由2个以上的拾音器按一定的结构组成,如均匀线阵[1]、均匀圆阵[2]。在后续的处理中可以利用阵列结构信息进行信号参数的估计,如MUSIC[3]算法,可以利用阵列的信息进行多重信号分离、目标定向和抑制干扰。
拾音阵列负责将接收到的声信号转换为电信号。在接收声信号时,由于阵元间有一定的距离,相同的声源信号达到各阵元的时间不同,即各阵元间存在相位时延,利用相位时延和阵列结构信息,可以估计出信号的各种参数。信号调理是对阵元接收到的微弱信号进行放大和滤波。以提高系统的灵敏度和限制带宽在4KHz之内,以便可以降低AD采样频率。ADC负责将模拟信号转换为数字信号。得到的数据送给处理单元进行存储、计算、输出处理结果。
为了能用采集到的数据进行声目标信号参数估计。系统必须要有好的性能。因此,拾音单元用的是高灵敏度的驻极体话筒,信号调理单元用的是MAX9812驻极体专用放大电路,AD用的是ADS7864并行6通道同步采样AD转换芯片。在本系统中数据是要实时传输并存储在计算机中,因此,选择了端口兼容3.3v和5v的STM32F103zet6作为AD时钟信号源、转换控制逻辑,同时STM32F103zet6内部自带有全速USB接口,可将数据传输给计算机。因此,本系统只用到MAX9812、ADS7864、STM32F103zet6三类芯片就可以完成数据采集和传输功能。系统具有简洁、性能稳定、干扰小和完全同步采样等的特点。利用采集到的数据进行MUSIC计算,能准确定位远场声目标的方位角。
1 系统参数要求
本系统采集到的数据主要是用于进行波达方向(DOA)估计。为能达到DOA估计的要求,采集系统必须满足如下要求。
(1)各阵元同时采样信号
阵列中的各阵元对声信号进行采样时,必须保持同步,否则各阵元间会出现采样时延,给后续的信号处理带来误差。如进行MUSIC计算时,是利用信号到达各阵元之间的时延和阵元结构信息进行计算,如果存在采样延时,就会出现估计误差。
(2)高信噪比
系统必须是高信噪比的,这样在后续处理时才能简便和有效,如声目标定位,在高信噪比的情况下,算法的准确性更高。
(3)大容量存储
由于采集阵列的单元数大,并且采样率必须满足Nyquist采样定理,同时采集时间长,采集得到的数据量大。因此必须用大容量的存储设备对采集到的数据进行存储。
(4)将采集到的数据实时传递给计算单元(如计算机、DSP)
采集得到的数据必须进行实时处理,这样才能够进行实时的DOA,进行实时跟踪。处理单元是由计算能力强大的计算机和DSP充当的,因此必须将采集到的数据实时传递给计算单元。
2 系统设计
根据系统的基本结构和系统参数需求,对系统的硬件电路和软件进行设计。
2.1 系统电路设计
(1)拾音阵列和信号调理单元
拾音阵列使用的是全向接收、高灵敏度的驻极体话筒。信号调理用的是驻极体话筒专用放大芯片MAX9812H,该芯片内置有低噪声、20db固定增益的放大电路,增益带宽积为500k Hz,电源抑制比为100d B,外围电路简单,这些特点都能提供系统的高信噪比[4]。
系统需对远场声信号的采集,由于距离远,到达驻极体话筒的声信号会很微弱,因此,单片MAX9812增益达不到需要的灵敏度。因此必须采用双片级联来增加采集系统的增益,电路如图2。
采用双片级联,使得信号调理单元的增益达到40db,话筒输出的微弱信号被放大10000倍,因此系统有很高的灵敏度。非隔直输出的目的是为了方便ADC单元而设计的。信号的输出可以从0~5V。
(2)ADC单元
该单元采用了TI公司的ADS7864芯片,该芯片具有6通道同步采样,当采用相同的采样时钟对多通道进行采用时,每个通道采样的时间准确同步[5],可以消除采样延时误差。采样频率可以到达500k Hz,极大的满足声信号的Nyquist采样定理。
每个通道都采用了差分输入,提高了共模抑制比,降低了外界对输入信号的干扰,从而提高了系统的信噪比。12位的AD采样精度采用并行接口输出,这样可以降低ADC外部控制逻辑的复杂度,提高了系统的可靠性。电路如图3。在电路中,将每个通道的反相端(-)连接AD的参考电压REFOUT(2.5V)。因此将ADS7864的差分输入变为单端输入,可以减少了从话筒放大电路到ADS7864间的单端到差分输出的转换电路。为减少外界对输入的模拟信号的干扰,话筒放大电路输出信号通过具有屏蔽层的专用音频线连接到ADS7864。并且连接线尽可能短。这样可以增加系统的抗干扰能力。
图3连接方式,数据D与模拟电压的关系为:
实际上是带符号的12位二进制表示。最高位是符号位。当小于参考电压2.5V时,AD值的最高位为1,表示负数;当大于参考电压2.5V时,AD值的最高位为0,表示正数。
(3)ADC控制和数据传输单元
因为声信号采集系统采集的数据量大,所以不便直接存储在ADC控制单元中,并且采集的数据需要送给处理功能强大的计算机中进行处理。因此采集到的数据实时传输给计算机进行存储、处理和显示处理结果。本系统的AD控制和数据传输单元选用了性价比高的意法半导体公司的STM32F103zet6,该芯片以ARM公司的Cortex-M3为内核,3.3V供电,低功耗,可以运行在72MHz的时钟频率上,保证了系统高速的运行。有丰富的I/O接口,数目112个,这些接口大部分可以容忍5V电压,因此可以直接与5V电源供电的ADS7864直接相连,减少了5到3.3V的电平转换,简化了电路,提高了系统的稳定性。STM32F103zet6内置有的USB控制器和接口电路,遵循USB2.0协议,支持全速(12Mbit/s)传输,不需要任何片外的USB物理层电路(PHY)就可以与计算机连接[6]。因此STM32F103zet6一个芯片就可以充当AD的控制逻辑电路,同时将数据传输给计算机,解决了实时传输要求和大容量存储要求。电路如图4。
图4中,STM32F103zet6控制了两片ADS7864,使用相同的AD时钟(CLOCK)、采样时钟(HOLD)、读取信号(RD)和数据线(DB0:11)。各自通过片选(CS),决定数据线DB0:11是输出数据或高阻态。值得注意的是CS只是控制数据线(DB0:11)的状态,而不影响ADS7864的其他操作。由于两片ADS7864构成的12路AD通道共用了AD时钟和采样时钟,因此这12路AD通道的采样是完全同步的。实际上,根据需要,可以连接更多的ADS7864,实现更多路同步采样的数据采集系统。
2.2 系统软件设计
系统软件包括:AD控制软件、USB软件、计算机接收数据软件。
(1)AD控制软件
STM32控制ADS7864采集数据,需要产生8Mhz的AD时钟信号、采样信号、片选、通道选择等信号。
AD时钟是由STM32的PA8输出系统时钟(8MHz)。程序如下:
RCC->CFGR|=0X06000000;//设置输出HSE时钟(高速系统外部时钟)
采样启动,是由计算机(上位机)通过虚拟串口进行控制。当上位机设定了采样点数和启动采样后,采样定时器被设置和启动,如下函数:
Timerx_Init(29,299);//定时为125ms,即采样率为8k Hz
当采样定时到时,进入中断服务子程序程序,(图5)
产生相关的AD控制信号,并将每路数据通过虚拟串口发送给计算机。程序如下:
通过CS选择芯片和设定A0、A1、A2的电平来选择不同通道,将这些通道输出的数据放入data_tem缓冲区中。
(2)USB控制软件
本系统通过STM32F103zet6内置的USB虚拟串口模式传输数据给计算机。这样上位机的编程只涉及到串口编程,而不用编写复杂的USB接口接收数据的程序,降低了编程的复杂度。同时,因为虚拟串口是通过USB接口传输数据,所以传输率比普通的串口要快得多。
USB接口编程,本系统采用TI公司提供的固件STM32F10x USBLib。通过调用该库件的相应函数可以实现USB接口的初始化、数据发送、数据接收。函数如下:
(3)计算机(上位机)接收数据软件
上位机用比较接近C语言的C#语言进行编程,.NET Framework 2.0中提供了Serial Port类,该类可以实现上位机虚拟串口与STM32虚拟串口的数据传输功能。主要程序语句如下:
2.2 系统实物图
系统实物包括均匀园阵、ADC和USB传输部分。如图6,阵列是9阵元的均匀园阵,阵列的直径为20CM。声音在空气中传播C=340m/s,计算声波的波长为。为能计算接收到的远场信号的相关参数,声信号在各阵元之间的相移不能超过1个波长。因此该阵列只能接收小于1700Hz的声信号。
接收阵列到AD部分的信号线采用具有屏蔽层的音频传输线,这样可以减少外界对声信号的干扰。STM32控制AD的转换过程和将转换的。
结果数据通过USB接口送给上位机。
3 采集实测和分析
为验证系统的性能,进行灵敏度、信噪比的测试和单频声信号的DOA估计。
实验是在室外空旷的场地上,由信号发生器产生正弦波,通过功率放大送到喇叭播放,喇叭与阵列之间的距离为1.5m。
实测1:灵敏度和信噪比测试
信号发生器产生1.5Khz的正弦信号通过喇叭播放,采集系统接收的部分结果,如图7。阵元1的频谱图如图8。
从图7中可以看出,各阵元采集到的波形峰峰值幅度大于1V。没有看到有明显的噪声对正弦波的干扰。同时可以看出不同阵元有明显的相位时延。并且在图8中,可以看到在频率为1.5k Hz处的幅度特别的明显。这是因为本系统所采用的采集单元的灵敏度高所带来的结果。
由于采集到的信号,没有办法分别计算噪声和信号的功率。所以没有办法直接计算采集到的信号的信噪比。但是可以将采集到的数据从时域转到频域中,利用如下的公式可以计算信噪比[7]:
是在频域范围内,幅度的模的最大值,如图8中的最高点,对应该频点的是采集信号的频率。是噪声频点对应的幅度的模,[7]证明可以用该公式计算采集到的单频信号的信噪比。各个阵元采集到的信号的信噪比如表1。
表1中,可以看出,系统各个通道的信噪比都到达了24d B以上,因此到达了系统设计参数的要求。这是由于采用简洁的电路方案和采用有效的抗干扰措施,所以各阵元的波形没有看到有明显的噪声点干扰。
实测2:利用系统对声目标信号进行DOA估计
声目标以仰角为30度、平面角为60度入射。利用采集系统对信号进行采集。采集到的数据进行MUSIC计算,得到空间谱如图9。找出空间谱图中的波峰对应的仰角为30度、平面角为61度。仰角误差为0、平面角误差为1.7%。在频谱图中可以看出主峰比较陡峭。这是由于系统采用的AD采样电路是完全同步,不存在采样延时误差的现象。说明利用该系统采集到的数据用于实际的声目标定位是可行。
4 结论
通过对系统参数需求的分析,本系统采用了具有高性价比的STM32F103zet6单片机、具有完全同步采样的AD和双片级联的话筒放大电路。完全同步采样的AD控制电路模块,解决了阵列上不同阵元之间的采样时延问题。采用了两级级联的、具有固定增益的话筒放大电路,解决了系统灵敏度低的问题。STM32负责信号采集的控制,同时利用自身自带的USB接口传输数据给计算机。通过实测,在不加滤波器、采样频率低的情况下,采集数据还原的信号波形不存在明显的噪声,通过MUSIC计算,能正确估计声信号的波达方向(DOA)。这说明,本系统具有高增益、高灵敏度、干扰小和完全同步采样等特点。
参考文献
[1]张进.一种新的宽带信号DOA估计算法[J],电路与系统学报,2012,7(6):70-75.
[2]黄紧德,龙世荣,李京华.一种基于ICA与空间谱相关系数最大化的源数目估计算法[J].科学技术与工程,2012,12(35):9507-9512.
[3]Schmidt R O.Multiple Emitter Location and Signal Parameter Estimation[J].IEEE Trans.on AP.,1986,AP-34:276-280.
[4]MAX9812Tiny,Low-Cost,Single/Dual-Input,Fixed-Gain Microphone Amplifiers with Integrated Bias(S).Maxim Integrated,2012.
[5]ADS7864500kHz,12-Bit,6-Channel Simultaneous Sampling ANALOG-TO-DIGITAL CONVERTER(S).Texas Instruments,2013.
[6]STM32F103xE(S).STMicroelectronics,2009.
多路图像采集系统的设计 第5篇
1、多路图像采集设备的工作原理
多路图像采集系统主要由主控机 (采集系统) 、RAID磁盘阵列、快速交换机、供电单元、导引头采集单元、电视采集单元、短波采集单元、中波采集单元、短波采集单元等组成, 系统结构见图1。
导引头采集单元、短波采集单元、中波采集单元、长波采集单元各自采集目标的图像数据, 然后与主控机通过快速交换机形成千兆局域网进行数据交互。主控机通过串行总线和以太网实行各测试单元环境配置和管理。测试完成后各分单元将测试数据反馈至主控机进行整合, 并上传至RAID磁盘阵列进行存储。主控计算机对RAID磁盘阵列中的测试数据进行管理, 提供测试者进行分析和比较。
2、多路采集系统设计方案与实现
2.1热像仪图像的采集
热像仪的采集卡定为与原进口热像仪配套的采集卡E9800。采集卡E9800外部接口μDB68的示意图。
从Cedip’s Software系统结构来看 (见图3) , 热像仪的所有用户接口均通过Virtual Camera抽象出来, 对应用程序而言, 物理设备 (红外热像仪、FG9800数据采集卡、RS232、RS422以及USB2) 均是不可见的;类似于PC系统的IO, 对用户 (Application developer) 而言, 实际的物理IO设备不可见, 看到的是一系列抽象的对象, 譬如标准输入stdin和标准输出stdout等。Virtual Camera是由Windows服务和连接到该服务的客户端DLL组成;Vir Cam Server是ATL/COM组件运行的Windows服务, 它将所有已知的Cedip相机接口统一, 并给出了一个通用的切入点 (entry point) 供用户应用程序使用, 因此针对Cedip相机的应用程序开发也就是针对Vir Cam SDK的开发。
从图3可以看出, 有待开发的图像采集软件与生产商提供的Altair软件位于同一体系层级中, 且都是以Vir Cam DLL为基础的应用开发;因此, 只要Altair如图中所示, 是根据Vir Cam DLL开放的SDK所开发的应用程序, 而没有调用系统更底层或SDK未开放 (如果存在的话) 的部分接口, 那么有待开发的“Youre Software”--图像采集软件就完全可以实现Altari的所有功能, 包括Full Speed Recording。
2.2导引头数据的采集
要利用图1中NI的图像采集卡PCI-1422采集红外产品输出的串行数据, 必须在采集前端进行串并转换。在这里我们利用一块FPGA中 (altra的cyclone系列的ep1c12q240c8) 进行串并转换。
2.2.1凝视发送模式
所谓凝视模式即导引头在捕捉图像信号时始终按照一个方向顺序扫描。在此模式下, 首先在FPGA内部构造一块2K*16bit的FIFO (先入先出) 缓冲区, 由于图像数据的写入和读出速率不同, 采用FIFO缓冲可以实现异频域的数据读写。首先在接受到串行图像数据后根据发送时序的字同步信号可将其转换为16位并行数据, 在转换的同时将并行数据存入FIFO, 同时控制PCI-1422不断的读FIFO缓冲区。因此, 只要一有数据存入FIFO, 立即就会被1422读取, 从而节省了数据采集时间, 使采集时间尽可能短。
2.2.1线扫发送模式
对于线扫发送的模式, 图像数据是按照正逆扫交替发送的。我们的设计思想就是乒乓操作。在第一个数据缓冲周期, 将输入数据缓存到“数据缓冲模块1”中;在第二个数据缓冲周期, 将数据缓存到“数据缓冲模块2”中, 同时, “输出数据流选择单元”将“数据缓冲模块1”中缓存的数据读出, 送到“数据流运算处理模块”;在第三个数据缓冲周期, “输入数据流选择单元”再次切换将输入数据缓存至“数据缓冲模块1”中, 同时, 通过“输出数据流选择单元”将数据缓冲模块送至“数据流运算处理模块”中进行处理。依次类推, 从而实现高速数据的无间断传输处理。
将乒乓操作的基本原理稍作改动, 则可以实现正逆序交替信号的正序传输。可以在将输入信号缓存至数据缓冲模块时, 根据信号的正逆序标志, 正序或逆序缓存至不同的数据缓冲模块中, 而数据流运算处理模块则一直按正序方式对数据缓冲模块进行读取, 这样, 就可以在硬件上实现对图像信号的正序转换, 以适应PCI-1422采集板卡的采集要求。
2.3采集数据的同步
同步信号发生器 (即PCI-6259的一路D/A) 向各分单元注入时钟信号, 热像仪分系统PC中计数器卡PCI-1780U采集时钟脉冲并计数, PC从采集卡中解析当前数据并记录脉冲个数形成时标, 然后触发热像仪配套的数字采集卡进行数据的采集。每采集一帧图像数据将计数器卡采集的时统信号嵌入图像数据中。在这种方式下如果图像的帧频为100f/s, 则时统信号的误差为1÷100=10ms。另外, 考虑到实际工作中各设备启动时间差别不会超过10分钟, 所以我们把系统的时统数最大设为10*60*100=60000, 转为2进制为16位, 所以完整的数据是每一帧数据中加一个16位的时统数。而总共数据传输速率也就相应的增加了16*100=1.6K。
3、结束语
系统联试表明, 本系统能够完成3种热像仪和红外产品的图像采集, 并能实现4个分系统的数据对时功能, 完全达到了设计要求。
摘要:本文讨论的系统主要用于科研阶段的红外产品主要性能参数的测试和对照, 记录红外产品和热像仪的各种工作参数, 进行事后数据分析和对比。利用采集的数据对外场试验过程中各种数据源的采集和数据源的融合。包括红外导引头图像数据和数字量的采集及存储;中波红外热像仪图像数据的采集和存储;长波红外热像仪图像数据的采集及存储;短波红外热像仪图像数据的采集及存储。并完成以上四种采样数据的系统对时。
谈多路数据采集与处理系统 第6篇
关键词:数据采集,数据通信,技术应用
0 引言
数据采集系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算并从检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。
数据采集系统一般由数据输入系统、数据存储与管理、数据处理、数据输出及显示这四个部分组成。输入通道要实现对被测对象的检测、采样和信号转换工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除有关干扰噪声,分辨无关信息和必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,例如打印、显示、绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。
1 数据采集在电测专业中的应用
数据采集就是将被测量对象的各种参量通过各种传感器元件做适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或储存纪录的过程。控制器一般均由计算机承担,所以说计算机是数据采集系统的核心,它对整个系统进行控制,并对采集的数据进行加工处理[1]。
电测试验专业主要负责电测、热工、电能质量三大专业的技术监督管理及实施工作,各项工作的开展都与数据采集密不可分。尤其是进行室内仪表检定时,校验仪器能实时显示检定数值与实际值的误差,但校验仪器还存在着一个缺陷,就是不能对历史记录进行查询,如对某个测试值存在疑问时无法查询该检定仪表在检定过程某个时刻所显示的历史值。为此,通过开发一个上位机监控软件,对校验过程中得到的数据进行实时曲线绘制、报警设置、历史曲线绘制、数据的保存和查询等分析与处理。
2 多路数据采集系统软件
2.1 多路数据采集系统软件的设计
本文设计的数据采集系统是基于PC硬件平台,采用研华PCL-812PG多功能数据采集卡作为数据采集工具,并利用Visual Basic软件进行多路数据采集与处理系统的程序设计。其结构如图1所示。
程序指令如何由总线传达到DAQ(Data Acquisition Card)卡,并使DAQ卡执行控制或返回DAQ卡的状态信号数据?这是一个相当不容易解决的问题。在以往DOS的时代里,利用Input/Output指令可以直接控制计算机上的地址,但在Windows操作系统中已经不能直接这样做了。
Visual Basic本身的程序无法直接控制DAQ卡,必须借助DLL或是额外OCX控件的协助。一般的厂商经常会提供相应的DLL程序提供方便的途径供用户快速地达到控制的目的,较大型的厂商通常也会提供OCX,帮助用户以最方便的方式和DAQ卡通信[2]。两方式都很好,可以根据使用的场合而定,如果使用的信息采集量不是很多,而且不在意CPU被占用的时间,使用OCX是相当方便而且简单的。如果希望对DAQ卡进行底层控制,使采集卡的功能得以淋漓尽致地发挥,使用DLL函数调用可以使DAQ卡的控制达到最大的灵活性[3]。本文主要是使用研华PCL-812PG板卡所提供的OCX控件对其进行控制。针对一般的模拟输入、模拟输出、数字输入输出都有相对应的OCX可以使用。在将板卡驱动安装完成后,就会有这些必要的OCX存在,只要按照一般的OCX使用方式加载,并且按板卡的指导说明使用就可以了。
2.2 Visual Basic与数据采集卡的通信
在Visual Basic中,每个OCX所提供的属性、事件、方法统称为接口成员。本课题使用的DAQAI控件的主要接口成员如下。
Close Device:重置先前打开的设备。
Data Type:指定返回的数据的方式及类型:原始数据或转换后的数据。
Get Input Range:获取指定设备的输入范围。
Max Differential Channel:获取可用的差动模拟输入通道。
Max Single Ended Channel:获取可用的单端模拟输入通道。
Overall Input Range:指定设备的全部输入范围。
Open Device:打开所选的板卡设备。
Raw Input:读取采样中的数据,以二进制数值表示。
Realinput:读取采样中的数据,转换成电压值形式表示。
Select Device:弹出板卡选择对话框。
2.3 数据的读取、显示及报警
本数据采集卡给用户提供了两种读取数据的方法,分别是:以二进制的形式读取数据和以电压值的形式读取数据。本课题使用的是以电压值的形式读取数据然后再用Format函数使获取的数据精确到小数点后两位。以及使用Hex函数把经放大之后的电压值数据返回其整数的十六进制数表示其范围为000H~FFFH,同时以一定的放大公式将格式化之后的电压值转化成本设计中所要采集的温度、电压和流量数据。然后使用Timer控件使程序能够按照一定的时间段获取数据,将这些转化之后的温度、电压和流量数据以二维数组的形式保存下来并跟程序中的参数设置进行比较,判断其是否超出给定的上、下限同时在Label和Shape控件组中实行文字说明和图示报警。程序代码分别如下。
数据的读取和显示
报警设置(选取一路的报警设置,其他两路原理相同):
温度报警,wd为经转换后的温度显示值,wh和wl分别和该路通道的上下限:
Label21.Caption="温度过高"
Label21.Caption="温度过低"
Label21.Caption="温度正常"
End If
2.4 实时曲线的显示
实时曲线反映了现场数据的实时性和当前趋势,以监测该点在现场工况变化情况下的控制稳定性。因此,在实现时需显示曲线的动态变化,利用Picture Box控件让图形的显示能够不断地随采集到的数据而更新,从而使整个曲线动态地向左移动[4]。
在本课题设计中的动态左移是通过翻页的形式实现的,每页能画200个点,画满200个点之后翻页,在画点的同时根据读取的数据跟程序设置的上、下限参数比较分别以绿色的点表示正常,红色的点表示超出上、下限。
其主要程序如下,以一路为例,其他两路原理相同。
200个点以内温度曲线
End If
t=t+1(变量t为读取数据的记录数)画200个点以后翻页
2.5 历史数据的查询
将记录和数组两种数据类型结合,能够描述更为复杂的数据,尤其是具有表格形式的阵列结构。Visual Basic有一个表格控件(MSFlex Grid)能够方便适宜地显示这种数据形式[5]。表格控件用于对表格形式数据进行显示和操作。表格控件不是VB的内部控件,在集成环境的工具箱中见不到它。但能在“工程、部件、控件”标签中选择“micrsoft flexgrid control 6.0”将MSFlex Grid控件添加到窗体中。该控件提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。Row、Col和Text为本课题中主要应用的该控件的属性,对Row和Col进行设置后,才能访问或修改单元里的数据(Text或Picture属性)。Text属性返回或设置由Row和Col属性所定义的当前单元格的文本内容。本程序中设置了三个表格控件,分别表示选择显示的数据记录号及数据,超出上、下限的数据的记录号及数据,然后对选择显示的数据加以比较大小,得出最大,最小值及其平均值。在显示数据的同时定义一个新的数组来表示所显示的该路通道的数据。
2.6 数据的保存
数据的保存及调用采用通用对话框Commondialog控件提供的一组基于Windows的标准对话框界面[6]。使用单个通用对话框可以显示文件打开、另存为、颜色、字体、打印和帮助对话框。在“工程、部件”中选择“Microsoft Common Dialog Control 6.0”控件添加到窗体。数据保存时首先设置过滤文件类型Commondialog1.Filter=“*.txt|*.txt”显示记事本格式的文件,然后对要保存的数据进行判断其是否超出上、下限然后给以一定的标记显示后进行保存。
2.7 历史曲线的显示
在本系统设计中不仅需要对历史的记录数据进行查询还需要对历史曲线进行观察。对历史曲线的查询主要由三个按钮完成,分别为“显示曲线”、“上页”和“下页”。
在历史曲线显示中每页能显示100个数据的曲线,显示曲线按钮主要以程序需要查看的起始记录号和100的整除得出起始所处的页数,然后确定坐标轴上的值,同时判断终止记录数能否在同一页内显示出来,如若不能在一页内显示出来就查看下页,同时确定下页的起始数据记录。
在下页的按钮中,首先确定翻页后所在的页数,然后判断该页的起始数据是否大于100和该页数的乘积,如若大于则能继续翻页,同时定义一个新变量为该页的页数,原定义的页数加1,该页的起始数据之后的点继续在该页上显示出来,直到能显示该页完整的100个数据,定义该页终止数据之后的那个数据为下页的起始数据。
在上页的按钮中,首先定义上述定义的新变量页数减1,判断其显示上页是否为起始页,如若是则显示从起始页的起始数据到该页数据满并定义该页的终止数据为下页的起始数据。如若非起始页,则利用该页数和100的乘积减去需要查看的起始数据作为该页的起始数据,然后在Picture控件上显示出该页的100个数据的点,并定义该页的最后一个数据为下页的起始数据。
3 结束语
本文介绍了一般的在Windows环境下基于Visual Basic软件,运用OCX控件实现对控制系统中的数据采集卡的程序开发的步骤和方法。根据上述可知,电子计算机的发展对通信起了巨大的推动作用。计算机和通信紧密结合可以构成灵活多样的通信控制系统,也可以构成强有力的信息处理系统。
参考文献
[1]周林.数据采集与分析技术[M].西安:西安电子科技大学出版社,2005.
[2]师桂琴,刘绍中.用VB开发基于虚拟仪器的数据采集系统实例[J].计算机应用,2002,22(9):137-138.
[3]范逸之,廖锦棋.Visual Basic硬件设计与开发[M].北京:清华大学出版社,2004.
[4]李玉东,李罡,李雷.Visual Basic6.0控件大全[M].北京:电子工作出版社,2000.
[5]张瑜,韩玉杰,闵昆龙.基于VB的多路数据采集系统上位机软件设计[J].林业机械与木工设备,2007,35(1):29-30
基于485总线的多路数据采集系统 第7篇
数据采集技术是信息科学的重要分支,是传感器、信号获取、存储与处理等信息技术的结合。将外部世界存在的温度、压力、流量、位移、液位等转换为模拟或数字信号,再传送到计算机作进一步处理的这一过程,即“数据采集”。数据采集已在工农业、医药卫生、生态环保、航空航天、军事、气象等领域得到了广泛的应用。可以通过对信号的测量、处理、控制及管理,实现测、控、管的自动化与系统化。介绍了一种基于RS-485现场总线的数据采集系统,给出了图形对象编辑器的完整设计方法。采用面向对象技术设计的软件具有易于扩展、通用性强的特点。
2. RS485总线简介
2.1 RS-485
RS-485标准是由EIA电子工业协会和TIA通讯工业协会共同制订和开发的。EIA曾经在它所有标准前面加上RS前缀英文Rcommended standard的缩写,因此许多工程师一直延用这种名称。RS-485总线作为一种多点差分数据传输的电气规范规,已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点双向通信,它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的。因此,许多不同领域都采用RS-485作为数据传输链路。例如:汽车电子、电信设备局域网、智能楼宇等都经常可以见到具有RS-485接口电路的设备。这项标准得到广泛接受的另外一个原因是它的通用性RS-485标准只对接口的电气特性做出规定,而不涉及接插件电缆或协议,在此基础上用户可以建立自己的高层通信协议。
2.2 RS-485特性
逻辑“1”以两线间的电压差为+(2~6)V表示:逻辑“0”以两线间的电压差为一(2~6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。KS-485的数据最高传输速率为10Mbps。RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。RS-185接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。
RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。在使用RS485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。图1所示的最大电缆长度与信号速率的关系曲线是使用24AWG铜芯双绞电话电缆(线径为0.51mm),线间旁路电容为52.5p F/m,终端负载电阻为100欧时所得出。由图1中可知,当数据信号速率降低到90Kbit/s以下时,假定最大允许的信号损失为6d BV时,则电缆长度被限制在1200m。实际上,图中的曲线是很保守的,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例如,当数据信号速率为600Kbit/s时,采用24AWG电缆,由图可知最大电缆长度是200m,若采用19AWG电缆(线径为0.91mm)则电缆长度将可以大于200m若采用28AWG屯缆(线径为0.32mm)则电缆长度只能小于200m。
3. 系统结构及功能
用内部集成了A/D转换器的16位新型单片机SPCE061A为中心来采集数据并做初步处理;现场显示部分采用液晶模块;远程通信部分采用国际标准的RS485总线,监控中心使用PC机,使用RS232转RS485接口连接通信总线和PC机。如图2所示。这里采用双CPU控制,而在数据采集的远程和近端均采用单片机控制。远程完成资料的采集、抽样、平滑、发送;近端完成资料接收、校验、纠错、处理与显示等。采用双CPU可在高速率通讯时,对资料进行校验和纠错以保证资料的正确。两片CPU均采用MCS51系列8031芯片,在近端与远程的通讯中,又采用国际标准的RS485差分方式接口,使通讯速率和传输距离大大优于RS232标准接口方式,并且用线最少(仅用两根非屏蔽双绞线)。由于采用差分传输,可最大程度抑制共模信号,使抗干扰能力有很大的提高。此方案由于采用高性能的新型16位单片机,因此对数据的处理能力更强,而且其内部已经集成了A/D转换器,所以系统设计的复杂性大为降低;液晶显示较之数码管来说除了硬件联接的复杂性大大降低以外,显示界面也更加友好,显示的内容也更多;而且因为使用了操作方便、界面友好、功能强大的PC机作为监控中心,使系统的管理和升级十分方便。
4. 系统软件设计
系统的软件设计采用了面向对象技术。面向对象各种分析设计方法提供了各自所使用的概念和符号,比如CIMS实施中的IDEF4方法,Booch面向对象方法,以及Rumbaugh的OMT方法(对象建模技术)等。其中IDEF4是完善的工程方法,提供了一系列的图表和文档支持。在对象的动态描述中,Booch方法的对象生命期状态转换图与对象相互关系的时序图很有特点。OMT方法发展比较完善,但学习起来比较困难。由于本系统不是复杂的大系统,采用Booch分析设计方法。系统软件由数据采集和数据管理两大模块组成,数据采集程序模块操作串口采集数据。数据管理模块管理数据,含有数据显示、数据备份、文件管理和目录管理几个子模块。
4.1 主程序
主机系统的主程序流程如图3所示。从机主要负责循环采集7路数据和命令判断,在没有接收到主机命令的时候,一直做循环采集,并存入Buffer,以便增强系统的响应速率。
4.2 数据采集部分
数据显示子模块软件结构如图4所示,采用面向对象技术设计的曲线对象编辑器,可以方便地移植到其他需要显示、编辑曲线的系统中。
图形类(CGraphics Object)、项目类(CGraphics Item)、数据类(CGrid Data)和工具类(CGraphics Tool)互相作用构成曲线对象编辑器。CProcol Data类对象从DUT模块采样得到现场温度数据,数据经逻辑组合,按用户的配置传入CGrid Data类对象。CGraphics Object类对象保存数据类CGrid Data对象的指针,调用CGrid Data类的接口操作数据,绘制数据的历史、实时曲线。应用程序框架中维护一个曲线项目类(CWLLine Item)的链表,该项目类是从项目基类和图形类继承得到的。再由工具类(CSelect Tool)操作项目类,从而项目类、图形类与工具类构成一个编辑器。可选中、删除、移动、拉伸曲线对象,并可以通过属性页更改所选中曲线对象的属性,如背景色、曲线颜色、数据源、数据显示范围、绘制模式(单道、层叠、3D)等。各个类的设计遵循面向对象技术的要求,类的接口小、少、明确,类间耦合程度低,程序模块化好。类的继承结构通过提取类间共性来确定,这样代码紧凑,复用性好。CGraphic Object是图形类的基类,定义了绘制模式、绘制区域、绘制边界、数据源、数据范围、字体、背景色等属性,实现了读数据源、数据区域进出栈等方法,定义了创建、移动、绘制、删除等接口。CWLLine是图形类的子类实现创建、移动、绘制、删除等接口,绘制数据的曲线。CGraphics Item是项目类的基类,定义了项目管理的接口(如选中,重绘,鼠标左、右、双击等)及项目逻辑联系等属性。CGraphics Tool是辅助的工具类的基类,在程序中是静态对象,截获用户的鼠标事件,操作项目对象。类CProcol Data封装了研华协议、松下协议,提供统一的操作方法。类CGrid Data定义了操作数据源的接口,子类CFile Data,CDBData是实现了CGrid Data接口的文件数据源类和数据库数据源类。图形类对象包含该数据类。
4.3 软件调试
软件调试是整个系统设计过程中非常重要的一个环节。根据各部分的特点,进行了如下调试:(1)A/D转换模块软件调试:程序下载,执行。调节各通道的电位器,液晶显示随之变化,说明A/D转换调试通过。(2)串行口发送模块调试:将采集并处理后的数据通过串行口发送到监控中心(PC机)。则PC机应能收到和液晶显示相同的数据。(3)串行口接收模块调试:下载后运行程序,在PC端发送“H”,接着PC机收到一组数据,说明可以响应此命令。然后试验其它的命令(A,C0C7,OO7)亦能正确响应。此模块调试成功。(3)联机调试将完整的程序下载到单片机上,上电运行。第1步,液晶显示正常。第2步,调节各电位器,液晶所显示的数据随之变化,说明A/D转换和数据处理工作正常。第3步,接着从PC机端发送各种命令(H,A,CC7,O0O7),单片机都能正常响应,说明通信和控制部分工作正常。至此,联机调试成功。
5. 结论
本系统由于采用具有较高性能价格比且内部集成A/D转换器的新型16位单片机SPCE061A和方便的RS232转RS485接口,降低了软硬件设计的复杂度,使整个系统的开发和维护成本降低,同时系统的可靠性得到了提高。因此,本系统具有结构简单、使用方便、易于维护和升级和控制灵活等特点,配上不同的传感器,即可用于工业生产过程控制或工业设备中对实时参数进行采集处理,具有较高的实用性和开发价值。该系统的基本设计已经完成,系统稳定,运行良好。
摘要:本文介绍了一种基于RS-485现场总线的数据采集系统,给出了图形对象编辑器的完整设计方法。采用面向对象技术设计的软件具有易于扩展、通用性强的特点。
关键词:RS-485总线,多路数据采集系统
参考文献
[1]吴居娟,齐娟.基于可编程增益放大器的多路高速数据采集系统设计[J].煤矿现代化,2007(05).
[2]张建春.基于嵌入式实时操作系统的多路数据采集系统[J].江苏电器,2007(S1).
[3]丁鸣艳,李文.基于多路数据采集的交流调速系统设计[J].机械与电子,2007(10).
[4]何其娟,刘长军.一种多路微波功率及温度数据采集系统的实现[J].信息与电子工程,2007(02).
[5]杨林楠,李红刚,张丽莲,彭琳.基于FPGA的高速多路数据采集系统的设计[J].计算机工程,2007(07).
多路数据采集系统中FIFO的设计 第8篇
关键词:IDT7202,CPLD,FIFO,电路设计
随着数字信号处理芯片DSP技术的发展, 信号处理的速度越来越快, 容量越来越大, 为了配合不同时钟域之间的数据传输, 必须使用FIFO来达到数据匹配的目的, 从而提高系统性能。
1 系统的总体设计
系统主要由信号采集电路AD, FIFO, CPLD和TI公司数字信号处理芯片TMS320C5409组成。可以采集32路模拟量, 64路开关量。接收到的模拟信号首先要通过运放放大、采样、然后通过模拟电子开关、再实现A/D转换, 转换的数据经FIFO送至DSP处理, CPLD负责控制数据采集、A/D转换和数据读写的时序。系统结构框图如图1所示。
系统中使用了2片高速A/D转换芯片AD976, AD976是AD公司生产的模数转换器, 它是采用电荷重分布技术的逐次逼近型模数转换器, FIFO选用了IDT公司的IDT7202。它具有输入和输出两套数据线, 独立的读/写地址指针, 在读/写脉冲的控制下顺序地从双口FIFO读/写数据, 读/写地址指针均从第一个存储单元开始, 直到最后一个存储单元, 然后又回到第一个存储单元。系统采用了2片IDT7202将数据宽度扩展为16位, D0~D1为64路开关量数据;D2~D15为32路模拟量数据。在系统工作时, IDT7202内部的仲裁电路通过对读指针和写指针的比较, 相应给出FIFO的空 (EF) 和满 (FF) 状态指示;CPLD可以根据所获得的FIFO状态标志控制FIFO的读/写时序, 实现对FIFO的读/写操作。
2 FIFO 芯片IDT7202的介绍
FIFO (First In First Out) 简单说就是指先进先出。作为一种新型大规模集成电路, FIFO芯片以其灵活、方便、高效的特性, 逐渐在高速数据采集、高速数据处理、高速数据传输以及多机处理系统中得到越来越广泛的应用。IDT7202是一种高速、低功耗、双端口存储器, 输入、输出有9位数据, 芯片容量为1K9 b, 输入/输出端口由单独的时钟和使能信号控制, 具有“空”、“满”、“半满”和 “几乎空、几乎满”标志。IDT7202的9位输入/输出端口由单独的时钟和使能信号控制。输入端口由写使能信号 (W) 控制, 当写使能W为低时, 数据被连续写入FIFO存储器中。同样, 输出端口由读使能信号 (R) 控制, 而且有一个输出使能引脚 (OE) 。IDT7202还有一个复位端 (RS) , 当RS为低时, IDT7202的各个标志位全部回到原始状态。
3 FIFO与CPLD的接口设计
ATERA公司的可编程逻辑器件支持多种I/O电平标准, 包括3.3 V, 2.5 V和1.8 V的LVTTL和LVCMOS电平。由于FIFO必须是5 V供电, 所以CPLD将数据从FIFO读入内部存储器时, 需要经过一个电平转换芯片。系统选用了SN74LVC16245A具有三态输出的 16 位总线收发器, 它支持8/16位数据的双向传输。
在FIFO与CPLD数据通信接口设计中, CPLD主要输出控制时序到IDT7202的复位、写和读端口, 实现A/D转换数据到FIFO的存储, 并将数据从FIFO读入CPLD的内部存储器。一旦CPLD检测到两个AD976的“BUSY”信号都为高电平, 且延时满足, CPLD就使FIFO的写信号“W”输出为低电平, 允许向FIFO中写入数据。同时检测FIFO的满标志信号FF。若该信号为低, 则说明FIFO已经写满, 此时, CPLD输出读时序给该FIFO, 向FIFO中读数据, 同时检测FIFO的空标志信号EF, 若该信号为低, 则说明FIFO中数据已经读空, 不允许读数据, 除非再有数据写入后。本系统中采用两片IDT7202, 它们的复位、写和读端口分别联在一起, 数据同时读写。数据D0~D8 从第一片输出, D9~D15从第二片输出, D16, D17空的两位数据接地。D0~D1为64路开关量数据, 64路开关量数据由8片8D锁存器74LS373锁存直接送至CPLD, 开关量采样时序、路数判别由CPLD来实现。
IDT7202的异步读写操作时序如图2所示, 各参数说明见表1。
4 FIFO与AD976接口设计
本系统最多可接32路模拟量, 需使用两片AD976芯片, 转换后的16位数据分别送入两个FIFO中。当两片AD976中的任意一片中的“BUSY”信号为低电平时, 进行模数转换, 只有当“BUSY”为高时, 数据才有可能写入至FIFO中, 但数据是否写入到FIFO中, 由FIFO的写使能信号来决定, 当CPLD发出写使能信号有效时, 转换数据才能存储到FIFO中。A/D转换数据的输出和转换时钟有一定的相位差, 在CPLD内部可通过延时或时钟管理器来满足建立时间和保持时间, 保证数据不失码地传输到FIFO中。FIFO与AD976均采用5 V电源, 故数据线直接相连即可, 为了减小外界对数据线的干扰, 在数据线之间串接一个100~200 Ω的小电阻。
5 结 语
系统地介绍了一种多路数据采集系统中FIFO的设计方法。系统可以采集32路模拟量, 64路开关量。系统具有抗干扰强、可靠性高、失码率低等优点。该系统可用于采集量比较多的设备中, 已在电力故障监测装置中得到广泛的应用。
参考文献
[1]黄正谨, 徐坚.CPLD系统设计入门与应用[M].北京:电子工业出版社, 2002.
[2]汪安民.TMS320C54XX DSP实用技术[M].北京:清华大学出版社, 2002.
[3]谭会生, 张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社, 2004.
[4]刘皖, 何道君.FPGA设计与应用[M].北京:清华大学出版社, 2006.
[5]林明权.VHDL数字控制系统设计范例[M].北京:电子工业出版社, 2003.
[6]清源科技.TMS320C54XX DSP硬件开发教程[M].北京:机械工业出版社, 2004.
[7]张凤蕊, 郭俊杰.基于DSP电力参数测试系统的研究[J].现代电子技术, 2006, 29 (20) :156-159.
[8]赵俊超.集成电路设计VHDL教程[M].北京:北京希望电子出版社, 2002.
[9]徐志军, 徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社, 2003.
多路信号采集范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。