本章是单片机软件实时操作系统的基础,有些基本概念已经在操作系统的课程里学到,但还需要结合单片机硬件来实际调试。
1.实时操作系统的概念
实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
(1)多任务系统概念 多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换和调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前/后台系统,只是后台任务有多个。多任务运行使CPU的利用率达到最高,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务系统,应用程序将更容易设计与维护。
(2)多任务系统的状态 一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属于该程序自己。实时应用程序的设计过程包括如何把问题分割成多个任务。每个任务都是整个应用的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间。
典型的是,每个任务都是一个无限的循环,都可能处在5种状态之一——休眠态、就绪态、运行态、挂起态(等待某一事件发生)及被中断态。
(3)多任务系统中的任务特性 任务就是一个具有独立功能的无限循环的程序段的一次运行活动。任务具有动态性、并发性、异步独立性的特点。
(4)实时操作系统的特性
1)高精度计时系统。
2)多级中断机制。
3)实时调度机制。
2.RTX51实时操作系统
RTX51是用于8051单片机的一种多任务实时操作系统(RTOS),它可以简化具有实时性要求的复杂软件的设计。RTX51有两个不同版本:RTX51 Full和RTX51 Tiny。
(1)RTX51实时操作系统的特点
1)中断:RTX51系统可以使用中断,其中断函数以并行方式工作。中断函数可以与RTX51内核通信,并可以将信号或者消息发送到RTX51的指定任务中。在RTX51 Full中,中断一般配置为一个任务。
2)信息传递:RTX51 Full支持任务之间的信息交换,可以使用isr_recv_message、isr_send_message、os_send_message和os_wait函数来实现。在RTX51系统中,信息是一个可以被存储器看作是数字或者指针的16位数值。RTX51 Full中还可以支持使用存储器库系统的变量信息。
3)CAN通信:RTX51 Full中集成了一个CAN总线通信模块RTX51/CAN。通过RTX51/CAN可以轻松地实现CAN总线的通信。RTX51 CAN作为一个任务来使用,可以通过CAN网络来实现信息的传递,其他的CAN终端可以配置为一般的C51程序,也可以是RTX51的实时操作系统。
4)BITBUS通信:RTX51 Full系统中集成了BITBUS主控制器和从控制器。BITBUS任务主要用于支持与Intel 8044之间的信息传递。
5)事件:在os_wait函数中,RTX51支持下列事件:
·Timeout(超时)
·Interval(间隔)
·Signal(信号)
·Message(消息)(www.xing528.com)
·Interrupt(中断)
·Semaphore(信号量)
(2)RTX51的系统配置 用户可以更改配置文件CONF_TNY.A51中的以下几个参数:
1)系统定时器中断所用的寄存器组。
2)系统定时器的时间间隔。
3)Round-Robin的超时(Timeout)值。
4)内部数据存储器的大小。
5)RTX51启动后的自由堆栈大小。
(3)RTX51的典型函数
1)发送信号函数isr_send_signal。
2)清除信号标志函数os_clear_signal。
3)删除任务函数os_delete_task。
4)当前任务号函数os_running_task_id。
5)发送信号函数os_send_signal。
6)等待函数os_wait。
7)等待函数os_wait1。
8)等待函数os_wait2。
9)启动任务函数os_create_task。
(4)RTX51的任务调度方法
1)RTX51的轮转式任务调度方法。
2)RTX51的事件任务调度方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。