串行通讯数据传输方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种串行通讯数据传输方法及装置。
背景技术
随着具备串行通讯设备大量被使用,数据传输的加密需求就日益增长起来,但由于目前大量设备(比如智能家电底板)计算能力较低,不具备像SHA256等这样高级数据加密算法。
目前串行通讯数据加密的方式主要着重于对数据本身的加密,如采用SHA256等高级加密算法,这样就算非法用户通过各种手段获取到传输数据也很难获得真正的原始数据。
通过上述加密方式优点是加密强度高,缺点是对通讯设备的计算性能具有一定的要求,但目前市场上很多设备由于成本、PCB布线等要求还采用8bit单片机,这样的设备不具备高级加密算法的计算能力。
针对相关技术中串行通讯数据传输需要通讯设备具备高级加密算法的计算能力才能对串行通讯数据进行加密的问题,尚未提出解决方案。
发明内容
本发明实施例提供了一种串行通讯数据传输方法及装置,以至少解决相关技术中串行通讯数据传输需要通讯设备具备高级加密算法的计算能力才能对串行通讯数据进行加密的问题。
根据本发明的一个实施例,提供了一种串行通讯数据传输方法,包括:
第一通讯设备与第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所使用的波特率;
所述第一通讯设备与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输。
可选地,所述第一通讯设备与所述第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所使用的波特率包括:
所述第一通讯设备与所述第二通讯设备进行跳变波特率组的协商,其中,所述跳变波特率组为所述第一通讯设备与所述第二通讯设备均支持的波特率的集合;
所述第一通讯设备与所述第二通讯设备根据所述跳变波特率组、预先协商好的跳变表和跳变间隔进行波特率跳变,其中,所述跳变表用于指示所述跳变波特率组中下一次跳变的波特率序号,所述跳变间隔为跳变前传输的字节数量或跳变前的数据传输时间。
可选地,所述第一通讯设备与所述第二通讯设备进行跳变波特率组的协商包括:
所述第一通讯设备接收所述第二通讯设备发送的所述第二通讯设备支持的波特率组;
所述第一通讯设备根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取所述跳变波特率组,并将所述跳变波特率组发送给所述第二通讯设备。
可选地,所述第一通讯设备根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取所述跳变波特率组包括:
所述第一通讯设备根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取出所述第一通讯设备支持的波特率组;
所述第一通讯设备根据预先保存的加密强度与跳变次数的对应关系确定所述第一通讯设备的加密强度对应的跳变次数;
所述第一通讯设备从所述第一通讯设备支持的波特率组中确定所述跳变波特率组,其中,所述跳变波特率组为数量与所述跳变次数相同的波特率的集合。
可选地,所述第一通讯设备与所述第二通讯设备根据所述跳变波特率组、预先协商好的跳变表和跳变间隔进行多次波特率跳变包括:
所述第一通讯设备与所述第二通讯设备在所述跳变间隔达到时,根据所述跳变表中的波特率序号从所述跳变波特率组确定跳变的波特率;
在跳变到确定的所述波特率之后,所述第一通讯设备与所述第二通讯设备进行握手。
可选地,所述第一通讯设备与所述第二通讯设备进行握手包括:
所述第一通讯设备在跳变到确定的所述波特率之后,向所述第二通讯设备发送握手码,接收所述第二通讯设备返回的确认码;或者,
所述第一通讯设备在跳变到确定的所述波特率之后,接收到所述第二通讯设备发送的握手码,向所述第二通讯设备返回确认码。
可选地,所述第一通讯设备与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输包括:
在每次传输的数据长度达到预先协商好的跳变间隔后,所述第一通讯设备与所述第二通讯设备根据变换后的波特率进行数据传输。
根据本发明的另一个实施例,还提供了一种串行通讯数据传输装置,其特征在于,应用于第一通讯设备,包括:
变换模块,用于与第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所使用的波特率;
数据传输模块,用于与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输。
可选地,所述变换模块包括:
协商单元,用于与所述第二通讯设备进行跳变波特率组的协商,其中,所述跳变波特率组为所述第一通讯设备与所述第二通讯设备均支持的波特率的集合;
跳变单元,用于与所述第二通讯设备根据所述跳变波特率组、预先协商好的跳变表和跳变间隔进行波特率跳变,其中,所述跳变表用于指示所述跳变波特率组中下一次跳变的波特率序号,所述跳变间隔为跳变前传输的字节数量或跳变前的数据传输时间。
可选地,所述协商单元,还用于
接收所述第二通讯设备发送的所述第二通讯设备支持的波特率组;
根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取所述跳变波特率组,并将所述跳变波特率组发送给所述第二通讯设备。
可选地,所述协商单元,还用于
根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取出所述第一通讯设备支持的波特率组;
根据预先保存的加密强度与跳变次数的对应关系确定所述第一通讯设备的加密强度对应的跳变次数;
从所述第一通讯设备支持的波特率组中确定所述跳变波特率组,其中,所述跳变波特率组为数量与所述跳变次数相同的波特率的集合。
可选地,所述跳变单元包括:
跳变子单元,用于与所述第二通讯设备在所述跳变间隔达到时,根据所述跳变表中的波特率序号从所述跳变波特率组确定跳变的波特率;
握手子单元,用于在跳变到确定的所述波特率之后,与所述第二通讯设备进行握手。
可选地,所述握手子单元,还用于
在跳变到确定的所述波特率之后,向所述第二通讯设备发送握手码,接收所述第二通讯设备返回的确认码;或者,
在跳变到确定的所述波特率之后,接收到所述第二通讯设备发送的握手码,向所述第二通讯设备返回确认码。
可选地,所述数据传输模块,还用于
在每次传输的数据长度达到预先协商好的跳变间隔后,与所述第二通讯设备根据变换后的波特率进行数据传输。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通讯设备之间在数据传输过程中根据协商好的方式变换数据传输所使用的波特率,在每次变换波特率后通过变换后的波特率进行数据传输,可以解决相关技术中串行通讯数据传输需要通讯设备具备高级加密算法的计算能力才能对串行通讯数据进行加密的问题,无需通讯设备具备高级加密算法的计算能力,即可完成串行通讯数据的加密传输。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种串行通讯数据传输方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种串行通讯数据传输方法的流程图;
图3是根据本发明实施例的串行数据传输的流程图;
图4是根据本发明实施例的串行通讯数据传输装置的框图;
图5是根据本发明优选实施例的串行通讯数据传输装置的框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种串行通讯数据传输方法的移动终端的硬件结构框图,如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文接收方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network INterface CoNtroller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio FrequeNcy,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
基于上述移动终端,在本实施例中提供了一种串行通讯数据传输方法,图2是根据本发明实施例的一种串行通讯数据传输方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,第一通讯设备与第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所使用的波特率;
步骤S204,第一通讯设备与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输。
通过上述步骤S201至S204,通讯设备之间在数据传输过程中根据协商好的方式多次变换数据传输所使用的波特率,在每次变换波特率后通过变换后的波特率进行数据传输,可以解决相关技术中串行通讯数据传输需要通讯设备具备高级加密算法的计算能力才能对串行通讯数据进行加密的问题,无需通讯设备具备高级加密算法的计算能力,即可完成串行通讯数据的加密传输。
本发明实施例中,上述步骤S202具体可以包括:
步骤S2021,所述第一通讯设备与所述第二通讯设备进行跳变波特率组的协商,其中,所述跳变波特率组为所述第一通讯设备与所述第二通讯设备均支持的波特率的集合;
步骤S2022,所述第一通讯设备与所述第二通讯设备根据所述跳变波特率组、预先协商好的跳变表和跳变间隔进行波特率跳变,其中,所述跳变表用于指示所述跳变波特率组中下一次跳变的波特率序号,所述跳变间隔为跳变前传输的字节数量或跳变前的数据传输时间。
可选地,上述步骤S2021具体可以包括:
所述第一通讯设备接收所述第二通讯设备发送的所述第二通讯设备支持的波特率组;
所述第一通讯设备根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取所述跳变波特率组,并将所述跳变波特率组发送给所述第二通讯设备。
进一步地,所述第一通讯设备根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取出所述第一通讯设备支持的波特率组;根据预先保存的加密强度与跳变次数的对应关系确定所述第一通讯设备的加密强度对应的跳变次数;从所述第一通讯设备支持的波特率组中确定所述跳变波特率组,其中,所述跳变波特率组为数量与所述跳变次数相同的波特率的集合。
可选地,上述步骤S2022具体可以包括:
所述第一通讯设备与所述第二通讯设备在所述跳变间隔达到时,根据所述跳变波特率组以及所述跳变表进行跳变;
每次跳变到确定的波特率之后,所述第一通讯设备与所述第二通讯设备进行握手。
进一步地,所述第一通讯设备与所述第二通讯设备进行握手包括:
所述第一通讯设备根据所述跳变波特率组跳变到确定的波特率(即将波特率设置为跳变后的波特率)之后,向所述第二通讯设备发送握手码,接收所述第二通讯设备返回的确认码;或者,
所述第一通讯设备根据所述跳变波特率组跳变到确定的波特率之后,接收到所述第二通讯设备发送的握手码,向所述第二通讯设备返回确认码。
本发明实施例中,上述步骤S204具体可以包括:
在每次传输的数据长度达到预先协商好的跳变间隔后,所述第一通讯设备与所述第二通讯设备根据变换后的波特率进行数据传输。
串行通讯的特点是发送和接收双方都默认采用同一个波特率,这样双方在同一频率的时钟下才能保证发送和接收到的数据是一致的。本发明实施例根据以上特点使双方设备按照一定规则与时序在整个数据传输过程中多次变换通讯使用的波特率,由于双方设备采用变换的波特率集合、跳变表、跳变间隔都是保密的,因此整个数据传输对外界来说就是加密的,其中加密强度可由波特率集合、跳变间隔来控制。由此设计,通讯双方设备不需要增加任何成本就可以完成一定强度的加密通讯。
本发明实施例中在通讯过程需要进行三个通讯参数的协商,包括:
1.跳变波特率组
双方通过协商或默认设定可以支持的波特率集合,波特率集合可以为一个二维数组,比如:[2400,4800,9600,19200,38400……]。
2.跳变表
双方默认设定一个跳变表,用于指定下一次跳变的波特率,比如:
[0,5,3,4,2,1……]。
由于跳变波特率组设计为一个二维数组,所以跳变表中的数字表示数组的下标,根据举例所示,0表示2400,1表示4800,2表示9600等。
3.跳变间隔
双方通过协商或默认设定一个跳变间隔,表示每传输多少字节双方发生一次波特率跳变。比如5表示每传输5个字节双方根据跳变波特率组和跳变表设定一次自身的波特率。
本发明实施例中整个通讯过程由三部分组成:协商阶段、握手阶段和通讯阶段。其中握手阶段和通讯阶段需要在每次跳变波特率后进行,图3是根据本发明实施例的串行数据传输的流程图,如图3所示,包括:
步骤S302,设置初始波特率;
步骤S304,协商阶段,判断是否协商成功,在协商成功的情况下,执行步骤S306,否则结束;
双方协商本次通讯的一些必要参数,比如:支持的波特率。
支持的波特率:由数据接收方发送自己支持的波特率组,由发送方根据加密强度和自己支持的波特率情况,挑选本次通讯的跳变波特率组,并发送给接收方。
例如,发送方发送:1200、2400、4800、9600、14400、38400、115200……
低轻度加密要求:接收方发送9600、38400构成的跳变波特率组。
高轻度加密要求:接收方发送2400、9600、38400、115200构成的跳变波特率组。
此阶段不是必要阶段,一个设计好的通讯系统也可以采用默认的跳变波特率组。
步骤S306,握手阶段,判断握手是否成功,在握手成功的情况下,执行步骤S308,否则结束;
双方通讯每次跳变波特率后,都要进行握手,用来保证双方设置波特率已经完成。
例如,发送方设置波特率为9600后定时发送握手码;接收方同样设置波特率为9600后等待握手码,收到正确的握手码后发送确认码完成本次握手阶段。
步骤S308,数据传输阶段,双方一旦完成握手阶段,就可以进行数据通讯。
步骤S310,判断数据传输是否完成,在判断结果为否的情况下,返回步骤S306,否则结束。传输的数据长度达到设定的跳变间隔后,双方重新根据跳变表设定下一个波特率,并重新进入握手阶段。
由此可以发现,当加密强度要求较高时,可以设定较短的跳变间隔,比如5,这意味着每传输5个字节,通讯双方跳变一次波特率。如果整个通讯数据有100字节,那么整个过程需要跳变20次。
通过本发明实施例,使低计算能力的串口通讯设备具有数据传输加密能力,提高了高、低两种计算能力的串口通讯设备数据传输防破解能力,且无成本增加。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种串行通讯数据传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的串行通讯数据传输装置的框图,如图4所示,应用于第一通讯设备,包括:
变换模块42,用于与第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所使用的波特率;
数据传输模块44,用于与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输。
图5是根据本发明优选实施例的串行通讯数据传输装置的框图,如图5所示,所述变换模块42包括:
协商单元52,用于与所述第二通讯设备进行跳变波特率组的协商,其中,所述跳变波特率组为所述第一通讯设备与所述第二通讯设备均支持的波特率的集合;
跳变单元54,用于与所述第二通讯设备根据所述跳变波特率组、预先协商好的跳变表和跳变间隔进行波特率跳,其中,所述跳变表用于指示所述跳变波特率组中下一次跳变的波特率序号,所述跳变间隔为跳变前传输的字节数量或跳变前的数据传输时间。
可选地,所述协商单元52,还用于
接收所述第二通讯设备发送的所述第二通讯设备支持的波特率组;
根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取所述跳变波特率组,并将所述跳变波特率组发送给所述第二通讯设备。
可选地,所述协商单元52,还用于
根据所述第一通讯设备支持的波特率情况,从所述第二通讯设备支持的波特率组中选取出所述第一通讯设备支持的波特率组;
根据预先保存的加密强度与跳变次数的对应关系确定所述第一通讯设备的加密强度对应的跳变次数;
从所述第一通讯设备支持的波特率组中确定所述跳变波特率组,其中,所述跳变波特率组为数量与所述跳变次数相同的波特率的集合。
可选地,所述跳变单元54包括:
跳变子单元,用于与所述第二通讯设备在所述跳变间隔达到时,根据所述跳变表中的波特率序号从所述跳变波特率组确定跳变的波特率;
握手子单元,用于在跳变到确定的所述波特率之后,与所述第二通讯设备进行握手。
可选地,所述握手子单元,还用于
在跳变到确定的所述波特率之后,向所述第二通讯设备发送握手码,接收所述第二通讯设备返回的确认码;或者,
在跳变到确定的所述波特率之后,接收到所述第二通讯设备发送的握手码,向所述第二通讯设备返回确认码。
可选地,所述数据传输模块44,还用于
在每次传输的数据长度达到预先协商好的跳变间隔后,与所述第二通讯设备根据变换后的波特率进行数据传输。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S11,第一通讯设备与第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所使用的波特率;
S12,所述第一通讯设备与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-ONly Memory,简称为ROM)、随机存取存储器(RaNdom Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S11,第一通讯设备与第二通讯设备在数据传输过程中根据协商好的方式变换数据传输所通讯使用的波特率;
S12,所述第一通讯设备与所述第二通讯设备在每次变换波特率后通过变换后的波特率进行数据传输。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。