AD7674和C8051F060构成的数据采集系统

来源:本站
导读:目前正在解读《AD7674和C8051F060构成的数据采集系统》的相关信息,《AD7674和C8051F060构成的数据采集系统》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AD7674和C8051F060构成的数据采集系统》的详细说明。
简介:本文介绍的数据采集系统设计方案采用了ADI公司的高精度18位SAR型数模转换芯片AD7674与Silicon Laboratories公司C8051F060单片机构成一个数据采集系统,并利用并口模式实现C8051F060单片机与AD7674之间的高速数据传输,给出了部分源程序。

1AD7674和C8051060简介

1.1AD7674简介

AD7674是一款高精度18位逐次逼近(SAR)型ADC,具有采样速率高、精度高、功耗低、无管道延迟的特点,其采样速率最高可以达到800 kHz,积分非线性误差(INL)最大为±2.5 LSB,在整个工作温度范围内可保证无丢码。该器件是全差分输入,5 V单电源供电,可接5 V或3.3 V数字电源。AD7674还具有许多其他特点,包括1个内部变换时钟、1个内部基准缓冲器、误差修正电路以及串行(SPI)与并行(18、16或8位总线)接口。

AD7674采用逐次逼近结构。由于逐次逼近结构的多路技术和低功耗,使此器件比一般ΣΔ A/D转换器的性能更优越;而且芯片内部还集成了跟踪保持电路,逐次逼进的结构使其没有任何通道延时,这些特征使该器件广泛地应用于多通道系统中。

器件的原理框图如图1所示。

AD7674和C8051F060构成的数据采集系统

图1AD7674原理框图

AD7674能提供3种不同转换速率工作方式,以便对不同的具体应用优化性能。这3种工作模式如下:

WARP,允许采样率高达800 kHz。然而在这种模式下只有当转换之间的时间不超过1 ms时,才能保证其转换的精度。如果连续两次转换之间的时间大于1 ms,第一次转换的结果就会被忽略,这种模式适合于要求快速采样率的应用。

NORMAL,这种模式的采样率为666 kHz,在这种模式下对采样转换之间的时间没有限制,既可保证高的转换精度又可确保快速的采样速率。

IMPULSE,一种低功耗模式,其采样率为570 kHz。例如当器件工作在1 kHz时,仅消耗功率136 μW。该器件适合于电池供电的应用。

1.2C8051F060简介

C8051F060单片机是表贴TQFP100封装,包括1个8051内核,2个16位AD转换器,8个8位A/D转换器,2个12位D/A转换器,1个SPI接口,1个I2C接口,2个UART接口,64 KB Flash及22个中断源。只用1块C8051F060芯片即可完成单片机8051的各种控制,多路A/D转换和D/A转换,I2C、SPI数据总线传输,RS232、RS485串口通信等功能,从而大大减少了元器件的种类,缩小了印制板的面积,节约了成本,提高了系统可靠性。而其交叉开关方式的配置,使I/O口应用更加灵活方便。

2AD7674与C8051F060的接口电路

图2为AD7674在高速采集系统中的外围电路和接口电路。外围电路包括电压基准输入的设计、模拟电压输入部分的设计、模拟和数字电源供电的设计及接口电路的设计。接口电路包括AD7674与C8051F060和CPLD的接口。

AD7674和C8051F060构成的数据采集系统

图2AD7674外围电路和与C8051F060的接口电路

3A/D转换

本文中的AD7674采用NORMAL模式进行数据采样转换。在这种模式下对采样转换之间的时间没有限制,这样可同时保证高的转换精度和采样速率。

CNVST信号控制AD7674转换的开始,一旦转换开始就不能放弃或重新开始,直到转换完成。CNVST信号与CS和RD互不干扰。

AD7674的并口总线宽度可配置为18位、16位或8位。数据既可以在每次转换完成后读出,也可在下一次转换过程中读出,读数据时序如图3所示。然而在转换过程读数据模式中,推荐在前半转换周期读数据,这样可以避免数字接口和模拟转换电路之间潜在的数据冲突。本文采用的是8位并口总线宽度,配置为MODE0=0,MODE1=1,以便于和单片机进行数据传输。

AD7674和C8051F060构成的数据采集系统

图38位、16位并口读并行数据时序(在转换结束后读数据)

值得注意的是在读取A/D转换数据时,采用转换完毕后读取数据。要保证时序关系正确,一定要在数据转换结束,而下一次转换开始之前把数据读走;假如读取数据时数据转换没有结束或刚启动下一次数据转换,则会造成读取数据错误。本文采用CPLD经由外部有源晶振进行分频,产生转换信号CNVST与读信号RD相关,使得RD信号和CNVST信号同步,从而保证读取的采集数据正确无误。

4软件编程

在软件编制时,首先要对单片机C8051F060进行初始化和对AD7674进行配置,再启动转换信号进行数据转换和读取数据。单片机C8051F060的初始化包括对单片机的I/O端口、交叉开关和系统时钟的初始化。AD7674配置包括转换模式、总线接口数据方式和采样数据存储格式的配置。部分源代码程序如下:

void PORT_Init (void) {// I/O端口和交叉开关初始化

char old_SFRPAGE = SFRPAGE;

SFRPAGE = CONFIG_PAGE;

P0MDOUT |= 0xff;P1MDOUT |=0x00;//允许P1开漏方式,P0、P2、P3口输出为推挽方式

P2MDOUT |=0xff;P3MDOUT |=0xff;

SFRPAGE = old_SFRPAGE;

}

void SYSCLK_Init (void) {// SYSCLK_Init系统时钟初始化

char old_SFRPAGE = SFRPAGE;

int i;

SFRPAGE = CONFIG_PAGE;

OSCXCN = 0x67;//允许外部晶振18.432 MHz

for (i=0; i <5000; i++) ;//延时>1 ms

while (!(OSCXCN & 0x80)) ;//查询XTLVLD位由‘0’变为‘1’ ,等待晶振稳定

RSTSRC = 0x04;//使用时钟丢失检测器复位

CLKSEL = 0x01;//将系统切换到外部晶振

OSCICN = 0x00;//关闭内部晶振

SFRPAGE = old_SFRPAGE;

}

void ad_int() interrupt 0 {//A/D中断服务函数

EA=0;b_adc=1;

//ADC转换标志位=1:转换完成;0:正在转换

}

void ad_init() {//AD7674配置

adc_dat=0x8080;

MODE0=0;MODE1=1;

//ADC的采样数据存储格式为高18位

}

void dsp_ad() {//对采样数据进行处理

if(b_adc) {

adc_data=*adc_dat;

adc_data=adc_data>>14;

volt=8192.0*adc_data/262143-4096.0;

//218=262 144

}

b_adc=0;

}

结语

本文详细介绍了高速率、高精度的18位AD7674与C8051F060之间并口通信的接口电路及其软件设计。该嵌入式数据采集系统设计简洁,在Keil集成开发环境下采用单片机C语言编写、调试完成。由于数据采集系统可应用于各种信号处理系统中,具有很高的推广价值。本文采用的单片机配置灵活,传输速度快,接口采用并口通信,可实现嵌入式数据采集系统高速数据传输;同时AD7674与AD7678、AD7679等18位SAR ADC以及AD7621、AD7623等16位高速SAR ADC引脚相兼容,从而大大增强了系统开发的灵活性和拓展性。

提醒:《AD7674和C8051F060构成的数据采集系统》最后刷新时间 2024-03-14 01:01:08,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AD7674和C8051F060构成的数据采集系统》该内容的真实性请自行鉴别。