新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 多通道A/D转换控制模块的设计与实现

多通道A/D转换控制模块的设计与实现

作者:时间:2017-06-03来源:网络收藏

控制信号中的模拟量传输正逐步改为数字量传输,各种非数字化设备也必将逐步为数字化智能产品所取代。但是,在实际生产现场依然有大量的数据是模拟量,例如压力、液位、温度等,必须通过A/D转换才能将这些数据送到控制系统进行分析处理。为满足实际需要,本文提出利用MC143150 Neuron芯片和12位串行模数转换器ADS7844开发与设计A/D转换,实现了多个模拟量信号的并行采集、分析与处理功能,具有精度高和性能可靠等特点。

本文引用地址:http://www.eepw.com.cn/article/201706/347184.htm

  1 硬件设计

  A/D转换的硬件总体结构如图1所示,主要包括模拟信号电路、8通道12位串行A/D转换器ADS7844和MC143150 Neuron芯片。设计中利用8通道12位串行A/D转换器ADS7844实现模拟量的数字化转换,同时利用MC143150 Neuron芯片对ADS7844的8通道模拟输入量的数字化转换结果进行循环采集,实现多个模拟量数据的并行采集、分析与处理,较大程度地满足了应用现场的实际要求。

  1.1 ADS7844

  ADS7844是Burr-Brown公司生产的宽电压、低功耗、高性能的12位串行模数转换器。它有8个模拟输入端,可编程设置为8通道单端输入或4通道差分输入的A/D转换器,还可编程使芯片处于低功耗电源工作模式。ADS7844的转换率可达200 kHz,而线性误差和差分误差最大仅为±1LSB。ADS7844电源电压为2.7~5 V之间均能正常工作,最大工作电流为1 mA,进入低功耗状态后的耗电仅3μA。

  (1)ADS7844的引脚功能。

  CH0~CH7:模拟输入端,当器件被设置为单端输入时,这些引脚可分别与信号地COM构成8通道单端输入A/D转换器;当器件被设置为差分输入时,利用CH0~CH1、CH2~CH3、CH4~CH5和CH6~CH7可构成4通道差分输入A/D转换器;

  COM:信号地;

  VREF:参考电压输入端,最大值为电源电压;

  :片选端,低电平有效,该脚为高电平时,其他数字接口线呈三态;

  DCLK:外部时钟输入端,在时钟作用下,CPU将控制字写入ADS7844,并将转换结果从中读出;

  DIN:串行数据输入端,在片选有效时,控制字在DCLK上升沿被逐位锁入ADS7844;

  DOUT:串行数据输出端,在片选有效时,转换结果在DCLK的下降沿开始被逐位从ADS7844移出;

  BUSY:“忙”信号输出端,在接收到控制字的第一位数据后变低,只有在转换结束且片选有效时,该脚才输出一个高脉冲;

  :电源关闭端,低电平有效。当SHDN为低电平时,ADS7844为低功耗状态;

  VCC,GND:分别为电源端和数字地。

  (2)ADS7844的控制字。

  通过ADS7844的控制字可以设置其信号联结方式、选择数据转换通道和电源工作模式。ADS7844控制字如表1所示。

  其中,S是起始位,控制字的起始位总为“1”;A2~A0是通道选择位,在单端输入时分别对应8个通道,对应关系见表2,而对于差分输入,CH0~CH1、CH2~CH3、CH4~CH5、CH6~CH7分别对应差分信号的输入端,其对应关系如表3所示。

  SGL/DIF是模式控制位,该位为“1”时是单端输入模式,为“0”时是差分输入模式;PD1和PD0是电源模式控制位,其含义如表4所示。

  (3)ADS7844的转换时序图。

  ADS7844有3种转换时序,分别是15-时钟转换时序、16-时钟转换时序和24-时钟转换时序,通常采用转换周期为24个时钟周期的工作时序,其中8个用于输入控制字,16个用于读取转换结果,如图2所示。控制字的所有位在时钟上升沿被锁入芯片,转换结果在时钟的下降沿被逐位移出。所有移入和移出的数据都是高位在前、低位在后。需要说明的是,ADS7844是12位A/D转换器,其转换结果只有12位,故在移出12位结果后,还需送入4个时钟来完成整个转换过程,这4个多余时钟移出的数据为“0”,使用时不应作为转换结果处理。

  1.2 MC143150 Neuron芯片

  MC143150 Neuron芯片是Motorola公司成熟的VLSI设备,集成了硬件和固件,提供了完整的系统资源,3个管线处理器,其中一个用于执行用户编写的应用程序、另外两个完成网络中Neuron芯片间的信息交互任务。Neuron芯片通过11只引脚与应用指定的外部硬件相连,可以配置直接I/O对象、并行双向I/O对象、串行I/O对象等多种工作方式,从而可以借助最少的外接电路实现灵活的输入输出功能。

  为了便于现场应用,将MC143150 Neuron芯片、收发器Transceiver、定时器以及存储器集成在一起,如图3 所示。其中Clock给MC143150 Neuron芯片提供工作基准时钟信号,RAM/ROM等存储器用于存放MC143150 Neuron芯片的固件与用户应用程序,Transceiver用于模块间网络互联,I/O调处与A/D转换器ADS7844的对应数据端口、外围电源、MC143150 Neuron芯片的Reset和Service控制按键相连接,维护MC143150 Neuron芯片的正常工作以及实现端口数据的采集、分析和处理等功能。

2 软件设计

  Neuron C是专门为Neuron芯片设计的编程语言,它以ANSI C为基础,包括对ANSI C的扩展,可直接支持Neuron芯片的软件固化。Neuron C定义了多种I/O对象类型,如直接、计数器/计时器、串行和并行。下面介绍MC143150 Neuron芯片对ADS7844的8个通道工作在差分输入方式下进行循环采样的程序设计过程。

  选用MC143150 Neuron芯片的Neurowire输入/输出作为I/O对象,使MC143150 Neuron芯片循环采集ADS7844输出端口DOUT信号,实现与ADS7844同步全双工串行通信。

  2.1 Neurowire输入/输出对象语法结构定义

  IO_8:Neurowire输入/输出对象使用管脚IO_8~IO_10,IO_8指定时钟管脚,IO_9是串行数据输出管脚,IO_10是串行数据输入管脚。

  Master:指定Neuron芯片在管脚IO_8上提供时钟,设置为输出管脚。

  Slave:指定Neuron芯片检测在管脚IO_8上的时钟,设置为输入管脚。

  Select(pin-nbr):为Neurowire master指定片选管脚,为IO_0~IO_7管脚之一。

  Timeout(pin-nbr):为Neurowire Slave指定一个可选择的超时信号管脚,其范围是IO_0~IO_7。当使用超时信号管脚时,当neuron芯片等待时钟的上升沿或下降沿时,将检查该管脚的逻辑电平。如果检测到逻辑电平为“1”,则传输停止。

  Kbaud(const—expr):为Neurowire master指定比特率,const—expr可以为1 kb·s-1、10 kb·s-1或20 kb·s-1。对于10 MHz的Neuron芯片输入时钟,缺省值为20 kb·s-1。

  Clockedge(+|-):指数据触发时钟信号极性,clockedge(+)为上升沿,clockedge(-)为下降沿。

  io-object-name:由用户为该I/O对象指定的名字。

  2.2 采样的程序清单

  3 结束语

  目前,该A/D转换通过长时间运行测试,其性能可靠,故障率低,节约能耗,实现了多个模拟量转换、采集与处理功能,给现场自动化控制系统的集成带来较大的灵活性。




关键词: 多通道 A/D 控制模块

评论


相关推荐

技术专区

关闭