单片机数据采集系统设计方案Word文件下载.docx
《单片机数据采集系统设计方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机数据采集系统设计方案Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
将前述的各大基本部件,按某种方式连接起来就构成了计算机的硬件系统。
目前许多计算机的基本部件之间是用总线连接起来的。
计算机的总线按其逻辑结构来看,可以分为单总线和多总线结构。
1.2I/O系统概述
在以计算机为控制核心的硬件系统中,CPU和存储器一般封装在主机中,计算机系统与其他硬件设备信息的传输是通过I/O系统来完成的,因此I/O系统的设计是硬件系统设计的焦点,下面介绍一下I/O系统基本组成和功能。
(1)I/O系统的组成
I/O系统包括外部设备(输入输出设备和辅助存储器)及其与主机(CPU和存储器)之间的控制部件。
控制部件称之为设备控制器,或设备适配器,I/O模块或接口,其结构如图1-2。
(2)I/O模块的功能
I/O模块是连接主机(CPU、主存)和外部设备的桥梁,因此它必须有计算机的内接接口和计算机的外接接口。
其功能主要包括:
·
各种外设的操作方法不同,由CPU统一控制不切合实际。
外设的数据传输速率比存储器和CPU慢,使得高速总线不能直接与外设相连。
外设所使用的数据格式各不一致。
(3)I/O设备的编址
为了CPU便于对I/O设备进行寻址和选择,必须给众多的I/O设备进行编址,也就是给每一台设备规定一些地址码,称为设备号或设备代码。
I/O设备两种寻址方法:
专设I/O指令:
例指令IN完成输入,指令OUT完成输出操作。
其地址码指出I/O设备的设备代码。
这是I/O空间独立于存储器空间的情况,即设备码的编码和存储器的存储单元的编码是平行存在的。
存储器映象方式:
利用访存(取数/存数)指令完成I/O功能。
使用这种方法时,从主存的地址空间中分出一部分地址码作为I/O的设备代码,当访问到这些地址时,表示被访的不是主存储器,而是I/O设备寄存器。
这时I/O空间和存储器空间是合在一起的,即I/O设备和存储单元是统一编址的。
(4)I/O接口类型
按照数据传送的宽度可分为并行接口和串行接口。
并行接口中,设备和接口是将一个字节(或字)的所有位同时传送。
串行接口中,设备和接口间的数据是一位一位串行传送的,而接口和主机之间是按字节或字并行传送。
接口要完成数据格式的串—并变换。
按照数据传送的控制方式可分成程序控制输入输出接口,程序中断输入输出接口和直接存储器存取(DMA)接口等。
(5)I/O技术
常用的输入输出方式有五种,包括:
程序直接控制(编程I/O)、程序中断控制(中断驱动I/O)、存储器直接存取(DMA)、通道方式、外围处理机方式。
在实际硬件系统设计种,较常用的是程序直接控制方式和中断方式,下面介绍一下,这两种方式的特点和过程。
程序直接控制(programeddirectcontrol)
特点:
完全通过程序来控制主机和外围设备之间的信息传送。
过程:
首先启动设备,发出启动命令,接着CPU等待外围设备完成接收或发送数据的准备工作,在等待时间内,CPU不断地用一条测试指令检测外围设备工作状态标志触发器。
一旦测试到标志触发器已置成“完成”状态,即可进行数据传送,其流程如图1-3。
缺点:
这种控制方式简单,但CPU和外围设备只能串行工作,而CPU的速度比I/O设备的速度快得多,所以CPU的大量时间都处于等待,空闲状态,使系统效率大大降低。
程序中断传送(programinterrupttransfer)
启动外围设备后主机继续执行程序。
当外围设备完成数据传送的准备后,便向CPU发“中断请求”(INT)信号。
CPU接到请求后若可以停止正在运行的程序,转去执行“中断服务程序”,完成传送数据工作,传送完毕仍返回原来的程序,其流程如图1-4。
优点:
在一定程度上实现了CPU和外围设备的并行工作。
多中断:
若在某一时刻有几台外围设备发出中断请求信号,CPU可根据预先规定好的优先顺序,按轻重缓急去处理几台外设的数据传送,从而实现了外围设备的并行工作。
1.3计算机硬件系统的设计内容
计算机硬件系统的设计不仅仅是将电路设计出来就完成任务,要将硬件设计并调试到软件可以方便运行和调用的程度,所涉及的内容要广的多。
目前一般认为下列内容都属于硬件工程师要完成的任务:
电路设计、可编程器件的逻辑设计、专用集成电路设计、指令系统设计、计算机系统设计、微程序控制设计、汇编语言程序设计、设备驱动程序设计和系统仿真和调试的测试。
目前,嵌入式硬件的设计师还用懂得嵌入式实时操作系统。
总之,凡是实现“操作数字”的任务,以及以上层软件如何调用这些基本操作所涉及的软硬件接口,都是硬件设计的内容。
计算机硬件设计的层次不同,采用的方法也有所区别,专业的计算机一股脑见人员可能会涉及到处理器设计、存储器设计和传输通道设计,而非计算机的工程技术人员往往是利用已有的器件来设计板卡或者某种数字化装置。
一般来说,现代的硬件设计人员应该掌握电子设计自动化(EDA)方法和相应的软件工具。
EDA是利用计算机软件设计和仿真工具来进行硬件的芯片设计、电路原理设计、布板、运行仿真、热设计和电磁兼容性仿真等。
它可以大大提高硬件设计的效率和正确性。
作为硬件设计人员,还要学习硬件描述语言HDL,会采用各种开发工具软件和测试工具软件,并会用逻辑分析仪和示波器等调试硬件电路。
1.4计算机硬件系统的设计原则
计算机硬件系统的设计要遵循两个原则:
(1)加快经常性事件
经常性事件就是发生最频繁、占时间最多的事件,如果某个事件占了总运行时间的90%,这部分加快了10倍,总时间就会显著减小到原来的19%。
但如果某个事件只占了总时间的10%,即使加快10000倍,总时间也会少于原来的90%。
所以,加快经常性事件效果最好。
(2)性能平衡原则
即CPU、内存、I/O的性能要相互匹配才是一个性能平衡的系统,不平衡就会出现瓶颈。
一个经验的定律是:
每一个MIPS(每秒兆指令数)的处理能力,需要1MB的内存与1MB/s的I/O带宽与之匹配。
第二章数据采集技术概述
数据采集技术是微型计算机应用技术的重要分支。
外部现实对象(广义的外部设备)通过接口和计算机交换信息,在现实对象中.信息表现为不同的形式并有明确的物理意义,输入到计算机内部后部变成二进制数,统称为数据。
数据经过计算机的加工处理再作用到现实对象,又变成具体的物理信号。
上述整个过程部可以看成是数据采集技术涵盖的内容。
2.1数据采集系统的结构原理
数据采集系统一般包括模拟信号的输入输出通道和数字信号的输入输出通道。
数据采集系统的输入又称为数据的收集;
数据采集系统的输出又称为数据的分配。
2.1.1数据采集系统的分类
数据采集系统的结构形式多种多样,用途和功能也各不相同,常见的分类方法有以下几种:
根据数据采集系统的功能分类:
数据收集和数据分配;
根据数据采集系统适应环境分类:
隔离型和非隔离型,集中式和分布式,高速、中速和低速型;
根据数据采集系统的控制功能分类:
智能化数据采集系统,非智能化数据采集系统;
根据模拟信号的性质分类:
电压信号和电流信号,高电平信号和低电平信号,单端输入(SE)和差动输入(DE),单极性和双极性;
根据信号通道的结构方式分类:
单通道方式,多通道方式。
2.1.2数据采集系统的基本功能
数据采集系统的任务,具体地说,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机,根据不同的需要由计算机进行相应的计算和处理,得出所需的数据。
与此同时,将计算得到的数根进行显显示和打印,以便文现对某些物理量的监视[2]。
由数据采集系统的任务可以知道,数据采集系统具有以下几方面的功能:
数据采集、模拟信号处理、数字信号处理、开关信号处理、二次数据计算、屏幕显示、数据存储、打印输出、人机联系。
2.1.3数据采集系统的结构形式
从硬件力向来看,白前数据采集系统的结构形式主要有两种:
一种是微型计算机数据采集系统;
另一种是集散型数据采集系统。
微型计算机数据采集系统是由传感器、模拟多路开关、程控放大器、采样/保持器、AD转换器、计算机及外设等部分组成。
集散型数据采集系统是计算机网络技术的产物,它由若十个“数据采集站”和一台上位机及通信线路组成。
数据采集站一般是由单片机数据采集装置组成。
位于生产设备附近,可独立完成数据采集和颈处理任务,还可将数据以数字信号的形式传送给上位机。
2.2数据采集系统设计的基本原则
对于不同的采集对象,系统设计的具体要求是不相同的。
但是,由于数据采集系统是由硬件和软件两部分组成的,因此,系统设计的一些基本原则是大体相同的[2]。
2.2.1硬件设计的基本原则
(1)经济合理
系统硬件设计中,一定要注意在满足件能指标的前提下,尽可能地降低价格,以便得到高的性能价格比,这是硬件设计中优先考虑的一个主要因素,也是一个产品争取市场的主要因素之一。
(2)安全可靠
选购设备要考虑环境的温度、湿度、压力、振动、粉尘等要求,以保认在规定的下作环境下,系统性能稳定、工作可靠。
要有超量程和过载保护,保证输入、输出通道正常工作。
要注意对交流市电以及电火花等的隔离。
要保证连接件的接触可靠。
(3)足够的抗干扰能力
有完善的抗干扰措施,是保证系统精度、工作正常和不产生错误的必要条件。
2.2.2软件设计的基本原则
(1)结构合理
程序应该采用结构模块化设计。
这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。
在程序编序时,要尽量使得程序的层次分明,易于阅读和理解,同时还可以简化程序,减少程序对于内存的使用量。
当程序中有经常需要加以修改或变化的参数时,应该设计成独立的参数传递群序,避免程序的频繁修改。
(2)操作性能好
操作件能好是指使用方便。
这点对数据采集系统来说是很重要的。
在开发程序时,应该考虑如何降低对操作人员专业知识的要求。
(3)系统应设计一定的检测程序,例如状态检测利诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丢失数据。
(4)提高程序的执行速度。
(5)给出必要的程序说明。
第三章数据采集系统的硬件设计
3.1系统结构框图
数据采集系统的主要分为以下几个模块:
数据采集转换模块、数据存储模块、键盘控制模块、时钟模块、液晶显示模块、串口通信模块。
其中数据采集模块包括AD电压信号量采集和系统工作温度采集。
各模块关系图如图3-1。
3.2系统工作原理
该系统工作的总原理图如图3-2。
图3-2系统总原理图
3.2.1CPU处理核心模块
AT89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,拥有8KB的可编程的闪存(Flashprogrammableanderasablereadonlymemory)。
它提供下列标准特征:
8K字节的闪速存储器,56字节的RAM,32条I/O线,3个16位定时器/计数器,一个六中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。
其管脚图如图3-3所示:
引脚说明:
VCC:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在Flash编程时,P0口接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
P1口:
P1口是一带有内部上拉电阻的8位双向I/O口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
P2口:
P2是一带有内部上拉电阻的8位双向的I/O端口。
P2口的输出缓冲能驱动4个TTL逻辑门电路。
当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。
在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。
当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。
当Flash编程或校验时,P2口同时接收高8位地址和一些控制信号。
P3口:
P3是一带有内部上拉电阻的8位双向的I/O端口。
P3口的输出缓冲能驱动4个TTL逻辑门电路。
当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
P3口同时具有AT89C51的多种特殊功能,具体如下表3-1所示。
表3-1P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0)
P3.5
T1(定时器1)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器都选通)
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。
ALE/
:
当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。
当在Flash编程时还可以作为编程脉冲输出(
)。
一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。
但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。
:
程序存储允许时外部程序存储器的读选通信号。
当AT89C52执行外部程序存储器的指令时,每个机器周期
两次有效,除了当访问外部数据存储器时,
将跳过两个信号。
/VPP:
外部访问允许。
为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,
必须同GND相连接。
需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。
当执行内部编程指令时,
应该接到VCC端。
XTAL1:
振荡器反相放大器以及内部时钟电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
本系统中,采用AT89C52作为CPU处理器,充分利用其硬件资源,结合74ls373锁存器,7404、7402、74138等数字处理芯片,连接了各个硬件模块。
地址分配如下:
ADC0809地址:
0111100000000000B--01111111XXXXXXXXB
3.2.2ADC模数转换
1.ADC0809主要特性
ADC0809是采用CMOS工艺制造的双列直插式单片8位A/D转换器。
分辨率8位,精度7位,带8个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。
启动信号为脉冲启动方式,最大可调节误差为±
1LSB,ADC0809内部设有时钟电路,故CLK时钟需由外部输入,fclk允许范围为500kHz~1MHz,典型值为640kHz。
每通道的转换需66~73个时钟脉冲,大约100~110μs。
工作温度范围为-40℃~+85℃。
功耗为15mW,输入电压范围为0~5V,单一+5V电源供电。
它可以接与Z80、8085、8080、8031等CPU相连,也可以独立使用。
2.ADC0809内部结构和外部引脚
ADC0809A/D转换器,其内部结构如图3-4所示。
包括一个高阻抗斩波比较器;
一个带有256个电阻分压器的树状开关网络;
一个逻辑控制环节和8位逐次比较寄存器(SAR);
一个8位三态输出缓冲器。
引脚功能介绍如下:
图3-4ADC0809内部结构和外部引脚图
A、IN0~IN8:
8路输入通道的模拟量输入端,输入;
B、2-1~2-8:
8位数字量输出端;
2-1为最低位(LSB),2-8为最高位(MSB),输出,三态;
C、ALE:
地址锁存控制信号,输入,上升沿有效。
将地址选择信号A、B、C锁入地址寄存器;
D、START:
启动A/D转换控制信号,输入,上升沿有效。
当输入一个正脉冲,便立即启动A/D转换,同时使EOC变为低电平;
E、EOC:
A/D转换结束信号,输出,高电平有效。
EOC由低电平变为高电平,表明本次A/D转换已经结束;
F、OE:
输出允许控制信号,输入,高电平有效。
OE由低电平变为高电平,打开三态输出锁存器,将转换的结果输出到数据总线上;
G、VREF(-)、VREF(+):
片内D/A转换器的参考电压输入端。
VREF(-)不能为负值,VREF(+)不能高于VCC,
且1/2[VREF(-)+VREF(+)]与1/2VCC之差不得大于0.1V;
H、CLOCK:
时钟输入端。
500kHz~1MHz,典型值为640kHz。
I、A、B、C:
8路模拟开关的3位地址选通输入端,其对应关系如表3-2所示。
表3-28路模拟开关地址选通输入端
ADC0809时序图如图3-5所示。
其中,
tWS:
最小起动脉宽,典型值为100ns,最大值为200ns;
tWE:
最小ALE脉宽,典型值为100ns,最大值为200ns;
tD:
模拟开关延时,典型值为1μs,最大值为2.5μs;
tC:
转换时间,当fclk=640kHz时,典型值为100μs,最大值为116μs;
tEOC:
转换结束延时,最大位8个时钟周期加2μs。
本系统采用中断连接方式,当传感器获取的信号经过放大器放大和滤波后再AD转换器进行处理。
通过对其模拟通道控制线ADDA、ADDB、ADDC的设值可以对通道进行选择。
将ADDA、ADDB、ADDC分别接系统地址锁存器提供的末三位地址,只要把三位位地址写入0809中的地址锁存器,就实现了通道的选择。
将ADC0809的ALE和START信号连在一起,然后将8051中的P2.7作为片选信号,与8051中的/WR“或非”后接ALE信号,与/RD“或非”后连ADC0809的OE信号,同时将ADC的EOC转换结束信号连接8051的中断口。
该模块的原理图如图3-6。
图3-5ADC0809时序图
图3-6AD转换模块原理图
此时启动A/D转换只需一条MOVX指令。
例如:
MOVDPTR,#0000H;
送入0809的口地址,选择IN0通道
MOVX@DPTR,A;
启动转换
转换完成后,将会给8051一个中断,此时只要在中断程序中保存数据即可。
3.2.3液晶显示流程
本系统的显示部分采用RT1602c字符显示模块,与采用数码管相比,硬件连接和软件调试上都由优势。
只要把要显示的内容放进液晶模块的显示存储器里面就可以直观的显示出指定的内容,操作方便。
1602采用标准的14脚接口,其中:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
V0为液晶显示器对比度调整端。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表3-3所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平),指令表见表3-4。
表3-41602字符模块指令表
指令1:
清显示,指令码01H,光标复位到地址00H位置
指令2:
光标复位,光标返回到地址00H
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符