技术领域
[0001] 本
发明涉及计算机系统,更具体地说,涉及一种计算机系统及其自定义响应方法。
背景技术
[0002] 在现代工业控制应用中,时常需要进行实时处理,例如实时监控中对异常的实时处理,特殊应用中对实时
请求的响应处理等。
[0003] 对于实时监控中的异常处理,目前主要通过BIOS(Basic Input Output System,
基本输入输出系统)进行侦测报警通知或是在系统下通过
软件轮询的方式来实现。由于BIOS主要用于
硬件初始化,在初始化完成后给系统提供硬件资源信息,因此BIOS只能提供简单的
温度和
电压之类的监测,功能有限,并且当出现异常后只能发出报警声音或是关机,没有办法进行其他的动作。而通过系统下软件轮询的方式移植性差、兼容性较差,例如在Windows系统环境下开发的功能在linux系统下就没有办法使用,在32位系统下实现的软件在64位系统下将无法正常运行,并且轮询方式需要占用系统资源,影响系统性能。
[0004] 对于特殊应用中的实时控制,例如有些工控机要求温度超过一定范围时报警并且通知应用程序进行相应的处理、有些情况下则要求有无线
信号了后通知系统下的软件进行处理,由于只有专用设备才能捕获这些特殊请求响应,并在专用设备驱动给出中断信号后才能进行相应的处理,因此在很多特殊的实时响应请求处理中需要专用的PCI(Peripheral Component Interconnect,外设部件互连标准)、PCIE(PCI—Express,总线和
接口标准)设备,例如专用的PCI/PCIE卡,而专用的PCI/PCIE卡需要定制,且定制
费用昂贵。或者通过定制工业控制主机来实现实时响应请求的处理,因此针对不同的需求,需要定制不同的工业控制主机,这样将导致生产周期和定制成本都较高。
发明内容
[0005] 针对
现有技术中在进行实时监控时,通过BIOS侦测进行报警通知存在功能有限、只能实现简单侦测并报警或是关机操作的
缺陷,以及在系统下通过软件轮询的方式来实现异常处理的方式占用系统资源、影响系统性能、并且还存在不同系统之间的移植性及兼容性差的问题,以及对于特殊应用中的实时控制,需要配置专用的PCI/PCIE设备或者定制专用的工业控制主机来实现实时响应请求处理,从而导致生产周期和定制成本高的缺陷,提供一种计算机系统及其自定义响应方法。
[0006] 本发明解决其技术问题采用的技术方案是:一种计算机系统,包括信号接口、虚拟设备、自定义高级配置和电源管理接口驱动模
块以及自定义应用程序驱动模块;所述信号接口与南桥芯片连接,用于接收中断源信号,并在接收到中断源信号时发出系统控制中断;所述虚拟设备作为中断源信号和计算机系统的应用程序之间的媒介;所述自定义高级配置和电源管理接口驱动模块用于建立所述虚拟设备与所述信号接口的关联,并提供用于连接所述自定义应用程序驱动模块的第一驱动程序接口;所述自定义应用程序驱动模块包括用于接入所述计算机系统的应用程序的第二驱动程序接口;当所述信号接口发出系统控制中断时,所述自定义高级配置和电源管理接口驱动模块通过所述第一驱动程序接口通知所述自定义应用程序驱动模块,以使所述自定义应用程序驱动模块调用接入所述第二驱动程序接口的应用程序执行相应的功能操作。
[0007] 优选地,所述计算机系统的基本输入输出系统菜单中包括触发方式及其对应的有效信号的选项,触发方式包括电平触发和边沿触发,电平触发对应的有效信号为高电平或者低电平,边沿触发对应的有效信号为上升沿或者下降沿。
[0008] 优选地,所述计算机系统还包括与所述信号接口相对应的系统控制中断使能寄存器、触发方式寄存器以及有效信号寄存器,所述系统控制中断使能寄存器用于存储系统控制中断使能标志位,所述触发方式寄存器用于存储触发方式,所述有效信号寄存器用于存储触发方式对应的有效信号。
[0009] 提供一种计算机系统的自定义响应方法,所述计算机系统包括与南桥芯片连接、用于接收中断源信号并在接收到中断源信号时发出系统控制中断的信号接口,虚拟设备,自定义高级配置和电源管理接口驱动模块,以及自定义应用程序驱动模块;所述自定义高级配置和电源管理接口驱动模块用于建立所述虚拟设备与所述信号接口的关联,并提供用于连接所述自定义应用程序驱动模块的第一驱动程序接口;所述自定义应用程序驱动模块包括用于接入所述计算机系统的应用程序的第二驱动程序接口;所述自定义响应方法包括以下步骤:
[0010] S1、当所述信号接口接收到中断源信号时发出系统控制中断,以触发所述自定义高级配置和电源管理接口驱动模块;
[0011] S2、所述自定义高级配置和电源管理接口驱动模块通过所述第一驱动程序接口通知所述自定义应用程序驱动模块;
[0012] S3、所述自定义应用程序驱动模块调用接入所述第二驱动程序接口的应用程序执行相应的功能操作。
[0013] 优选地,步骤S2包括以下子步骤:
[0014] S21、所述自定义高级配置和电源管理接口驱动模块判断所述信号接口接收到的中断源信号是否为预设的触发信号;
[0015] S22、若中断源信号为预设的触发信号,所述自定义高级配置和电源管理接口驱动模块通过所述第一驱动程序接口通知所述自定义应用程序驱动模块。
[0016] 优选地,本发明的自定义响应方法还包括以下步骤:
[0017] S0、基本输入输出系统设置与所述信号接口相对应的系统控制中断使能寄存器、触发方式寄存器以及有效信号寄存器,所述系统控制中断使能寄存器用于存储系统控制中断使能标志位,所述触发方式寄存器用于存储触发方式,所述有效信号寄存器用于存储触发方式对应的有效信号。
[0018] 优选地,子步骤S21包括以下次级子步骤:
[0019] S211、所述自定义高级配置和电源管理接口驱动模块判断所述信号接口接收到的中断源信号是否与所述触发方式寄存器中存储的触发方式以及所述有效信号寄存器中存储的与该触发方式相对应的有效信号匹配。
[0020] 优选地,本发明的自定义响应方法还包括以下步骤;
[0021] S4、在所述计算机系统的基本输入输出系统菜单中提供触发方式及其对应的有效信号的选项,触发方式包括电平触发和边沿触发,电平触发对应的有效信号为高电平或者低电平,边沿触发对应的有效信号为上升沿或者下降沿。
[0022] 本发明的计算机系统及其自定义响应方法具有以下有益效果:通过标准的硬件接口——信号接口接入中断源信号,通过自定义ACPI(Advanced Configuration and Power Management Interface,高级配置和电源管理接口)驱动模块为BIOS创建的虚拟设备提供自定义ACPI驱动以使虚拟设备关联到信号接口接收的中断源信号,并通过自定义ACPI驱动模块为系统下的自定义应用程序驱动模块提供驱动程序接口,再通过系统下的自定义应用程序驱动模块为系统下的应用程序提供驱动程序接口,使得系统下的应用程序间接的与信号接口关联,从而使得当信号接口接收到与预设的触发信号匹配的中断源信号时,调用相应的应用程序执行对应的功能操作,整个响应过程与
操作系统无关,移植性好,克服了兼容性问题,同时采用的中断控制方式不会占用系统资源,不会增加系统负担,并且,无需专用的
扩展卡设备,减少工业控制主机的成本,减少工业控制主机的定制,缩短工业控制主机的开发周期,使工业控制主机应用更加广泛。
附图说明
[0023] 图1为本发明的计算机系统第一
实施例的逻辑
框图;
[0024] 图2为本发明的计算机系统的自定义响应方法第一实施例的
流程图;
[0025] 图3为本发明的计算机系统的自定义响应方法第二实施例的流程图。
具体实施方式
[0026] 以下结合附图和实施例对本发明做进一步的解释说明。
[0027] 图1为本发明的计算机系统100第一实施例的逻辑框图,如图1所示,以经典x86架构计算机系统为例,所述计算机系统100包括软件部分以及位于
主板上的硬件部分,其中软件部分包括BIOS120以及应用程序,当计算机开机自检时,用户可以通过按下特定的功能按键(例如DELETE键)进入BIOS菜单,对计算机的
基础设置参数进行
修改。硬件部分包括中央处理单元(CPU)、北桥芯片、系统
存储器、南桥芯片、存储装置、高级可编程中断
控制器(Advanced Programmable Interrupt Controller,APIC)和显示装置等,CPU分别与北桥芯片和APIC连接,北桥芯片分别与显示装置、系统存储器和南桥芯片连接,南桥芯片分别与存储装置和APIC连接。北桥芯片用于提供CPU和系统存储器、南桥芯片和显示装置之间的通信链路。系统存储器可以被计算机系统100用以存储应用数据、配置数据和类似数据。南桥芯片用于提供与I/O装置的通信链路。
[0028] 在本实施例中,计算机系统100还包括信号接口110、虚拟设备121、自定义高级配置和电源管理接口(ACPI)驱动模块122、以及自定义应用程序驱动模块130。
[0029] 其中,信号接口110与南桥芯片连接,用于接收中断源信号,并在接收到中断源信号时发出系统控制中断(SCI)。信号接口110可以选择南桥芯片中能够发出SCI的Pin脚来实现,南桥芯片上有多个这样的Pin脚,选择其中一个或者多个预留给实际应用作为中断源输入。随着
半导体技术的发展,传统意义上的CPU与北桥芯片已经集成为一颗芯片,传统的南桥芯片也已被PCH(平台管理控制中心)所替代。因此,本发明实施例中所述信号接口110还可以与PCH连接,用于接收中断源信号,并在接收到中断源信号时发出系统控制中断(SCI)。信号接口110可以选择PCH中能够发出SCI的Pin脚来实现,PCH上有多个这样的Pin脚,选择其中一个或者多个预留给实际应用作为中断源输入。例如,实际应用为“温度范围超标监测”,当温度超过一定范围后温度监测芯片的一个引脚会拉低(输出低电平),将温度超标后会拉低的芯片引脚与信号接口110连接,这样当温度超标后,信号接口110将接收到中断源信号(此时为低电平)。例如,实际应用为“无线
信号处理”时,把无线信号的接收器和信号接口110连接,这样当有无线
信号传输过来时信号接口110将接收到中断源信号(此时为上升沿)。
[0030] 在本实施例中,计算机系统100的BIOS120主要完成以下三方面的工作:
[0031] 1、设置信号接口110
[0032] BIOS120设置一组与信号接口110对应的相关寄存器,相关寄存器包括系统控制中断使能(SCI_Enable)寄存器、触发方式寄存器以及有效信号寄存器。其中,SCI_Enable寄存器用于存储SCI使能标志位,SCI使能标志位需要被置为使能,例如置为1。触发方式寄存器用于存储触发方式,触发方式为边沿触发或者是电平触发。有效信号寄存器用于存储触发方式对应的有效信号,电平触发对应的有效信号为高电平或者低电平,边沿触发对应的有效信号为上升沿或者下降沿。并且在BIOS菜单中提供触发方式及其对应的有效信号的选项,用户可以根据实际应用选择触发方式及对应的有效信号,例如选择电平触发,高电平有效。当选择南桥芯片中能够发出SCI的Pin脚来实现信号接口110时,SCI_Enable寄存器、触发方式寄存器和有效信号寄存器为南桥芯片内的寄存器。
[0033] 2、创建虚拟设备121
[0034] BIOS120通过ACPI
源语言(ASL code)创建虚拟设备121,虚拟设备121是一个中间
桥梁,作为中断源信号与计算机系统100的应用程序之间的媒介。
[0035] 3、提供自定义ACPI驱动模块122
[0036] 自定义ACPI驱动模块122用于将虚拟设备121与信号接口110关联(也可以说是将虚拟设备121与中断源信号关联),并提供用于连接自定义应用程序驱动模块130的第一驱动程序接口1221。虚拟设备121与信号接口110关联通过以下方式实现:判断接收到的中断源信号是否与触发方式寄存器中存储的触发方式以及有效信号寄存器存储的与该触发方式对应的有效信号相符,即识别接收到的中断源信号是否为预设的触发信号。例如,该关联可以通过ASLcode中的函数来实现。当信号接口110接收到中断源信号并发出SCI后,通过APIC向CPU
申请中断,CPU接收到中断请求后将调用自定义ACPI驱动模块122。当接收到的中断源信号为预设的触发信号时,自定义ACPI驱动模块122通过第一驱动程序接口1221通知自定义应用程序驱动模块130。
[0037] 系统应用下的自定义应用程序驱动模块130通过第一驱动程序接口1221关联到自定义ACPI驱动模块122,同时给系统应用层的应用程序提供第二驱动程序接口131。当自定义ACPI驱动模块122通过第一驱动程序接口1221通知自定义应用程序驱动模块130时,自定义应用程序驱动模块130将通过第二驱动程序接口131调用接入该接口的应用程序执行相应的功能操作。在本实施例中,由于提供了自定义应用程序驱动模块130,该驱动模块可以将不同系统的驱动程序进行打包,从而通过驱动的方式来关联应用程序,与系统引导没有任何关系,因此能够实现不同系统下的兼容,移植性及兼容性好。
[0038] 实例1“温度范围超标监测”:当温度超过一定范围后温度监测芯片的一个脚会拉低,把温度超标会拉低的芯片脚与信号接口110相连,这样当温度超标后,通过自定义ACPI驱动模块122和自定义应用程序驱动模块130就可以通知到应用层的应用程序。
[0039] 实例2“无线信号处理”:把无线信号的接收器和信号接口110相连,这样当有无线信号传输过来的时候,通过自定义ACPI驱动模块122和自定义应用程序驱动模块130传递到应用层的应用程序。由于本实施例中的计算机系统100在进行响应时不会占用系统资源,不会增加系统负担,因此能够及时响应这种毫秒级别的处理,而采用其他方式处理则很容易造成无线信号的丢失。
[0040] 本实施例的计算机系统100,其硬件提供一个标准的可输入中断源信号的信号接口110,BIOS120创建虚拟设备121,并通过自定义ACPI驱动模块122为该虚拟设备121提供自定义ACPI驱动,自定义ACPI驱动使虚拟设备121关联到信号接口110接收的中断源信号,同时,自定义ACPI驱动模块122提供与系统下的自定义应用程序驱动模块130的驱动程序接口(第一驱动程序接口1221),再通过系统下的自定义应用程序驱动模块130为系统下的应用程序提供驱动程序接口(第二驱动程序接口131),使得系统下的应用程序间接地与信号接口110(或者说是信号接口110接收的中断源信号)关联。从而使得响应过程与操作系统无关,移植性好,克服了兼容性问题,同时采用的中断控制方式不会占用系统资源,不会增加系统负担。用户在使用过程中无需专用的扩展卡设备,采用标准的设计控制方案可以减少工业控制主机的成本,减少工业控制主机的定制,缩短工业控制主机的开发周期,使工业控制主机应用更加广泛,例如可以广泛应用于实时控制场所,而不同的实际应用只需要开发其相应的应用程序即可。
[0041] 图2为本发明的计算机系统100的自定义响应方法第一实施例的流程图,如图2所示,在本实施例中,自定义响应方法包括以下几个步骤:
[0042] S1、当信号接口110接收到中断源信号时发出SCI,以触发自定义ACPI驱动模块122;
[0043] S2、自定义ACPI驱动模块122通过第一驱动程序接口1221通知自定义应用程序驱动模块130;
[0044] S3、自定义应用程序驱动模块130调用接入第二驱动程序接口131的应用程序执行相应的功能操作。
[0045] 在本实施例的步骤S1中,信号接口110可以是南桥芯片上能够发出系统控制中断的引脚。当信号接口110接收到中断源信号后发出SCI,使APIC向CPU申请中断,当CPU接收到中断请求后将调用自定义ACPI驱动模块122初始化时注册的SCI处理函数,在SCI处理函数中根据GPE enable和GPE status的状态来调用ASL code中预先定义的Method(Lxx)/Method(Exx)函数,从而触发自定义ACPI驱动模块122。
[0046] 在本实施例中,步骤S2包括以下子步骤:S21、自定义ACPI驱动模块122判断信号接口110接收到的中断源信号是否为预设的触发信号;S22、若中断源信号为预设的触发信号,自定义ACPI驱动模块122通过第一驱动程序接口1221通知自定义应用程序驱动模块130。在步骤S3中,当自定义应用程序驱动模块130接收到通知后,调用接入第二驱动程序接口131的应用程序执行相应的功能操作。
[0047] 在本发明的计算机系统100的自定义响应方法第一实施例中,通过标准的硬件接口——信号接口110接入中断源信号,通过自定义ACPI驱动模块122为BIOS120创建的虚拟设备121提供自定义ACPI驱动以使虚拟设备121关联到信号接口110接收的中断源信号,并且,通过自定义ACPI驱动模块122为系统下的自定义应用程序驱动模块130提供了驱动程序接口(第一驱动程序接口1221),再通过系统下的自定义应用程序驱动模块130为系统下的应用程序提供驱动程序接口(第二驱动程序接口131),使得系统下的应用程序间接地与信号接口110(或者说是信号接口110接收的中断源信号)关联,从而使得当信号接口110接收到与预设的触发信号匹配的中断源信号时,调用相应的应用程序执行对应的功能操作。整个响应过程与操作系统无关,移植性好,克服了兼容性问题,同时采用的中断控制方式不会占用系统资源,不会增加系统负担。无需专用的扩展卡设备,减少工业控制主机的成本,减少工业控制主机的定制,缩短工业控制主机的开发周期,使工业控制主机应用更加广泛,例如可以广泛应用于实时控制场所,而不同的实际应用只需要开发其相应的应用程序即可。
[0048] 图3为本发明的计算机系统100的自定义响应方法第二实施例的流程图,如图3所示,在本实施例中,自定义响应方法包括以下几个步骤:
[0049] S0、BIOS120设置与信号接口110相对应的SCI_Enable寄存器、触发方式寄存器以及有效信号寄存器,SCI_Enable寄存器用于存储SCI使能标志位,触发方式寄存器用于存储触发方式,有效信号寄存器用于存储触发方式对应的有效信号;
[0050] S4、在计算机系统100的BIOS菜单中提供触发方式及其对应的有效信号的选项,触发方式包括电平触发和边沿触发,电平触发对应的有效信号为高电平或者低电平,边沿触发对应的有效信号为上升沿或者下降沿;
[0051] S1、当信号接口110接收到中断源信号时发出SCI,以触发自定义ACPI驱动模块122;
[0052] S2、自定义ACPI驱动模块122通过第一驱动程序接口1221通知自定义应用程序驱动模块130;
[0053] S3、自定义应用程序驱动模块130调用接入第二驱动程序接口131的应用程序执行相应的功能操作。
[0054] 本实施例与响应方法第一实施例的区别在于,本实施例响应方法还包括步骤S0和步骤S4,在步骤S0中,BIOS120设置一组与信号接口110对应的相关寄存器,相关寄存器包括SCI_Enable寄存器、触发方式寄存器以及有效信号寄存器。其中,SCI_Enable寄存器用于存储SCI使能标志位,SCI使能标志位需要被置为使能,例如置为1。触发方式寄存器用于存储触发方式,触发方式为边沿触发或者是电平触发。有效信号寄存器用于存储触发方式对应的有效信号,电平触发对应的有效信号为高电平或者低电平,边沿触发对应的有效信号为上升沿或者下降沿。在步骤S4中,在BIOS菜单中提供触发方式及其对应的有效信号的选项,用户可以根据实际应用选择触发方式及对应的有效信号,例如选择电平触发,高电平有效。
[0055] 在本实施例中,步骤S2具体包括:S211、自定义ACPI驱动模块122判断信号接口110接收到的中断源信号是否与触发方式寄存器中存储的触发方式以及有效信号寄存器中存储的与该触发方式相对应的有效信号匹配;S22、若匹配则判断中断源信号为预设的触发信号,自定义ACPI驱动模块122通过第一驱动程序接口1221通知自定义应用程序驱动模块130,若不匹配则判断中断源信号不是预设的触发信号,不做响应。
[0056] 在本发明的计算机系统的自定义响应方法第二实施例中,用户可以根据实际应用的需要,通过BIOS菜单选择触发方式及对应的有效信号,因此,对于不同的实际应用只需要开发其相应的应用程序即可,整个响应过程与操作系统无关,移植性好,克服了兼容性问题,同时采用的中断控制方式不会占用系统资源,不会增加系统负担。并且,无需专用的扩展卡设备,减少工业控制主机的成本,减少工业控制主机的定制,缩短工业控制主机的开发周期,使工业控制主机应用更加广泛。
[0057] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
权利要求范围之内。