[发明专利]一种多任务实时操作系统下开关量输入输出批量管理方法在审
申请号: | 202011103081.X | 申请日: | 2020-10-15 |
公开(公告)号: | CN112231082A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 王雨龙 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘二格 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 实时 操作系统 开关 输入输出 批量 管理 方法 | ||
本发明公开了一种多任务实时操作系统下开关量输入输出批量管理方法,解决实时操作系统下多开关量输入输出批量管理,采用多线程设置开关量处理请求,单线程进行处理的方法,任务与任务之间采用消息队列传递开关量处理信息。本发明处理多开关量输入输出使用结构体数组方式进行管理,在任务中进行批量处理,可以达到数千个开关量同时输出且没有任何相位差,开关量输入在任务中进行采取,任务和任务间采用消息队列传递开关量信息,保证了开关量采集的实时性。
技术领域
本发明属于航空航天系统数据通信技术领域,涉及一种多任务实时操作系统下开关量输入输出批量管理方法。
背景技术
开关量输入输出是非连续性信号的采集和输出,有高和低两种状态。在航空航天领域,继电器的控制,指示灯的控制,以及开关的控制使用开关量输出进行控制,同时继电器的状态、开关状态等需要开关量输入进行采集。
开关量输入输出通常采用实时操作系统进行管理,在不同的任务中对开关量输入输出进行实时处理。
发明内容
(一)发明目的
在处理多开关量输入输出的场景中,传统的处理方法是在不同的处理线程中单独分别对开关量输入输出进行处理,这种处理方法导致开关量管理混乱,尤其在时序性要求比较高的场合,此种管理方法时序性较差;在开关量输出需要相位一致的情况下,传统管理方法处理困难,容易导致错误。
(二)技术方案
为了解决上述技术问题,本发明提供一种多任务实时操作系统下开关量输入输出批量管理方法,包括以下步骤:
STEP1:定义开关量输出管理的结构体SwitchStru,结构体内容包括:开关量输出状态SwitchMode,这个量有三种不同的取值情况,分别为:0代表开关量输出低电平,1代表开关量输出高电平,2代表开关量输出脉冲信号。输出脉冲的频率SwitchPeri,代表脉冲的频率,这个值根据系统定义的一个tick时间确定,单位为毫秒。输出脉冲的计数值SwitchCnt,此计数值记录脉冲的相位信息。
STEP2:定义一个开关量输出的结构体数组SwitchSta,这个数组长度为1024,包含1024个数据,创建一个开关量输出管理任务SwitchTackle,任务优先级为100,堆栈空间为10000的任务。
STEP3:使用消息队列创建方法msgQCreate创建消息队列,在多任务系统中,在任务j中开关量i输出需要进行驱动的时候,使用消息队列发送方法msgQSend将开关量号位i以及结构体SwitchStru拼组成一帧数据发送到SwitchTackle任务中。
STEP4:在SwitchTackle任务中使用消息队列接收方法msgQReceive以非阻塞方式接收开关量的状态,将对应号位的状态存储到SwitchSta数组所对应位置中。
STEP5:从号位1到1024轮询进行处理,轮询判断SwitchMode的值,SwitchMode为0,则操作开关量输出为低,SwitchMode为1,则操作开关量输出为高,SwitchMode为2表示PWM输出。SwitchPeri为PWM输出的周期,SwitchTackle任务使用系统延时方法taskDelay()进行周期性调度,设置调度时间为Tms(T个tick),使用SwitchCnt进行周期性加一计数,当计数值等于SwitchCnt/T时,对开关量输出进行翻转。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011103081.X/2.html,转载请声明来源钻瓜专利网。