微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > ADS1212和SST单片机实现高精度数据采集设计

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

时间:04-03 来源:互联网 点击:

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top