[发明专利]一种多任务实时操作系统下开关量输入输出批量管理方法在审
申请号: | 202011103081.X | 申请日: | 2020-10-15 |
公开(公告)号: | CN112231082A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 王雨龙 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘二格 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 实时 操作系统 开关 输入输出 批量 管理 方法 | ||
1.一种多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,包括以下步骤:
STEP1:定义开关量输出管理的结构体SwitchStru;
STEP2:定义一个开关量输出的结构体数组SwitchSta,创建一个开关量输出管理任务SwitchTackle;
STEP3:使用消息队列创建方法msgQCreate创建消息队列;
STEP4:在SwitchTackle任务中使用消息队列接收方法msgQReceive以非阻塞方式接收开关量的状态,将对应号位的状态存储到SwitchSta数组所对应位置中;
STEP5:从号位1到1024轮询进行处理开关量输出管理的结构体SwitchStru;
STEP6:创建开关量输出任务SwitchGet,使用信号量等待获取方法semTake进行阻塞,阻塞函数设置超时时间Tms,每一次循环等待超时后进行采样,建立存储开关量输入状态的临时数组变量tempVal;使用寄存器寻址方式直接读取寄存器的值,存储到临时数组变量tempVal中;
STEP7:在SwitchGet任务中将采集到的数据通过msgQSend函数发送到其他需要使用这个变量的任务中,其他任务使用采集到的开关量数据进行处理。
2.如权利要求1所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP1中,结构体SwitchStru的内容包括:开关量输出状态SwitchMode,这个量有三种不同的取值情况,分别为:0代表开关量输出低电平,1代表开关量输出高电平,2代表开关量输出脉冲信号;输出脉冲的频率SwitchPeri,代表脉冲的频率;输出脉冲的计数值SwitchCnt,此计数值记录脉冲的相位信息。
3.如权利要求2所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP2中,结构体数组SwitchSta长度为1024,包含1024个数据。
4.如权利要求3所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP2中,开关量输出管理任务SwitchTackle的优先级为100,堆栈空间为10000的任务。
5.如权利要求4所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP3中,在多任务系统中,在任务j中开关量i输出需要进行驱动的时候,使用消息队列发送方法msgQSend将开关量号位i以及结构体SwitchStru拼组成一帧数据发送到SwitchTackle任务中。
6.如权利要求5所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP5中,轮询处理时,轮询判断SwitchMode的值,SwitchMode为0,则操作开关量输出为低,SwitchMode为1,则操作开关量输出为高,SwitchMode为2表示PWM输出;SwitchPeri为PWM输出的周期,SwitchTackle任务使用系统延时方法taskDelay()进行周期性调度,设置调度时间为Tms,使用SwitchCnt进行周期性加一计数,当计数值等于SwitchCnt/T时,对开关量输出进行翻转。
7.如权利要求6所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP6中,开关量输出任务SwitchGet的优先级设置为100。
8.如权利要求7所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP6中,临时数组变量tempVal共有128个字节型变量,每一个对应8个开关量。
9.如权利要求8所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP6中,使用寄存器寻址方式直接读取寄存器的值,存储到临时变量tempVal中。
10.如权利要求9所述的多任务实时操作系统下开关量输入输出批量管理方法,其特征在于,所述步骤STEP6中,对每个变量的值连续读三次,如果三次的值一样,则这个值为有效值IOReadValue,如果最新采的值和前一次值不相同,则从最新值开始重新计算三次。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011103081.X/1.html,转载请声明来源钻瓜专利网。