基于μC/OS-II的无线调度策略分析与实现
引言
在工业自动化中,设备信息的接收发送基本都是通过有线方式(串口,网口等)来进行传递,随着无线通信技术的发展,信息通过无线方式传递应用逐渐广泛,特别是在有线布线困难或条件恶劣的特殊工业现场。本文介绍了基于无线技术的通信平台,引入嵌入式实时操作系统μC/OS-II来实现对多个设备的无线调度。
1 无线调度平台
无线调度平台信息接收发送是基于ZIGBEE无线通信技术,ZIGBEE具有较强的网络构建功能,支持星型,树型,网状拓扑结构。图1所示为基于星型拓扑结构的无线调度平台系统,调度系统包括一个调度设备和多个节点,调度设备负责微网的调度和数据包的转发,该设备在系统中充当主设备;节点连接工业设备,在系统中充当从设备,在调度设备的调度下发送信息。基于ZIGBEE技术的星型网络必须具备唯一主设备,从设备数量不超过253个,设备号(节点号)可从1 至254, 0和255做特殊用途。网络中所有设备必须设置为相同的网络号,目的是使所有设备处于同一网段,同时还要求每个设备号在该网段中必须是唯一的。
图1:无线调度平台系统图
2 无线调度策略
2.1调度机制
星型网络的无线调度平台使用令牌机制,获取到令牌的设备才可以发送数据包。令牌调度机制中最关键的是对令牌的处理,在具体实现中由主设备(调度设备)产生并轮询发送。主从设备的分工是通过设备声明报文来区分,主设备获取从设备的设备号和其他设备信息进行星型网络的组建,在网络中充当主设备;从设备获取主设备的设备号和网络号,加入网络,并在网络中充当调度对象,同时可以接收主设备发送的令牌,并在有信息需要转发时,将该信息发往主设备。
图2所示为无线调度策略图,调度周期为时间间隔Δt,设备将令牌轮流交给每个从设备(可以按设备号大小排序),从设备如果有数据包要发送,则返回一个正响应,并发送所有数据包,然后将该令牌交还主设备,表明数据包发送完毕;如果没有数据包发送,则返回负响应,主设备保持该令牌。当令牌丢失时,根据调度周期设置一个超时,超过时间主设备重新生成一个令牌继续发送给下一个节点号的从设备。
图2 无线调度策略图
2.2嵌入式实时操作系统调度管理
为完成调度机制的灵活实现,提高系统调度实时性,这里采用嵌入式操作系统对系统进行管理。μC/OS-II是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统,其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。它适用于小型控制系统,具有执行效率高、占有空间小、实时性能优良和扩展性强等特点,最小内核可以编译至2K左右。
μC/OS-II实时内核采用占先式调度策略,不支持时间片轮调度法,核心是始终运行就绪条件下的优先级最高的任务。在具体实现中就可以根据这一特点将无线调度系统划分为多个任务,每一个任务赋予一个明确的并且与其他任务不同的优先级,根据各个任务的优先级,动态地切换各个任务,从而保证了对实时性的要求。如果希望某个任务的优先级根据条件的变化而发生改变,则可以通过调用改变任务优先级的函数来实现。
3 调度任务划分及设计
3.1多任务划分
任务和中断的划分主要根据调度平台设备完成的功能来划分,要求每个任务职责清晰,任务间的信息交换和同步互斥应该简洁明了,任务优先级定义明确。
无线调度平台设备任务可划分为四个任务:设备声明任务,信息分发任务,信息接收任务,令牌轮循任务。设备声明任务主要完成设备身份认证,设备在网络中声明是主设备还是从设备,如果是主设备则进行调度平台星型网络的组建,从设备则直接加入新组建的网络。信息分发任务作用是将当前网络状态、设备状态和数据信息发送网络中指定设备。信息接收任务是依靠串口中断来触发的,作用是接收网络中的数据信息和主设备发送的或从设备返回的令牌。令牌轮循任务主要是针对主设备,当调度网络组建完成,主设备根据网络中节点信息(单独开辟存储区存储的节点号)进行令牌信息分发,一般情况是根据节点号从大到小,得到令牌的节点才是当前网络中的活动节点。对于从设备,令牌轮循任务仅完成令牌返回功能。
3.2多任务优先级裁决
在多任务系统的设计中优先级的裁决至关重要,如果优先级设定有误,难以保证调度策略的正确实施,严重影响调度精确性。基于μC/OS-II操作系统的任务优先级设计遵循以下原则:(1)紧急任务优先,(2)完成得快的任务优先,(3)优先级不能动态变化,(4)不要出现多个同一优先级的任务。
基于以上四点原则,分析无线调度系统任务,安排任务优先级示意图如图
- 详解μC/OS-II如何检测任务堆栈实际使用情况(11-27)
- μC/OS-II 移植笔记 1(FreeScale 68HCS12 核单片机)(11-20)
- μC/OS-II 移植笔记 2(FreeScale 68HCS12 核单片机)(11-20)
- 嵌入式实时操作系统 μC/OS-II 在S12单片机上的移(09-12)
- 基于μCOS-II的USB主机系统设计(12-27)
- 基于μC/OS-II的VG2以太网和USB接口设计(11-08)