基于CPLD的数据采集系统的设计 - 图文

2026/1/17 13:48:52

《自动化技术与应用》2007年第26卷第8期

经验交流 Technical Communications

基 于 CPLD 的 数 据 采 集 系 统 的 设 计 * 程 明, 毕立恒, 杨晓光

( 郑州大学 信息工程学院 河南 郑州 450052 )

摘 要:通过对一般数据采集系统的特点和功能分析,提出了一种通过 CPLD 实现对多个通道的高速模拟数据采集的设计,本系统

可实现每 0.01ms 采集一路数据,具备先完成数据采集并存储,然后通过单片机进行数据的后续处理能力。设计使用一片 CPLD 完成 A/D 采样控制、数据存储、通道选择控制的集成。

关键字:数据采集; 状态机; SRAM; CPLD

中图分类号:TP274.2 文献标识码:B 文章编号:1003-7241(2007)08-0100-03

Data Acquisition System Based on CPLD

CHENG Ming, BI Li-heng, YANG Xiao-guang

(College ofInformation Engineering,ZhengZhou University, ZhengZhou450052 China)

Abstract£: The paper introduces an analog multi-channel data acquisition system based on CPLD.The data acquisition of each

channel can be finished within 0.01ms.It includes sampling and storge of the data,and digital signals can then be processed by MCU.The system can be implemented in a single CPLD chip.

Key words: data acquisition; state machine; SRAM; CPLD

1 引言 在检测控制系统中,一般需要对多路模拟数据进行采集并 进行相应的处理,当需要采集的信号特别多时,传统的方法是利 用单片机及其他芯片扩展系统资源来实现,但 是这样做会增加大 量的外部电路和系统成本,而且大大增加了系统设计的复杂性。

路,本设计只用了一片A/D转换器,故增加了模拟电子开关芯 片。采集系统组成结构框图如图1.

CPLD(复杂可编程逻辑电路)是一种具有丰富的可编程 I/O 引 脚的器件,具有在系统可编程、使用方便灵活的、可用I/O 端口 多的特点,可实现复杂的数字逻辑功能。和单片机结合可较容易 实现数据的采集任务。

图1 系统组成框图

2 系统组成 为了实现完整的高速数据采集和存储, 需要由 CPLD 控制 电路完成, 现场试验传感器输出的多路模拟电压信号,在CPLD 时序控制下通过数据选择器传 AD 电路,经 A/D 转换器转换为 数字信号, 并实时存储于静态存储器(SRAM)中, 现场试验 完成后, 单片机将数据从存储器中读取出来, 通过串口上传至计 算机作进一步的处理, 由于数据读取的速度不会对试验结果产生 影响, 故选用一般的单片机即可完成数据传输工作。为简化电

3 器件选择及使用简介 选择 1M 的 IDT71016(64Kx16),AD574A 是单片高速12 位逐次 比较型 A/D 转换器,内置双极性电路构成的混合集成转换芯片, 具有外接元件少,功耗低,精度高等特点,并且具有自动校零和 自动极性转换功能, 需外接少量的阻容元件即可构成一个完整 只

的 A/D 转换器,各控制管脚功能及其对工作状态的控制过程如 下:在 CE=1 、CS =0 同时满足时,AD574A 才会正常工作,在 CPLD 选择 MAX7128S 、AD 转换器件选择 AD574 、SRAM

*基金项目:河南省科技攻关项目(编号042420178) 收稿日期:2006-11-06

AD574 处于工作状态时,当R/C =0时A/D进行转换,当R/ C =1

100 | Techniques of Automation & Applications

经验交流 Technical Communications

《自动化技术与应用》2007年第26卷第8期

(ad_ctr)、负责状态机的运行的时序进程(ad_state)、实现数据 是进行数据读出。12/ 8 和A0端用来控制启动转换的方式和数 锁存的进程(data_latch), AD574控制器的工作过程: 据输出格式。A0=0 时,启动的是按12位方式进行转换,当A0=1 时,按 8 位转换方式进行。当 R/ C =1,即 AD574 处于数据输 出状态时,A0 和 12/ 8 控制数据输出的格式。当12 / 8 =1时, 数据以12位并行输出(本采集系统采用12位并行输出模式),当 =0 时,数据以8 位分两次输出。而当A0=0 时,输出转换数据的 高 8 位,A0=1 时输出转换数据的低4 位。

AD574 有单极性和双极性两种输入方式[2]。分别为0~ 10 V 通道和0~ 20 V 通道(本设计采用单极性0~ 10 V 通道)。 CE、STATUS、R/C、12 / 8 、CS 、R / C 和 A0 等控制引脚 直接和 CPLD 的引脚相连,由 CPLD 完成对 AD574 的逻辑控制。 现场传感器出来的信号经相应的处理转换为0~ 10 V 的直流模 拟电压信号。这个模拟电压信号进入AD574 进行A/D 转换, 转 换后输出的数字量通过 CPLD 控制写入 SRAM 中,全部数据采 集结束并全部写进 SRAM 后,CPLD 通知单片机将数据从 SRAM 中读取出来,通过串口传送到计算机进行处理。 AD574电路工作 在内部参考模式时, REFout端口可输出10.0V的稳定标准电压, 可作为 AD 转换电压基准电压。A/D 器件的电路见图 2

图3 系统控制示意图

首先,监测系统复位信号“reset”,当reset=1时,进程ad_ctr 复位到初始态Init,在初始态中对转换允许信号enable监测,

enable=0时其他转态机正在对SRAM进行写操作,此时为了避免 误操作,停止 AD574 的转换。在状态 Start 时打开片选,启动

图2 AD574外围电路

AD574 进行 12 位转换即CS=0 R/ C =0 A0=1,在状态 Wait 时查询转换状态信号 STATUS,当 STATUS=1 表明转换没有结 束,此状态继续,STATUS=0转换结束,进入到下一个状态Read, Read 状态时令CS=0 R/ C =1 A0=1 使 12 位数据输出有效,同 时,令数据锁存信号 LOCK=0,进入到下一个状态 Lock,Lock 状态时Latch=1,产生一个数据锁存信号上升沿,开启数据锁存;

接下来的一个状态 T0_RAM 中,AD 转换周期结束信号的标志信号 ADC_END=1,通知另一个状态机(SRAM 数据写入控制状态机)

本周期的转换数据已经进入数据锁存器中,可以对 SRAM 进行写

操作,同时判断数据是否写完。Conv_next状态作为判断是否还有 4 电路软件部分 CPLD 设计包括 4 个模块部分:AD 转换控制器、数据通道 控制器、SRAM 的控制器、 CPLD 和单片机通信控制器;采样脉 冲生成电路(计数器)。软件部分通过4 个不同的同步运行的状 态机实现。模块组成:模块 1 数据采集通道选择寄存器 ADCR, 模块 2 A/D 器件控制器,AD 器件采样脉冲生成电路(计数器)。 A/D 器件控制器的功能如下:首先设置 AD574 的转换模式,然后 启动转换,通过查询 AD574 的 STAUS 信号判断是否转换完成,转 换结束后将数据顺序读出,同时将数据保存到 SRAM,完成一次A /D 转换操作。并等待下一次转换完成。SRAM 数据写入控制器 为为 SRAM 提供存储地址和存储控制信号。并且 AD574 提供转 换所需的工作时钟。整个控制通过状态机实现。如图3

未转换完的通道,如果有就进入Start状态继续转换,否则进入下一

个状态Con_end,此状态表示本次采样结束,状态机保持在该状态, 直到采样脉冲触发重新开始新的一次采样,状态机复位到Init状态。

图4 AD574控制器状态机

4.2 SRAM数据写入控制器 SRAM 数据写入控制器根据 SRAM 的控制管脚真值表(参 考 IDT71016 说明文档),采用状态机方式状态机实现,如图5。 此状态机采用三个进程组成:时序逻辑进程 WRITE_STATE:负责

4.1 AD574的控制器 [2][3]

对AD574的控制器设计采用状态机[1]的方式如图4,此状态 有 3 个进程组成: 分别是状态转换方式和反馈控制信息进程

状态机的转换进程,具有异步复位功能, 步复位信号(reset)为

Techniques of Automation & Applications | 101

《自动化技术与应用》2007年第26卷第8期

经验交流 Technical Communications

时钟是同一个时钟源。WRITE_RAM 进程是状态机的主控组合 逻辑,确定状态机的转换方式和反馈控制信号的输出,在此进程

1 时状态机回到S0状态,状态机的转换时钟和AD控制器的转换 样,就可以实现通道选择控制。假设通道编码为从上到下为31-

24、23-16、15-8、7-0四组(每组8通道),例如计数器输出000000 则选择的通道是7-0组的0通道、输出000001则选择的通道是7- 有 5个状态:1)WRITE0 状态;数据写入初始化,此状态(CS=1、 0组的1通道??其他可以递推,输出100111时则选择第32通道。 WE=1、OE=1、BLE=1、BHE=1、计数脉冲 ADDRESS_plus=0) 判断地址寄存器输出的地址是否满(ADDRES_CNT=0XFFFF), 基于CPLD 的特点,不必考虑译码器延时引起的和计数器不同步。

由 AD574配合4片 4051模拟开关,实现16路模拟量的同步 若计满则发出 A/D 转换禁止命令(Enable=0),同时等待外部信 采集。A/D 器件控制器的功能如下:首先设置 AD574 的转换模 号发出系统复位信号(reset),使地址寄存器 ADDRESS_cnt 清 零,地址计数器没有计满时,发出 A / D 转换允许信号 (enable=1),并同时进入到 WRITE1 状态;

2)WRITE1 状态:监测 A/D 转换周期是否结束(ADC_END), 如果结束(ADC_END=1),则进入 WRITE2 状态即 SRAM 的写操 作状态,否则,等待继续转换完成,此状态打开 SRAM 的片选 ( CS = 1 、W E = 1 、O E = 1 、B L E = 1 、B H E = 1 、计数脉冲 ADDRESS_plus=0),同时禁止A/D 转换,输出 SRAM 的 16 位存 储地址(ADDRESS),在 AD 转换结束后已经把转换的 12 数据锁存 起来了,此时 12 位已经转换好了的数据输向 SRAM 的数据口。 3)WRITE2 状态:打开 SRAM 片选信号,禁止 A/D 转换, ( CS = 0 、W E = 1 、O E = 1 、B L E = 1 、B H E = 1 、计数脉冲

图5 采样通道控制原理图

式,然后启动转换,通过查询 AD574 的 STAUS 信号判断是否转换 ADDRESS_plus=0),地址计数器(ADDRESS_cnt)的地址和数 完成,转换结束后将数据顺序读出,同时将数据保存到数据存储 据锁存器(data_latch)的数据提前输向了SRAM 的对应端口。 器,完成一次 A /D 转换操作。并等待下一次转换完成。

4)状态 WRITE3 打开 SRAM 写允许信号(WE=0),仍然 禁止A/D 转换,在写入的同时产生使地址加1的时钟上升沿(此 处是数据能否顺序写入的关键),使地址计数器加1,此状态( CS = 0 、W E = 0 、O E = 1 、B L E = 0 、B H E = 0 、计数脉冲 5)WRITE_END 状态:打开 A/D 转换允许开关(enable=1), 同时地址计数器计时时钟结束,SRAM 写停止,此状态(CS=1、

5 结束语 本文使用一片 CPLD 完成 A /D 采样控制、数据存储、通 道选择控制的集成, 是由于一般的工程系统中不仅仅需要对信 但算处理,甚至和计算机通信,依靠计算机进行复杂的算术运算处 理,CPLD 虽然有其显著的长处,但是在运算处理方面就往往不

ADDRESS_plus=1),随后进入到 WRITE_END 状态。 息的采集和控制,往往还包含对采集到的数据进行适当的算术运

WE=1、OE=1、BLE=1、BHE=1、计数脉冲 ADDRESS_plus=0); 如普通的单片机,因此采集系统设计中包括单片机读取SRAM中

4.3 通道选择模块 该模块包括计数器和分频器两个部分,ad574完成一次转换 需要的时间是25us,本设计每个通道采样需要的时间是0.1ms, 的数据控制设计。本文限于篇幅没有详细说明单片机的数据读取 以及同计算机的通信。

采集全部32路转换完成的时间是3.2ms,因此,ad574可以满足 参考文献: 要求。设计中需要把系统提供的时钟进行分频,分频器把系统的 [1] 潘松,王国栋编著.VHDL 实用教程[M].西安: 西安电子科 时钟(48mhz)分频为32kmz,分频器的输出时钟作为计数器的 技大学出版社 2001.7

计数脉冲,计数器是6位二进制计数的32进制计数器,计数器的 仪中的应用[J].微电子技术 2000.28(6):58-62

[3] 陈兵飞,杨碧石.基于 EPM7128SLC84 实现的 AD574A 采 输出作为数据选择器的地址,这样可以保证每隔 0.1ms 采样一 次。CD4051 的 A、B、C 管脚并联,使能管脚 INH 和一个 3-8 译 码器的输出连接,如果译码器的所有状态都用,可以实现8X8=64 路的信号采集。控制原理图如图5,其中在cpld中完成译码器设 计是通道选的关键,译码器的输出 Y0-Y3 分别作为数据选择器 的使能开关INH,计数器输出的低三位作为数据选择器的地址脚 (A、B、C)控制。计数器的高 3 位作为 3-8 译码器的输入,这 [2] 王鹏飞, 崔文兵, 陈钧. 1 2 位模 / 数转换器 A D 5 7 4 在测试 样控制器[J].仪表技术 2005,(2):60-61,80

[ 4 ] 王幸之, 钟爱琴, 王雷, 王闪. A T 8 9 系列单片机原理与接 口技术[M]. 北京: 北京航空航天大学出版社. 2 0 0 4 . 5

作者简介:程明(1949-),男,郑州大学教授、硕士生导 师,从事通信和计算机应用的研究。

102 | Techniques of Automation & Applications


基于CPLD的数据采集系统的设计 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于CPLD的数据采集系统的设计 - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219