基于μc/OS-II的多传感器测控系统研究

2011-05-27 08:08:53来源: 互联网
     摘要:移植典型的实时嵌入式操作系统μc/OS-II到SPCE061高性能处理器平台,结合工程项目对于温度湿度氧浓度的要求,构建了实时嵌入式传感器测控系统。介绍了硬件电路的设计,研究了实时操作系统任务分配和移植技术。实践试验证明:温度湿度氧浓度三个参数测控范围和精度达到了设计目标,同时系统具有数据传输保存等功能,满足了工程要求。
关键词:多传感器;实时操作系统;嵌入式系统;移植;测控

1  引言

   随着嵌入式系统的广泛应用,原来单一传感器的嵌入式系统逐渐向嵌入式多传感器系统发展。由此提出了多传感器任务调度分配的问题。本文结合红薯保鲜储藏工程涉及到的温度湿度氧浓度等参数要求,采用高性能16位单片机SPCE061A作为控制芯片,移植可裁剪的多任务实时操作系统μc/OS-II管理多任务的处理,选用高精度温度传感器DS18B20、湿度传感器HIH3605、氧浓度传感器DW-02构建了一个高精度高性能高可靠性的多传感器嵌入式测控系统,各个被控参数可调范围宽,较好的满足了工程要求。系统的主要参数:工作温度:10~14℃±0.5℃;工作湿度:80~95%RH±5%;氧浓度:≮4.5%。同时,实现了温湿度数据的显示与保存;可输出温度、湿度、氧浓度等调节的控制信号,具有故障和报警状态提示等功能。

2  系统硬件设计

2.1 单片机系统设计

   系统硬件电路原理框图如图1所示,主要由SPCE061A单片机、温湿度传感器、氧浓度度传感器、LCD显示电路、键盘电路、RS232通信电路、时钟电路等组成。SPCE061A是一款基于µ'nSP内核的16位单片机。

图1 系统硬件电路原理框图

2.2 传感器电路设计

    温度检测电路选用Dalls公司生产的三线式数字温度传感器DS18B20。该器件只有3个引脚,不需要外部元件,一条数据线进行通信。该电路的检测温度范围设计为0~+50℃;精度为0.5℃;用9bit数字量来表示温度;每次将温度转换成数字量需200ms。在单总线工作方式下,允许一条信号线上挂接多个DS18B20,DS18B20都有唯一的ROM代码。在多点温度测控系统中,ROM代码是识别和操作DS18B20的基础;无论读取还是选择对某一个传感器进行操作,SPCE061A必须发送64位ROM代码。

    本系统用3块DS18B20来实现对环境温度的检测,保证在被测环境范围内,温度分布均匀,测量更加准确,使用时将DS18B20放置在被测环境的不同位置。获得温度信息时,先由SPCE061A的IOB15脚发送一个1ms的复位脉冲,以使DS18B20复位后将向SPCE061A 发送一个回应脉冲,SPCE061A接到回应脉冲后将发送读DS18B20序列号的读ROM命令,以分别读取三个DS18B20的序列号;然后,SPCE061A再发出定位命令以选择在线的DS1820并进行温度转换。当温度转换完成后,SPCE061A的IOB15脚会发送DS1820的存储命令,从而完成温度信息数据的转换和读取。

   2路湿度传感器采用Honeywell公司生产的HIH3605,它为热固性聚合物电容传感器,带集成信号处理电路,5 V恒压供电, 放大线形电压输出0~5VDC对应0~100%RH(相对湿度),精度为±3%RH。低功耗设计200μA驱动电流,宽工作温度范围-40℃~+85℃,稳定性好,低的温度飘移,抗化学腐蚀性能优良。由于HIH3605为大信号输出且线性度良好,因此,可省去复杂的信号放大及整形电路,只需经过CPU内部的A/D转换器将与湿度值成正比的电压值转换成16位数字量,和标准进行比对,然后决定是进行加湿还是通风(温度适宜的风)。

   2路氧浓度检测选用 DW-02型氧浓度传感器,该传感器是一种化学式的气体扩散型燃料电池,广泛应用在环保节能、航天等领域,用以小环境氧浓度监测。主要特点是体积小、响应快、线性好、温漂小等特点,稳定。主要技术指标: 响应时间≤30秒(满量程的90%) ;测量范围0~50% O2 ;温度系数>0.003% O2/℃ ;线性误差+0.2%~-0.1% O2 ;使用温度范围-20℃~+50℃ ;输出电流1.1mA+15% 。 本系统测定的含氧量不得低于4.5%。

    由于是冬季,当储藏室环境温度高于14℃或湿度大于95%RH、或氧浓度低于4.5%设定值时,不能直接将冷空气送入储藏室,必须将室外空气加热到12℃送入,否则,会造成红薯受冷变质。三个参数中,最主要的是温度值,然后是湿度。继电器电路的工作情况如表1所示。

表1 继电器控制电路工作情况

   

2.3 键盘、显示电路及通信接口设计

   系统键盘电路由3根线连接至SPCE061A的IOA0~IOA2组成,它们分别是功能键,增加键,减少键,用来实现温、湿度氧浓度的上、下限及控制时间的设置功能。测控仪采用HT1621驱动128段LCD显示器,用于显示现场的温、湿度值、O2浓度以及故障和报警状态。HT1621是一个128(32×4)段、内存映射、多功能、I2C接口的LCD驱动器。这里利用其两线串行模式与单片机接口,简化了与单片机的接口电路设计,并减少了硬件资源的占用。

   为了将实时采集的氧浓度、温湿度数值保存下来,SPCE061A通过IOB7/10 RS232总线将氧浓度温湿度值传输给上位PC机,以便于主计算机完成数据存储。

3  软件设计

3.1 系统任务分配

   为了充分发挥操作系统在任务调度、任务管理、任务通信、时间管理和内存管理等方面的优势,首先必须根据需要实现的功能,合理的划分任务和分配任务的优先级。按温湿度测控系统所要求实现的功能,将整个系统划分为并行存在的任务层和中断程序。μC/OS-II嵌入式实时操作系统中的任务状态转换如图2所示。

图2 μC/OS-II任务状态转换示意图

    多任务系统在运行时每个任务好像独立占用CPU一样,因此系统必须为每个任务开辟一块内存空间作为该任务的任务堆栈。该堆栈的作用是保存任务被切换前时CPU各寄存器的值以及系统堆栈的数据。在进行任务切换时需要完成工作的主要步骤如下:①将当前任务CPU所有的寄存器压栈;②将CPU系统堆栈的数据全部拷贝到当前任务的任务堆栈中;③ 得到下一个处于运行态优先级最高的任务的任务堆栈的指针;④ 恢复下一个任务的CPU寄存器的值;⑤ 恢复下一个任务的系统堆栈中的数据;⑥ 通过中断返回指令或函数返回指令,间接修改PC寄存器的值来进行任务切换。在为μC/OS-II编写任务切换代码时需要注意的是:μC/OS-II在每次发生中断后都会产生任务调度,但在中断结束后进行的任务切换,不能调用普通任务切换函数,这是因为在中断过程中往往伴随将CPU的状态寄存器压栈操作。

    任务切换方法:凌阳SPACE061A单片机有R1-R5 五个通用寄存器,还有1个SR(CPU状态寄存器),再加上PC,总共有7个CPU内部寄存器在任务切换时需要保存。μC/OS-II系统调用OSCtxSw( )来实现任务的切换。系统中并行存在的几个任务按优先级从高到低依次是:系统监视任务、数据采集任务、数据处理任务、数据输出任务、显示任务。在实际系统中,每个任务都是无限循环的,分别实现某一特定的功能,由μC/OS-II内核来进行调度。系统监视任务主要完成系统可靠性的监管;数据采集任务主要完成温度湿度氧浓度的检测和A/D转换;数据处理任务主要完成采集数据和设定数据的比较判定;数据输出任务主要完成数据输出给LCD、通过RS232传输给主机、以及输出控制信号给继电器电路,完成通风、加热、加湿等功能;显示任务主要完成温度湿度氧浓度参数的显示。系统主程序任务流程图如图3所示。

图3 系统主程序任务流程图

3.2 μc/OS-II的移植

   μC/OS-II是一种专门为微控制器设计的抢占式实时多任务操作系统,它以源代码的形式给出。其内核主要提供进程管理、时间管理、内存管理等服务。系统最多支持56个任务,每个任务均有一个独有的优先级。由于其内核为抢先式,所以总是处于运行态最高优先级的任务占用CPU。系统提供了丰富的API函数,实现进程之间的通信以及进程状态的转化。

   μC/OS-II的软件体系结构如图4所示。从图4中可以看到,如果要使用μC/OS-II, 必须为其编写OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三个文件。这三个文件是与芯片的硬件特性有关的,它们主要提供任务切换与系统时钟的功能。其它文件用C写成,它们为系统提供任务管理、任务之间通信、时间管理以及内存管理等功能。

图4  μC/OS-II 软件体系结构示意图

    μC/OS-II系统时钟:以凌阳SPCE061A单片机的TMB2时基信号作为系统时钟,每经历一个时钟节拍的时间将产生一次中断,在中断服务子程序中会调用OSTickISR()函数。

   移植工作的主要内容:用#define 设置一个常量值(OS_CPU.H);声明10个数据类型(OS_CPU.H); 用#define 声明3个宏(OS_CPU.H);用C语言编写6个简单的函数(OS_CPU_C.C);编写4个汇编语言函数(OS_CPU_A.ASM)。

4 结论

   μC/OS-II RTOS是当今嵌入式应用的热点之一,应用RTOS提高了测控系统系统的可靠性、实时性,降低了研发周期。本文基于μC/OS-II构建的测控系统应用在漯河农业局2000万公斤红薯储藏保鲜工程项目中,完全达到了设计的控制指标:温度10-14℃±0.5℃ ,湿度80—95%RH±2%,氧浓度≮4.5%。降低了红薯因为温度湿度氧浓度不正常造成的变质,完好率100%,与不使用本系统的仓储对比减少损耗25%,约500万公斤,直接经济效益500多万元,同时也取得了较好的社会效益。另外,该系统具有较好的可扩展性,很容易扩展到其它对温度、湿度或者氧浓度有一定要求的领域。经试验,温度测定范围可以达到-20-85℃±0.5℃;湿度20—98%RH±2%;氧浓度≮1.5%。所以,该测控系统具有较广的应用前景。

   本文创新点:采用高性能SPCE061A单片机和高精度温度传感器、湿度传感器和氧浓度传感器,通过移植μC/OS-II多任务实时操作系统,构建了高精度、高可靠性的多传感器嵌入式测控系统。实际工程应用表明,系统扩展性好、测控精度高、性能稳定。

关键字:传感器  测控  系统  系统研究

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0527/article_6158.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
传感器
测控
系统
系统研究

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved