标题：数据采集
简介
数据采集，又称数据获取，是利用一种装置，从系统外部采集数据并输入到系统内部的一个接口。数据采  数据采集集技术广泛引用在各个领域。比如摄像头，麦克风，都是数据采集工具。
被采集数据是已被转换为电讯号的各种物理量，如温度、水位、风速、压力等，可以是模拟量，也可以是数字量。采集一般是采样方式，即隔一定时间（称采样周期）对同一点数据重复采集。采集的数据大多是瞬时值，也可是某段时间内的一个特征值。准确的数据量测是数据采集的基础。数据量测方法有接触式和非接触式，检测元件多种多样。不论哪种方法和元件，均以不影响被测对象状态和测量环境为前提，以保证数据的正确性。数据采集含义很广，包括对面状连续物理量的采集。在计算机辅助制图、测图、设计中，对图形或图像数字化过程也可称为数据采集，此时被采集的是几何量（或包括物理量，如灰度）数据。[1]
在互联网行业快速发展的今天，数据采集已经被广泛应用于互联网及分布式领域，数据采集领域已经发生了重要的变化。首先，分布式控制应用场合中的智能数据采集系统在国内外已经取得了长足的发展。其次，总线兼容型数据采集插件的数量不断增大，与个人计算机兼容的数据采集系统的数量也在增加。国内外各种数据采集机先后问世，将数据采集带入了一个全新的时代。
目的
数据采集，是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。数据采集系统是  数据采集结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统。
数据采集的目的是为了测量电压、电流、温度、压力或声音等物理现象。基于PC的数据采集，通过模块化硬件、应用软件和计算机的结合，进行测量。尽管数据采集系统根据不同的应用需求有不同的定义，但各个系统采集、分析和显示信息的目的却都相同。数据采集系统整合了信号、传感器、激励器、信号调理、数据采集设备和应用软件。
原理
在计算机广泛应用的今天，数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。各  数据采集种类型信号采集的难易程度差别很大。实际采集时，噪声也可能带来一些麻烦。数据采集时，有一些基本原理要注意，还有更多的实际的问题要解决。
假设对一个模拟信号x(t）每隔Δt时间采样一次。时间间隔Δt被称为采样间隔或者采样周期。它的倒数1/Δt被称为采样频率，单位是采样数/每秒。t=0，Δt,2Δt,3Δt……等等，x(t）的数值就被称为采样值。所有x(0),xΔt),x（2Δt）都是采样值。根据采样定理，最低采样频率必须是信号频率的两倍。反过来说，如果给定了采样频率，那么能够正确显示信号而不发生畸变的最大频率叫做奈奎斯特频  数据采集率，它是采样频率的一半。如果信号中包含频率高于奈奎斯特频率的成分，信号将在直流和恩奎斯特频率之间畸变。
采样率过低的结果是还原的信号的频率看上去与原始信号不同。这种信号畸变叫做混叠（alias）。出现的混频偏差（aliasfrequency）是输入信号的频率和最靠近的采样率整数倍的差的绝对值。
采样的结果将会是低于奈奎斯特频率(fs/2=50Hz）的信号可以被正确采样。而频率高于50HZ的信号成分采样时会发生畸变。分别产生了30、40和10Hz的畸变频率F2、F3和F4。计算混频偏差的公式是：
混频偏差=ABS(采样频率的最近整数倍－输入频率）
其中ABS表示“绝对值”，
为了避免这种情况的发生，通常在信号被采集（A/D）之前，经过一个低通滤波器，将信号中高于奈奎斯特频率的信号成分滤去。这个滤波器称为抗混叠滤波器。
采样频率应当怎样设置。也许可能会首先考虑用采集卡支持的最大频率。但是，较长时间使用很高的采样率可能会导致没有足够的内存或者硬盘存储数据太慢。理论上设置采样频率为被采集信号最高频率成分的2倍就够了，实际上工程中选用5～10倍，有时为了较好地还原波形，甚至更高一些。
通常，信号采集后都要去做适当的信号处理，例如FFT等。这里对样本数又有一个要求，一般不能只提供一个信号周期的数据样本，希望有5～10个周期，甚至更多的样本。并且希望所提供的样本总数是整周期个数的。这里又发生一个困难，并不知道，或不确切知道被采信号的频率，因此不但采样率不一定是信号频率的整倍数，也不能保证提供整周期数的样本。所有的仅仅是一个时间序列的离散的函数x(n）和采样频率。这是测量与分析的唯一依据。数据采集卡，数据采集模块，数据采集仪表等，都是数据采集工具。
现场数据采集产生背景
对于大部分制造业企业，测量仪器的自动数据采集一直是个令人烦恼的事情，即使仪器已经具有RS232/485等接口，但仍然在使用一边测量，一边手工记录到纸张，最后再输入到PC中处理的方式，不但工作繁重，同时也无法保证数据的准确性，常常管理人员得到的数据已经是滞后了一两天的数据；而对于现场的不良产品信息及相关的产量数据，如何实现高效率、简洁、实时的数据采集更是一大难题。
数据采集功能
·实时采集来自生产线的产量数据或是不良品的数量、或是生产线的故障类型（如停线、缺料、品质），并传输到数据库系统中；
·接收来自数据库的信息：如生产计划信息、物料信息等；
·传输检查工位的不良品名称及数量信息；
·连接检测仪器，实现检测仪器数字化，数据采集仪自动从测量仪器中获取测量数据，进行记录，分析计算，形成相应的各类图形，对测量结果进行自动判断，如在机械加工零部件的跳动测量，拉力计拉力曲线的绘制等；[2]
数据采集特点
·配备RS232、RS485串口，可连接多个检测仪器实现自动数据采集；
·配备USB接口，方便数据的输出；
·配备RJ45接口，可通过网线接入网络；
·配备VGA视频输出及音频输出接口；
·内置WIFI模块，可通过无线方式接入，方便现场组网；
·最大支持32G数据存储空间；
·配备4.3英寸触摸屏，方便操作；
·用户可在网络中的任一PC通过接口获取数据，方便进行二次开发；
·可移动测量，即时传输数据，也可测试完成后，通过网络上传数据；
·电源连续工作时间6小时，待机时间长达10天；生产现场数据采集在品质过程中的非常重要的一个环节，好的数据采集方案可把品质管理人员从处理数据的繁重工作中解放出来，有更多的时间去解决实际的品质问题，同时即时的数据采集也使系统真正地实现实时监控，尽早发现问题，避免更大的损失。
系统实例
简介在一些工业现场中，设备长时间运行容易出现故障，为了监控这些设备，通常利用数据采集装置采集他们  数据采集运行时的数据并送给PC机，通过运行在PC机上的特定软件对这些数据进行分析，以此判断当前运行设备的状况，进而采取相应措施。当前常用的数据采集装置，在其系统软件设计中，多采用单任务顺序机制。这样就存在系统安全性差的问题。这对于稳定性、实时性要求很高的数据采集装置来说是不允许的，因此有必要引入嵌入式操作系统。下面以μC/OSⅡ为操作系统平台，基于ARM7系列处理器，对一种高性能的数据采集系统开发进行探索。1μC/OSⅡ嵌入式操作系统简介嵌入式操作系统μC/OSⅡ（microcontrolleroperatingsystem）是专为微控制器系统和软件开发而设计的公开源代码的抢占式实时多任务操作系统内核，是一段微控制器启动后首先执行的背景程序，作为整个系统的框架贯穿系统运行的始终。对于对实时性和稳定性要求很高的数据采集系统来说，引入μC/OSⅡ无疑将大大改善其性能。
μC/OSⅡ的特点可以概括为以下几个方面：公开源代码，代码结构清晰、明了，注释详尽，组织有条理，可移植性好，可裁剪，可固化。内核属于抢占式，最多可以管理60个任务。μC/OSⅡ自1992年的第一版（μC/OS）以来已经有好几百个应用，是一个经实践证明好用且稳定可靠的内核。对μC/OSⅡ的研究和应用都很多。系统基本工作原理应用时，数据采集系统置于被监控的设备处，通过传感器对设备的电压或者电流信号进行采样、保持，并送入A/D转换器变成数字信号，然后将该信号送到FIFO中。当FIFO中存放的数据到了一定数目时，由ARM7从FIFO中读出，然后通过ARM7的以太网接口或者RS232送给上位机。考虑到要监控的设备可能会很多，所以设计了多路采集通道，他们经过模拟开关后再进入A/D转换器。CPLD是整个系统的控制核心，他控制采集通道的切换、A/D转换器的启/停、转换后的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM7读取存放在FIFO中的数据等。系统硬件结构该系统采用了Samsung公司的S3C4510B作为系统与上位机沟通的桥梁，S3C4510B是基于以太网应用系统的高性价比16/32位RISC微控制器，他有如下几个主要特点：
硬件方面内含一个由ARM公司设计的16/32位ARM7TDMIRISC处理器核，ARM7TDMI为低功耗、高性能的16/32核，最适合用于对价格及功耗敏感的应用场合。S3C4510B通过在ARM7TDMI核内容基础上扩展一系列完整地通用外围器件。
片上资源包括2个带缓冲描述符（bufferdescriptor）的HDLC通道；2个UART通道；2个GDMA通道；2个32位定时器；18个可编程的I/O口。还有中断控制器；DRAM/SDRAM控制器；ROM/SRAM和FLASH控制器；系统管理器；1个内部32位系统总线仲裁器；1个外部存储器控制器等片内的逻辑控制电路。
这些为μC/OSⅡ的移植提供了优良的物理资源。
软件支持方面他有配套的代码编辑调试环境ADS12和JTAG在线调试功能，使S3C4510B芯片软件可以直接用C编写，这就使μC/OSⅡ的植入成为可能。
12位高速A/D转换电路采用AnalogDevices的AD574，该电路输出具有三态锁存功能。预处理电路包括了电流电压互感器、隔离电路和同步采样电路，他可以将信号转换成与AD574相匹配的量值，供后续处理。通讯电路采用常用的以太网接口与上位机相连，而232接口可作为备用，这样该装置既可作为便携式系统使用，也可通过网络来对设备实施实时监控。[3]
软件设计
软件部分要分别编写S3C4510B部分的程序和CPLD控制程序。前者可分为μC/OSⅡ的移植和各个应用程序的编写，后者用VHDL语言实现。
对于S3C4510B部分，根据整个装置实现的功能和对他的要求进行系统任务分割，并根据实际需要为各个任务分配优先级。系统大致可分为如下几个任务：初始化CPLD控制参数；对FIFO的读取；与上位机的TCP/IP通讯；与上位机的串口通讯。对应每个任务，需要编写相应的应用程序，软件设计部分的关键技术有：
⑴μC/OSⅡ内核向S3C4510B中的移植，要根据处理器的特点合理地修改μC/OSⅡ的3个与处理器相关的文件：OS_CPUH，OS_CPU_AASM，OS_CPU_C.C。主要是将文件中的汇编指令，改为ARM7的汇编指令，并根据CPU的特点对文件中寄存器的初值进行改写。
⑵内存配置问题。对于存储器容量的设计，要综合考虑μC/OSⅡ内核代码和应用程序代码的大小。每个任务是独立运行的，必须给每个任务提供单独的栈空间（RAM），RAM总量的计算公式为：
RAM总量=应用程序的RAM需求+内核数据区的RAM需求+各任务栈需求之总和+最多中断嵌套所需堆栈。
⑶TCP/IP协议在μC/OSⅡ中的实现。为了满足嵌入式设备与Internet网络直接交换信息的要求，在μC/OSⅡ中又移植了LwIP协议栈。
LwIP是瑞士计算机科学院（SwedishInstituteofComputerScience）的AdamDunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是LightWeight（轻型）IP协议。LwIP可以移植到操作系统上，也可以在无操作系统的情况下独立运行。LwIPTCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用，一般他只需要几十k的RAM和40k左右的ROM就可以运行，这使LwIP协议栈适合在低端嵌入式系统中使用。
LwIP的特性有：支持多网络接口下的IP转发；支持ICMP协议；包括实验性扩展的的UDP（用户数据报协议）；包括阻塞控制、RTT估算、快速恢复和快速转发的TCP（传输控制协议）；提供专门的内部回调接口（rawAPI）用于提高应用程序性能。
LwIP可以很容易地在μC/OSⅡ的调度下，为系统增加网络通信和网络管理功能。LwIP协议栈在设计时就考虑到了将来的移植问题，他把所有与硬件，OS，编译器相关的部份独立出来，放在/src/arch目录下。因此LwIP在μC/OSⅡ上的实现就是修改这个目录下的文件，其他的文件一般不应该修改。在驱动中主要是根据S3C4510B内的以太网控制特殊功能寄存器，编写网络接口的处发送包、接收包函数，初始化以及用于以太网控制器的外部中断服务程序。[3]
结语
采用基于ARM7的S3C4510B嵌入式微处理器，可以使系统小型化，便于提高性能以及与各种外设连接扩展，同时降低了成本。μC/OSⅡ作为一个源代码公开的操作系统，在具体应用种稳定可靠。本系统采用ARM7+μC/OSⅡ开发设计，具有精度高、运行稳定、实时性好、抗干扰能力强、性价比高的特点，可以在各种工业场合中广泛应用，达到了设计的初衷。