处理中...

首页 > 资料大全 > 解决方案 >

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

多通道A/D转换控制模块的设计与实现
来源:EDN电子设计技术 时间:2011-10-21

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

  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转换控制模块通过长时间运行测试,其性能可靠,故障率低,节约能耗,实现了多个模拟量转换、采集与处理功能,给现场自动化控制系统的集成带来较大的灵活性。

 

 

 

 

热门推荐

更多 >
ESP32-S3 2022-03-16
RG200U 2022-03-16
USR-C322 2022-03-16

资料浏览排行榜

更多 >
商品名称 大小 浏览量
1 EPCS128SI16N 0.94MB 22003次
2 1N4001 0.19MB 17871次
3 DAC1220E 0.95MB 15869次
4 EP1C6Q240I7N 2.47MB 15825次
5 GRM32RR71H105... 0.10MB 14008次
6 DR127-3R3-R 0.72MB 11685次
7 DMG2305UX-7 0.40MB 9283次
8 DMP2008UFG-7 0.24MB 9071次
9 DS1337U+ 0.28MB 9066次
10 DX4R105JJCR18... 0.26MB 8984次