版权信息
省级大型综合性科技类期刊
主管部门:自治区科技厅
主办单位:自治区科学技术信息研究院 
协办单位:自治区科学技术情报学会
编辑出版:科技期刊编译室
刊社地址:呼和浩特新城西街149号本刊杂志社
邮政编码:010000
电      话:0471-2536371

E-mail  :

nmgkjzz@vip.163.com 

网站地址:www.nmgkjzz.com


往期杂志
当前位置: 首页>往期杂志>详细介绍

一种带计数功能的嵌入式高速采集系统设计

时间:2016-10-27来源: 作者: 点击: 222次


  

陈永强1,赖 2 

 1. 国网电力科学研究院武汉南瑞有限责任公司,湖北武汉 430074;2.国网湖北省电力公司,湖北武汉430062) 

 

摘要:本文针对低成本嵌入式采集应用,设计了一种高速采集电路,该电路采用一种14位双通道高速模数转换器,通过CPLD接口控制,扩展双通道64K字存储器,与嵌入式处理器接口,实现高速数据采集、低速数据传输;电路采用可变采集时钟控制,带有采集数据的计数功能,可在存储深度范围内任意设置采集数据长度。该电路成功应用于某便携式低功耗嵌入式采集系统。

关键词: 计数器;嵌入式;高速采集;

中图分类号: TN710      文献标识码: A         文章编号:xxxx-xxxx(2016)xx-xxxx-xx

Design of a High-speed Data Acquisition System Based on Embedded with Counting Function  

CHEN Yong-qiang1, LAI Min2 

(1. Wuhan NARI-limited liability company of SGEPRI, Wuhan 430074, China;

2. Hubei electric power company of SG, Wuhan 430062, China)

 

    Abstract: Aiming at the low-cost embedded data acquisition applications, designed a high speed data acquisition circuit, the circuit uses a 14-bit dual-channel high-speed A/D converter, control through CPLD interface, dual-channel 64K word memory extension, and embedded processor interface, implementation of high speed data acquisition and low speed data transmission;Control circuit using variable sampling clock, counting function with the collected data, can be stored in the depth range to set the data length.The circuit used in a portable and low power consumption in embedded data acquisition system. 

Key words: Counter; Embedded; High-speed Data Acquisition

 

 


0  概述

现场便携式采集设备具有体积小、重量轻、便于携带的特点。在某些应用场合,对特定信号的采集提出了高性能、高准确度的要求。本文研究的某电力仪表,应用于变电站一次设备检测环境,设备采用电池供电,不仅要求满足低功耗、高性能要求,还需要尽量降低设备硬件成本。

CPLDFPGA在高速采集应用中已被广泛使用[1-2]。采用该技术可以比较灵活地根据项目实际需要配置相关功能和引脚。本文设计的一个双通道高速数据采集电路,采用CPLD作为逻辑控制和接口器件,前级连接高速数据转换芯片,后级连接ARM嵌入式处理单元,并扩展外部静态存储器。电路实现以下功能:CPLD中设计时钟信号,配合ADC转换时序,控制存储数据写入;控制选择ADC转换时钟,可实现任意转换时钟下的数据转换;设置转换数据个数,当转换数据个数达到设定值时,自动停止转换,切换或关闭转换时钟,降低系统功耗,产生中断信号通知处理器读取数据;产生模拟时钟信号,作为存储器的计数地址,将缓存数据低速顺序读出。

 

1  采集电路框架

针对测量信号的特点,要求设计一种高速采集电路,对双路100Hz-5MHz信号进行采集分析。

高速采集电路的框架见图1。系统包含三个部分:数据转换器,CPLD数据缓存控制模块,时钟模块,系统设计了两路功能基本相同的数据缓存模块。图中仅示意一个缓存模块。

1 采集系统功能框图

 

1.1  数据转换器

双通道高速模数转换器采用LinearTech公司的产品LTC2298IUP,其主要性能特征如下[3]

·内部双14ADC

·采样速率:65Msps

·3V供电,400mW低功耗

·输入范围1Vp-p2Vp-p

·关断省电模式

·典型积分线性误差:1.2LSB

·典型微分线性误差:0.5LSB

·QFN64封装

该器件具有较高的离散分辨率和较高的非线性误差,有利于提高系统的测量准确度。模数转换器的前级双通道信号通过匹配的差分运算放电器AD8138接入,信号幅值为2Vpp

ADC具有双路数据同时输出或单路交替输出模式,本文采用双通道数据同时输出模式,通过CPLD接口控制,将数据缓存到SRAM中。

典型的ADC转换时序见图2

 

2 ADC数据输出时序(仅示单通道数据)

1.2  时钟电路

测量信号的频率范围较宽,需要动态调整ADC的转换速率,以适应被测信号频率,实现对信号的准确测量。

ADC的转换时钟范围是0.5MHz-65MHz,为了实现对信号100Hz-5MHz的信号采样,采取柔性可变时钟控制。

时钟电路包括由DDS芯片产生的高精确高稳定度的时钟信号,并通过PLL电路进行整形去抖动,作为ADC的数据转换时钟。该时钟信号并不直接从PLL输出到ADC,而是受CPLD控制,以便在不需要转换的时候可以关闭ADC数据转换时钟,从而进一步降低采集系统的功耗。

 

1.3  CPLD数据缓存控制模块

ADC的转换速率较高,处理器不便于直接读取数据,而是采用FIFO控制方式。设计中采用Altera公司的MAX7000E系列低功耗CPLD器件(EPM7128AETC100)进行逻辑控制,将ADC的转换数据高速缓存到外部SRAM中,并采用低速方式传送到ARM处理器。CPLD数据缓存控制模块实现的主要功能包括:

高速数据缓存。ADC高速转换后的离散数据及时缓存到外部SRAM中。

低速数据输出。ARM处理器接口,通过模拟地址计数方式,将原来缓存到SRAM中的数据顺序读出。

计数控制。对采集数据的个数进行控制,可以在转换数据量满足要求时及时停止采集,缩减ADC采集时间,同时可尽快通知处理器读取数据进行分析处理。

采集系统的计数控制包括两步:

1)处理器向CPLD写数据,该数据作为采集计数值;

2)启动自动转换时,数据转换时钟自动与设定值进行比较,当达到设定值时,关闭采集时钟,产生中断,通知处理器读取转换数据。

时钟控制。包括对时钟电路产生可变频率的时钟信号,以及将时钟信号输出给ADC作为转换时钟等控制,必要时可关闭时钟信号,以降低转换电路功耗。


2  VLOG语言设计

CPLD器件编程采用VLOG语言进行设计。这是一种硬件功能描述性语言(VHDL)[4],在CPLDFPGA设计中广泛使用。本电路中的VOLG语言设计主要包括:

1.3.1  SRAM数据读写控制

SRAM的读写阶段与ADC的工作状态相对应,即当ADC处于转换状态时,CPLD控制SRAM处于写入状态,片选和写信号与ADC转换时钟相关;当ADC处于关闭状态时,CPLD控制SRAM处于读出状态,片选和读信号与模拟时钟相关,具体VHDL描述如下:

RW_CONTROL:PROCESS                 --读或写的控制过程

BEGIN

IF RW_SEL = '0 )THEN     --ADC写数据到存储器

IN_CLK <= EXCLK;

    RAMCE <= not(EXCLK);

    RAMRD <= '1';

ELSE                     --读数据时的存储器控制总线

IN_CLK <= IO_CLKB;

    RAMRD <= not(IO_CLKB);

    RAMCE <= not(IO_CLKB);

ENDIF;

END PROCESS;

 

1.3.2  计数个数控制

CPLD在启动ADC转换前,先写入采样计数控制字,当采样数据个数达到该设定值时,停止ADC转换。具体VHDL描述如下:

WRITE_PORT:PROCESS(MPU_WR)   --写端口,设置计数溢出值

BEGIN

IF(MPU_WR' EVENT and MPU_WR ='1')THEN  --上升沿

IF  CS_B = '0'  THEN          --写入采集数据个数

writ_buf<= MPU_DB;

END IF;

END IF;

END PROCESS;

自动转换时,数据转换时钟自动与设定值进行比较,当达到设定值时,关闭采集时钟,产生中断,通知处理器读取转换数据,具体VHDL描述如下。

COUNT_ADDRESS: PROCESS(IN_CLK)   --内部地址计数器计数

BEGIN

IF IO_CLR='0' THEN     --重启时,COUNTER0

COUNTER<=0;--地址计数器清0

INTB <= '1';--转换完毕指示初置为高,准备转换

ELSE

IF RISING_EDGE(IN_CLK) THEN    --在上升沿进行地址计数

IF n_stop = '1' THEN    --采样尚未停止

    COUNTER<=COUNTER+1;--若不是,则按顺序循环记数

  END IF;

  IF  COUNTER > writ_buf THEN     -是否大于设定值

INTB <= '0';    --设置转换完毕

    n_stop <= '0';   --设置内部控制标识

ELSE

    INTB <= '1';

    n_stop <= '1';

END IF;

END IF;

END IF;

END PROCESS;

其他VHDL语言还涉及模拟IO时序、CPLD读写、时钟配置等方面,不一一赘述。


3  测试与验证

本高速数据采集系统的模拟信号范围为100Hz~5MHz,采样频率可根据模拟信号进行任意设置,采用外部控制启动转换,达到采样数据个数后自动停止采样,并通过模拟IO时钟进行低速数据读取。

采用集成设计开发功能能够有效仿真各种时序和数据。主要的仿真数据波形见图。

1)初始化、设置采样计数值、启动转换

 

3 初始化阶段

2)检测到转换完成

 

4 转换阶段

 

3)设置读数状态、模拟时钟、读数

 

5 读数阶段

 

采用上述电路设计的仪表,一种典型的信号采集控制方式见表1。控制方式可以根据采集时间、计算的数据量等进行修改。

1  采集控制表

信号频率  采样频率/MHz  采样周波  数据个数    每周采样点数

100Hz      0.8192       16         131072      8192

200Hz      1.6384       16         131072      8192

500Hz      4.096        16         131072      8192

1000Hz     8.192        16         131072      8192

2000Hz     16.384       16         131072      8192

5000Hz     40.96        16         131072      8192

10000Hz    40.96        32         131072      4096

20000Hz    40.96        32         65536       2048

50000Hz    51.2         32         32768       1024

100kHz     51.2         32         16384       512

200kHz     51.2         32         8192        256

500kHz     64.00        64         8192        128

1000kHz    64.00        128        8192        64

2000kHz    64.00        128        4096        32

5000kHz    64.00        200        2560        12.8

基于上述技术的测试仪器,采集数据并结合准同步计算分析,计算结果见表2

2  采集数据计算结果

信号频率  平均值   最大值  最小值  最大偏差百分比%  标准差

1000Hz   -20.43651   -20.43170    -20.44073   0.044   0.0023

1000kHz  -28.15170   -28.14467    -28.15800   0.047   0.0035

    从表2可以看出,通过带计数控制的高速数据采集和计算,仪表实现了较高的测量重复性,可满足现场测试应用需要。


4  结束语

采用CPLD控制的高速数据采集系统具有良好的接口灵活性,该系统成功应用于某电力检测设备。采用本文描述的技术和方法,进行简单的修改调整,将原来的16位处理器接口换成8位接口,可非常灵活地与更低功耗的8位处理器进行接口和数据交换;采用ADCMUX接口时序,还可以降低器件成本,只需要单路CPLDSRAM即可满足采集要求;上述技术同样也适用于100MHz-200MHz的同类采集电路控制。该技术的应用,有效实现了产品的系列化设计,同时也保证了系列产品的性能一致性。

 

参考文献:

[1]张东升,张东来等。.基于FPGA的高速采集系统设计与实现,电子技术应用,2006,32(5):76-77,79

[2]单茂华,周百令。基于CPLD技术的大动态范围高速数据采集系统设计与实现,仪表技术与传感器,20033):27-2942

[3]LTC2298 datasheet.Linear Technology Corporation

[4]朱恭生,胡冬琴。EDA工程实践入门丛书FPGA/CPLD系统设计与应用案例,中国电力出版社,2009

作者简介:

陈永强1971),工程师,主要从事高电压试验、电力检测试验技术的研究与仪表开发。

赖敏1974),高级工程师,研究生学历,主要从事电网规划研究。



本刊创刊于1982年,是由自治区科技厅主管、自治区科技信息研究院主办,由自治区科技情报学会协办、国内外公开发行的省级综合性科技刊物,是反映内蒙古自治区科技与经济发展的窗口。杂志入选《中国期刊全文数据(CJFD)》全文收录期刊和《中国学术期刊综合评价数据(CAJCED)统计刊源期刊,《中国核心期刊(遴选)数据库》收录。本刊是公开发行的综合性科技期刊,为月刊,大16开本。本刊坚持以科技创新为目标,融科技、经济、信息、产业、市场为一体,是促进科技成果转化、推动科技进步、加强技术创新,促进经济发展的专业性期刊。