×
FPGA/DSP > DSP系统 > 详情

ADS1212和SST单片机实现高精度数据采集设计

发布时间:2021-07-29 发布时间:
|

  0 引 言

  数据采集技术已广泛应用于信号处理、通信、过程控制、遥感遥测等领域,各种高科技技术的发展对数据采集系统的精度进一步加强。本文所介绍的就是一种高精度的数据采集系统,它在笔者的工作中已经得到了充分的应用和试验。

  该系统采用的∑一△型A/D转换器ADS1212它具有分辨率高,线性度好,抗干扰能力强(对噪声的抑制能力不亚于双积分ADC),成本低等不可多得的优点,恰好能满足这种要求。

  单片机采用SST公司8位微处理器FLAsH-Flex51系列成员SST89E564RD,它采用先进的Super-FLASH CMOS半导体技术设计和制造,是采用8051的指令集,并与标准的8051控制器管脚兼容,而且具有SPI端口,接口简单,易于编程控制。

  1 系统硬件设计

  1.1 ADS1212的结构及特点

  ADS1212芯片内部由可编程增益放大器(PGA)、二阶∑-△调制器、调制控制单元、可编程数字滤波器、微控制器单元、寄存器组(指令寄存器、命令寄存器、数据寄存器、校准数据寄存器)和1个串行接口,1个时钟电路,1个内部2.5 V电压基准等组成。

  ADS1212是高精度、宽动态特性的∑-△型模拟/数字转换器。它的差动输入端可以直接与传感器或微小的电压信号相连。其内部的∑-△结构可确保它的宽动态特性和24位的分辨率。

  由于采用了低噪声的输入放大器,可以在转换速度为10 Hz时获得23位的有效分辨率;借助于其内部独特的调制器加速操作模式,在转换速度为1 kHz时仍可达到20位的有效分辨率。该转换器动态特性的大大提高主要依赖于其前级的低噪声程控放大器,其放大倍数可从1~16进行设定,以2倍步长增加。该A/D转换器都有一个灵活的同步串行接口,它与SPI兼容,并且可以提供双线控制模式。该A/D转换器为单一+5 V供电,有内/外参考电压和内部自校准系统。

  ADS1212主要用于工业过程控制、仪器仪表、色谱分析、灵巧传感器、便携式仪表、称重仪器、压力传感器、高分辨率测量的场合。

  1.2 SST单片机的结构及特点

  系统采用SST89E564RD作为处理机,它是SST公司8位微处理器FLASHFlex51系列的成员,是采用先进的SupeRFLASH CMOS半导体技术设计和制造,是采用8051的指令集,并与标准的8051控制器管脚兼容。

  器件带有72 KB的片内FLASH E2PROM存储器,使用了SST公司专利的CMOS Super_FLASH E2PROM技术,存储器被分成两块独立的程序存储器,第一块(BLCK0)占用64 KB的内部程序存储器空间,第二块(BLOCK0)占用8 KB的内部程序存储器空间。8 KB的第二块FLASH可以映射到64 KB空间的低地址,还可以被隐藏和当成类似E2PROM的独立的数据存储器。

  1.3 SPI接口的特点

  SST单片机的串行外设接口(Serial PeripheraI In-terface,SPI)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备,以串行方式进行通信以交换信息。外围设置 FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线SS。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,总体来说数据传输速度比I2C总线要快。

  SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:

(1)MOSI为主器件数据输出,从器件数据输入;
(2)MISO为主器件数据输入,从器件数据输出;
(3)SCLK为时钟信号,由主器件产生;
(4)SS为从器件使能信号,由主器件控制。

  1.4 ADS1212与SST89E564RD的接口电路

  ADS1212与SST89E564RD的接口采用四线制通信方式,如图1所示。ADS1212的DRDY与 SST89E564RD的INT1相连,即采用外部中断方式读取采样数据结果。采样数据由SDOUT输出,命令数据由SDIO输入,SCLK作为同步时钟,同时SST89E564RD还留有2根口线与MAX232相连,在需要的时候可完成与计算机通信。根据采集需要,本系统将ADS1212设置为从动方式(即Slave方式),同步信号输入端DSYNC接高电平。

   2 系统软件设计

  该系统软件采用单片机高级语言C51编写,C51是一种专为MCS-51系列单片机设计的高效率C语言编译器。它具有编程方便易用的特点,能够很方便地操作硬件接口地址,C51编译器具有极高的编译效率,编译代码可与汇编语言相媲美,而编程效率比汇编语言高很多,采用高级语言C51编程可以提高源程序的可读性,便于以后的改进和升级。

  软件部分包括主程序、数据采集子程序、串行口通信子程序。主程序的主要功能为系统初始化以及查询各软件标志,决定系统不同工作模式,执行各功能模块。

  2.1 单片机SPI接口程序

  单片机SPI接口程序主要包括SPI接口初始化,以及SPI数据输入/输出程序,SPI接口初始化主要是针对SPI控制寄存器(SPCR)进行相应设置的,SPI控制寄存器(SPCR)格式如下:

SPIE是SPI中断使能位,当SPIE和ES同时置为“1”,则SPI中断使能;
SPE是SPI使能位,“0”为不使能,“1”为使能;
DORD是数据传输的顺序位,“0”为从高位到低位,“1”为从低位到高位;
MSTR是主/从选择位,“0”为从方式,“1”为主方式;
CPOL是时钟极性位,“0”为时钟高电平有效,“1”为时钟低电平有效;
CPHA是时钟相位控制位,“0”为时钟上升沿左触发,“1”为时钟下降沿左触发;

  SPR0,SPR1是SPI时钟频率选择位,控制SPI时钟为单片机时钟的几分频,如表1所示:

  SPI接口初始化程序如下所示:

  2.2 A/D数据采集程序

  ADS1212内部有5种功能寄存器。其中,指令寄存器(INSR)和命令寄存器(CMR)用于控制转换器的操作。数据输出寄存器(DOR)用于存放最新的转换结果。零点校准寄存器(OCR)和满量程寄存器(FCR)用于对转换结果进行校准。

  指令寄存器INSR是一个8位寄存器,对ADS1212的每一步操作都是从它开始的。具体格式如下:

R/W是读写控制位;“1”为读操作,“0”为写操作。
MB1MB0是欲读写的字节数。“00”~“11”对应“1”~“4”;
A3~A0是欲读写寄存器的地址。

  命令寄存器CMR是一个32位寄存器,通过对它的操作可以设置ADS1212的各种工作模式,格式如下:

  采样精度同增益和加速因子的设置都有关系,具体如表3所示。这里需要指出的是。不能同时追求采样速度和采样精度,只有选取合适的速度和精度才能体现出该芯片的优势。

  注:G=1,fXIN=1 MHz(fXIN是外部晶体振荡嚣频率)

  零点校准寄存器(OCR)和满量程寄存器(FCR)用于对转换结果进行校准。它们都是24位寄存器,可以在初始化中对其写入,以便用于校准输出数据。

  数据采集程序的流程图如图2所示。

  如下是程序的部分片段:

  数据输出寄存器DOR为24位寄存器,用于存放最新的转换结果。只有在DRDY信号为低时,DOR中的数据才有效。如果在(1/fDATA)-12 (1/fXIN)时间内没有读出DOR中的数据,则它将会被新的数据所覆盖。DOR中输出的数据格式可以用补码形式表示,如 “FFFFFFH~000000H~7FFFFFH”,表示“负最大量程~0~正最大量程”;也可以用原码形式表示,如 “000000H~800000H~FFFFFFH”,表示“负最大量程~0~正最大量程”,这可用设置CMR3的DF位来实现。 

  3 结 语

  采用ADS1212与SST89E564RD完成的数据采集处理系统采集速度快,精度高,还能将数据及时通过串口发送给上位机程序,且外围电路简单。因此,能用于较为复杂的系统开发,非常适用于工业控制、自动测试、仪器仪表、远程通信等领域的数据采集与传输。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于超声波测距和PSD红外测距的智能语音导盲器(一)