资源描述
1 绪论
1.1 课题研究背景和意义
在现代工业控制系统中,多参数实时采集对监控设备正常运行有着十分重要的作用。多参数信号采集能将监控现场的物理量、化学量、或生物量通过相应的传感器和调理电路把模拟量转化为易于采集、处理的电压信号,经单片机的处理,一方面反馈给控制部件对监控对象进行控制调整,另一方面送给显示单元,实时显示采集的信号数据。在航空、汽车、通信、园林等控制领域,多参数实时采集与处理是自动控制系统的核心。随着计算机技术的发展,数据采集与处理系统的应用越来越广泛,不仅应用于新的工程项目,而且还广泛应用于国内许多旧有仪器设备的改造中[1]。
数据采集技术是信息科学的一个重要分支,与传感器技术、信号处理技术、计算机技术共同构成了现代检测技术的基础。而数据采集技术正是这些技术的前端,也是信息进行可靠传输和正确处理的基础。
数据采集是指将温度、压力、流量、位移等模拟量采集、转换成数字量后,再由计算机进行存储、处理、显示或打印的过程。在生产过程中,可对生产现场的工艺参数进行采集、监视和记录,为提高产品的质量、降低成本提供信息和手段。在科学研究中,可对应用数据进行采集,从而获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。
随着现代电子技术的飞速发展,数据采集技术也日新月异,特别是小型化、便携式解决方案在数据采集中开始占据越来越大的比重,并越来越多地倾向于低电压、低功耗、微型化设计,有的小型数据采集器甚至小到可以放进衬衫口袋里。目前一些市场上出售的小型数据采集器实际上就是全功能的计算机。它们功能强大,具有现场实时数据采集、处理功能的自动化设备,具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输功能;为现场数据的真实性、有效性、实时性、可用性提供了保证,并能方便输入计算机,已广泛应用在工业、农业、商业、交通、物流、仓储等行业。因此,根据当前数据采集发展的实际情况,研制开发符合生产需要的多功能智能化的数据采集器具有现实意义[2]。
1.2 国内外研究现状
数据采集系统的应用非常广泛,是目前工业控制中应用较多的一类产品,国内外许多科研单位和技术公司都在积极研制,国外的数据采集器的研制已经相当成熟,而且种类不断增多,性能越来越好,功能越来越强大。以数据采集行业的佼佼者NI公司为例,NI6115同步多功能数据采集卡(DAQ),是基于PCI的4路差分输入,模拟输入最高10M/s,12位同步采样。DAQ-2005是4路500kS/s 16bit同步数据采集卡,带2路1M/s D/A输出,24路DIO。又如美国福禄克(Fluke)公司的262XA系列是一种小型,便携,操作简单,使用灵活的数据采集器。它可以单独使用,也可以和计算机连接使用。它具有多种测量功能,多种数据存储方式和多种控制方式。具有21路模拟输入通道,12路数字通道;RS232接口和数据记录,前面板锁定:防止其它人员意外触动前面板按键。
在国内,也有不少的大学、科研机关、公司从事数据采集器的研制,由于数据采集技术不断发展,市场上出现了各种新型的数据采集器。如北京中泰研创科技有限公司,利用DAS制作的数据采集系统PCI-8344B,它具有16Bit A/D,8通道并行同时转换,8KFIFO,0~10V、±5V双端输入,每个通道的转换速率都可达100KHz。四川拓普数字设备有限公司的PCI-10016具有4通道模拟量输入,最高采样率:100Ksps,16BitA/D。北京华控技术有限责任公司的通用数据采集控制板HK—6060C/HK—6070C,具有如下性能:输入通道数:单端16路,分辨率:12Bit,输入电压范围:±5V,±2.5V,0~5V,模拟电压输出部分,输出通道数:1路,分辨率:12Bit,8路数字量输入通道,8路数字量输出通道,输出电压范围:±5V,±2.5V,0~10V,0~5V;北京康泰电子有限公司的DAQ-1602/PCI 16位PCI总线数据采集板,具有16bit,250kHz和500kHz A/D输入,可编程增益选择:1,2,4,8, 8CH差分或16CH单端输入,2048字节的数据Buffer。经过对国内外现有数据采集行业产品的性能、价格、功能的了解,其概况如下:
(1)国外的数据采集器精度高、采样速度快、功能较全,但价格较为昂贵。
(2)体积较大、操作复杂。
(3)采样频率和采样精度两者不能很好的统一。
(4)国内的数据采集器与国外的相比其精度和速度有一定的距离[2]。
2 系统方案设计
数据采集系统包括模拟信号的输人转换及处理。模拟信号以电压形式输送给A/D转换器,经模数转换后转换为数字信号,将数字信号送入单片机进行相应的处理及控制,输送给显示装置,最后显示出来,也可以将数据上传至PC机。数据收集的基本手段是模数转换,它是将来自各式各样传感器的模拟量实时地、准确地测量或汇集起来,送入计算机实时处理,并输出相应的控制信号以实现对物理系统的控制或记录,而一个完整的数据采集需要包括硬件和软件两部分组成[2]。
2.1 硬件系统方案
整个硬件系统主要由信号源、AD转换器、单片机及LCD液晶显示等部分组成。其中A/D转换器使用ADC0809实现,单片机使用AT89C51。系统主要完成的功能是对电压信号的转换和显示。如图2.1所示。
图2.1 硬件系统框图
2.2 软件系统方案
软件部分实现对数据采集的控制处理,当数据选通某一通道后,由A/D转换程序控制进行A/D转换,转换结束后输送给单片机处理,处理结果送LCD显示。当系统开始采集后,首先送通道0的地址,对通道0进行采集,同时要判断时间是否为5的倍数,若为5的倍数,则立即在送通道1的地址,对通道1进行采集,通道0每隔一秒采集一次,共采集100次,通道1每隔5秒采集一次,共采集20次。将采集的结果显示在LCD液晶显示屏上。采集过程中会调用相关的子程序,数据采集及AD转换程序,液晶显示程序,串行通信程序等。实现单片机对采集过程的控制。
3 系统硬件设计
3.1 部分硬件电路设计
硬件电路系统由滤波电路、A/D转换电路、单片机、LCD液晶显示、时钟、串行通信等部分组成[3]。
3.1.1 滤波电路设计
低通滤波器类型的选择
根据采样定理,最低采样频率必须是信号最高频率的两倍。如果信号中包含频率高于奈奎斯特频率的成分,采样后的信号将发生畸变。这种信号畸变叫做混叠(allas)。一旦完成信号采样,这些信号混叠到有用信号的频段,就无法从有用信号中移除这些频率成份。混叠现象会严重影响数据转换系统的性能指标,所以在设计含有ADC的系统时,必须在转换器前使用一个低通滤波器,以确保高于奈奎斯特频率的噪声被足够的衰减,不会出现在采样后的信号中。这个低通滤波器称为抗混叠滤波器[3]。
选用TI公司的THS4052。它是一种70MHz低成本高速电压反馈放大器。工作电压可设为士5V,失真度、转换速率、稳定时间都能满足要求。
THS4052的性能指标:
1高速:70MHz带宽(G=1,-3dB),240V/us转换速率,60-ns稳定延迟时间 (0.1%)
2高输出驱动,Io=l00mA(典型值)
3优良的视频性能:30MHZ的0.ldB带宽(G=1),0.01%的增益误差,0.01度的相位误差
4极低的失真度:THD=-82dBc(f=1MHz,RL=150),THD=-89dBc(f=1MHz,RL=1k)
5极宽工作电压范围:V cc=士5v到士 15v
抗混叠滤波器电路如图3.1。
图3.1 滤波电路
低通电路设计为12dB/OCT的巴特沃次(最平坦特性)滤波器,对频率高于31.25KHz的信号滤波。电路截止频率为fL=1/2 R1C1=31.25KHz,,Q值为0.5。
利用仿真软件对图的电路进行仿真,可以得到其滤波特性曲线见图3.2,由图可见,该低通滤波器特性良好。
图3.2 滤波特性
一片THS4052内是双通道输入,因此2路模拟信号通道输入需要1片THS4O52构成2个低通滤波器。
滤波实际电路连接如图3.3:
图3.3 滤波实际电路
3.1.2 放大电路
本课题的供应电压的范围是0~5V的直流电压,所选A/D转换的芯片为ADC0809,而ADC0809的模拟电压输入范围也是0~5V,所以本设计不需要放大电路[4]。
3.1.3 时钟信号
由于ADC0809无片内时钟,时钟信号由51单片机的ALE信号经D触发器二分频后获得。此外,由于ADC0809内部设有地址锁存器,所以通道地址的选通由单片机和74LS373的输出信号决定。通道基本地址为0000H~0007H。其对应关系如表3.1所示。
表3.1 ADC0809输入通道地址
地址码
输入通道
C
B
A
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
3.1.4 显示接口电路设计
本系统选用12864液晶显示屏[5]。
1.液晶显示模块概述
12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:
电源:VDD 3.3V~+5V(内置升压电路,无需负压);
显示内容:128列× 64行
显示颜色:黄绿
显示角度:6:00钟直视
LCD类型:STN
与MCU接口:8位或4位并行/3位串行
配置LED背光
多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等
2.外形尺寸
外形尺寸图如图3.4所示。
图3.4 12864的外形尺寸
3.模块引脚说明
128X64 引脚说明如表3.2所示。
表3.2 12864的引脚说明
引脚号
引脚名称
方向
功能说明
1
VSS
-
模块的电源地
2
VDD
-
模块的电源正端
3
V0
-
LCD驱动电压输入端
4
RS(CS)
H/L
并行的指令/数据选择信号;串行的片选信号
5
R/W(SID)
H/L
并行的读写选择信号;串行的数据口
6
E(CLK)
H/L
并行的使能信号;串行的同步时钟
7
DB0
H/L
数据0
8
DB1
H/L
数据1
9
DB2
H/L
数据2
10
DB3
H/L
数据3
11
DB4
H/L
数据4
12
DB5
H/L
数据5
13
DB6
H/L
数据6
14
DB7
H/L
数据7
15
PSB
H/L
并/串行接口选择:H-并行;L-串行
16
NC
空脚
17
/RET
H/L
复位 低电平有效
18
NC
空脚
19
LED_A
-
背光源正极(LED+5V)
20
LED_K
-
背光源负极(LED-OV)
逻辑工作电压(VDD):4.5~5.5V,电源地(GND):0V,工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)
4.接口时序
(1)8位并行连接时序图
MPU写资料到模块如图3.5所示。
图3.5 写资料时序
MPU从模块读出资料如图3.6所示。
图3.6 读资料时序
(2)串行连接时序图如图3.7所示。
图3.7 串行连接时序
串行数据传送共分三个字节完成:
第一字节:串口控制—格式 11111ABC,A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD。B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令。C固定为0
第二字节:(并行)8位数据的高4位—格式 DDDD0000
第三字节:(并行)8位数据的低4位—格式 0000DDDD
串行接口时序参数如图3.8所示:(测试条件:T=25℃ VDD=4.5V)
图3.8 串行接口时序参数
5.显示RAM
(1)文本显示RAM(DDRAM)
文本显示RAM提供8个×4行的汉字空间,当写入文本显示RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型;ST7920A可以显示三种字型 ,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型。三种字型的选择,由在DDRAM中写入的编码选择,各种字型详细编码如下:
显示半宽字型 :将一位字节写入DDRAM中,范围为02H-7FH的编码。
显示CGRAM字型:将两字节编码写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码
显示中文字形:将两字节编码写入DDRAMK ,范围为A1A0H-F7FFH(GB码)或A140H-D75FH(BIG5码)的编码。
(2)绘图RAM(GDRAM)
绘图显示RAM提供128×8个字节的记忆空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个字节的数据到绘图RAM,而地址计数器(AC)会自动加一;在写入绘图RAM的期间,绘图显示必须关闭,整个写入绘图RAM的步骤如下:1、关闭绘图显示功能。2、先将水平的位元组坐标(X)写入绘图RAM地址;再将垂直的坐标(Y)写入绘图RAM地址;将D15——D8写入到RAM中;将D7——D0写入到RAM中;打开绘图显示功能。绘图显示的缓冲区对应分布请参考“显示坐标”
(3)游标/闪烁控制
ST7920A提供硬件游标及闪烁控制电路,由地址计数器(address counter)的值来指定DDRAM中的游标或闪烁位置[6]。
液晶接口电路如图3.9所示。
图3.9 液晶显示电路
3.2 主控电路设计
3.2.1 模数转换器的选择
根据要求,选用ADC0809作为本设计的A/D转换器,ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片[7]。
1.主要特性
1)8路输入通道,8路AD转换器,即分辨率为8
2)具有转换起停控制端
3)转换时间为100ΜS(时钟为640KHZ时),130ΜS(时钟为500KHZ时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15MW
2.内部特性
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图3.10所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
图3.10 A/D转换器内部结构
3.外部特性(引脚功能)如图3.11
图3.11 ADC0809外部引脚
IN0~IN7:8路模拟量输入。
A、B、C:3位地址输入,3个地址输入端的不同组合选择八路模拟量输入。
ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。
D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。
OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。
START:启动信号输入端,START为正脉冲,其上升沿清除ADC0809的内部的各寄存器,其下降沿启动A/D开始转换。
EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。
CLK:时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。
当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存并译码,在START上升沿时所有的内部寄存器清零,在下降沿时,开始进入A/D装换,此期间START应保持低电平。在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,在高电平时,表示转换结束。OE为低电平时,表示正在转换,为高电平时,允许转换结果输出。
3.2.2 AT89C51单片机
本硬件电路使用AT89C51单片机。AT89C51是一种带4K字节FLASH存储器(FPEROM—FLASH PROGRAMMABLE AND ERASABLE READ ONLY MEMORY)的低电压、高性能CMOS 8位微处理器,俗称单片机[8]。
1.主要特性
1)与MCS-51兼容
2)4K字节可编程FLASH存储器
3)寿命:1000写/擦循环
4)数据保留时间:10年
5)全静态工作:0Hz-24MHz
6)三级程序存储器锁定
7)128×8位内部RAM
8)32可编程I/O线
9)两个16位定时器/计数器
10)5个中断源
11)可编程串行通道
12)低功耗的闲置和掉电模式
13)片内振荡器和时钟电路
2.外部引脚,如图3.12
图3.12 AT89C51的外部引脚
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P1口即可以用作输入口,也可以用作输出口。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时, P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八
位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口。
功能如下:
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出[9]。
3.2.3 硬件的复位电路
为确保系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般电路正常工作需要供电电源为5V±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作[10]。
目前为止,单片机复位电路主要有四种类型:微分型复位电路;积分型复位电路;比较器型复位电路;看门狗型复位电路。
1.手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。
2.上电复位
AT89C51的上电复位电路,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。本系统所需复位电路如图3.13。
图3.13 复位电路
3. 积分型上电复位
常用的上电或开关复位。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作[11]。
3.2.4 硬件的内部振荡器电路
89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,。外接石英晶体或陶瓷谐振器及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对电容C1、C2 虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,推荐电容使用30Pf±10 Pf,而如使用陶瓷谐振器建议选择40Pf±10Pf。也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端XTAL2 则悬空[12]。内部振荡器电路如图3.14所示。
3.14 内部振荡电路
3.2.5 ADC0809与AT89C51的电路连接图
控制信号:将P2.7作为片选信号,在启动A/D转换时。由单片机的写信号和P2.7控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。
在读取转换结果时,用单片机的读信号和P2.7引脚经或非门后,产生正脉冲作为OE信号用一打开三态输出锁存器。
ADC0809与AT89C51的电路连接图如图3.15所示[13]
图3.15 ADC0809与AT89C51连接图
3.2.6 通信电路
1.串口通信RS-232C
计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间 串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的 DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定[14]。
(1)接口的信号内容 实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。RS-232-C最常用的9条引线的信号内容。
(2)接口的电气特性 在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”,-5— -15V;逻辑“0” +5— +15V 。噪声容量为2V。即要求接收器能识别低至+3V的信号作为逻辑“0”,高于—3V的信号作为逻辑“1”。
(3)接口的物理结构 RS-232C接口连接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端。一些设备与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。
(4)传输电缆长度 由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺[15]。
2.MAX232简介
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电,可以实现TTL电平与RS-232C电平相互转换的IC芯片。
MAX内部结构图如图3.16所示
图3.16 MAX232的内部结构图
内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要[19]。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚GND、16脚VCC(+5v)[20]。
引脚结构图如图3.17所示:
图3.17 MAX232的引脚结构图
其中引脚1-6(C1+、V+、C1_、C2+、C2-、V-)用于电源电压转换,只要在外部接入相应电解电容即可;引脚7-10和引脚11-14构成两组TTL信号电平与RS-232C信号电平的转换电路,对应引脚可直接与单片机串行口的TTL电平引脚和PC的RS-232C电平引脚相连[21]。
单片机与MAX232的连接如图3.18所示
图3.18 单片机与MAX232的连接图
3.通信协议
为了保证通信成功,通信双方必须有一系列的约定,这种约定就叫做通信规程或协议,它在编程之前必须确定下来,要想使通信双方能够正确交换信息和数据,在协议中对什么时候开始通信,什么时候结束通信,何时交换信息等等都必须作出明确的规定。
美国达拉斯半导体公司推出了1-Wire(单总线)接口协议,单总线技术与其它总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因此单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。该公司所提供的适用于单总线微网技术的单总线器件具有无需另附电源、在测试点直接将模拟信号数字化等特点,一方面减少了系统环节,另一方面保证了系统的精度。同时各软件公司开发的可视化软件开发工具,更是向着效率高、功能强大的方向努力,从而为获得良好的用户界面奠定了基础[23]。
协议如下:
(1)PC机与单片机都可发送和接收。
(2)PC机与单片机的通信波特率均为2400b/s。
(3)帧格式为:1位起始位,8位数据位,1位可编程的第9位(此位为发送和接收地址/数据的标志位),1位停止位。
(4)数据通信采用累加和校验方法。
(5)采用查询方式通信。
(6)为了保证数据的可靠性和有效性,采用PC机主动联络单片机地址码,单片机在收到本机地址码后,回送本机地址;PC机在接收到同样的地址码后,确认两方握手成功,然后开始传送数据[25]。
3.3 本章小结
通过本章的工作,完成了整个系统的电路设计任务,利用电位器产生可在0~5V内连续变化的直流电流,电流信号经过滤波器的滤波将信号送到AD转换器和单片机进行数据的处理,将模拟信号变成数字信号,再将数字信号送到LCD液晶显示屏显示出来,最后实现串行通信。系统总电路图如图3.19所示[27]。系统仿真图见附录A。
图3.19 系统总图
4 系统软件设计
要成为一完整的系统,除了硬件电路设计之外,为了系统进行工作,必须进行必要的软件设计,才可以构成一个可以正常工作的系统[29]。
4.1 软件总体规划:
为了提高系统的性价比,软件设计是实现微机化的关键技术之一。在硬件设计基础上,使用C语言编程实现多参数实时采集的各种功能,包括主程序,数据采集程序,AD转换程序,LCD显示程序,中断子程序等[30]。
4.2 系统主程序
本设计的主要硬件是用AD转换器ADC0809和单片机AT89C51实现的,主程序如图4.1所示。当系统开始采集后,首先送通道0的地址,对通道0进行采集,同时要判断时间是否为5的倍数,若为5的倍数,则立即在送通道1的地址,对通道1进行采集,通道0每隔一秒采集一次,共采集100次,通道1每隔5秒采集一次,共采集20次。将采集的结果显示在LCD液晶显示屏上。采集过程中会调用相关的子程序,数据采集及AD转换程序,液晶显示程序,串行通信程序等。实现单片机对采集过程的控制[31]。
开始
调用采集子程序
送通道0地址
调用采集子程序
调用显示子程序
串行发送数据
调用显示子程序
送通道1地址
5的倍数?
系统初始化
开始采集?
N
Y
N
Y
串行发送数据
延时1S
延时1S
100次采完?
N
N
20次采完?
Y
Y
结束
图4.1系统主程序流程图
4.3 系统子程序
4.3.1 数据采集子程序
数据采集子程序如图4.2所示。
开始
定义AD转换缓冲区首地址
开中断
置通道数
置DPTR
启动转换
等待中断
中断处理
通道采完?
关中断
返回
Y
N
图4.2数据采集子程序
4.3.2 数据显示子程序
本设计要实现所处理的结果能够显示在屏幕的不同位置要选用LCD显示,显示流程图如图4.3所示。将LCD液晶显示屏画出坐标系,实现左右分屏,左侧区域显示通道0的图形,右侧区域显示通道1的图形[32]。
N
开始
初始化
设置显示区域首址
接受数据
显示波形
显示完?成?
结束
Y
N
图4.3 LCD显示流程图
4.3.3 中断服务子程序
中断服务子程序如图4.4所示.当在ADC0809内将数据转换完成,EOC输出高电平,送到外部终端1,发出中断请求,向单片机内传送转换完成的数据[33]。
4.4中断服务系统框图
4.4 本章小节
本章对系统的各功能模块进行了软件的编写,完成了系统对模拟量及数据量的采集,显示,并完成了整个系统的各功能模块之间的调度[34]。用来控制硬件部分的功能。程序见附录B。
5 结论
随着现代电子技术的飞速发展,数据采集技术也日新月异,采集速度和精度不断提高,而功耗和体积却在不断下降,本论文所设计实现数据采集器,采取了软件与硬件相结合的开发方法,选用ADC0809和AT89C51芯片来实现对两路数据的采集,而且还实现了对数据的显示。系统采用中文液晶显示采集的多路数据,操作方便,界面美观,并且采集的数据可通过串行通信将数据上传回计算机,实现了对模拟量和数字量的显示。整个系统具有体积小、功耗低、可靠性高、即插即用等特点,非常适合于野外数据采集;也可以采用稳压电源,在工业控制领域进行实时采集监控。系统具有很好的实用价值和推广价值[35]。
本论文主要做了以下工作:
一、分析了常用数据采集器的结构组成,提出了数据采集器的总体设计方案。
二、研究并完成了整个采集系统的硬件开发。主要包括:
1) 两路模拟量输入电路设计。
2)AD转换器和89C51单片机电路接口设计。
3)时钟信号设计。
4)串行通信电路设计。
5)液晶显示电路设计。
三、根据系统的功能要求,并配合硬件电路,完成了整个系统的软件开发。包括协调、控制整个系统工作流程的主程序和各功能子程序的开发。整个系统软件采用模块化设计,故各功能模块可以方便地进行设计、调试、纠错及移植等,系统易于调试、修改和扩展[36]。各功能子程序完成的主要功能有
1系统初始化(串行口,液晶,中断, I/O口)。
2模拟输入信号的采集。
3液晶显示
展开阅读全文