基于uCOS-Ⅱ的嵌入式报警器的设计分析
高红军;萧宝瑾
【摘 要】本文提出了一种嵌入式预警系统的软硬件体系结构,该系统采用ARM微处理器和实时操作系统uCOS-Ⅱ相结合.结合多任务实时操作系统的特性,对嵌入式实时操作系统uCOS-Ⅱ的时间特性进行了分析,简要概述了uCOS-Ⅱ操作系统在ARM处理器上的移植,大部分的uCOS-Ⅱ代码都是有C语言编写,可移植性较好.结果表明,基于这种源码公开、可移植、可占先的实时多任务操作系统,具有低成本、可预测、高性能的特点,具有很好的应用前景. 【期刊名称】《科技创新导报》 【年(卷),期】2010(000)009 【总页数】2页(P21-22)
【关键词】报警器;uCOS-Ⅱ;实时操作系统;ARM 【作 者】高红军;萧宝瑾
【作者单位】太原理工大学信息工程学院,太原,030024;太原理工大学信息工程学院,太原,030024 【正文语种】中 文 【中图分类】TN492
近年来,随着灾害天气的频繁发生,对灾害天气报警系统的研发设计提高成为了一个迫在眉睫的问题,现有的报警系统相对一些偏远落后地区来说实时性不够,甚至无法
对其有效预警,为适应灾害预警的需要,我们提出了一种基于uCOS-II的报警系统的设计,在32位ARM[1]处理器平台上嵌入uCOS-II[2]操作系统,实现灾害天气的预警系统。uCOS-II是专门为嵌入式系统设计的硬实时(Hard Real Time)多任务内核。它的多任务管理功能比较完善,实时性好,具有可裁剪内核,源码开放,能在各类CPU上进行移植。 1 uCOS-II操作系统
1.1 uCOS-II 任务以及任务状态之间的转换[3]
任务也称作线程,是一个简单的程序,该程序可认为CPU完全只属于该任务自己。每个任务都是整个应用的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和堆栈空间。当就绪任务的数量多于CPU数目时,他们就要争夺CPU资源,任务调度的功能就是按照一定的原则把 图1 uCOS-II的任务调度
CPU动态的分配给某个就绪任务。在大多数情况下,uCOS-II中断级的任务调度如图1[1]所示。
Tr为系统的中断等待时间,Tp为系统的抢占时间,Ts为系统的中断响应与查找的时间,Td为执行中断处理所用的时间,Tw为系统判断并查找处于就绪状态下优先级最高的任务和中断级任务切换的时间,Tc是系统的最长关中断时间。 1.2 uCOS-II操作系统的移植
uCOS-II代码充分考虑了可移植性,大部分代码使用C语言写的,所以uCOS-II的移植是比较容易的。这个过程是通过为OS_STK声明正确的C数据类型来完成的。S3C44B0X的堆栈数据类型为16位,所以将OS_STK声明为无符号整型数据结构类型,定义为:
2 基于uCOS-II的应用程序的设计
图2 系统的启动过程框图 2.1 启动代码
启动代码类似于PC机上的BIOS,通过启动代码完成对系统目标板上的主要部件初始化,以及对FLASH进行擦除和编程,包括:设置中断向量,初始化堆栈和寄存器,设置入口指针,初始化存储器系统,初始化程序所需的存储器空间。 2.2 主程序框架
本程序的设计是在开发平台ADS上完成,其主要程序如图2。
每一个uCOS-II应用至少要有一个任务,并且每个任务必须被写成无限循环的形式。 3 工作状态与数据更新发布 3.1 信息的接受和发布
系统的更新、调试任务主要用来进行模块测试使用,并且主要用于与PC机之间的通信。语音信号为PCM采样信号,将语音信号转换成16k/s的线型PCM进行播放,图3为短信息发布流程。 3.2 信息的更新
这个任务显示程序是否正常运行,被赋予了最高的优先级,有自己的寄存器和堆栈空间,
图3 短信息发布 图4 数据更新流
采用的数据文件有11字节的头字节和PCM语音数据组成,其中头字节有2字节的文件开头,1字节的命令字节,4字节的开始地址和4字节的文件组成,报警终端更新语音数据的流程如图4。 4 结语
本文介绍了UCOS-II的移植过程,通过在现场调试和运行充分证明,本系统能够及时的播报灾害天气信息,能够反映天气的实际情况,跟踪显示分析保存信息对解决故障
提供了快速有效的帮助,极大的降低了开发工作量,同时还缩短了安装和维护的时间。 参考文献
【相关文献】
[1]徐青菁,唐厚君.单片机嵌入式系统实现的远程控制系统[J].中国科学技术协会,2006(6),33:149-160.
[2]张根源.基于uCOS的电视信号远程实时监测系统嵌入式设计[M].北京:有线电视出版社,2009(7). [3]邵贝贝.uCOS-II源码公开的实时嵌入式操作系统[M].北京:北京航空航天大学出版社,2001. [4]周立功.ARM嵌入式系统软件开发实例[M].北京:北京航空航天大学出版社,2004. [5]马忠梅,徐英慧.AT91系列ARM核微控制器结构与开发[M].北京:高等教育出版社,2003.