通信协议识别方法、电子装置及计算机存储介质与流程

文档序号:14879917发布日期:2018-07-07 09:29阅读:205来源:国知局

本发明涉及通信协议识别技术,尤其涉及一种通信协议识别方法、电子装置及计算机存储介质。



背景技术:

随着科技的进步,电子设备间大多具有数据通信功能,不同类型的设备也各自制定了不同的通信协议标准。比如,在电力抄表及无线抄表系统中,电子式电能表、数据采集终端及其他下位机设备都具有通信功能,这些设备一般都有自己的协议体系。无论是采用有线通道,还是无线通道,都需要对通信数据协议进行识别与解析,用以监视接收数据,实现数据的测试发送。

传统的场景下,研发人员要确定一种设备的通信协议,必须找到原厂索要通信协议说明文件通过电脑手动输入命令,再通过连接线发送给设备才能准确判断该设备所采用的通信协议以及返回的数据。

传统场景方式获取的数据可能不全,不够翔实,且需要技术人员在现场操作,而且容易出错,如果有大量设备就会造成很多重复劳动。



技术实现要素:

鉴于此,有必要提供一种通信协议识别方法、电子装置及计算机存储介质,能够快速方便地对通信协议进行识别。

一种通信协议识别方法,包括:

从数据库获取通信指令;所述数据库存储至少一个通信协议的信息,每一通信协议的信息包括至少一条通信指令及与该通信指令对应的反馈数据;

发送所述通信指令至电子设备;

从所述电子设备接收反馈数据;

将接收的反馈数据与数据库中存储的对应的反馈数据进行匹配以确定识别结果。

在一些实施例中,所述方法还包括:

保存识别结果至所述数据库。

在一些实施例中,所述通信协议的信息包括采用该通信协议的至少一厂商,及该厂商的至少一电子设备型号,每一电子设备型号对应至少一通信指令及与该通信指令对应的反馈数据,所述识别结果包括确定电子设备型号、厂家及采用的通信协议。

在一些实施例中,所述方法还包括:保存识别日志至所述数据库,所述识别日志包括发送至所述电子设备的所有通信指令及对应接收的所有反馈数据。

在一些实施例中,所述通信指令通过电子装置发送,所述电子装置通过串口与所述电子设备通信连接,所述通信指令通过所述串口逐条发送。

在一些实施例中,所述通信协议包括rs232,rs485,rs422,can,及usb中的一种或几种。

在一些实施例中,所述通信指令以不同波特率发送至所述电子设备,根据反馈数据确定与所述电子设备通信的最佳波特率。

在一些实施例中,所述电子设备为ups系统、充电桩、光伏设备、变频器、精密空调、环境监控、发电机设备、或医疗设备。

一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的通信协议识别程序,所述通信协议识别程序被所述处理器执行时实现如上所述的方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。

所述通信协议识别方法、电子装置能够自动确定电子设备采用的通信协议及通信指令对应的反馈数据。

附图说明

图1是本发明一实施例的通信协议识别系统的架构图。

图2是本发明一实施例的通信协议识别方法的流程图。

图3为本发明一实施例的应用于电子装置的通信协议识别方法的流程图。

图4是本发明一实施例的通信协议识别装置的结构示意图。

图5是本发明一实施例的电子装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,以下所描述的系统实施方式仅仅是示意性的,所述模块或电路的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由同一个单元或装置通过软件或者硬件来实现。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

图1是本发明实施例提供的通信协议识别系统1的系统架构图。所述通信协议识别系统1包括,但不限于,一个或多个电子设备10、电子装置20、服务器30及数据库40。所述电子装置20分别与一个或多个电子设备10通信连接,与所述服务器30通信连接。所述服务器30与所述数据库40通信连接。

在一些实施例中,所述电子设备10为工业设备,例如不间断电源(uninterruptiblepowersupply,ups)系统、充电桩、光伏设备、变频器、精密空调、环境监控、发电机设备、医疗设备等。

所述电子装置20可以为个人计算机pc(personalcomputer)、手机、平板等具有数据处理能力的电子设备。所述电子装置20与所述电子设备10通过有线连接。在一些实施例中,所述电子装置20与所述电子设备10通过串行端口(例如usb)连接。

在一些实施例中,所述服务器30可为运行各种通用操作系统的计算机,例如linux系统、unix系统、类unix系统、minix系统等。

其中所述电子装置20与所述服务器30的通信方式采用有线通信也可以是无线通信。其中所述有线通信包括通信端口连接,例如通用串行总线(universalserialbus,usb)、控制器局域网(controllerareanetwork,can)、串行及/或其他标准网络连接、集成电路间(inter-integratedcircuit,i2c)总线等。所述无线通信可采用任意类别的无线通信系统,例如,蓝牙、红外线、无线保真(wirelessfidelity,wifi)、蜂窝技术,卫星,及广播。其中所述蜂窝技术可包括第二代(2g)、第三代(3g)、第四代(4g)或第五代(5g)等移动通信技术。

所述服务器30用于接收来自所述电子装置20的指令获取请求,从所述数据库30中读取通信指令发送至所述电子装置20。所述电子装置20用于将从所述服务器30获取的通信指令发送至所述电子设备10,并从所述电子设备10获取对应该通信指令的反馈数据,将所述反馈数据与数据库中存储的与该通信指令对应的反馈数据进行匹配处理以确定识别结果。

所述数据库40用于存储一个或多个通信协议的指令集。在一些实施例中,一个通信协议对应一个或多个厂商,每个厂商对应一个或多个电子设备的型号,每一电子设备型号包括一条或多条通信指令,每一通信指令对应有一反馈数据。所述通信协议包括rs232,rs485,rs422,控制器局域网络(controllerareanetwork,can),及通用串行总线(universalserialbus,usb)中的一种或几种。所述数据库40可为独立于所述服务器30的存储设备,也可为所述服务器30的内置存储器。所述匹配处理是将从所述电子设备10获取的每一通信指令的反馈数据与所述数据库40中存储的对应的反馈数据进行比对以确定是否一致。对于一条通信指令,若从所述电子设备10获取的反馈数据与数据库中存储的对应该条通信指令的反馈数据一致,则确定基于该条通信指令获取的反馈数据与数据库中存储的反馈数据匹配。

所述服务器30与所述数据库40的通信可采用各种通用的服务器与数据库连接的连接方式,例如,开放数据库连接(opendatabaseconnectivity,odbc)、java数据库连接(javadatabaseconnectivity,jdbc)等。

在一些实施例中,所述电子装置20还用于通过输出装置输出识别结果。例如通过显示装置显示识别结果,或通过语音输出识别结果。所述识别结果包括匹配成功及匹配不成功,其中匹配成功时包括确定的通信协议类型、厂商、电子设备型号,及对应的通信指令与反馈数据。通常情况下,一个电子设备型号对应的所有通信指令发送至所述电子设备10后获得的反馈数据均能与数据库中存储的反馈数据匹配时,可据此确定通信协议类型、厂商、电子设备型号。但是在一些实施例中,也有可能存在部分反馈数据匹配的情况,此时可能仅能确定通信协议类型、厂商、电子设备型号中的一个或几个。

在一些实施例中,所述电子装置20将所述识别结果发送至所述服务器30,所述服务器30将所述识别结果保存至所述数据库40中。在一些实施例中,还包括保存识别日志至所述数据库40。所述识别日志包括发送至所述电子设备的所有通信指令及对应接收的所有反馈数据。

在一些实施例中,所述电子装置20还可用于新增、修改、删除所述数据库40中存储的指令集,从而对存储在所述数据库40中的指令集进行维护。例如,可将新获取的通信协议信息新增至所述数据库存储的指令集中,及/或将采用该通信协议的厂商、及或电子产品型号所对应的指令集新增至所述数据库存储的指令集中。

在一些实施例中,所述服务器30基于所述电子装置20的指令获取请求以电子设备型号为单位发送通信指令至所述电子装置20,即一次发送一个电子设备型号所对应的所有通信指令至所述电子装置20,所述电子装置20依次逐条发送通信指令至所述电子设备10。可以理解的是,在其他可替换的实施例中,所述通信指令也可以以厂商或通信协议为单位发送至所述电子装置20,即一次发送一个厂商或通信协议对应的所有电子设备型号对应的通信指令至所述电子装置。若反馈数据的匹配处理在所述电子装置20执行,数据库中存储的所述通信指令对应的反馈数据与所述通信指令一并发送至所述电子装置20。

可以理解的是,在一些实施例中,所述电子装置20仅作为所述服务器30与所述电子设备10之间的指令发送与反馈数据接收的中介,对于反馈数据的解析与识别结果的确定均在所述服务器30执行。此时,所述服务器30依次逐条发送通信指令至所述电子装置20,所述电子装置20将所接收的指令逐条转发至所述电子设备10,再将从所述电子设备10获取的反馈数据返回至所述服务器30,所述服务器30根据所述反馈数据进行匹配处理以确定识别结果。

可以理解的是,在一些实施例中,所述电子装置20可以与所述数据库40直接相连,所述数据库40可为独立的存储装置,也可为所述电子装置20的内置存储装置。所述电子装置20直接从所述数据库40获取通信指令发送至所述电子设备20,然后从所述电子设备20获取反馈数据,根据所述反馈数据进行匹配以确定识别结果。

图2为本发明实施例提供的通信协议识别方法的示意流程图。如图2所示的通信协议识别方法可包括以下步骤:

步骤201、301:所述电子装置20获取通信指令。

在一实施例中,所述电子装置20基于用户操作(例如启动识别流程)产生指令获取请求,并发送所述指令获取请求至所述服务器30,所述服务器30基于所述所述指令获取请求从所述数据库40获取通信指令。

可替换地,在另一实施例中,用户远端登录所述服务器30,所述服务器30基于所述用户的操作(例如启动识别流程)从所述数据库40获取通信指令,并将所述通信指令发送至所述电子装置20。在一些实施例中,所述服务器30以电子设备型号或厂商或通讯协议为单位发送通信指令至所述电子装置20。

步骤202、101,所述电子装置20将所述通信指令发送至所述电子设备10。在一些实施例中,所述通信指令通过串行端口逐条发送至所述电子设备10。

步骤102、203,所述电子设备10返回反馈数据至所述电子装置20。

步骤204,所述电子装置20将从所述电子设备10接收到的反馈数据与数据库40中存储的对应反馈数据进行匹配处理以确定识别结果。在一些实施例中,若所发送的通信指令对应的电子设备型号与所述电子设备10不匹配,则对应该通信指令,所述电子设备10返回的反馈数据可能为空或无法识别的数据或与数据库中对应的反馈数据不一致的数据。

在一些实施例中,所述通信协议识别方法还包括通过输出装置输出识别结果。例如通过显示装置显示识别结果,或通过语音输出识别结果。所述识别结果包括匹配成功及匹配不成功,其中匹配成功时包括确定的通信协议类型、厂商、电子设备型号,及对应的通信指令与反馈数据。通常情况下,一个电子设备型号对应的所有通信指令发送至所述电子设备10后获得的反馈数据均能与数据库中存储的反馈数据匹配时,可据此确定通信协议类型、厂商、电子设备型号。但是在一些实施例中,也有可能存在部分反馈数据匹配的情况,此时可能仅能确定通信协议类型、厂商、电子设备型号中的一个或几个。

在一些实施例中,所述通信协议识别方法还包括将所述识别结果发送至所述服务器30,所述服务器30将所述识别结果保存至所述数据库40中。

在一些实施例中,所述通信协议识别方法还包括新增、修改、删除所述数据库40中存储的指令集,从而对存储在所所述通信协议识别方法还包括述数据库40中的指令集进行维护。例如,可将新获取的通信协议信息新增至所述数据库存储的指令集中,及/或将采用该通信协议的厂商、及或电子产品型号所对应的指令集新增至所述数据库存储的指令集中。

图3为本发明实施例提供的应用于电子装置的通信协议识别方法的示意流程图。

步骤31,获取通信指令。在一实施例中,所述电子装置20基于用户操作(例如启动识别流程)产生指令获取请求,并发送所述指令获取请求至所述服务器30,所述服务器30基于所述所述指令获取请求从所述数据库40获取通信指令。

步骤32,发送所述通信指令至电子设备。

步骤33,接收反馈数据。在一些实施例中,若所发送的通信指令对应的电子设备型号或厂家或通信协议与所述电子设备10不匹配,则对应该通信指令,所述电子设备10返回的反馈数据可能为空。此时,可设定一反馈时间长度,在该反馈时间长度内,若没有接收到反馈数据,则认为反馈数据为空。

步骤34,判断是否还有指令未读取。若是,返回步骤31,若否,进入步骤35。在一些实施例中,采用逐一匹配法,即先获取一个电子设备型号对应的通信指令逐条发送至电子设备,在该电子设备型号对应的通信指令全部发送完毕时即根据反馈数据进行匹配识别,匹配不成功时再获取同一厂商下另一电子设备型号对应的通信指令逐条发送至电子设备,直到该厂商下的所有电子设备型号均不能匹配时,再获取另一厂家的一电子设备型号对应的通信指令逐条发送至电子设备。直到一个通信协议下的所有厂商均不能匹配成功时,再选取下一通信协议进行类似处理。

步骤35,根据接收到的反馈数据确定识别结果。

所述电子装置20将从所述电子设备10接收到的反馈数据与数据库40中存储的对应反馈数据进行匹配处理以确定识别结果。若某一电子设备型号对应的通信指令获得的的反馈数据均能匹配,则可确定所述电子设备40为该电子设备型号,其所属的厂家及采用的通信协议为数据库中存储的对应该电子设备型号的厂家、通信协议。在一些实施例中,若所发送的通信指令对应的电子设备型号或厂家或通信协议与所述电子设备10不匹配,则对应该通信指令,所述电子设备10返回的反馈数据可能为空或无法识别的数据或与数据库中对应的反馈数据不一致的数据。若部分反馈数据匹配,可能仅能识别通信协议,或通信协议与厂家。若反馈数据全部不匹配,则识别结果为识别失败。

在一些实施例中,发送通信指令至所述电子设备还可以以不同的波特率发送,以确定与所述电子设备通信的最佳波特率。以不同波特率发送通信指令及得到的反馈数据均可保存至所述识别日志。

在一些实施例中,所述通信协议识别方法还包括通过输出装置输出识别结果。例如通过显示装置显示识别结果,或通过语音输出识别结果。所述识别结果包括匹配成功及匹配不成功,其中匹配成功时包括确定的通信协议类型、厂商、电子设备型号,及对应的通信指令与反馈数据。

在一些实施例中,所述通信协议识别方法还包括保存识别结果及/或识别日志至所述数据库40。在一些实施例中,所述电子装置20将所述识别结果及/或识别日志发送至所述服务器30,所述服务器30将所述识别结果保存至所述数据库40中。

在一些实施例中,所述通信协议识别方法还包括新增、修改、删除所述数据库40中存储的指令集,从而对存储在所所述通信协议识别方法还包括述数据库40中的指令集进行维护。例如,可将新获取的通信协议信息新增至所述数据库存储的指令集中,及/或将采用该通信协议的厂商、及或电子产品型号所对应的指令集新增至所述数据库存储的指令集中。

图4为本发明实施例提供的通信协议识别装置4的结构图,所述通信协议识别装置4可以包括:指令获取模块41、指令发送模块42、反馈数据接收模块43及确定模块44。本发明所称的模块是指一种能够被计算机所执行并且能够完成固定功能的一系列计算机程序段。

本发明提供的通信协议识别装置4可应用于电子装置,所述电子装置可以为个人计算机pc(personalcomputer)、手机、平板等具有数据处理能力的电子设备。

所述指令获取模块41用于从数据库获取通信指令。

所述指令发送模块42用于发送所述通信指令至所述电子设备。

所述反馈数据接收模块43用于从所述电子设备获取反馈数据。

所述确定模块44用于将从所述电子设备接收的反馈数据与数据库中存储的反馈数据进行匹配处理以确定识别结果。

请参照图5,图5是本发明一实施例提供的实现通信协议识别方法的电子装置5的结构示意图。

该实施例的电子装置5是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,包括:存储器51、处理器52以及存储在所述存储器51中并可在所述处理器52上运行的计算机程序,例如通信协议识别程序。所述处理器52执行所述计算机程序时实现上述实施例中的步骤,例如图3所示的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器52执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子装置中的执行过程。例如,所述计算机程序可以被分割成图4所示的指令获取模块41、指令发送模块42、反馈数据接收模块43及确定模块44。

所述电子装置5可以是,但不限于任何一种可进行数据处理的电子产品,例如,pc、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)。

所述存储器51可用于存储所述计算机程序和/或模块,所述处理器52通过运行或执行存储在所述存储器51内的计算机程序和/或模块,以及调用存储在存储器51内的数据,实现所述电子装置5的各种功能。所述存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如通信协议识别)等;存储数据区可存储根据电子装置5的使用所创建的数据(比如反馈数据、识别结果等)等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述处理器52可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述电子装置5的控制中心,利用各种接口和线路连接整个电子装置5的各个部分。

优选地,所述处理器52可调用所述存储器51中存储的程序代码以执行相关的功能。例如,图4中所述的各个模块是存储在所述存储器51中的程序代码,并由所述处理器52所执行,以实现本发明的通信协议识别方法(例如实施例中图3所示的通信协议识别方法)。

所述电子装置5还可包括至少一个通信装置53以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。其中所述通信装置53用于所述电子装置5与电子设备、服务器通信。

其中,所述通信装置53可以是有线通信装置也可以是无线通信装置。其中所述有线通信装置包括通信端口,例如通用串行总线(universalserialbus,usb)、控制器局域网(controllerareanetwork,can)、串行及/或其他标准网络连接、集成电路间(inter-integratedcircuit,i2c)总线等。所述无线通信装置可采用任意类别的无线通信系统,例如,蓝牙、红外线、无线保真(wirelessfidelity,wifi)、蜂窝技术,卫星,及广播。其中所述蜂窝技术可包括第二代(2g)、第三代(3g)、第四代(4g)或第五代(5g)等移动通信技术。

在一些实施例中,所述电子装置5还可包括显示装置及输入装置。所述显示装置用于显示识别结果。所述输入装置55用于接收用户操作指令以启动识别流程。

所述显示装置可以是触液晶显示屏(liquidcrystaldisplay,lcd)、发光二极管(lightemittingdiode,led)显示屏、有机电激光显示屏(organiclight-emittingdiode,oled)或其他适宜的显示屏。

所述输入装置可包括任意适宜的输入设备,包括但不限于,鼠标、键盘、触摸屏、或非接触式输入,例如,手势输入、声音输入等。

本领域技术人员可以理解,所述示意图仅仅是电子装置的示例,并不构成对电子装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子装置5还可以包括扬声器等输出设备等。

所述电子装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例所述的情绪识别方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上文方法实施例所述的情绪识别方法的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1