CN115622919A - 基于多处理器数据发送方法、装置及相关组件 - Google Patents
基于多处理器数据发送方法、装置及相关组件 Download PDFInfo
- Publication number
- CN115622919A CN115622919A CN202211319712.0A CN202211319712A CN115622919A CN 115622919 A CN115622919 A CN 115622919A CN 202211319712 A CN202211319712 A CN 202211319712A CN 115622919 A CN115622919 A CN 115622919A
- Authority
- CN
- China
- Prior art keywords
- data
- data bus
- target
- bus
- sending
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
Abstract
本发明公开了一种基于多处理器数据发送方法、装置及相关组件。该方法包括对数据总线进行监听;若空闲,则向数据总线发送第一数据,使数据总线返回第二数据;接收并基于返回的第二数据,判断第二数据是否符合预设的冲突检测规则;若符合,则获取数据总线控制权,并基于第二数据,发送对应的目标数据至数据总线,使数据总线将目标数据发送至目标端;若不符合,则执行延迟处理步骤,并在执行完后继续监听。该方法可实现在驱动级自动检测数据总线状态,实现各个发送端即插件板卡之间的数据自由收发,同时,可以提高数据传输的可靠性。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种基于多处理器数据发送方法、装置及相关组件。
背景技术
目前串口通信是指装置内部中的处理器和处理器之间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式,这种通信方式使用的数据线少,在远距离通信中可以节约通信成本。
其中,各个处理器之间通过串口传输数据时,得先申请总线控制权,只有在获取总线控制权后,才能发送数据,否则数据将不被允许发送。如有多个处理器需要发送数据时,都得在获取总线控制权后才能发送数据。
由于各个处理器之间的数据都是高速传输的,波特率达到4Mbps,当数据传输量多的时候,需要频繁申请数据总线的控制权,从而对数据传输的可靠性产生不良影响。
发明内容
本发明的目的是提供一种基于多处理器数据发送方法、装置及相关组件,旨在解决数据传输的过程容易出现数据参数不稳定的问题。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的:提供一种基于多处理器数据发送方法,其包括:
对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;
接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;
若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端;
若所述第二数据不符合预设的冲突检测规则,则执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听。
通过上述技术方案,对数据总线进行监听,只有在数据总线处于空闲状态,才发送第一数据,以减少各个发送端同时发送第一数据的情况,在接收到返回的第二数据后,对第二数据执行冲突检测规则判断,若是符合预设的冲突检测规则,则获取数据总线控制权,并向目标端发送目标数据,若是不符合预设的冲突检测规则,则停止数据发送,并执行延迟处理步骤,使得发送端延时监听数据总线的状态,从而对发送端的数据再次发送起到避让的目的,通过这种方式,有效实现各个发送端之间的数据自由收发,且在数据传输过程中,提高了数据传输的可靠性,另外,提高了异步串行通信工作效率,降低了编程人员的工作量以及代码的繁琐性。
优选的,所述对数据总线进行监听,判断所述数据总线是否空闲,包括:
读取寄存器的预设位的状态,若所述寄存器的预设位的状态为目标状态,则判定所述数据总线空闲,若所述寄存器的预设位的状态为非目标状态,则判定所述数据总线非空闲。
通过上述技术方案,通过寄存器的预设位的状态判断,可以快速判断出数据总线是否空闲。
优选的,所述若所述数据总线空闲,则向所述数据总线发送第一数据,包括:
若所述数据总线空闲,则进入通讯状态,并向所述数据总线发送第一数据,其中,所述通讯状态包括发送状态和接收状态。
通过上述技术方案,若是数据总线空闲,则同时进入发送状态和接收状态,在发送端处于发送状态时,发送端可以向数据总线发送数据,在发送端处于接收状态时,发送端可以接收数据总线返回的第二数据。
优选的,所述接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则,包括:
读取所述第一数据中的所有字节;
读取所述第二数据中的所有字节;
根据预设的字节位置顺序,判断各所述第一数据和对应的第二数据是否相同,若各所述第一数据和对应的第二数据均相同,则判定所述第二数据符合预设的冲突检测规则,若各所述第一数据和对应的第二数据不相同,则判定所述第二数据不符合预设的冲突检测规则。
通过上述技术方案,通过对第一数据和第二数据中每一字节的判断,可以有效判断出第一数据和第二数据是否相同,若是相同,则说明第二数据符合预设的冲突检测规则,反之,则说明第二数据不符合预设的冲突检测规则。
优选的,所述若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,包括:
若所述第二数据符合预设的冲突检测规则,则获取所述数据总线的控制权,并退出接收状态;
基于所述第二数据,将所述目标数据发送至所述数据总线。
通过上述技术方案,通过退出接收状态的模式,使得该发送端不再接收其发送至数据总线的目标数据,从而减少干扰目标数据的发送。
优选的,所述若所述第二数据不符合预设的冲突检测规则,则继续对所述数据总线进行监听,包括:
若所述第二数据不符合预设的冲突检测规则,则退出通讯状态,并对数据总线进行监听。
通过上述技术方案,通过退出通讯状态,减少发送端的工作执行,即减少发送端的负荷。
优选的,所述执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听,包括:
利用退避算法,计算得到目标延时值;
获取并记录初始时间值,将所述初始时间值和所述目标延时值进行相加,得到监听开始值;
获取当前时间值,判断当前时间值是否达到所述监听开始值,若当前时间值达到所述监听开始值,则对所述数据总线进行监听,若当前时间值达到所述监听开始值,则继续判断当前时间值是否达到所述监听开始值。
通过上述技术方案,利用退避算法获取目标延时值,基于目标延时值,获取监听开始值,发送端只有在监听开始值后才能继续对数据总线进行监听,从而有效实现同时发送数据的发送端在新一轮数据发送出现错位。
另外,本发明要解决的技术问题是还在于提供一种基于多处理器数据发送装置,其包括:
第一监听单元,用于对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;
判断单元,用于接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;
发送单元,用于若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端;
第二监听单元,用于若所述第二数据不符合预设的冲突检测规则,则执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听。
通过上述技术方案,对数据总线进行监听,只有在数据总线处于空闲状态,才发送第一数据,以减少各个发送端同时发送第一数据的情况,在接收到返回的第二数据后,对第二数据执行冲突检测规则判断,若是符合预设的冲突检测规则,则获取数据总线控制权,并向目标端发送目标数据,若是不符合预设的冲突检测规则,则停止数据发送,并执行延迟处理步骤,使得发送端延时监听数据总线的状态,从而对发送端的数据再次发送起到避让的目的,通过这种方式,有效实现各个发送端之间的数据自由收发,且在数据传输过程中,提高了数据传输的可靠性,另外,提高了异步串行通信工作效率,降低了编程人员的工作量以及代码的繁琐性。
另外,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于多处理器数据发送方法。
另外,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于多处理器数据发送方法。
本发明实施例公开了一种基于多处理器数据发送方法、装置及相关组件,其中,方法包括:对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端;若所述第二数据不符合预设的冲突检测规则,则执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听。该方法在发送数据前,自动检测数据总线状态,只有在数据总线处于空闲状态时,数据才允许被发送,在进行目标数据发送前,会进行冲突检测,如果检测到发生数据冲突,则停止发送目标数据,并采用可靠的延迟处理步骤,使得不同的发送端可以顺利发送对应的数据,即实现各个发送端之间的数据自由收发,又提高了数据传输的可靠性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于多处理器数据发送方法的流程示意图;
图2为本发明实施例提供的基于多处理器数据发送装置的示意性框图;
图3为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的基于多处理器数据发送方法的流程示意图;
如图1所示,该方法包括步骤S101~S105。
S101、对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则执行步骤S102,若所述数据总线不空闲,则继续对数据总线进行监听;
S102、向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;
S103、接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;若所述第二数据符合预设的冲突检测规则,则执行步骤S104,若所述第二数据不符合预设的冲突检测规则,则执行步骤S105;
S104、获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端;
S105、执行延迟处理步骤,并在执行完后返回步骤S101。
在本实施例中,发送端即插件板卡,需要说明的是,一个数据总线上有多个发送端,每个发送端通过串口传输数据时,得先申请数据总线控制权,只有在得到数据总线的控制权后,发送端才能对数据进行传递,例如A发送端要向B接收端发送目标数据时,A发送端需要先获取数据总线的控制权,才能将目标数据正确的发送给B接收端。
在相关技术中,各个发送端有可能同时在数据总线上发送对应的目标数据,由于数据总线只有一个,所以会导致各个目标数据在数据总线中出现冲突,即各个目标数据出现数据干扰例如数据错位的现象,这会导致目标端接收到的数据出现错误。
故本申请的基于多发送端数据发送方法,首先通过对数据总线进行监听,只有在监听结果为数据总线空闲的时候,发送端才允许发送数据,具体的,在监听到数据总线为空闲时,发送端向数据总线发送第一数据,数据总线接收到第一数据后会向该发送端返回第二数据,发送端接收该第二数据,并判断第二数据是否符合预设的冲突检测规则,若第二数据符合预设的冲突检测规则,则说明数据总线没有其他的发送端也在发送对应的第一数据,同理可知,若第二数据不符合预设的冲突检测规则,则说明数据总线有其他的发送端也在发送对应的第一数据,也可以理解为,如果2个以上的发送端监听到数据总线处于空闲状态,故同时向数据总线发送对应的第一数据,则2个第一数据会在数据总线内产生冲突现象,从而造成数据错乱。
在判断出第二数据符合预设的冲突检测规则后,获取数据总线的控制权,并根据第二数据,获取对应的目标数据,并将目标数据发送至数据总线,需要说明的是,数据总线接收到目标数据后将目标数据发送至对应的其他端。
或者,在判断出第二数据不符合预设的冲突检测规则后,执行延迟处理步骤,并在执行完后继续对数据总线进行监听,应当理解的是,通过延迟处理步骤,使得2个同时发送数据的发送端再次发送数据的发送时间错开,也就是说,其中一个发送端做出让位动作,即可以使得与其同时发送的发送端可以先发送数据,或者也可以设置成与其同时发送的发送端可以后发送数据。
本申请基于多发送端数据发送方法,在发送数据前,自动检测数据总线状态,只有在数据总线空闲的时候,数据才可以被发送,同时,在数据发送的过程中,自动进行冲突检测,如果检测到数据冲突,则停止发送数据,并基于延迟处理,延缓数据的再次发送时间,也就是说,通过上述方式,可以有效提高异步串行通信工作效率,实现各个发送端之间的数据发送准确性,且可实现在驱动级自动检测数据总线状态,实现各个发送端即插卡之间的数据自由收发。
具体一实施例中,所述步骤S101,包括以下步骤:
S20、读取寄存器的预设位的状态,若所述寄存器的预设位的状态为目标状态,则执行步骤S21;若所述寄存器的预设位的状态为非目标状态,则执行步骤S22;
S21、判定所述数据总线空闲;
S22、判定所述数据总线非空闲。
在本实施例中,寄存器的预设位会根据数据总线的空闲状态会自动填充相应的显示数字,例如数据总线的状态为空闲,则预设位的显示数字为1,此时寄存器的预设位的状态为目标状态,若数据总线的状态为非空闲,则预设位的显示数字为2,寄存器的预设位的状态为非目标状态。
具体一实施例中,所述步骤S102,包括以下步骤:
S30、进入通讯状态,其中,所述通讯状态包括发送状态和接收状态;
S31、向所述数据总线发送第一数据;
在本实施例中,需要发送数据时,先进入通讯状态,即启动发送功能和接收功能,使得发送端可以基于发送功能向数据总线发送第一数据,并基于接收功能接收返回的第二数据。
具体一实施例中,所述步骤S103,包括以下步骤:
S40、读取所述第一数据中的所有字节;
S41、读取所述第二数据中的所有字节;
S42、根据预设的字节位置顺序,判断所述第一数据和对应的第二数据是否相同,若所述第一数据和对应的第二数据均相同,则执行步骤S43,若各所述第一数据和对应的第二数据不相同,则执行步骤S44;
S43、判定所述第二数据符合预设的冲突检测规则;
S44、判定所述第二数据不符合预设的冲突检测规则。
在本实施例中,该发送端向数据总线发送第一数据,并接收返回的第二数据,在接收到第二数据后,分别遍历第一数据、第二数据中的所有字节,并对第一数据和第二数据中对应位置的字节进行判断,需要说明的是,第一数据和第二数据均以统一的数据包格式存在,例如数据包的首个字节为起始字节,第二个字节为目标地址校验字节,第三个字节为目标地址字节,第四个字节为同步序列字节,第五个字节为源地址字节,其中,起始字节为源地址异或上加密符,目的是为了在冲突检测时,能够更准确的检测出来;目的地址校验代表目的地址的反码,增强数据包检测时的准确性;目的地址代表接收地址;同步序列代表防止数据包在接收时,由于其他操作造成数据丢失;源地址代表记录发送板的地址。
判断示例如下:将第一数据的“起始字节”和第二数据的“起始字节”进行对比,若是相同,则继续将第一数据的“目标地址校验字节”和第二数据的“目标地址校验字节”进行对比,若是相同,则继续将第一数据的“目标地址字节”和第二数据的“目标地址字节”进行对比,若是相同,则继续判断下一字节,若是所有的字节都相同,则说明第一数据和第二数据相同,则判定第二数据符合预设的冲突检测规则,在上述字节判断过程中,若是其中的一个字节判断结果为不相同,例如第一数据的“目标地址校验字节”和第二数据的“目标地址校验字节”判断结果为不相同,则判定第二数据不符合预设的冲突检测规则。
需要补充的是,在2个发送端同时向数据总线发送第一数据后,2个第一数据会在数据总线中出现错位,从而生成2个第二数据,2个第二数据分别返回至对应的发送端,并进行相应的判断,也就是说,在数据未发生错位时,第一数据和第二数据中的字节内容是相同的。
具体一实施例中,所述步骤S104,包括以下步骤:
S50、获取所述数据总线的控制权,并退出接收状态;
S51、基于所述第二数据,将所述目标数据发送至所述数据总线,使所述数据总线将目标数据发送至目标端。
在本实施例中,若是返回的第二数据符合预设的冲突检测规则,则可以顺利获取数据总线的控制权,并退出接收状态,即关闭接收功能,然后基于第二数据,将目标数据发送至数据总线,需要说明的是,目标数据包括第一数据或第二数据中的所有字节,以及对应的数据区,即目标数据包括需要发送的数据,数据总线根据目标数据中的目的地址,将目标数据发送至对应的目标端。
在本实施例中,在判断出第二数据符合预设的冲突检测规则时关闭接收功能,是为了减少在发送数据时,数据总线对发送端的干扰,具体的,如果不关闭接收功能,该发送端会接收到自己发送至数据总线的目标数据,也就是说,在高速数据传输过程中,有可能会干扰到发送的目标数据。
具体一实施例中,所述步骤S105之后,包括以下步骤:
S60、退出通讯状态。
在本实施例中,在执行完延迟处理步骤后,关闭接收功能和发送功能,以减少发送端的运行负荷,从而延长发送端的使用寿命。
具体一实施例中,所述步骤S105,包括以下步骤:
S70、利用退避算法,计算得到目标延时值;
S71、获取并记录初始时间值,将所述初始时间值和所述目标延时值进行相加,得到监听开始值;
S72、获取当前时间值,判断当前时间值是否达到所述监听开始值,若当前时间值达到所述监听开始值,则返回步骤S101,若当前时间值达到所述监听开始值,则执行步骤S73;
S73、继续判断当前时间值是否达到所述监听开始值。
在本实施例中,退避算法采用伽罗瓦线性反馈移位寄存器算法和梅森旋转算法的结合,以得到对应的随机数,即目标延时值,在判断出第二数据不符合预设的冲突检测规则后,捕捉当前时间值,并将当前时间作为初始时间值,然后将初始时间值与目标延时值相加得到监听开始值,然后依次判断当前时间值是否达到该监听时间值,若是达到,则说明该发送端可以重新监听数据总线是否空闲,若是没有达到,则发送端继续等待,也就是说,该发送端根据目标延时值进行延时监听。
需要补充的是,若是接收端即目标端(插件板卡)接收到数据总线发送过来的目标数据(由其他发送端发送),则该接收端对该目标数据进行检测,具体的,获取目标数据的所有字节,其中,对第一个获取到的第一字节即起始字节不做处理,然后依次判断下一字节即目标地址校验字节、目标地址字节、同步序列字节、源地址字节是否正确,若是正确则继续接收剩下的数据,若是不正确则不再接收剩下的数据。
本申请的基于多处理器数据发送方法,在发送数据前,自动检测数据总线状态,只有在数据总线处于空闲状态时,数据才允许被发送,在进行目标数据发送前,会进行冲突检测,如果检测到发生数据冲突,则停止发送目标数据,并采用可靠的延迟处理步骤,使得不同的发送端可以顺利发送对应的数据,即实现各个发送端之间的数据自由收发,又提高了数据传输的可靠性。
本发明实施例还提供一种基于多处理器数据发送装置,该基于多处理器数据发送装置用于执行前述基于多处理器数据发送方法的任一实施例。具体地,请参阅图2,图2是本发明实施例提供的基于多处理器数据发送装置的示意性框图。
如图2所示,基于多处理器数据发送装置500,包括:
第一监听单元501,用于对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;
判断单元502,用于接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;
发送单元503,用于若所述第二数据符合预设的冲突检测规则,则基于所述第二数据,发送对应的目标数据至所述数据总线;
第二监听单元504,用于若所述第二数据不符合预设的冲突检测规则,则执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听。
该装置在发送数据前,自动检测数据总线状态,只有在数据总线处于空闲状态时,数据才允许被发送,在进行目标数据发送前,会进行冲突检测,如果检测到发生数据冲突,则停止发送目标数据,并采用可靠的延迟处理步骤,使得不同的发送端可以顺利发送对应的数据,即实现各个发送端之间的数据自由收发,又提高了数据传输的可靠性。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述基于多处理器数据发送装置可以实现为计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本发明实施例提供的计算机设备的示意性框图。该计算机设备1100是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图3,该计算机设备1100包括通过系统总线1101连接的处理器1102、存储器和网络接口1105,其中,存储器可以包括非易失性存储介质1103和内存储器1104。
该非易失性存储介质1103可存储操作系统11031和计算机程序11032。该计算机程序11032被执行时,可使得处理器1102执行基于多处理器数据发送方法。
该处理器1102用于提供计算和控制能力,支撑整个计算机设备1100的运行。
该内存储器1104为非易失性存储介质1103中的计算机程序11032的运行提供环境,该计算机程序11032被处理器1102执行时,可使得处理器1102执行基于多处理器数据发送方法。
该网络接口1105用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备1100的限定,具体的计算机设备1100可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域技术人员可以理解,图3中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图3所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器1102可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器1102还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例的基于多处理器数据发送方法。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于多处理器数据发送方法,其特征在于,包括:
对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;
接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;
若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端;
若所述第二数据不符合预设的冲突检测规则,则执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听。
2.根据权利要求1所述的基于多处理器数据发送方法,其特征在于,所述对数据总线进行监听,判断所述数据总线是否空闲,包括:
读取寄存器的预设位的状态,若所述寄存器的预设位的状态为目标状态,则判定所述数据总线空闲,若所述寄存器的预设位的状态为非目标状态,则判定所述数据总线非空闲。
3.根据权利要求1所述的基于多处理器数据发送方法,其特征在于,所述若所述数据总线空闲,则向所述数据总线发送第一数据,包括:
若所述数据总线空闲,则进入通讯状态,并向所述数据总线发送第一数据,其中,所述通讯状态包括发送状态和接收状态。
4.根据权利要求3所述的基于多处理器数据发送方法,其特征在于,所述接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则,包括:
读取所述第一数据中的所有字节;
读取所述第二数据中的所有字节;
根据预设的字节位置顺序,判断所述第一数据和对应的第二数据是否相同,若所述第一数据和对应的第二数据相同,则判定所述第二数据符合预设的冲突检测规则,若所述第一数据和对应的第二数据不相同,则判定所述第二数据不符合预设的冲突检测规则。
5.根据权利要求3所述的基于多处理器数据发送方法,其特征在于,所述若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端,包括:
若所述第二数据符合预设的冲突检测规则,则获取所述数据总线的控制权,并退出接收状态;
基于所述第二数据,将所述目标数据发送至所述数据总线,使所述数据总线将目标数据发送至目标端。
6.根据权利要求3所述的基于多处理器数据发送方法,其特征在于,所述若所述第二数据不符合预设的冲突检测规则之后,包括:
退出通讯状态。
7.根据权利要求6所述的基于多处理器数据发送方法,其特征在于,所述执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听,包括:
利用退避算法,计算得到目标延时值;
获取并记录初始时间值,将所述初始时间值和所述目标延时值进行相加,得到监听开始值;
获取当前时间值,判断当前时间值是否达到所述监听开始值,若当前时间值达到所述监听开始值,则对所述数据总线进行监听,若当前时间值达到所述监听开始值,则继续判断当前时间值是否达到所述监听开始值。
8.一种基于多处理器数据发送装置,其特征在于,包括:
第一监听单元,用于对数据总线进行监听,判断所述数据总线是否空闲;若所述数据总线空闲,则向所述数据总线发送第一数据,使所述数据总线接收所述第一数据并返回第二数据;
判断单元,用于接收并基于返回的所述第二数据,判断所述第二数据是否符合预设的冲突检测规则;
发送单元,用于若所述第二数据符合预设的冲突检测规则,则获取数据总线控制权,并基于所述第二数据,发送对应的目标数据至所述数据总线,使所述数据总线将目标数据发送至目标端;
第二监听单元,用于若所述第二数据不符合预设的冲突检测规则,则执行延迟处理步骤,并在执行完后继续对所述数据总线进行监听。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于多处理器数据发送方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的基于多处理器数据发送方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022110282206 | 2022-08-25 | ||
CN202211028220 | 2022-08-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115622919A true CN115622919A (zh) | 2023-01-17 |
Family
ID=84864802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211319712.0A Pending CN115622919A (zh) | 2022-08-25 | 2022-10-26 | 基于多处理器数据发送方法、装置及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115622919A (zh) |
-
2022
- 2022-10-26 CN CN202211319712.0A patent/CN115622919A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113472607B (zh) | 应用程序网络环境检测方法、装置、设备及存储介质 | |
CN112579509A (zh) | 单线通讯方法、装置、电子设备及可读存储介质 | |
CN112732616B (zh) | 一种基于spi控制器的bmc启动方法、装置及设备 | |
CN111224837B (zh) | 自动识别车辆ecu的can通信波特率的方法及其系统 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
EP3065323B1 (en) | Transmission method and device based on management data input/output multi-source agreements | |
JP6398329B2 (ja) | 制御装置、制御方法及びプログラム | |
CN113722003B (zh) | 一种phy芯片的工作模式调整方法、装置及设备 | |
CN108696335B (zh) | 传输方法、发送端和接收端 | |
CN115622919A (zh) | 基于多处理器数据发送方法、装置及相关组件 | |
US20230198648A1 (en) | Time synchronization method, device and apparatus, and storage medium | |
JP6743724B2 (ja) | 通信ネットワーク及び通信端末 | |
US20180138946A1 (en) | Method for access to a shared communication medium | |
CN111124445B (zh) | 一种家庭网关的升级方法及家庭网关 | |
CN112565348A (zh) | 一种智能设备测试方法、系统、计算机设备及存储介质 | |
CN113630282B (zh) | 检测服务器状态的方法和装置 | |
CN110990313A (zh) | 一种i3c总线处理时钟拉伸的方法、设备以及存储介质 | |
CN113886296B (zh) | 数据传输方法、装置、设备和存储介质 | |
CN112769889B (zh) | 服务数据的推送方法、装置、存储介质以及电子装置 | |
CN116760508B (zh) | 一种波特率设置方法及系统 | |
US9588925B2 (en) | USB extension for lossy channel | |
CN111555929B (zh) | 限制网络流量的方法、装置、电子设备及存储介质 | |
TWI717808B (zh) | 多媒體資料傳輸方法及多媒體資料傳輸裝置 | |
WO2023138025A1 (zh) | 信息检测方法、设备和存储介质 | |
CN112822069A (zh) | 一种通信方法、装置、设备、系统及存储介质 |
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 |