基于实时操作系统RTX51的多任务处理设备设计

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:yujing4953
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:采用嵌入式单片机设计的多任务处理设备在工业控制领域应用十分广泛。本文介绍了一种基于实时操作系统RTX51的多任务处理设备的通用设计方法,特别是适用于RTX51操作系统的多任务规划和任务队列管理方法,进一步提升了设备核心性能。本文介绍的方法稍加适应性设计即可适于多种应用。
  关键词:单片机;多任务;RTX51;任务队列
  中图分类号:TP391文献标识码:A文章编号:1007-9599 (2010) 09-0000-02
  The Multitask Processing Equipment Design Based on Real-time Operating System (RTOS) RTX51
  Liu Rui
  (North China Institute of Computing Technology,Beijing100083,China)
  Abstract:The embedded and multitask processing equipments are widely used in the industrial control field.This thesis presents a implementation of design that is based on multitask RTOS RTX51 equipments.Especially it is a management system which adopts multitask programming and task queue in cooperating with RTX51 RTOS. It further improves the core capabilities of the equipment.This implementation can be used in various ways once making some small adjustments.
  Keywords:SCM;Multitask;RTX51;Task queue
  一、引言
  基于嵌入式单片机系统的多任务处理设备在工业控制领域应用十分广泛,如现场数据采集、现场控制等等,在很多应用中需要并行执行多个任务,同时又要求设备在满足需求的基础上尽可能的经济耐用,采用MCS51内核系列单片机和能在其上运行的实时多任务操作系统RTX51实现该类设备是一个很好的解决方案。RTX51是美国Keil公司开发的一种小型的、应用于MCS51内核系列单片机的实时多任务操作系统,RTX51有完全(Full)和最小(Tiny)两种模式。Tiny模式短小精炼,完全集成在Keil C51编译器中,在不需要任何外部RAM的条件下,很容易地运行在8051系统上。比起其它小型操作系统来讲,RTX51 Tiny具有运行速度快、对硬件要求不高、使用方便灵活等优点,越来越广泛地应用到单片机的软件开发中。本文介绍的基于RTX51的多任务处理设备,是基于RTX51 Tiny操作系统,采用多任务规划和任务队列的方法,增强设备总体处理能力,这种设计方法丰富了RTX51 Tiny的功能,并且稍加适应性设计即可适用于多种应用。
  二、多任务处理设备
  多任务处理设备通过现场总线实现数据采集,采集到的数据经过单片机计算处理、存储,并通过外部总线上报,同时单片机还可以对采集到的数据进行计算判断,并按照预设算法驱动控制输出。数据采集现场总线可根据具体需求连接RS232、RS422、GPIO、SPI、CAN、I2C等,数据类型可以是各种总线连接的各类传感器数据,如烟雾传感器、红外对射检测装置、红外扰动检测等开关量传感器,下文简称单体传感器;温度、湿度、位移等简单数据量传感器,称为简单传感器;物品在位检测传感器等组合数据传感器,称为组合传感器。
  多任务处理设备的数据采集、计算、存储、上报、控制输出等功能是并行工作的,如果采用传统的串行工作方式很难实现,因而采用基于RTX51操作系统,多任务规划和任务队列的方法,实现多任务处理设备的设计。
  设备对硬件平台的要求不高,51系列单片机都适用,现场总线和上报总线形式可根据具体需求设计,硬件部分本文就不作详细介绍了,下面重点介绍设备软件设计。
  三、软件设计
  (一)多任务设计
  软件设计要根据设备功能进行任务划分,设计信号处理和通信任务进程,包括系统资源镜像表访问维护进程、任务需求循环链队列维护进程、系统分时任务激发时钟维护进程、传感器维护进程、外部通信链路维护进程、现场通信总线通信链路维护进程。各个任务进程及与任务之间的通信相关进程关系如图1所示。
  下面具体介绍每个进程的功能:
  1.系统资源镜像表访问维护进程。
  资源状态镜像表为每个传感器定义状态镜像,设定同各个检测传感器进行通信的时间间隔,并将其在设备内资源状态镜像表存储的状态信息进行更新维护。
  系统资源镜像表访问维护进程是其它进程访问系统资源镜像表的统一接口。其它进程可以以统一或相近似的方式访问系统资源镜像表的内容;其中,按照各个传感器更新周期,发起更新需求的是传感器数据状态更新需求维护子进程,该子进程提供传感器数据状态更新需求,并将此更新需求推入任务队列中,以异步信号方式启动其它进程。
  2.任务需求循环链队列维护进程。
  任务需求循环链队列是逻辑上首尾相接的数据队列,各个进程将任务需求推入队列,维护进程负责任务需求处理,通过RTX51的任务消息触发相关进程。此队列长度以单片机能在设定周期内异步处理的通信访问任务最大处理能力来确定。在设定周期内未能完成全部推入的任务,队列头将被新的任务需求覆盖。
  3.系统分时任务激发时钟维护进程。
  系统分时任务激发时钟维护进程是由系统时钟(默认为TIMER0)作为时间基准(默认0.05s),通过维护各个进程的轮询周期时钟来提供其周期唤醒信号的进程。此外,还为各进程的延时等待提供时间基准。
  4.传感器维护进程。
  传感器维护进程的功能是周期更新检测传感器数据和状态,按照要求定时上汇检测传感器数据和状态,执行远程访问命令(调试、配置、检查、测试)。不同类型的传感器数据更新周期、数据计算方法、状态判断方法不同。
  5.外部通信链路维护进程。
  外部通信链路维护进程是设备对上进行数据交换和配置通信的唯一通信接口。实现报文上传下送、收发信号维护等功能,从而使相关进程从收发控制中解脱出来。为确保与上端通信连接,确定的时间间隔启动本子进程。
  通过远程总线自动登录和登录状态维护,从RS232端口上向上以约定身份登录,定期检查登录状态,并在登录超时或错误退出后自动重建连接。
  6.现场通信总线通信链路维护进程。
  现场通信总线通信链路维护进程是设备同通过现场通信总线链路联接的各类型传感器达成通信的服务管理程序。自动发起同下联各传感器链路联接、传感器发现、注册、注销和状态维护,并将链路联接状况向相关进程报告。
  通过现场总线对现场传感器进行参数配置、按照设定的时间间隔同各个检测传感器进行通信,采集数据、并对其工作状况进行监视。确定现场数据关联逻辑和算法,可在现场对各类检测传感装置和输出驱动进行有简单逻辑关系的连锁逻辑设置,实现控制功能。
  (二)任务队列数据结构
  任务需求循环链队列维护进程通过RTX51的任务消息触发相关进程,由于RTX51 Tiny操作系统短小精炼,任务调度仅支持单数据位消息机制,无法传递更多的参数,但是多任务处理设备的各个任务之间需要传递的参数信息比较多,采用任务队列和任务邮箱的方法,可以很方便的实现参数传递。
  以设备实际功能为例,说明任务队列的工作方式。例如,更新单体传感器定时到,需求维护子进程将一个任务需求推入任务队列,并同时通过RTX51 Tiny发送一个系统消息给单体传感器维护进程;简单传感器维护进程收到系统消息后启动,并到任务队列中取出任务,打开任务邮箱,根据任务要求,更新单体传感器数据,并将更新资源镜像表的任务需求推入任务队列,并同时通过RTX51 Tiny发送一个系统消息给资源镜像表访问维护进程;资源镜像表访问维护进程收到系统消息后,到任务队列中取出任务,打开任务邮箱,将要更新的传感器数据写入资源镜像表。
  任务队列是内存中的逻辑上首尾相接的数据队列。待执行的任务在任务队列中排队,单片机按照RTX51操作系统调度处理,处理完成的任务移除队列。任务队列数据结构定义如下:
  struct Task_Loop_Queue {
  unsigned int Queue_Head;
  unsigned int Queue_Tail;
  unsigned int Queue_Size;
  struct Task_Queue_Member Member
  [_Max_Task_Member ];
  };
  每个任务需求由任务ID、任务状态、访问类型、配属任务邮箱四段构成。任务状态表示任务未处理、处理中和处理结束;访问类型用来区分需要同一进程处理的不同类型的操作;任务邮箱是具体的任务需求。其数据结构如下:
  struct Task_Queue_Member { unsigned char Task_ID;
  unsigned char Task_State;
  unsigned char Access_Type;
  union Task_MailBox * ptMailBox;
  /*任务会话邮箱指针*/
  };
  任务邮箱的定义概括了任务的各类信息和参数,每个任务利用任务邮箱交换信息。任务邮箱基本数据结构如下:
  union Task_MailBox {
  unsigned int Srouce_Task_ID;
   /* 信件发送进程ID */
  unsigned int Destination_Task_ID;
   /* 信件接收进程ID */
  unsigned char Length;
   /* 邮箱内容实际长度 */
  unsigned char Type;
   /* 邮箱消息参数类型 */ union Dailogue_Contents Dailogue;
   /* 邮箱消息参数 */
  };
  其中Dailogue_Contents消息参数用来传递各个任务之间需要交互的数据,根据传递参数的特点定义,由邮箱消息参数类型(Type)进行区别。例如前面例子中,简单传感器维护进程需要资源镜像表访问维护进程更新数据,那么简单传感器维护进程,将需要更新的简单传感器数据作为消息参数,传递给资源镜像表访问维护进程。消息参数可为简单传感器数据定义适合的数据结构。
  四、结语
  本文在实时操作系统RTX51基础上,按照多任务处理设备较为通用的功能需求,实现了任务规划以及管理任务执行、传递任务参数的任务队列,能够在简单、经济的硬件平台上实现相对丰富而强大的功能。本文介绍的方法稍加适应性设计即可适于多种应用。
  参考文献:
  [1]刘明路,王亮生,李世煜.基于RTX51的单片机软件设计[J].单片机与嵌入式系统应用,2005,3
  [2]周程.RTX51 Tiny在核数据采集系统中的应用[J].核电子学与探测技术,2008,5,599-601
  [3]刘光德,林莘,王群.基于RTX51嵌入式实时操作系统的智能称重仪表的研究[J].科技应用,2004,3,7-9
其他文献
目的探讨短串联重复序列(STR)多态性分析在鉴别妊娠早期葡萄胎(HM)和水肿性流产(HA)中的临床应用价值。方法收集2015年9月至2016年11月于北京妇产医院计划生育科行高危流产手
针对现有多媒体辅助教学系统兼容性差、负载能力弱、耗时长等问题,提出并设计基于概念网络的物理多媒体辅助教学系统。以逻辑层为核心构建物理多媒体辅助教学系统架构,分别设计理论知识模块、实验模块和学生练习模块。基于概念网络,将物理教学系统中大量的规则依附于概念上,形成概念网络知识体系,完成理论知识体系设计,使用图像和动画展示方式设计实验模块,基于理论知识和实验模块对学生知识建模,对比学生知识与理论知识,使
针对目前傅立叶变换轮廓术(FTP)测量范围的公式仅适用于投影呈一维变化的光栅条纹的情况,对FTP的测量范围进行了更深入的讨论,给出了适用于投影呈二维变化的光栅条纹的普适的
数学思想是初中数学教学当中非常重要的一个部分,对于学生数学素养的提升是很有帮助的,近年来,随着新课程改革的不断深入,我国的传统教学模式有了较大程度的改变,对教学思想
研讨式教学法作为一种新型教学方法,在国内外越来越多地被大学课程教学加以采用。研讨式教学法较之传统教学法更好地发挥了学生的主体性作用,针对研讨式教学的特色以及管理类
高职院校教师核心竞争力在培育过程中,会受到诸多环境因素的影响,这些环境因素之间相互联系、相互作用、形成合力,共同决定和影响高职院校教师核心竞争力的形成发展。
受到不同传感器信号融合度与传感器分布位置的影响,机器人整机在自动控制过程中存在多传感器信号响应反馈不同步的现象。通过对机器人结构运动力学模型的建立与分析,完成对不
目前的文创产品受大众欢迎程度较低,针对这一问题,基于用户角色特征对文创产品设计进行优化。首先优化了文创产品特征,应用向量空间模型的方法对文创产品特征设计进行优化,构
针对目前电动车及电瓶易失窃的问题,以单片机为核心,结合声光报警电路、GSM通信模块、位移传感器和语音播报模块等外围电路,设计实现了一款新型的电动车防盗报警系统。与传统
摘要:在分析安徽省高职院校整体现状的基础上,利用数据包络分析方法考察安徽省高职院校办学效率,实证结果表明安徽省高职院校普遍存在办学效率低下的情况。最后,针对实证结果,为安徽省高职院校的长远发展提供了具体建议。  关键词:高职院校;数据包络分析;发展建议  中图分类号:G4文献标志码:A文章编号:1673-291X(2010)06-0245-04    一、高职的含义和对高职院校评价的意义  高等职