第一文秘网    > 先进事迹

AD771X与单片机接口电路设计研究

作者:jnscsh   时间:2022-04-15 08:41:57   浏览次数:

摘 要 本文在AD771X A/D转换器的特征及工作模式的基础上,从硬件和软件的角度分析了24位A/D转换器与16位单片机接口电路的设计方法,突破了传统单片机接口电路设计的冗余及繁琐,实现了高精度测量电路的精巧化和系统设计的一体化。

关键词 24位A/D转换器;16位单片机接口

中图分类号TP368.1 文献标识码A 文章编号 1674—6708(2012)76—0197—02

0 引言

随着嵌入式系统在测控领域的不断发展,单片微处理器已被广泛地应用于测量系统,利用其处理速度快、集成度高、系统结构简单、控制功能强、易于模块化等优点,降低了测量系统的制造成本,大幅提升了测量系统的数据处理能力,增强了系统运行效率与稳定性。在测量系统中,诸如温度、压力这些模拟量的采集处理主要靠A/D转换器来实现,而要实现高精度的数据测量,则必须采用高分辨率的A/D转换器。

AD771X是Analog Devices公司推出的24位A/D转换器系列,采用电荷平衡技术,可直接测量传感器输出的微弱信号,测量精度达到24位无丢失编码,适用于宽动态范围低频、高精度工业级的信号测量。80C196是Intel公司推出的一种准16位单片机系列,寄存器兼有RAM和累加器的功能,消除了一般累加器结构存在的瓶颈现象,提高了数据处理执行效率,且中断源丰富,具有全双工串行接口和多种功能的并行接口。AD771X与80C196的特点,决定了二者组合非常适合应用于高精测量、自动化仪表与控制等领域。本文将以AD7710与80C196之间的数据通信接口为例,详细分析AD771X型A/D转换器与单片微处理器之间接口电路设计方法。

1 硬件设计

1.1 串行口连接电路

单片机通常都具有全双工的硬件串行接口,可以方便地利用它与AD771X进行串行口通信。在外部时钟工作方式下,利用单片机查询方式,AD7710可直接与单片机80C196的硬件串行接口连接。将80C196的P1.5与AD7710的DRDY非直接连接置为输入端接受查询信号,串行口的RXD连接SDATA读写数据,TXD连接SLCK输出串行时钟,其接口电路设计原理图如图1所示,此时,80C196的串行口工作于方式0,查询方式。

图1 AD7710与80C196单片机串行口连接电路

1.2 高速输入(HSI)口连接电路

AD771X是一种先转换后输出的串行输入输出的A/D转换器,芯片本身对数据传输的波特率没有严格要求。基于AD7710的这一特点,可扩展80C196的串行接口,利用高速输入口进行连接,其接口电路设计原理图见图2。先在80C196的P1.6上通过软件来产生同步移位脉冲信号SCLK,用P1.7收发数据,用P1.2~P1.4控制AD7710的读写状态,然后将80C196的HSI.0与相连,利用HSI.0中断源,在中断程序中接收A/D转换后的数据。

图2 AD7710与80C196单片机高速输入口连接电路

1.3 普通输入输出口连接电路

在高速输入口连接电路设计中,80C196单片机与AD7710A/D转换器之间是利用了HSI.0中断源,采用中断方式进行数据交换,也可以采用查询方式工作,将P1.5与相连,通过查询P1.5口上的信号即的状态来接收A/D转换后的数据,接口电路设计如图3所示。

图3 AD7710与80C196单片机普通高速输入输出口连接电路

2 软件设计及程序实现

程序设计分为主程序和外部中断两部分,主程序主要包括程序初始化、读写校准系数、数据处理标志判断以及ADD710读写操作等,中断服务程序实现数据处理功能。读操作时,先将SCLK置低,然后检测SDATA引脚是否处于高电平,保持所有数据位在SCLK下降沿至下一个上升沿期间有效。写操作时,发送SDATA电平后产生时钟信号,保持SCLK 高电平有效,且数据位先于SCLK 的上升沿。

2.1 程序初始化

AD7710与80C196单片机串行口连接时,AD7710必须初始化。首先置P1.5为输入方式,直接接受查询信号DRDY非,然后置P1.2~P1.4输出1使TFS非、RFS非、A0=1,接着P2.0切换为TXD管脚,设置串行口方式0的波特率,置串行口为方式0,发送状态,置AD7710写命令字状态A0=0,TFS非=0。

2.2 ADD710读操作子程序

首先,将待接收存储数据的串行缓冲器SP1_BUF内存空间清零,并置P1.7~P1.5初始化状态为高电平“1”;其次,根据P1口的状态查询数据处理标志读取数据,读P1.7脚的电平值移位至SP1_BUF中,并置P1.6状态为低电平“0”;最后,按照时钟信号SLCK的读操作时序,80C196中SP1_BUF中送入AD7710,在SDATA上输出。由于一字节数据为8位,上述读数据程序需循环8次,串行缓冲器SP1_BUF才完成一字节数据的接收,并且已接收的数据高位排在SP1_BUF高位。实现读操作的子程序如下:

SP1_IN: LDB AL+1,#08H

CLRB SP1_BUF;串行缓冲器清零

SP1_L2: LDB BL,P1

ORB BL,#11100000B

STB BL,P1;读P1口状态

LDB AL,P1

SHLB AL,1

ADDCB SP1_BUF,SP1_BUF

LDB BL,P1;缓冲器接收数据

ORB BL,#10100000B

ANDB BL,#10111111B;P1.6置低电平

STB BL,P1

DJNZ AL+1,SP1_L2;循环8次

RET

2.2 ADD710写操作子程序

ADD710写操作时,将串行缓冲器SP1_BUF存储的字节,按照从高位至低位的顺序依次送入P1.7,其他位状态保持不变;其次,改变P1.6状态送入一个上跳脉冲,P1.6=1时,将数据位从P1.7送入AD7710中,在SDATA上输出。最后,由于一字节数据为8位,其余7位数据按照从高位至低位顺序依次移位到P1.7上,重复上述写操作过程,即完成一个字节的串行数据发送。实现写操作功能的子程序如下:

SP1_OUT:LDB AL+1,#08H

SP1_L1:LDB AL,SP1_BUF

ANDB AL,#10000000B

LDB BL,P1

ANDB BL,#01111111B

ORB BL,#00100000B;P1.5输入

ORB AL,BL

STB AL,P1;待发字节高位送到P1.7

SHLB SP1_BUF,1

LDB BL,P1

ORB BL,#01100000B;P1.6输出上跳脉冲

STB BL,P1

LDB BL,P1

ORB BL,#00100000B

ANDB BL,#10111111B;P1.6置低电平

STB BL,P1

DJNZ AL+1,SP1_L1;循环8次

RET

3 结论

以本文设计的AD771X与80C196单片机的接口电路,进行实验将模拟电压转换为数字信号输出,并模数转换与数据处理。实验表明,几种接口方式下系统设计成本低、数据处理精度高、速度快,产品易于模块化,具有较高的实用价值。

参考文献

[1]刘军,等.基于AD7710的高精度测温仪表[J].船海工程,2005,6.

[2]韩斌,等.便携式温度测量控制仪的研究设计[J].自动化仪表,2007,10.

[3]陈德增.多功能称重配料仪表设计与应用[J].仪器仪表学报,2005,8.

推荐访问:单片机 电路设计 接口 研究 AD771X