具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
参阅图1,其为本发明实施例提供的远程监控系统100的示意图。如图1所示,远程监控系统100包括:云端服务器60、一个或多个(图中仅示出一个)机架控制器10、多个定位模块20。除了定位模块20外,机架控制器10还可以与其他设备,例如电力分配单元(PowerDistributingUnit,PDU)50、门禁设备(图未示)以及其他智能设备相连。
机架控制器10分别通过网络与云端服务器60相连,可将与云端服务器60进行通讯,传输各种数据。而云端服务器60用于存储与处理监控数据,根据客户端的请求返回监控结果。
机架控制器10与定位模块20以及其他各种模块之间通过8芯线缆连接,同时提供供电与通信功能。
在一个实施例中,8芯线缆的线序定义如下:
P1:电源+5V
P2:接地-
P3:保留
P4:RS485A+
P5:RS485B-
P6:保留
P7:UnitEnable(地址线)
P8:DataEnable(数据控制)
可以理解的是,8芯线缆的线序定义并不受上述限制,本领域普通技术人员可以根据具体的需要进行调整。
参阅图1,每个定位模块20还包括上端通信接口201与下端通信接口202,对于每个20定位模块,若其具有上游定位模块20,则其上端通信接口201与其上游定位模块20的下端通信接口202连接,若其具有下游定位模块20,则其下端通信接口202与所述下游定位模块20的上端通信接口201连接。通过这种方式,所有的定位模块20被串联在一起,而位于队首的定位模块20可直接与机架控制器10相连接。定位模块20之间也可以采用如上述的8芯线缆进行连接,在8芯线缆的接口上可以实现不同的通信接口,例如RS232串行通信接口。
每个定位模块20向其上游定位模块20请求分配模块序号,还根据其下游定位模块20的请求给其下游定位模块20分配模块序号。
具体地,参阅图2,分配模块序号的流程包括以下步骤:
步骤S31,定位模块20启动其下端通信接口202进行侦听(服务端模式),并启动其上端通信接口201进行通信连接(客户端模式)。
步骤S32,若上端通信接口201通信连接成功后发送其身份标识给其上游定位模块20。其上游定位模块接收到身份标识后会进行身份验证,身份验证通过后根据自身的模块序号计算新的模块序号,然后将计算得到的模块序号发送给定位模块20。
步骤S33,若下端通信接口202接收到其下游定位模块20发送的身份标识,则定位模块20对接收到的身份标识进行验证,验证通过后根据自身的模块序号计算新的模块序号,然后将计算得到的模块序号发送给其下游定位模块。
由于位于队首的定位模块20不具有上游定位模块,因此,其模块序号保持为默认值(例如0)。计算新的模块序号最简单的方式就是使模块序号+1,但可以理解的是,序号的规则并不受限制,也可是+2,+3或者任意值。
若对每个定位模块20均执行上述过程,则每个定位模块20会自动为其下游定位模块分配模块序号。当其中某个定位模块20被移除后,模块序号又会被重新分配,从而可以保证模块序号与实际的物理连接关系一一对应。
当在机架上安装定位模块20时,只要使定位模块20的连接顺序与某种顺序保持对应(例如从上到下、从下到上、从左到右、或者从右到右),则定位模块20的序号就准确反应了该顺序。如此,只要定位模块20在上报的数据内包含自身的模块序号,则机架控制器10就可以按照模块序号为序对数据进行处理,非常适用于对数据索引顺序有要求的数据采集场合。
此外,定位模块20的上端通信接口201与下端通信接口202的作用并不限于自动分配模块序号,还可以用于传输数据。例如,定位模块20将采集的数据加上其自身的模块序号后上报至其上游定位模块20。同时,定位模块20也接收其下游定位模块20上报的数据,直接转发至其上游定位模块20。当定位模块20不具有上游定位模块时,可将数据发送给机架控制器10。通过这种方式,并不是所有的定位模块20均需要直接与机架控制器10相连,从而可以增加机架控制器10所能接入的定位模块20的数量。
由于定位模块20之间建立的是全双工通信通道,所以上游定位模块20不需要轮询下游定位模块20的数据,下游定位模块20采集数据后与上一次上报的数据比较数据变化(ChangeOfValue,COV)是否超过设定的阈值,如果COV小于阈值则可以忽略数据,大于或等于阈值时则主动将数据推送给其上游定位模块20或者机架控制器10。采用这种方式可以最优化定位模块20的数据传输性能。
可以理解的是,定位模块20采集的数据并不限于向其上游定位模块20上报,还可以直接上报给机架控制器10,此时需要在所有的定位模块20与机架控制器10之间实现通信连接。
在一个实施方式中,定位模块20通过上述的8芯线缆与机架控制器10相连。基于8芯线缆中的引脚P4与P5,在机架控制器10与定位模块20之间实现一个串行总线(例如RS485)通信系统,其中,机架控制器10为主机,而定位模块20为从机。串行总线具有通信距离长和多从机支持的优点。但是串行总线中的从机要求具有唯一的地址。
在本实施例中,从机的地址可通过地址线(引脚P7)进行分配,参阅图3,其具体过程如下:
步骤S11,主机启动后初始化多个I/O端口为输入模式。
I/O端口的数量依赖于从机的数量,与从机的数量一一对应。本实施例中,从机数量为6个,则主机可初始化I/O端口D4~D9为输入模式。缺省时,主机地直线端口输入模式为低电平(当然也可以定义为高电平)。
现在的CPU都具有大量的I/O端口,每条地址线只占用主机和从机各一个I/O端口,同时地址线只需要传输一个地址数据,所以只需要设计低速通信,不需要占用特殊端口(例如SPI、I2C、1-Wire或UART)等。当然采用这些特殊端口同样可行。
步骤S21,从机启动后通过地址线连接主机对应的I/O端口,发送连接信号。
假设从机对应的主机的I/O端口为D4,则从机启动后通过地址线连接主机的D4端口。具体地,从机初始化端口D2为输出模式,发送一个电平信号(低-高-低)至主机的D4端口。例如,输出低电平保持50ms(时间可以定义为其他值),然后将端口D2拉高电平保持50ms(时间也可以定义为其他值),然后拉低电平。可以理解的是,此处的电平信号也可以任意约定。而上述的电平信号即为从机发送的连接信号。
步骤S22,从机将端口D2设置为输入模式,并开始侦听输入的地址信号。
例如,从机在端口D2启动摩斯电码侦听。当然,这里可以采用任何通信设计,能够传输要传输的数据即可。
步骤S23,若在设定周期(例如10s)内没有接收到任何数据,则从机停止侦听程序新重新执行步骤S21。
步骤S12,主机持续侦听I/O端口,当监测到预定的连接信号(例如电平信号下降沿高-低)时,表示有从机接入,执行步骤S13。
步骤S13,主机将分配的地址发送给从机。
首先,主机获取一个未被使用的地址,例如地址可以默认从1开始,每次分配使地址+1。然后,主机在延时预定时间(例如50ms)后在端口D4启动摩斯电码发送所分配的通信地址1。
步骤S24,从机接收到主机发送的地址后按照接收到的通信地址初始化串行总线通信,准备接收主机发送的握手信号。
步骤S14,在步骤S13之后主机延时预定时间(例如100ms)后通过串行通信总线向分配的地址(例如1)发送握手信号。
步骤S25,从机在接收到主机握手信号后返回从机身份验证信息。
步骤S15,主机根据从机返回的身份验证信息进行验证,若验证从机成功,则完成通信地址的自动分配。
步骤S16,主机通过串行总线定时向从机发出轮询请求以获取数据,若请求超时,则主机重新侦听地址线发送的连接信号,即执行步骤S12。
步骤S26,从机在指定的时间内没有接收到主机请求,则从机重新执行步骤S21直至获得正确的总线通信地址。
在完成地址的分配后,主机与从机之间就可以采用串行通信总线完成通信。
此外,可以理解的是,在图1所示的机架服务器信息采集系统100中,串行通信总线并不限用于机架控制器10与定位模块20之间的网络连接。如图1所示,定位模块20内可包括多个(图1所示为6个)卡位单元21,定位模块20与卡位单元21之间也可以通过串行通信总线连接。此时,定位模块20内的主控制器为主机,而各卡位单元21为从机,主控制器给各卡位单元21分配地址的过程可与上述过程相同。在分配地址后,各卡位单元21通过串行通信总线与定位模块20通信,完成数据上报的操作。
串行总线总是通过主机轮询从机,当从机数量很多以及从机采集数据量较大时,串行总线通信效率下降,数据延时较大。为提升通信效率,可以通过只传输变化数据和产生新数据时从机主动通知主机推送数据,参阅图4,其具体过程可如下:
步骤S41,缓存每一条采集的数据。
步骤S42,将当前采集的数据与上一次上报的数据进行比较,如果变化幅度大于或等于设定阈值则执行步骤S43;否则,忽略掉当前采集的数据,并可从缓存中清除当前采集的数据。
步骤S43,更新从机的数据变化索引。
在初始状态下,从机的数据变化索引为一个默认值(例如0)。此后,每产生一条待上报的数据,可使从机的数据变化索引按照预定的规则增加或者减少,例如,每产生一条COV数据,可使从机的数据变化索引增加1。
步骤S44,当接收到主机发送的数据轮询请求时根据轮询请求内的变化索引值获取所有待上报的数据返回给主机。
主机在接收到从机上报的数据后,会缓存上报的数据内包含的变化索引值,在下次发送数据轮询请求内可将该变化索引值包含在轮询请求内作为请求参数。
从机可将轮询请求内包括的变化索引值与从机数据变化索引进行比较,若两者相同,则说明距离上一次上报数据未产生新的待上报数据,此时获取的待上报的数据为空,此时从机可返回空数据包或者直接返回从机数据变化索引;若从机的数据变化索引值等于轮询请求内的变化索引的值+1,则说明距离上一次上报数据,有一条待上报的数据产生,此时,从机可最新的一条待上报数据与从机变化索引一并返回给主机;其他状态表示距离上一次上报数据,有多条待上报的数据产生,此时,从机可以获取上一次上报至今产生的所有待上报数据,并将其与从机数据变化索引一并返回。
由于现实物理世界中很多数据在短时间内基本保持不变,这种方式在不改变基本通信原则的前提下,可以级数级提升数据轮询速度和减少总线带宽占用。
串行总线轮询方式当从机数量很多时还是不能解决数据传输及时性,从机可通过复用地址线主动通知主机有新数据需要上报,参阅图5,其具体过程如下:
步骤S51,当主机成功给从机分配串行总线地址后,主机侦听与从机地址线连接端口;
步骤S52,从机产生新的变化数据后,调用地址线发送数据更新信号。
例如,调用地址线发送一个电平信号(低—高—低)。如上所述,在主机给从机分配地址的过程中,从机发送的连接信号也可以是低高低的电平信号。因此,要求主机能够根据不同的工作状态将相同的电平信号分别解析成连接信号与数据更新信号。具体地,当某个I/O端口已经被分配地址且处于正常通信过程中时接收到的电平信号即为数据更新信号,否则,即为连接信号。
步骤S53,主机接收到数据更新信号则调用串行总线发送数据请求,以获取从机变化数据。
为保证数据同步可靠性,可同时启用地址线数据推送通知和串行总线定时轮询(轮询周期可设置较长)。从机主动推送数据通知的方式在从机数量较多时可以很大的提升数据同步实时性。
此外,除了利用地址线发送数据更新信号,还可以采用其他的引脚,例如8芯电缆的引脚8发送数据更新信号。此时,数据更新信号与连接信号分别在不同的I/O端口中传输,更加可靠,但需要占用主机与从机更多的I/O端口。
参阅图6,其为服务器信息采集器30的结构示意图。如图8所示,服务器信息采集器30包括:存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、通信模块110以及指示灯传感器112。这些组件通过一条或多条通讯总线/信号线相互通讯。
存储器102可用于存储软件程序、模块及数据,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
外设接口108将各种输入/输出装置耦合至处理器106。处理器106运行存储器102内的各种软件、指令上述服务器执行各种功能以及进行数据处理。在一些实施例中,外设接口108、处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
通信模块110用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,通信模块110可为一个网卡,其可包括处理器、随机存储器、转换器、晶体振荡器等元件。在一个实施例中,上述的网络信号为无线信号(例如射频信号)。此时网络模块110实质是射频模块,接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。
指示灯传感器112用于检测服务器中硬盘指示灯的状态。硬盘指示灯的状态一般通过不同颜色以及闪烁频率来区分,因此,指示灯传感器112具体可包括颜色传感器以及闪烁频率传感器。其中颜色传感器用于检测指示灯的颜色,闪烁频率传感器用于检测指示灯的闪烁频率。
颜色传感器既可以采用专门的基于各种光电管制作的专用颜色传感器,也可以基于影传感器拍摄的图像采用颜色分析方式实现。当然专用的颜色传感器成本更低,更加适用于机房监控的场合。本实施例中的颜色传感器能够检测硬盘指示灯的颜色即可,而一般硬盘指示灯的颜色只有固定的几种,例如红色、绿色、蓝色等。在一个具体的实施方式中,颜色传感器中可包括R/G/B三颜色滤光片以及至少三个影像感测单元(例如互补金属氧化物半导体影像传感器),分别检测三个颜色的强度值。
闪烁频率传感器可包括一个光敏检测电路以及一个计数器。光敏检测电路内可包括一个或多个光敏电阻,用于在检测到光强超过或者低于某个阈值时输出一个触发信号,此触发信号作为计数器的输入信息,每当接收到一个触发信号计算器的值+1,在一个完整的计数周期(例如1秒)内计算器累计的值即为光线闪烁的频率。
为了方便让设置于服务器信息采集器30内的指示灯传感器能够准确接收到硬盘指示灯的状态,可以在服务器信息采集器与硬盘指示灯之间设置导光柱32,导光柱32内部形成有光滑的管路,且内表面上可形成反光涂层,其一端设于(粘贴、磁铁或者卡子安装)硬盘(或者服务器)指示灯表面,另一端设于指示灯传感器表面。
上述的软件程序以及模块包括:操作系统122、以及服务器采集模块124。操作系统122其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。服务器采集模块124运行在操作系统122的基础上,用于实现服务器信息采集功能。
服务器采集模块124可包括指示灯检测模块134、状态判定模块136、以及状态同步模块138。其中,指示灯检测模块134用于控制指示灯传感器112检测监控对象的指示灯,而状态判定模块136用于根据指示灯检测模块134的检测结果判定监控对象(服务器、硬盘以及任意具有指示灯的设备)的运行状态。状态同步模块138用于将状态判定模块136的判定结果同步至远程监控系统中。
可以理解,为了能够根据指示灯状态去判定监控对象的运行状态,需要存储各种设备的指示灯与运行状态之间的映射关系。但一般来说,各种设备的指示灯基本遵循相同的指示灯规则,例如一般采用快速闪烁的绿色表示工作状态正常,红色闪烁表示非正常,蓝色表示连接等等,而具体的闪烁间隔、频率又可能代表不同的状态。指示灯与运行状态之间的映射关系可以预存在服务器信息采集器30的内置存储器内。
服务器信息采集器30在被连接至卡位单元21后,状态同步模块138即可将采集到的监控对象的运行状态同步给卡位单元21,卡位单元21在运行状态数据中加上自己的标识后发送对其所属的定位模块20,定位模块20在接收到的数据内添加自己的标识后发送给其所属机架控制器10,而机架控制器10则在接收到的数据内添加自己的标识后发送给云端服务器60。因此,云端服务器60所接收到的监控对象的运行状态数据内包括了机架控制器标识、定位模块标识以及卡位单元标识,通过这些标识就可以唯一的确定数据来源于哪一个监控对象。为了降低数据传输量,还可以是仅当硬盘的状态发生变化时状态同步模块138才同步监控对象的运行状态。
根据上述的技术方案,通过采集指示灯颜色以及闪烁频率的方法来检测监控对象的运行状态,适用于任何一种具有指示灯的监控对象,也不依赖于任何第三方软件和协议,实时方案成本低和安全性高。
服务器采集模块124还可包括:信息存储模块126以及信息同步模块128。其中信息存储模块126用于获取与其对应的服务器的基本信息,并将获取的服务器的基本信息存储在存储器102中。信息同步模块128用于将存储的服务器的基本信息同步给卡位单元21。与监控对象的运行状态数据相类似,服务器的基本信息也被层层上报,最后到达云端服务器60中。因此,每当服务器信息采集器30被连接至卡位单元21后,云端服务器60就可以自动发现有新的服务器接入,相应地,云端服务器60可以执行特定的事件处理程序,例如更新资产库。
而当卡位单元21检测到与服务器信息采集器30的连接丢失后,即可触发监控对象的下架事件,向其所属的定位模块20发送监控对象下架通知,卡位单元发送的下架通知内包括其标识。定位模块20在接收到卡位单元21发送下架通知后,在下架通知内添加其标识后发送给机架控制器10,机架控制器10在接收到定位模块20发送的下架通知后在其内添加其标识后发送给云端服务器60,云端服务器60接收到下架通知后即可根据其内的机架控制器标识、定位模块标识以及卡位单元标识准确地判断是哪一个监控对象下架,可以执行相应的事件处理过程,例如更新资产库,发送通知信息等等。
参阅图7,在另一个实施例中,服务器采集模块124还可包括:温度采集模块130以及温度同步模块132。其中,温度采集模块130用于读取温度传感器的数据,将读取的数据进行必要格式转换等,并可将获取的数据缓存以待同步。而温度同步模块132可以定期或者根据定位模块20发送的查询请求将温度采集模块130采集的温度数据同步给对应的卡位单元21。温度数据的同步流程与监控对象的运行状态数据的同步流程可相似。而且温度数据与监控对象的运行状态数据还可以一并同步,也就是说,温度同步模块132与状态同步模块138可实质为同一模块。
云端服务器60在接收到监控数据后,对监控数据进行处理、存储,并在监控数据触发特定的条件时执行特定的事件处理流程。
在一个具体的实施例中,当所述监控对象的运行状态处于异常状态时,云端服务器60即可执行报警流程,例如采用预定的方式发出预警信息。上述预定的方式的具体实施包括但并不限于:手机短信息、电子邮件、电话呼叫、即时通讯信息等等。
在一个具体的实施例中,当云端服务器60根据同步的温度数据发现温度超过预定阈值时云端服务器60即可执行高温预警流程,例如采用预定的方式发出报警信息。上述预定的方式的具体实施包括但并不限于:手机短信息、电子邮件、电话呼叫、即时通讯信息等等。由于触发报警的来源数据内包括卡位单元21的准确定位信息,因此,在上述的预警信息内可以包括发生故障的卡位单元的准确位置信息。
进一步地,还可在服务器信息采集器30上设置指示灯,用于同步输出的当前检测到的监控对象的运行状态。也就是说,当状态判定模块134根据指示灯传感器检测的结果获取到当前监控对象的运行状态时,状态输出模块140在服务器信息采集器30的指示灯中输出对应的提示灯光信号。根据这种方式,可以让用户在前面板上能够及时的发现监控对象的运行状态。
进一步地,在服务器信息采集器30中还可包括一个显示屏,用于以文字或者图形的方式显示监控对象的运行状态。
参阅图8,其为本发明实施例提供的远程监控方法的流程图,如图8所示,该方法包括以下步骤:
步骤S10,检测监控对象的指示灯的颜色以及闪烁频率;
步骤S11,根据指示的颜色以及闪烁频率的判断监控对象的运行状态;以及
步骤S12,将所述监控对象的工作状态同步至一个云端服务器中。
根据本实施例的方法,通过采集指示灯颜色以及闪烁频率的方法来检测监控对象的运行状态,适用于任何一种具有指示灯的监控对象,也不依赖于任何第三方软件和协议,实时方案成本低和安全性高。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。