24位高精度数据采集课程设计.docx
《24位高精度数据采集课程设计.docx》由会员分享,可在线阅读,更多相关《24位高精度数据采集课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
24位高精度数据采集课程设计
24位高精度数据采集课程设计
指导老师:
姓名:
班级:
学号:
日期:
2011年1月5日
24位高精度数据采集设计
一、课程设计内容
采用AD7710+MCU的方案设计出一个24位高精度数据采集系统并能通过串口将数据传输给PC机。
二、课程设计目的
1、熟悉利用图书馆和网络资源查阅资料。
2、学习24位高精度数据采集设计的方法。
3、通过此课程设计进一步的了解、掌握、和熟悉单片机开发的使用方法及汇编或者C语言的编程方法。
4、会将设计代码下载到8051芯片内部,并通过使用硬件设备验证设计的正确性。
5、学会制作电路板。
三、课程设计背景介绍
随着计算机技术的快速发展和普及,数据采集系统也迅速得到应用。
在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。
数据采集技术是一项基本的实用性技术,它被广泛应用于图像处理、振动测试、语音信号分析和瞬态信号分析等众多领域。
目前不同性能指标的通用或专用的数据采集系统,在各种领域中随处可见。
数据采集系统从广义上讲是一个数据信号收集装置、能够将被收集的信息(电信号)转换为一种统一标准格式的信号,然后进行存储、处理、交换(甚至用于控制某个执行机构)。
被收集的数据信号通常是电学量,如电压、电流等,对其他物理量(如温度、压力等)的采集则是通过一种叫传感器的装置进行交换,使之成为电学量。
信号的类型可以是模拟量、频率量、脉冲量、开关量等。
高精度数据采集系统比一般数据采集系统要复杂得多,需要考虑的因素比较多,不同技术指标之间往往湖湘影响、制约,是一个复杂的系统工程,需要用系统的思想来综合考虑。
综合起来,其基本要点一般有以下几个大的方面:
A、对应用环境的深入调研
B、设计模拟通道
C、AD转换器件和电压基准源的选择哪个
D、系统控制及电路结构设计考虑
E、数据存储于数据通信问题
F、可靠性及低功耗问题的考虑
四、AD7710简介
4.1、AD7710工作原理
AD7710以一定的速率对模拟输入信号连续采样,采样速率受系统时钟的控制。
采样信号经PGA放大,使其输出电平满足电荷平衡ADC的要求,然后转换成数字脉冲序列。
该序列经数字滤波器处理后,以内部数字滤波器的一阶陷波频率确定的速率更新输出寄存器的数据。
寄存器中的数据可以从双向串口随机读出。
4.2、AD7710管脚图及管脚说明
AD7710提供多种封装形式,其中24脚双排直插封装的引脚排列如下:
图1AD7710管脚图
其中各个管脚功能描述如下表:
SCLK:
串口输人/输出时钟引脚。
当MODE引脚接高电平时,SCLK输出串行时钟脉冲,器件工作在内部时钟模式;当MODE引脚接低电平时,SCLK作为输入引脚使用,器件工作在外部时钟模式。
MCLKIN,MCLKOUT:
系统时钟信号。
引脚分别接晶振的两端即可产生内部系统时钟。
A0:
地址输入。
低电平时,可以对控制寄存器进行读写操作;高电平时,可以对数据寄存器或校准寄存器进行读写操作。
/SYNC:
同步信号。
用于多个AD7710时的内部数字滤波器的同步。
MODE:
模式选择。
高电平时,处于内部时钟模式;低电平时,处于外部时钟模式。
ANl(+),ANl
(一),AN2(+),AN2
(一):
双通道差分输入引脚。
Vss:
模拟电压源负端。
单电源工作时,与AGND引脚短接。
AVdd:
模拟电压源正端。
Vbias:
偏置电压输入引脚。
REFIN(+),REFIN
(一):
参考电压的正负输入引脚。
REFOUT:
内部参考电压的输出引脚。
Iout:
补偿电流输出引脚,可以通过控制寄存器关断或开启。
AGND:
模拟地。
/TFS:
发送帧同步信号,低电平有效。
/RFS:
接收帧同步信号,低电平有效。
/DRDY:
数据输出状态引脚。
引脚输出的信号由高变低时,表明数据转换已经结束,等待输出。
SDATA:
数据输入/输出引脚,引脚功能受TFS和
DVdd:
数字电压源正端,接+5V。
DGND:
数字地。
4.3、AD7710控制寄存器
AD77l芯片内部有三个24位的寄存器,它们是命令控制寄存器、数据寄存器和校验寄存器。
命令控制寄存器控制AD7710的滤波转折点、输入增益、通道选择、信号极性、校验方式、电源方式等参数的设置。
校验奇存器得到AD7710的自校验结果。
读写AD7710芯片寄存器由引脚A0的输入电平决定,当A0输人为低电平时,读写命令控制寄存器,否则读取数据寄存器和校验寄存器的结果。
AD7710的命令控制寄存器控制字如下表:
MD2
MD1
MD0
G2
G1
G0
CH
PD
WL
IO
BO
B/U
FS11
FS10
FS9
FS8
FS7
FS6
FS5
FS4
FS3
FS2
FS1
FS0
其中MD2,MD1,MD0为操作方式控制位,其含义如下表所示:
操作模式
操作模式说明
MD2
MD1
MD0
0
0
0
标准模式。
这是芯片运行的标准模式,将A0置1,可对数字寄存器进行读操作。
内部电源复位后寄存器的这几位将进入这一默认状态。
0
0
1
激活自校准模式。
这种自校准模式由CH控制。
这是一步校准,当校准完成后,将回到标准模式。
自校准完成后(非DRDY)将输出确认信号。
在这种模式下,零量程校准可通过内部输入零电平信号实现,满量程校准可通过内部的VREF实现。
0
1
0
激活系统校准模式。
这种模式由CH控制。
这是两步校准,首先对选定的输入通道进行零量程校准,校准完成后,(/DRDY)将输出确认信号。
第一步的最后将进入标准模式。
0
1
1
激活系统校准模式。
这是系统校准模式的第二步,在模式中,系统对选定的输入通道进行满量程校准。
校准完成后,(/DRDY)将再一次输出确认信号。
完成后,将进入标准模式。
1
0
0
激活系统补偿校准模式。
这种校准模式由CH控制。
这是一步校准,当校准完成,将回到标准模式,同时由(/DRDY)输出确认信号。
在这种模式下,零量程对选定的通道进行校准,满量程可通过内部的VREF校准。
1
0
1
激活背景校准模式。
这种校准模式由CH控制。
如果这种模式打开,AD7710将不断的对参考输入和零点平输入进行自校准。
在转化过程将进入这种模式,它可以延长转化时间和降低传输速率。
它的优势是当外界温度发生很大变化时,用户不用担心对芯片进行重校准。
在这种模式中,零电平输入和VREF以及模拟输入电压都将受到监视,并且,芯片的校准寄存器将能够自动更新。
1
1
0
读写零量程差分校准模式。
读写零范围差分校准模式由CH来选择通道。
将A0置1,可以对芯片进行读操作;将A0置1,可以对芯片进行写操作。
差分模式的读或写操作时数据长度为24位,不考虑控制寄存器的WL位。
因此,向校准寄存器输入的数据必须是24位的,否则数据将不能写进校准寄存器。
1
1
1
读写满量程差分校准模式。
读写零范围差分校准模式由CH来选择通道。
将A0置1,可以对芯片进行读操作;将A0置1,可以对芯片进行写操作。
差分模式的读或写操作时数据长度为24位,不考虑控制寄存器的WL位。
因此,向校准寄存器输入的数据必须是24位的,否则数据将不能写进校准寄存器。
表1MD2,MD1,MD0位含义
G2.G1,G0为放大增益控制位,用于设置可编程增益放大器的增益因子。
当芯片初始复位后,G2=0,G1=0,GO=0,增益为1;G2,G1,G0与放大增益关系如下表:
G2
G1
G0
增益
备注
0
0
0
1
缺省方式,当电源复位后
0
0
1
2
0
1
0
4
0
1
1
8
1
0
0
16
1
0
1
32
1
1
0
64
1
1
1
128
表2G2.C1.G0位含义
CH位决定物理通道的选择,当CH=0时选择通道1,否则选择通道2。
PD位为电源省电方式控制位,当PD=0为正常方式(缺省方式),当PD=1时,芯片进入省电方式运作。
WL位为输出字长度控制位,控制AD转换的输出字节数。
当WL=0时输出的AD结果位为16位,否则输出的AD结果位为24位。
IO位为输出电流补偿控制位,用于控制芯片20uA的补偿电流(可用于温度传感器的冷端补偿)。
当IO=0时关闭20uA的补偿电流输出(缺省方式),否则输出20uA的补偿电流。
BO位为BurnOut电流输出位,其含义与IO位相同。
B/U位为输入信号极性控制位,当输入信号为双极性信号时设置B/U位为0(缺省方式),当输入信号为单极性信号时设置B/U位为1。
FS11—FS0位为滤波参数位。
将12位数据写进FS11-FS0中,可确定截止频率的大小,滤波器的第一陷波频率的位置和芯片的数据传送速率。
如果考虑到它可确定增益大小,它还可以确定芯片的输出噪声(还有有用分辨率)。
滤波器的第一陷波频率可用如下等式求得:
滤波器的第一陷波频率=(FCLKIN/512)/code(这里的code指的是与FS0-FS11相等的十进制数,范围时19-2000)。
由于额定的fCLKIN等于10MHZ,因此滤波器的第一陷波频率的范围是9.76HZ-1.028kHZ。
为了确保AD7710能正常运行,输入给FS0-FS11的二进制数必须在规定的范围之内。
4.3、AD7710时序介绍
AD7710提供两种时钟模式。
一种为自时钟模式,另外一种为外时钟模式。
在本数据采集系统设计中,我们采用的是外时钟模式,故在此省略了自时钟模式时序介绍。
下面重点介绍外时钟模式介绍。
从MODE脚输入低电平,AD7710将进入外部时钟模式。
在这一模式中,AD7710的SCLK成为输入端,外部时钟通过串连SCLK脚向芯片提供时钟。
在外部时钟模式下,可以进行同步数据传送(可用于微处理器如:
80C51、87C51、68HC11、68HC05和数字信号处理器)。
4.4.1、AD7710读操作
AD7710可以对输出寄存器、控制寄存器和校准寄存器进行读操作。
读操作时序如下:
图2AD7710一次读操作读取所有数据的时序图
在读操作时,A0必须一直有效。
当A0=1,将对输出寄存器或校准寄存器进行读操作,当A0=0,将对控制寄存器中进行读操作。
(/DRDY)的作用取决于芯片输出数据的更新速率和输出寄存器输出数据的速率。
当在输出寄存器中的数据可获得时,(/DRDY)变成低电平。
当数据(24位或16位)全部读出时,(/DRDY)复位成高电平。
如果数据没有完全读出,(非DRDY)将一直保持低电平。
此时输出寄存器将以输出数据的速率更新数据,但是(/DRDY)不会输出确认信号。
在这种情况下,读出的数据将是输出寄存器中的最新数据。
如果新的数据已经到齐,并且希望能保存在输出寄存器,而此时的输出寄存器没有将数据输出完毕,(/DRDY)将不会输出确认信号,这些数据将会丢失。
在对控制寄存器和校准寄存器进行读操作时(/DRDY)不会受到影响。
当(/DRDY)为低电平时,只能从输出寄存器读取数据。
如果在(/DRDY)为高电平时(/RFS)变成低电平,数据无法传送。
在对控制寄存器和校准寄存器进行读操作时,(非DRDY)不会施加任何影响。
对控制寄存器和校准寄存器进行读操作是一样的,只是在这时候(/DRDY)将不起任何作用。
在对控制寄存器和校准寄存器进行读操作时,受输出数据更新速率影响,(/DRDY)可在任何阶段变成低电平,这对控制寄存器和校准寄存器的读操作周期不会有任何影响。
在对控制寄存器和校准寄存器进行读操作时,必须同时输出24位数据。
4.4.2、AD7710写操作
AD7710可以对控制寄存器和校准寄存器进行写操作。
读操作时序如下:
图3AD7710一次写操作的时序图
在写操作过程中,不会对(/DRDY)有任何影响,同样,(/DRDY)也不会影响写操作。
写操作中,输入的数据必须是24位的。
A0决定是对控制寄存器还是对校准寄存器进行写操作。
在写操作的过程中,A0必须一直保持有效。
和前面所说得一样,在进行读操作和写操作时,串行时钟线必须为低电平。
在外部SCLK为高电平时需要输入AD7710的数据必须有效。
数据是从高位到低位传输的。
五、数据采集系统设计
电路主要分为三个部分:
数据采样、数据转换、数据传输。
在整个电路中,系统由8051单片机进行控制。
具体框图如下:
PC机
8051
转换电路
采样电路
控制RS-232
数据
图4电路框图
24位高精度数据采集电路由三个电路组成,将三个电路的接口连起来即成24位高精度数据采集电路图。
该图用altiumdesigner6.9软件画出来,如下图所示:
图524位高精度数据采集电路图
六、分电路设计
6.1、采样电路
本电路设计采用简单的采样电路。
其电路如下图所示:
图6采样电路
在本电路中,我们从电阻R1上获取采样电压。
为了减小后续电路对采样电压的影响,我们使用了op07运算放大器。
该运算放大器主要有两个作用:
A、放大。
微弱信号都要进行放大以提高分辨率和降低噪声,也就是使调理后信号的最大电压值和ADC的最大输入值相等(当然在这里很难做到这一点,主要是使加大ADC的输入电流),这样可以提高精度。
B、隔离。
从安全的角度把采样电路和转换电路隔离开,防止采样电路输出的瞬时高压破换AD转换器。
另一个原因是隔离可使从转换电路等后续电路对采样电路的影响减少。
因此隔离可以保证信号的准确性。
6.2、转换电路
8051的串行口采用工作方式0(移位寄存器方式),TXD产生时钟脉冲,经过反相作为AD7710的外部时钟。
AD7710工作在外部时钟同步方式。
AD7710的/DRDY(数据准备好)与8051的P1.2相连。
具体的电路如下所示:
图7转换电路
AD7710中数据寄存器控制寄存器、校验寄存器中数据的读写必须按一定的时序关系进行。
读数据操作中,8051不断的查询/DRDY线,串行缓冲器连续读三次,这样可以把24位的数据读人8051的8位串行寄存器。
另外,AD7710输出的数据高位在前,而8051串行日首先渎入的是低位,所以在程序中要做一次高低位的转换。
存器中数据的写人操作由A0、/TFS控制,在数据的读取周期内,/TFS低有效,A0为高,表示向控制寄存器写人数据。
A0为低,表示向校验寄存器写人数据SDATA为在数据时钟SCLK下写入串行数据。
具体读取和写入数据流程图如下所示:
图8AD7710读取和写入数据流程图
6.3、数据传输
要将单片机中获取的数据串口传输给PC机,即PC机需要和单片机进行串行通信,这就要求通信双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。
由于PC机几乎都具有RS-232C接口,因此单片机通过RS-232C口与PC机通信十分方便。
在本设计中即采用这种方式进行通信。
然而单片机并没有RS-232C电气接口,要进行通信,必需要进行接口扩展。
单片机的串行通信连接图如下所示:
图9单片机的串行通信连接图
上位机(即PC机)发出的信号从J1的2口R1IN送到MAX232的13脚,经MAX232转换电平后,从MAX232的12脚R1OUT送出,送到单片机的RXD脚。
单片机发出的信号从TXD脚发出,送入MAX232的11脚T1IN,经处理后从MAX232的14脚T1OUT送出,送达J3的3脚T1OUT。
至此,单片机和PC机的通信链路建立完成。
七、设计中遇到的问题即解决办法
7.1、问题重述
本设计中遇到一个最大的问题就是在两个电路中都用到了单片机的TXD和RXD管脚。
如在转换电路中,RXD连接AD7710的SDADT(即21管脚),TXD经反相器后连接连接AD7710的A0(即3管脚)。
具体如下图所示:
图10转换电路中RXD、TXD的使用
而在数据传输电路中,PC机发出的信号从J1的2口R1IN送到MAX232的13脚,经MAX232转换电平后,从MAX232的12脚R1OUT送出,送到单片机的RXD脚。
单片机发出的信号从TXD脚发出,送入MAX232的11脚T1IN,经处理后从MAX232的14脚T1OUT送出,送达J3的3脚T1OUT。
具体如下图所示:
图11传输电路中RXD、TXD的使用
在这两个电路中,都用到了单片机的RXD、TXD,而我们知道在任意时刻,RXD、TXD管脚只能控制一个电路,否则将出现时序混乱以致功能混乱,因此我们需要想办法使RXD、TXD在任意时刻连接一个电路。
7.1、问题解决
为了使RXD、TXD在任意时刻连接一个电路(即连接一片芯片),我们想到了采用片选的方法。
当单片机要控制AD7710的时候,我们就片选AD7710,使MAX232处于不工作状态。
当单片机要控制MAX232的时候,我们就片选MAX232,使AD7710处于不工作状态。
于是我想到了一个片选办法,使用二选一。
我网上我查得可以选用74LS157可以满足这个要求。
但是细想一下,二选一是从两个里面选择一个。
即从转换电路和传输电路中选择一路输入到单片机,而事实上并不完全是这样的。
我们是通过单片机与两个电路相互通信。
二选一只有单方面通信的功能,因此并不能很好的处理这个问题。
这是我想到以前数电里面学到过多路开关。
于是通过网上查询得到CD4053(三2通道数字控制模拟开关)有这个功能。
因此在原电路中添加一个CD4053芯片就可以解决问题了。
CD4053的具体连接如下图所示:
图12CD4053的电路连接
八、课程设计感想
此次实验,我深入的学习了QuartusⅡ软件设计并仿真。
在编写程序中,我对VHDL语言的语法等结构有了更深的了解。
在本次实验中出现了一些问题,这些问题来源都是由于我们在一开始没有注意细节,比如没有仔细的去研究核心板上的管脚排布,使得我们刚开始对EP1C12Q240C8所存错误,虽然这个管脚是可以变化的,但就是由于刚开始没有注意,使得后来又花了一些时间在更改管脚上面。
其次是电路图中电阻使用错了,三级管射极加的电压不对,这些小的问题使得我们的实验并没有出现预期的效果。
此次由于前面有过设计电压表的经验,软件方面并没有出现多大的问题,关键是硬件方面的细节问题出现得太多。
在以后的设计电路中,我们应该更加重视硬件细节,不然的话就会做很多的无劳功。
此次实验虽出现了一些问题,但在问题中我也收获很多。
这实验让我们明白我知识的贫乏和工作中的严谨重要性,让我有了追求知识的更多欲望。
在这感谢老师、同学、队友对我的帮助和支持!