发明内容
为实现以上目的,本发明提出了一种基于单片机的计算机监控系统,包括单片机、数码管,其中:
所述单片机通过RS232总线以调试模式连接CPU的调试接口,配置为实时获取CPU的状态信息,并将所述CPU的状态信息通过数码管实时显示;以及
所述单片机进一步配置为通过I2C总线获取CPU核心电压以及桥片电压的电压值,通过GPIO接口获取供电电压值,并对所述三种电压的电压值进行异常检测,响应于检测结果为异常执行异常控制程序。
在本发明的一些实施方式中,所述单片机进一步配置为:
通过调试接口获取CPU所执行的进程类别,判断所述进程的状态是否异常;
响应所述进程的状态出现异常,将根据预先设定的进程异常对照表中的异常码通过数码管显示。
在本发明的一些实施方式中,所述单片机进一步配置为:
根据电压异常的类型以预先设定的频率控制蜂鸣器发起警报。
在本发明的一些实施方式中,所述单片机进一步配置为:响应于特定时长内所述电压异常仍未消失,则控制所述计算机断电。
在本发明的一些实施方式中,所述单片机进一步配置为:
响应于检测到核心电压异常,控制蜂鸣器长鸣;
响应于检测到供电电压异常,控制蜂鸣器连续短鸣;
响应于检测到桥片电压异常,控制蜂鸣器长短鸣交替鸣响。
在本发明的一些实施方式中,所述单片机进一步配置为通过另一I2C总线获取温度传感器的数据。
在本发明的一些实施方式中,所述单片机进一步配置为:
通过GPIO端口控制所述数码管的状态;以及
通过PWM端口对风扇的转速进行控制。
在本发明的一些实施方式中,计算机监控系统还包括通过特定GPIO端口与所述单片机相连的供电模块,所述单片机进一步配置为通过所述特定GPIO端口的电位变化判断供电电压是否异常。
在本发明的一些实施方式中,所述供电模块配置用于监控所述供电电压的电压范围,响应于所述供电电压的电压值超出预定范围则拉低所连接的特定GPIO端口电压。
在本发明的一些实施方式中,所述供电模块进一步配置为响应于所述供电电压的电压值处于预定的电压范围,则拉高所述特定GPIO端口电压。
通过本发明提出的一种基于单片机的计算机监控系统,通过低功耗且低成本的单片机实现对计算机运行时CPU的运行状态与供电状态进行监控。具体通过调试接口对CPU的运行状态进行监控,对CPU执行过程中的异常,根据运行的进程判断其异常的类型,并通过预定的对应的异常代码通过数码管给予指示;此外对供电异常进行提醒,必要时可强制计算机关机以解决电压异常可能造成损坏的潜在风险。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
如图1所示,本发明提出了一种基于单片机的计算机监控系统,包括单片机1、数码管5,其中:
所述单片机1通过RS232总线以调试模式连接CPU 2的调试接口,配置为实时获取CPU 2的状态信息,并将所述CPU 2的状态信息通过数码管5实时显示;以及
所述单片机1进一步配置为通过I2C总线获取CPU 2核心电压以及桥片电压的电压值,通过GPIO接口获取供电电压值,并对所述三种电压的电压值进行异常检测,响应于检测结果为异常执行异常控制程序。
在本实施例中,所述单片机2采用STM32F103,STM32F103作为中低端32位ARM微控制器,其内核是Cortex-M3拥有多达2个I2C接口,一个RS232接口,并提供GPIO和PWM等接口供开发使用。因此,在本实施例中通过RS232连接与CPU的调试接口相连,通过调试接口,可实现对CPU 2所执行的进程进行监控。并通过数码管5进行显示CPU的运行状态,在CPU2正常执行时,数码管5所显示的代码为12表示计算机进入操作系统正在运行。
此外,单片机1还通过I2C总线与给CPU供电模块7相连,并从CPU供电模块获取CPU的核心电压;还通过将GPIO的几个特定引脚与计算机主板上的供电模块相连6,所述供电模块6用于监测主板上的输入电源的电压是否正常,并将是否异常的状态通过改变与单片机1上相连的对应的GPIO的电位来告知单片机1。单片机1通过实时检测对应GPIO引脚的电位变化来判断是否有输入的电压异常,若存在异常则执行对应的异常处理控制程序。
在本发明的一些实施方式中,所述单片机进一步配置为:
通过调试接口获取CPU所执行的进程类别,判断所述进程的状态是否异常;
响应所述进程的状态出现异常,将根据预先设定的进程异常对照表中的异常码通过数码管5显示。
在本实施例中,在单片机1通过RS232连接的CPU2的调试接口获取到CPU的执行进程的信息时,查找预选设定的进程标识表以获取CPU2当前执行的进程所对应的数字代码,例如:如果CPU开机运行正常进入到操作系统中,则按照预先设定的代码标识规则,在进程标识表中其对应的代码值为12,此时,单片机2便将12通过数码管5显示出来。12代表计算机正常执行进入操作系统中。具体进程所对应的代码标识如下表所示:
如上所述,单片机1通过CPU调试接口获取CPU运行时的状态信息,当CPU初始化上电启动时,数码管显示0;当CPU中运行的进程标识为检查HT总线时,数码管显示1;如上表所对应的数码管显示代码,在正常的开机过程中,0-11之间的数字将会在数码管快速交替出现,最后若正常运行数码管将长时间显示12。如果在进入系统引导进入操作系统前存在CPU执行异常,则数码管5将长时间显示对应的显示代码。使用人员可根据数码管5显示的代码,查找问题手册快速确定出现的问题并反馈给运维人员解决。
在本发明的一些实施例中,所述单片机进一步配置为:
根据电压异常的类型以预先设定的频率控制蜂鸣器发起警报。
在本发明的一些实施方式中,所述单片机进一步配置为:响应于特定时长内所述电压异常仍未消失,则控制所述计算机断电。
在本实施例中,单片机1对计算机的CPU核心电压、桥片电压以及供电电压进行监控,当上述任何一种电压发生异常时,单片机1都将通过蜂鸣器4以特定的频率发出警报,如果警报在长达30秒内,单片机1并未收到电压异常解除的信息,则为防止更大事故的发生,则控制计算机强制断电关机。
在本发明的一些实施例中,所述单片机进一步配置为:
响应于检测到核心电压异常,控制蜂鸣器长鸣;
响应于检测到供电电压异常,控制蜂鸣器连续短鸣;
响应于检测到桥片电压异常,控制蜂鸣器长短鸣交替鸣响。
在本实施例中,为区分电压异常的类型,更直观的提醒使用人员注意异常,对上述三种电压异常通过不同的蜂鸣方式加以区分,若单片机1通过I2C检测到CPU核心电压过高,则控制蜂鸣器长鸣,直到CPU电压回复到正常的范围;若单片机1检测到供电电压出现异常,则控制蜂鸣器连续短鸣,直到供电电压异常消失;若单片机1检测到桥片电压出现异常,则控制蜂鸣器长短鸣交替鸣响,直到桥片电压恢复正常。
在本发明的一些实施方式中,所述单片机进一步配置为:
通过另一I2C总线获取温度传感器3的数据。
在本实施例中,单片机2还用于通过另一I2C接口获取温度传感器3的数据,以实时监测计算机温度是否正常。
在本发明的一些实施方式中,所述单片机进一步配置为:
通过GPIO端口控制所述数码管5的状态;以及
通过PWM端口对风扇8的转速进行控制。
在本实施例中,单片机1通过GPIO接口与数码管5相连,并通过GPIO接口控制数码管的显示;还通过PWM端口对风扇的转速进行控制,可根据前述的温度传感器3的数据制定相应的风扇8的转速。
在本发明的一些实施方式中,计算机监控系统还包括供电模块6。所述单片机通过特定GPIO端口与供电模块相连,并进一步配置为通过所述特定GPIO端口的电位变化判断供电电压是否异常。
在本实施例中,为获取供电模块的电压,单片机1通过GPIO端口与供电模块相连,需要说明的是所述供电模块并非是一个,因为用于向计算机供电的电压并不是一种或一个,常见的有+5V、+3V以及3P3V等供电,所以通过单片机1的GPIO的多个端口与相应的供电模块相连,与常规的使用GPIO的方式不同的是,在本申请中是通过GPIO端口的电位变化作为信息,并非是与控制数码管5那样常见的使用方式。可有效降低使用GPIO传输数据的压力以及频繁的电位变化。
在本发明的一些实施方式中,所述供电模块配置用于监控所述供电电压的电压范围,响应于所述供电电压的电压值超出预定范围则拉低所连接的特定GPIO端口电压。
在本实施例中,若供电模块6检测到相应的供电电压超出正常工作的范围,过低或过高,则将与单片机1相连的对应的GPIO端口的电压拉低,并通过这一方式快速将供电异常的信息发送给单片机1,省去了使用GPIO正常数据发送的格式的处理流程,提高了计算机监控系统的响应速度。
在本发明的一些实施方式中,供电模块6进一步配置为响应于所述供电电压的电压值处于预定的电压范围,则拉高所述特定GPIO端口电压。
在本实施例中,若供电模块6检测到供电电压恢复正常,则同样通过与单片机1相连的对应的GPIO端口的电压拉低,实现将异常信号的取消作用。单片机1在接收带对应GPIO的电位变化后,便可将对应的异常状态取消。
通过本发明提出的一种基于单片机的计算机监控系统,通过低功耗且低成本的单片机实现对计算机运行时CPU的运行状态与供电状态进行监控。具体通过调试接口对CPU的运行状态进行监控,对CPU执行过程中的异常,根据运行的进程判断其异常的类型,并通过预定的对应的异常代码通过数码管给予指示;此外对供电异常进行提醒,必要时可强制计算机关机以解决电压异常可能造成损坏的潜在风险。