CN117033276B - 总线通信方法、系统、电子设备及存储介质 - Google Patents

总线通信方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN117033276B
CN117033276B CN202310909279.4A CN202310909279A CN117033276B CN 117033276 B CN117033276 B CN 117033276B CN 202310909279 A CN202310909279 A CN 202310909279A CN 117033276 B CN117033276 B CN 117033276B
Authority
CN
China
Prior art keywords
data
command
target
target device
bus
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.)
Active
Application number
CN202310909279.4A
Other languages
English (en)
Other versions
CN117033276A (zh
Inventor
张军
段双成
黄金周
钟佰桢
黄万周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Micro Optoelectronic Technology Shenzhen Co ltd
Original Assignee
Shenzhen Micro Optoelectronic Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Micro Optoelectronic Technology Shenzhen Co ltd filed Critical Shenzhen Micro Optoelectronic Technology Shenzhen Co ltd
Priority to CN202310909279.4A priority Critical patent/CN117033276B/zh
Publication of CN117033276A publication Critical patent/CN117033276A/zh
Application granted granted Critical
Publication of CN117033276B publication Critical patent/CN117033276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请适用于通信技术领域,提供了总线通信方法、系统、电子设备及存储介质,应用于目标设备,目标设备与第一设备、第二设备共用一组总线,所述方法包括:接收所述第一设备发送的第一命令,所述第一命令用于指示所述第一设备所需的第一数据;在根据所述第一命令没有检测到所述第一数据的情况下,从从机模式切换为主机模式;根据所述第一数据向所述第二设备发送第二命令,所述第二命令用于指示所述目标设备所需的第二数据;接收所述第二设备发送的所述第二数据;根据所述第二数据确定所述第一数据,将确定的所述第一数据向所述第一设备发送。本申请可以减少多设备通信所需资源。

Description

总线通信方法、系统、电子设备及存储介质
技术领域
本申请属于通信技术领域,尤其涉及总线通信方法、系统、电子设备及计算机可读存储介质。
背景技术
IIC(Inter-Integrated Circuit,两线式串行总线)是由数据线SDA和时钟线SCL构成的串行总线,用于连接控制器和外围设备,是目前广泛应用的串行总线。
在如电力、工业自动化等领域中,一些主控制器需要作为主机获取下游采集的光照、速度和温度等传感器数据,以结合自身数据进行分析,而主控制器又需要作为第三方系统等上游的上位机的从机,向上位机提供分析得到的数据。目前这些设备通常通过多组总线进行通信,从而导致资源需求较高。
发明内容
本申请实施例提供了总线通信方法、系统、电子设备及存储介质,可以提高多设备通信所需的资源的利用率。
第一方面,本申请实施例提供了一种总线通信方法,应用于目标设备,所述目标设备与第一设备和第二设备共用一组总线,所述总线通信方法包括:
接收所述第一设备发送的第一命令,所述第一命令用于指示所述第一设备所需的第一数据;
在根据所述第一命令没有检测到所述第一数据的情况下,从从机模式切换为主机模式;
根据所述第一数据向所述第二设备发送第二命令,所述第二命令用于指示所述目标设备所需的第二数据;
接收所述第二设备发送的所述第二数据;
根据所述第二数据确定所述第一数据,将确定的所述第一数据向所述第一设备发送。
第二方面,本申请实施例提供了一种总线通信系统,包括共用一组总线的目标设备、第一设备和第二设备;
所述第一设备,用于向所述目标设备发送第一命令,所述第一命令用于指示所述第一设备所需的第一数据;
所述目标设备,用于接收所述第一设备发送的所述第一命令,在没有检测到所述第一数据的情况下,从从机模式切换为所述主机模式,并根据所述第一数据向所述第二设备发送第二命令,所述第二命令用于指示所述目标设备所需的第二数据;
所述第二设备,用于接收所述第二命令,根据所述第二命令向所述目标设备发送所述第二数据;
所述目标设备,还用于接收所述第二设备发送的所述第二数据,根据所述第二数据确定所述第一数据,将确定的所述第一数据向所述第一设备发送。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的总线通信方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中所述的总线通信方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的总线通信方法。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例中,由于目标设备与第一设备、第二设备共用一组总线,因此,目标设备可以直接从从机模式切换为主机模式。即,在目标设备没有检测到第一设备所需的第一数据时,可以通过模式转换从第二设备获取所需的第二数据,然后再根据获取到的第二数据确定第一数据,并将确定的第一数据向第一设备发送,从而能够通过一组总线实现多个设备之间的数据传输,不需要目标设备在不同总线切换后再与第二设备建立通信,在减少多设备通信所需端口和总线的同时能够保障通信效率。此外,由于只采用一组总线实现多设备之间的通信,因此,提高了多设备通信所需的资源的利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本申请一实施例提供的一种总线通信方法的流程示意图;
图2是本申请实施例提供的总线通信系统的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
实施例一:
在针对包括上位机、上游控制器和下游传感器等设备的通信时,通常需要上游控制器通过以太网接口或UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)、IIC(Inter-IntegratedCircuit,集成电路总线)等接口与上位机进行通信,然后通过另外的接口和总线与下游传感器进行通信,使得上游控制器需要提供多个接口,以及采用多组总线,导致接口和总线所对应的资源需求过高。
为了提高多设备通信情况下的资源的利用率,本申请提出了一种总线通信方法。
在本申请实施例提供的总线通信方法中,目标设备接收第一设备所发送的第一命令,在根据第一命令没有检测到第一设备所需的第一数据的情况下,从从机模式切换为主机模式,然后根据第一数据向第二设备发送第二命令,第二命令指示了目标设备所需的第二数据,再接收第二设备发送的第二数据,并根据该第二数据确定第一数据,最后将得到的第一数据发送给第一设备。
由于目标设备与第一设备、第二设备共用一组总线,因此,在需要时,目标设备可以直接从从机模式切换为主机模式,减小了空间复杂度。即,在目标设备根据第一命令没有检测到第一设备所需的第一数据时,可以直接通过模式转换从第二设备获取所需的第二数据,然后再根据第二数据确定第一数据,从而得到第一设备所需的数据,再将确定的第一数据向第一设备发送,进而能够通过一组总线实现多个设备之间的数据传输,不需要目标设备在不同总线切换后再与第二设备建立通信,在减少多设备所需端口、总线等资源,提高资源利用率的同时能够保障多设备之间的通信效率。
图1示出了本发明实施例提供的一种总线通信方法的流程示意图,详述如下:
步骤S101,接收上述第一设备发送的第一命令,上述第一命令用于指示上述第一设备所需的第一数据。
上述第一设备可以是MCU(Micro Control Unit,微控制单元)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)等设备,也可以是第三方系统控制的如转接芯片等设备,此处不作限制。进一步地,第一设备可以是仅具有主机模式的设备,即,第一设备只能作为主设备(即处于主机模式的设备)与从设备(即处于从机模式的设备)进行通信。
具体地,第一设备在需要获取所需的第一数据时,会向目标设备发送能够指示该第一数据的第一命令,对应地,目标设备作为第一设备的从设备,接收到第一设备所发送的第一命令,以根据第一命令确定第一设备所需的数据。可选地,上述第一命令中包含有第一数据的标识或者数据说明等可以指示该第一数据的标识信息,具体用于指示第一数据的标识信息可以根据实际应用场景确定,例如,第一设备需要获取A市过去一周内的天气分析报告,即第一数据为A市过去一周内的天气分析报告,则其第一命令中可以包含数据说明:获取A市在过去一周内的天气分析报告,通过该数据说明指示第一设备所需获取的第一数据。
可以理解的是,目标设备在接收第一设备发送的第一命令之前,已经建立了与第一设备之间的通信,即第一设备与目标设备正在占用总线进行通信,因此,目标设备能够直接接收到第一设备发送的第一命令。其中,目标设备默认处于从机模式,在建立目标设备与第一设备之间的通信时,是由处于主机模式的第一设备主动与默认处于从机模式的目标设备建立通信。
可以理解的是,目标设备为能够获取到第一数据的设备,第二设备可以是如温度传感器、湿度传感器等下游设备。进一步地,第二设备可以是仅具有从机模式的设备,目标设备需要基于从一个或多个第二设备获取的数据来获取第一设备所需的第一数据。上述总线可以是如IIC总线、SPI总线等任意可实现信息传送的通信干线,可以理解的是,由于总线需要进行多设备的通信,在一些实施例中,需要对总线的电路进行适应性修改,使其能够适用于本申请实施例的多设备之间的总线通信,例如,总线采用SPI总线时,需要在SPI总线中增加三态门控制使能信号。在一些实施例中,可以采用只包括数据线和时钟线的IIC总线实现多设备通信,以进一步减少多设备通信所需资源。
本申请实施例中,目标设备接收第一设备发送的第一命令,而第一命令中包含有能够指示该第一数据的标识信息,使得目标设备能够根据第一命令确定第一设备所需获取的第一数据。
步骤S102,在根据上述第一命令没有检测到上述第一数据的情况下,从从机模式切换为主机模式。
具体地,由于没有获取过或者定时清除数据等原因,使得目标设备中无法检测到第一数据,因此,在目标设备根据第一命令没有检测到第一数据时,表明目标设备需要获取该第一数据,即基于第二设备的数据来获取第一数据,此时,若目标设备结束与第一设备的总线通信,然后切换总线与第二设备进行通信,则将需要多组总线以及多个接口,且频繁的总线切换将导致空间复杂度高,因此,本申请实施例中,目标设备与第一设备、第二设备共用一组总线,在目标设备根据第一命令没有检测到第一设备所需的第一数据的情况下,目标设备可以从从机模式直接切换为主机模式,从而能够建立与第二设备之间的通信,进而从第二设备获取数据来确定出第一设备所需的第一数据。
本申请实施例中,由于目标设备与第一设备、第二设备共用一组总线,因此,在没有检测到第一数据时,目标设备可以直接从从机模式切换为主机模式,以从作为从机的第二设备获取数据来确定出第一设备所需的第一数据。
步骤S103,根据上述第一数据向上述第二设备发送第二命令,上述第二命令用于指示上述目标设备所需的第二数据。
具体地,由于目标设备中没有检测到第一设备所需的第一数据时,需要基于第二设备的数据获取该第一数据,因此,在建立与第二设备之间的通信后,目标设备可以向第二设备发送第二命令,以从第二设备获取所需的第二数据。其中,第二命令中包含标识、数据说明等可以指示该第二数据的标识信息。
需要说明的是,第二数据可能是与第一数据相同的数据,也可能是与第一数据不相同的数据,需要经目标设备对第二数据进行处理后得到第一数据。例如,假设第一数据为天气分析报告,需要经目标设备对气象数据分析得到,即目标设备所需的第二数据为气象数据,则第二命令可以是:获取气象数据,以向第二设备指示目标设备所需的第二数据为气象数据。
步骤S104,接收上述第二设备发送的上述第二数据。
可以理解的是,第二设备在接收到目标设备发送的第二命令后,根据第二命令的指示查询到目标设备所需的第二数据,并将该第二数据发送给目标设备,对应地,目标设备接收第二设备所发送的第二数据。可选地,目标设备在接收到第二设备所发送的第二数据之后,就结束与第二设备之间的通信,释放总线,以便和第一设备进行通信,使得第一设备能够尽可能快地获取到第一数据。
步骤S105,根据上述第二数据确定上述第一数据,将确定的上述第一数据向上述第一设备发送。
具体地,目标设备在接收到第二数据之后,能够根据第二数据确定第一设备所需的第一数据,在建立与第一设备之间的通信后,将确定的第一数据发送给第一设备,使得第一设备能够得到所需的第一数据。
可选地,可以在目标设备中开辟一个缓冲区,用于存储目标设备计算得到的数据,如存储目标设备计算得到的第一数据,目标设备中计算第一数据所需的特定数据等,以存储目标设备中的特定数据。
本申请实施例中,由于目标设备与第一设备、第二设备共用一组总线,因此,在需要时,目标设备可以直接从从机模式切换为主机模式,减小了空间复杂度。即,在目标设备根据第一命令没有检测到第一设备所需的第一数据时,目标设备可以直接通过模式转换从第二设备获取所需的第二数据,然后再根据第二数据确定第一数据,从而得到第一设备所需的第一数据,再将确定的第一数据向第一设备发送,进而能够通过一组总线实现多个设备之间的数据通信,不需要目标设备在不同总线之间切换和建立通信,在减少多设备所需端口、总线等资源,提高了总线资源的利用率的同时能够提高多设备之间的通信效率。
需要说明的是,在本申请实施例中,第一设备需要从目标设备获取到第一数据,即,该第一数据必须由目标设备获取得到。在该总线中,可以包括多个第一设备和/或多个第二设备。进一步地,总线中的各个第一设备、目标设备以及各个第二设备均具有能够唯一表示该设备的地址,以便更好地进行通信。
在一些实施例中,目标设备在与第一设备和/或第二设备进行通信时,由于目标设备需要接收第一设备或第二设备发送的数据,因此,目标设备可以通过中断方式读取第一设备和/或第二设备发送的数据,不需要依次处理接收到的每一个比特数据的细节,从而能够提高通信效率。
在一些实施例中,上述步骤S102包括:
在根据上述第一命令没有检测到上述第一数据的情况下,检测上述总线是否处于空闲状态。
在上述总线处于空闲状态的情况下,从从机模式切换为主机模式。
具体地,由于同一时间内,只能有一个主设备和从设备占用总线进行通信,而总线通信中通常需要由主设备结束通信来释放总线资源,因此,为了避免出现总线访问冲突以及提高第一数据的获取效率,目标设备在根据第一命令没有检测到该第一数据时,检测总线当前是否处于空闲状态,若总线仍处于繁忙状态(即仍被第一设备与目标设备占用),则可以对总线状态进行监测(如持续检测或者每隔指定时长检测一次等),直至检测到总线处于空闲状态,即目前没有设备占用总线进行通信,此时,目标设备可以进行模式切换,直接从从机模式切换为主机模式,以占用总线,建立与第二设备之间的通信。
可选地,目标设备在没有检测到第一数据的情况下,可以先向第一设备发送第一应答信号,该第一应答信号用于指示需要暂停第一设备与目标设备之间的通信,以便第一设备能够根据该第一应答信号及时释放总线资源,令目标设备能够更快地与第二设备建立通信,从而能够提高第一数据的获取效率。
本申请实施例中,由于目标设备在根据第一命令没有检测到第一数据时,在检测到总线处于空闲状态的情况下再从从机模式切换为主机模式,因此,能够避免目标设备的模式切换导致共用一组总线的多设备之间的通信出现混乱,提高多设备通信的容错率。
在一些实施例中,在上述步骤S103之前,还包括:
在根据上述第一命令检测到上述第一数据的情况下,判断上述第一命令中是否包含更新指令,上述更新指令用于指示上述目标设备对上述第一数据进行更新。
在判定上述第一命令中存在上述更新指令的情况下,从上述从机模式切换为上述主机模式。
具体地,由于第一设备可能需要获取最近更新的实时性较高的第一数据,以保障获取到的第一数据的时效性,因此,在根据第一命令检测到目标设备中存在第一数据的情况下,先判断第一命令中是否包含更新指令,如果判定第一命令中存在更新指令,则表明第一设备要求获取更新后的第一数据,此时,目标设备需要从从机模式切换为主机模式,以从第二设备中获取第二数据,从而能够根据获取的第二数据进行第一数据的更新。
对应地,若判定第一命令中没有更新指令,则目标设备可以直接向第一设备发送其所需的第一数据。可选地,在向第一设备发送第一数据时,发送的第一数据可以是最近一次更新后的第一数据,也可以是存储的包括最近一次更新的多个版本的第一数据(如包括第一次生成的第一数据,以及该第一数据每一次更新得到的其它版本的第一数据)。
可选地,在判断第一命令中是否包含更新指令时,可以通过关键词检测的方式,搜索第一命令中是否包含预设关键词(如更新、最新等),若搜索到第一命令中包含预设关键词,则可以判定第一命令中包含更新指令。或者,也可以令第一设备发送具有预设字段的第一命令,通过指定第一命令中的某个字段的内容指示是否需要更新第一数据,即指定某个字段存储更新指令。例如,可以将第一命令开头的两个字段作为预设字段,在这两个字段中存储更新指令,根据该字段的内容判定第一命令是否包含更新指令(例如,字段的内容为1时,表示需要进行更新,字段内容为0时,表示不需要更新)。具体实现方式可以由用户设置,此处不作限制。
本申请实施例中,由于在检测到目标设备具有第一数据的情况下,还判断第一命令中是否包含更新指令,因此,第一设备能够根据需求获取到所需的第一数据,通过了多设备的总线通信的实际应用效果。
在一些实施例中,在上述步骤S103之前,还包括:
根据上述第二数据确定第一时长,或者,根据上述第一命令中包含的第二时长确定上述第一时长。
对应地,在执行上述步骤S103、S104时,包括:
在上述第一时长内,执行以下步骤:
根据上述第二数据向上述第二设备发送上述第二命令。
接收上述第二设备发送的上述第二数据。
在上述第一时长结束后从上述主机模式切换为上述从机模式。
具体地,为了使第一设备能够及时建立与目标设备的通信的同时,减少不必要的检测动作,以节省资源,目标设备在从第二设备获取第二数据之前,先确定出第一时长,该第一时长即要求目标设备从第二设备获取第二数据所消耗的最大的时长,即,目标设备需要在该第一时长内,建立与第二设备之间的通信,然后根据所需的第二数据向第二设备发送命令,接收第二设备发送的该第二数据。在第一时长结束后,目标设备从主机模式自动切换为从机模式。进一步地,若目标设备接收到第二设备发送的第二数据时,所消耗的时长与第一时长之间的差值(该差值等于第一时长减实际消耗时长)大于预设第一阈值(如20秒),可以直接结束与第二设备之间的通信,释放总线,从主机模式自动切换为从机模式,以进一步减少获取第一数据所需时长,提高总线的通信效率以及减少资源占用。
其中,在确定第一时长时,可以根据需要获取的第二数据确定该第一时长。例如,可以根据总线的通信速率以及第二数据的常规大小(例如,假设第二数据为前一天24小时的光强数据,假设24小时的光强数据的大小通常为3MB,此时,可以将3.5MB设为光强数据,即该第二数据的常规大小)确定目标设备接收第二设备发送的该第二数据所需的时长(即接收时长,也相当于第二设备发送第二数据的发送时长),再根据该接收时长结合目标设备与第二设备建立通信所需的时长等确定第一时长。可选地,可以在根据第一命令没有检测到第一数据的情况下,目标设备根据所需的第二数据确定出第一时长,然后将包含该第一时长的第一应答信号发送给第一设备后,再从从机模式切换为主机模式,以指示第一设备在第一时长结束后再次建立与目标设备之间的通信,以便第一设备能够及时获取到所需的第一数据。
或者,在一些实施例中,目标设备接收到的第一设备所发送的第一命令中,可能包含有第一设备指定的第二时长(例如第一设备要求更新第一数据时,可以在第一命令中增加第二时长),该第二时长指示第一设备会在第二时长后建立与目标设备的通信,即,在该第二时长内,目标设备需要从第二设备获取第二数据,并结束与第二设备之间的通信,释放总线,因此,可以第一命令中包含的第二时长确定出第一时长,其中,根据第二时长确定的第一时长小于第二时长,进一步地,可以设定第一时长与第二时长之间的差值大于预设第二阈值(如5秒),以保障在第二时长结束后,总线处于空闲状态且目标设备处于从机模式,从而能够建立第一设备与目标设备之间的通信,提高通信效率。
进一步地,在根据第一命令中的第二时长确定出第一时长之后,可以根据第一时长和第二数据的常规大小,确定出总线传输第二数据时的最小传输速率,即第二设备向目标设备发送第二数据时的最小发送速率,以保障目标设备在第一时长内能够接收到完整的第二数据。
本申请实施例中,由于在目标设备从第二设备获取第二数据之前,先确定出目标设备从第二设备获取第二数据所消耗的最大的时长,使目标设备在第一时长内获取到第二数据,并在第一时长结束后从从机模式切换为主机模式,从而,第一设备能够在目标设备根据第二数据确定出第一数据之前,及时建立与目标设备之间的通信,通过多设备之间的通信效率。
在一些实施例中,在上述步骤S103之前,还包括:
A1、根据上述第一数据确定上述第二数据,上述第二数据为确定上述第一数据所需的数据。
A2、确定出具有上述第二数据的上述第二设备。
对应地,上述步骤S103,包括:
向具有上述第二数据的上述第二设备发送上述第二命令。
具体地,由于第一设备所获取的第一数据不同时,目标设备获取第一数据所需的第二数据以及第二数据对应的第二设备也有所不同,因此,本申请实施例中,在根据第一数据向第二设备发送第二命令之前,先根据第一数据确定获取第一数据所需的第二数据,然后,根据该第二数据确定出具有该第二数据的第二设备。在向第二设备发送第二命令时,可以直接向具有该第二数据的第二设备,即向具有该第二数据的第二设备发送第二命令,不需要与每一个第二设备建立通信并确定各第二设备是否具有该第二数据,从而能够大大减小获取第一数据所需时间。
可选地,目标设备中可以存储有各个第二设备以及各个第二设备具有的数据的信息,在确定出具有该第二数据的第二设备时,可以查询存储的信息中是否存在该第二数据的信息,然后再根据存储的该第二数据的信息确定其对应的第二设备的信息,从而能够快速地确定出具有该第二数据的第二设备。
在一些实施例中,目标设备确定该第一数据可能需要多个第二数据,多个第二数据分别对应不同的第二设备,即,确定出多个第二设备,此时,目标设备可以依次与具有第二数据的各个第二设备建立通信,以获取各个第二设备所对应的第二数据,得到所需的多个第二数据。
例如,假设根据所需的第二数据(A1、B1和C1)确定出第二设备A、第二设备B以及第二设备C,目标设备可以先和第二设备A建立通信,向第二设备A发送第二命令a来获取第二设备对应的第二数据A1,再建立与第二设备B的通信,向第二设备B发送第二命令b来获取第二设备B对应的第二数据B1,最后与第二设备C建立通信,向第二设备C发送第二命令c来获取第二设备C对应的第二数据C1,从而能够得到3个不同的第二设备所对应的第二数据。
本申请实施例中,根据第一数据确定出获取该第一数据所需的第二数据,再确定具有该第二数据的第二设备,使得目标设备能够直接与具有该第二数据的第二设备建立通信,获取第二数据,不需要轮询每一个第二设备,在减少了数据获取时长的同时减少了占用总线的时长,从而能够提高通信效率。
在一些实施例中,上述总线通信方法还包括:
B1、在上述目标设备处于从机模式的情况下,若检测到上述目标设备未接收到任何命令,且上述目标设备处于繁忙状态,则判定上述目标设备处于异常状态;
B2、对处于上述异常状态的上述目标设备进行重置处理。
具体地,由于总线在通信过程中可能出现挂死的情况,使得目标设备持续处于繁忙状态,与实际主从状态不一致,因此,本申请实施例中,在目标设备处于从机模式的情况下,对目标设备进行异常监测,判断目标设备是否处于异常状态。其中,在判断目标设备是否处于异常状态时,可以检测目标设备是否处于繁忙状态(即读繁忙状态,指示目标设备正在进行读操作)。在检测到目标设备处于繁忙状态的情况下,检测目标设备是否接收到任意设备所发送的任何命令,若检测到目标设备未接收到任何命令,而目标设备当前又处于繁忙状态,则判定目标设备当前处于异常状态,此时,可以对该处于异常状态的目标设备进行重置处理,使目标设备恢复默认的从机状态,且没有进行任何操作(即处于空闲状态)。
可选地,在对处于异常状态的目标设备进行重置处理时,可以是对目标设备内部的状态寄存器进行重置处理,也可以是对目标设备进行复位或者重新上电,从而实现对目标设备的重置处理。
进一步地,在判定目标设备处于异常状态时,可以等待第一预设时长(如1000ms)后,根据上述步骤对目标设备再次进行异常判断,若仍判定目标设备处于异常状态,再对处于异常状态的目标设备进行重置处理,以减小由于延时等原因导致的误判的情况,提高异常判断的准确性。
本申请实施例中,对目标设备进行异常监测,使得在状态不一致、挂死等异常情况导致目标设备处于异常状态时,能够及时对目标设备进行异常处理,自动恢复目标设备状态,提高了多设备的总线通信的可靠性和灵活性。
在一些实施例中,在上述步骤B2之后,还包括:
再次检测上述目标设备是否处于上述异常状态。
若检测到上述目标设备仍处于上述异常状态,则将最近一个与处于主机模式的上述目标设备进行通信的上述第二设备作为第三设备。
对上述第三设备进行复位处理或重启处理。
具体地,在对出现异常的目标设备进行重置处理后,可以再次检测目标设备是否仍处于异常状态,若检测到目标设备已经恢复正常状态,则说明是目标设备引起了自身的异常。若检测到目标设备仍然处于异常状态,则说明目标设备的异常状态是由其它设备引起的,此时,确定出最近一个与处于主机模式的目标设备进行通信的第二设备,将其作为第三设备,然后控制第三设备对其进行复位处理或者重启处理,从而使得总线恢复到空闲状态,使得目标设备能够随之恢复为正常状态。可选地,在对异常的目标设备进行重置处理后,可以在第二预设时长后(如500ms)再次检测目标设备是否处于异常状态,避免因此状态更新延迟等情况导致误判。
可选地,在对第三设备进行复位处理或者重启处理时,可以通过IO脚(in-out,输入输出引脚)对该第三设备进行控制,实现第三设备的复位处理或者重启处理。进一步地,由于一些第二设备通常不具有复位功能,因此,为了实现目标设备的异常处理,可以通过驱动电平转换芯片或者软件控制等方式实现对第三设备的上电复位处理。
进一步地,在检测到目标设备仍处于异常状态时,可以先令目标设备控制总线产生多个(如16-24个)脉冲信号(如总线采用IIC总线实现时,可以产生多个SCL脉冲信号),而脉冲信号通常是通过软件实现的,即,使目标设备尽可能地通过软件恢复正常状态。若目标设备仍处于异常状态,再确定出第三设备,通过对第三设备的复位处理或者重启处理,使目标设备恢复为正常状态。
本申请实施例中,由于在对异常的目标设备进行重置处理后,再次对目标设备进行异常检测,在目标设备仍处于异常状态时,通过其它方式进行异常处理,因此,能够保障目标设备恢复到正常状态,避免因目标设备异常导致总线异常无法进行通信,提高多设备通信的鲁棒性。
在一些实施例中,目标设备在进行通信时,与第一设备之间可以采用中断方式与第一设备之间进行通信,与第二设备之间可以采用IO模拟通信的方式与第二设备进行通信,即目标设备与第一设备、第二设备之间进行通信时,采用不同处理逻辑的通信方式进行通信,通过不同的处理逻辑减少目标设备在总线通信过程中的逻辑冲突,从而提高总线通信的可靠性。可选地,目标设备在与第一设备和/或第二设备进行通信时,还可以通过设定读取超时机制来减小设备异常时导致总线持续等待,从而出现挂死的概率。例如,目标设备在与接收第二设备进行通信时,接收到第二数据时,进行超时判断,若超时,则丢弃该第二数据,重新向第二设备发送第二命令,若没有超时,则正常接收第二数据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例二:
对应于上文实施例所述的总线通信方法,图2示出了本申请实施例提供的总线通信系统的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图2,该系统包括共用一组总线21的第一设备22、目标设备23和第二设备24。其中,
上述第一设备22,用于向上述目标设备23发送第一命令,上述第一命令用于指示上述第一设备22所需的第一数据。
具体地,第一设备22在需要获取第一数据时,根据所需的第一数据生成第一命令,并向目标设备23发送该第一命令,以通过该第一命令指示该第一设备22所需获取的第一数据。
可以理解的是,该第一数据仅能通过目标设备23获取得到,例如,第一数据需要通过目标设备23进行特定的处理(如基于目标设备23的特定的加密处理算法、目标设备具有的特定数据等进行处理)得到。
上述目标设备23,用于接收上述第一设备22发送的上述第一命令,在没有检测到上述第一数据的情况下,从从机模式切换为上述主机模式,并根据上述第一数据向上述第二设备24发送第二命令,上述第二命令用于指示上述目标设备23所需的第二数据。
具体地,目标设备23接收第一设备22所发送的第一命令,然后根据该第一命令确定第一设备22所需的第一数据,并检测目标设备23是否存储有该第一数据。目标设备23在没有检测到该第一数据的情况下,需要结束与第一设备22之间的通信,从从机模式切换为主机模式,然后根据第一设备22所需的第一数据向第二设备24发送第二命令,以通过第二命令指示目标设备23所需要的第二数据。
上述第二设备24,用于接收上述第二命令,根据上述第二命令向上述目标设备23发送上述第二数据。
具体地,第二设备24接收目标设备23发送的第二命令,根据该第二命令确定目标设备23所需的第二数据,并向目标设备23发送该第二数据。
上述目标设备23,还用于接收上述第二设备24发送的上述第二数据,根据上述第二数据确定上述第一数据,将确定的上述第一数据向上述第一设备22发送。
具体地,目标设备23接收第二设备24所发送的第二数据,然后根据该第二数据确定出第一设备22所需要获取的第一数据,最后,将确定的第一数据向第一设备23发送。
其中,上述总线21可以是如IIC总线、SPI总线等可实现信息传送的通信干线,此处不作限制。
本申请实施例中,由于目标设备与第一设备、第二设备共用一组总线,因此,在需要时,目标设备可以直接从从机模式切换为主机模式,减小了空间复杂度。即,在目标设备根据第一命令没有检测到第一设备所需的第一数据时,目标设备可以直接通过模式转换从第二设备获取所需的第二数据,然后再根据第二数据确定第一数据,从而得到第一设备所需的第一数据,再将确定的第一数据向第一设备发送,进而能够通过一组总线实现多个设备之间的数据通信,不需要目标设备在不同总线之间切换和建立通信,在减少多设备所需端口、总线等资源的同时能够提高多设备之间的通信效率。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例三:
图3为本申请一实施例提供的电子设备的结构示意图。如图3所示,该实施例的电子设备3包括:至少一个处理器30(图3中仅示出一个处理器)、存储器31以及存储在所述存储器31中并可在所述至少一个处理器30上运行的计算机程序32,所述处理器30执行所述计算机程序32时实现上述任意各个方法实施例中的步骤。
所述电子设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是电子设备3的举例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),该处理器30还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31在一些实施例中可以是所述电子设备3的内部存储单元,例如电子设备3的硬盘或内存。所述存储器31在另一些实施例中也可以是所述电子设备3的外部存储设备,例如所述电子设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述电子设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种总线通信方法,其特征在于,应用于目标设备,所述目标设备与第一设备和第二设备共用一组总线,所述方法包括:
接收所述第一设备发送的第一命令,所述第一命令用于指示所述第一设备所需的第一数据;
在根据所述第一命令没有检测到所述第一数据的情况下,从从机模式切换为主机模式;
根据所述第一数据向所述第二设备发送第二命令,所述第二命令用于指示所述目标设备所需的第二数据;
接收所述第二设备发送的所述第二数据;
根据所述第二数据确定所述第一数据,将确定的所述第一数据向所述第一设备发送。
2.如权利要求1所述的总线通信方法,其特征在于,所述在根据所述第一命令没有检测到所述第一数据的情况下,从从机模式切换为主机模式,包括:
在根据所述第一命令没有检测到所述第一数据的情况下,检测所述总线是否处于空闲状态;
在所述总线处于空闲状态的情况下,从从机模式切换为主机模式。
3.如权利要求1所述的总线通信方法,其特征在于,在所述根据所述第一数据向所述第二设备发送第二命令之前,所述总线通信方法还包括:
根据所述第一数据确定所述第二数据,所述第二数据为确定所述第一数据所需的数据;
确定出具有所述第二数据的所述第二设备;
对应地,所述根据所述第一数据向所述第二设备发送第二命令,包括:
向具有所述第二数据的所述第二设备发送所述第二命令。
4.如权利要求3所述的总线通信方法,其特征在于,在所述根据所述第一数据向所述第二设备发送第二命令之前,所述总线通信方法还包括:
根据所述第二数据确定第一时长,或者,根据所述第一命令中包含的第二时长确定所述第一时长;
对应地,所述根据所述第一数据向所述第二设备发送第二命令,接收所述第二设备发送的所述第二数据,包括:
在所述第一时长内,执行以下步骤:
根据所述第二数据向所述第二设备发送所述第二命令;
接收所述第二设备发送的所述第二数据;
在所述第一时长结束后从所述主机模式切换为所述从机模式。
5.如权利要求1所述的总线通信方法,其特征在于,在所述根据所述第一数据向所述第二设备发送第二命令之前,所述总线通信方法还包括:
在根据所述第一命令检测到所述第一数据的情况下,判断所述第一命令中是否包含更新指令,所述更新指令用于指示所述目标设备对所述第一数据进行更新;
在判定所述第一命令中存在所述更新指令的情况下,从所述从机模式切换为所述主机模式。
6.如权利要求1至5任一项所述的总线通信方法,其特征在于,所述总线通信方法还包括:
在所述目标设备处于从机模式的情况下,若检测到所述目标设备未接收到任何命令,且所述目标设备处于繁忙状态,则判定所述目标设备处于异常状态;
对处于所述异常状态的所述目标设备进行重置处理。
7.如权利要求6所述的总线通信方法,其特征在于,在所述对处于所述异常状态的所述目标设备进行重置处理之后,还包括:
再次检测所述目标设备是否处于所述异常状态;
若检测到所述目标设备仍处于所述异常状态,则将最近一个与处于主机模式的所述目标设备进行通信的所述第二设备作为第三设备;
对所述第三设备进行复位处理或重启处理。
8.一种总线通信系统,其特征在于,包括共用一组总线的第一设备、目标设备和第二设备;
所述第一设备,用于向所述目标设备发送第一命令,所述第一命令用于指示所述第一设备所需的第一数据;
所述目标设备,用于接收所述第一设备发送的所述第一命令,在没有检测到所述第一数据的情况下,从从机模式切换为主机模式,并根据所述第一数据向所述第二设备发送第二命令,所述第二命令用于指示所述目标设备所需的第二数据;
所述第二设备,用于接收所述第二命令,根据所述第二命令向所述目标设备发送所述第二数据;
所述目标设备,还用于接收所述第二设备发送的所述第二数据,根据所述第二数据确定所述第一数据,将确定的所述第一数据向所述第一设备发送。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202310909279.4A 2023-07-21 2023-07-21 总线通信方法、系统、电子设备及存储介质 Active CN117033276B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310909279.4A CN117033276B (zh) 2023-07-21 2023-07-21 总线通信方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310909279.4A CN117033276B (zh) 2023-07-21 2023-07-21 总线通信方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117033276A CN117033276A (zh) 2023-11-10
CN117033276B true CN117033276B (zh) 2024-04-30

Family

ID=88642138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310909279.4A Active CN117033276B (zh) 2023-07-21 2023-07-21 总线通信方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117033276B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150051A (zh) * 2022-11-23 2023-05-23 深圳云豹智能有限公司 命令处理方法、装置、系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101136000B (zh) * 2006-09-01 2011-01-05 飞思卡尔半导体公司 实现sd主机/从属设备的应用处理器电路和电子设备
US20180357199A1 (en) * 2017-06-12 2018-12-13 Qualcomm Incorporated Slave-to-slave communication in i3c bus topology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150051A (zh) * 2022-11-23 2023-05-23 深圳云豹智能有限公司 命令处理方法、装置、系统

Also Published As

Publication number Publication date
CN117033276A (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
CN111338662A (zh) 从站的固件升级方法、固件升级装置及终端
CN111966189B (zh) 一种灵活配置的多计算节点服务器主板结构和程序
TW201923606A (zh) 針對多執行環境之i3c頻帶內中斷
CN110445700B (zh) 主从机通信系统、方法及终端设备
CN111107061A (zh) 一种智能网卡及其通讯方法
CN112235370B (zh) 一种设备信息同步方法、同步装置、主设备及存储介质
CN113489653A (zh) 报文发送方法、装置以及计算机设备
CN214225796U (zh) 时间同步电路
KR20160067222A (ko) CCIe 버스를 통한 슬레이브 식별자 스캔 및 핫 플러그 능력
CN117033276B (zh) 总线通信方法、系统、电子设备及存储介质
CN116521324B (zh) 中断虚拟化处理方法、装置及电子设备
CN107291641B (zh) 用于计算单元的存储器直接访问控制装置及其运行方法
CN116257472B (zh) 接口控制方法、装置、电子设备及存储介质
CN111737183A (zh) 一种服务器及一种i2c总线的通信故障处理方法和系统
CN112346878A (zh) 信息处理系统、中继装置及程序
CN114257492B (zh) 智能网卡的故障处理方法、装置、计算机设备和介质
CN116185938A (zh) 多核异构系统及其交互方法
CN106708701B (zh) 一种基于arinc659总线的中央维护装置与方法
CN114860512A (zh) 车辆的soc芯片工作状态检测方法、装置、设备和系统
CN114928511A (zh) 数据处理设备及数据处理系统
CN111813596A (zh) 芯片重启方法、装置及计算设备
EP0640925B1 (en) Data processing system having serial interface
CN111723032A (zh) 一种中断管控方法及电子设备
CN114443527B (zh) 基于工作队列的PCIe转MDIO驱动实现方法及装置
CN114884768B (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
GR01 Patent grant
GR01 Patent grant