📄 ——ad7715在精密分析仪器中的应用研究.htm
字号:
style="TEXT-INDENT: 30px">①通信寄存器,8位,可读写。每次对AD7715的访问都必须先向此寄存器写入命令字。写入的命令字决定下一步操作是针对哪一个寄存器,是读操作还是写操作。此外,通过该寄存器可设定片内放大器增益。</P>
<P style="TEXT-INDENT: 30px">②设置寄存器,8位,可读写。该寄存器负责A/D各种模式的设置。</P>
<P style="TEXT-INDENT: 30px">③数据寄存器,16位,只读。保存了最后一次A/D采样的转换结果。</P>
<P style="TEXT-INDENT: 0px"><B>2 在精密分析仪器中应用AD7715</B></P>
<P
style="TEXT-INDENT: 30px">我们的分析测量仪器使用mV至V级的模拟信号,具有随时间缓慢变化的曲线波形,要求准确测量这种变化的曲线,通过对信号的处理获得数据,这种测量方法具有代表性。下面以其中种仪器为例进行说明。</P>
<P style="TEXT-INDENT: 30px">2.1 问题讨论</P>
<P
style="TEXT-INDENT: 30px">我们的分析系统需要对两路透射光信号通过光电波检测后输出,经过电流-电压转换电路后范围为0~1.5V,精度要求0.5%;另外还有两路温度信号,经过温度传感器后的输出的电压范围为0~450mV,对应0~45℃,要求精度0.1℃。</P>
<P
style="TEXT-INDENT: 30px">对转速速度有一定的要求:首先温度测定是连续的,从开机时候起就要连续监控,一个温度信号用于控制加温装置,使测量系统恒温在37℃;另一路温度信号监测机箱内部温度,根据这个温度决定风扇的启停,风扇启动温度可由用户设定,停止温度低于启动温度2℃.每2s测定一次这两路的温度,在进行测量光信号时也不能停止37℃恒温的监控。</P>
<P
style="TEXT-INDENT: 30px">其次,测量两路光信号必须精确按照0.1s一次的频率进行,即每100ms要各测量一次。考虑到对采样数据简单处理要保留3ms时间,所以一次A/D转换时间不能超过47ms。<BR><IMG
height=492 hspace=5 src="——AD7715在精密分析仪器中的应用研究.files/13d.gif"
width=559 vspace=10 border=0><BR></SPAN> <SPAN
class=main1>这样就出现了一个问题,我们可以把测量光信号的时间中断优先级设置得比测量温度的时间中断要高,这样才能保证前者的时间精度,而后者被中断的、未转换完的结果丢弃。但是,若每次A/D转换(包括数据处理)时间大于33ms,将导致恒温监控事件上无法进行,因为其间的每个测温A/D都无法完成。如果想使对机相温度的监控也不停止,则A/D转换时间至少要小于25ms,其道理是显而易见的。</P>
<P style="TEXT-INDENT: 30px">2.2 设计思想</P>
<P
style="TEXT-INDENT: 30px">我们的系统使用12MHz主频的97C52,AD7715的接线如图2所示。</P>
<P
style="TEXT-INDENT: 30px">串口方式0很适合三线制接口的使用,此方式下TXD引脚作为串行时钟,接收和发送均使用RXD引脚;RUN接CPU的P1.6引脚,IN_PORT.8是输入端口的第8位,用来接收状态信号DRDY;数字供电(DVDD、DGND)和模拟供电(AVDD、AGND)分开;VREF是基准电压,系统中使用2.39V精密电压。Signal_IN接多路开关(8选1)的输出,因为不需要转换差分信号,所以AIN-接模拟地。</P>
<P style="TEXT-INDENT: 30px">2.3 调试和软件实现</P>
<P
style="TEXT-INDENT: 30px">AD7715的最高更新率可以达到500Hz,即理论上2ms可以完成1次A/D转换,但实际上如果考虑到通道切换的因素后,这个速率是不可能的。因为通道轮流切换后,A/D内部的信号需要重新建立,通道间信号差异越大,两次连续转换间误差也越大。这个问题在其它类型的ADC中也存在。有两种方法可以使AD7715在恒定的时间后获得正确的输出:一是使用设置寄存器中的FSYNC(同步)位,二是使用通信寄存器中的STBY(备用)位,我们采用后面一种方法。</P>
<P
style="TEXT-INDENT: 30px">另外一个问题就是串口数据,AD7715输出数据和接收命令都是高位在先,而51系列串口的数据时序是低位在先;所以不论是写8位的命令,还是读取16位的转换结果,数据要经过高低位的颠倒处理。</P>
<P
style="TEXT-INDENT: 30px">关于校准方式,一般采用自校准就够了,不是特殊情况一般不用进行系统标准。校准一定在有效的复位后进行,否则不能成功。<BR><IMG
height=495 src="——AD7715在精密分析仪器中的应用研究.files/13e.gif" width=570
vspace=10 border=0><BR></SPAN> <SPAN
class=main1>至于编程和调试,建议使用C语言,这已是潮流所趋。我们这个系统的工作方式类似于两个任务并发执行,每个通道最多一次要转换1800个数据供分析,用汇编来写程序是力不从心的。而对于AD7715的编程,一个好的调试工具是必须的,特别需要能观察时序的手段。图3~图5是逻辑分析仪采取的波形,分别是自校准时序、写命令时序和一次完整转换后读取16位结果的时序。</P>
<P style="TEXT-INDENT: 30px">void initial_7715(){</P>
<P style="TEXT-INDENT: 30px">SCON=0x00; /*串口写*/</P>
<P style="TEXT-INDENT: 30px">initialize_ad(); /*初始化AD7715的通信口*/</P>
<P
style="TEXT-INDENT: 30px">writereg(0x10);/*下面写设置寄存器*/(写入时序见图4)</P>
<P
style="TEXT-INDENT: 30px">writereg(0x7c);/*自标定,2.4576MHz,500Hz更新率,单极性,非缓冲模式*/</P>
<P style="TEXT-INDENT: 30px">while(!IN_PORT & 0x80));
/*等待自标定结束*/(图3中J3.3所示高电平时间)</P>
<P style="TEXT-INDENT: 30px">while(IN_PORT & 0x80);</P>
<P style="TEXT-INDENT: 30px">}</P>
<P style="TEXT-INDENT: 30px">void writereg(UNCHAR bytepoint){</P>
<P style="TEXT-INDENT: 30px">RUN=0; /*AD7715 CS=0*/</P>
<P style="TEXT-INDENT: 30px">SBUF=exchange(bytepoint);
/*字节首尾交换*/</P>
<P style="TEXT-INDENT: 30px">while(!TI);</P>
<P style="TEXT-INDENT: 30px">TI=0;RUN=1;</P>
<P style="TEXT-INDENT: 30px">}</P>
<P style="TEXT-INDENT: 30px">float readdata 16(){</P>
<P style="TEXT-INDENT: 30px">UNCHAR temp1;</P>
<P style="TEXT-INDENT: 30px">UNINT temp2;</P>
<P style="TEXT-INDENT: 30px">writereg(0x04);
/*进入stby方式,且下次写通信寄存器*/</P>
<P style="TEXT-INDENT: 30px">writereg(0x38);
/*退出standby方式,设置读操作,3/rate时间后出结果*/</P>
<P style="TEXT-INDENT: 30px">while(!(IN_PORT & 0x80));</P>
<P style="TEXT-INDENT: 30px">while(IN_PORT & 0x80);
/*等待读时刻到来*/</P>
<P style="TEXT-INDENT: 30px">RUN=0; /*AD7715选中*/</P>
<P style="TEXT-INDENT: 30px">SCON=0X10; /*串口读*/</P>
<P style="TEXT-INDENT: 30px">while(!RI);</P>
<P style="TEXT-INDENT: 30px">temp1=SBUF; /*读低8位*/</P>
<P style="TEXT-INDENT: 30px">temp2=(UNINT)temp1;</P>
<P style="TEXT-INDENT: 30px">while(!RI);</P>
<P style="TEXT-INDENT: 30px">SCON=0x00; /*读两字节后停止接收*/</P>
<P style="TEXT-INDENT: 30px">RUN=1;</P>
<P style="TEXT-INDENT: 30px">temp1=SBUF; /*读高8位*/(两次读取波形见图5)</P>
<P style="TEXT-INDENT: 30px">temp2|=((UNINT)temp1)<<8;
/*合并成16位*/</P>
<P
style="TEXT-INDENT: 30px">return((float)(exchange_16(temp2))/65536.0*VREF);
/*首位颠倒后换成电压值*/</P>
<P style="TEXT-INDENT: 30px">}</P>
<P style="TEXT-INDENT: 0px"><B>3 结论</B></P>
<P style="TEXT-INDENT: 30px">根据我们的对比研究,得出这样的结论:AD7715以及类似的∑-<FONT
face=Arial>ΔADC</FONT>系列产品和目前国内几乎所有同类分析仪器中采用的传统双积分或逐次逼近模数转换电路相比,具有精度高、抗干扰性和可靠性强、转换速度可以满足低频要求、电路简单、外围器件少、维修更换方便等许多优势,对于很多方便提供三线制串口时序的系统来说,完全可以作为A/D转换电路的首先。
</SPAN></P>
<P></P></DIV></TD></TR>
<TR>
<TD align=middle height=15>
<TABLE cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD>
<DIV></DIV></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right height=2>
<TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
<TBODY>
<TR>
<TD width=75>【<A href="javascript:doPrint();">打印本稿</A>】</TD>
<TD width=8></TD>
<TD width=75>
<P>【<A
href="http://www.21ic.com/new_info/news/review.asp?title=AD7715在精密分析仪器中的应用研究target="
_blank?>发表评论</A>】</P></TD>
<TD width=10></TD>
<TD width=79>【<A
href="http://www.21ic.com/new_info/news/sendmail.asp?num=AD7715在精密分析仪器中的应用研究">推荐</A>】</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=right height=2></TD></TR>
<TR>
<TD align=right height=2><A href="javascript:window.close();"><IMG
height=20 src="——AD7715在精密分析仪器中的应用研究.files/close_c.gif" width=77
border=0 name=Image161></A><FONT
color=#ffffff>----</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellSpacing=0 cellPadding=0 width=520 align=center border=0>
<TBODY>
<TR>
<TD vAlign=bottom align=middle width=114 bgColor=#999a76
height=1><IMG height=1 src="——AD7715在精密分析仪器中的应用研究.files/blank.gif"
width=1></TD>
<TD width=466 height=1></TD></TR>
<TR>
<TD align=middle width=114 bgColor=#ece8db height=19>相关新闻</TD>
<TD width=466 height=19></TD></TR>
<TR bgColor=#999a76>
<TD colSpan=2 height=1><IMG height=1
src="——AD7715在精密分析仪器中的应用研究.files/blank.gif" width=1></TD></TR>
<TR>
<TD colSpan=2 height=1></TD></TR></TBODY></TABLE>
<TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 width=520
align=center border=0>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE class=RelatedTable width="100%" border=0>
<TBODY>
<TR class=RelatedTr>
<TD class=RelatedTd>
<SCRIPT language=javascript
src="——AD7715在精密分析仪器中的应用研究.files/about.htm"></SCRIPT>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD>
<TD vAlign=top align=middle width=150 bgColor=#ece8db height=2>
<TABLE cellSpacing=0 cellPadding=1 width="100%" border=0>
<TBODY>
<TR>
<TD bgColor=#000000>
<TABLE cellSpacing=0 cellPadding=2 width=150 bgColor=#ece8db
border=0>
<TBODY>
<TR>
<TD>
<META content="Microsoft FrontPage 5.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<P><A href="http://www.21ic.com/custom/tek/tek.htm"><IMG
src="——AD7715在精密分析仪器中的应用研究.files/tek.gif"
border=0></A></P></TD></TR>
<TR>
<TD
height=5></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top colSpan=6></TD></TR>
<TR>
<TD vAlign=top colSpan=6 height=10></TD></TR>
<TR>
<TD vAlign=top bgColor=#999999 colSpan=6 height=2></TD></TR>
<TR>
<TD class=stxt vAlign=center align=middle colSpan=6
height=6></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
<TBODY>
<TR>
<TD class=s width=973 height=12></TD></TR>
<TR>
<TD class=s width=973 height=20>
<DIV align=center><FONT face="Arial, Helvetica, sans-serif"><!--start copyright-->
<DIV align=center><FONT color=black>
<TABLE cellSpacing=0 cellPadding=0 width=600 align=center border=0>
<TBODY>
<TR>
<TD align=middle width="100%" colSpan=2><BR>Better View:800*600 Best
View:1024x768 为了本系统能够更好的为您服务,请使用IE4.0或以上版本浏览器
<BR><BR>版权所有(C)21IC中国电子网 电话:010-82357510, 82357511 传真: 010-82357512
</TD></TR></TBODY></TABLE><!--start copyright--></FONT></DIV></FONT></DIV></TD></TR></TBODY></TABLE><BR></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -