[发明专利]一种基于linux平台的连续周期数据采样方法及系统有效
申请号: | 202010476424.0 | 申请日: | 2020-05-29 |
公开(公告)号: | CN111694678B | 公开(公告)日: | 2023-08-25 |
发明(设计)人: | 丁玲;钱许胜;姚济壮;秦明辉 | 申请(专利权)人: | 科大智能电气技术有限公司;科大智能科技股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 合肥天明专利事务所(普通合伙) 34115 | 代理人: | 闫客 |
地址: | 230088 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 linux 平台 连续 周期 数据 采样 方法 系统 | ||
本发明公开了一种基于linux平台的连续周期数据采样方法及系统,属于数据采样技术领域,包括:由用户程序设定采样周期;守护进程从redis数据库读取参数,将参数转发至第二PRU模块;第二PRU模块将周期值发送至第一PRU模块;第一PRU模块采用汇编编写,将周期转换成指令消耗数,可精确控制采样周期,并将采集数据发送至第二PRU模块;第二PRU模块记录一定数量的数据并编号发送至linux层;由于linux是非实时系统,由于采样数据周期确定,那么帧周期确定,守护进程根据数据帧编号,对获取的系统时间戳进行修正,并协同数据帧发布至redis数据库,供用户读取。本发明能够解决linux平台下获取采样数据周期不固定的问题。
技术领域
本发明涉及数据采样技术领域,特别涉及一种基于linux平台的连续周期数据采样方法及系统。
背景技术
linux是非实时操作系统,虽然支持RT调度策略,但是并非是硬实时系统,linux平台下进行数据采样,在连续采样要求比较高的应用场景下,一旦linux多任务会造成系统负载增大或阻塞,固定周期数据采样就难以保证。
发明内容
本发明的目的在于克服上述背景技术中的不足,实现linux系统的连续周期数据采样。
为实现以上目的,本发明采用了一种基于linux平台的连续周期数据采样方法,包括:
利用CPU中设置的第一PRU模块和第二PRU模块实现ADC模块的连续采样,包括:
第二PRU模块获取来自linux层的采样周期值并将采样周期值转发至第一PRU模块;
第一PRU模块将采样周期值转换成指令消耗参数,按照指令消耗参数控制ADC模块连续采样数据,并将采样数据转发至第二PRU模块;
第二PRU模块将采样数据转发至linux层供用户读取。
进一步地,所述第二PRU模块具体用于:
a1)初始化所述CPU与所述linux层之间的rpmsg通道;
a2)使能与rpmsg通道和第一PRU模块的相关中断;
a3)等待来自所述linux层发送的采样周期值,并将采样周期值转发至第一PRU模块;
a4)判断是否产生来自第一PRU模块的中断,若是执行步骤a5),若否执行步骤a6);
a5)读取第一PRU模块转发的采样数据并记录单帧传送的采样个数,编号此帧数据,发送至所述linux层;
a6)判断是否产生所述linux层发送的rpmsg通道中断,若是执行步骤a3),若否执行步骤a4).
进一步地,所述第一PRU模块具体用于:
b1)上电启动后,第一PRU模块通过内部总线对所述ADC模块进行初始化;
b2)初始化完成后,使能指令计数器;
b3)读取指令计数器值;
b4)读取所述第二PRU模块发送的采样周期值,并计算总消耗指令数;
b5)ADC模块进行数据采样;
b6)产生中断信号通知所述第二PRU模块获取采样数据;
b7)再次读取指令计数器,计算执行的单次采样及发送消耗指令数;
b8)将总共消耗指令数与单次采样及发送消耗指令数比较,将剩余指令数消耗掉,并执行步骤b3)。
进一步地,所述linux层获取所述第二PRU模块发送的采样数据后,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于科大智能电气技术有限公司;科大智能科技股份有限公司,未经科大智能电气技术有限公司;科大智能科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010476424.0/2.html,转载请声明来源钻瓜专利网。