发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据校验方法、装置、存储介质及终端,用于解决现有技术中循环冗余校验在智能机器人命令传输的时候存在的效率低、成本高的技术问题。
为实现上述目的及其它相关目的,本发明的第一方面提供一种数据校验方法,应用于智能机器人的短数据流传输,其包括:获取智能机器人的待传输数据帧,其包括响应码、指令码和参数信息;基于所述响应码、指令码和参数信息计算校验码;基于所述校验码和所述待传输数据帧获得待校验数据帧以供数据的传输和校验。
于本发明的第一方面的一些实施例中,所述基于所述响应码、指令码和参数信息计算校验码,其包括:对所述响应码、指令码和参数信息依次按字节进行或运算;对所述或运算的结果求和;将所述求和的结果与预设值进行与运算;基于所述与运算的结果得到所述校验码。
于本发明的第一方面的一些实施例中,所述基于所述与运算的结果得到所述校验码,其包括:对所述响应码、指令码和参数信息依次两两按字节进行或运算;对所述或运算的结果求和;将所述求和的结果与预设值进行与运算以得到所述与运算的结果;基于所述待传输数据帧的帧长度信息和所述与运算的结果得到所述校验码。
于本发明的第一方面的一些实施例中,所述基于所述待传输数据帧的帧长度信息和所述与运算的结果得到所述校验码,其包括:所述待传输数据帧的帧长度为偶数的情况下,所述与运算的结果为所述校验码;在所述待传输数据帧的帧长度为奇数的情况下,将所述与运算的结果与所述待传输数据帧的最后一字节元素进行异或运算得到所述校验码。
于本发明的第一方面的一些实施例中,所述校验码为第一校验码;所述方法包括:智能机器人的控制单元以串口通信的方式传输所述待校验数据帧;被控单元接收所述待校验数据帧,并基于所述待校验数据帧的响应码、指令码、参数信息和帧长度信息按顺序计算获得第二校验码;在所述第一校验码与所述第二校验码一致的情况下,所述被控单元基于所述响应码返回响应信息,基于所述指令码执行指令,并基于所述参数信息调整对应参数;在所述第一校验码与所述第二校验码不一致的情况下,所述被控单元向所述控制单元发送反馈信息,以提示用户是否重新发送控制指令。
于本发明的第一方面的一些实施例中,所述待校验数据帧包括:帧头、数据部分和校验码;其中,数据部分包括帧长、响应码、指令码和参数信息;预设所述帧头的长度为两字节,所述帧长的长度为两字节,所述响应码的长度为一字节,所述指令码的长度为一字节,所述校验码的长度为两字节。
于本发明的第一方面的一些实施例中,所述方法应用于智能机器人的硬件控制,所述智能机器人包括扫地机器人,所述硬件包括悬崖传感器、罗盘传感器、陀螺仪、加速计、跌落传感器、轮速计、灰尘传感器、刷头和风机中的任一种或多种的组合。
为实现上述目的及其它相关目的,本发明的第二方面提供一种数据校验装置,应用于智能机器人的短数据流传输,其包括:数据获取模块,用于获取智能机器人的待传输数据帧,其包括响应码、指令码和参数信息;校验码计算模块,用于基于所述响应码、指令码和参数信息计算校验码;待校验数据帧获取模块,用于基于所述校验码和所述待传输数据帧获得待校验数据帧以供数据的传输和校验。
为实现上述目的及其它相关目的,本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据校验方法。
为实现上述目的及其它相关目的,本发明的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述数据校验方法。
如上所述,本发明提供一种数据校验方法、装置、存储介质及终端,具有以下有益效果:针对智能机器人常规使用过程,传输数据流较短,命令较为简短的特点,对循环冗余校验在其上的应用进行优化,通过获取智能机器人的待传输数据帧,其包括响应码、指令码和参数信息;基于所述响应码、指令码和参数信息计算校验码;基于所述校验码和所述待传输数据帧获得待校验数据帧以供数据的传输和校验。该数据校验方法实现和执行简单,尤其适用于智能机器人的短数据流校验,在保障校验准确性的同时,大大提高数据校验的效率,降低数据校验的成本。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其它实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其它特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本发明的目的在于提供一种数据校验方法、装置、存储介质及终端,用于解决现有技术中循环冗余校验在智能机器人命令传输的时候存在的效率低、成本高的技术问题。
为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
如图1所示,本发明实施例提出一种应用于智能机器人的短数据流传输的数据校验方法的流程示意图。本实施例提出的数据校验方法具体包括如下步骤:
步骤S11.获取智能机器人的待传输数据帧,其包括响应码、指令码和参数信息。具体的,响应码用于控制接收端是否对所接收的指令进行反馈响应;指令码为具体的控制命令,包括受控单元的名称、地址信息等;参数信息为受控单元的参数调整信息,如风机的转速、履带的运行速度、传感器的参数等等。可选的,所述响应码、指令码、参数信息可以是经用户操作生成,也可以由智能机器人的计算机智能运算生成。
步骤S12.基于所述响应码、指令码和参数信息计算校验码。具体的,对所述响应码、指令码和参数信息依次按字节进行或运算;对所述或运算的结果求和;将所述求和的结果与预设值(例如0xFFFF)进行与运算;基于所述与运算的结果得到所述校验码。
在本实施例较佳的实施方式中,所述基于所述与运算的结果得到所述校验码,其包括:对所述响应码、指令码和参数信息依次两两按字节进行或运算;对所述或运算的结果求和;将所述求和的结果与预设值进行与运算以得到所述与运算的结果;基于所述待传输数据帧的帧长度信息和所述与运算的结果得到所述校验码。
进一步地,所述基于所述待传输数据帧的帧长度信息和所述与运算的结果得到所述校验码,其包括:所述待传输数据帧的帧长度为偶数的情况下,所述与运算的结果为所述校验码;在所述待传输数据帧的帧长度为奇数的情况下,将所述与运算的结果与所述待传输数据帧的最后一字节元素进行异或运算得到所述校验码。
步骤S13.基于所述校验码和所述待传输数据帧获得待校验数据帧以供数据的传输和校验。所述待校验数据帧中的校验码为第一校验码,接收端基于接收到的数据帧用同样的方式计算获得第二校验码,若第一校验码和第二校验码一致,则表明所接收到的数据是完整的。
在本实施例较佳的实施方式中,所述待校验数据帧包括:帧头、数据部分和校验码;其中,数据部分包括帧长、响应码、指令码和参数信息;预设所述帧头的长度为两字节,所述帧长的长度为两字节,所述响应码的长度为一字节,所述指令码的长度为一字节,所述校验码的长度为两字节。本实施方式结合实际应用需求对数据帧的各部分的长度进行预设,进而根据最终的帧长度信息计算获得校验码,其中,帧长度为响应码(1Byte)、指令码(1Byte)、参数(nByte)和校验码(2Byte)之和。该待校验数据帧的数据帧格式示例如表1所示。
其中,帧头高字节为0xB5,可表示为Head_H;帧头低字节为0x62,可表示为Head_L;长度高字节可表示为Length_H;长度低字节可表示为Length_L;响应码可表示为ACK;指令码,标记指令可表示为CMD_ID;校验码高字节可表示为Check_H;校验码低字节可表示为Check_L。
在一些示例中,本实施例的数据校验方法中的校验码的计算代码可表示如下:
上述代码中,在帧头和帧长的长度分别为两字节的情况下,index的初始赋值为4,表示从响应码开始计算。具体的:如果帧长度为偶数个,从响应码开始两两Byte或运算,然后相加得和,与0xFFFF与运算,所得值即为校验码的值;如果帧长度为奇数个,从响应码开始两两Byte或运算,然后相加得和,与0xFFFF与运算,然后与最后一个元素进行异或运算,得到的值即为校验码。需说明的是,为便于用户查阅,对应信息以16进制(0x为前缀表示)显示,但数据实际传输过程为二进制数据流。本实施方式中不同数据不会产生相同校验码,提高校验准确性。
在本实施例较佳的实施方式中,智能机器人的控制单元以串口通信的方式传输所述待校验数据帧;被控单元接收所述待校验数据帧,并基于所述待校验数据帧的响应码、指令码、参数信息和帧长度信息按顺序计算获得第二校验码;在所述第一校验码与所述第二校验码一致的情况下,所述被控单元基于所述响应码返回响应信息,基于所述指令码执行指令,并基于所述参数信息调整对应参数;在所述第一校验码与所述第二校验码不一致的情况下,所述被控单元向所述控制单元发送反馈信息,以提示用户是否重新发送控制指令。
在本实施例较佳的实施方式中,所述数据校验方法应用于智能机器人的硬件控制,所述智能机器人的硬件主要包括感应类硬件,诸如摄像机、图像传感器、超声波传成器、激光器、导电橡胶、压电元件、气动元件、行程开关等机电元器件;又包括运动类硬件,如轮子、履带、支脚、吸盘、气垫等无轨道型的移动机构,以适应诸如平地、台阶、墙壁、楼梯、坡道等不同的地理环境;又包括在运动过程中对移动机构进行实时控制的控制类硬件,如位置控制、力度控制、位置与力度混合控制、伸缩率控制等硬件。
在一些示例中,智能机器人进行串口通信,下发的是一些简短的命令,输入是一个短的二进制数据流时,用本实施例的数据校验方法进行校验,实现和执行起来比较简单,在保障数据校验准确性的同时,提高校验效率和降低校验成本。
在一些示例中,所述智能机器人包括扫地机器人,所述硬件包括悬崖传感器、罗盘传感器、陀螺仪、加速计、跌落传感器、轮速计、灰尘传感器、刷头和风机中的任一种或多种的组合。
在一些实施方式中,所述方法可应用于控制器,所述电控单元例如为ARM(Advanced RISC Machines)控制器、FPGA(Field Programmable Gate Array)控制器、SoC(System on Chip)控制器、DSP(Digital Signal Processing)控制器、或者MCU(Microcontroller Unit)控制器等等。在一些实施方式中,所述方法也可应用于包括存储器、存储控制器、一个或多个处理单元(CPU)、外设接口、RF电路、音频电路、扬声器、麦克风、输入/输出(I/O)子系统、显示屏、其它输出或控制设备,以及外部端口等组件的计算机;所述计算机包括但不限于如台式电脑、笔记本电脑、平板电脑、智能手机、智能电视、个人数字助理(Personal Digital Assistant,简称PDA)等个人电脑。在另一些实施方式中,所述方法还可应用于服务器,所述服务器可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以由分布的或集中的服务器集群构成。
实施例二
如图2所示,本发明实施例提出一种应用于智能机器人的短数据流传输的数据校验装置的结构示意图。本发明实施例提出的数据校验装置具体包括:数据获取模块21,用于获取智能机器人的待传输数据帧,其包括响应码、指令码和参数信息;校验码计算模块22,用于基于所述响应码、指令码和参数信息计算校验码;待校验数据帧获取模块23,用于基于所述校验码和所述待传输数据帧获得待校验数据帧以供数据的传输和校验。
需要说明的是,本实施例提供的模块与上文中提供的方法、实施方式类似,故不再赘述。另外需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,数据获取模块21可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上数据获取模块21的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
实施例三
如图3所示,本发明实施例提供一种电子终端的结构示意图。本实施例提供的电子终端,包括:处理器31、存储器32、通信器33;存储器32通过系统总线与处理器31和通信器33连接并完成相互间的通信,存储器32用于存储计算机程序,通信器33用于和其它设备进行通信,处理器31用于运行计算机程序,使电子终端执行如上数据校验方法的各个步骤。
上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其它设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
实施例四
本发明实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据校验方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本发明提供一种数据校验方法、装置、存储介质及终端,具有以下有益效果:针对智能机器人常规使用过程,传输数据流较短,命令较为简短的特点,对循环冗余校验在其上的应用进行优化,通过获取智能机器人的待传输数据帧,其包括响应码、指令码和参数信息;基于所述响应码、指令码和参数信息计算校验码;基于所述校验码和所述待传输数据帧获得待校验数据帧以供数据的传输和校验。该数据校验方法实现和执行简单,尤其适用于智能机器人的短数据流校验,在保障校验准确性的同时,大大提高数据校验的效率,降低数据校验的成本。所以,本发明有效克服了现有技术中的种种缺点而具有高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。