书城工业技术智能仪器设计基础
19100400000032

第32章 智能仪器设计实例(3)

其中通道指示数码管显示“1”或“2”,代表当前输出值是Ⅰ通道还是Ⅱ通道。显示某一通道时,即可对某一通道进行设置。设置过程并不影响另一通道的正常工作。右面的指示灯有7个是量程指示,点亮的灯代表该通道当前的量程。如果此时校准灯也同时点亮,表明该通道的当前量程已被预先校准过,按动一下校准键(+或-)即可在显示器上显示出该量程的校准值(包括+、-),再按置数键可恢复输出数值显示。如果出现超载现象,该通道报警指示灯即会点亮,同时内部蜂鸣器也发出声音提醒操作者。“电压量程”和“电流量程”键是当前通道量程选择键,“电压量程”键按10mV→100mV→1V→10V顺序变化,“电流量程”键按1mA→10mA→100mA方式变化。“清零”键的作用是清除当前通道当前量程的输出,便于数据的重新设置。

SFX2000的IEEE488接口的实现有两种方案,即采用Motorola公司的68488GPIB接口芯片或采用Intel公司的8291、8293GPIB接口芯片。

另外,该仪器在设计过程中考虑到用户的习惯,因而还给出了一种简易RS232接口电路(原理框未标出)。该电路应用8751单片机的串行通信接口RXD和TXD(即P3.0和P3.1),外接两片串行口驱动电路MC1488和MC1489,实现串行通信功能,可与一台微型计算机组成自动测试系统。

8.3.3SFX2000的模块化结构软件

8.3.3.1程序简介

SFX2000采用8751单片机,键盘及显示由专用电路8279管理,因而给软件编制带来很大方便。该软件采用大量模块化程序结构,因而更显得简洁明了。整个程序分为主程序模块和中断处理模块:主程序模块包括开机初始化和主程序两部分;中断模块按中断源可分为IEEE488中断模块和键盘中断模块以及RS232串行口中断模块。软件编制时充分考虑到三个中断源中断时完成的功能近似相同这一现象,因而使中断模块大为简化。在主程序模块和中断模块中都用到很多通用程序,这些小的程序集合在一起构成公用程序模块。

1.初始化模块

开机后首先在RAM区的顶端10H处设置堆栈指针SP,并将仪器工作所需要的RAM区全部清零,向RAM区的某些单元传送仪器工作必需的初始数据,设置某些标志位,置两个通道皆为10mV量程0V输出,以保证机器开机工作正常,然后开始对串行口的SCON和PCON进行写数据初始化,并设置T1的溢出率,再对8279进行初始化,并显示Ⅰ通道10mV量程,然后进行IEEE488接口芯片的初始化,现在机器基本进入正常,可以开中断,进行正常的主程序循环。

由于DAC的数据输入端具有锁存功能,在置数中断程序中已经把数据送往DAC进行转换,因而在主程序中不再对它送数,这样有利于减小输出噪音和纹波。

2.键盘中断模块

本机16个键的管理全部由8279完成,每当有一个键按下时,8279首先把该键的键值存入内部FIFORAM,然后向CPU提出中断申请,CPU响应中断后读该FIFORAM中的键值,根据键值的不同转向不同的键处理子程序模块。其中包括:通道转换、量程转换、置数、校准、清零等16个子程序.这里以量程转换子程序为例作一简要说明。

单片机根据从8279读入的键值,判别是电压量程还是电流量程。如果是电流量程则设电流标志为“1”,然后与当前量程进行比较,共有4种情况:一是都为电压量程;二是原来为电压量程,置入值为电流量程;三是原来为电流量程,置入值为电压量程;四是都为电流量程。

(1)当都为电压量程时,原电压量程加“1”,如果大于4,则置电压量程为10mV量程。

如果不大于4,则送对应电压量程。

(2)当原来为电压量程而置入值为电流量程,则直接设置为1mA电流量程,并把输出电流继电器吸合。

(3)如果原来为电流量程而置入值为电压量程,则直接设置为10mV电压量程输出,输出电流继电器释放。

(4)如果都为电流量程,则原电流量程数值加“1”,如果大于3,则置1mA电流输出。

否则按新值置电流量程。

在进行量程转换时,所有的输出皆设置为“0”,其中包括数据缓冲区、衰减求和放大器前面的叠加继电器J1和J2以及DAC的输出值,这样在量程转换后的输出为0,保证待测仪器的安全。

8.3.3.2IEEE488接口程序简介

由于IEEE488接口中断的重要性,本机设该中断为高优先级中断。对于IEEE488接口程序,这里只给出8291GPIB集成片实现听和只讲功能的两个例子。

程序首先对8291进行软件复位,然后读取本机后面板上的设置状态。如果地址开关设置在只讲状态,则程序将只讲状态写入地址状态寄存器。如果地址开关没有设置在只讲状态,则将读到的地址码写入地址寄存器;接着设置所需的中断屏蔽位,并根据需要向有关的其他寄存器写入数据,然后发送退出初始化状态的命令,并退出接口初始化程序模块。

前者接收来自接口的字符并依次放入预先设定的内存缓冲区中去,后者以只讲的方式通过接口发送预先存放于数据区的一串字符。

8.4超声波测距仪的设计

超声波传感器是利用超声波的特性而研制成的传感器。目前,超声波技术已广泛应用于工业、国防、交通、家庭和生物医疗等领域。超声波传感器与信息技术、集成工艺相结合,为开发智能化的超声波仪器设备创造了有利条件。

8.4.1SB5227型超声波测距专用集成电路

SB5227型超声波测距专用集成电路芯片中带微处理器和RS485接口,能准确测量空气介质或水介质中的距离,适用于水下探测、液位或料位测量、非接触式定位以及工业过程控制等领域。

8.4.1.1SB5227的性能

(1)采用CMOS工艺制成的超声波测距专用集成电路,适配分体式或一体式超声波传感器。芯片中有振荡及分频器、微处理器(μP)、锁存器、键盘接口、RS485串行接口、显示驱动器及蜂鸣器驱动电路。

(2)利用键盘可在30kHz~200kHz范围内设定超声波频率,适配中心频率为30kHz、40kHz、50kHz、75kHz、125kHz、200kHz的各种超声波传感器,还能设定发射功率(从小到大共分11级)以及传感器的阻尼特性补偿系数(ω)。调整好参数ω可以防止在发射周期过后出现余振现象,提高抗干扰能力。时钟频率为12MHz,测量速率为5次/秒。在空气中的最大测量距离为20m,最高显示分辨率可达1mm(或1cm)。

(3)可接收与环境温度成正比的频率信号(0kHz~14kHz,对应于-40℃~+100℃),能对声速和距离进行温度补偿,提高测量精度;可进行现场标定并将标定参数通过I2C串行总线保存到外部非易失存储器(EPROM,EEPROM)中。

(4)有两种测距模式可供选择。选增值测距模式时,测量值(L)从零开始逐渐增大。选差值测距模式时,可以测量距离差(ΔL)或高度差(ΔH)。能分别设定距离的上、下限,实现位式控制。

(5)带RS485串行接口。一片SB5227AM(主机)可以带8片SB5227AS(从机),通信距离大于100m。

(6)采用+5V或+3.3V电源供电,电源电压允许范围是+3.0V~+6.0V。工作温度范围是0℃~+70℃。

8.4.1.2SB5227的工作原理

(1)引脚功能

SB5227采用DIP20或SOIC20封装。其中,UCC、GND端分别接电源和地。XT1、XT2端接12MHz石英晶体。SONICOUT为超声波输出端,ECHOIN为回波接收端。

TEMPIN为代表环境温度的频率信号输入端,外接温度检测电路。R、T、C分别为RS485接口的串行数据输入端、串行数据输出端、串行控制信号输出端。

BZ为蜂鸣器驱动端。DATA为显示数据输出端,CLK为显示时钟输出端。RCLK为移位时钟输出端,SRCLK为锁存时钟输出端。SRCLK和EXTMEM还构成I2C总线接口,适配于I2C总线的外部存储器。

LMT1、LMT2分别为上、下限引出端。KEY接键盘的行线。NC为空脚。

(2)工作原理

主要包括以下9部分:①振荡及分频器;②温度输入通道(放大器与积分器);③超声波输出电路(单脉冲电路、延时电路及缓冲器);④超声波输入通道(两级放大整形器及信号检出器);⑤8位微处理器(μP);⑥RS485串行接口;⑦缓存器、时序分配器;⑧显示驱动器;⑨键位识别电路,可配4位键盘。除此之外,芯片内部还有定时器等(未画)。

超声波频率信号从第10脚输出,经过外部功率放大器驱动超声波发送器。超声波接收器则通过接收电路接SB5227的第8脚。所有测量参数的设定(如超声波频率、发射功率、传感器阻尼特性补偿系数、距离的上、下限)以及工作模式的选择,均通过键盘来实现。