基于嵌入式实时操作系统μC/OS—II1的手持瓦斯检测仪的设计

描述

引言

近年来,随着微电子技术、自动控制技术、电力电子技术、通信技术和智能化技术的迅速发展,瓦斯检测技术得到大力研究和开发。为开发新一代微处理器控制的智能化瓦斯检测报警仪创造了条件。本次设计的瓦斯检测仪是采用了以ARM微处理器为核心的智能检测控制设备,它不仅采用20世纪90年代国际先进的单片机微处理技术,还具有下列特点:

①集瓦斯检测、时钟显示于一体;

② 实现了自动调零和校准;

③采用仪用放大器,可自动转换量程,提高了测量精度,测值报警准确;

④采用USB通信接口实现采集数据上传,具备通信功能;

⑤采用大容量FLASH作存储体,可存放上万检测数据;

⑥ 采用按键实现功能选择和数据输入,操作简单,便于使用;

⑦采用本安型电源,实现充电自控管理。

1 引入嵌入式实时操作系统μCIOS—II的意义

智能瓦斯检测设备集各种功能于一身,不仅要实现瓦斯浓度的数据采集、控制报警等基本功能,而且还要实时显示检测数据、随时接受键盘输入。除此之外,还要具有友好的人机界面以及上传数据等通信功能。如果采用传统的顺序结构编程思想,将很难保证数据采集的实时性要求,无法对各个对象的实时信息以足够快的速度处理并做出快速响应.

其程序设计的复杂性也将大大提高,不利于程序的后期维护和修改。而实时操作系统能对运行情况的最好和最坏等情况作出精确的估计。其实时性要比前后台系统要好得多,系统能及时响应外部异步事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

本次从实际情况出发,选择μC/OS—II作为实时操作系统,让它管理各个应用程序,达到优化系统资源的目的。

2 硬件设计

2.1 手持瓦斯检测仪的组成和工作原理

手持瓦斯检测仪的原理框图如图1所示。

操作系统

工作时,瓦斯浓度经检测单元转化为电信号,再经过运放单元的放大调理,然后送入CPU的模数转换模块;CPU根据A/D转换的结果进行逻辑分析判断,和预先设计的报警阈值进行比较,若超出阈值则进行声光报警。而后可通过键盘的操作实现检测地点的输入、检测数据的存储和系统参数的设置等功能。检测的浓度、检测时间、输入的地点、相应功能界面等数据参数通过LCD显示出来。各种数据通过键盘进行设定,并保存在FLASH中,随时可进行更改和查看。检测仪还可以通过USB通信协议和Pc机双向通信,实现历史数据的传输、浓度变化态势的分析等功能。电源单元为以上各个单元模块提供能量。

2.2 关键电路单元设计

2.2.1 检测单元

检测单元电路也就是传感器电路,由催化元件和电阻组成的桥路,实现浓度非电信号转化为电信号功能。其检测原理为:利用敏感元件(俗称黑白元件)对瓦斯的催化作用使瓦斯在元件表面上发生无焰燃烧,放出热量使元件温度上升,增加了敏感元件铂丝的电阻值,通过惠斯登电桥测量电路,可以测量其敏感元件电阻值变化量。

2.2.2 运放单元

运放单元由放大电路和量程转换电路组成,实现信号放大、调理和量程转换功能。如图2所示。

操作系统

2.2.3 键盘单元

本次设计中采用专用的键盘接口芯片ZLG7290。ZLG7290采用I2C串行接口,提供键盘中断信号,方便与处理:器连接,可采用多达64个按键,可检测每个按键的连击次数,具备键盘去抖处理、双键互锁处理、连击处理和功能键处理等功能。具体的连接电路图如图3所示。

操作系统

2.2.4 显示单元

显示单元是实现人机交互的一个重要手段,本次设计中采用液晶显示屏实现人机交互。本次设计使用的MG12864A点阵图形液晶模块的点像素为128×64点。黑色字,白色底,STN液晶屏,视角为6:00,内嵌控制器为ksO107/ks0108,外部显示存储器为32K字节。采用8位总线接口与微控制器连接,内部集成了负压DC—DC电路,使用负压DC—DC电路,使用单5 V电源。

2.2.5 存储单元

由于LPC2210微控制器没有片内程序存储和数据存储,根据系统的需要,必须设计存储系统。本次设计通过微控制器的外部总线接口来实现,采用SST公司的CMOS多功能FLASH器件SST39VF160,存储容量为2M字节(容量大小的计算具体详见软件部分),l6位数据宽度(即一个字为2个字节),工作电压为2.7—3.6 V。该芯片采用高性能的Super.

Flash技术(该技术提供了固定的擦除和编程时间)制造而成,与擦除/编程周期数无关。该芯片采用48脚TSOP封装,十分适合做手持设备的数据和程序积存器。

3 软件设计

检测仪的软件实际主要包括嵌入式实时操作系统内核设计、用户应用程序设计、通信程序3部分。

3.1 总体设计思想

软件系统引入嵌入式实时操作系统μC/OS—II,整个系统都在μC/OS—II的管理下运行。程序设计有别于传统的顺序结构的设计思想,程序虽然有主程序,但主程序并不完成某种特定的功能,而只是对一些软硬件、实时变量、全局变量以及操作系统进行初始化,并且建立一个任务,然后启动操作系统而已;最后系统就把CPμ控制权交给操作系统,永远不会返回主程序。通过操作系统调度,实时采集的外部CH4浓度转变成的电压电流信号,并对其进行计算、判断,输出控制信号或者报警,实现仪器的检测功能;而且操作系统实时跟踪键盘输入时间的中断,实现输入功能;实时跟踪外部USB(或UART0)通信事件中断,可保持和外部Pc机的通信。

3.2 实时操作系统核心的具体实现

本程序采用实时系统设计方法中的功能内聚和时间内聚方法,根据各个任务的重要性和实时性把应用程序分成9个不同优先级的任务。包括传感器启动、AD采样、数据计算、声光报警、数据存储、机器白检、键盘处理、LCD显示、数据通信、空闲任务等,优先级依次由高到低。任务越重要,实时性越强,其任务优先级就越高,相反就越低。

3.3 USB通信

USB总线主要用于USB设备与USB主机之间的数据通信,特别为USB设备与USB主机之间大量数据的传输提供了高速、可靠的传输协议。采用飞利普的PDIUSBD12,它是一款性价比很高的USB器件,完全符合USB1.1版规范。PDIUSBD12具有8bit的数据总线接口DATA0~DATA7,片选引脚CS—N以及读选通引脚RD.N和写选通引脚WR,N。由此可见,PIDUSBD12的硬件接口和外部存储器接口很相似,因此,可以当作一片外部RAM芯片来进行访问。对于工JPc2210微控制器,它的外部数据总线与地址总线是分开的。这时,PDIUSBD12的DATA0一DATA7可以直接与LPC2210的数据总线D0一D7直接相连就可以构成访问PDIUSBD12的数据总线了。

如图4所示。

操作系统

3.4 上位机软件设计及说明

所设计的上位机软件是瓦斯报警仪数据管理系统,通过该系统可以方便地将各种实时检测的数据存储在上位机的数据库中(主要数据包括“瓦斯浓度”、“检测地点”、“检测日期”及“检测时间”),上位机的程序设计是通过Visual C++6.0完成的。

该软件主要由数据通信模块、数据存储模块、数据查询模块、数据回显模块、数据打印模块等组成,各自主要完成的功能如下:

①数据采集模块是利用USB通讯完成,将下位机中的数据(BCD码的形式)读出,并保存到数据库中作为历史记录。

②数据存储模块是针对数据库的操作,当采集出下位机中的数据后通过对数据库一定的编程。将传上来的数据按即定的格式存储到数据库中。

③数据查询模块是当存储了一定的数据后。按所操作的需要进行查询,将符合条件的记录重新组合,并显示出来。

④ 数据回显将指定数据库中的信息以2种形式呈现出来。

一种是数据表格的形式;另一种是图表的形式,该图表要给人以直观的感觉,绘出的曲线应符合历史曲线的要求。

⑤ 数据打印模块是数据回显的后续工作,可以将希望分析的表格或图表打印出来,具体操作由操作人员定。

4 结语

随着微电子技术的发展,检测技术的提高,研发小型化、智能化、高性能的瓦斯检测设备成为当务之急。本设计对便携式瓦斯检测仪进行了研究和探讨,并已做出成型产品准备用于煤矿瓦斯检测。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分