一种单总线通信方法、装置、系统及设备与流程

未命名 08-15 阅读:90 评论:0


1.本技术涉及通信技术领域,特别涉及一种单总线通信方法、装置、系统及设备。


背景技术:

2.在芯片设计中,通常采用各种总线实现各种组件之间的通信。按照实现方式的不同,总线可以分为串行总线和并行总线两种。并行总线将多个数据传输通道一起传输,具有带宽大的优点,但需要占据较大面积,同时各数据通道之间的时钟关系需要严格一致,各数据通道的线长也需要严格保持一致,实现较为困难,并不适用于数据传输量较小的场景。串行总线只需要一个数据传输通道,带宽较小,但其面积小,实现较为简单,适用于数据传输量较小的场景。
3.因此,串行总线通信的应用越来越多,但是目前市面上的串行总线通信在数据编码时需要考虑同步问题,同步通信时需要借助时钟信号进行同步,功耗较大,通信效率低下。


技术实现要素:

4.本技术实施方式主要解决的技术问题是如何在不需要借助时钟信号时就能实现串行总线的双向通信,从而降低功耗,提高通信效率并且减少布线资源。
5.为解决上述技术问题,本技术实施方式采用的一个技术方案是:提供一种单总线通信方法,应用于单总线通信系统,所述单总线通信系统包括主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同,所述方法包括:当执行数据传输时,所述主设备向所述至少一个从设备广播命令帧;所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;所述主设备接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输;其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。
6.在一些实施例中,所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,包括:所述至少一个从设备接收所述命令帧,根据所述命令帧获得目标从设备的地址信息;所述至少一个从设备根据所述目标从设备的地址信息确定用于响应所述命令帧的从设备;其中,所述响应所述命令帧的从设备的地址信息与所述目标从设备的地址信息匹配。
7.在一些实施例中,当所述从设备对所述命令帧校验通过时,所述方法还包括:检测所述从设备是否存在响应超时的现象,如果存在,所述从设备向所述主设备返回超时响应帧;否则,所述从设备向所述主设备返还响应帧。
8.在一些实施例中,当所述从设备对所述命令帧校验不通过时,所述方法还包括:所述从设备向所述主设备返回错误响应帧;所述主设备接收所述错误响应帧,并对所述错误响应帧进行校验,当校验通过时,所述主设备根据应用需求决定是否继续发送命令帧;当校验不通过时,所述主设备继续向所述至少一个从设备发送命令帧并接收从设备对所述命令帧的响应结果,当所述响应结果对应的错误响应帧的数量大于预设阈值时,所述主设备上报中断指令。
9.在一些实施例中,在执行所述主设备向所述至少一个从设备发送命令帧的步骤之前,所述方法还包括:获取待执行传输的数据的类型,当所述数据的类型是并行数据时,所述主设备将所述并行数据转换成串行数据,并执行所述主设备向所述至少一个从设备广播命令帧的步骤;当所述主设备对所述响应帧校验通过时,所述方法还包括:所述主设备根据所述响应帧,获取所述从设备发送的串行数据,并将所述串行数据转换成并行数据。
10.为解决上述技术问题,本技术实施方式采用的另一个技术方案是:提供一种单总线通信装置,应用于单总线通信系统,所述单总线通信系统包括主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同,所述装置包括:第一传输单元,用于当执行数据传输时,控制所述主设备向所述至少一个从设备广播命令帧;第一响应单元,用于控制所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;第二响应单元,用于控制所述主设备接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输;其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。
11.为解决上述技术问题,本技术实施方式采用的又一个技术方案是:提供一种单总线通信系统,包括:主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同;所述主设备用于当执行数据传输时,向所述至少一个从设备广播命令帧;所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备用于响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;所述主设备还用于接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输;其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。
12.为解决上述技术问题,本技术实施方式采用的还一个技术方案是:提供一种计算机设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
13.为解决上述技术问题,本技术实施方式采用的再一个技术方案是:提供一种非易
失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被计算机设备执行时,使所述计算机设备执行如上所述的方法。
14.为解决上述技术问题,本技术实施方式采用的还再一个技术方案是:提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行如上所述的方法。
15.区别于相关技术的情况,本技术实施例提供的单总线通信方法、装置、系统及设备,应用于包括主设备和至少一个从设备的单总线通信系统,该主设备与至少一个从设备之间通过单根双向总线物理连接,并且主设备与至少一个从设备的时钟相同。当执行数据传输时,主设备向至少一个从设备发送命令帧,至少一个从设备中的一从设备响应该命令帧,对命令帧进行校验,当校验通过时,该从设备向主设备返还响应帧;主设备接收该响应帧并对响应帧进行校验,如果校验通过,则主设备停止发送命令帧,否则,主设备继续发送新的命令帧。本技术实施例提供的实施方式,一方面,采用“一问一答”的通讯流程,使得数据传输可靠、简单易用、实时性好,并且一问一答的总线传输方式可以根据不同的应用场景进行定制,满足不同的需求,灵活性强;另一方面,使用单根双向总线通信,可以降低成本并减少硬件设备的复杂度;最后,不需要主设备与从设备进行时钟的对齐就能实现串行总线的双向通信,从而降低功耗,提高通信效率并且节约管脚、减少了布线资源。
附图说明
16.一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
17.图1是本技术实施例提供的一种总线通信系统的结构示意图;图2是本技术另一实施例提供的一种总线通信系统的结构示意图;图3a和图3b是本技术实施例提供的所述状态控制模块分别对应的主机状态机和从机状态机的示意图;图4是本技术实施例提供的数据发送处理模块状态机的示意图;图5是本技术实施例提供的数据接收处理模块状态机的示意图;图6是本技术实施例提供的一种单总线通信方法的流程图;图7是本技术实施例提供的命令帧的结构示意图;图8是本技术实施例提供的主设备与从设备一个完整交互过程的示意图;图9是本技术另一实施例提供的一种单总线通信方法的流程图;图10是本技术实施例提供的一种单总线通信装置的结构示意图;图11是本技术实施例提供的执行单总线通信方法的计算机设备40的硬件结构示意图。
具体实施方式
18.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不
用于限定本技术。
19.需要说明的是,如果不冲突,本技术实施例中的各个特征可以相互组合,均在本技术的保护范围之内。另外,虽然在装置示意图中进行了功能模块的划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置示意图中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
20.除非另有定义,本说明书所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。在本技术的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本技术。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
21.请参阅图1,图1是本技术实施例提供的一种总线通信系统的结构示意图。所述单总线通信系统包括主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同。主设备还与主机域中的其他设备进行通信,从设备还与从机域中的其他设备进行通信。
22.其中,主设备与至少一个从设备之间通过一根双向总线物理连接,由于单根双向总线连接只需要一根总线线路来连接所有设备,因此硬件成本相对较低。由于所有设备都连接到同一根总线上,因此连接也相对简单。单根双向总线连接允许连接的设备数量可以根据需要动态调整,具有灵活性高的特点。由于所有设备都连接到同一根总线上,因此维护起来也相对容易。如果需要添加新的设备,只需将其连接到总线上即可,无需对整个系统进行大规模更改。最后,由于所有设备都连接到同一根总线上,因此可以使用较少的硬件资源来保护连接的设备免受安全威胁。
23.可选地,主设备具体可以是主芯片,从设备具体可以是从芯片。
24.在主机域中,主芯片可以与其他主机设备进行通信,例如与处理器、存储器、外设等进行数据交换和控制。通常,主芯片会通过总线或者其他通信接口与其他设备进行通信,并在数据传输中采取相应的措施来保证数据传输的正确性和可靠性。类似地,在从机域中,从芯片也可以与其他从设备进行通信,例如与传感器、执行器、控制器等进行数据交换和控制。从芯片也会通过总线或者其他通信接口与其他设备进行通信,并采取相应的措施来确保数据传输的正确性和可靠性。
25.如图1所示,主设备和从设备都包含数据接收处理模块、数据发送处理模块、串并行转换收发模块、状态控制模块和校验计算模块。
26.其中,校验计算模块分别连接数据接收处理模块和数据发送处理模块,校验计算模块用于对数据接收处理模块接收到的数据进行校验,以及对数据发送处理模块发送前的数据进行校验。
27.数据接收处理模块和数据发送处理模块还分别连接主机域或从机域中的其他设备。数据接收处理模块还用于对接收来源于主机域或从机域中的其他主机设备或从机设备发送的数据进行处理。具体地,数据接收处理模块对接收到的并行数据进行数据提取。数据发送处理模块还用于发送该数据接收处理模块处理后的数据至主机域或从机域中的其他主机设备或从机设备。具体地,数据发送处理模块将控制数据、响应数据包装成数据帧,例如命令帧和响应帧,发送至串并行转换收发模块。
28.状态控制模块与串并行转换收发模块连接,通过发送控制命令至串并行收发模块
以控制串并行转换收发模块的工作状态,进而能够控制该单根双向总线的收发状态。串并行转换收发模块还分别与该单根双向总线、数据发送处理模块和数据接收处理模块连接。主设备或从设备的串并行转换收发模块接收数据发送处理模块发送的并行数据,将该并行数据转换成串行数据,并将该串行数据通过该单根双向总线发送至该单根双向总线另一端对应的从设备或主设备。主设备或从设备的串并行转换收发模块还通过该单根双向总线接收该单根双向总线另一端的从设备或主设备发送的串行数据,并将该串行数据转换成并行数据,然后再发送该并行数据至数据接收处理模块。
29.在一更具体的实施例中,主设备向从设备进行数据传输时,主设备先通过数据发送处理模块生成一个命令帧,然后主设备的状态控制模块控制主设备的串并行转换收发模块通过主设备和从设备之间的单根双向总线发送该命令帧至从设备。当从设备的串并行转换收发模块接收到该命令帧时,将该命令帧转发至从设备的数据接收处理模块,从设备的校验计算模块对该命令帧进行校验,当该命令帧校验通过时,从设备的数据发送处理模块生成一个响应帧,然后从设备的状态控制模块控制从设备的串并行转换收发模块通过该单根双向总线发送该响应帧至主设备。当主设备的数据接收处理模块接收到该响应帧时,主设备的校验计算模块对该响应帧进行数据校验,若数据校验通过,则主设备停止向从设备发送命令帧,若数据校验不通过,主设备继续向从设备重新发送命令帧。
30.其中,状态控制模块、数据发送处理模块、数据接收处理模块包含各种状态转移。如图3a和图3b所示,为所述状态控制模块分别对应的主机状态机和从机状态机的示意图。对于主设备来说,由于其是操作发起方,因此在系统复位之后,如果有命令帧发送,则直接进入发送(send)状态发送命令帧,发送完命令帧之后,进入接收(receive)状态备接收响应帧,接收完响应帧之后,如果还有命令帧需要发送,则跳转回send状态,如果没有命令帧发送,则跳转回空闲(idle)状态。对于从设备来说,则是操作接收方,因此天然处于receive状态准备接收命令帧,接收命令帧之后跳转到send状态发送响应帧,当发送完响应帧之后,则直接跳转回receive状态等待接收下一个命令帧。
31.其中,send状态、receive状态和idle状态是在数据传输过程中常见的状态,具体含义如下:send状态:主设备在该状态下向从设备发送命令帧。在发送命令帧时,主设备需要采取相应的措施来确保数据传输的正确性和可靠性,例如设置超时时间、使用确认应答机制等。从设备在该状态下向主设备发送响应帧。
32.receive状态:从设备在该状态下接收主设备发来的命令帧,并根据命令帧的内容执行相应的操作。在接收命令帧时,从设备需要对命令帧进行校验,并在校验通过后跳转至send状态发送响应帧以告知主设备命令帧已接收。主设备在该receive状态下接收从设备发来的响应帧,并对该响应帧进行校验,校验通过或不通过后,主设备可以跳转至idle状态。
33.idle状态:主设备应用于该状态下,比如主设备未进行数据传输,或者等待下一次数据传输的开始时,主设备可以处于idle状态。
34.需要注意的是,在不同的数据传输协议中,send状态、receive状态和idle状态的具体含义和状态转移规则可能会有所不同,需要根据具体应用场景和协议要求来进行相应的配置和调试。同时,也需要考虑系统的可靠性和安全性,避免数据传输错误和丢失,以确
保数据传输和控制的正确性和可靠性。
35.如图4所示,数据发送处理模块状态机根据需要发送的命令,依次发送前导码(即send_pre)、发送地址(即send_addr)、发送命令码(即send_cmd)、发送长度码(即send_length)、发送校验码1(即send_fcs1)、发送数据(即send_data)、发送校验码2(即send_fcs2)。
36.如图5所示,数据接收处理模块状态机依次处理数据帧的各字段,依次接收前导码(即rec_pre)、接收地址(即rec_addr)、接收命令(即rec_cmd)、接收长度码(即rec_length)、接收校验码1(即rec_fcs1)、接收数据域(即rec_data)以及接收校验码2(即rec_fcs2)。其中。当校验失败跳转至fcs_err(校验错误)状态,当数据长度不匹配时,进入length_error(长度错误)状态,对于这两种情况,直接将整个数据帧丢弃。
37.需要说明的是,本技术实施例中主设备与从设备可以是一对一的关系,也可以是如图2所示的一对多的关系,即一主设备对应多个从设备。当有多个从设备时,主设备向多个从设备广播命令帧,多个从设备均可接收该命令帧,但是只有与命令帧所包含的地址信息相匹配的从设备才能响应该命令帧。
38.其中,主设备与从设备交互的过程中,主设备发送的命令帧,以及从设备接收命令帧后向主设备发送的响应帧,均采用图7所示的格式,该帧格式包含命令和数据,主设备与从设备交互过程中能够同时传输命令和数据。同步传输命令和数据可以减少通信的时间延迟,从而提高通信效率;另外,同步传输命令和数据可以简化通信协议的设计和实现,通信协议不再需要特别考虑命令和数据的传输顺序和同步问题;再者,同步传输命令和数据可以改善数据一致性,如果命令和数据是分开传输的,那么在命令到达从设备之前,主设备可能会不知道从设备中的数据状态。最后,校验码跟随帧一起传输,如果某一帧存在问题,可以简单、灵活处理问题,验错能力增强。
39.本技术实施例提供的单总线通信系统,采用“一问一答”的通讯流程,使得数据传输可靠、简单易用、实时性好,并且一问一答的总线传输方式可以根据不同的应用场景进行定制,满足不同的需求,灵活性强;另外,使用单根双向总线通信,可以降低成本并减少硬件设备的复杂度;最后,不需要主设备与从设备进行时钟的对齐就能实现串行总线的双向通信,从而降低功耗,提高通信效率并且节约管脚、减少了布线资源。
40.请参阅图6,图6是本技术实施例提供的一种单总线通信方法的流程图。该方法可应用上述实施例中的单总线通信系统,所述单总线通信系统包括主设备和至少一个从设备。在执行该单总线通信方法前,设置所述主设备与所述至少一个从设备的时钟相同。本技术实施例提供的方法包括:s11、当执行数据传输时,主设备向至少一个从设备广播命令帧。
41.该执行数据传输包括写数据和读数据两个过程。当该执行数据传输是写数据时,则响应所述命令帧的从设备发送数据帧至主设备,且主设备等待监听该从设备发送过来的数据帧。当该执行数据传输是读数据时,则至少一个从设备等待监听主设备发送过来的命令帧,且主设备向至少一个从设备发送命令帧。
42.其中,主设备和从设备具体可以分别是主芯片和从芯片。命令帧是指用于控制数据传输的帧,它包含了传输的控制信息,例如传输的方向、数据长度、校验信息等。主芯片通过发送命令帧来控制从芯片的操作,从而完成数据传输的控制。例如,在一个系统中,主芯
片需要向从芯片发送命令帧来控制数据传输的方向和长度等信息。主芯片通过控制总线的信号线来发送命令帧,从芯片则通过解析命令帧来执行相应的操作。
43.在本技术实施例中,如图7所示,所述命令帧包括:前导码、地址、命令码、长度码、第一校验码、数据和第二校验码。
44.所述前导码是用于在数据通信中指示数据帧开始的信息,通常是一段特定的比特序列,同一项目中的前导码可设置为相同,不同项目中的前导码可设置为不同。地址由预设编码组成,不同的编码对应于不同的地址,比如0x00为主机地址,0x01-0xff对应于各个从机的域地址,单个从机可能包含多个域地址。命令码包括控制命令和响应命令,主设备使用该控制命令,从设备使用该响应命令。所述控制命令可包括获取/设置从机域的状态、获取从设备的版本号和域数量、获取从机域的温度、获取从机域的数量等。所述响应命令可包括响应从机域的状态、响应从机域的设置状态、响应从机的版本号和域数量、响应从机域的温度和响应从机域的运行时间等。所述长度码用于指示数据的长度,数据长度可以以byte为单位。所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;具体校验算法可由具体实现场景自定义,包括但不限于:循环冗余校验、奇偶校验。所述数据可以是控制命令和响应命令携带的数据,其数据长度由长度码确定。对于控制命令,所述数据可以是对应从机域的一些状态设置信息,比如,将从机域设置为“在线”、将从机域设置为“下线”等。对于响应命令,所述数据可以是对应从机域的响应数据,比如,对应从机域的状态为“在线”、对应从机域的状态为“下线”等。还可以是响应从机域的设置状态,比如主机对从机域设置成功或失败。还可以是响应从机的版本号和域数量。还可以是响应从机域的温度,比如温度的符号位、温度的整数位等。还可以是响应从机域的运行时间,比如从机域总运行时间等。所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验,具体校验算法可由具体实现场景自定义,包括但不限于:循环冗余校验、奇偶校验。在本实施例中,设置第一校验码和第二校验码可以提高数据传输的可靠性,确保数据在传输过程中不会发生错误。第一校验码用于校验数据帧中的地址、命令码和长度码,而第二校验码则用于校验数据帧中的所有信息,包括第一校验码和数据。使用两个校验码的好处在于,它可以提高数据传输的准确性和可靠性,并且可以检测到更多的错误。如果只使用一个校验码,则数据传输中的某些错误可能无法被检测到。例如,在使用循环冗余校验(crc)算法时,如果只使用一个校验码,则只能检测到部分错误,而使用两个校验码则可以检测到更多的错误。因此,通过使用两个校验码,可以检测到更多的错误,从而提高数据传输的可靠性;另外,使用两个校验码可以降低误判概率,从而确保数据传输的准确性;再者,使用两个校验码可以增加数据传输的安全性,防止数据被篡改或者破坏。
45.其中,所述命令码和所述长度码可以根据应用场景自定义设置。命令码是指用于标识命令帧类型的编码,其值可以根据具体应用场景进行定义。例如,在一个通信系统中,可以定义不同的命令码来表示不同类型的数据传输操作,如发送数据、接收数据、请求数据等。比如自定义上述表1中命令码的控制命令和响应命令的具体含义,而不仅仅是获取温度和运行时间,还可以是,例如,在一个机器人系统中,可以自定义命令码和命令帧格式来控制机器人的运动和操作。比如,可以定义控制命令码为0x01,表示控制机器人向前移动;命令码为0x02,表示控制机器人向后移动;命令码为0x03,表示控制机器人旋转等。响应命令码可以定义为0x80,表示控制命令执行成功;0x81,表示控制命令执行失败等。又例如,可以
自定义命令码和命令帧格式来控制计算机设备的开关和设置。比如,可以定义控制命令码为0x10,表示打开设备;命令码为0x11,表示关闭设备;命令码为0x12,表示设置设备参数等。响应命令码可以定义为0x90,表示控制命令执行成功;0x91,表示控制命令执行失败等。
46.长度码是指用于表示数据长度的编码,其值通常是一个固定的数值或者根据实际传输的数据长度动态设置。在一些数据传输协议中,长度码可能需要使用多个字节来表示数据长度,因此需要根据具体情况来确定长度码的格式和长度。
47.在本技术实施例中,命令码以及长度码可拓展配置,功能拓展性较强。通过拓展命令码和长度码,可以为数据传输系统添加新的控制命令和数据类型,从而实现更加复杂的数据传输和控制操作。同时,可拓展的命令码和长度码也可以支持数据传输系统的升级和扩展,满足不同应用场景的需求。例如,在一个智能家居系统中,可以通过拓展命令码和长度码来支持更多的控制命令和数据类型,如控制灯光、空调、窗帘等设备的开关和设置。同时,可以通过升级和扩展命令码和长度码,来支持更多的设备和场景,如添加智能音箱、监控设备等。需要注意的是,在拓展命令码和长度码时,需要遵循相应的数据传输协议和标准,并进行相应的配置和调试。同时,也需要考虑系统的可靠性和安全性,避免命令码和长度码的冲突和误用,以确保数据传输和控制的正确性和可靠性。
48.s12、至少一个从设备接收所述命令帧,并且至少一个从设备中的一个从设备响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧。
49.其中,所述至少一个从设备接收所述命令帧,根据所述命令帧获得目标从设备的地址信息;所述至少一个从设备根据所述目标从设备的地址信息确定用于响应所述命令帧的从设备;其中,所述响应所述命令帧的从设备的地址信息与所述目标从设备的地址信息匹配。
50.响应所述命令帧的从设备还对该命令帧进行校验,以确保命令帧的正确性和可靠性。在数据传输过程中,命令帧的校验通常使用crc(循环冗余校验)或者其他校验算法来进行检验。crc校验可以检测数据传输过程中的错误数据和干扰信号,避免数据传输错误和丢失。当从设备收到命令帧后,它会首先进行校验,以确保命令帧的完整性和正确性。如果校验正确,即校验通过,则从设备会执行相应的操作并发送响应命令帧,通知主设备数据传输的状态和结果。如果校验不正确,即校验不通过,则从设备向所述主设备返回错误响应帧,所述主设备接收所述错误响应帧,并对所述错误响应帧进行校验,当校验通过时,所述主设备停止发送命令帧,否则,所述主设备继续向所述至少一个从设备重新发送命令帧。
51.s13、主设备接收响应帧,并对响应帧进行校验,以确定所述数据是否被准确传输。
52.主设备在接收响应帧后,对响应帧进行校验,以确保响应帧的正确性和可靠性。如果校验通过,则主设备会停止发送命令帧,否则,主设备会继续向从设备发送命令帧,直到数据传输完成或达到最大重试次数。在数据传输过程中,主设备通常会使用一些重传机制来保证数据传输的可靠性。如果主设备未收到响应帧或者收到的响应帧校验错误,主设备会尝试重新发送命令帧,直到达到最大重试次数或者数据传输成功为止。
53.其中,主设备在接收响应帧后,可以通过校验响应帧的格式和内容来判断数据传输是否成功。如果响应帧格式和内容正确,则说明数据传输成功;如果响应帧格式和内容错误,则说明数据传输失败。在一些数据传输协议中,响应帧可能包含一些状态信息或者错误
码,主设备可以通过解析响应帧中的状态信息或者错误码来判断数据传输是否成功。如果响应帧中的状态信息或者错误码表示操作成功,则说明数据传输成功;如果响应帧中的状态信息或者错误码表示操作失败,则说明数据传输失败。
54.在本技术实施例中,如图8所示,为主设备与从设备传输数据的一次完整过程,主设备向从设备发送命令帧,从设备接收该命令帧,从设备向主设备发送响应帧,主设备接收该响应帧。其中,命令帧和响应帧都是如图7所示的帧格式。本技术实施例能够同步传输命令和数据,从而可以减少通信的时间延迟,提高通信效率;另外,同步传输命令和数据可以简化通信协议的设计和实现,通信协议不再需要特别考虑命令和数据的传输顺序和同步问题;再者,同步传输命令和数据可以改善数据一致性,如果命令和数据是分开传输的,那么在命令到达从设备之前,主设备可能会不知道从设备中的数据状态。最后,校验码跟随帧一起传输,如果某一帧存在问题,可以简单、灵活处理问题,验错能力增强。
55.在一些实施例中,当所述从设备对所述命令帧校验不通过时,所述方法还包括:所述从设备向所述主设备返回错误响应帧;所述主设备接收所述错误响应帧,并对所述错误响应帧进行校验,当校验通过时,所述主设备根据应用需求决定是否继续发送命令帧;当校验不通过时,所述主设备继续向所述至少一个从设备发送命令帧并接收从设备对所述命令帧的响应结果,当所述响应结果对应的错误响应帧的数量大于预设阈值时,所述主设备上报中断指令。可选地,如果主设备对接收的响应帧进行校验不通过,此时,主设备也可以继续向所述至少一个从设备重新发送命令帧并接收从设备对所述命令帧的响应结果,当所述响应结果对应的错误响应帧的数量大于预设阈值时,所述主设备上报中断指令。如果主设备对接收的响应帧进行校验通过,此时主设备也可根据应用需求决定是否继续发送命令帧。其中,由于一些特别情况(比如静电等)的影响造成一次或两次帧的校验不通过,可以通过重传机制再次发送对应的帧,从而可以在一定程度上保证数据的可靠性和完整性,提高数据传输的成功率。
56.本技术实施例提供的单总线通信方法,采用“一问一答”的通讯流程,使得数据传输可靠、简单易用、实时性好,并且一问一答的总线传输方式可以根据不同的应用场景进行定制,满足不同的需求,灵活性强;另外,使用单根双向总线通信,可以降低成本并减少硬件设备的复杂度;最后,不需要设计时钟信号时就能实现串行总线的双向通信,从而降低功耗,提高通信效率并且减少布线资源。
57.在一些实施例中,如图9所示,图9是本技术另一实施例提供的一种单总线通信方法的流程图,图9包括步骤s201至步骤s210。其中部分步骤可参考上述实施例。在本技术实施例中,当所述从设备对所述命令帧校验通过时,所述方法还包括:检测所述从设备是否存在响应超时的现象,如果存在,所述从设备向所述主设备返回超时响应帧;否则,所述从设备向所述主设备返还响应帧。在数据传输中,如果从设备对命令帧校验通过,则需要向主设备返回响应帧。但是由于各种原因,如从机域的数据没准备好、网络延迟、硬件故障等,有可能导致从设备无法在规定时间内返回响应帧,从而导致响应超时的现象。为了避免超时现象对数据传输的影响,需要对其进行检测和处理。一种处理方法是,在从设备收到命令帧后,设置一个超时时间,如果超过指定的时间仍未收到主设备的响应,则向主设备发送超时响应帧,其中,超时时间设置可以直接寄存器配置,或者主设备通过双向io线来进行配置。超时响应帧可以包含一些错误码或者状态信息,通知主设备数据传输失败或者超时。另外,
一些数据传输协议中也包含了超时重传机制或者确认应答机制,可以进一步提高数据传输的可靠性和成功率。
58.在一些实施例中,在执行所述主设备向所述至少一个从设备发送命令帧的步骤之前,所述方法还包括:获取待执行传输的数据的类型,当所述数据的类型是并行数据时,所述主设备将所述并行数据转换成串行数据,并执行所述主设备向所述至少一个从设备发送命令帧的步骤。当所述主设备对所述响应帧校验通过时,所述方法还包括:所述主设备根据所述响应帧,获取所述从设备发送的串行数据,并将所述串行数据转换成并行数据。在数据传输中,有时需要将并行数据转换成串行数据进行传输,或者将串行数据转换成并行数据进行处理,以满足不同的数据传输需求。在本技术实施例中,主设备需要根据待执行传输的数据的类型来判断是否需要进行并行数据转换成串行数据的操作。如果待执行传输的数据类型是并行数据,则主设备需要将其转换成串行数据进行传输。转换过程需要根据具体的并行数据格式和传输协议来进行相应的配置和处理。在从设备收到命令帧并返回响应帧后,主设备需要根据响应帧中包含的信息来获取从设备发送的串行数据,并根据数据格式和传输协议将其转换成并行数据。其中转换过程需要考虑数据的正确性和可靠性,避免数据传输错误和丢失。
59.请参阅图10,图10是本技术实施例提供的一种单总线通信装置的结构示意图,该装置应用于上述实施例中的单总线通信系统,所述单总线通信系统包括主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同,所述装置30包括:第一传输单元31用于当执行数据传输时,控制所述主设备向所述至少一个从设备广播命令帧;第一响应单元32用于控制所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;第二响应单元33用于控制所述主设备接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输。其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。
60.需要说明的是,上述单总线通信装置可执行本技术实施例所提供的单总线通信方法,具备执行方法相应的功能模块和有益效果。未在单总线通信装置实施例中详尽描述的技术细节,可参见本技术实施例所提供的单总线通信方法。
61.图11是本技术实施例提供的执行单总线通信方法的计算机设备40的硬件结构示意图,如图11所示,该计算机设备40包括:一个或多个处理器41以及存储器42,图11中以一个处理器41为例。
62.处理器41和存储器42可以通过总线或者其他方式连接,图11中以通过总线连接为例。
63.存储器42作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的单总线通信方法对应的程序指令/模块。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,
从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例单总线通信方法。
64.存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据单总线通信装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
65.所述一个或者多个模块存储在所述存储器42中,当被所述一个或者多个处理器41执行时,执行上述任意方法实施例中的单总线通信方法。
66.上述产品可执行本技术实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本技术实施例所提供的方法。
67.本技术实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图11中的一个处理器41,可使得上述一个或多个处理器可执行上述任意方法实施例中的单总线通信方法。
68.本技术实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被所述计算机设备执行时,使所述计算机设备能够执行上述任意方法实施例中的单总线通信方法。
69.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
70.通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘或随机存储记忆体(random access memory, ram)等。
71.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。

技术特征:
1.一种单总线通信方法,其特征在于,应用于单总线通信系统,所述单总线通信系统包括主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同,所述方法包括:当执行数据传输时,所述主设备向所述至少一个从设备广播命令帧;所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;所述主设备接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输;其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。2.根据权利要求1所述的方法,其特征在于,所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,包括:所述至少一个从设备接收所述命令帧,根据所述命令帧获得目标从设备的地址信息;所述至少一个从设备根据所述目标从设备的地址信息确定用于响应所述命令帧的从设备;其中,所述响应所述命令帧的从设备的地址信息与所述目标从设备的地址信息匹配。3.根据权利要求1所述的方法,其特征在于,当所述从设备对所述命令帧校验通过时,所述方法还包括:检测所述从设备是否存在响应超时的现象,如果存在,所述从设备向所述主设备返回超时响应帧;否则,所述从设备向所述主设备返还响应帧。4.根据权利要求1所述的方法,其特征在于,当所述从设备对所述命令帧校验不通过时,所述方法还包括:所述从设备向所述主设备返回错误响应帧;所述主设备接收所述错误响应帧,并对所述错误响应帧进行校验,当校验通过时,所述主设备根据应用需求决定是否继续发送命令帧;当校验不通过时,所述主设备继续向所述至少一个从设备发送命令帧并接收从设备对所述命令帧的响应结果,当所述响应结果对应的错误响应帧的数量大于预设阈值时,所述主设备上报中断指令。5.根据权利要求1至4任一项所述的方法,其特征在于,在执行所述主设备向所述至少一个从设备发送命令帧的步骤之前,所述方法还包括:获取待执行传输的数据的类型,当所述数据的类型是并行数据时,所述主设备将所述并行数据转换成串行数据,并执行所述主设备向所述至少一个从设备广播命令帧的步骤;当所述主设备对所述响应帧校验通过时,所述方法还包括:所述主设备根据所述响应帧,获取所述从设备发送的串行数据,并将所述串行数据转换成并行数据。6.一种单总线通信装置,其特征在于,应用于单总线通信系统,所述单总线通信系统包
括主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同,所述装置包括:第一传输单元,用于当执行数据传输时,控制所述主设备向所述至少一个从设备广播命令帧;第一响应单元,用于控制所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;第二响应单元,用于控制所述主设备接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输;其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。7.一种单总线通信系统,其特征在于,包括:主设备和至少一个从设备,所述主设备与所述至少一个从设备之间采用单根双向总线物理连接,所述主设备与所述至少一个从设备的时钟相同;所述主设备用于当执行数据传输时,向所述至少一个从设备广播命令帧;所述至少一个从设备接收所述命令帧,并且所述至少一个从设备中的一个从设备用于响应所述命令帧,对所述命令帧进行校验,当校验通过时,所述一个从设备向所述主设备返还响应帧;所述主设备还用于接收所述响应帧,并对所述响应帧进行校验,以确定所述数据是否被准确传输;其中,所述命令帧和所述响应帧均包括前导码、地址、命令码、长度码、第一校验码、数据和第二校验码;所述命令码和所述长度码根据应用场景自定义设置;所述第一校验码用于对所述地址、所述命令码和所述长度码进行校验;所述第二校验码用于对所述地址、所述命令码、所述长度码、所述第一校验码和所述数据进行校验。8.一种计算机设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5任一项所述的方法。9.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被计算机设备执行时,使所述计算机设备执行权利要求1-5任一项所述的方法。10.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非易失性计算
机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行权利要求1-5任一项所述的方法。

技术总结
本申请公开了一种单总线通信方法、装置、系统及设备。该方法应用于单总线通信系统,单总线通信系统包括主设备和至少一个从设备,主设备与至少一个从设备之间采用单根双向总线物理连接,主设备与至少一个从设备的时钟相同,方法包括:当执行数据传输时,主设备向至少一个从设备发送命令帧;至少一个从设备中的一从设备响应该命令帧,进行校验,当校验通过时,从设备向所述主设备返还响应帧;主设备接收响应帧,并进行校验,当校验通过时,主设备停止发送命令帧,否则,主设备继续向至少一个从设备发送命令帧。本申请能够使数据传输可靠、简单易用、实时性好,降低成本并减少硬件设备的复杂度,并且降低功耗,提高通信效率、节约管脚。节约管脚。节约管脚。


技术研发人员:曾磊 何贵洲
受保护的技术使用者:深圳中安辰鸿技术有限公司
技术研发日:2023.07.14
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐