基于单片机的温度数据采集系统设计
单片机课程设计任务书
题目:基于单片机的温度数据采集系统设计
一.设计要求
1.被测量温度范围:0~500℃,温度分辨率为0.5℃。
2.被测温度点:4个,每2秒测量一次。
3.显示器要求:通道号1位,温度4位(精度到小数点后一位)。
显示方式为定点显示和轮流显示。
4.键盘要求:
(1)定点显示设定;(2)轮流显示设定;(3)其他功能键。
二.设计内容
1.单片机及电源管理模块设计。
单片机可选用AT89S51及其兼容系列,电源管理模块要实
现高精密稳压输出,为单片机及A/D转换器供电。
2.传感器及放大器设计。
传感器可以选用镍铬—镍硅热电偶(分度号K),放大器要实现热电偶输出的mV级信号到A/D输入V级信号放大。
3.多路转换开关及A/D转换器设计。
多路开关可以选用CD4052,A/D可选用MC14433等。
4.显示器设计。
可以选用LED显示或LCD显示。
5.键盘电路设计。
实现定点显示按键;轮流显示按键;其他功能键。
6.系统软件设计。
系统初始化模块,键盘扫描模块,显示模块,数据采集模块,标度变换模块等。
引言:
在生产和日常生活中,温度的测量及控制十分重要,实时温度检测系统在各个方面应用十分广泛。消防电气的非破坏性温度检测,大型电力、通讯设备过热故障预知检测,各类机械组件的过热预警,医疗相关设备的温度测试等等都离不开温度数据采集控制系统。
随着科学技术的发展,电子学技术也随之迅猛发展,同时带动了大批相关产业的发展,其应用范围也越来越广泛。近年来单片机发展也同样十分迅速,单片机已经渗透到工业、农业、国防等各个领域,单片机以其体积小,可靠性高,造价低,开发周期短的特点被广泛推广与应用。传统的温度采集不仅耗时而且精度低,远不能满足各行业对温度数据高精度,高可靠性的要求。温度的控制及测量对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到重要作用。在单片机温度测量系统中关键是测量温度,控制温度和保持温度。温度测量是工业对象的主要被控参数之一。本此题目的总体功能就是利用单片机和热敏原件实现温度的采集与读数,利用五位LED显示温度读数和所选通道号,实现热电转化,实现温度的精确测量。本设计是以Atmel公司的AT89S51单片机为控制核心,通过MC14433模数转换对所测的温度进行数字量变化,且通过数码管进行相应的温度显示。采用微机进行温度检测,数字显示,信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要作用。
目录:
一、系统总体功能及技术指标的描述........................................ 5
二、各模块电路原理描述............................................................. 5
2.1单片机及电源模块设计...................................................... 5
2.2、AT89S51引脚说明.......................................................... 7
2.3、数据采集模块设计........................................................ 11
2.4、多路开关......................................................................... 12
2.5、放大器............................................................................. 15
2.6、A/D转换器..................................................................... 16
2.7、显示器设计..................................................................... 21
2.8、键盘电路设计................................................................. 22
2.9、电路总体设计图........................................................... 22
三、软件流程图 ...................................................................... 24
四、程序清单.............................................................................. 25
五、设计总结及体会.................................................................... 31
六、参考资料................................................................................ 32
一、系统总体功能及技术指标的描述
1. 系统的总体功能:
温度数据采集系统,实现温度的采集与读书,利用五位LED显示温度读数和所选通道号,实现热电转化的原理过程。
被测量温度范围:0~500℃,温度分辨率为0.5℃。被测温度点4个,每2秒测量一次。显示器要求:通道号1位,温度4位(精度到小数点后一位)。显示方式为定点显示和轮流显示,可以通过按键改变显示方式。
2. 技术指标要求:
1.被测量温度范围:0~500℃,温度分辨率为0.5℃。
2.被测温度点:4个,每2秒测量一次。
3.显示器要求:通道号1位,温度4位(精度到小数点后一位)。
显示方式为定点显示和轮流显示。
4.键盘要求:
(1)定点显示设定;(2)轮流显示设定;(3)其他功能键。
二、各模块电路原理描述
2.1单片机及电源模块设计
如图所示为AT89S51芯片的引脚图。兼容标准MCS-51指令系统的AT89S51单片机是一个低功耗、高性能CHMOS的单片机,片内含4KB在线可编程Flash存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。
AT89S51单片机片内的Flash可允许在线重新编程,也可用通用非易失性存储编程器编程;片内数据存储器内含128字节的RAM;有40个引脚,32个外部双向输入/输出(I/O)端口具有两个16位可编程定时器;中断系统是具有6个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率0到33MHZ,因此我们在此选用12MHZ的晶振是比较合理的;具有片内看门狗定时器;具有断电标志POF等等。AT89S51具有PDIP、TQFP和PLCC三种封装形式[8]。
图5.1-1 AT89S51引脚图
上图就是PDIP封装的引脚排列,下面介绍各引脚的功能。
2.2、AT89S51引脚说明
P0口:8位、开漏级、双向I/O口。P0口可作为通用I/O口,但须外接上拉电阻;作为输出口,每各引脚可吸收8各TTL的灌电流。作为输入时,首先应将引脚置1。P0也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。在FLASH编程时,P0口接收代码字节数据;在编程效验时,P0口输出代码字节数据(需要外接上拉电阻)。
P1口:8位、双向I/0口,内部含有上拉电阻。P1口可作普通I/O口。输出缓冲器可驱动四个TTL负载;用作输入时,先将引脚置1,由片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供电流。在FLASH并行编程和校验时,P1口可输入低字节地址。在串行编程和效验时,P1.5/MO-SI,P1.6/MISO和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。
P2口:具有内部上拉电阻的8位双向I/O口。P2口用做输出口时,可驱动4各TTL负载;用做输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外部输出电流。CPU访问外部16位地址的存储器时,P2口提供高8位地址。当CPU用8位地址寻址外部存储时,P2口为P2特殊功能寄存器的内容。在FLASH并行编程和校验时,P2口可输入高字节地址和某些控制信号。
P3口:具有内部上拉电阻的8位双向口。P3口用做输出口时,输出缓冲器可吸收4各TTL的灌电流;用做输入口时,首先将引脚置1,由内部上拉电阻抬位高电平。若外部的负载是低电平,则通过内部上拉电阻向输出电流。在与FLASH并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O口功能外,还有替代功能,如表5.3-1所示。
表5.3-1 P3口的替代功能
引脚
符号
说明
P3.0
RXD
串行口输入
P3.1
TXD
串行口输出
P3.2
/INT0
外部中断0
P3.3
/INT1
外部中断1
P3.4
T0
T0定时器的外部的计数输入
P3.5
T1
T1定时器的外部的计数输入
P3.6
/WR
外部数据存储器的写选通
P3.7
/RD
外部数据存储器的读选通
RST:复位端。当振荡器工作时,此引脚上出现两个机器周期的高电平将系统复位。
ALE/ :当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地址的低8位字节的书粗脉冲。在Flash 编程期间,此引脚也可用于输入编程脉冲()。在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲,它是用作对外输出的时钟,需要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。如果希望禁止ALE操作,可通过将特殊功能寄存器中位地址为8EH那位置的“0”来实现。该位置的“1”后。ALE仅在MOVE或MOVC指令期间激活,否则ALE引脚将被略微拉高。若微控制器在外部执行方式,ALE禁止位无效。
:外部程序存储器读选取通信号。当AT89S51在读取外部程序时, 每个机器周期 将PSEN激活两次。在此期间内,每当访问外部数据存储器时,将跳过两个信号。
/Vpp:访问外部程序存储器允许端。为了能够从外部程序存储器的0000H至FFFFH单元中取指令,必须接地,然而要注意的是,若对加密位1进行编程,则在复位时,的状态在内部被锁存。
执行内部程序应接VCC。不当选择12V编程电源时,在Flash编程期间,这个引脚可接12V编程电压。
XTAL1:振荡器反向放大器输入端和内部时钟发生器的输入端。
XTAL2:振荡器反相放大器输出端[9]。
电源模块设计
在影响单片机系统可靠性的诸多因素中,电源干扰可谓首屈一指,据统计,计算机应用系统的运行故障有90%以上是由电源噪声引起的。为了提高系统供电可靠性,交流供电应采用交流稳压器,防止电源的过压和欠压,直流电源抗干扰措施有采用高质量集成稳压电路单独供电,采用直流开关电源,采用DC-DC变换器。本次设计决定采用MAXim公司的高电压低功耗线性变换器MAX 1616作为电压变换,采用该器件将输入的24V电压变换为5V电压,给外围5V的器件供电。MAX1616具有如下特点:
1.4~28V电压输入范围。
2.最大80uA的静态工作电流。
3.3V/5V电压可选输出。
4.30mA输出电流。
5.2%的电压输出精度。
电源管理模块电路图如下:
本电路采用该器件将输入的24V电压变成5V电压,给外围5V的器件供电,其中二极管D1是保护二极管,防止输入电压接反可能带来的对电路的影响和破坏。
//采集并返回
unsigned int Adc0832(unsigned char channel)
{
uchar i=0
uchar j
uint dat=0
uchar ndat=0
if(channel==0)channel=2
if(channel==1)channel=3
ADDI=1
_nop_()
_nop_()
ADCS=0//拉低CS端
_nop_()
_nop_()
ADCLK=1//拉高CLK端
_nop_()
_nop_()
ADCLK=0//拉低CLK端,形成下降沿1
_nop_()
_nop_()
ADCLK=1//拉高CLK端
ADDI=channel&0x1
_nop_()
_nop_()
ADCLK=0//拉低CLK端,形成下降沿2
_nop_()
_nop_()
ADCLK=1//拉高CLK端
ADDI=(channel>>1)&0x1
_nop_()
_nop_()
ADCLK=0//拉低CLK端,形成下降沿3
ADDI=1//控制命令结束
_nop_()
_nop_()
dat=0
for(i=0i<8i++)
{
dat|=ADDO//收数据
ADCLK=1
_nop_()
_nop_()
ADCLK=0//形成一次时钟脉冲
_nop_()
_nop_()
dat<<=1
if(i==7)dat|=ADDO
}
for(i=0i<8i++)
{
j=0
j=j|ADDO//收数据
ADCLK=1
_nop_()
_nop_()
ADCLK=0//形成一次时钟脉冲
_nop_()
_nop_()
j=j<<7
ndat=ndat|j
if(i<7)ndat>>=1
}
ADCS=1//拉低CS端
ADCLK=0//拉低CLK端
ADDO=1//拉高数据端,回到初始状态
dat<<=8
dat|=ndat
return(dat) //return ad data
}int main(void)
{
while(1)
P3=Adc0832(0)
}
21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域占有重要的地位。伴随着IC技术的发展,电子设计自动化(Electronic Design Automation EDA)己经逐渐成为重要设计手段,其广泛应用于模拟与数字电路系统等许多领域。
VHDL是广泛使用的设计输人硬件语言,可用于数字电路与系统的描述、模拟和自动设计.CPLD/FPGA(复杂可编程逻辑器件/现场可编程门阵列)为数字系统的设计带灵活性,兼有串!并行工作方式和高集成度!高速!高可靠性等明显的特点,CPLD/FPGA的时钟延迟可达纳秒级,结合其并行工作方式,在超高速领域和实时测控方面有非常广泛的应用。
本次设计的目的是使用可编程逻辑器件设计一个专用的A/D转换器的控制器,取代常用的微控制器,用于数据采集。本文讲述对A/D进行数据采样控制。设计要求用一片CPLD/FPGA,模数转换控制器ADC和LED显示器构成一个数据采集系统,用CPLD/FPGA实现数据采集中对A/D 转换,数据运算,及有关数据的显示控制。课题除了学习相应的硬件知识外,还要学习如何使用VHDL语言设计可编程逻辑器件。
未来的EDA技术向广度和深度两个方向发展.
(1)在广度上,EDA技术会日益普及.在过去,由于EDA软件价格昂贵,对硬件环境要求高,其运行环境是工作站和UNIX操作系统.最近几年,EDA软件平台化进展迅速,这些PC平台上的EDA软件具有整套的逻辑设计、仿真和综合工具.随着PC机性能的提高,PC平台上的软件功能将会更加完善.
(2)在深度上,EDA技术发展的下一步是ESDA伍electronic System Design Automation电子系统设计自动化)和CE (Concurrent Engineering并行设计工程).目前的各种EDA工具,如系统仿真,PCB布线、逻辑综合、DSP设计工具是彼此独立的.随着技术的发展,要求所有的系统工具在统一的数据库及管理框架下工作,由此提出了ESDA和CE概念。
第2章 EDA的发展历程及其应用
2.1电子设计自动化(EDA)发展概述
2.1.1什么是电子设计自动化(EDA )
在电子设计技术领域,可编程逻辑器件(如PLD, GAL)的应用,已有了很好的普及。这些器件为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。
电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。当然,这里的所谓EDA主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已比较成熟,应用的普及程度也已比较大。而模拟电子系统的EDA正在进入实用,其初期的EDA工具不一定需要硬件描述语言。此外,从应用的广度和深度来说,由于电子信息领域的全面数字化,基于EDA的数字系统的设计技术具有更大的应用市场和更紧迫的需求性。
2.1.2 EDA的发展历史
EDA技术的发展始于70年代,至今经历了三个阶段。电子线路的CAD(计算机辅助设计)是EDA发展的初级阶段,是高级EDA系统的重要组成部分。它利用计算机的图形编辑、分析和存储等能力,协助工程师设计电子系统的电路图、印制电路板和集成电路板图采用二维图形编辑与分析,主要解决电子线路设计后期的大量重复性工作,可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效,现仍有很多这类专用软件被广泛应用于工程设计。80年代初期,EDA技术开始技术设计过程的分析,推出了以仿真(逻辑模拟、定时分析和故障仿真)和自动布局与布线为核心的EDA产品,这一阶段的EDA已把三维图形技术、窗口技术、计算机操作系统、网络数据交换、数据库与进程管理等一系列计算机学科的最新成果引入电子设计,形成了CAE—计算机辅助工程。也就是所谓的EDA技术中级阶段。其主要特征是具备了自动布局布线和电路的计算机仿真、分析和验证功能。其作用已不仅仅是辅助设计,而且可以代替人进行某种思维。CAE这种以原理图为基础的EDA系统,虽然直观,且易于理解,但对复杂的电子设计很难达到要求,也不宜于设计的优化。
所以,90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的ESDA(电子系统设计自动化),即EDA阶段、也就是目前常说的EDA.过去传统的电子系统电子产品的设计方法是采用自底而上(Bottom_ Up)的程式,设计者先对系统结构分块,直接进行电路级的设计。这种设计方式使设计者不能预测下一阶段的问题,而且每一阶段是否存在问题,往往在系统整机调试时才确定,也很难通过局部电路的调整使整个系统达到既定的功能和指标,不能保证设计一举成功。EDA技术高级阶段采用一种新的设计概念:自顶而下(Top_ Down)的设计程式和并行工程(Concurrent engineering)的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,EDA系统去完成电子产品的系统级至物理级的设计。此阶段EDA技术的主要特征是支持高级语言对系统进行描述,高层次综合(High Level Synthesis)理论得到了巨大的发展,可进行系统级的仿真和综合。图2-1给出了上述三个阶段的示意图。
图2-1 EDA发展阶段示意图
2.1.3 EDA的应用
随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升电子类的高新技术项目的开发也依赖于EDA技术的应用。即使是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。
电子设计专家认为,单片机时代已经结束,未来将是EDA的时代,这是极具深刻洞察力之言。随着微电子技术的飞速进步,电子学进入了一个崭新的时代。其特征是电子技术的应用以空前规模和速度渗透到各行各业。各行业对自己专用集成电路(ASIC)的设计要求日趋迫切,现场可编程器件的广泛应用,为各行业的电子系统设计工程师自行开发本行业专用的ASIC提供了技术和物质条件。与单片机系统开发相比,利用EDA技术对FPGA/CPLD的开发,通常是一种借助于软件方式的纯硬件开发,可以通过这种途径进行专用ASIC开发,而最终的ASIC芯片,可以是FPGA/CPLD,也可以是专制的门阵列掩模芯片,FPGA/ CPLD起到了硬件仿真ASIC芯片的作用。
2.2基于EDA的FPGA/ CPLD开发
我国的电子设计技术发展到今天,将面临一次更大意义的突破,即FPGA/CPLD (Field Programmable Gate Array,现场可编程门阵列/Complex Programmable Logic Device,复杂可编程逻辑器件)在EDA基础上的广泛应用。从某种意义上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构,但却是一种更高层次的循环,它在更高层次上容纳了过去数字技术的优秀部分,对(Micro Chip Unit) MCU系统是一种扬弃,在电子设计的技术操作和系统构成的整体上发生了质的飞跃。如果说MCU在逻辑的实现上是无限的话,那么FPGA/CPLD不但包括了MCU这一特点,而且可以触及硅片电路的物理极限,并兼有串、并行工作方式,高速、高可靠性以及宽口径适用性等诸多方面的特点。不但如此,随着EDA技术的发展和FPGA/CPLD在深亚微米领域的进军,它们与MCU, MPU, DSP, A/D, D/A, RAM和ROM等独立器件间的物理与功能界限已日趋模糊。特别是软/硬IP芯片(知识产权芯片intelligence Property Core,一种已注册产权的电路设计)产业的迅猛发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。FPGA/CPLD以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。
2.2.1 FPGA/CPLD简介
FPGA和CPLD都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。复杂可编程逻辑器件CPLD是由PAL (Programmable Array Logic,可编程阵列逻辑)或GAL (Generic Array Logic,通用阵列逻辑)发展而来的。它采用全局金属互连导线,因而具有较大的延时可预测性,易于控制时序逻辑但功耗比较大。现场可编程门阵列(FPGA)是由可编程门阵列(MPGA)和可编程逻辑器件二者演变而来的,并将它们的特性结合在一起,因此FPGA既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。FPGA通常由布线资源分隔的可编程逻辑单元(或宏单元)构成阵列,又由可编程Ir0单元围绕阵列构成整个芯片。其内部资源是分段互联的,因而延时不可预测,只有编程完毕后才能实际测量。
CPLD和FPGA建立内部可编程逻辑连接关系的编程技术有三种:基于反熔丝技术的器件只允许对器件编程一次,编程后不能修改。其优点是集成度、工作频率和可靠性都很高,适用于电磁辐射干扰较强的恶劣环境。基于EEPROM存储器技术的可编程逻辑芯片能够重复编程100次以上,系统掉电后编程信息也不会丢失。编程方法分为在编程器上编程和用下载电缆编程。用下载电缆编程的器件,只要先将器件装焊在印刷电路板上,通过PC, SUN工作站、ATE(自动测试仪)或嵌入式微处理器系统,就能产生编程所用的标准5V, 3.3V或2.5V逻辑电平信号,也称为ISP (In System Programmable)方式编程,其调试和维修也很方便。基于SRAM技术的器件编程数据存储于器件的RAM区中,使之具有用户设计的功能。在系统不加电时,编程数据存储在EPROM、硬盘、或软盘中。系统加电时将这些编程数据即时写入可编程器件,从而实现板级或系统级的动态配置。
2.2.2基于EDA工具的FPGA/CPLD开发流程
FPGA/CPLD的开发流程:设计开始首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本方式(如VHDL, Verilog-HDL程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合准备。在此,对于多数EDA软件来说,最初的设计究竟采用哪一种输入形式是可选的,也可混合使用。一般原理图输入方式比较容易掌握,直观方便,所画的电路原理图(请注意,这种原理图与利用PROTEL画的原理图有本质的区别)与传统的器件连接方式完全一样,很容易为人接受,而且编辑器中有许多现成的单元器件可资利用,自己也可以根据需要设计元件(元件的功能可用HDL表达,也可仍用原理图表达)。当然最一般化、最普适性的输入方法是HDL程序的文本方式。这种方式最为通用。如果编译后形成的文件是标准VHDL文件,在综合前即可以对所描述的内容进行仿真,称为行为仿真。即将设计源程序直接送到VHDL仿真器中仿真。因为此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系。在仿真中,可以充分发挥VHDL中的适用于仿真控制的语句,对于大型电路系统的设计,这一仿真过程是十分必要的,但一般情况下,可以略去这一步骤.
图2-2 FPGA / CPLD开发流程
设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是将软件转化为硬件电路的关键步骤。综合器对源文件的综合是针对某一FPGA/CPLD供应商的产品系列的,因此,综合后的结果具有硬件可实现性。在综合后,HDL综合器一般可生成EDIF, XNF或VHDL等格式的网表文件,从门级来描述了最基本的门电路结构。有的EDA软件,具有为设计者将网表文件画成不同层次的电路图的功能。综合后,可利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。功能仿真仅对设计描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延迟特性。一般的设计,这一层次的仿真也可略去。综合通过后必须利用FPGA/CPLD布局/布线适配器将综合后的网表式文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配完成后,EDA软件将产生针对此项设计的多项结果:1适配报告:内容包括芯片内资源分配与利用、引脚锁定、设计的布尔方程描述情况等2时序仿真用网表文件3下载文件,如JED或POF文件4适配错误报告等。时序仿真是接近真实器件运行的仿真,仿真过程中己将器件硬件特性考虑进去了,因此仿真精度要高得多。时序仿真的网表式文件中包含了较为精确的延迟信息。如果以上的所有过程,包括编译、综合、布线/适配和行为仿真、功能仿真、时序仿真都没有发现问题,即满足原设计的要求,就可以将适配器产生的配置/下载文件通过FPGA/CPLD编程器或下载电缆载入目标芯片FPGA或CPLD中,然后进入如图1-2所示的最后一个步骤:硬件仿真或测试,以便在更真实的环境中检验设计的运行情况。这里所谓的硬件仿真,是针对ASIC设计而言的。在ASIC设计中,比较常用的方法是利用FPGA对系统的设计进行功能检测,通过后再将其VHDL设计以ASIC形式实现而硬件测试则是针对FPGA或CPLD直接用于电路系统的检测而言的。
2.2.3用FPGA/CPLD进行开发的优缺点
我们认为,基于EDA技术的FPGA/CPLD器件的开发应用可以从根本上解决MCU所遇到的问题。与MCU相比,FPGA/CPLD的优势是多方面的和根本性的:
1.编程方式简便、先进。FPGA/CPLD产品越来越多地采用了先进的IEEE 1149.1边界扫描测试(BST)技术(由联合测试行动小组,JTAG开发)和ISP(在系统配置编程方式)。在+5V工作电平下可随时对正在工作的系统上的FPGA/CPLD进行全部或部分地在系统编程,并可进行所谓菊花链式多芯片串行编程,对于SRAM结构的FPGA,其下载编程次数几乎没有限制(如Altera公司的FLEXI 10K系列)。这种编程方式可轻易地实现红外编程、超声编程或无线编程,或通过电话线远程在线编程。这些功能在工控、智能仪器仪表、通讯和军事上有特殊用途。
2.高速。FPGA/CPLD的时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。
3.高可靠性。在高可靠应用领域,MCU的缺憾为FPGA/CPLD的应用留下了很大的用武之地。除了不存在MCU所特有的复位不可靠与PC可能跑飞等固有缺陷外,FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。
4.开发工具和设计语言标准化,开发周期短。由于FPGA/CPLD的集成规模非常大,集成度可达数百万门。因此,FPGA/ CPLD的设计开发必须利用功能强大的EDA工具,通过符合国际标准的硬件描述语言(如VHDL或Verilog-HDL)来进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用的FPGA/ CPLD器件的硬件结构没有关系.
所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,它几乎可用于任何型号的FPGA/ CPLD中,由此还可以知识产权的方式得到确认,并被注册成为所谓的IP芯片,从而使得片上系统的产品设计效率大幅度提高。由于相应的EDA软件功能完善而强大,仿真方式便捷而实时,开发过程形象而直观,兼之硬件因素涉及甚少,因此可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场的最宝贵的特征。美国TI公司认为,一个ASIC 80%的功能可用IP芯片等现成逻辑合成。EDA专家预言,未来的大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP芯片的拼装,其设计周期最少仅数分钟。
5.功能强大,应用广阔。目前,FPGA/ CPLD可供选择范围很大,可根据不同的应用选用不同容量的芯片。利用它们可实现几乎任何形式的数字电路或数字系统的设计。随着这类器件的广泛应用和成本的大幅度下降,FPGA/CPLD在系统中的直接应用率正直逼ASIC的开发。同时,FPGA/CPLD设计方法也有其局限性。这主要体现在以下几点:
(1).FPGA/CPLD设计软件一般需要对电路进行逻辑综合优化((Logic段Synthesis &Optimization),以得到易于实现的结果,因此,最终设计和原始设计之间在逻辑实现和时延方面具有一定的差异。从而使传统设计方法中经常采用的一些电路形式(特别是一些异步时序电路)在FPGA/CPLD设计方法中并不适用。这就要求设计人员更加了解FPGA/CPLD设计软件的特点,才能得到优化的设计
(2).FPGA一般采用查找表(LUT)结构(Xilinx), AND-OR结构(Altera)或多路选择器结构(Actel),这些结构的优点是可编程性,缺点是时延过大,造成原始设计中同步信号之间发生时序偏移。同时,如果电路较大,需要经过划分才能实现,由于引出端的延迟时间,更加大了延迟时间和时序偏移。时延问题是ASIC设计当中常见的问题。要精确地控制电路的时延是非常困难的,特别是在像FPGA/CPLD这样的可编程逻辑当中。
(3). FPGA/CPLD的容量和I/O数目都是有限的,因此,一个较大的电路,需经逻辑划分((Logic Partition)才能用多个FPGA/CPLD芯片实现,划分算法的优劣直接影响设计的性能
(4).由于目标系统的PCB板的修改代价很高,用户一般希望能够在固定的引 分配的前提下对电路进行修改。但在芯片利用率提高,或者芯片I/O引出端很多的情况下,微小的修改往往会降低芯片的流通率
(5).早期的FPGA芯片不能实现存储器、模拟电路等一些特殊形式的电路。最新的一些FPGA产品集成了通用的RAM结构。但这种结构要么利用率不高,要么不完全符合设计者的需要。这种矛盾来自于FPGA本身的结构局限性,短期内很难得到很好的解决。
6.尽管FPGA实现了ASIC设计的硬件仿真,但是由于FPGA和门阵列、标准单元等传统ASIC形式的延时特性不尽相同,在将FPGA设计转向其他ASIC设计时,仍然存在由于延时不匹配造成设计失败的可能性。针对这个问题,国际上出现了用FPGA阵列对ASIC进行硬件仿真的系统(如Quicktum公司的硬件仿真系统)。这种专用的硬件仿真系统利用软硬件结合的方法,用FPGA阵列实现了ASIC快速原型,接入系统进行测试。该系统可以接受指定的测试点,在FPGA阵列中可以直接观测(就像软件模拟中一样),所以大大提高了仿真的准确性和效率。
2.3硬件描述语言(HDL)
硬件描述语言(HDL)是相对于一般的计算机软件语言如C, Pascal而言的。HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用HDL程序来描述所希望的电路系统,规定其结构特征和电路的行为方式然后利用综合器和适配器将此程序变成能控制FPGA和CPLD内部结构、并实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。硬件描述语言具有以下几个优点:a.设计技术齐全,方法灵活,支持广泛。b.加快了硬件电路的设计周期,降低了硬件电路的设计难度。c.采用系统早期仿真,在系统设计早期就可发现并排除存在的问题。d.语言设计可与工艺技术无关。e.语言标准,规范,易与共享和复用。就FPGA/CPLD开发来说,VHDL语言是最常用和流行的硬件描述语言之一。本次设计选用的就是VHDL语言,下面将主要对VHDL语言进行介绍。
2.3.1 VHDL语言简介
VHDL是超高速集成电路硬件描述语言的英文字头缩写简称,其英文全名 是Very-High -Speed Integrated Circuit Hardware Description Language。它是在70- 80年代中由美国国防部资助的VHSIC(超高速集成电路)项目开发的产品,诞生于1982年。1987年底,VHDL被IEEE(The Institute of Electrical and产Electronics Engineers)确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本((IEEE std 1076-1987标准)之后,各EDA公司相继推出了自己的VHDL设计环境。此后,VHDL在电子设计领域受到了广泛的接受,并逐步取代了原有的非标准HDL。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即ANSI/IEEE std1076,1993版本。1996年IEEE 1076.3成为VHDL综合标准。
VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。与其它的HDL相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件己不成问题。
VHDL语言在硬件设计领域的作用将与C和C++在软件设计领域的作用一样,在大规模数字系统的设计中,它将逐步取代如逻辑状态表和逻辑电路图等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述工具,它将成为数字系统设计领域中所有技术人员必须掌握的一种语言。VHDL和可编程逻辑器件的结合作为一种强有力的设计方式,将为设计者的产品上市带来创纪录的速度
2.3.2 VHDL语言设计步骤
利用VHDL语言进行设计可分为以下几个步骤:
1.设计要求的定义。在从事设计进行编写VHDL代码之前,必须先对你的设计目的和要求有一个明确的认识。例如,你要设计的功能是什么?对所需的信号建立时间、时钟/输出时间、最大系统工作频率、关键的路径等这些要求,要有一个明确的定义,这将有助于你的设计,然后再选择适当的设计方式和相应的器件结构,进行设计的综合。
2.用VHDL语言进行设计描述。
(1)应决定设计方式,设计方式一般说来有三种:自顶向下设计,自底向上设计,平坦式设计。
前两种方式包括设计阶层的生成,而后一种方式将描述的电路当作单模块电路来进行的。自顶向下的处理方式要求将你的设计划分成不同的功能元件,每个元件具有专门定义的输入和输出,并执行专门的逻辑功能。首先生成一个由各功能元件相互连接形成的顶层模块来做成一个网表,然后再设计其中的各个元件。而自底向上的处理方法正好相反。平坦式设计则是指所有功能元件均在同一层和同一图中详细进行的。
(2)编写设计代码。编写VHDL语言的代码与编写其它计算机程序语言的代码有很大的不同,你必须清醒地认识到你正在设计硬件,编写的VHDL代码必须能够综合到采用可编程逻辑器件来实现的数字逻辑之中。懂得EDA工具中仿真软件和综合软件的大致工作过程,将有助于编写出优秀的代码。
3.用VHDL仿真器对VHDL原代码进行功能仿真。对于大型设计,采用VHDL仿真软件对其进行仿真可以节省时间,可以在设计的早期阶段检测到设计中的错误,从而进行修正,以便尽可能地减少对设计日程计划的影响。因为对于大型设计,其综合优化、配置往往要花费好几个小时,在综合之前对原代码仿真,就可以大大减少设计重复和修正错误的次数和时间。但对于小型设计,则往往不需要先对VHDL原代码进行仿真,即使做了,意义也不大。因为对于小型设计,其综合优化、配置花费的时间不多,而且在综合优化之后,你往往会发现为了实现性能目标,将需要修改你的设计。在这种情况下,用户事先在原代码仿真时所花费的时间是毫无意义的,因为一旦改变设计,还必须重新再做仿真。
4.利用VHDL综合优化软件对VHDL原代码进行综合优化处理。选择目标器件、输入约束条件后,VHDL综合优化软件工具将对VHDL原代码进行处理,产生一个优化了的网络表,并可以进行粗略的时序仿真。综合优化软件工具大致的处理过程如下:首先检测语法和语意错误然后进行综合处理,对CPLD器件而言,将得到一组工艺专用逻辑方程,对FPGA器件而言,将得到一个工艺专用网表最后进行优化处理,对CPLD的优化通常包括将逻辑化简为乘积项的最小和式,降低任何给定的表达式所需的逻辑块输入数,这些方程进一步通过器件专用优化来实现资源配置。对FPGA的优化通常也需要用乘积项的和式来表达逻辑,方程系统可基于器件专用资源和驱动优化目标指引来实现因式分解,分解的因子可用来对实现的有效性进行评估,其准则可用来决定是对方程序系统进行不同的因式分解还是保持现有的因子。准则通常是指分享共同因子的能力,即可以被暂存,以便于和任何新生成的因子相比较。
5.配置。将综合优化处理后得到的优化了的网络表,安放到前面选定的CPLD或FPGA目标器件之中,这一过程称为配置。在优化
1 系统功能与特点
1.1 功能简介
目前我国国产机组热控装置的质量和主辅机的可控性不尽人意,设计、安装、调试、运行水平等都存在一些问题,针对这一现状设计了FDC-Ⅱ型分布式发电厂运行实时数据监测系统。它是只有监视功能而没有控制功能的计算机监视系统,即数据采集系统——DAS〔1〕。
该系统可以采集的发电厂运行数据包括电气参数和非电气参数两类。其中电气参数主要有电流、电压、功率、频率等模拟量,断路器状态、隔离开关位置、继电保护动作信号等开关量以及表示电度的脉冲量等。而非电气参数种类较多,既可以是采集火力发电厂运行中的各种温度、压力、流量等热工信号,也可有水电厂中的水位、流速、流量等水工信号,还可以采集诸如绝缘介质状态、气象环境等其它信号。
该系统还包括用Visual C+ +开发的后台处理软件,主要有数据处理、数据库管理、实时监视、异常处理、统计计算及报表、性能分析及运行指导等功能。
1.2 主要特点
该系统具有如下特点:
a. 数据采集通用性较强。不仅可采集电气量,亦可采集非电气量。电气参数采集用交流离散采样,非电气参数采集采用继电器巡测,信号处理由高精度隔离运算放大器AD202JY调理,线性度好,精度高。
b. 整个系统采用分布式结构, 软、硬件均采用了模块化设计。数据采集部分采用自行开发的带光隔离的RS-485网, 通信效率高, 安全性好, 结构简单。后台系统可根据实际被监控系统规模大小及要求, 构成485网、Novell网及Windows NT网等分布式网络。由于软、硬件均为分布式、模块化结构,因而便于系统升级、维护, 且根据需要组成不同的系统。
c. 数据处理在Windows NT平台上采用Visual C+ +语言编程,处理能力强、速度快、界面友好,可实现网络数据共享。
d. 整个系统自行开发,符合我国国情。对发电厂原有系统的改动很小,系统造价较低,比较适合中小型发电厂技术改造需要。
2 系统结构概述
系统采用全分布式结构,模块化的软、硬件设计,RS-485光隔离通信网络。系统的结构如图1所示。采集模块完成热工量、开关量、脉冲量及电流、电压和有功、无功功率的采集处理。主通信控制器负责管理网上数据通信,通信转换器则完成RS-485与RS-232的电平转换,将采集的实时数据送到微机室、主控室、厂长室等各处的PC机中,以丰富友好的人机界面显示全面的运行信息。
图1 系统结构简图
2.1 硬件设计
硬件电路是数据采集和处理的基础。首先为该系统设计开发了一套实用的电路板。它们以Intel 80C196和Intel 80C198 CPU为基础,配合数据采集、通信控制、人机联系等电路,形成了一套比较完整实用的硬件电路系统。各电路板的尺寸与目前国内流行的STD总线板完全一致,采用我们自己定义的背部56总线连接板将若干块电路板连接在一起,构成数据采集工作站,完成数据的采集和通信工作。该系统的电路板主要有以下几种类型。
2.1.1 80C196主CPU板
a. Intel 80C196 16位微控制器及相连的程序存储器27256、数据存储器62256;
b. 1块512字节电可改写的串行E2PROM 93C66,用于存储系统定值、运行参数以及诸如电度量等累计量;
c. 2个并行口及其辅助逻辑电路,用于与外部其它电路板相连接;
d. 1个光电隔离的RS-485或RS-232接口,用于构成分布式通信网络或串行通信。
2.1.2 80C198交流采样数据采集板
a. Intel 80C198准16位微控制器及相连的程序存储器27256、数据存储器62256。
b. 512字节的串行E2PROM 93C66。
c. 交流采样电路,由3块多路切换开关13508和1块模数转换器AD574组成。通过交流采样的方式,采集16路电气参数,省却了电量变送器等辅助设备。由于采用了12位A/D转换器AD574,系统的数据采集精度得到了较大程度的提高。
d. 测频电路,用于测量工频周期。
其功能主要是与主CPU板相配合,完成交流离散采样电气参数的数据采集。该板上有自己的CPU(Intel 80C198),进行交流离散采样采集数据时将大大减轻主CPU的工作负担,并能够完成一些较为复杂的数据处理工作。
2.1.3 遥信、脉冲量采集板
可采集16路遥信信号或16路脉冲信号,各路信号均采用光电隔离技术,以保证系统的安全和可靠性。每一块CPU板可以支持4块遥信量、脉冲量采集板,这样一个采集结点,最多可以采集64路遥信量或者脉冲量。该电路板主要用于对开关位置状态信号、继电保护动作信号的遥信量和各种脉冲量的数据采集。
对遥信量的采集可用两种方式实现。查询方式可以简化采集软件的设计;中断方式则能够保证遥信变位时的快速响应,以提高对紧急事件的处理能力和事件顺序记录的分辨率。
2.1.4 热工量信号采集板
通过继电器巡测的方法,采集16路热工信号,可用于热电偶输出的毫伏级信号、毫安级的小电流信号和热电阻输出的电阻信号的数据采集。
使用继电器巡测的目的是隔离,在继电器没有闭合时,整个采集系统与热工测量元件之间是隔离的,即使是在继电器闭合期间,各路采集信号之间也是相互隔离的。这既保证了系统的安全可靠,又不至由于采集系统的投入而影响原有的测量仪表的测量精度。考虑到热工信号共同的特点是变化相对较慢,所以采用继电器巡测。经过反复实验证明,每一路信号的采集时间最小控制在10 ms,就能保证信号采集正确,完全能够满足热工量采集的时间要求。
在该电路板上,设有一块高精度线性隔离运算放大器AD202,用于信号调理放大。这种运算放大器最大非线性度仅为±0.025%,这就为高精度数据采集测量提供了可能;具有较高的共模抑制比,在放大倍数为100时,其共模抑制比可达130 dB,抗共模干扰能力较强;具有隔离作用,其内部有专门的振荡电路(振荡波频率为25 kHz),将输入端测量信号用振幅调制的方法,经变压器隔离耦合到输出端,从而实现隔离放大的目的,其输入和输出之间的隔离电压可以达到峰—峰值±2 000 V,完全可以满足一般电力系统数据采集隔离放大的需要。对于热工信号的数据采集和处理,它是较为理想的隔离运算放大器。
2.2 软件设计
若数据采集的工作对硬件设计有较高的要求,则数据处理主要依赖于软件。我们为电力系统数据采集与处理系统开发的系统软件分为两大部分:实时监控软件和后台数据处理软件。这里主要介绍实时监控软件的设计。
软件采用Intel 80C196的汇编语言编写。由于系统需要采集的电气量和热工量的数目很多,如何保证系统的实时性则显得至关重要。对电气参数的采集采用了交流离散采样技术,该技术现在已经发展得比较成熟,实时性比较容易保证;而对热工量采集,由于采用了继电器作为隔离和多路选择器件,其动作速度相对于电子电路来说则比较慢,因此更需要重视数据测量的实时性。为此设计了实时多任务操作系统,同时在通信方面作了精心设计,有效地提高了系统的实时性。
对于CPU所要完成的各种不同任务,根据其重要性和执行特点,赋予了不同的优先级,原则上是优先级越高的任务被执行的频率越高。例如,对遥信量扫查采集任务每隔10 ms执行一次,而对LED显示刷新任务则每隔500 ms执行一次。这样既可以保证紧急任务的随时执行,又不至于使CPU过多地忙于处理一些非紧急任务而影响系统的实时性。具体的做法是通过设置一个任务标志字,规定其16位分别对应着16个用户任务,如果需要执行某个任务,则置对应的任务标志位为1,反之则清0。通过80C196的软件定时中断程序,定时地为各种任务设置执行标志,操作系统就可以确定在任意时刻需要执行的任务。然后,设计一个任务扫查程序,它循环地检查任务标志字中的每一位,以确定是否需要执行对应的任务,从而保证对于各个任务的及时处理.
本文主要论述了数据采集显示控制器的设计过程,设计方法,以及在设计中所遇到的各种问题以及解决方法。
数据采集显示控制器主要由三个部分组成:显示部分,键盘控制部分,串行通信部分。其中每一部分又包括硬件设计部分和软件设计部分。本文会对每一部分的设计进行比较详细的论述,包括设计依据和相关数据。对于设计过程中所用到的设计软件和硬件设备也会做比较细致的介绍,帮助读者更容易的了解数据采集显示控制器的设计过程。在该系统的设计过程中,笔者遇到了一些的问题和困难,这些问题和困难的解决方法在本文中会有比较
本人设计的实用数据采集系统以ALTERA 公司的 EMP7128S 系列的CPLD 作为控制器,选用ADI 公司的AD7492 作为模数转换器,其转换频率可以达到 1.25MHz,12 位并行输出;FLASH 选用ATMEL 公司的AT29C1024,RAM 选用IS61C6416,这两种存储器 芯片的容量都是64K × 16 位的。控制器的设计是基于CPLD 控制的实用数据采集 系统的核心。按照前面所述的基本设计思想,数据采集与存储部分部分应分为两个功能阶段完成。第一阶段是启动AD 转换并将AD 转换得到的数据存入RAM 中;第二阶段是读取RAM 中的数据且将该数据存入 FLASH 中。对AD7492 的控制按照AD7492 数据手册给出的典型电路实现:从转换控制信号的下降沿开始,AD7492 经过不超过1 ms 完成转换,在精确时钟控制下,对 AD7492 的读取方式可采用延时读取的方式,从而简化控制逻辑。FLASH 分扇区的结构使得对FLASH写入一个扇区的数据(对AT29C1024 来说,一个扇区为128 个字单元)后需要等待一段时间(对AT29C1024 来说,该等待时间不小于10ms) 才能将数据成功地写入该扇区,等待时间结束之后进入下一个扇区的操作。控制器采用VHDL 语言编写程序后下载到 EMP7128SLC84 中实现。EMP7128SLC84 具有在线可编程(ISP)功能,因此该数据采集系统的现场修改灵活性大大增强。同时EPM7128S 的工作速度为6ns,由它来控制AD、RAM、FLASH 可得到完美的时序配合和同步。为了解决一个系统中多个AD 同时采集数据的同步问题,本文实现了延时同步。
结语
本文提出的基于CPLD 控制的实用数据采集系统在MAXPLUS II 中进行仿真取得了期望的控制逻辑。该方案的实际电路在地下供水管网的泄漏检测中得到了成功的应用。通过选择不同采样频率的A/D 转换器,实用数据采集系统可满足不同应用场合的要求,因而本文提出的方案是可行并具有普遍适用性。此外,在采用VHDL 实现控制器的功能时,对各个进程的编码方式均采用了异步方式,结果不但实现了规定的逻辑功能,而且相对于同步编码方式来说,有效地利用了CPLD 的逻辑单元,从而使得采用 EMP7128S 完成本设计成为最佳选择。
2.3.3.1 开发环境
地质钻孔基本信息数据采集系统采用C/S结构(Client/Server,客户/服务器模式,简称“C/S结构”),利用面向对象可视化的高级编程语言Microsoft Visual Basic作为主要开发工具,mS Access作为后台数据库管理系统。根据系统软件的功能需求,采用模块化开发思路,编写完成数据输入、输出、浏览、检索查询、统计分析和数据管理等不同功能模块的应用程序代码。本系统是在Win⁃dows操作系统下开发的应用程序,其系统软硬件开发环境要求如下:
(1)硬件配置要求
Pen 4以上处理器的计算机、笔记本计算机;计算机与打印机有高速传输的连接接口,以纸张的形式打印输出报表清单;打印机、光盘刻录机等。
(2)软件配置要求
操作系统:Windows 2000 Server、Windows XP以上版本。
数据库技术:Microsoft Access 2003以上版本的数据库管理系统。
系统开发工具:面向对象的可视化程序设计语言Microsoft Visual Basic 6.0。
报表输出:Microsoft Office Excel 2003以上版本。
支撑软件:MapObjects 2.2。
2.3.3.2 开发流程
为便于对各省(区、市)地质钻孔基本信息清理工作形成的数据进行录入、修改和数据维护,地质钻孔基本信息数据采集系统采用通用的MS Access作为后台数据库管理系统,采用数据表单形式开发数据采集界面,提供数据列表形式浏览所录入的数据内容。录入数据不合要求时,系统会给出提示信息;录入各种代码项时,有详细的代码列表供用户选择;录入时间项时提示信息会自动显示;在数据采集界面上输入完数据后,数据入库前进行数据检验,不符合要求的数据记录无法入库,保证数据的安全性及数据的完整性。地质钻孔基本信息数据采集系统流程如图2.5所示。
图2.5 全国地质钻孔基本信息数据采集系统开发流程图
在完成数据采集功能的基础上,系统设计开发还实现了数据的检索查询、统计分析、报表生成和数据管理等功能。检索查询功能提供菜单、主窗体的系统工具栏标签和图形模式等3 种查询方式。统计分析功能提供按保管单位、行业部门、比例尺、工作程度、矿种、项目工作时间段、勘查资质等级统计、钻孔深度、矿区、钻孔终孔时间等属性项进行分类统计。钻孔资料信息统计完成后,根据需要可以生成数据报表,并可打印输出。为方便用户的使用,该系统还设计开发了数据导入、数据导出、数据备份、数据恢复、数据追加和清空数据库等数据管理功能。
2.3.3.3 采集系统的运行
(1)系统安装
地质钻孔基本信息数据采集系统的安装需要以下软硬件环境:
1)硬件环境要求:
●CPU:Pen Ⅲ以上。
●内存:256MB以上。
●硬盘:具有500MB以上的剩余空间。
●显示器:SVGA(支持1024×768分辨率及以上)显示器、MS-Mouse或兼容鼠标器。
●打印机:激光打印机或喷墨打印机。
2)软件环境要求:
●操作系统:Windows 2000、XP、Vista、Win7等操作系统。
●数据库系统:Microsoft Office Access 2003以上版本。
●输出数据:Microsoft Office Excel 2003以上版本。
在以上软、硬件环境基础上,打开安装程序“地质钻孔基本信息数据采集系统(CDCS1.0)”,双击CDCS.EXE安装文件。根据安装提示,即可安装完成。用户可自定义选择系统安装目录,建议使用系统提供的默认安装目录。系统安装成功后,将在桌面形成快捷图标“ ”,同时在任务栏的 【开始】 菜单的 【程序】 中成功添加“地质钻孔基本信息数据采集系统”。
(2)系统卸载
在任务栏中选择 【开始】→【程序】→【地质钻孔基本信息数据采集系统】→【卸载CDCS】。或者执行控制面板中“添加/删除程序”,选择“地质钻孔基本信息数据采集系统”程序组进行删除。卸载完毕后,检查系统安装文件,如未删除,可手动删除安装文件。
(3)启动系统
在桌面上双击“地质钻孔基本信息数据采集系统”快捷图标或选择任务栏中的 【开始】→【程序】→【地质钻孔基本信息数据采集系统】→【CDCS】,启动系统。
在系统登录界面需完成以下操作:
(1)选择数据源
点击 【数据源】 右侧数据源选择按钮,选择省(区、市)(或者全国)数据源,点击 【打开】,系统自动在 【管理员名称】 中生成省(区、市)名称。系统下次打开时,除需要另外选择数据源外,将默认打开上次登录成功的数据源和管理员名称。
(2)输入管理员口令
数据源选择之后,系统自动选择该省(区、市)的名称为管理员名称,管理员口令为该省(区、市)6位行政区划代码,即数据源提示的最后6位数字。
图2.6 地质钻孔基本信息数据系统主界面
(3)创建数据源
选择 【登录】,系统将自动检测在安装目录DataBase文件夹下是否存在该省(区、市)(或全国)数据源。如果不存在,系统则提示用户创建该省(区、市)的空数据源,并自动链接该数据源;如果已存在,系统则自动链接该数据源。选择 【登录】 后,进入系统主界面,如图2.6所示。系统主界面由系统功能菜单、导航窗格、系统工具栏、系统状态栏、数据/表单编辑/浏览区5个区域构成。登陆采集系统后,即可进行数据输入、输出、检索查询、统计汇总、数据报表、数据管理等方面的操作。
1.1 虚拟仪器概述
虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。
虚拟仪器的主要特点有:
�8�7 尽可能采用了通用的硬件,各种仪器的差异主要是软件。
�8�7 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
�8�7 用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。
1.2 LabVIEW是什么?
LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
1.3 LabVIEW的运行机制
1. 3.1 LabVIEW应用程序的构成
所有的LabVIEW应用程序,即虚拟仪器(VI),它包括前面板(front panel)、流程图(block diagram)以及图标/连结器(icon/connector)三部分。