掌桥专利:专业的专利平台
掌桥专利
首页

一种应用于振荡培养箱的操作系统

文献发布时间:2024-04-18 19:59:31


一种应用于振荡培养箱的操作系统

技术领域

本发明涉及操作系统技术领域,具体涉及一种应用于振荡培养箱的操作系统。

背景技术

操作系统是一种运行于裸机上的软件系统,它被用来管理整个计算机系统的硬件及上层软件系统。在现代生物、医药等研究工作中,经常会用到振荡培养箱,因此需要研发运行于其上的控制系统。但是传统的操作系统体积庞大臃肿,且对CPU、内存等硬件环境要求高,并不适合于振荡培养箱等基于单片机的小型硬件系统。

对于不同的仪器生产单位来说,通常需要持续地投入大量的人力、物力去开发相应的软件接口去处理各种传感器的读写问题,以及对外设等硬件的控制逻辑;有些情况下,还需要花费时间、精力去处理不同系统之间的兼容及协调问题。为了提高研发效率,有必要引入一种基于单片机的实时操作系统,它需要的内存很小,对CPU的要求不高,且可以提供类似于传统操作系统的用户接口以及应用程序接口。

发明内容

针对现有技术的不足,本发明提供了一种应用于振荡培养箱的操作系统,克服了现有技术的不足,通过把系统分为多个层级,使得各个模块之间的工作联系更独立,可以应用于更多的设备上。

为实现以上目的,本发明通过以下技术方案予以实现:

一种应用于振荡培养箱的操作系统,包括驱动管理模块、逻辑控制模块、分时系统、通信接口、错误处理系统和应用层;

所述驱动管理模块用于管理各个硬件设备,并提供程序接口给逻辑控制模块调用;

所述逻辑控制模块用于提供常用的控制逻辑,包括PID基础控制逻辑和电机控制逻辑,所述电机控制逻辑用于提供高效率电机控制算法,结合驱动管理模块的电机驱动程序,为应用层提供电机控制服务;所述PID基础控制逻辑用于为温度、湿度、二氧化碳提供基础控制算法,结合驱动管理模块的控制程序,为应用层提供温度、湿度、二氧化碳的数值的精准控制服务;

所述分时系统为基于单片机之内的定时器,通过中断来实现高精度周期控制,使得预定任务按固定周期被调度;

所述通信接口与外部系统相连,利用串口或RS-485接口,按照规定的格式和逻辑来收发数据包,从而可以与外部系统进行通信,进而控制外部系统,或者被外部系统所控制;

所述错误处理系统用于识别、记录系统错误,并上报给应用层,并根据预定策略对错误进行处理;

所述应用层用于处理理用户逻辑,通过API或通信接口,为用户提供控制方式,接收用户下发的指令,根据指令,调用相应的逻辑控制模块的API,以完成各个硬件设备的控制,执行预定的业务逻辑。

优选地,所述驱动管理模块管理各个硬件设备,包括初始化设备,读取传感器数值,对各个外设开关进行操作,对电机的控制端口进行读写;

其中,驱动管理模块对传感器的操作包括以下步骤:

S1:发送指令给传感器,告知传感器做好读取的准备;

S2:读取数据;

S3:对读到的原始数据进行处理,转化为实际的数据,并且实时存储到内存中;

所述驱动管理模块对各个外设开关的操作是通过结合外部电路,对单片机的GPIO端口进行写操作来实现,通过对应的GPIO管脚写入1/0,来进行开/关操作;

所述驱动管理模块对电机编码器的操作为读取实时数值,读取完成之后,驱动管理模块根据编码器的数值,计算出当前电机的物理角度,并且存储到内存中;

所述驱动管理模块对电机电流的控制逻辑为:结合外部电路,通过配置定时器,使用单片机硬件通道对相应管脚发送PWM脉冲,利用占空比的变化来模拟调节实际的电压和电流,使得实际输出的电压和电流强度的波形类似于正弦形式。

优选地,所述驱动管理模块提供程序接口给逻辑控制模块调用包括:通过访问前述存储在内存中的数据,提供读取传感器数值的函数;通过访问内存中已经存储的数据,提供读取电机物理角度的函数;把相关的GPIO端口的操作进行封装,提供对各个外设开关的开/关的函数;把配置电机所使用定时器的操作进行封装,提供配置电机所使用的定时器的时钟频率、初始脉宽的函数,以及配置PWM相关参数的函数。

优选地,所述PID基础控制逻辑的运行操作包括:每隔十毫秒调用回调函数读取实际数值,与期望的目标值进行比较,如果发现实际数值比期望数值大,即根据超出幅度来确定需要减小的幅度,并且调用对应的减小控制回调函数;如果实际数值比期望要小,则同样采取类似做法,计算调整幅度,调用对应的增大控制的回调函数;

所述电机控制逻辑的运行操作包括:以高频率调用驱动管理模块的函数读取电机编码器的数据,计算出实际转动到达的角度;根据实时的角度数值,计算出电机当前各相电流的期望值,并且调用驱动管理模块的设置电机定时器及PWM相关参数的函数,动态调整定时器的频率以及占空比数值,最终使得电流强度输出的波形类似于光滑的正弦波样式,使得可以控制电机流畅运转。

优选地,所述分时系统的实现依赖于定时器中断,具体实现过程包括以下步骤:系统在内存中维护一个任务列表,在系统中选用一个或多个定时器作为中断生成器,通过配置时钟周期来按照预定频率生成中断,用来为分时系统提供定时服务,并且在中断处理函数中,使用一个自增长的数字作为计数器,根据计数器的数值确定调用任务列表中的任务函数,从而实现分时服务。

优选地,所述通信接口的实现依赖于串口设备和通信协议,所述串口设备的数据收发使用单片机的UART接口来实现;所述通信协议通过收发固定格式的数据包以实现数据同步、命令传递;所述数据包包括:数据包目标地址,源地址,消息类型,消息ID,消息长度,消息体,校验码。

优选地,所述错误处理系统的具体实现过程包括以下步骤:在内存中使用全局变量来保存错误信息,不同的错误类型使用不同的标记位;如果错误事件发生,则对应标记位设置为1;如果错误消除,则对应标记位清零;在错误发生的同时,触发提前设置的错误处理事件,对错误进行处理。

优选地,所述应用层的具体实现过程包括以下步骤:调用API,通过串口或RS-485通信模块接收用户命令;调用逻辑控制模块的PID的API函数来启动PID控制逻辑,设置温度、湿度、二氧化碳的期望值;调用电机接口来设置电机转速、启动电机;同时根据用户配置,启动定时器,完成任务计划。

本发明提供了一种应用于振荡培养箱的操作系统。具备以下有益效果:通过模块化分层的设计,使得系统逻辑清晰,继而有利于提供团队协作的效率,并且通过把驱动管理模块与逻辑控制模块严格分离,使得模块之间的耦合度大大降低。对于非标准化产品来说,硬件模块的更换对系统造成的影响被降低很多,从而降低重复研发的成本。通过提供通用的设备控制接口,使得研发人员可以基于此系统利用不同的设备型号进行二次开发,从而大大提高研发效率。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对现有技术描述中所需要使用的附图作简单地介绍。

图1为发明的系统架构图;

图2为发明的驱动管理框图;

图3为本发明的逻辑控制框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述。

实施例

如图1-3所示,一种应用于振荡培养箱的操作系统,包括驱动管理模块1、逻辑控制模块2、分时系统3、通信接口4、错误处理系统5和应用层6;每个模块都对各自的功能进行封装,形成应用程序接口API。

驱动管理模块1是整个系统的最底层,用于管理各个硬件设备,根据控制板上的电路原理与硬件设备参数,与硬件设备进行交互,包括初始化设备,读取传感器数值,对各种外设开关进行操作,对电机的控制端口进行读写。另外还需要为逻辑控制模块2提供访问硬件设备的程序接口。例如,读取温度传感器的数值,使得逻辑控制模块可以根据实际温度,对加热、制冷模块进行动态控制,从而实现对温度的精准控制;

逻辑控制模块2用于提供常用的控制逻辑,包括PID基础控制逻辑和电机控制逻辑,PID基础控制逻辑用于为温度、湿度、二氧化碳提供基础控制算法,结合驱动管理模块1的传感器及加热、制冷、加湿、除湿、二氧化碳阀等设备控制程序,为应用层6提供温度、湿度、二氧化碳的数值的精准控制服务;电机控制逻辑用于提供高效率电机控制算法,结合驱动管理模块1的电机驱动程序,为应用层6提供电机控制服务;

分时系统3是基于单片机之内的定时器,通过中断来实现高精度周期控制,使得预定任务按固定周期被调度;利用分时系统,可以在配置较低的单片机上模拟出多任务的运行环境,使得系统可以同时处理多个业务逻辑;

通信接口4用于与外部系统通信,应用于集群环境,或者多核心控制系统。通信接口4规定了响应的通信协议,包括传输中使用的数据包的大小、格式,消息类型,数据逻辑顺序等。利用串口(例如RS-485接口)或基于TCP/IP的网络,按照规定的格式和逻辑来收发数据包,从而可以与外部系统进行通信,进而控制外部系统,或者被外部系统所控制;使得本系统可以更方便地嵌入更大的系统中,作为核心或次要部件与外部系统协调工作。

错误处理系统5用于识别、记录系统错误,并上报给应用层6,并根据预定策略对错误进行处理;错误处理系统需要在内存中维持记录错误的字段,并且提供API,用来记录、清除、处理各种错误。

应用层6用于处理理用户逻辑,通过API或通信接口,为用户提供控制方式,接收用户下发的指令,根据指令,并且根据指令调用相应的逻辑控制模块2的API,以完成电机、温度、湿度、二氧化碳等各个硬件设备的控制,执行预定的业务逻辑。

具体的,驱动管理模块1管理各个硬件设备,包括初始化设备,读取传感器数值,对各个外设开关进行操作,对电机的控制端口进行读写;上述各个硬件设备包括温度传感器,湿度传感器,二氧化碳传感器,照明灯,紫外灯,风扇,压缩机开关,电机电流驱动接口。

其中,驱动管理模块1对传感器的操作主要为读取实时数值。包括以下步骤:

S1:发送指令给传感器,告知传感器做好读取的准备;

S2:读取数据;

S3:对读到的原始数据进行处理,转化为实际的数据,并且实时存储到内存中;

驱动管理模块1对对照明灯、紫外灯、风扇、压缩机的开关操作是通过结合外部电路,对单片机的GPIO端口进行写操作来实现,通过对应的GPIO管脚写入1/0(亦即把对应管脚置为高电平/低电平),来进行开/关操作;

驱动管理模块1对电机编码器的操作主要为读取实时数值,根据编码器的不同,需要进行相关的操作逻辑。例如,对于霍尔传感器,可以直接从传感器读取数值;对于磁角度编码器,需要利用IIC硬件协议或模拟信号读取。读取完成之后,驱动管理模块1根据编码器的数值,计算出当前电机的物理角度,并且存储到内存中;

驱动管理模块1对电机电流的控制逻辑为:结合外部电路,通过配置定时器,使用单片机硬件通道向相应管脚发送PWM脉冲,利用占空比的变化来模拟调节实际的电压和电流,使得实际输出的电压/电流强度的波形类似于正弦形式。

驱动模块还需要为操作系统的逻辑控制模块2提供访问硬件设备的接口(API函数):

1)通过访问前述存储在内存中的数据,提供读取传感器数值的函数,包括读取温度传感器的数值,读取湿度传感器的数值,读取二氧化碳传感器的数值;2)通过访问内存中已经存储的数据,提供读取电机物理角度的函数;3)把相关的GPIO端口的操作进行封装,提供对照明灯开/关操作的函数,紫外灯开/关操作的函数,风扇开/关操作的函数,压缩机开/关操作的函数;4)把配置电机所使用定时器的操作进行封装,提供配置电机所使用的定时器的时钟频率、初始脉宽的函数,以及配置PWM相关参数的函数。

具体的,逻辑控制模块的功能为提供常用的控制逻辑及算法,主要包括PID基础控制逻辑和电机控制逻辑。

PID基础逻辑负责提供抽象接口。对于每一个抽象的PID业务,系统需要维护一个PID对象,其包括期望的目标值,增加控制的回调函数,减小控制的回调函数,读取实际数值的回调函数。

PID模块在实际运行中的操作包括:每隔十毫秒调用回调函数读取实际数值,与期望的目标值进行比较,如果发现实际数值比期望数值大,即根据超出幅度来确定需要减小的幅度,并且调用对应的减小控制回调函数。如果实际数值比期望要小,则同样采取类似做法,计算调整幅度,调用对应的增大控制的回调函数。

在操作系统运行过程中,需要维护多个PID抽象的对象,每一个PID对象应用于不同的业务,例如湿度控制PID,二氧化碳控制PID。对于不同的PID对象,需要利用驱动层的API函数,把读取传感器数值,增加、减小控制的功能封装不同的回调函数。通过这些回调函数,配合上述PID运行中的逻辑,可以完成每一种业务的PID调整逻辑。

对于电机控制逻辑,主要分为物理位置读取,计算各个电机驱动线的电流强度,占空比。在电机运行中,需要以很高的频率调用前文提到的驱动层的函数读取电机编码器的数据,计算出实际转动到达的角度。根据实时的角度数值,计算出电机当前各相电流的期望值,并且调用驱动层的设置电机定时器及PWM相关参数的函数,动态调整定时器的频率以及占空比数值,最终使得电流强度输出的波形类似于光滑的正弦波样式,使得可以控制电机流畅运转。

逻辑控制层需要提供API函数给其他模块调用,主要功能包括PID参数设置,PID回调函数设置,电机期望转速设置,电机最大、最小转速限制值的设置。另外,还需要有读取PID模块实时数值的函数,以及读取电机当前转速的函数,用来给应用层调用,以读取获得当前系统状态。

具体的,分时系统3为整个操作系统中的其他模块提供定时器和分时服务。分时系统3的实现依赖于定时器中断,具体实现过程包括以下步骤:系统在内存中维护一个任务列表,在系统中选用一个或多个定时器作为中断生成器,通过配置时钟周期来按照预定频率生成中断,用来为分时系统3提供定时服务,并且在中断处理函数中,使用一个自增长的数字作为计数器,根据计数器的数值确定调用任务列表中的任务函数,从而实现分时服务。分时系统为上层提供函数,其主要功能包括添加、删除任务,以及配置任务的优先级。

具体的,通信接口4的实现依赖于串口设备和通信协议,串口设备的数据收发使用单片机的UART接口来实现;通信协议需要根据振荡培养箱实际应用场景做定制。考虑到多设备的系统以及集群的拓扑结构,通过收发固定格式的数据包以实现数据同步、命令传递;其中数据包包括:数据包目标地址,源地址,消息类型,消息ID,消息长度,消息体,校验码。在系统的硬件环境中,一个RS485总线上往往会挂载多个设备,因此需要使用目标地址及源地址来区分设备。考虑在传输环境中的干扰因素,消息长度和校验码用来确定数据包的起止位,以及数据包的准确性。消息体是数据包的核心,其中可以存放要传递的数据,以及相关的命令参数。通信模块为上层提供的API主要是通信处理函数,包括:把原始数据打包封装成合法的数据包;把数据包解开,解析出其中各个字段及关键信息;收/发数据包。

具体的,错误处理系统5用来记录、处理系统中发生的各种错误。错误处理系统5的具体实现过程包括以下步骤:在内存中使用全局变量来保存错误信息,不同的错误类型使用不同的标记位;如果错误事件发生,则对应标记位设置为1;如果错误消除,则对应标记位清零;在错误发生的同时,触发提前设置的错误处理事件,对错误进行处理。错误处理系统5提供的API包括:添加/设置错误,读取当前错误,设置错误处理回调函数。

具体的,应用层6主要功能是完成用户业务。应用层6的具体实现过程包括以下步骤:调用API,通过串口或RS-485通信模块接收用户命令;调用逻辑控制模块2的PID的API函数来启动PID控制逻辑,设置温度、湿度、二氧化碳的期望值;调用电机接口来设置电机转速、启动电机;同时根据用户配置,启动定时器,完成任务计划。

整个系统通过模块化分层的设计,使得系统逻辑清晰,继而有利于提供团队协作的效率,并且通过把驱动管理模块1与逻辑控制模块2严格分离,使得模块之间的耦合度大大降低。对于非标准化产品来说,硬件模块的更换对系统造成的影响被降低很多,从而降低重复研发的成本。通过提供通用的设备控制接口,使得研发人员可以基于此系统利用不同的设备型号进行二次开发,从而大大提高研发效率。通过提供通用的PID基础控制逻辑算法、电机控制逻辑,使得研发人员可以专注于上层应用的开发,从而加快项目研发进度,节省资源。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 图像处理方法和装置、电子设备、存储介质、程序产品
  • 图像处理方法和装置、电子设备、存储介质、程序产品
  • 图像处理方法和装置、电子设备、存储介质、程序产品
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 路由数据处理方法、装置、电子设备及存储介质
  • 套餐产品的数据处理方法、装置、电子设备及存储介质
  • 服务套餐的处理方法、装置、电子设备及存储介质
技术分类

06120116519654