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

时间:2014-11-27来源:网络

  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多任务实时操作系统,构建了高精度、高可靠性的多传感器嵌入式测控系统。实际工程应用表明,系统扩展性好、测控精度高、性能稳定。

1 2

关键词: μc/OS-II DS18B20 SPCE061A

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版