当前位置:首页 > 通信技术 > 通信技术
[导读]在数据采集系统中,A/D转换的速度和精度又决定了采集系统的速度和精度。MAX197是Maxim公司推出的具有12位测量精度的高速A/D转换芯片,只需单一电源供电,且转换时间很短(6us),具有8路输入通道,还提供了标准的并行

在数据采集系统中,A/D转换的速度和精度又决定了采集系统的速度和精度。MAX197是Maxim公司推出的具有12位测量精度的高速A/D转换芯片,只需单一电源供电,且转换时间很短(6us),具有8路输入通道,还提供了标准的并行接口——8位三态数据I/O口,可以和大部分单片机直接接口,使用十分方便。
 

  MAX197简介

MAX197芯片是多量程(±10V,±5V,0~10V,0~5V)、8通道、12位高精度的A/D转换器。它采用逐次逼近工作方式,有标准的微机接口。三态数据I/O口用做8位数据总线,数据总线的时序与绝大多数通用的微处理器兼容。全部逻辑输入和输出与TTL/CMOS电平兼容。新型A/D转换器芯片MAX197与一般A/D转换器芯片相比,具有极好的性能价格比,仅需单一+5V供电,且外围电路简单,可简化电路设计。
1、特性
(1)12位分辨率,1/2LSB线形度;
(2)单+5V供电;
(3)软件可编程选择输入量程: 10V, 5V,0~+5V,0~+10V;
(4)输入多路选择器保护: 16.5V
(5)8路模拟输入通道;
(6)6us转换时间,100kSPS采样速度;
(7)内/外部采集控制;
(8)内部4.096V或外部参考电压;
(9)两种掉电模式;
(10)内部或外部时钟。

MAX197转换的基本原理

  MAX197无需外接元器件就可独立完成A/D转换功能。它可分为内部采样模式和外部采样模式,采样模式由控制寄存器的D5位决定。在内部采样控制模式(控制位置0)中,由写脉冲启动采样间隔,经过瞬间的采样间隔(芯片时钟为2MHz时,为3ms),即开始A/D转换。在外部采样模式(D5=1)中,由两个写脉冲分别控制采样和A/D转换。在第一个写脉冲出现时,写入ACQMOD为1,开始采样间隔。在第二个写脉冲出现时,写入控制字ACQMOD为0,MAX197停止采样,开始A/D转换。这两个写脉冲之间的时间间隔为一次采样时间。当一次转换结束后,MAX197相应的INT引脚置低电平,通知处理器可以读取转换结果。内部采样模式的数据转换时序对于模拟到数字量的转换,时序要求非常严格,由于MAX197的数字信号输出引脚是复用的,要正确读出转换结果,时序要求尤其重要。在一次采样开始前,可以通过单片机的8位数据线把这些控制字写入MAX197来初始化相应的参数。然后按照一定的时序进行采样和转换。
 

  

  图1 MAX197引脚定义视图
 

引脚功能介绍

MAX197具有四种不同的封装:DIP28,宽SO,SSOP和陶瓷SB封装。
1脚(CLK):时钟输入。外部时钟输入时,由此引脚输入电平与TTL或CMOS兼容的时钟。内部时钟模式时,该脚与地之间接一电容,以确定内部时钟频率,当f=1.56MHz时,外接电容的典型值CCLK=100PF。
2脚( ):片选线,低电平有效。
3脚( ):当 为低电平时,在内部采集模式下, 的上升沿将锁存数据,并启动一次采集和一次转换周期;在外部采集模式下, 的第一个上升沿启动采集,第二个上升沿结束采集,并启动转换周期。
4脚( )当 为低电平时, 得下降沿将允许读取数据总线上的数据。
5脚(HBEN)用于切换12位转换结果。此脚为高电平时数据总线上的数据为高4位,此脚为低电平时数据总上的数据为低8位。

 

 

max197典型#e#
max197 c
对于学max197的人来说是一个很好的机会,这个程序不难,绝对可以看懂它:
以下两个是。H文件的,你们另外保存一下就行了
#include<reg52.h>
#include<intrins.h>
 
#define uchar unsigned char
#define uint unsigned int
#include"delay.h"
#include"chuankou.h"
sbit MAX197_CS=P0^0;
sbit MAX197_WR=P0^1;
sbit MAX197_RD=P0^2;
sbit MAX197_HBEN=P0^3;
uchar premp,temp1;
void MAX197_Write(char temp)
{
      
 
        MAX197_CS=1;
        MAX197_WR=1;
        delays(1);
        MAX197_CS=0;
        _nop_();
        _nop_();      
        MAX197_WR=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        P1=temp;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        MAX197_WR=1;
        _nop_();
        MAX197_CS=1;
        delayl(5);
 
}
long int MAX197_Read()
{
       long int premp;
       uint TempL,TempH;
       delayl(2);
        MAX197_HBEN=0;
        _nop_();
        MAX197_CS=0;
        MAX197_RD=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        TempL=P1;
        delayl(600);
        MAX197_HBEN=1;
        delayl(600);
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        TempH=P1;
        delays(1);
        MAX197_RD=1;
        MAX197_CS=1;
        premp=TempH*256|TempL;
        return premp;
}    
void Init_MAX197()
{
       P1=0x00;
       MAX197_Write(0x40);
}
void main()
{    
       long int frag,i;
       uint j;
       init_uart();
       while(1)
       {    
           Init_MAX197();
             frag=MAX197_Read(); 
              i=frag*500000/4096;
              send_dat(i/100000);      
              send_char('.');
              send_dat(i/10000%10);
              send_dat(i/1000%10);
              send_dat(i/100%10);
              send_dat(i/10%10);
              send_dat(i%10);
              send_char('v');
              send_char('r');
              send_char('n');
       }    
}
#ifndef chuankou
#define chuankou
void init_uart()
{
       TMOD = 0X20;
       TH1 = 0XFA;
       TL1 = 0XFA;
       SCON = 0X40;
       PCON = 0X80;
       TR1 = 1;
       REN = 1;
}
void send_dat(uint dat1)
{
       SBUF = (dat1+'0');
       while(TI==0);
       TI = 0;
}
void send_char(uchar dat)
{
       SBUF = dat;
       while(TI==0);
       TI=0;
}
void printstr(uchar *p)
{
       while((*p)!='')
       {
              send_dat(*p);
              p++;
       }
}
#endif
#ifndef delay
#define delay
delayl(uint n)
{
       uint i,j;
       for(i=n;i>0;i--)
       for(j=114;j>0;j--);
}
delays(uint i)
{
       while(i--);
}
#endif
 
一、MAX197在多通道数据采集中的应用

  内部采样模式的数据转换时序
  对于模拟到数字量的转换,时序要求非常严格,由于MAX197的数字信号输出引脚是复用的,要正确读出转换结果,时序要求尤其重要。在一次采样开始前,可以通过单片机的8位数据线把这些控制字写入MAX197来初始化相应的参数。然后按照一定的时序进行采样和转换。
  HBEN为12位数据高4位或低8位有效控制位,当此位为高时,高4位数据有效,为低时低8位数据有效。可以通过控制这个引脚来读取12位的转换结果。
  MAX197与单片机硬件接口设计
  MAX197是一种通用A/D芯片,可以和多种微机接口,在此选用AT89C52单片机作为主处理器。通过AT89C52的P0.0~P0.7与MAX197的D0~D7相连,既用于输入MAX197的初始化控制字,也用于读取转换结果数据。 用AT89C52单片机的P2.7作片选信号,则MAX197的高位地址为7FH。选择MAX197为软件设置低功耗工作方式,所以置SHDN脚为高电平。本文采用外部基准电压,所以REFDJ接高电平,而REF则接外部输入参考电压。AT89C52单片机的P1.1脚用做判读高、低位数据的选择线,直接与HBEN脚相连。MAX197的INT脚可与AT89C52的INT0相连,以便实现中断,读取转换结果。
  在电路中,AGND和DGND应相互独立,各种电源与模拟地之间都用0.1mF电容来消除电源的纹波。MAX197的硬件电路设计如图2所示。
  软件设计
  MAX197与其它A/D芯片不同之处在于它的很多硬件功能都是利用内部控制字来实现的,如通道选择、模拟信号量程、极性等。MAX197的输出数据采用无符号二进制模式(单极性输入方式)或二进制补码形式(双极性输入方式)。当CS和RD都有效时,HBEN为低电平,低8位数据被读出,HBEN为高电平,复用的高4位被读出,另外4位保持低电平(在单极性方式下),或另外4位为符号位(在双极性方式下)。
  由以上可知,正确进行采集转换并读取数据的前提是必须正确设置控制字以及MAX197的各种控制信号。本设计中,进行数据采集转换前都对MAX197进行初始化,以便确定其采集转换的通道、量程和极性等。
  程序的编写可以采用查询和中断两种方式,其中查询方式是在查询相应的标志成立时,执行读取;而中断则通过把MAX197的INT引脚连接到单片机的外部中断引脚来实现。本设计的软件是利用MCS-51汇编指令进行编写的,利用中断进行数据的转换和读取等操作。综上,一个典型A/D转换的控制与读取程序流程如图3所示。
  结语
  此设计表明,以MAX197为核心的数据采集A/D转换电路具有外围电路简单、与处理器并口兼容性好、时序控制简单易懂的特点,其变换时间短(6ms),可靠性和性价比高,并且编程简单,比较适合实时性要求较高的大数据量数据采集与高速A/D转换使用。

  二、基于MAX197的多通道压力数据采集系统
  本文介绍了一种基于AT89C51和MAX197的压力数据采集系统,系统与PC利用RS232通信,在PC端软件接收。系统在前级留出4~20mA的模拟信号接口,只要符合标准的信号都可接入,大大提高了系统的通用性
  水利工程中常常需要对某些重要区段配置压力测量系统,比如管道进出口、直线段、局部转折、局部转弯处等,用来测定诸如管道沿程阻力系数和不同类型管道局部阻力系数等对工程影响较大的参数。水文测量中单点的测量基本上是没有意义的,必须通过合理的阵列测量才能进行频谱分析等工作。
  多通道采集系统处理方案
  根据系统要求,系统前端配置多路传感器以探测液压信号,实际系统中使用了32路。传感器采回的信号为电流信号,在A/D变换前要变为电压信号。A/D变换中采用的是Maxim生产的MAX197对32个通道进行循环采集。采集结果送入单片机中进行预处理,单片机选用Atmel公司的产品AT89C51,使用RS232通信接口与PC端连接并发送数据。PC端将收到的数据在数据处理软件中进行结果处理、显示。系统流程如图1所示。

  
  图1 多通道采集系统流程图

  传感器及过压保护
  传感器采用AST4410型号的液压传感器,其性能参数如图2所示。
  长度:60mm
  直径:17mm
  测量范围:表压 0~40MPa 绝压0~10kPa
  精度等级:0.2级或 0.5级1~5Vdc
  输出信号:4~20mAdc
  工作电压:12~36Vdc
  过程接口:1/4NPT螺纹
  引线方式:电缆线
  实际电路中供电电压使用24V,这对于后级的A/D以及单片机电路来说是相当危险的值,因此需要设置高电压保护电路。

  
  图2 高电压保护电路

 A/D采样及MAX197应用
  MAX197的内部核心部分是一个采用逐次逼近方式的DAC,前端包括一个用来切换模拟输入通道的多路复用器以及输入信号调理和过压保护电路。其内部还建有一个2.5V的能隙基准电压源,管脚如图3所示。

  
  图3 MAX197引脚定义视图

  MAX197既可以使用内部参考电压源,也可以使用外部参考电压源。当使用内部参考源时,芯片内部的2.5V基准源经放大后向REF提供4.096V参考电平。这时应在REF与AGND之间接入一个4.7μF电容,在REFADJ与AGND之间接入一个0.01μF电容。当使用外部参考源时,接至REF的外部参考源必须能够提供400μA的直流工作电流,且输出电阻小于10Ω。如果参考源噪声较大,应在REF端与模拟信号地之间接一个4.7μF电容。模拟量输入通道拥有±16.5V的过电压保护,即使在关断状态下,保护也有效。
  通过将控制寄存器的ACQMOD位置0可选择内部采集控制模式。在内部采集控制模式下,写信号脉冲将开始一个由内部定时控制长度的采集间隔。在6个时钟周期长度的采集间隔结束时,将启动下一个转换。
  在内部采集控制模式下,MAX197的模拟信号输入电路拥有5MHz的信号带宽,当使用内部采集控制模式并使用外接2MHz时钟时,可达到100kSa/s的通过速率。
  通过将控制寄存器的ACQMOD位置1可选择外部采集控制模式。采用外部采集控制模式是为了精确控制采样孔径或独立控制采集和转换时间。由用户分别通过两个写信号脉冲控制采集间隔和开始转换时间,第一个写信号脉冲时将控制寄存器的ACQMOD位置1,开始一个采集间隔。第二个写信号脉冲时将控制寄存器的ACQMOD位置0,结束采集间隔并开始转换。然而,如果在第二个写信号脉冲时将控制寄存器的ACQMOD位置1,则将开始又一个采集间隔。
  在第一个写信号脉冲和第二个写信号脉冲时,控制寄存器中的模拟通道选择位必须置相同的值。电源关断模式控制位可以置不同的值。
  选用AT89C51单片机作为主处理器。通过P0.0~P0.7与MAX197的D0~D7相连,既用于输入MAX197的初始化控制字,也用于读取转换结果数据。 用AT89C51单片机的P2.7作片选信号,则MAX197的高位地址为7FH。选择MAX197为软件设置低功耗工作方式,所以置SHDN脚为高电平。本文采用外部基准电压,所以REFDJ接高电平,而REF则接外部输入参考电压。AT89C51单片机的P1.1脚用做判读高、低位数据的选择线,直接与HBEN脚相连。MAX197的INT脚可与AT89C51的INT0相连,以便实现中断,读取转换结果。MAX197只有8个通道,一共要采32路压力值,用8片4选1的模拟开关实现。
  在电路中,AGND和DGND应相互独立,各种电源与模拟地之间都用0.1mF电容来消除电源的纹波。
  AX197的硬件电路设计如图4所示。

  
  图4 MAX197连接原理图

  单片机数据采集程序设计如下:
  void scan(uchar channel){ //channel为通道数
  uchar conword,low8,high4,i; //定义变量
  for(i=0;i《8;i++){
  if(i》0)channel=channel》》1;
  if(channel&1){
  conword=0x50+i;
  P12=1;
  XBYTE[0xE000]=conword; //读取数据
  while(P32==1){}
  //P12=0;
  P13=0;
  low8=XBYTE[0xE000]; //低位处理
  P13=1;
  high4=XBYTE[0xE000]&0x0F; //高位处理
  SUMX[i]=high4*256+low8; //数据整合
  }
  }
  }
  根据系统的要求以及芯片的性能,选择10ms为采样的最小间隔。后面在PC端的程序可调整设定发送间隔,如果发送间隔大于采样间隔,则将采样得到的完整数据取均值后再发送,可以起到滤波的作用。
  if(FREQ》=10){ //INTERVAL 设定采样间隔为10ms
  FREQ=0;
  scanall();
  NUM1++;
  P16=0;
  P17=0;
  }
  if(NUM1》=INTERVAL){ //interval 即为PC端发送的指令
  for(i=0;i《32;i++){ //如果大于10ms则取平均值
  if(SUM[i]!=0){
  union{
  ulong usum;
  uchar ustr[4];
  } nua;
  uchar a;
  transfer(i);
  SUM[i]=SUM[i]/NUM1;
  nua.usum=SUM[i];
  a=nua.ustr[2];
  transfer(a);
  a=nua.ustr[3];
  transfer(a);
  SUM[i]=0;
  }
  }
  NUM1=0;
  NUM2++;
  }
  串行通信部分

  
  图5 MAX232通信连接原理图

  采用MAX232芯片与PC机通信,电路连接如图5所示。
  总结
  将系统进行实际测试,连续运行14小时正常。该系统已用于水库模型测量实验中,运行良好。将前端传感器更换后,后级系统可以应用于多种场合,另外加入保护电路后更可用于恶劣条件下。系统前级提供4~20mA的电流模拟信号,后级即可工作并将信号输出,通用性较强。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭