多元气体校准仪

更新时间:2024-06-06 04:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四届‘MOTOROLA杯’ 嵌入式处理器设计应用大奖赛(A组)

多元气体校准仪

比赛编号: A11188 日期: 2002年10月2日

姓名: 左 刚 (中文) Zuo Gang (英文) 职业:硕士研究生 姓名: 甄广启 (中文)Zhen Guangqi(英文) 职业:硕士研究生 姓名: 何敬宇 (中文) He Jingyu (英文) 职业:硕士研究生 指导教师: 李晶皎教授

通讯地址: 沈阳东北大学信息学院 邮编: 110004 电子邮箱: shihhuangti@sohu.com 电话: 024-83681069

传真: 024-83681069

推派单位名称: 东北大学信息学院 单位地址: 沈阳东北大学信息学院 单位电话: 024-83681069

单位传真: 024-83681069

内容目录

1 引言............................................................................................................................................. 2

1.1 多元气体校准仪工作原理 .............................................................................................. 3 1.2 多元气体校准仪的组成 .................................................................................................. 4 2 系统概述 ..................................................................................................................................... 5

2.1 特性 .................................................................................................................................. 5 2.2 Motorola MC68HC912DG128A简介.............................................................................. 5 2.3 系统概述 .......................................................................................................................... 5 3 系统硬件 ..................................................................................................................................... 7

3.1 压力流量采集电路 .......................................................................................................... 7 3.2 臭氧紫外灯检测驱动控制电路 ...................................................................................... 7 3.3实时时钟电路 ................................................................................................................... 7 3.4 电磁阀等驱动电路 .......................................................................................................... 7 3.5 质量流量控制电路 .......................................................................................................... 8 4 系统软件 ................................................................................................................................. 12

4.1 软件模块结构 .............................................................................................................. 12

4.1.1各模块介绍 ........................................................................................................ 12 4.1.2 主程序说明 ....................................................................................................... 24 4.2 软件系统细节设计说明 .............................................................................................. 25

4.2.1 软件开发工具介绍 ........................................................................................... 25 4.2.2 硬件控制涉及原理 ........................................................................................... 25

多元气体校准仪

左刚 甄广启 何敬宇 李晶皎[1] 东北大学信息学院(110004)

摘要:本文介绍了用Motorola的16位微控制器MC68HC912DG128A设计的分析仪器中的多元气体校准仪。其特点是采用特殊的放大器放大传感器的弱信号;用高精度的质量流量控制器精确控制小流量的气体,控制精度为0.23%;用高精度热敏电阻及定制加热器使温度控制在50℃±0.1℃。

关键词 :校准仪、流量控制、温度控制、测量

1 引言

大气污染监测是环境保护工作者的眼睛,用空气质量自动监测系统可以长期监测空气中有害气体的数量、分布、动向等,为消除危害、改善环境、保护人民健康提供资料。

大气污染是由固定污染源(工厂烟囱)和流动污染源(如汽车)排放的污染物经扩散形成的。大气污染的特点是范围大、随时间变化,受气象、季节、地形等影响。这样对于空气污染的监测必须在一个地区同时进行多点连续监测,通过对自动记录的大量科学数据的分析研究,才能准确地掌握这一地区空气污染情况。目前空气污染最有效的监测方法是建立空气污染自动监测系统,即在一个城市、一个区域或一个国家组成一个监测网,它由一系列的监测站和一个中心站组成。各监测站与中心站之间保持自动的信息联系,并接受中心站的控制和指挥。

监测站中安装的仪器类型由计划测定的污染物种类决定,我国目前主要监测3项指标:SO2、氮氧化物(NO、NO2)、PM10。空气污染监测仪器一般不能直接测定绝对浓度,而是采用相对法,因此仪器的准确度决定于校正的标准。SO2、氮氧化物就是需要定期校正的气体,校正方法是用标准气体进行动态校正。本仪器就是为此目的设计的。

多元气体校准仪的主要功能是为空气监测系统的其他仪器(氮氧化物分析仪、二氧化硫分析仪)提供已知浓度的标气用于校标。在空气监测系统中有SO2、氮氧化物、CO等多种气体分析仪,这就要求校准仪能够配置多种标准气体,故称为多元气体校准仪。

多元气体校准仪主要由气路部分、电路部分组成。其中电路部分是本文的核心部分,具体有:

多元气体校准仪的空气监测系统可用在环境监测部门或大工矿企业,用于测定空气污染。通过扩展外围器件如调制解调器等,还可以使用远程控制功能来有效地监督厂矿的气体污染治理情况。

本气体校准仪留有足够的接口,供用户根据自己的需求进行功能扩展,满足用户的各种需求。因此,无论是从仪器本身的功能,还是从满足用户需求方面来看,该多元气体校准仪的设计应用的前景将是十分广泛的。

[1]李晶皎教授,指导教师,东北大学-摩托罗拉实验室主任

1.1 多元气体校准仪工作原理

多元气体校准仪采用动态配气,即将已知浓度的钢瓶标气以较小的流量,恒定不变地送入混合室中(见图1),零气(净化后的空气)以较大的流量恒定不变地通过混合室,与标气混合并将其稀释,稀释后的混合气体连续不断地从混合室流出,供被校准的仪器(例如SO2分析仪)使用。准确测量这两个气流之比就是稀释倍数,混合气体的浓度可从稀释倍数计算出来,调节气流之比可以得到所需浓度的标气。标气浓度计算如下:

C?C0?Q0

Q0?Q其中 C——混合气浓度(或被稀释气体的最终浓度)

C0——钢瓶气浓度 Q0——钢瓶气流量 Q——零气流量

动态配气的气路流程如图1所示。为了得到准确的配气浓度,对钢瓶气与稀释气的流量测量必须准确,而且稳定。为此,使用了高精度的质量流量控制器,零气的量程为10SLPM(标准升/分),钢瓶气流量为100cc/min。

由于无法购买NO2钢瓶气体,在校准氮氧化物分析仪的二氧化氮时需要使用气相滴定法(GPT)来动态配制二氧化氮气体。GPT的基本原理是一氧化氮与臭氧之间的快速气相反映:

NO+O3=NO2+O2

当NO过量时,NO2生成量=NO消耗量=O3量。因此,已知O3浓度就可以知道NO2的浓度。

校准仪将过剩的NO与特定浓度的臭氧混合产生NO2。用零气和适当流量的已知浓度的NO钢瓶标气进行精确混合产生所需浓度的NO。臭氧浓度由臭氧发生器控制。

图1 多元气体校准仪气路框图

基于以上的背景,选用MC68HC912DG128A微控制器,实现多元气体校准仪的功能:即用装在钢瓶中的已知浓度、且浓度很高的SO2、NO、CO等标气,分别配置所需浓度的标气供SO2、NO、CO等分析仪校标时使用。

1.2 多元气体校准仪的组成

多元气体校准仪的器件组成如图2所示,具体有:

? 2个质量流量控制器(Mass Flow Control, 简称MFC),分别用于产生准确浓度的零

气和标气

? 5个电磁阀,分别控制零气输入和SO2、NO、CO等标气的输入 ? 1个臭氧发生器

其中质量流量控制器由质量流量传感器和电磁阀组成,阀自动地开启和关闭与所需流量成比例。MFC的满量程电压是5V,由微控制器输出的控制电压送到MFC,MFC根据此电压设定流量,传感器的输出电压反馈到微控制器,以实现更精确的流量控制。

校准仪中包含臭氧发生器是由于NO2的腐蚀性,很少能用钢瓶盛装,所以在校准仪内配备产生NO2的气相滴定反应设备,使NO与O3反应生成NO2。臭氧发生器是通过低压汞灯在波长185nm处紫外光照射空气产生臭氧。产生的臭氧量与185nm紫外光的强度成正比。强度依赖于灯的温度和电流,灯的温度保持在50oC,灯的电流变化产生不同浓度的臭氧,灯的强度由光学探测器来控制以产生稳定的灯强,从而保持一定浓度的臭氧的产生。

校准仪通过RS232接口同空气质量监测系统中的工控机相连,实现标气选择、浓度设置、校零和校标的时间设置等。

图2 多元气体校准仪的器件组成

2 系统概述

2.1 特性

? ? ? ? ? ? ? ? ? ? ?

基于MC68HC912DG128A

1台仪器可校准空气中的多种气体 也可校准用户自定义的其他气体

针对不同的气体有不同的产生方式,如用紫外光产生臭氧、用NO和O3反应产生NO2等

利用“质量流量控制器MFC”精确的测量和控制零气与标气的流量 校准仪机箱温度控制、臭氧发生器温度控制

用芯片内部10位AD转换器,测量温度和压力、流量传感器信号 实时时钟

电磁阀输出控制 风扇控制 掉电保护

2.2 Motorola MC68HC912DG128A简介

本设计选用MC68HC912DG128A,其理由是校准仪原设计采用MC68HC11A1,因MC68HC11A1已经停产,同时新设计的校准仪需要增加一些新功能,8位的MCU功能不能满足本仪器需求,故选用MC68HC11的升级产品16位的微控制器MC68HC912DG128A。

1. 4路PWM(脉宽调制)输出,在本系统中共使用3路:2路用于控制零气和标气的质

量流量控制器,1路用于控制臭氧发生器的紫外灯的灯强。

2. 内置的10位ADC能满足本仪器采样精度的需要,最多可支持16通道,在本系统

中共使用6通道:温度信号使用3通道,压力信号使用2通道,流量信号使用1通道。

3. 用通用I/O端口做输出控制电磁阀驱动电路、控制风扇和臭氧加热器。 4. 用内置COP模块实现看门狗功能,防止软件死锁。

5. 用内置的128K闪存存储系统程序,用2K E2PROM存储本机的设置和主控工控机

对本机的设置。8K RAM用于程序运行时通讯、运算等的临时存储区。

6. 将实时时钟芯片与内置的SPI相接,用于本机的计时、自动校准及与监测系统保持

时间同步。

7. 通过内置的SCI接口,将校准仪同主控工控机相连,实现数据传输和交互。

8. 丰富的I/O端口,为进一步扩展系统功能提供可能。例如,通过具有唤醒功能的端

口H接入键盘,用通用I/O端口接LCD显示屏等。

2.3 系统概述

多元气体校准仪主要完成的功能是为空气质量监测系统中的分析仪器校准时提供所需

浓度的标气。

例:要为二氧化硫分析仪提供浓度是400PPB、总流量为5000CC/min的SO2标气。其中钢瓶气体SO2浓度为100PPM。操作程序如下: (1) 通过主控工控机进行如下设置:

设置屏幕/标气设置

标气设置

标气: SO2

单位: PPB

小数点位数: 0

稀释D/滴定G: D

进气电磁阀位置(1-4): 1

钢瓶标气浓度: 100000

设置屏幕/校准序列设置 序列设置 序列号(0-99): 01 总流量(CCPM): 5000 钢瓶气体流量: 20 零气流量: 4980 标气浓度(PPB): 400

根据标气设置和校准序列设置的数据,系统内部要进行如下验算:

钢瓶气体流量=(400PPBX5000CCPM)/100000PPB=20CCPM 零气流量=5000CCPM-20CCPM=4980CCPM

(2) 通过主控工控机启动校准序列

控制屏幕/开始一个序列

开始一个序列 开始 停止 系统做如下操作,根据设置的进气阀位置打开相应的电磁阀和零气电磁阀;根据标气的类型,打开监测系统阀板上与二氧化硫分析仪相连的电磁阀,使校准仪产生的标气输入SO2分析仪。零气和标气的质量流量控制器的流量根据设定的流量进行精确控制。

气体流动是靠压差实现的,钢瓶气经减压阀调整为30PSI后与校准仪入口相接,零气来自于零气发生器,压力为30PSI。而校准仪输出气体的压力是15PSI,这样15PSI的压力使气体从入口流向出口。

通过系统主程序的轮询检测机箱温度状态,并将温度检测结果通过RS232接口,送主控工控机显示。

3 系统硬件

系统硬件电路由温度采集电路、压力流量采集电路、电磁阀驱动控制电路、臭氧灯驱动控制电路、质量流量控制器控制电路、串行通讯电路、实时时钟电路等组成。主控芯片选用MC68HC912DG128A,具体电路框图如图3所示。

本系统使用电源有:+5V、+15V、-15V、+24V,主要由开关电源模块提供,开关电源的输入为220V交流电。

3.1 压力流量采集电路

压力流量采集电路的原理图如图4所示,用霍尼韦尔公司的气流质量传感器测量臭氧的质量流量,用Motorola公司的压力传感器测量臭氧压力。为保证传感器信号的弱信号很好放大,采用精密仪器用放大器INA114。压力信号放大后从DG128A的AD通道PAD4输入,质量流量信号从DG128A的AD通道PAD5输入,转换成10位的数字信号,参与臭氧流量计算,并闭环控制紫外灯的灯强,从而保证臭氧的恒定流量。

3.2 臭氧紫外灯检测驱动控制电路

本电路如图5所示,由2部分组成:紫外灯驱动控制电路和紫外灯灯强检测电路。 由于紫外灯点亮需要非常高的电压,故用DG128A的PA0、PA1做控制端,控制开关管Q3、Q4的导通和截止,经变压器T1将交流电升至所需电压。将DG128A的PWM2输出,经RC滤波、放大后用于控制紫外灯的灯强。

紫外灯灯强检测采用光电管,由于光电管的电信号很弱,故信号放大器采用OPA128高精度、高输入阻抗的精密运放。放大后的信号输入到DG128A的AD通道PAD3,转换成10位的数字信号,用于运算,参与灯强控制。

3.3实时时钟电路

电路如图6所示,实时时钟芯片选用SPI接口的DS1305,用DG128A的SPI接口对DS1305进行设置。当计时时间到,由DS1305的中断输出产生中断请求信号,并将其接入DG128A的中断请求输入端IRQ,由DG128A用SPI的3条信号线与DS1305传送数据。

3.4 电磁阀等驱动电路

本电路如图7所示,用DG128A的PT端口做通用I/O口,数字信号经74LS374锁存后,通过集电极开路门的驱动芯片,用于控制电磁阀、风扇和臭氧加热器等。该电路有2组组成,分别用DG128A的PA2和PA3控制74LS374的选通,分别控制本机输出驱动和监测系统的输出选通。

风扇由热敏电阻测量的机箱温度控制,例如,当机箱温度高于34℃(用户可设置)启动风扇运转,当机箱温度低于32℃(用户可设置)风扇停止运转。

臭氧加热器由臭氧发生器中的热敏电阻控制,其温度控制在50℃±0.1℃,热敏电阻的

精度为±1%。

3.5 质量流量控制电路

为了精确控制小流量的气体质量流量,选用高精密的质量流量控制器,零气的MFC选用量程为10SLPM,标气的MFC量程为100CCPM。MFC需外加+15V、-15V电压,输入的控制电压为0~5V与0~满量程相对应,MFC产生输出电压用于与输入控制电压相比较,实现闭环控制。MFC与微控制器的连接关系如图8所示。

主控工控机+VCC放大电路PAD0PAD1PA2PA1RS2322PS0PS1PB0-78电磁阀控制线等控制线驱动零气电磁阀SO2NOCO备用风扇臭氧加热器监测系统电磁阀机箱热敏电阻MC68HC912DG128A臭氧PP0(PWM0)PP1(PWM1)臭氧压力传感器放大电路臭氧流量传感器PAD4PAD5PAD0PP2(PWM2)PA0PA1臭氧紫外灯检测驱动控制SPIIRQ2质量流量控制4实时时钟 图3 系统硬件框图

图4压力流量采集电路

图5臭氧紫外灯驱动控制电路

图6 实时时钟电路

10

图7 电磁阀等驱动电路

图8 质量流量控制电路

11

4 系统软件

4.1 软件模块结构

根据需求分析以及随后的系统分析和可行性分析,我们采用的是基于前后台的控制方式:前台为各种事件的响应代码,以中断服务程序为主;后台是主流程循环以及各种的定时性操作。整个软件结构按功能可以分为下面几个模块。

4.1.1各模块介绍

在整个的多元气体校准仪系统的软件总体设计上,采用的是模块化的设计方法。这样便于协同开发并且在功能扩展和系统以后的升级上都十分方便。

串行通讯控制模块 在整个系统的正常执行流程过程中,只要一有中断事件的发生就会引起相应的事件处理代码的执行即中断服务程序的响应。由于在实际的应用中,用户与本多元气体校准仪的主体硬件架构是分离的,甚至可以远在两地,并且主控于具体执行部分是分离的,所以在两者之间的通讯实现上要考虑上位机发来的ASCII码的速度问题。速度太慢、速度适中和速度很快的情况下都应该能够顺利的完成通讯。在具体实现策略的选择上我们考虑了两种方案:一个是查询(Poling)方式;一种是采用中断的实现方式。 在查询方式下,由主流程在一个主循环里反复的通过检查特定寄存器的特殊位是否置位来判断是否有数据来到,而这部分必须与一些实行性操作控制代码顺序执行(在主循环体的内部),这就导致了较慢的响应甚至明显慢于前后台的平均响应;而且在实际的应用中由于上位机软件可能是先截获用户的键盘输入,再以较快的速度将收到的字符流一起发送给执行硬件模块。在这种方式下,查询方式就很有可能造成数据的丢失。 在中断的实现方式下,在各种中断处理事件没有发生时CPU只进行各种实时性以及主控流程的执行。这样就一方面保证了CPU的效率问题,另一方面也保证了及时的处理收到的数据(省去了实时性代码的执行时间)。 在具体的软件开发中,两种方式我们都实现了。查询方式比较易于调试,可以用来检查软件系统的其他模块的正确性;而中断方式则对应用的支持比较好,我们决定在最后向Flash存储器里面下载该种方式下的系统代码。 下面简述一下中断方式下的串行通讯模块。 此模块我们设计了几个子模块:发送模块和接收模块、实时接收模块(SCI1的中断服务程序)。

12

串口有数据?是分两条汇编指令清零中断标志从SCI1数据寄存器区数据并且存到点命令缓冲区否是回车键?是是否到了点命令缓冲区尾?SCI流程入口处理该点命令否清零点命令缓冲区是初始化点命令指针否返回

图9-串行通讯流程图

下面是串行通讯接收模块的代码。分为两个部分:接收初始化代码和接收执行代码。发送模块类同。初始化代码主要是通过给DG128A的与SCI1相关的寄存器使其工作在接收模式下。

;这是通过SCI接收ASCII 字符流的初始化代码 INITRECE: TPA ;Transfer CCR to A accumulator ORAA #$10 ; ORed A with #$10 to Set I bit TAP ; Transfer A to CCR

13

MOVB #$34,SC1BDL ;Set BAUD =9600, in SCI1 Baud Rate Reg. MOVB #$00,SC1CR1 ; Initialize for 8-bit Data format,

;Loop Mode and parity disabled,(SC1CR1) MOVB #$0C,SC1CR2 ; Set for No Ints, and Transmitter and Receiver

enabled(SC1CR2)

;清零RDRE标志这个动作可以分为2步。

LDAA SC1SR1 ; 1st step to clear TDRE flag: Read SC1SR1

LDD SC1DRH ; 2nd step to clear TDRE flag: Read SC1DR

register

RTS ;Return from subroutine

;这是通过SCI接收ASCII 字符流的执行代码

;接口如下:接收到的数据存放到B寄存器,只接收一个字符. ;返回值:B寄存器:为正-接受了一个字符;FF-没有收到字符 TRANSRECE:

BRCLR SC1SR1,#$20, TRANSRECE1 ; Wait for RDRE flag LDAB SC1DRL PSHB

LDAA SC1SR1 ; 1st step to clear RDRE flag: Read SC1SR1

LDD SC1DRH ; 2nd step to clear RDRE flag: Write SC1DR register PULB

RTS TRANSRECE1: ; else Transmission complete, Return from Subroutine

ldab #$FF ;indicate there is not char

RTS

;这是通过SCI发送ASCII 字符流的初始化代码

;接口如下:X寄存器所指向的字符串是要通过串口发出的 INITSEND:

TPA ; Transfer CCR to A accumulator ORAA #$10 ; ORed A with #$10 to Set I bit TAP ; Transfer A to CCR

MOVB #$34,SC1BDL ; Set BAUD =9600, in SCI1 Baud Rate Reg. MOVB #$00,SC1CR1 ; Initialize for 8-bit Data format,

;Loop Mode and parity disabled,(SC1CR1)

MOVB #$08,SC1CR2 ; Set for No Ints, and Transmitter

enabled(SC1CR2)

清零TDRE标志这个动作可以分为2步。

Ldab ' '

LDAA SC1SR1 ; 1st step to clear TDRE flag: Read SC1SR1

STD SC1DRH ; 2nd step to clear TDRE flag: Write SC1DR

register

; LDX #DATA ; Use X as a pointer to DATA.

14

D7D6D5D4D3D2符号尾数第一尾数第二尾数第三字节字节字节指数状态

由于有限的RAM空间,为了尽可能有效地应用每一个浮点数就某一个个别的浮点型数据而言,也可能有其他的意义,输出浮点型数据时,就把6个字节中的某几位用作表示浮点型数据所对应的数字串的ASCII码和小数点的位数等,但上述定义是最普遍的浮点型数据的代表含义。

在系统初始化的时侯,将ISP所指向的地址保存在变量SP当中,这样就将堆栈初值构造好了。每一次进行浮点数运算时,都将要进行运算的数据放到堆栈的栈顶或是放到寄存器ACC D当中,运算的结果一般放到堆栈栈顶。这样就可以大大的节省对RAM区的占用,当有浮点数运算需要时并不占用除堆栈以外的其他RAM空间。比如说当要计算二个浮点数的乘法时,先依次把2个数据压入浮点数堆栈,之后再调用浮点数乘法的子函数,最后把结果存放在栈顶。 本浮点数运算库涵盖了多元气体校准仪需求的各个方面。有应用于二次曲线校准的样本空间的常用统计量的计算和二次曲线校准的方法,具体算法参见具体的计算参见4.2.2的控制硬件部分原理部分,还有一些不是很常用的运算,如取自然对数或者常用对数等。

外围硬件接口控制模块

风扇控制与AD转换

在本多元气体校准仪系统里,用风扇调节机箱温度。在“风扇控制”菜单中对风扇开和关进行设置,具体参数如下:

风扇控制设置

风扇开:34 ℃

风扇关:32 ℃

主要的控制流程为:前台操作中有巡检风扇温度的操作,一旦发现风扇的温度低于阈值下限就关闭风扇;一旦发现温度高于阈值上限就打开风扇。具体的实现是在一个每隔一秒一次的定时中断来完成该前台操作。 本系统读取外部设备模拟输入的功能由统一的A/D接口实现。该接口不断的读取外部的模拟量并存放在约定好的存储区内,在后台操作中可以从这些存储单元直接得到想要的模拟量并进行处理。 还有,本系统通过PWM脉宽调制来控制MFC(质量流量控制器)。

多元气体校准仪中的外部参数是使用模拟传感器进行采集的,所以在进行处理之前必须将其进行数字化——变为数字量。我们采用的方案是使用DG128A本身携带的模数转换部件。

DG128A的模数转换部件由两个ATD模块ATD0和ATD1组成,我们只使用ATD0模块,它具有四个通道(PAD0—PAD3),我们采用的模式是对四个AD输入通道进行自动扫描(本多元气体校准仪中只使用了三个通道PAD0—PAD2)。其中机箱的温度通过热敏电阻由

20

输入通道PAD0采集,臭氧的温度由通道PAD1采集,标气的温度由通道PAD2采集。转换后的数字量存储在ADR0xH,ADR0xL(其中x=0,1,2)寄存器中,然后进行相应的处理。 在该应用中我们使用PB口作为控制信号,PA.2作为使能信号。

风扇控制机箱温度的程序代码如下:

BSR ADINIT ; 跳转到INIT 子程序初始化AD转换 BSR CONVERT ; 跳转到CONVERT 子程序进行转换 ;--------------初始化A/D---------------------------------------------- ADINIT: LDAA #$80

STAA ATD0CTL2 ;左调整,无符号结果 BSR DLAY ; 100 uS的延时 LDAA #$00 STAA ATD0CTL3

LDAA #$81 ; 10 位,采样时间2倍 A/D 时钟

STAA ATD0CTL4 ; 预分频 = Div by 4 (PRS4:0 = 1) LDAA #$FF STAA DDRA LDAA #$FF ;初始化B口使其为输出方式 STAA DDRB RTS

; -------------转换子程序---------------------------------------------- ; 模拟信号从 PORT AD0-2 中输入,结果分别保存在ADRxH和ADRxL中(其中x=0,1,2) CONVERT: LDAA #6

STAA ATD0CTL5 ;单个转换序列包括4个转换,

WTCONV: BRCLR ATD0STAT0,#$80,WTCONV ; 等待序列结束标志

LDD ADR02H ; 将转换结果放入到D寄存器中

;风扇控制程序,温度高于TMPH则转,低于TMPL则停

FAN: BSET PORTA,#04 ;风扇的使能信号

BRSET PORTB,#$20,SUB1

;---------------------------------------目前风扇处于停止状态 CPD TMPH ;判断是否高于启动风扇的温度 BPL CONVERT ; ;---------------------------------------高于需启动风扇的温度

BSET PORTB,#$20 ;启动风扇 BRA CONVERT

SUB1: ; 目前风扇处于转动状态 CPD TMPL ;判断是否低于停止风扇的温度 BMI CONVERT BCLR PORTB,#$20 BRA CONVERT

;为使AD转换器达到稳定,延时100 uSec DLAY: LDAA #$C8

21

DELAY: DECA BNE DELAY RTS

END

脉宽调制模块

多元气体校准仪中气体流量的控制是通过脉宽调制来实现的。

我们使用DG128A的输出比较功能,输出宽度可变的定周期连续脉冲,使用中断方式从OC5输出脉冲信号,脉冲宽度由TC5(定时输出比较寄存器5)决定,脉冲周期由TC7(定时输出比较寄存器)决定,可以修改TC5的值,改变输出脉冲的宽度。我们建立占空比与气体流速的对应关系表。通过改变占空比来实现对流量的控制。实现对气体流速的控制,从而获得所需浓度的样气。

PeriodHtimeHtime = Duty cycle

PWM 周期(Period)的计算 PERIOD=$1000(HEX) =4096(DEC) E-clock=8MHz, Prescaler=4 Frequency = (8 MHz)/(#Clocks_count*Prescaler)

= (8 MHz)/(4096*4) = 500 Hz 如果 PERIOD=($4096 Clocks) 则 Freq = 500 Hz

计算周期计数:

E-clock = 8 MHz, Prescaler = 4,IC/OC 分辨率 = 1/(E-clock/Prescaler) 那么输出比较的分辨率是0.5 uS 当频率为500Hz, 占空比为50% 时 计算: 频率为500Hz 周期T=1/F = 1/500 = 2mS

输出比较的频率F = E-clock /Prescaler/ = 2 MHz

clocks = F * D

clocks = (2 MHz)*(.5mS) = 1024 = $0400

脉宽调制的程序代码:

PWM: BSR TIMERINIT ;使用OC7和 OC5, OC7 = PERIOD , OC5 = HIGH TIME of PWM

22

BSR PWMINIT ;初始化定时器 TIMERINIT:

CLR TMSK1

MOVB #$0A,TMSK2 ; Prescaler = system clock / 4 MOVB #$88,TCTL1

MOVB #$A0,TIOS ; 选择通道5和7作输出比较 MOVB #$20,OC7M MOVB #$20,OC7D

MOVW #$1000,TC7H ; TC7 是 PWM的 \ MOVW #$0400,TC5H ; TC5 是PWM的\ MOVB #$80, TSCR RTS PWMINIT: CLEARFLG:

LDAA TFLG1 ; 要清OC5Flag, 首先读取它,然后写1 ORAA #$20 STAA TFLG1

WTFLG: BRCLR TFLG1,#$20,WTFLG ; 等待C5F Flag

LDD TC5H ; 从TC5中获取比较的值. ADDD #$0400 ; 增加500us 的High Time STD TC5H BRA CLEARFLG RTS

主控模块 由于本软件系统采用的是前后台的控制方式,前台操作即各种中断事件的响应完成了相当一部分的功能,所以使主控的流程非常简单。 该主控模块主要完成其他事实性操作上。 实时性操作包括:

检测定时校准序列或校准步骤的执行;

本多元气体校准仪的一大主要功能为可以自定义多个校准步骤(校准单一气体)和校准序列(按一定的顺序校准多种气体),并且还可以定时触发它们。这些操作完全可以在前台完成,但考虑到前后台的均衡性,我们把这部分操作放在了后台进行。

关于这部分的详细说明参见4.1.2的主程序说明。

23

4.1.2 主程序说明

主流程入口初始化浮点数堆栈初始化SCI1为接收状态初始化与上位机发来的点命令相关的变量初始化与定时模块相关的部分进行一些实时性的操作如检查是否有序列到期等开中断允许前台操作 图11程序主控流程图

主程序的简略结构如下:

main jsr maininit ;这里的初始化操作包括初始化SCI、A/D和PWN等 m2: cli ;应该随时打开中断允许各种前台操作 ;这里应该进行实时性的操作 bra m2 ;主流程是个死循环 rts ;

;下面是主程序的初始化部分 maininit call INTVSM,3

24

jsr zginitsciint movw #SAMBUF,SAMPTR movb #0,DOTCMDFLG movw #DOTCMDBUF,dotptr ;下面是初始化定时器相关的部分 movb #$10,TIOS ;使用输出比较4 movb #$80,TSCR

bclr TCTL1,$03 ;清零OM4和OL4,即禁止OM和OL控制的在定

时器端口上的输出动作

movb #overflonum,onesec ;每秒钟计数123次,即溢出了123次

ldd TCNT

addd #secrem ;1秒对应于8000000次时钟周期,对应于122次时

钟溢出(每65536次)外加4608个时钟周期

std TC4 ;多于的周期 movb #$10,TFLG1 ;清零OC4F(输出比较通道4)标志 movb #$10,TMSK1 ;允许输出比较4中断 cli ;开中断,允许后面的程序执行中响应中断 rts

4.2 软件系统细节设计说明

4.2.1 软件开发工具介绍

本软件系统的开发是采用的CodeWarrior的16位嵌入式集成开发环境。启动代码使用C语言写的,整个系统的功能性代码全部采用CPU12的汇编语言编写。 4.2.2 硬件控制涉及原理

本部分包括校准仪系统软件中所使用的所有关系等式: ■气体混合

等式:

Cblended = (Cinlet×Fgas)/(Fair╳1000+ Fgas) 在此:

Cblended = 混合气体浓度 (PPM或PPB) Cinlet = 输入口标气的浓度(PPM或PPB) Fair = 零气流量 (LPM) Fgas = 样气流量 (CCPM) ■臭氧浓度 等式:

O3=(106/(aL))×(ln(I0/I))=45.6844×ln(I0/I)

25

这里:

O3 = 臭氧浓度(PPM)

a = 在253.7nm时臭氧的吸收系数 =308.3atm-1cm-1在STP L = 光学室长度 =71cm

I = 检测光强(当吸收室含臭氧时) I0= 检测光强(当吸收室含零气时) ■温度和压力修正 等式:

O3corr = O3meas ×760/P×T/273 在此:

O3corr = 修正后的臭氧浓度 O3meas = 测量的臭氧浓度 P = 吸收室压力(mmHg) T = 吸收室温度(℃)

■温度传感器修正 等式:

T = 1/(1.117×10-3+2.362×10-4×ln(R)+8.125×10-8×ln(R)3) 在此:

R = 热敏电阻的阻值(Ω) = 10000/(2.5/V-1)(对于光度计的温度) R = 热敏电阻的阻值(Ω) = 4640/(7.0/V-1)(对于加热器的温度) V = 输入电压测量值(V) T = 温度(℃) ■压力传感器修正 等式:

P = (V/K-0.125)/8.0593×10-4

在此:

K = 校准传感器时所确定的常数 = V/(P×8.0593×10-4+0.125) V = 输入电压测量值(V) P = 压力值(mm Hg)

26

本文来源:https://www.bwwdw.com/article/und6.html

Top