处理器之间的通信方法、处理器和电子设备与流程

文档序号:14911107发布日期:2018-07-10 23:26阅读:185来源:国知局
本发明涉及通信技术,尤其是一种处理器之间的通信方法、处理器和电子设备。
背景技术
:随着当代社会对智能化的需求越来越高,现在电子设备的复杂度也越来越高。在同一个设备中往往有多个处理器,各个处理器之间必然有大量的数据需要交换。为了保证电子设备的安全、稳定、可靠,各个处理器之间数据的交换必须完全正确。现有技术中,不同处理器之间使用标准的SPI(SerialPeripheralInterface,串行外设接口)、UART(UniversalAsynchronousReceiverTransmitter,通用异步收发器)等串行总线进行通信。在实现本发明的过程中,发明人发现,现有技术中不同处理器之间的通信方式至少存在以下问题:没有应答机制,发送方无法知道接收方是否收到由发送方发送的数据;没有数据校验,或者只有简单的奇偶校验,无法保证传输数据的正确性。技术实现要素:本发明实施例所要解决的一个技术问题是:提供一种处理器之间的通信方法、处理器和电子设备,以至少部分解决现有技术存在的上述问题。根据本发明实施例的一个方面,提供的一种处理器之间的通信方法,包括:响应于监测到通信链路上有数据,开始接收消息;根据预先设置的帧头标识和帧尾标识,响应于接收完一帧完整的消息,根据预设算法计算所述消息的校验值;比较计算得到的校验值与所述消息中的校验值是否一致;若计算得到的校验值与所述消息中的校验值一致,向发送方返回应答消息。可选地,在上述方法实施例中,若计算得到的校验值与所述消息中的校验值一致,向发送方返回应答消息,包括:根据所述消息中携带的帧类型信息识别所述消息的帧类型;若所述消息的帧类型为数据帧,直接向发送方返回应答消息;否则,若所述消息的帧类型为远程帧,根据所述消息中功能码确定发送方请求的数据;向发送方返回应答消息,该应答消息中包括所述发送方请求的数据。可选地,在上述方法实施例中,帧类型包括:数据帧、远程帧或应答帧;所述数据帧结构包括以下场:帧头、帧类型、功能码、数据长度、数据、校验值、帧尾;所述远程帧结构包括以下场:帧头、帧类型、功能码、校验值、帧尾;所述应答帧结构包括以下场:帧头、帧类型、功能码、数据长度、数据、校验值、帧尾。可选地,在上述方法实施例中,响应于接收完一帧完整的消息,还包括:响应于在所述消息中帧头和帧尾外的其他场读取到转义字符,按照预设方式对所述转义字符进行转义,获得原有字符。根据本发明实施例的另一个方面,提供的另一种处理器之间的通信方法,包括:响应于有数据需要传输或者需要向接收方请求数据,向接收方发送消息,所述消息中包括帧头标识和帧尾标识,所述消息中包括根据预设算法计算获得的所述消息的校验值;响应于接收到接收方反馈的应答消息,根据预设算法计算所述应答消息的校验值;比较计算得到的校验值与所述应答消息中的校验值是否一致;若计算得到的校验值与所述应答消息中的校验值一致,确认所述消息发送成功。可选地,在上述另一种方法实施例中,若计算得到的校验值与所述应答消息中的校验值一致,还包括:识别所述消息中是否包含数据;若所述消息中包含数据,对所述消息中数据场上的数据进行处理。可选地,在上述另一种方法实施例中,帧类型包括:数据帧、远程帧或应答帧;所述数据帧结构包括以下场:帧头、帧类型、功能码、数据长度、数据、校验值、帧尾;所述远程帧结构包括以下场:帧头、帧类型、功能码、校验值、帧尾;所述应答帧结构包括以下场:帧头、帧类型、功能码、数据长度、数据、校验值、帧尾。可选地,在上述另一种方法实施例中,向接收方发送消息之前,还包括:若所述消息中帧头和帧尾外的其他场包括帧头和帧尾标识,按照预设方式,利用所述转义字符对其他场包括的帧头和帧尾标识进行转义,获得转义后字符,所述转义后字符包括所述转义字符。可选地,在上述另一种方法实施例中,还包括:所述向接收方发送消息时,还记录向接收方发送消息的系统时间,并按照预设时间进行计时;响应于超过预设时间未接收到所述消息的应答消息,重新发送所述消息,将重传计数器加1,并执行所述记录向接收方发送消息的系统时间,并按照预设时间进行计时的操作;响应于在超过预设时间接收到所述消息的应答消息,执行所述根据预设算法计算所述应答消息的校验值操作;若计算得到的校验值与所述应答消息中的校验值一致,对所述重传计数器清零。可选地,在上述另一种方法实施例中,响应于超过预设时间未接收到所述消息的应答消息,还包括:识别所述重传计数器是否超过预设重传次数最大值;若所述重传计数器达到预设重传次数最大值,丢弃所述消息,将失败计数器加1;否则,若所述重传计数器未达到预设重传次数最大值,执行所述重新发送所述消息的操作。可选地,在上述另一种方法实施例中,对所述重传计数器清零之后,还包括:识别所述失败计数器是否为零;若所述失败计数器不为零,将所述失败计数器减1。可选地,在上述另一种方法实施例中,还包括:响应于所述失败计数器达到预设失败次数最大值,上报告警信息。根据本发明实施例的又一个方面,提供的一种处理器,包括:第一接收单元,用于在监测到通信链路上有数据时,开始接收消息;以及根据预先设置的帧头标识和帧尾标识,确定接收完一帧完整的消息;第一计算单元,用于在第一接收单元接收完一帧完整的消息时,根据预设算法计算所述消息的校验值;第一比较单元,用于第一计算单元计算得到的校验值与所述消息中的校验值是否一致;第一发送单元,用于在第一计算单元计算得到的校验值与所述消息中的校验值一致时,向发送方返回应答消息。可选地,在上述处理器实施例中,还包括:第一识别单元,用于在第一计算单元计算得到的校验值与所述消息中的校验值一致时,根据所述消息中携带的帧类型信息识别所述消息的帧类型;第一发送单元,具体用于在所述消息的帧类型为数据帧时,直接向发送方返回应答消息;以及在所述消息的帧类型为远程帧时,根据所述消息中功能码确定发送方请求的数据;向发送方返回应答消息,该应答消息中包括所述发送方请求的数据。可选地,在上述处理器实施例中,所述第一接收单元,还用于在接收完一帧完整的消息时,若所述消息中帧头和帧尾外的其他场读取到转义字符,按照预设方式对所述转义字符进行转义,获得原有字符,然后执行所述根据预设算法计算所述消息的校验值的操作。根据本发明实施例的再一个方面,提供的另一种处理器,包括:第二发送单元,用于在有数据需要传输或者需要向接收方请求数据时,向接收方发送消息,所述消息中包括帧头标识和帧尾标识,所述消息中包括根据预设算法计算获得的所述消息的校验值;第二计算单元,用于在接收到接收方反馈的应答消息时,根据预设算法计算所述应答消息的校验值;第二比较单元,用于第二计算单元计算得到的校验值与所述应答消息中的校验值是否一致;若计算得到的校验值与所述应答消息中的校验值一致,确认所述消息发送成功。可选地,在上述另一种处理器实施例中,还包括:第二识别单元,用于在计算得到的校验值与所述应答消息中的校验值一致时,识别所述消息中是否包含数据;数据处理单元,用于在所述消息中包含数据时,对所述消息中的数据进行处理。可选地,在上述另一种处理器实施例中,所述第二发送单元,还用于在向接收方发送消息之前,若所述消息中帧头和帧尾外的其他场包括帧头和帧尾标识,按照预设方式,利用所述转义字符对其他场包括的帧头和帧尾标识进行转义,获得转义后字符,所述转义后字符包括所述转义字符。可选地,在上述另一种处理器实施例中,还包括:第二接收单元,用于接收应答消息;计时器,用于在所述第二发送单元所述向接收方发送消息时,记录向接收方发送消息的系统时间,并按照预设时间进行计时;所述第二发送单元,还用于在第二接收单元超过预设时间未接收到所述消息的应答消息时,重新发送所述消息,将重传计数器加1,并指示计时器记录向接收方发送消息的系统时间,并按照预设时间进行计时;以及在重传计数器达到预设重传次数最大值时,丢弃所述消息,将失败计数器加1;在所述重传计数器未达到预设重传次数最大值时,执行所述重新发送所述消息的操作;所述第二计算单元,具体用于在第二接收单元超过预设时间接收到所述消息的应答消息时,根据预设算法计算所述应答消息的校验值;若计算得到的校验值与所述应答消息中的校验值一致,对所述重传计数器清零;以及识别所述重传计数器是否超过预设重传次数最大值;重传计数器,用于对消息的重传次数进行计数;失败计数器,用于对消息的发送失败次数进行计数。可选地,在上述另一种处理器实施例中,所述第二计算单元,还用于在对所述重传计数器清零之后,识别所述失败计数器是否为零;若所述失败计数器不为零,将所述失败计数器减1。可选地,在上述另一种处理器实施例中,还包括:报警单元,用于在所述失败计数器达到预设失败次数最大值时,上报告警信息。根据本发明实施例的再一个方面,提供的一种电子设备,包括上述任一实施例所述的处理器。基于本发明上述实施例提供的处理器之间的通信方法、处理器和电子设备,提供一种处理器之间通信的应答机制和校验机制,作为发送方的处理器在有数据需要传输或者需要向接收方请求数据时,向接收方发送消息,其中包括帧头标识和帧尾标识,该消息中包括根据预设算法计算获得的所述消息的校验值;响应于接收到接收方反馈的应答消息,根据预设算法计算应答消息的校验值;比较计算得到的校验值与所述应答消息中的校验值是否一致;若计算得到的校验值与所述应答消息中的校验值一致,确认消息发送成功。作为接收方的处理器监测到通信链路上有数据,开始接收消息;根据预先设置的帧头标识和帧尾标识,响应于接收完一帧完整的消息,根据预设算法计算所述消息的校验值;比较计算得到的校验值与所述消息中的校验值是否一致;若计算得到的校验值与所述消息中的校验值一致,向发送方返回应答消息。由此,本发明实施例中,发送方基于应答机制可以获知接收方是否收到由发送方发送的数据;以及接收方和发送方均可以通过消息校验,有效保证传输数据的正确性。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:图1为本发明处理器之间的通信方法一个实施例的流程图。图2为本发明处理器之间的通信方法另一个实施例的流程图。图3为本发明处理器之间的通信方法又一个实施例的流程图。图4为本发明处理器之间的通信方法再一个实施例的流程图。图5为本发明应用实施例中两个处理器之间的一个通信逻辑框图。图6为本发明处理器一个实施例的结构示意图。图7为本发明处理器另一个实施例的结构示意图。图8为本发明处理器又一个实施例的结构示意图。图9为本发明处理器再一个实施例的结构示意图。图10为本发明电子设备一个实施例的结构示意图。具体实施方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。图1为本发明处理器之间的通信方法一个实施例的流程图。如图1所示,该实施例示出了处理器之间通信时,作为消息发送方执行的操作:102,响应于有数据需要传输或者需要向接收方请求数据,向接收方发送消息,该消息中包括帧头标识和帧尾标识、以及根据预设算法计算获得的该消息的校验值。104,响应于接收到接收方反馈的应答消息,根据预设算法计算该应答消息的校验值。106,比较计算得到的校验值与应答消息中的校验值是否一致。108,若计算得到的校验值与应答消息中的校验值一致,确认该消息发送成功。基于本发明上述实施例提供的处理器之间的通信方法,提供一种处理器之间通信的应答机制和校验机制,作为发送方的处理器在有数据需要传输或者需要向接收方请求数据时,向接收方发送消息,其中包括帧头标识和帧尾标识,该消息中包括根据预设算法计算获得的所述消息的校验值;响应于接收到接收方反馈的应答消息,根据预设算法计算应答消息的校验值;比较计算得到的校验值与所述应答消息中的校验值是否一致;若计算得到的校验值与所述应答消息中的校验值一致,确认消息发送成功,发送方基于应答机制可以获知接收方是否收到由发送方发送的数据;以及接收方和发送方均可以通过消息校验,有效保证传输数据的正确性。另外,在图1所示的方法实施例的操作106中,若计算得到的校验值与应答消息中的校验值一致,还可以执行如下操作:根据消息中携带的帧类型信息识别该消息的帧类型;若该消息的帧类型为应答帧,对应答帧中数据场上的数据进行处理。本发明各实施例中,帧类型具体可以包括:数据帧、远程帧或应答帧。其中:数据帧,用于发送方向接收方发送数据;数据帧结构包括以下场:帧头、帧类型、功能码、数据长度、数据、校验值、帧尾;远程帧,用于发送方向接收方请求数据;远程帧结构包括以下场:帧头、帧类型、功能码、校验值、帧尾;应答帧,接收方接收到发送方发来的数据帧或远程帧后,需要向发送方反馈应答帧;应答帧结构包括以下场:帧头、帧类型、功能码、数据长度、数据、校验值、帧尾。如下表1所示,为本发明实施例中数据帧结构的一个具体格式示例;如下表2所示,为本发明实施例中远程帧结构的一个具体格式示例;如下表3所示,为本发明实施例中应答帧结构的一个具体格式示例。表1数据帧结构帧头帧类型功能码1功能码2数据长度数据校验帧尾表2远程帧结构帧头帧类型功能码1功能码2校验帧尾表3应答帧结构帧头帧类型功能码1功能码2数据长度数据校验帧尾其中,上述帧结构中各个场的一个示例性定义如下:帧头:帧头长度为1Byte,可以采用固定的值0x7e。帧类型:帧类型的长度可以为2bit,可以分别赋予如下标识:0b00:数据帧0b01:远程帧0b10:应答帧功能码1:功能码1长度为6bit,取值范围例如可以为0x01——0x3E,用于定义一帧消息的功能。功能码2:功能码2长度为1Byte,取值范围为0x01——0xFF,是功能码1的扩展,在功能码1不能满足需求时使用,不是必须。数据长度:表示数据段数据的长度,数据长度为1Byte——4Byte,在具体使用的时候可以根据实际传输数据的多少决定其长度。数据:实际需要传输的数据,长度任意。校验保存对一帧消息的校验值,校验范围为功能码1、功能码2、数据长度、数据。检验值可以通过预设校验算法对消息中的功能码1、功能码2、数据长度、数据进行计算获得。若消息中有字符需要转义,计算校验值的时候使用该字符原始值计算。对校验算法不做规定,可以根据实际情况进行选择,校验场的长度由选择的校验算法决定。帧尾:帧尾长度为1Byte,例如采用与帧头相同的固定的值0x7e。由于帧头和帧尾都使用了固定的值0x7e,当该字符出现在帧结构中的其他场中时,为了不与帧头、帧尾混淆,可以采用转义算法对其它场中的0x7e进行转义。例如,可以利用特殊字符0x7d作为转义字符。转义算法为:当0x7d出现在数据中时,紧接着的字符的第6个比特要取其补码,即与0x20做异或运算。则:1)当遇到字符0x7e时,需连续编码两个字符:0x7d和0x5e,以实现标志字符转义(0x7e^0x20=0x5e)。2)当遇到转义字符0x7d时,需连续编码两个字符:0x7d和0x5d,以实现转义字符的转义(0x7d^0x20=0x5d)。另外,在基于图1所示方法的另一个实施例中,操作102中,在向接收方发送消息之前,还可以执行如下操作:若消息中帧头和帧尾外的其他场包括帧头和帧尾标识,按照预设方式,利用转义字符对其他场包括的帧头和帧尾标识进行转义,获得转义后字符,转义后字符包括转义字符。进一步地,在上述各实施例的处理器之间的通信方法中,还可以包括:向接收方发送消息时,记录向接收方发送消息的系统时间,并按照预设时间进行计时;以及在向接收方发送消息后,若超过预设时间未接收到消息的应答消息,重新发送该消息,将重传计数器加1,并重新执行记录向接收方发送消息的系统时间,并按照预设时间进行计时的操作;否则,若在超过预设时间接收到消息的应答消息,执行操作102。相应地,在操作108中,若计算得到的校验值与应答消息中的校验值一致,对重传计数器清零。进一步地,在上述实施例中,若超过预设时间未接收到消息的应答消息,还可以执行如下操作:识别重传计数器是否超过预设重传次数最大值;若重传计数器达到预设重传次数最大值,丢弃该消息,将失败计数器加1;否则,若重传计数器未达到预设重传次数最大值,执行重新发送消息的操作。另外,在上述实施例中,对重传计数器清零之后,还可以执行如下操作:识别失败计数器是否为零;若失败计数器不为零,将失败计数器减1。进一步地,还可以在失败计数器达到预设失败次数最大值,上报告警信息。图2为本发明处理器之间的通信方法另一个实施例的流程图。如图2所示,该实施例示出了处理器之间的通信方法中,作为消息发送方执行的操作:202,响应于有数据需要传输或者需要向接收方请求数据,生成消息,该消息相应是数据帧或远程帧,其中包括帧头标识和帧尾标识、以及根据预设算法对该消息进行计算获得的校验值。204,识别消息中帧头和帧尾外的其他场是否包括帧头和帧尾标识。若消息中帧头和帧尾外的其他场包括帧头和帧尾标识,执行操作206。否则,若消息中帧头和帧尾外的其他场未包括帧头和帧尾标识,执行操作208。206,按照预设方式,利用转义字符对消息中其他场包括的帧头和帧尾标识进行转义,获得转义后字符,该转义后字符包括转义字符。208,向接收方发送消息,记录向接收方发送消息的系统时间t,并按照预设时间T进行计时。210,识别是否超过预设时间未接收到消息的应答消息。即:是否在t+T前收到应答消息。若超过预设时间未接收到消息的应答消息,说明通信异常,执行操作212。否则,若在超过预设时间接收到消息的应答消息,说明通信正常,执行操作220。212,识别重传计数器是否超过预设重传次数最大值。若重传计数器达到预设重传次数最大值,执行操作214。否则,若重传计数器未达到预设重传次数最大值,执行操作218。214,丢弃该消息,将失败计数器加1。216,识别失败计数器是否达到预设失败次数最大值。若失败计数器是否达到预设失败次数最大值,上报告警信息。否则,不执行本实施例的后续流程。218,重新发送该消息,将重传计数器加1。之后,执行操作208。220,根据预设算法计算该应答消息的校验值。222,比较计算得到的校验值与应答消息中的校验值是否一致。若计算得到的校验值与应答消息中的校验值一致,确认该消息发送成功,执行操作224和230。否则,确认该消息发送不成功,丢弃该消息,然后执行操作212。224,对重传计数器清零。226,识别失败计数器是否为零。若失败计数器不为零,执行操作228。否则,若失败计数器为零,不执行本实施例的后续流程。228,将失败计数器减1。之后,不执行本实施例的后续流程。230,识别该消息中是否包含数据。若该消息中包含数据,执行操作230。否则,若该消息中不包含数据,不执行本实施例的后续操作。232,对应答帧中数据场上的数据进行处理。图3为本发明处理器之间的通信方法又一个实施例的流程图。如图3所示,该实施例示出了处理器之间通信时,作为消息接收方执行的操作:302,响应于监测到通信链路上有数据,开始接收消息。304,根据预先设置的帧头标识和帧尾标识,响应于接收完一帧完整的消息,根据预设算法计算该消息的校验值。306,比较计算得到的校验值与消息中的校验值是否一致。308,若计算得到的校验值与消息中的校验值一致,向发送方返回应答消息。示例性地,该操作308具体可以包括:根据该消息中携带的帧类型信息识别消息的帧类型;若消息的帧类型为数据帧,直接向发送方返回应答消息;否则,若消息的帧类型为远程帧,根据消息中功能码确定发送方请求的数据,并向发送方返回应答消息,该应答消息中包括发送方请求的数据。基于本发明上述实施例提供的处理器之间的通信方法,提供一种处理器之间通信的应答机制和校验机制,作为接收方的处理器监测到通信链路上有数据,开始接收消息;根据预先设置的帧头标识和帧尾标识,响应于接收完一帧完整的消息,根据预设算法计算所述消息的校验值;比较计算得到的校验值与所述消息中的校验值是否一致;若计算得到的校验值与所述消息中的校验值一致,向发送方返回应答消息。由此,本发明实施例中,发送方基于应答机制可以获知接收方是否收到由发送方发送的数据;以及接收方和发送方均可以通过消息校验,有效保证传输数据的正确性。进一步地,在基于图3所示方法的另一个实施例中,还可以包括:响应于在消息中帧头和帧尾外的其他场读取到转义字符,按照预设方式对转义字符进行转义,获得原有字符。图4为本发明处理器之间的通信方法再一个实施例的流程图。如图4所示,该实施例示出了处理器之间的通信方法中,作为消息接收方执行的操作:402,监测到通信链路上有数据,开始接收消息。404,根据预先设置的帧头标识和帧尾标识,是否接收完一帧消息。若接收完一帧完整的消息,执行操作406。否则,若为接收完一帧完整的消息,继续执行操作402接收消息。406,根据预设算法计算该消息的校验值。408,比较计算得到的校验值与消息中的校验值是否一致。若计算得到的校验值与消息中的校验值一致,执行操作410。410,根据该消息中携带的帧类型信息识别消息的帧类型是否远程帧。若消息的帧类型为远程帧,执行操作412。否则,若消息的帧类型为数据帧,412,根据消息中功能码确定发送方请求的数据,向应答消息中写入发送方请求的数据。之后,不执行本实施例的后续流程。414,直接向发送方返回应答消息。现有技术中,两个处理器之间通信时没有重传机制,即使数据传输错误或者丢失也无法采取任何措施。本发明实施例中,为了保证两个处理器之间通信的可靠性,引入了消息重传机制。此重传机制采用超时重传,可以预设一个超时时间T(在本发明实施例中也称为:预设时间)。发送方发送数据帧(远程帧)时记录该条发送时间t,发送方发送报文后,若在t+T前收到应答帧,说明通信正常;若在t+T时还没有收到应答帧,说明通信异常,发送方重新发送此条报文,从而提高了两个处理器之间本地通信的可靠性。为了防止某一条消息一直在重传,阻塞其它消息,本发明实施例中,预先设置每条消息最大允许重传次数:预设重传次数最大值,并且每条消息都通过一个重传计数器进行重传计数。消息每重传一次,重传计数器加1,如果消息传输成功,重传计数器清零。如果一条消息的重传次数达到最大允许重传次数后依然未发送成功,则放弃发送此条消息,传输失败。另外,本发明实施例中还引入了一个传输失败计数器和一个最大允许失败次数:预设失败次数最大值,每有一条消息传输失败,失败计数器加1,每有一条消息传输成功,失败计数器减1,最小为0。当失败计数器的值到达最大允许失败次数时,说明两个处理器之间的通信存在严重错误,向系统上报告警信息,以便系统可以做出应急处理。图5为本发明处理器之间的通信方法一个应用实施例中,两个处理器之间的一个通信逻辑框图。如图5所示,本实施例以一个具体示例为例,对本发明处理器之间的通信方法实施例进行进一步说明,实际应用中,可以根据实际场景对相应参数进行调整。该应用实施例中,以发送方处理器向接收方处理器发送如下消息1、消息2、消息3,本发明实施例中的通信参数示例如下:超时时间:100ms允许最大重发次数:3允许最大失败次数:100当前失败次数计数器的值:20校验算法使用CRC-8,生成多项式为x8+x2+x+1则该应用实施例中,两个处理器之间的通信流程如下:1,发送方发送消息1,完整报文:0x7E0102013A737E。记录系统时间:10000ms。2,发送方发送消息2,完整报文:0x7E0709027E7D597E。由于消息2中的数据场包含特殊字符,需要转义处理,转义后的报文:0x7E0709027D5E7D5D597E。记录系统时间:10003ms。3,发送方发送消息3,完整报文:0x7E4505017E。记录系统时间:10005ms。4,接收方接收到消息1,并且校验正确,返回应答帧,完整报文:0x7E8102004A7E。5,发送方接收到消息1的应答帧,并且校验正确,此时系统时间为10010ms,没有超时,消息正常传输完成。传输失败计数器减1,当前失败次数计数器的值:19。6,接收方接收到消息3,但是校验不正确,不返回应答帧。7,由于接收方一直没有收到消息2,所有也没有返回应答帧。此时发送方的系统时间为10103ms,已经超时。发送方重新发送消息2,消息2的重发计数器加1,此时消息2的重发计数器的值为1。8,当发生端系统时间为10105ms时,依然没有收到消息3的应答帧,已经超时。发送方重新发送消息3,消息3的重发计数器加1,此时重发计数器的值为1。9,接收方接收到消息3,并且校验正确,返回应答帧,完整报文:0x7E8505015C397E。10,发送方接收到消息3的应答帧,此时系统时间为10112ms,没有超时,但是校验不正确。发送方重新发送消息3,消息3的重发计数器加1,此时消息3的重发计数器的值为2。11,接收方接收到消息3,并且校验正确,返回应答帧,完整报文:0x7E8505015C397E。12,发送方接收到消息3的应答帧,此时系统时间为10122ms,没有超时,校验正确,消息正常传输完成。传输失败计数器减1,当前失败次数计数器的值:18。13,由于接收方一直没有收到消息2,所有也没有返回应答帧。此时发送方的系统时间为10203ms,已经超时。发送方重新发送消息2,消息2的重发计数器加1,此时消息2的重发计数器的值为2。14,由于接收方一直没有收到消息2,所有也没有返回应答帧。此时发送方的系统时间为10303ms,已经超时。发送方重新发送消息2,消息2的重发计数器加1,此时消息2的重发计数器的值为3。15,由于接收方一直没有收到消息2,所有也没有返回应答帧。此时发送方的系统时间为10403ms,已经超时。此时消息2的重发计数器的值为3,已经达到系统允许最大重发次数。消息2传输失败,传输失败计数器加1,当前失败次数计数器的值:19本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图6为本发明处理器一个实施例的结构示意图。该实施例的处理器可作为发送方,实现本发明上述图1至图2任一方法实施例。如图6所示,该实施例的处理器包括:第二发送单元,第二计算单元和第二比较单元。其中:第二发送单元,用于在有数据需要传输或者需要向接收方请求数据时,向接收方发送消息,该消息中包括帧头标识和帧尾标识、以及根据预设算法计算获得的消息的校验值。第二计算单元,用于在接收到接收方反馈的应答消息时,根据预设算法计算应答消息的校验值。第二比较单元,用于第二计算单元计算得到的校验值与应答消息中的校验值是否一致;若计算得到的校验值与应答消息中的校验值一致,确认消息发送成功。基于本发明上述实施例提供的处理器,提供一种处理器之间通信的应答机制和校验机制,作为发送方的处理器在有数据需要传输或者需要向接收方请求数据时,向接收方发送消息,其中包括帧头标识和帧尾标识,该消息中包括根据预设算法计算获得的所述消息的校验值;响应于接收到接收方反馈的应答消息,根据预设算法计算应答消息的校验值;比较计算得到的校验值与所述应答消息中的校验值是否一致;若计算得到的校验值与所述应答消息中的校验值一致,确认消息发送成功,发送方基于应答机制可以获知接收方是否收到由发送方发送的数据;以及接收方和发送方均可以通过消息校验,有效保证传输数据的正确性。图7为本发明处理器另一个实施例的结构示意图。如图7所示,与图6所示的实施例相比,该实施例的处理器作为发送方,还包括第二识别单元和数据处理单元。其中:第二识别单元,用于在计算得到的校验值与应答消息中的校验值一致时,识别该消息中是否包含数据、数据处理单元,用于在该消息中包含数据时,对该消息中的数据进行处理。进一步地,在图6至图7所示的处理器实施例中,第二发送单元,还可用于在向接收方发送消息之前,若消息中帧头和帧尾外的其他场包括帧头和帧尾标识,按照预设方式,利用转义字符对其他场包括的帧头和帧尾标识进行转义,获得转义后字符,转义后字符包括转义字符。另外,再参见图7,作为发送方处理器的又一个实施例,还可以包括:第二接收单元,计时器,重传计数器和失败计数器。其中:第二接收单元,用于接收应答消息。计时器,用于在第二发送单元向接收方发送消息时,记录向接收方发送消息的系统时间,并按照预设时间进行计时。重传计数器,用于对消息的重传次数进行计数。失败计数器,用于对消息的发送失败次数进行计数。相应地,该实施例中,第二发送单元,还可用于在第二接收单元超过预设时间未接收到消息的应答消息时,重新发送消息,将重传计数器加1,并指示计时器记录向接收方发送消息的系统时间,并按照预设时间进行计时;以及在重传计数器达到预设重传次数最大值时,丢弃消息,将失败计数器加1;在重传计数器未达到预设重传次数最大值时,执行重新发送消息的操作。第二计算单元,具体用于在第二接收单元超过预设时间接收到消息的应答消息时,根据预设算法计算应答消息的校验值;若计算得到的校验值与应答消息中的校验值一致,对重传计数器清零;以及识别重传计数器是否超过预设重传次数最大值。进一步地,第二计算单元,还可用于在对重传计数器清零之后,识别失败计数器是否为零;若失败计数器不为零,将失败计数器减1。再参见图7,作为发送方处理器的又一个实施例,还可以包括:报警单元,用于在失败计数器达到预设失败次数最大值时,上报告警信息。图8为本发明处理器又一个实施例的结构示意图。该实施例的处理器可作为接收方,实现本发明上述图3至图4任一方法实施例。如图8所示,该实施例的处理器包括:第一接收单元,第一计算单元,第一比较单元和第一发送单元。其中:第一接收单元,用于在监测到通信链路上有数据时,开始接收消息;以及根据预先设置的帧头标识和帧尾标识,确定接收完一帧完整的消息。第一计算单元,用于在第一接收单元接收完一帧完整的消息时,根据预设算法计算消息的校验值。第一比较单元,用于第一计算单元计算得到的校验值与消息中的校验值是否一致。第一发送单元,用于在第一计算单元计算得到的校验值与消息中的校验值一致时,向发送方返回应答消息。基于本发明上述实施例提供的处理器,提供一种处理器之间通信的应答机制和校验机制,作为接收方的处理器监测到通信链路上有数据,开始接收消息;根据预先设置的帧头标识和帧尾标识,响应于接收完一帧完整的消息,根据预设算法计算所述消息的校验值;比较计算得到的校验值与所述消息中的校验值是否一致;若计算得到的校验值与所述消息中的校验值一致,向发送方返回应答消息,由此,发送方基于应答机制可以获知接收方是否收到由发送方发送的数据;以及接收方和发送方均可以通过消息校验,有效保证传输数据的正确性。图9为本发明处理器再一个实施例的结构示意图。如图9所示,与图8所示的实施例相比,该实施例的处理器作为接收方,还包括第一识别单元和第一发送单元。其中:第一识别单元,用于在第一计算单元计算得到的校验值与消息中的校验值一致时,根据消息中携带的帧类型信息识别消息的帧类型。第一发送单元,具体用于在消息的帧类型为数据帧时,直接向发送方返回应答消息;以及在消息的帧类型为远程帧时,根据消息中功能码确定发送方请求的数据;向发送方返回应答消息,该应答消息中包括发送方请求的数据。进一步地,在上述图8至图9所示的实施例中,第一接收单元,还可用于在接收完一帧完整的消息时,若消息中帧头和帧尾外的其他场读取到转义字符,按照预设方式对转义字符进行转义,获得原有字符,然后执行根据预设算法计算消息的校验值的操作。图10为本发明电子设备一个实施例的结构示意图。本发明实施例的电子设备可以包括上述图6-图7任一实施例的处理器,和/或所示图8-图9所示任一实施例的处理器。基于本发明上述实施例提供的电子设备,提供一种处理器之间通信的应答机制和校验机制,作为发送方的处理器在有数据需要传输或者需要向接收方请求数据时,向接收方发送消息,其中包括帧头标识和帧尾标识,该消息中包括根据预设算法计算获得的所述消息的校验值;响应于接收到接收方反馈的应答消息,根据预设算法计算应答消息的校验值;比较计算得到的校验值与所述应答消息中的校验值是否一致;若计算得到的校验值与所述应答消息中的校验值一致,确认消息发送成功。作为接收方的处理器监测到通信链路上有数据,开始接收消息;根据预先设置的帧头标识和帧尾标识,响应于接收完一帧完整的消息,根据预设算法计算所述消息的校验值;比较计算得到的校验值与所述消息中的校验值是否一致;若计算得到的校验值与所述消息中的校验值一致,向发送方返回应答消息。由此,本发明实施例中,发送方基于应答机制可以获知接收方是否收到由发送方发送的数据;以及接收方和发送方均可以通过消息校验,有效保证传输数据的正确性。本发明实施例可以作为一个数据链路层的协议,保证数据的可靠传输,可以基于IIC(Inter-IntegratedCircuit,集成电路总线)、SPI(SerialPeripheralInterface,串行外设接口)、UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发传输器)等协议之上。需要说明的是:本发明实施例可以应用于任何两个处理器之间的通信场景,例如,在一个具体应用中,用于车辆的底层设备的通信。一般情况下,只要是基于SPI、Uart通信的协议,都可以使用本发明实施例的通信方法;在另一个具体应用中,本发明实施例用于通信的两个处理器,可以是一个电子设备中的两个处理器,也可以是分为位于两个电子设备的不同处理器;在另一个具体应用中,可用于同一个电子设备中的两个处理器之间的通信,例如,仪表板上的CPU(中央处理器)和MCU(微处理器)之间的通信;另外,也可以应用到车辆仪表、车辆智能系统、车辆智能行车记录仪等处理器之间的通信。本发明实施例总的有益技术效果:极大的改善了处理器之间本地通信过程中由于没有应答、没有对数据的有效校验、没有重传机制等原因引起的各种通信问题,有效的提高了通信的可靠性和数据的安全,从而也提高了电子设备的可靠性。本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于设备实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。可能以许多方式来实现本发明的方法和设备。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和设备。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1