数据采集系统共10页word资料.docx
《数据采集系统共10页word资料.docx》由会员分享,可在线阅读,更多相关《数据采集系统共10页word资料.docx(13页珍藏版)》请在冰点文库上搜索。
数据采集系统共10页word资料
一、主要内容及意义
单靠“死”记还不行,还得“活”用,姑且称之为“先死后活”吧。
让学生把一周看到或听到的新鲜事记下来,摒弃那些假话套话空话,写出自己的真情实感,篇幅可长可短,并要求运用积累的成语、名言警句等,定期检查点评,选择优秀篇目在班里朗读或展出。
这样,即巩固了所学的材料,又锻炼了学生的写作能力,同时还培养了学生的观察能力、思维能力等等,达到“一石多鸟”的效果。
本设计用8088控制的数据采集系统,本文着重介绍该系统的工作原理及硬件与软件设计,本设计的主要组成如下:
这个工作可让学生分组负责收集整理,登在小黑板上,每周一换。
要求学生抽空抄录并且阅读成诵。
其目的在于扩大学生的知识面,引导学生关注社会,热爱生活,所以内容要尽量广泛一些,可以分为人生、价值、理想、学习、成长、责任、友谊、爱心、探索、环保等多方面。
如此下去,除假期外,一年便可以积累40多则材料。
如果学生的脑海里有了众多的鲜活生动的材料,写起文章来还用乱翻参考书吗?
(1)数据输入单元。
家庭是幼儿语言活动的重要环境,为了与家长配合做好幼儿阅读训练工作,孩子一入园就召开家长会,给家长提出早期抓好幼儿阅读的要求。
我把幼儿在园里的阅读活动及阅读情况及时传递给家长,要求孩子回家向家长朗诵儿歌,表演故事。
我和家长共同配合,一道训练,幼儿的阅读能力提高很快。
(2)采样保持电路的A/D转换单元。
(3)硬件和8088的连接电路。
(4)8088输出的数据锁存和D/A转换单元。
多路数据采集系统的方案及总体设计,包括主体电路的设计和8088控制电路的设计(要用到8088的控制整个系统),因此要完成8088应用系统的硬、软件设计并完成软件调试,以满足整个系统的要求。
整个系统的设计包括硬件设计和软件设计两部分。
硬件设计主要完成多路数据采集整个硬件电路及I/O接口的设计:
运算放大电路、采样保持电路、模数转换电路、硬件和8088的连接电路、数模转换电路、转换开关保护电路等组成;软件设计主要完成控制整个系统的应用程序与调试。
包括主程序、A/D和D/A转换程序、多路开关控制以及I/O接口控制等程序的设计。
系统总框图如图1所示。
二、系统硬件设计
2.1、数/模转换电路模块
D/A转换部分也是数据采集系统的一个重要部分,在数字控制系统中作为关键器件,用来把8088输出的数字信号转换成电压或电流等模拟信号,并送入执行机构进行控制或调解。
除了新型的现场总线控制系统外,传统的计算机控制系统大都是用模拟电压或电流作为传输信号的。
模拟量输出通道的作用就是把计算机处理得出的数字量结果转换成模拟电压或电流信号,传输给相应的执行机构,实现对被控对象的控制。
能把数字量转换成模拟量的器件称为数/模转换器简称D/A转换器或DAC。
输出接口电路、DAC是模拟量输出通道的基本部件。
由于实现较远距离的信号传输时采用的是电流信号,而DAC通常输出的是电压故模拟量输出通道一般具有电压/电流(V/I)转换环节[8]。
此外,根据需要可能还要有零点和满度调节部件。
因数/模转换器是模拟输出通道的核心,所以通常也把模拟量输出通道称为D/A通道。
2.1.1.D/A通道的结构
8088周期地输出控制数据给执行机构,在下次数据输出以前,必须将前一次输出的数据保持。
单个的D/A通道由数据锁存器保持数据,通道由输出接口电路数据锁存器、D/A转换电路、V/I转换电路等构成。
许多DAC芯片的输入端都有数据锁存器,这时不需另加锁存器。
对于多模拟量输出通道,有两种不同的输出量保持方式,即有两种不同的结构。
一种方式是采用数据锁存器保持输出量,每个输出通道都有独立的数据锁存器(一般含在DA芯片内)及D/A转换器。
这种方案的优点是速度快,精度高,工作可靠,不用多路开关。
另一种方式是使用采样保持器保持输出量,各通道共享一个D/A转换器,通过多路开关进行切换。
由于各路共用一个D/A转换器,其转换速度减慢,且输出端靠保持电容模拟量信息,当控制周期较长时,需要软件刷新。
优点是节约了芯片。
由于D/A通道的第一种方式的转换速度快,精度高,工作可靠,不用多路开关又节约了芯片降低了系统的造价,所以本设计的系统采用D/A通道的第一种方式。
第一种方式如图12所示。
图12具有独立DAC的多路模拟量输出通道
2.1.2、选用D/A芯片
集成电路D/A转换器是将精密电阻网络、模拟开关、甚至包括基准电源和运算放大器集成在同一芯片上,而且和8位或16位微处理器兼容,可直接接口,或只需少量外围电路即可构成完整的D/A转换器。
这些集成电路芯片是由大规模集成电路技术(LSI)实现的,它们有TTL、CMOS等用不同的逻辑和工艺生产的产品,是典型的数字电路和模拟电路混合集成芯片。
D/A有多种分类方法,各有不同特点。
按数据输入方式有并行、串行之分。
按字长区分,则有8、10、12、···位之分,字长不同,微分阶梯粗细不同。
按模拟开关工艺分类有双极型、JFET型和MOS型,它们的速度和精度不同;按结构有带或不带数据锁存器之分;按输出形式有电压型和电流型之分;等等。
尽管如此,但转换原理基本上是一致的。
DAC0832是常用的8位COMS电流输出型乘法D/A转换器,由于采用COMS电流开关和控制电路,所以功耗低,输出漏电流小。
可以直接8088连接。
DAC0832片内含有输入缓冲寄存器和DAC锁存器两个8位寄存器。
可以进行两级缓冲操作,具有很大的灵活性,可以采用流水线方式,一边输入数据一边转换上一次输入的数据。
因此,本设计选用美国半导体公司推出的8位D/A转换芯片DAC0832。
DAC0832的及特点如下:
(1)基本特性
分辨率:
8位。
电流稳定时间:
1μs。
功耗:
20mV。
单电源供电:
+5V~+15V。
数字输入与TTL兼容。
可采用双缓冲、单缓冲或直接数字输入三种工作方式。
(2)结构
DAC0832是采用CMOS工艺,具有20个引脚的双列直插式8位D/A转换器,其引脚如图13所示。
DAC0832有两级锁存器,第一级称为输入寄存器,第二级称为DAC寄存器。
因为有两级锁存器,DAC0832可以工作在双缓冲方式下,即在输出模拟信号的同时可以采集一个数字量,这样可以有效地提高转换速率。
另外,还可以在多个D/A转换器同时工作时,利用第二级锁存信号实现多路D/A的同时输出。
DAC0832既可以工作在双缓冲方式,也可以工作在单缓冲方式。
无论哪种工作方式,只要数据进入DAC寄存器便启动D/A转换。
内部结构图如下:
2.1.3、引脚功能
:
片选信号,低电平有效。
ILE:
输入锁存器允许信号,高电平有效。
:
输入寄存器数据写信号,低电平有效。
当
为低电平时,用来将输入数据传送到输入锁存器,当
为高电平时,输入锁存器中的数字被锁存。
只有当ILE为高电平且
和
同时为低电平时,才能将锁存器中的数据更新。
以上三个控制信号构成第一级输入锁存。
图13DAC0832引脚图
:
输入锁存器向DAC寄存器传送数据控制信号,低电平有效。
:
DAC寄存器选通信号,低电平有效。
当
和
同时有效时输入寄存器中的数据被装入DAC寄存器,并同时启动D/A转换器。
和
构成第二级锁存。
DI0~DI7:
8位数据输入端,DI0是最低位(LSB),DI7是最高位(MSB)。
IOUT1:
DAC电流输入端1。
当DAC寄存器全为1时,表示IOUT1为最大值;当DAC寄存器为全0时,IOUT1=0。
IOUT2:
DAC电流输出端2。
IOUT2为常数减去IOUT1,或者IOUT1+IOUT2=常数。
在单级性输出时,IOUT2通常接地。
RFB:
反馈电阻,接运算放大器的输出端,为外部运算放大器提供反馈电压。
RFB可由内部提供,也可由外部提供。
VREF:
参考电压输入端。
范围为+10V~-10V。
VCC:
工作电压。
范围为+5V~+15V。
AGND:
模拟地。
DGND:
数字地。
AGND和DGND是两种不同的地,为避免数字信号干扰模拟电路,两者应分别走线,最后才接在一起。
2.1.4、D/A转换器接口电路设计
(1)DAC0832的单缓冲工作方式接口
若应用系统中只有一路D/A转换或虽然有多路转换,但并不要求同步输出时,则可以选择单缓冲接口方式。
在单缓冲接口方式下,ILE接+5V始终保持有效,由写信号控制数据的锁存,
和
相连,接8088的WR,数据同时写入两个寄存器。
传送允许信号
与
片选相连,选中DAC0832后,写入数据立即启动转换。
(2)DAC0832双缓冲工作方式接口
对于多路D/A转换接口,要求同步并行D/A转换时,必须采用双缓冲同步方式接法。
DAC0832采用这种接法时,数字量的输入锁存和D/A转换输出是分两步完成的,CPU数据总线分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中,然后CPU对所有的D/A转换器发出控制信号,使各个D/A转换器输入寄存器中的数据同时输入DAC寄存器,实现同步转换输出。
两路同步输出的D/A转换接口电路。
每片DAC0832为双缓冲连接方式,这时两片DAC0832的输入寄存器有各自的独立地址,而两个DAC寄存器有相同的地址,两片的传送允许信号XFER接同一线选端,以实现同步转换输出。
本设计系统是实现D/A转换,要求同步进行D/A转换输出,因此系统采用双缓冲同步工作方式。
两片DAC0832的片选信号CS由74LS138译码信号Y3、Y4进行片选,XFER接74LS138译码信号Y5来控制两片DAC0832同步转换输出。
两片DAC0832的
和
相连,接AT89S51的WR。
(3)DAC0832的双极性输出
DAC0832为单极性输出方式时,当VREF接+5V(或-5V)时,输出模拟电压的范围是0~5V(或0~+5V)。
若VREF接+10V(或-10V)时,输出电压范围是0~-10V(或0~+10V)。
单极性输出方式的输出电压的极性与参考电压极性相反。
图14所示是DAC0832双极性输出方式的接口。
图14中运放A2所在的电路为反向求和电路,将运放A1的输出与VREF相加,从而将运放A1单极性输出转变为双极性输出。
由图14可知:
UOUT2=-
UOUT1-
VREF=-2UOUT1-TREF(2-7)
于是,当VREF=+5V时,A1的输出VOUT1的范围是0~-5V,而A2的输出VOUT2的范围为-5V~+5V。
当VREF=+10V时,A1的输出VOUT1的范围是0~-10V,而A2的输出VOUT2的范围为-10V~+10V。
其转换流程图如下:
2.2、模/数转换电路模块
按模拟量转换成数字量的原理可以分为3种:
双积分式、逐次逼近式及并行式A/D转换器。
而该系统选用的是ADC0809,下面就具体的介绍一下ADC0809的工作原理。
2.2.1、ADC0809的介绍
ADC0809是八通道的八位逐次逼近式A/D转换器。
由单一的5V电源供电,片内带有锁存功能的8选1的模拟开关。
由C、B、A的编码来决定所选的模拟通道。
转换时间为100us。
转换误差为1/2LSB。
它的引脚的排列及其功能,其引脚图见3.10
图3.10ADC0809的引脚图
IN7~IN0:
八个通道的模拟输入量。
ADDA、ADDB、ADDC:
模拟通道地址线。
当CBA=000时,IN0输入,当CBA=111时,IN7输入。
ALE:
地址锁存信号。
START:
转换启动信号,高电平有效。
D7~D0:
数据输出线。
三态输出,D7是最高位,D0是最低位。
OE:
输出允许信号,高电平有效。
CLK:
时钟信号,最高频率为640KHZ。
EOC:
转换结束状态信号。
上升沿后高电平有效。
Vcc:
+5V电源。
Vref:
参考电压。
2.2.2、ADC0809的时序图及其接口电路
ADC0809的时序图如图3.11所示:
图3.11ADC0809的时序图
其工作过程是:
ALE的上升沿将A、B、C端选择的通道地址锁存到8位A/D转换器的输入端。
START的下降验启动8位A/D转换器进行转换。
A/D转换开始使EOC端输出低电平。
A/D转换结束,EOC输出高电平。
该信号通常可作为中断申请信号。
OE为读出数据允许信号。
OE端为高电平时,可以读出转换的数字量。
硬件电路设计时,需根据时序关系及软件进行设计。
内部结构图如下:
由于ADC0809具有输出3态锁存器,其八位数据输出引脚可直接与数据总线相连。
地址译码引脚A、B、C分别与地址总线低三位A0、A1、A2相连,以选通IN0~IN7中的一个通道。
在启动A/D转换时,由8088的A口控制A/D转换器的地址锁存和转换启动,由于ALE和START连在一起,因此AD0809在锁存通道的同时,也启动了A/D转换器。
在读取转换结果时,用低电平的读信号RD,产生的正脉冲作为OE信号,用以打开三态输出锁存器。
将转换结果输出。
而低电平的写信号WR则表示转换结束状态信号。
其转圜流程图如下:
图为A/D转换程序的流程图
3.3、中央处理8088模块
3.3.1、8088简介
本设计的处理器采用Intel公司的8088,其主要特点如下:
8088有两种基本的工作模式:
最小模式——指系统中只有8088一个微处理器。
系统中,所有的总线控制信号都直接由8088产生,整个系统总线的控制线路最简单。
最大模式——指系统中包含有两个或多个微处理器,其中一个主处理器就是者8088,其他的处理器称为协处理器,用在中等规模的或者大型的8088系统。
说明:
8088工作在何种模式,完全由硬件决定。
当CPU引脚的MN/MX接高电平时工作在最小模式。
当CPU引脚的MN/MX接低电平时工作在最大模式。
8088的引脚图如下:
3.3.2、8088引脚功能
8088的引脚主要功能如下:
1)、GND、VCC:
地和电源。
2)、AD15~AD0:
地址/数据复用引脚,双向工作。
3)、A19/S6~A16/S3:
地址/状态复用引脚,输出。
S6=0;S5:
中断允许标志位状态;S5=1表明CPU可以响应可屏蔽中断请求,S5=0表明CPU禁止一切可屏蔽中断。
S4、S3:
二者的组合表明当前正在使用的段寄存器(表1.1)
S4
S3
当前正在使用的段寄存器
0
0
ES
0
1
SS
1
0
CS或未使用任何段寄存器
1
1
DS
4)NMI(Non-MaskableInterrupt):
非屏蔽中断输入引脚,上升沿触发,不受中断允许标志IF的影响,这类不能用软件进行屏蔽。
5)INTR(InterruptRequest):
可屏蔽中断请求信号输入,高电平有效,受中断允许标志IF的影响。
这类中断可用软件屏蔽。
6)CLK(Clock):
时钟输入。
8086要求时钟信号的占空比为33%,即1/3周期为高电平,2/3周期为低电平。
7)RESET(Reset):
复位信号输入,高电平有效。
8086/8088要求复位信号至少维持4个时钟周期的高电平才有效。
8)RD(Read):
读信号输出,指出将要执行一个内存或I/O端口的读操作。
9)READY(Ready):
“准备好”信号输入,由所访问的存储器或者I/O设备发来,高电平有效,表示内存或I/O设备准备就绪。
10)MN/MAX(Minimum/MaximumModeControl):
最小/最大模式控制信号输入,它决定了8086/8088工作模式。
如果接为+5V,则CPU处于最小模式;如果接地,则CPU处于最大模式。
11)BHE/S7(BusHighEnable):
高8位数据总线允许引脚,输出。
BHE信号和A0组合起来告诉连接在总线上的存储器和接口,当前数据在总线上以何种格式出现
4、系统的总设计图
通过对以上模块的介绍分析,以及对设计需求的考虑,设计的系统总电路图如下:
三、系统的软件设计
3.1KEILC51编译器简介
KEILC51标准C编译器为AT89S51微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision2IDE可为它们提供单一而灵活的开发环境。
C51V7版本是目前最高效、灵活的AT89S51开发平台。
它可以支持所有AT89S51的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具[10]。
因此,C51V7版本无疑是AT89S51开发用户的最佳选择。
3.1.1uVision2集成开发环境
1.项目管理
工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。
一个单一的uVision2工程能够产生一个或多个目标程序。
产生目标程序的源文件构成“组”。
开发工具选项可以对应目标,组或单个文件。
uVision2包含一个器件数据库(devicedatabase),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。
此数据库包含:
片上存储器和外围设备的信息,扩展数据指针(extradatapointer)或者加速器(mathaccelerator)的特性。
2.集成功能
uVision2的强大功能有助于用户按期完工。
(1)集成源浏览器利用符号数据库使用户可以快速浏览源文件。
用详细的符号信息来优化用户变数存储器。
(2)文件寻找功能:
在特定文件中执行全局文件搜索。
(3)工具菜单:
允许在V2集成开发环境下启动用户功能。
(4)可配置SVCS接口:
提供对版本控制系统的入口。
(5)PC-LINT接口:
对应用程序代码进行深层语法分析。
(6)Infineon的EasyCase接口:
集成块集代码产生。
(7)Infineon的DAVE功能:
协助用户的CPU和外部程序。
DAVE工程可被直接输入uVision2。
3.1.2编辑器和调试器
1.源代码编辑器
uVision2编辑器包含了所有用户熟悉的特性。
彩色语法显像和文件辩识都对C源代码进行和优化。
可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。
2.断点
uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。
用户启动V2调试器之后,断点即被激活。
断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。
在属性框(attributescolumn)中可以快速浏览断点设置情况和源程序行的位置。
代码覆盖率信息可以让你区分程序中已执行和未执行的部分。
3.调试函数语言
uVision2中,你可以编写或使用类似C的数语言进行调试。
(1)内部函数:
如printf,memset,rand及其它功能的函数。
(2)信号函数:
模拟产生CPU的模拟信号和脉冲信号(simulateanaloganddigitalinputstoCPU)。
(3)用户函数:
扩展指令范围,合并重复动作。
4.变量和存储器
用户可以在编辑器中选中变呈来观察其取值。
双层窗口显示,可进行以下调整:
(1)当前函数的局部变量。
(2)用户在两个不同watch窗口页面上的自定义变量。
(3)堆栈调用(callstack)页面上的调用记录(树)(calltree)。
(4)不同格式的四个存储区。
设计代码见附录
调试过程如下: