CN114301991A - 通信方法、设备、***及计算机可读存储介质 - Google Patents
通信方法、设备、***及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114301991A CN114301991A CN202011003324.2A CN202011003324A CN114301991A CN 114301991 A CN114301991 A CN 114301991A CN 202011003324 A CN202011003324 A CN 202011003324A CN 114301991 A CN114301991 A CN 114301991A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- target
- signal line
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 93
- 238000004891 communication Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 230000000630 rising effect Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 31
- 238000012856 packing Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002265 prevention Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Dc Digital Transmission (AREA)
- Communication Control (AREA)
Abstract
公开了一种通信方法、设备、***及计算机可读存储介质,其中,方法应用于第一设备和第二设备,第一设备和第二设备通过目标信号线实现数据通信,方法包括:第一设备将待发送的多位目标数据按照预设格式构建成至少一个目标数据包,每个目标数据包包括至少一位目标数据和多位标识数据,每个目标数据包中的多位标识数据用于指示对应的目标数据包中目标数据的数量及位置;第一设备将至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形;第一设备将打包后的每一位数据通过目标信号线依次发送给第二设备。利用该方法进行通信时可有效节省第一设备和第二设备的硬件资源,从而降低第一设备和第二设备的开发成本。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种通信方法、通信设备、通信***以及计算机可读存储介质。
背景技术
随着云计算的快速发展,人们对服务器产品的功能及性能的需求越来越高,这导致服务器的配置越来越复杂,服务器单板的规模也越来越大。在这一情况下,为了尽可能地节省硬件资源,降低硬件资源的成本,服务器中不同芯片之间的信号传输通常采用串行通信的方式,例如,串行通用输入输出(serial universal input and output,SGPIO)协议。如图1所示,两个基于SGPIO协议进行通信的芯片之间需要配置4根信号线才能实现信号传输,而4根信号线需要占用芯片的8个输入/输出(input/output,I/O)端口,显而易见的,这一配置并不能很好地节省芯片的硬件资源。因此,如何在保证服务器功能及性能不变的情况下,节省硬件资源,降低硬件的成本,仍是当前亟需解决的问题。
发明内容
本申请公开了一种通信方法、设备、***及计算机可读存储介质,利用该通信方法进行通信时可有效节省通信设备的硬件资源,从而降低硬件的成本。
第一方面,本申请提供了一种通信方法,该方法应用于第一设备和第二设备之间的数据通信,第一设备和第二设备通过目标信号线实现数据通信,该方法包括如下步骤:
第一设备将待发送的多位目标数据按照预设格式构建成至少一个目标数据包,每个目标数据包包括至少一位目标数据和多位标识数据,每个目标数据包中的多位标识数据用于指示对应的目标数据包中目标数据的数量及位置;
第一设备将至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形;
第一设备将打包后的每一位数据通过目标信号线依次发送给第二设备。
实施第一方面描述的方法,第一设备按照预设格式将待发送给第二设备的多位目标数据构建成至少一个目标数据包,然后将至少一个目标数据包中的每一位数据进行打包,最后将打包后的每一位数据通过目标信号线发送给第二设备,从而实现第一设备和第二设备之间的数据通信。可以看出,通过上述方法第一设备和第二设备之间仅需一根信号线(即目标信号线)即可实现第一设备和第二设备之间的数据通信,那么将该方法应用于服务器产品中以实现数据通信时,可以有效地节省硬件资源,降低硬件成本。
在一种可能的实现方式中,当至少一个目标数据包中的一位数据为二进制数据0时,在一个数据周期内,上述一位数据对应的信号波形包括一个信号上升沿和一个信号下降沿;当至少一个目标数据包中的一位数据为二进制数据1时,在一个数据周期内,上述一位数据对应的信号波形包括一个信号上升沿,且不包括信号下降沿。
可以看出,在一个数据周期内,二进制数据0和二进制数据1具有不同的信号波形,那么第一设备可以在一个数据周期打包一位数据,这样可以使得不同的数据在打包后具有不同的信号波形,从而方便第二设备可以根据信号波形来确定第一设备发送的是数据为二进制数据0还是二进制数据1。
在一种可能的实现方式中,多位标识数据包括多位第一标识数据和多位第二标识数据,第一标识数据和第二标识数据不同;预设格式包括:目标数据包包括数据包头和至少一个数据段,数据包头包括多位连续的第一标识数据和至少一位第二标识数据,至少一个数据段中的每个数据段包括至少一位目标数据和至少一位第二标识数据,数据包头中的多位连续的第一标识数据的数量大于每个数据段中的至少一位目标数据的数量。
可以看出,通过上述预设方式构建目标数据包时,可以将数据包头与数据段进行区分,使得数据包头是唯一的,从而使得第二设备在解析目标数据包时,可以根据数据包头的唯一性,确定数据包头的位置,进一步确定对应的数据段及数据段中的目标数据,从而实现第一设备与第二设备之间的数据通信。
在一种可能的实现方式中,上述方法应用于芯片之间的数据通信,第一设备包括第一芯片,第二设备包括第二芯片。
可以看出,由于上述方法仅需一根信号线便可实现数据通信,因此将上述方法应用于芯片之间的数据通信时,可以有效地节省芯片的硬件资源,从而降低硬件的成本。
在一种可能的实现方式中,上述方法应用于判断第一设备与第二设备之间的目标信号线是否连接正确,第一设备发送给第二设备的多位目标数据中包括目标信号线的标识信息,目标信号线的标识信息用于指示目标信号线,使得第二设备可以根据获得的目标信号线的标识信息判断目标信号线是否连接正确。
可以看出,利用上述方法第一设备可以将目标信号线的标识信息发送给第二设备,使得第二设备能够有效地判断目标信号线是否连接正确,当第二设备确定目标信号线连接错误时,第二设备可以发出告警信息,使得用户能够及时将连接错误的目标信号线重新进行连接,从而提高数据通信的安全性以及准确性。
第二方面,本申请提供了一种通信方法,该方法应用于第一设备和第二设备之间的数据通信,第一设备和第二设备通过目标信号线实现数据通信,该方法包括如下步骤:
第二设备通过目标信号线接收第一设备发送的打包后的每一位数据,并根据打包后的每一位数据对应的信号波形,确定每一位数据,从而获得至少一个目标数据包;
第二设备根据预设格式对至少一个目标数据包进行解析,从而得到至少一个目标数据包中的多位目标数据。
实施第二方面描述的方法,由于打包后的每一位数据具有不同的信号波形,因此第二设备可以根据接收到的打包后的数据对应的信号波形确定第一设备发送给第二设备的每一位数据,从而得到至少一个目标数据包。然后,第二设备通过解析至少一个目标数据包,可以获得至少一个目标数据包中包括的多位目标数据,从而实现第一设备和第二设备之间的数据通信。
在一种可能的实现方式中,第二设备根据打包后的每一位数据对应的信号波形,确定每一位数据,包括:当第二设备检测到打包后的每一位数据对应的信号波形处于上升沿时,第二设备开始计时,并在预设时刻采集数据;在第二设备采集到低电平的情况下,第二设备确定采集到的数据为二进制数据0;在第二设备采集到高电平的情况下,第二设备确定采集到的数据为二进制数据1。通过上述方式,第二设备能够准确获得第一设备发送的每一位数据。
在一种可能的实现方式中,上述方法应用于芯片之间的数据通信,第一设备包括第一芯片,第二设备包括第二芯片。
在一种可能的实现方式中,上述方法应用于判断第一设备与第二设备之间的目标信号线是否连接正确,多位目标数据包括目标信号线的标识信息,目标信号线的标识信息用于指示目标信号线,在第二设备得到目标数据包中的多位目标数据之后,上述方法还包括:第二设备判断多位目标数据中包括的所述目标信号线的标识信息与预设信息是否匹配;在目标信号线的标识信息与预设信息匹配的情况下,第二设备确定目标信号线连接正确;在目标信号线的标识信息与预设信息不匹配的情况下,第二设备确定目标信号线连接错误。
第三方面,本申请提供了一种第一设备,第一设备与第二设备通过目标信号线实现数据通信,第一设备包括数据包构建单元、数据打包单元以及数据收发单元,
数据包构建单元用于将待发送的多位目标数据按照预设格式构建成至少一个目标数据包,每个目标数据包包括至少一位目标数据和多位标识数据,每个目标数据包中的多位标识数据用于指示对应的目标数据包中目标数据的数量及位置;
数据打包单元用于将至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形;
数据收发单元用于将打包后的每一位数据通过目标信号线依次发送给第二设备。
在一种可能的实现方式中,当至少一个目标数据包中的一位数据为二进制数据0时,在一个数据周期内,一位数据对应的信号波形包括一个信号上升沿和一个信号下降沿;当至少一个目标数据包中的一位数据为二进制数据1时,在一个数据周期内,一位数据对应的信号波形包括一个信号上升沿,且不包括信号下降沿。
在一种可能的实现方式中,多位标识数据包括多位第一标识数据和多位第二标识数据,第一标识数据和第二标识数据不同;
预设格式包括:目标数据包包括数据包头和至少一个数据段,数据包头包括多位连续的第一标识数据和至少一位第二标识数据,至少一个数据段中的每个数据段包括至少一位目标数据和至少一位第二标识数据,数据包头中的多位连续的第一标识数据的数量大于每个数据段中的至少一位目标数据的数量。
第四方面,本申请提供了一种第二设备,第一设备和第二设备通过目标信号线实现数据通信,第二设备包括数据收发单元和数据包解析单元,
数据收发单元用于通过目标信号线接收第一设备发送的打包后的每一位数据,并根据打包后的每一位数据对应的信号波形,确定每一位数据,从而获得至少一个目标数据包;
数据包解析单元用于根据预设格式对至少一个目标数据包进行解析,从而得到至少一个目标数据包中的多位目标数据。
在一种可能的实现方式中,数据收发单元具体用于:当检测到打包后的每一位数据对应的信号波形处于上升沿时,开始计时,并在预设时刻采集数据;在采集到低电平的情况下,确定采集到的数据为二进制数据0;在采集到高电平的情况下,确定采集到的数据为二进制数据1。
在一种可能的实现方式中,第一设备包括第一芯片,第二设备包括第二芯片。
在一种可能的实现方式中,第二设备还包括判断单元,判断单元用于判断多位目标数据中包括的目标信号线的标识信息与预设信息是否匹配,其中,目标信号线的标识信息用于指示目标信号线;在目标信号线的标识信息与预设信息匹配的情况下,确定目标信号线连接正确;在目标信号线的标识信息与预设信息不匹配的情况下,确定目标信号线连接错误。
第五方面,本申请提供了另一种第一设备,第一设备包括处理器和存储器,处理器执行存储器中的代码以实现第一方面所描述的部分或全部步骤。
第六方面,本申请提供了另一种第二设备,第二设备包括处理器和存储器,处理器执行存储器中的代码以实现第二方面所描述的部分或全部步骤。
第七方面,本申请提供了一种计算机可读存储介质,存储有计算机指令,计算机指令用于实现第一方面所描述的部分或全部步骤。
第八方面,本申请提供了一种计算机可读存储介质,存储有计算机指令,计算机指令用于实现第二方面所描述的部分或全部步骤。
第九方面,本申请提供了一种通信***,通信***包括第一设备和第二设备,第一设备用于执行第一方面所描述的部分或全部步骤,第二设备用于执行第二方面所描述的部分或全部步骤。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种SGPIO协议的拓扑图;
图2是本申请实施例提供的一种识别线缆是否连接正确的原理示意图;
图3是本申请实施例提供的一种单线异步串行通信协议的拓扑图;
图4是本申请实施例提供的一种通信方法的流程示意图;
图5是本申请实施例提供的一种可能的目标数据包的预设格式的示意图;
图6是本申请实施例提供的另一种可能的目标数据包的预设格式的示意图;
图7是本申请实施例提供的一种不同数据在同一数据周期内对应的信号波形的示意图;
图8是本申请实施例提供的一种数据打包方式的示意图;
图9是本申请实施例提供的一种第一设备的结构示意图;
图10是本申请实施例提供的一种第二设备的结构示意图;
图11是本申请实施例提供的另一种第一设备的结构示意图;
图12是本申请实施例提供的另一种第二设备的结构示意图;
图13是本申请实施例提供的一种通信***的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本申请实施例提供的技术方案,首先介绍本申请实施例适用的应用场景:芯片之间的通信,具体可以包括芯片之间的数据传输、线缆防误插、硬盘点灯等。
近年来,云计算产业迅猛发展,使得人们对服务器产品的功能及性能的需求越来越高,这也进一步导致了服务器的配置越来越复杂,服务器单板的规模也越来越大,服务器产品的制作成本也越来越高。因此,如何在保证服务器产品功能及性能不变的情况下,尽可能地节省硬件资源,降低硬件资源的成本,是当前亟需解决的问题之一。
设备间的通信方式包括串行通信和并行通信,相较于并行通信,串行通信具有结构简单、信号线少、容易实现远距离的信号传输以及成本低等优点。因此,当前的服务器产品中通常采用串行通信的方式来实现服务器内部不同芯片(例如,复杂可编程逻辑器件(complex programming logic device,CPLD))之间的通信,例如,SGPIO协议。如图1所示,图1示出了SGPIO协议的拓扑图。图1中芯片A为主设备(master),芯片B为从设备(slave),芯片A和芯片B之间通过SGPIO协议(即一组SGPIO总线)实现通信。
一组SGPIO总线具体可以包括4根信号线,分别是:时钟线、信号加载线、数据输出线以及数据输入线。其中,时钟线用于传输从芯片A发往芯片B的时钟信号(CLK),从而使得芯片A和芯片B能够实现同步通信;信号加载线用于传输从芯片A发往芯片B的数据加载和同步信号(Load),数据加载和同步信号用于指示一帧新的数据即将开始传输;数据输出线用于传输从芯片A发往芯片B的数据信号(DataOut);数据输入线用于传输从芯片B发往芯片A的数据信号(DataIn)。
从图1可以看出,芯片A通过4个I/O端口(例如,端口1-端口4)与4根信号线的一侧相连,芯片B通过4个I/O端口(例如,端口5-端口8)与4根信号线的另一侧相连,也就是说,需要占用芯片A的4个I/O端口以及芯片B的4个I/O端口,才能实现芯片A和芯片B之间的通信。可以理解的,在芯片A向芯片B发送数据,但芯片B不用向芯片A发送数据的情况下,一组SGPIO总线包括的信号线可以相应地减少为3根,即时钟线、信号加载线以及数据输出线。但在这种情况下,仍需要占用的芯片A的3个I/O端口,芯片B的3个I/O端口。总的来说,SGPIO总线占用的硬件资源(I/O资源)较多,因此在芯片A和/或芯片B的I/O端口短缺的应用场景中SGPIO协议并不适用。
当图1中的芯片A和芯片B通过SGPIO总线建立连接后,芯片A和芯片B之间可以进行数据传输。但是为了避免数据传输出现错误,在数据传输之前,需要判断芯片A和芯片B之间的信号线(线缆)是否连接正确。为了节省芯片A和芯片B的硬件资源,通常基于脉冲宽度调制(pulse width modulation,PWM)信号的波形来识别线缆是否连接正确。如图2所示,图2示出了利用PWM信号识别线缆是否连接正确的原理示意图。图2中,芯片A的端口1通过时钟线向芯片B的端口5发送PWM信号(PWM 1),芯片A的端口2通过信号加载线向芯片B的端口6发送PWM信号(PWM 2),芯片A的端口3通过数据输出线向芯片B的端口7发送PWM信号(PWM 3),芯片A的端口4通过数据输入线向芯片B的端口8发送PWM信号(PWM 4)。其中,PWM 1的占空比为3/7,PWM 2的占空比为2/3,PWM 3的占空比为1,PWM 4的占空比为3/2。因此,芯片B可以根据芯片A发送的PWM信号的占空比确定信号线是否连接正确,具体地,以时钟线为例,当芯片B的端口5接收到芯片A的端口1发送的PWM 1后,检测到PWM 1的占空比为3/7,然后判断PWM1的占空比与预设占空比是否相同,当PWM 1的占空比与预设占空比相同时,芯片B确定时钟线连接正确,即时钟线为连接在芯片A的端口1和芯片B的端口5之间的线缆。应理解,芯片B判断信号加载线、数据输出线以及数据输入线的是否连接正确方式与上述判断时钟线的是否连接正确的方式类似,此处不再展开赘述。
图2示出的利用4个不同占空比的PWM信号来判断4根信号线是否连接正确,这种方法虽然仅通过一根信号线便可判断对应的线缆是否连接正确,但这种方法并不适用于线缆数量过多的场景。这是因为:PWM信号的占空比是一种粗略性地计算,也就是说,PWM信号上能承载的数据是有限且不精确的,而在实际的服务器产品中,芯片B可能不仅与芯片A通信,还可能还与其他多个芯片或设备相连,这时芯片B(例如,端口5)上插接了大量的线缆,那么端口5也会接收到大量的PWM信号。当端口5接收到这些PWM信号后,通过计算这些PWM信号的占空比可能得到多个近似相等的占空比,这时端口5将无法准确地判断出这些占空比近似相等的PWM信号对应的线缆是否连接正确。例如,芯片B的端口5上接收到了2个占空比近似为3/7的PWM信号,其中,一个为芯片A的端口1发送的,另一个为芯片C的端口9发送的,此时,芯片B将无法判断出时钟线的另一端是连接在芯片A的端口1上,还是连接在芯片C的端口9上,从而无法判断出时钟线是否连接正确。
为了解决上述问题,本申请实施例提供了一种单线异步串行通信协议,如图3所示,图3示出了本申请实施例提供的单线异步串行通信协议的拓扑图,从图3可以看出,该协议仅需1根信号线(目标信号线)便可以实现第一设备和第二设备之间的数据通信。因此,利用本申请实施例提供的单线异步串行通信协议进行数据通信能够有效地节省硬件资源。另外,利用本申请实施例提供的单线异步串行通信协议传输线缆信息时,还能够有效地判断第一设备和第二设备之间的线缆(包括目标信号线)是否连接正确。为了更加清晰地了解本申请实施例提供的单线异步串行通信协议,下面将以图3中的第一设备和第二设备之间的数据通信为例,对该协议进行详细介绍。
请参见图4,图4示出了本申请实施例提供的一种通信方法的流程示意图,本申请实施例提供的通信方法包括但不限于如下步骤:
S101:第一设备将待发送的多位目标数据按照预设格式构建成至少一个目标数据包。
其中,待发送的多位目标数据均为二进制数据,具体包括二进制数据0和二进制数据1。至少一个目标数据包中的每个目标数据包包括至少一位目标数据和多位标识数据,每个目标数据包中的多位标识数据用于指示对应的目标数据中目标数据的数量及位置。
在一具体的实施例中,多位标识数据包括多位第一标识数据和多位第二标识数据,且第一标识数据和第二标识数据不同。
在一具体的实施例中,预设格式包括:目标数据包包括数据包头和至少一个数据段,数据包头包括多位连续的第一标识数据和至少一位第二标识数据,至少一个数据段中的每个数据段包括至少一位目标数据和至少一位第二标识数据,且数据包头中的多位连续的第一标识数据的数量大于每个数据段中的至少一位目标数据的数量。可以理解的,本申请设计的预设格式中数据包头中的多位连续的第一标识数据的数量大于每个数据段中的至少一位目标数据的数量的目的是:在目标数据包中,可以将数据包头与数据段进行区分,使得数据包头是唯一的,从而使得后续解析数据包时,可以根据数据包头的唯一性,确定数据包头的位置,从而确定对应的数据段及数据段中的目标数据。
在一更具体的实施例中,以图5为例,图5示出了一种可能的目标数据包的预设格式。图5中,目标数据包包括数据包头和M个数据段。数据包头从左往右依次包括N+1位连续的二进制数据1和一位二进制数据0,M个数据段中的每个数据段从左往右依次包括N位目标数据和一位二进制数据0。其中,M和N均为用户预先设定的,M和N均为正整数。例如,假设M=3,N=4,则数据包头从左往右依次包括5位连续的二进制数据1和一位二进制数据0,即“111110”,3个数据段中的每个数据段从左往右依次包括4位目标数据和一位二进制数据0,即“xxxx0”,也就是说,目标数据包为“111110xxxx0 xxxx0 xxxx0”。
可以理解的,以图5为例,第一标识数据为二进制数据1,第二标识数据为二进制数据0,在实际应用中,第一标识数据还可以为二进制数据0,第二标识数据还可以为二进制数据1,此处不作具体限定,例如,假设M=3,N=4,则数据包头从左往右依次包括5位连续的二进制数据0和一位二进制数据1,即“000001”,3个数据段中的每个数据段从左往右依次包括4位目标数据和一位二进制数据1,即“xxxx1”,也就是说,目标数据包为“000001xxxx1xxxx1 xxxx1”。
另外,以图5为例,数据包头中包括N+1位连续的第一标识数据,M个数据段中的每个数据段中包括N位目标数据,但在实际应用中,数据包头中的连续的第一标识数据的数量还可以为N+K,此处不作具体限定。其中,K>1且K为正整数。例如,假设M=3,N=4,K=2,则数据包头从左往右依次包括6位连续的二进制数据1和一位二进制数据0,即“1111110”,3个数据段中的每个数据段从左往右依次包括4位目标数据和一位二进制数据0,即“xxxx0”,也就是说,目标数据包为“1111110xxxx0 xxxx0 xxxx0”。
可选的,以图6为例,目标数据包的预设结构还可以是:目标数据包包括数据包头和M个数据段。数据包头从右往左依次包括N+1位连续的二进制数据1和一位二进制数据0,M个数据段中的每个数据段从右往左依次包括N位目标数据和一位二进制数据0。其中,M和N均为用户预先设定的,M和N均为正整数。例如,假设M=3,N=4,则数据包头从右往左依次包括5位连续的二进制数据1和一位二进制数据0,即“011111”,3个数据段中的每个数据段从右往左依次包括4位目标数据和一位二进制数据0,即“0xxxx”,也就是说,目标数据包为“011111 0xxxx 0xxxx 0xxxx”。
可以理解的,以图6为例,第一标识数据为二进制数据1,第二标识数据为二进制数据0,在实际应用中,第一标识数据还可以为二进制数据0,第二标识数据还可以为二进制数据1,此处不作具体限定。例如,例如,假设M=3,N=4,则数据包头从右往左依次包括5位连续的二进制数据0和一位二进制数据1,即“100000”,3个数据段中的每个数据段从右往左依次包括4位目标数据和一位二进制数据1,即“1xxxx”,也就是说,目标数据包为“1000001xxxx 1xxxx 1xxxx”。
另外,以图6为例,数据包头中包括N+1位连续的第一标识数据,M个数据段中的每个数据段中包括N位目标数据,但在实际应用中,数据包头中的连续的第一标识数据的数量可以还可以为N+K,此处不作具体限定。其中,K>1且K为正整数。例如,假设M=3,N=4,K=2,则数据包头从右往左依次包括6位连续的二进制数据1和一位二进制数据0,即“0111111”,3个数据段中的每个数据段从右往左依次包括4位目标数据和一位二进制数据0,即“0xxxx”,也就是说,目标数据包为“0111111 0xxxx 0xxxx 0xxxx”。
S102:第一设备将至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形。
在一具体的实施例中,当至少一个目标数据包中的一位数据为二进制数据0时,在一个数据周期内,所述一位数据对应的信号波形包括一个信号上升沿和一个信号下降沿。当至少一个目标数据包中的一位数据为二进制数据1时,在一个数据周期内,所述一位数据对应的信号波形包括一个信号上升沿,且不包括信号下降沿。由于在一个数据周期内,二进制数据0和二进制数据1具有不同的信号波形,因此第一设备可以在一个数据周期打包一位数据,这样可以使得不同的数据在打包后具有不同的信号波形。
如图7所示,图7示出在一个数据周期内,二进制数据0对应的波形以及二进制数据1对应的波形。从图7可以看出,二进制数据0和二进制数据1在一个数据周期内呈现出不同的波形。具体地,以图7为例,一个数据周期为时刻t1~时刻t4这一段时长,对于二进制数据0来说,时刻t1~时刻t2为低电平信号,时刻t2从低电平跳变为高电平(即信号上升沿),时刻t2~时刻t3为高电平信号,时刻t3从高电平跳变为低电平(即信号下降沿),时刻t3~时刻t4为低电平信号,那么,在一个数据周期内,二进制数据0对应的信号波形中包括一个信号上升沿和一个信号下降沿。对于二进制数据1来说,时刻t1~时刻t2为低电平信号,时刻t2从低电平跳变为高电平(即信号上升沿),时刻t2~时刻t4为高电平信号,那么,在一个数据周期内,二进制数据0对应的信号波形中包括一个信号上升沿,但不包括信号下降沿。
需要说明的,图7中,在一个数据周期内,二进制数据0和二进制数据1对应的信号波形都存在一个信号上升沿,这是因为:在目标信号线开始传输数据之前,目标信号线处于断电空闲状态,此时相当于输出低电平,即在时刻t1~时刻t2为低电平信号;当目标信号线开始传输数据时,目标信号线处于通电工作状态,此时相当于输出高电平。因此,在一个数据周期内,无论是二进制数据0对应的信号波形还是二进制数据1对应的信号波形都会存在从低电平到高电平的跳变,即在时刻t2出现信号上升沿。可以理解的,在目标信号线传输数据后,对于传输二进制数据0,相当于输出低电平,因此在时刻t3出现从高电平跳变为低电平(即信号下降沿),在时刻t3~时刻t4为低电平信号。对于传输二进制数据1,相当于输出高电平,因此在时刻t2~时刻t4均为高电平信号。
在一具体的实施例中,数据周期为用户预先设定的,数据周期可以是这样得到的:用户根据第一设备和第二设备的内部主时钟,确定第一设备和第二设备之间能够实现通信的工作时钟(以下简称为工作时钟),然后确定至少需要S个工作时钟才能够保证二进制数据0对应的信号波形和二进制数据1对应的信号波形不同,也就是说,至少需要S个工作时钟才能够保证二进制数据0对应的信号波形包括一个信号上升沿和一个信号下降沿,二进制数据1对应的信号波形包括一个信号上升沿,但不包括信号下降沿。那么,一个数据周期的数值等于S个工作时钟对应的时长,其中,S>0且S为正整数。需要说明的是,在实际应用中,为了保证数据打包的准确性,在S个工作时钟(即一个数据周期)内,二进制数据0对应的信号波形除了包括一个信号上升沿和一个信号下降沿,还应包括信号上升沿前的一段低电平信号对应的波形,以及信号下降沿后的一段低电平信号对应的波形;二进制数据1对应的波形除了包括一个信号上升沿,还应包括信号上升沿前的一段低电平信号对应的波形,以及信号上升沿后的一段高电平信号对应的波形,具体可参见后文中图8示出的数据打包方式。
例如,假设第一设备和第二设备为CPLD芯片,CPLD芯片的内部主时钟为25兆赫兹(mega Hertz,MHz),因此第一设备和第二设备可以将25MHz的内部主时钟作为通信的工作时钟。经测试发现,如图8所示,二进制数据0在第1-3个主时钟周期(即25MHz)为低电平,在第4个主时钟周期为高电平,在第5-16个主时钟周期为低电平;二进制数据1在第1-3个主时钟周期为低电平,在第4-16个主时钟周期为高电平。那么,第一设备可以选取16个主时钟周期作为一个数据周期,一个数据周期为16/25M=0.64μs。因此,第一设备可以每16个主时钟周期打包一位数据,这样打包后的二进制数据0和打包后的二进制数据1具有不同的信号波形。可以理解的,打包后的二进制数据0为一个时长为0.64μs的信号。打包后的二进制数据1为时长为0.64μs的信号。
需要说明的,当第一设备和第二设备具有相同的内部主时钟时,可选用第一设备和第二设备的内部主时钟作为工作时钟,当第一设备和第二设备的内部主时钟不同时,可通过倍频的方式使得第一设备的工作时钟与第二设备的工作时钟近似相等,并将近似相等的工作时钟作为第一设备与第二设备之间进行通信的工作时钟。本申请中第一设备和第二设备的工作时钟近似相等或完全相等的目的是:由于第一设备在一个数据周期打包一位数据,那么第二设备需要在一个数据周期采集一位数据,这样第二设备才能准确接收到第一设备发送的数据。
S103:第一设备将打包后的每一位数据通过目标信号线依次发送给第二设备。
其中,对于二进制数据0来说,打包后的二进制数据0为一段包括有一个信号上升沿和一个信号下降沿的信号。对于二进制数据1来说,打包后的二进制数据1为一段包括有一个信号上升沿,但不包括信号下降沿的信号。
S104:第二设备通过目标信号线接收第一设备发送的打包后的每一位数据,并根据打包后的每一位数据对应的信号波形,确定每一位数据,从而获得上述至少一个目标数据包。
在一具体的实施例中,以第一设备发送的打包后的任一位数据为例,当第二设备检测到打包后的某一位数据对应的信号波形处于上升沿时,第二设备开始计时,并在预设时刻采集数据。在第二设备采集到低电平的情况下,第二设备确定采集到的数据为二进制数据0;在第二设备采集到高电平的情况下,第二设备确定采集到的数据为二进制数据1。通过上述方式,第二设备可以确定出第一设备发送的每一位数据,从而获得上述至少一个目标数据包。
在一具体的实施例中,预设时刻为预设的工作时钟周期。以图8为例,预设时刻可以是图8示出的第5个主时钟周期至第16个主时钟周期中的任一个主时钟周期。具体地,当第二设备通过目标信号线检测到信号上升沿时,第二设备启动内部主时钟开始计时,计时X个主时钟周期后开始采集数据,如果第二设备采集到低电平,则第二设备确定采集到的数据为二进制数据0,如果第二设备采集到高电平,则第二设备确定采集到的数据为二进制数据1。其中,2<X<13,且X为正整数。可以理解的,当第二设备检测到信号上升沿时,第二设备开始计时,相当于第二设备从图8中的第4个主时钟周期开始计时,那么2<X<13相当于图8中的第5个主时钟周期至第16个主时钟周期中的任一个主时钟周期。
S105:第二设备根据预设格式对至少一个目标数据包进行解析,从而得到至少一个目标数据包中的多位目标数据。
具体实现中,当第一设备通过目标信号线将上述至少一个目标数据包全部发送至第二设备后,第二设备会得到多位数据。然后,第二设备根据预设格式,确定多位数据中有哪些数据构成了数据包头,从而确定多位数据中哪些数据为目标数据。
在一具体的实施例中,第二设备获得多位数据后,根据预设格式中数据包头包括多位连续的第一标识数据,确定多位数据中多个数据包头的位置,然后根据每个数据包头的位置确定对应目标数据包中每个数据段以及每个数据段中的目标数据,从而得到每个目标数据包中的目标数据,进一步得到多位目标数据。
例如,假设第二设备接收到的多位数据为“111110 01010 10110 11100”,目标数据包的格式为图5示出的结构,且M=3,N=4。那么第二设备接收到多位数据后,首先根据确定多位数据中的连续5个二进制数据1的位置,从而确定数据包头的位置以及数据包头为“111110”。然后,提取出数据包头后的4位数据,即第一数据段中的目标数据“0101”,并确定第一数据段为“01010”。然后,提取出第一数据段后的4位数据,即第二数据段中的目标数据“1011”,并确定第二数据段为“10110”。然后,提取出第二数据段后的4位数据,即第三数据段中的目标数据“1110”,并确定第三数据段为“11100”。从而得到目标数据包中的有效数据为“0101 1011 1110”。
在一具体的实施例中,图4示出的通信方法可应用于芯片之间的数据通信,那么,第一设备包括第一芯片,第二设备包括第二芯片。第一芯片可以与第二芯片的类型相同,例如,第一芯片和第二芯片均为CPLD芯片。第一芯片也可以与第二芯片的类型不同,例如,第一芯片为CPLD芯片,第二芯片为数字信号处理(digital signal processing,DSP)芯片等等。芯片之间的具体的数据通信过程请参见后文的步骤11-步骤13中的详细叙述。
在另一具体的实施例中,图4示出的通信方法还可应用于线缆防误插的场景中,即判断第一设备与第二设备之间的目标信号线是否连接正确。可选的,第一设备和第二设备可以是芯片,也可以是单板等等,此处不作具体限定。具体过程请参见后文的步骤21-步骤23中的详细叙述。
下面将通过步骤11-步骤13以及步骤21-步骤23分别介绍图4示出的通信方法的2种应用场景。
应用场景一:实现芯片之间的数据传输
步骤11:设计单板原理图。
具体地,根据第一芯片和第二芯片之间的通信要求,在第一芯片和第二芯片之间设计一根或两根信号线。其中,当第一芯片需向第二芯片发送数据,但第二芯片无需向第一芯片发送数据时,可以在芯片A和芯片B之间设计一根信号线;当第一芯片与第二芯片之间互相发送数据时,可以在第一芯片与第二芯片之间设计两根信号线。其中,第一芯片和第二芯片可以设置在同一个单板上,也可以设置在不同的单板上,此处不作具体限定。
步骤12:编写单板的逻辑代码。
具体地,按照前述内容中涉及的通信协议(包括数据打包、数据包结构、数据接收等)编写第一芯片和第二芯片之间进行数据收发的相关代码。
步骤13:制作单板。
具体地,按照单板原理图制成单板后,将编写好的逻辑代码按照需求烧录到第一芯片和第二芯片中。
步骤14:测试单板。
具体地,运行程序,测试并改进第一芯片和第二芯片之间的信号线上的信号波形,以保证第一芯片和第二芯片之间的硬件链路稳定。之后,通过收发数据(例如,判断发送的数据与接收到的数据是否一致)验证第一芯片和第二芯片之间的数据通信是否正常,当第一芯片和第二芯片之间的数据通信正常时,说明第一芯片和第二芯片之间可实现数据通信。
应用场景二:实现线缆防误插
步骤21:第一设备向第二设备发送至少一个目标数据包。
其中,至少一个目标数据包中包括多位目标数据,多位目标数据包括目标信号线的标识信息,目标信号线的标识信息用于指示目标信号线。可选的,目标信号线的标识信息包括目标信号线的线缆编号。
步骤22:第二设备接收第一设备发送的至少一个目标数据包,并对至少一个目标数据包进行解析,得到至少一个目标数据包中包括的多位目标数据。
步骤23:第二设备判断多位目标数据中包括的目标信号线的标识信息与预设信息是否匹配。如果目标信号线的标识信息与预设信息匹配,则第二设备确定目标信号线连接正确;如果目标信号线的标识信息与预设信息不匹配,则第二设备确定目标信号线连接错误。
其中,第二设备上存储有预设信息,预设信息包括至少一条信号线的标识信息以及至少一条信号线的连接信息,至少一条信号线的标识信息与至少一条信号线的连接信息存在一一对应的关系。信号线的标识信息和信号线的连接信息都用于指示该信号线。信号线的标识信息可以是信号线的线缆编号,信号线的连接信息可以包括连接有该信号线的两个端口的信息,也可以是连接有该信号线的两个端口中的一个端口(该端口不是第二设备上存储有预设信息的端口)的信息,此处不作具体限定。至少一条信号线的标识信息包括目标信号线的标识信息,至少一条信号线的连接信息包括目标信号线的连接信息,可选的,目标信号线的连接信息包括第一设备的端口1的信息和第二设备的端口2的信息,或目标信号线的连接信息为第一设备的端口1的信息。目标信号线的标识信息与预设信息匹配指的是:目标信号线的标识信息与预设信息中任一个的信号线的标识信息一致,且对应的信号线的连接信息指示的端口包括第一设备的端口1(发送目标信号线的标识信息的端口)。
在一具体的实施例中,当第二设备确定目标信号线连接错误时,第二设备可以发出告警信息,以告知用户目标信号线连接错误,使得用户可以及时地发现目标信号线连接错误,并重新连接目标信号线,从而使得第一设备与第二设备之间的数据通信更加准确且安全。
举例说明,假设目标线缆的编号为0001,以图5示出的预设格式为例,若M=1,N=4,则目标数据包的数据包头为“111110”,数据段为“00010”,即目标数据包为“11111000010”。第一设备通过目标信号线将目标数据包发送给第二设备后,第二设备的端口2会接收到该目标数据包,从而得到目标数据(即目标信号线的编号)为“0001”。第二设备将目标数据与预设信息进行匹配,确定目标数据与预设信息中的目标信号线的编号一致,且目标数据为第一设备的端口1发送的,符合预设信息中的目标信号线的连接信息。此时,第二设备确定目标信号线连接正确。
可以理解的,上述步骤21-步骤23仅仅介绍了第一设备和第二设备之间的一条线缆(即目标信号线)是如何判断是否连接正确的方法,在实际应用中,第一设备和第二设备之间的其他线缆也可以通过步骤21-步骤23中叙述的方法来判断线缆是否连接正确。尤其是当第一设备和第二设备之间的线缆的数量过多(例如,100条线缆)时,相较于图2示出的判断线缆连接是否正确的方法,通过步骤21-步骤23中叙述的方法可以有效且准确地判断出所有线缆是否连接正确,从而实现线缆防误插功能。
前述内容详细阐述了本申请实施例的方法,为了更好地实施本申请实施例提供的方法,接下来将介绍本申请实施例提供的用于配合实施上述方法的相关设备及***。
如图9所示,图9示出了本申请实施例提供的一种第一设备的结构示意图,第一设备包括数据包构建单元110、数据打包单元120以及数据收发单元130,其中,
数据包构建单元110用于将待发送的多位目标数据按照预设格式构建成至少一个目标数据包,每个目标数据包包括至少一位目标数据和多位标识数据,每个目标数据包中的多位标识数据用于指示对应的目标数据包中目标数据的数量及位置。
数据打包单元120用于将至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形。
数据收发单元130用于将打包后的每一位数据通过目标信号线依次发送给第二设备。
在一具体的实施例中,当至少一个目标数据包中的一位数据为二进制数据0时,在一个数据周期内,一位数据对应的信号波形包括一个信号上升沿和一个信号下降沿;当至少一个目标数据包中的一位数据为二进制数据1时,在一个数据周期内,一位数据对应的信号波形包括一个信号上升沿,且不包括信号下降沿。
在一具体的实施例中,多位标识数据包括多位第一标识数据和多位第二标识数据,第一标识数据和第二标识数据不同;预设格式包括:目标数据包包括数据包头和至少一个数据段,数据包头包括多位连续的第一标识数据和至少一位第二标识数据,至少一个数据段中的每个数据段包括至少一位目标数据和至少一位第二标识数据,数据包头中的多位连续的第一标识数据的数量大于每个数据段中的至少一位目标数据的数量。
在一具体的实施例中,第一设备可以是芯片,也可以是包括芯片的单板等等,此处不作具体限定。第二设备可以是芯片,也可以是包括芯片的单板等等,此处不作具体限定。第一设备和第二设备为同一设备,也可以为不同的设备。
为了简便陈述,本申请实施例并没有对预设格式、打包后的每一位数据对应的信号波形、等进行详细说明,具体请参见S101-S102中的相关内容叙述,此处不再进行赘述。上述实施例也没有对第一设备中数据包构建单元110构建目标数据包的过程、数据打包单元120打包数据的过程进行详细说明,具体请参见S101-S102的相关叙述,此处不再展开赘述。
本申请实施例的第一设备仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将第一设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的第一设备与上述方法实施例中的第一设备属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
如图10所示,图10示出了本申请实施例提供的一种第二设备的结构示意图,第二设备包括数据收发单元210和数据包解析单元220。
数据收发单元210用于通过目标信号线接收第一设备发送的打包后的每一位数据,并根据打包后的每一位数据对应的信号波形,确定每一位数据,从而获得至少一个目标数据包;
数据包解析单元220用于根据预设格式对至少一个目标数据包进行解析,从而得到至少一个目标数据包中的多位目标数据。
在一具体的实施例中,数据收发单元210具体用于:当检测到打包后的每一位数据对应的信号波形处于上升沿时,开始计时,并在预设时刻采集数据;在采集到低电平的情况下,确定采集到的数据为二进制数据0;在采集到高电平的情况下,确定采集到的数据为二进制数据1。
在一种可能的实现方式中,第二设备还包括判断单元230,判断单元230用于判断多位目标数据中包括的目标信号线的标识信息与预设信息是否匹配,其中,目标信号线的标识信息用于指示目标信号线;在目标信号线的标识信息与预设信息匹配的情况下,确定目标信号线连接正确;在目标信号线的标识信息与预设信息不匹配的情况下,确定目标信号线连接错误。
在一具体的实施例中,第一设备可以是芯片,也可以是包括芯片的单板等等,此处不作具体限定。第二设备可以是芯片,也可以是包括芯片的单板等等,此处不作具体限定。第一设备和第二设备为同一设备,也可以为不同的设备。
为了简便陈述,本申请实施例并没有对打包后的每一位数据对应的信号波形、预设格式、预设信息等进行详细说明,具体请参见S101-S102、步骤23中的相关内容叙述,此处不再进行赘述。上述实施例也没有对第二设备中数据包解析单元220解析目标数据包的过程进行详细说明,具体请参见S105的相关叙述,此处不再展开赘述。
本申请实施例的第二设备仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将第二设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的第二设备与上述方法实施例中的第二设备属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
如图11所示,图11示出了本申请实施例提供的另一种第一设备的结构示意图,第一设备包括处理器310、通信接口320和存储器330。其中,处理器310、通信接口320以及存储器330通过总线340进行耦合。
处理器310可以是中央处理器(central processing unit,CPU),通用处理器、DSP、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件(programmablelogic device,PLD)、CPLD、晶体管逻辑器件、硬件部件或者其任意组合。处理器310可以实现或执行结合本申请实施例所描述的各种示例性的方法。具体的,处理器310读取存储器330中存储的程序代码,并与通信接口320配合执行S101-S103以及步骤21的部分或者全部步骤。
通信接口320可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、控制器局域网络接口、局域互联网络(local interconnectnetwork,LIN)以及FlexRay接口,无线接口可以是蜂窝网络接口或使用无线局域网接口等。具体的,通信接口220可以与其他设备连接,例如,通信接口320可以与其他电子设备350(例如,第二设备)相连,以便实现第一设备和第二设备之间的数据通信。
存储器330可以包括易失性存储器,例如随机存取存储器(random accessmemory,RAM);存储器330也可以包括非易失性存储器,例如只读存储器(read onlymemory,ROM)、快闪存储器、硬盘(hard disk drive,HDD)或固态硬盘(solid state drive,SSD),存储器330还可以包括上述种类的存储器的组合。存储器330可以存储有程序代码以及程序数据。其中,程序代码由图9示出的第一设备中的部分或者全部单元的代码组成,例如,数据包构建单元110的代码、数据打包单元120的代码以及数据收发单元130。程序数据由图9示出的第一设备在运行程序的过程中产生的数据,例如,目标数据、第一标识数据、第二标识数据等等。
总线340可以是控制器局域网络(controller area network,CAN)或其他实现内部总线。总线340可以分为地址总线、数据总线、控制总线等。为了便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例中的第一设备用于执行上述方法实施例中的第一设备执行的方法,与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
如图12所示,图12示出了本申请实施例提供的另一种第二设备的结构示意图,第二设备包括处理器410、通信接口420和存储器430。其中,处理器410、通信接口420以及存储器430通过总线440进行耦合。
处理器410可以是CPU,通用处理器、DSP、ASIC、FPGA、PLD、CPLD、晶体管逻辑器件、硬件部件或者其任意组合。处理器410可以实现或执行结合本申请公开内容所描述的各种示例性的方法。具体的,处理器410读取存储器430中存储的程序代码,并与通信接口420配合执行S104-S105以及步骤22-步骤23的部分或者全部步骤。
通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、控制器局域网络接口、LIN以及FlexRay接口,无线接口可以是蜂窝网络接口或使用无线局域网接口等。具体的,通信接口420可以与其他电子设备450(例如,第一设备)连接,以便实现第一设备和第二设备之间的数据通信。
存储器430可以包括易失性存储器,例如RAM;存储器430也可以包括非易失性存储器,例如ROM、快闪存储器、HDD或SSD,存储器430还可以包括上述种类的存储器的组合。存储器430可以存储有程序代码以及程序数据。其中,程序代码由图10示出的第二设备中的部分或者全部单元的代码组成,例如,数据收发单元210的代码、数据包解析单元220的代码以及判断单元230中的代码。程序数据由图10示出的第二设备在运行程序的过程中产生的数据,例如,目标数据、第一标识数据、第二标识数据、预设信息等。
总线440可以是CAN或其他实现内部总线。总线440可以分为地址总线、数据总线、控制总线等。为了便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例中的第二设备用于执行上述方法实施例中的第二设备执行的方法,与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
本申请实施例还提供了一种通信***,如图13所示,图13示出的通信***,图13示出的通信***包括第一设备510和第二设备520,第一设备510和第二设备520之间通过目标信号线连接。第一设备510可以是图9示出的第一设备,也可是图11示出的第一设备,第一设备510用于执行上述方法实施例中的第一设备执行的方法,其具体实现过程详见上述方法实施例,这里不再赘述。第二设备520可以是图10示出的第二设备,也可以是图12示出的第二设备,第二设备520用于执行上述方法实施例中的第二设备执行的方法,其具体实现过程详见上述方法实施例,这里不再赘述。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在计算设备(例如,图9或图11示出的第一设备)上运行时,使得计算设备执行上述方法实施例中的第一设备执行的方法。
本申请还提供了另一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在计算设备(例如,图10或图12示出的第二设备)上运行时,使得计算设备执行上述方法实施例中的第二设备执行的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(如,同轴电缆、光纤、数字用户线)或无线(如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(如,软盘、存储盘、磁带)、光介质(如,DVD)、或者半导体介质(如,SSD)等。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,也可以通过其它的方式实现。例如以上所描述的装置实施例仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可结合或者可以集成到另一个***,或一些特征可以忽略或不执行。另一点,所显示或讨论的相互之间的间接耦合或者直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例的方案的目的。
另外,在本申请各实施例中的各功能单元可集成在一个处理单元中,也可以是各单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质例如可包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或光盘等各种可存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种通信方法,其特征在于,应用于第一设备和第二设备,所述第一设备和所述第二设备通过目标信号线实现数据通信,所述方法包括:
所述第一设备将待发送的多位目标数据按照预设格式构建成至少一个目标数据包,每个目标数据包包括至少一位所述目标数据和多位标识数据,所述每个目标数据包中的多位标识数据用于指示对应的目标数据包中目标数据的数量及位置;
所述第一设备将所述至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形;
所述第一设备将打包后的每一位数据通过所述目标信号线依次发送给所述第二设备。
2.根据权利要求1所述的方法,其特征在于,当所述至少一个目标数据包中的一位数据为二进制数据0时,在一个数据周期内,所述一位数据对应的信号波形包括一个信号上升沿和一个信号下降沿;当所述至少一个目标数据包中的一位数据为二进制数据1时,在一个数据周期内,所述一位数据对应的信号波形包括一个信号上升沿,且不包括信号下降沿。
3.根据权利要求1或2所述的方法,其特征在于,所述多位标识数据包括多位第一标识数据和多位第二标识数据,所述第一标识数据和所述第二标识数据不同;
所述预设格式包括:所述目标数据包包括数据包头和至少一个数据段,所述数据包头包括多位连续的所述第一标识数据和至少一位所述第二标识数据,所述至少一个数据段中的每个数据段包括至少一位目标数据和至少一位第二标识数据,所述数据包头中的多位连续的第一标识数据的数量大于所述每个数据段中的至少一位目标数据的数量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述第二设备通过所述目标信号线接收所述第一设备发送的所述打包后的每一位数据,并根据所述打包后的每一位数据对应的信号波形,确定所述每一位数据,从而获得所述至少一个目标数据包;
所述第二设备根据所述预设格式对所述至少一个目标数据包进行解析,从而得到所述多位目标数据。
5.根据权利要求4所述的方法,其特征在于,所述第二设备根据所述打包后的每一位数据对应的信号波形,确定所述每一位数据,包括:
当所述第二设备检测到所述打包后的每一位数据对应的信号波形处于上升沿时,所述第二设备开始计时,并在预设时刻采集数据;
在所述第二设备采集到低电平的情况下,所述第二设备确定采集到的数据为二进制数据0;
在所述第二设备采集到高电平的情况下,所述第二设备确定采集到的数据为二进制数据1。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法应用于芯片之间的数据通信,所述第一设备包括第一芯片,所述第二设备包括第二芯片。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法应用于判断所述目标信号线是否连接正确,所述多位目标数据包括所述目标信号线的标识信息,所述目标信号线的标识信息用于指示所述目标信号线,在所述第二设备得到所述目标数据包中的多位目标数据之后,所述方法还包括:
所述第二设备判断所述多位目标数据中包括的所述目标信号线的标识信息与预设信息是否匹配;
在所述目标信号线的标识信息与所述预设信息匹配的情况下,所述第二设备确定所述目标信号线连接正确;
在所述目标信号线的标识信息与所述预设信息不匹配的情况下,所述第二设备确定所述目标信号线连接错误。
8.一种第一设备,其特征在于,所述第一设备与第二设备通过目标信号线实现数据通信,所述第一设备包括数据包构建单元、数据打包单元以及数据收发单元,
所述数据包构建单元用于将待发送的多位目标数据按照预设格式构建成至少一个目标数据包,每个目标数据包包括至少一位所述目标数据和多位标识数据,所述每个目标数据包中的多位标识数据用于指示对应的目标数据包中目标数据的数量及位置;
所述数据打包单元用于将所述至少一个目标数据包中的每一位数据进行打包,以使得不同的数据在打包后具有不同的信号波形;
所述数据收发单元用于将打包后的每一位数据通过所述目标信号线依次发送给第二设备。
9.根据权利要求8所述的设备,其特征在于,当所述至少一个目标数据包中的一位数据为二进制数据0时,在一个数据周期内,所述一位数据对应的信号波形包括一个信号上升沿和一个信号下降沿;当所述至少一个目标数据包中的一位数据为二进制数据1时,在一个数据周期内,所述一位数据对应的信号波形包括一个信号上升沿,且不包括信号下降沿。
10.根据权利要求8或9所述的设备,其特征在于,所述多位标识数据包括多位第一标识数据和多位第二标识数据,所述第一标识数据和所述第二标识数据不同;
所述预设格式包括:所述目标数据包包括数据包头和至少一个数据段,所述数据包头包括多位连续的所述第一标识数据和至少一位所述第二标识数据,所述至少一个数据段中的每个数据段包括至少一位所述目标数据和至少一位所述第二标识数据,所述数据包头中的多位连续的第一标识数据的数量大于所述每个数据段中的至少一位目标数据的数量。
11.根据权利要求8-10任一项所述的设备,其特征在于,所述第一设备还包括数据包解析单元,
所述数据包收发单元还用于通过所述目标信号线接收所述第二设备发送的打包后的多位数据,并根据所述打包后的多位数据中的每一位数据对应的信号波形,确定所述打包后的多位数据中的每一位数据,从而获得至少一个数据包;
所述数据包解析单元用于根据所述预设格式对所述至少一个数据包进行解析,从而得到所述至少一个数据包中的目标数据。
12.根据权利要求11所述的设备,其特征在于,所述数据收发单元具体用于:
当检测到所述打包后的每一位数据对应的信号波形处于上升沿时,开始计时,并在预设时刻采集数据;
在采集到低电平的情况下,确定采集到的数据为二进制数据0;
在采集到高电平的情况下,确定采集到的数据为二进制数据1。
13.根据权利要求11或12任一项所述的设备,其特征在于,所述第一设备用于判断所述目标信号线是否连接正确,所述至少一个数据包中的目标数据包括所述目标信号线的标识信息,所述目标信号线的标识信息用于指示所述目标信号线,所述第一设备还包括线缆判断单元,所述线缆判断单元用于:
判断所述至少一个数据包中的目标数据中包括的所述目标信号线的标识信息与预设信息是否匹配;
在所述目标信号线的标识信息与所述预设信息匹配的情况下,确定所述目标信号线连接正确;
在所述目标信号线的标识信息与所述预设信息不匹配的情况下,确定所述目标信号线连接错误。
14.一种第一设备,其特征在于,所述第一设备包括处理器和存储器,所述处理器执行所述存储器中的代码以实现权利要求1至7中第一设备执行的方法。
15.一种计算机可读存储介质,其特征在于,存储有计算机指令,所述计算机指令用于实现权利要求1至7中第一设备执行的方法。
16.一种通信***,所述通信***包括第一设备和第二设备,所述第一设备用于实现权利要求1至7中第一设备执行的方法,所述第二设备执行权利要求1至7中第二设备执行的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011003324.2A CN114301991B (zh) | 2020-09-22 | 2020-09-22 | 通信方法、设备、***及计算机可读存储介质 |
PCT/CN2021/117847 WO2022062925A1 (zh) | 2020-09-22 | 2021-09-11 | 通信方法、设备、***及计算机可读存储介质 |
EP21871296.6A EP4207643A4 (en) | 2020-09-22 | 2021-09-11 | COMMUNICATION METHOD, DEVICE AND SYSTEM AND COMPUTER READABLE STORAGE MEDIUM |
US18/187,173 US20230231940A1 (en) | 2020-09-22 | 2023-03-21 | Communication Method and System, Device, and Computer-Readable Storage Medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011003324.2A CN114301991B (zh) | 2020-09-22 | 2020-09-22 | 通信方法、设备、***及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114301991A true CN114301991A (zh) | 2022-04-08 |
CN114301991B CN114301991B (zh) | 2023-10-20 |
Family
ID=80845001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011003324.2A Active CN114301991B (zh) | 2020-09-22 | 2020-09-22 | 通信方法、设备、***及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230231940A1 (zh) |
EP (1) | EP4207643A4 (zh) |
CN (1) | CN114301991B (zh) |
WO (1) | WO2022062925A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546095B (zh) * | 2022-04-25 | 2022-07-01 | 沐曦科技(北京)有限公司 | 基于多运算设备的master选择方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1706139A (zh) * | 2002-10-17 | 2005-12-07 | 高通股份有限公司 | 用于在通信***中传送和接收数据块的方法和装置 |
US20180278521A1 (en) * | 2017-03-22 | 2018-09-27 | Cisco Technology, Inc. | System and method for providing a bit indexed service chain |
CN110247734A (zh) * | 2019-06-18 | 2019-09-17 | 合肥奕斯伟集成电路有限公司 | 一种数据传输方法、装置及电子设备 |
CN110244604A (zh) * | 2019-05-29 | 2019-09-17 | 北京大豪科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN110659232A (zh) * | 2019-09-12 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种事件信息传输方法、装置、设备及存储介质 |
CN111090268A (zh) * | 2020-03-24 | 2020-05-01 | 上海飞旗网络技术股份有限公司 | 基于线程划分的数据采集方法、装置及数据采集设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3136742B2 (ja) * | 1992-02-14 | 2001-02-19 | 日産自動車株式会社 | 通信装置 |
US6853644B1 (en) * | 1999-12-22 | 2005-02-08 | Intel Corporation | Method and apparatus for driving data packets |
JP4902355B2 (ja) * | 2003-12-08 | 2012-03-21 | クゥアルコム・インコーポレイテッド | 改良されたリンク同期を備えた高速データレートインタフェース |
EP1553738A1 (en) * | 2004-01-12 | 2005-07-13 | Thomson Licensing S.A. | Method and apparatus for generating data packets |
CN101459654A (zh) * | 2007-12-14 | 2009-06-17 | 联想移动通信科技有限公司 | 一种多协议业务数据封装解析方法、接收端和发送端 |
-
2020
- 2020-09-22 CN CN202011003324.2A patent/CN114301991B/zh active Active
-
2021
- 2021-09-11 EP EP21871296.6A patent/EP4207643A4/en active Pending
- 2021-09-11 WO PCT/CN2021/117847 patent/WO2022062925A1/zh unknown
-
2023
- 2023-03-21 US US18/187,173 patent/US20230231940A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1706139A (zh) * | 2002-10-17 | 2005-12-07 | 高通股份有限公司 | 用于在通信***中传送和接收数据块的方法和装置 |
US20180278521A1 (en) * | 2017-03-22 | 2018-09-27 | Cisco Technology, Inc. | System and method for providing a bit indexed service chain |
CN110244604A (zh) * | 2019-05-29 | 2019-09-17 | 北京大豪科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN110247734A (zh) * | 2019-06-18 | 2019-09-17 | 合肥奕斯伟集成电路有限公司 | 一种数据传输方法、装置及电子设备 |
CN110659232A (zh) * | 2019-09-12 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种事件信息传输方法、装置、设备及存储介质 |
CN111090268A (zh) * | 2020-03-24 | 2020-05-01 | 上海飞旗网络技术股份有限公司 | 基于线程划分的数据采集方法、装置及数据采集设备 |
Non-Patent Citations (1)
Title |
---|
宋丫等: "一种RS422总线通信数据管理及解析方法", 信息通信 * |
Also Published As
Publication number | Publication date |
---|---|
US20230231940A1 (en) | 2023-07-20 |
CN114301991B (zh) | 2023-10-20 |
EP4207643A1 (en) | 2023-07-05 |
WO2022062925A1 (zh) | 2022-03-31 |
EP4207643A4 (en) | 2023-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737182B (zh) | 串行通信参数自动配置方法及*** | |
CN112653600A (zh) | 基于usb网卡的网卡性能测试方法、装置及电子设备 | |
CN103416035B (zh) | 具有can总线模块及自动速度检测的微控制器 | |
US9258244B1 (en) | Protocol for communications in potentially noisy environments | |
US7872979B1 (en) | System and method to access and address high-speed interface converter devices | |
CN111177060B (zh) | 串口数据发送方法、接收方法、相应装置及终端设备 | |
CN110708133B (zh) | 一种基于fpga的***内时钟同步和时间同步的方法及装置 | |
US20230231940A1 (en) | Communication Method and System, Device, and Computer-Readable Storage Medium | |
CN113032319A (zh) | 基于fpga的车载***数据传输方法及同步高速串行总线结构 | |
EP2006777A1 (en) | Bus inverting code generating apparatus and method of generating bus inverting code using the same | |
CN110175145B (zh) | Mdio接口通信方法和电路 | |
CN113726592B (zh) | 一种边缘服务器的传输延迟测试方法、***及相关组件 | |
US20070258478A1 (en) | Methods and/or apparatus for link optimization | |
CN112835834B (zh) | 数据传输*** | |
CN115526142A (zh) | 以太网降速方法、***、介质及fpga验证平台 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及*** | |
CN111930582A (zh) | ***管理总线检测平台、处理器及***管理总线检测方法 | |
CN117112480B (zh) | 一种两线通信方法、装置及芯片 | |
CN115982087B (zh) | 信号传输方法、计算机设备和存储介质 | |
CN114443400B (zh) | 信号测试方法、装置、片上***、电子设备及存储介质 | |
CN114884768B (zh) | 一种总线空闲状态的检测装置、***及检测方法 | |
CN118353972A (zh) | 机载设备网卡以及机载设备通信*** | |
CN103106162B (zh) | 逻辑器件及其mdio接口通信方法 | |
Li | Network Implementation with TCP Protocol: A server on FPGA handling multiple connections | |
CN116974970A (zh) | Usb2.0降速桥以及数据传输*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |