我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:彩66彩票 > 多通道 >

多通道AD转换控制模块的设计与实现

归档日期:04-30       文本归类:多通道      文章编辑:爱尚语录

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

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

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

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

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

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

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

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

  :电源关闭端,低电平有效。当SHDN为低电平时,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所示。

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

  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芯片的正常工作以及实现端口数据的采集、分析和处理等功能。

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

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

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

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

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

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

本文链接:http://chapmanswifts.com/duotongdao/149.html