基于μc/OS-II的多传感器测控系统研究
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的电力参数监测仪设计(02-23)
- ADμC834在测量中的应用(04-08)
- 基于ARM和μC/OS-Ⅱ的在线磷酸根离子监测仪设计(11-19)
- 基于STM32的嵌入式语音识别模块设计实现(02-24)
- 如何将RTOS添加到您的Zynq SoC设计中(04-29)
- 采用ARM控制器的制动性能测试仪设计(07-24)