一种单线总线的链式连接通讯方法

文档序号:172463 发布日期:2021-10-29 浏览:30次 >En<

阅读说明:本技术 一种单线总线的链式连接通讯方法 (Chain connection communication method of single-wire bus ) 是由 王少轩 王乃龙 孔令新 于 2021-09-26 设计创作,主要内容包括:本发明公开了一种单线总线的链式连接通讯方法,所述通讯方法的物理链路中包含一个主机和多个从机,所述主机和从机通过单线总线依次连接;所述主机输出定制格式数据;所述通讯方法包括对通讯链路中全部从机的自动地址编码,由主机发送从机地址编码字段的初始值,通讯链路上的从机在该初始值上依次加1或减1形成其自身的从机地址编码;所述通讯方法还包括主机对从机的广播和叫号读写,定制格式数据中包含目标从机地址字段,具有与目标从机地址字段相同的从机地址编码的从机对定制格式数据中的数据字段进行读写;当所述目标从机地址字段设定为特殊约定值时,所述通讯链路上的所有从机均对所述定制格式数据中的数据字段进行读写。(The invention discloses a chain connection communication method of a single-wire bus, wherein a physical link of the communication method comprises a host and a plurality of slave machines, and the host and the slave machines are sequentially connected through the single-wire bus; the host computer outputs the data in the customized format; the communication method comprises the steps that automatic address coding is carried out on all slave machines in a communication link, a host machine sends an initial value of a slave machine address coding field, and the slave machines on the communication link sequentially add 1 or subtract 1 to the initial value to form own slave machine address coding; the communication method also comprises the steps that the host reads and writes the broadcast and the number calling of the slave, the customized format data comprises a target slave address field, and the slave with the slave address code same as the target slave address field reads and writes the data field in the customized format data; and when the address field of the target slave machine is set to a special preset value, all slave machines on the communication link read and write the data field in the custom format data.)

一种单线总线的链式连接通讯方法

技术领域

本发明涉及通讯技术领域,尤其涉及一种单线总线的链式连接通讯方法。

背景技术

针对一主多从的通讯系统,主机需要与所管辖的所有从机进行数据通信,主机需要对各个从机进行集中统一的命令控制和采集各个子系统的状态量,以便主机对数据进行算法分析,根据分析结果执行相应的命令。

传统的可实现一主多从的链式串行通信总线有RS-485、RS-422、IIC、SPI等方式。其中RS-485总线和RS-422总线利用传输线A和B之间的差分电压来代表通信数据“0”和“1”,通信数据“0”和“1” 分别用差分电压-2V至-6V和+2V至+6V来表示,-2V至-6V和+2V至+6V差分电压在强电磁干扰的环境下极容易受干扰而造成通信不稳定;IIC总线和SPI总线一般应用于同一块电路板的不同主控MCU之间通信,但IIC总线和SPI总线传输通信开销大,占用主控MCU的资源多,导致整个控制系统处于亚稳态中。上述通讯总线共同的缺陷在于需要多条信号线进行数据传输,这导致了在集成化电路中需要额外的布线空间进行实现。

同时现有技术中的单线总线通信协议,通常使用脉宽调制协议,其缺点是通信速率较低,如果想提高通信速率,往往需要额外的时钟信号,同步信号,或者约定通信速率。

由此可见,现有技术中需要一种通过单线总线实现链式通讯的通讯方法,从而实现在少量通讯线路的情况下提高通讯速率。

发明内容

本发明所要解决的技术问题之一是在使用少量通讯线路的情况下提供更高的通讯速率,即使用单线总线实现链式连接的通讯。

为了解决上述技术问题,本发明提供了一种单线总线的链式连接通讯方法,所述通讯方法的物理链路中包含一个主机和多个从机,所述主机和从机通过单线总线依次连接,主机的数据输出端连接第一个从机的数据接收端,主机的数据接收端连接最后一个从机的数据输出端;每一个从机的数据接收端连接通讯链路中的上一个通讯节点的数据输出端,每一个从机的数据发射端连接通讯链路中的下一个通讯节点的数据输入端;所述主机输出定制格式数据;

所述通讯方法包括对通讯链路中全部从机的自动地址编码,所述定制格式数据中包含从机地址编码字段,由主机发送从机地址编码字段的初始值,通讯链路上的从机在该初始值上依次加1或减1形成其自身的从机地址编码;

所述通讯方法还包括主机对通讯链路上从机的广播和叫号读写,所述定制格式数据中包含目标从机地址字段,当所述定制格式数据在通讯链路中依次经过从机时,具有与目标从机地址字段相同的从机地址编码的从机对所述定制格式数据中的数据字段进行读写;当所述目标从机地址字段设定为特殊约定值时,所述通讯链路上的所有从机均对所述定制格式数据中的数据字段进行读写;所述特殊约定值不与所有从机的地址编码重复。

在一个实施例中,所述定制格式数据中还包含有回显功能数据,根据所述回显功能数据,主机获得其发出的数据指令的执行效果,同时获知从机反馈的错误信息。

在一个实施例中,所述回显功能数据包括回显数据优先级字段,当从机读取的由上一节点从机发送来的回显数据优先级字段的优先级没有当前从机的回显数据优先级高时,则当前从机执行将当前从机的回显功能数据写入到定制格式数据中覆盖当前的回显功能数据;反之,则不对当前回显功能数据进行任何操作,将其传递至下一个从机。

在一个实施例中,所述定制格式数据还包括同步字前导码字段和同步字帧分隔符字段,所述同步字前导码字段和同步字帧分隔符字段采用曼彻斯特编码实现。

在一个实施例中,所述同步字前导码字段为连续N个宽度为T的高低电平信号,所述同步字帧分隔符字段为紧随其后出现的第一个宽度为2T的电平信号。

和同步字帧分隔符字段在一个实施例中,所述定制格式数据还包括同步字前导码字段和同步字帧分隔符字段,所述同步字前导码字段和同步字帧分隔符字段采用脉冲宽度编码实现。

在一个实施例中,连续N个宽度为T的高低电平信号为同步字前导码字段,紧随其后出现的宽度为3T的高电平加宽度为T的低电平信号为同步字帧分隔符字段。

在一个实施例中,在对通讯链路中全部从机的自动地址编码时,所述从机对所述定制格式数据中包含的从机地址编码字段进行处理时,采用LSB first模式,当前从机在收到从机地址编码字段的最低位后立刻进行加1或减1运算,并将该位数据立即传递至通讯链路中的下一个节点的从机。

在一个实施例中,所述定制格式数据的从机地址编码字段的初始值根据通讯链路中的实际从机数量进行调整。

与现有技术相比,本发明的一个或多个实施例可以具有如下优点:

1.本发明中使用单线总线连接一主多从通讯链路,在该通讯链路中通讯布线实现了最小化,便于集成电路设计中的简化布线。

2.本发明中提供对单线总线链式通讯链路的从机自动地址编码方法,根据该方法可以快速准确的对单线总线链式通讯链路中的从机进行地址编码。

3.本发明中给出了通过LSB first模式进行自动地址编码运算的方法,根据LSBfirst模式能够保证从机收到1位数据之后立刻就能输出,不用等到整个字段全部收到,从而降低从机延迟,提高通信效率。

4.本发明中采用曼彻斯特编码规则实现同步字字段,曼彻斯特编码每位数据编码后高电平和低电平的时间是相等的,因此传输直流分量是固定的,具有良好的抗干扰能力。本实施例在以曼彻斯特编码传输的过程中,由于曼彻斯特编码每一位编码中都有一次电平的跳变,传输过程中没有累计的采样误差,具有良好的自同步能力,因此能够以较高的速率传输。每个从机之间的时钟频率不可避免的存在偏差,本实施例在以曼彻斯特编码传输的过程中,对同步头的解码以及每位编码的传输都可以对该偏差做自动修正,因此整个链上数据的传输速率是稳定的。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明的单线总线链式连接通讯方法的物理链路结构示意图;

图2是本发明一实施例的定制格式数据的数据帧结构示意图;

图3是本发明一实施例所使用的曼彻斯特编码示意图;

图4是本发明一实施例的由曼彻斯特编码构成的同步字的示意图;

图5是本发明一实施例所使用的脉冲宽度编码示意图;

图6是本发明一实施例的由脉冲宽度编码构成的同步字的示意图;

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下结合附图1-6对本发明作进一步地详细说明。

实施例1

如图1所示,本实施例的单线总线链式连接通讯方法的物理链路中包含一个主机和多个从机,主机从数据发射端口DO发出定制格式数据,该定制格式数据输入至从机1的数据输入端口DI,经过从机1处理后该定制格式数据从从机1的数据输出端口DO输出,从机1的数据输出端口DO连接从机2的数据输入端口DI,经过从机1处理后该定制格式数据从从机2的数据输出端口DO输出,从机2的数据输出端口DO连接从机3的数据输入端口DI。根据上述规律,所有从机自从机1至从机N依次连接。最后一个从机N的数据输出端口DO连接至主机的数据输入端口DI。

如图2所示为本实施例的定制格式数据的数据帧结构示意图。本实施例的单线总线的链式连接通讯方法中所使用的定制格式数据包括:

同步字前导码字段:Preamble;

同步字帧分隔符字段:SFD:Start of Frame Delimiter;

从机地址编码字段:DevAddrSet:;

回显数据优先级字段:EchoPri;

回显从机地址字段:EchoDev;

回显数据地址字段:EchoAddr;

回显数据字段:EchoData;

目标从机地址字段:DevAddr;

指令字段:CMD;

数据地址字段:DataAddr;

数据长度字段:DataLen;

读写数据内容字段:Data0/1/…/N;

校验数据字段:CS;

所述定制格式数据的第一帧与第二帧为可自定义的同步字,其包括同步字前导码字段Preamble和同步字帧分隔符字段SFD。从机通过对同步字的解码,从中提取出时钟信息,从而实现了主机与所有从机之间的自同步功能。该同步字为可选字段,当未定义同步字时,主机与所有从机可以使用存储于各自内部的约定的速率进行通信。

本实施例中,同步字使用曼彻斯特编码实现,所述曼彻斯特编码(Manchestercoding),又称自同步码、相位编码(phase encoding,PE),能够用信号的变化来保持发送设备和接收设备之间的同步。如图3所示,曼彻斯特编码中,每bit数据中间存在一个跳变沿,上升沿为1,下降沿为0(另一种标准曼彻斯特编码定义正好相反,上升沿为0,下降沿为1)。图4所示为本实施例中使用曼彻斯特编码一种同步字,连续N(N>=4)个宽度为T的高低电平之后(Preamble),出现的第一个宽度为2T的电平(SFD),判定为检测到同步字,其中连续N(N>=4)个宽度为T的高低电平为同步字前导码字段Preamble,紧随其后出现的第一个宽度为2T的电平为同步字帧分隔符字段SFD。曼彻斯特编码中,每位数据编码后高电平和低电平的时间是相等的,因此传输直流分量是固定的,具有良好的抗干扰能力。本实施例在以曼彻斯特编码传输的过程中,由于曼彻斯特编码每一位编码中都有一次电平的跳变,传输过程中没有累计的采样误差,具有良好的自同步能力,因此能够以较高的速率传输。每个从机之间的时钟频率不可避免的存在偏差,本实施例在以曼彻斯特编码传输的过程中,对同步头的解码以及每位编码的传输都可以对该偏差做自动修正,因此整个链上数据的传输速率是稳定的。

本实施例的单线总线的链式连接通讯方法中,最为重要的部分之一即为针对全部从机的地址编码,只有当通信链路中的全部从机都设定有唯一的地址编码时,才能够实现将数据传送至指定的从机,且同时确定传回主机的数据来自于哪一个具体的从机。本实施例中实现了主机对全部从机的自动地址编码。本实施例中从机地址编码方法通过定制格式数据中的从机地址编码字段DevAddrSet实现,首先,由主机发送从机地址编码字段DevAddrSet的初始值,从机在该初始值上依次加1或减1形成其自身的从机地址编码,字段数据采用大端模式,即MSB First。

本实施例中,当主机发送的从机地址编码字段DevAddrSet的值为0x00时,从机1收到从机地址编码字段DevAddrSet的值为0x00,从机1在收到从机地址编码字段DevAddrSet的值上加1将从机地址编码字段DevAddrSet的值变为0x01,从而从机1的地址编码即为0x01。随后从机地址编码字段DevAddrSet的值0x01被输送至从机2,从机2在收到从机地址编码字段DevAddrSet的值上加1将从机地址编码字段DevAddrSet的值变为0x02,从而从机2的地址编码即为0x02。并以此类推完成对全部从机的地址编码。

当主机发送的DevAddrSet字段的值为0xff时,从机1收到DevAddrSet字段的值为0xff,从机1在收到DevAddrSet字段值上减1将DevAddrSet字段值变为0xfe,从而从机1的地址编码即为0xfe。随后DevAddrSet字段值0xfe被输送至从机2,从机2在收到DevAddrSet字段值上减1将DevAddrSet字段值变为0xfd,从而从机2的地址编码即为0xfd。以此类推完成对全部从机的地址编码。

上述实施例中由于主机发送的DevAddrSet字段的初始值为0x00或0xff,可知此时能够使用的有效地址编码只有255个,即通讯链路中的从机数量最多为255个。如果通讯链路中存在超过255个从机,则DevAddrSet字段的初始值可以设置为0x000或0xfff,即从机数量上限为4095个。依次类推DevAddrSet字段的初始值为0x0000或0xffff对应从机数量上限为65535个。因此本实施例中的DevAddrSet字段的初始值可以根据通讯链路中从机具体的数量值进行调整。

本实施例中,对从机进行地址编码的生效模式有两种方式,一是在每一次通讯时均定制格式数据中均都附带从机地址编码字段,每个从机在收到该字段后,按照上面编码方式,现场进行从机地址解码,然后对后续的数据按照约定进行响应。又或者,在通信前,由主机发送专门用于从机编码的定制格式数据,对每个从机进行地址编码,所述全部从机在获得了自身的地址编码后,进行存储。在之后每次通信中定制格式数据可以不需要附带DevAddrSet字段,从而简化了定制格式数据的帧结构,提高通信效率。

本实施例中,根据通信链路上所有从机的地址编码,主机可以实现对通讯链路上从机的广播和叫号读写。所述广播和叫号读写数据包括目标从机地址字段DevAddr、数据地址字段DataAddr、数据长度字段DataLen及读写数据内容字段Data0/1/…/N。其中,当目标从机地址DevAddr指向某一具体从机的编码地址时,这由指定编码地址上的从机执行对数据的读写,例如当从机地址DevAddr为0x02时,则指定从机2对数据地址DataAddr、数据长度DataLen及读写数据内容Data0/1/…/N进行读写操作。当目标从机地址DevAddr设定为特定值时,如目标从机地址DevAddr设定为0x00时,则表示要求通讯链路上的每一个从机均对数据地址DataAddr、数据长度DataLen及读写数据内容Data0/1/…/N进行读取操作。

所述数据长度字段DataLen为可选字段,该字段省略时,可以通过其他字段,如数据地址字段DataAddr等确定数据长度,或者约定固定的数据长度。

本实施例的定制格式数据的数据中还包含有回显功能数据,根据所述回显功能数据,主机可以获得其发出的数据指令的执行效果,也可以获知从机反馈的错误信息。所述回显功能数据包括:回显数据优先级字段EchoPri、回显从机地址字段EchoDev、回显数据地址字段EchoAddr和回显数据字段EchoData。其中所述回显数据优先级字段EchoPri首先被从机读取,当从机读取的由上一节点从机发送来的回显数据优先级字段EchoPri的优先级没有当前从机的回显数据优先级高时,则当前从机执行将当前从机的回显功能数据写入到定制格式数据中覆盖之前的回显功能数据。反之,则当前回显功能数据被保留传递至下一个从机。

本实施例中指令字段CMD为可选字段。该字段省略时,相关指令数据可整合到其他字段中,如数据地址字段DataAddr中。

本实施例中校验数据字段CS在带校验码的通信中,用于对整个数据帧做校验,校验数据字段可使用常见的校验码,如CRC,Checksum等。 校验数据字段CS为可选字段。

实施例2

本实施例是对上实施例1的进步的改进,本实施例中的单线总线链式连接通讯方法的物理层结构与实施例中保持一致,均为一主多机结构,主机与所有从机之间使用单线总线依次连接。

本实施例的单线总线的链式连接通讯方法中所使用的定制格式数据的数据结构与上述实施例1中的定制格式数据的数据结构保持一致。

本实施例的改进在于,实施例1在从机地址自动编码过程中采用的方法是首先,由主机发送从机地址编码字段DevAddrSet的初始值,从机在该初始值上依次加1或减1形成其自身的从机地址编码,字段数据采用大端模式,即MSB First。由于MSB First的传输顺序,因此需要一个字段传输完毕之后,才能对其计算加1或者减1操作,因此每个从机上的延迟至少为1个地址编码字段的长度。如果从机数量较多,整个链路上的延迟会比较大。

而本实施例中为了进一步提高通信速率,字段数据采用小端模式,即LSB first进行数据处理,当主机发送的从机地址编码字段DevAddrSet的值为0x00时,从机1收到从机地址编码字段DevAddrSet的值应为0x00,根据LSB first机制,从机地址编码字段DevAddrSet的值0x00的最低位0会首先传送至从机1,而在从机1在收到从机地址编码字段DevAddrSet的值的最低位0后立刻进行加1运算,并将该位数据立即传递至从机2。同理。从机2接收到从机地址编码字段DevAddrSet的最低位值1后,即可进行加1运算并传递至下一个节点的从机。这样的机制能够保证收到1位数据之后立刻就能输出,不用等到整个字段全部收到,从而降低从机延迟,提高通信效率。

同时本实施例中,同步字使用脉冲宽度编码实现,本实施例中定义如图5所示的脉冲宽度编码:以4T为一位数据的编码宽度,3T的高电平加1T的低电平定义位逻辑1,1T的高电平加3T的低电平定义位逻辑0。则本实施例中的同步字前导码字段Preamble和同步字帧分隔符字段SFD如图6所示,连续N(N>=4)个宽度为T的高低电平之后(Preamble),出现第一个逻辑1(宽度为3T的高电平加宽度位1T的低电平)(SFD),判定为检测到同步字。其中连续N(N>=4)个宽度为T的高低电平为同步字前导码字段Preamble,紧随其后出现的第一个逻辑1,即宽度为3T的高电平加宽度为T的低电平为同步字帧分隔符字段SFD。

以上所述,仅为本发明的具体实施案例,本发明的保护范围并不局限于此,任何熟悉本技术的技术人员在本发明所述的技术规范内,对本发明的修改或替换,都应在本发明的保护范围之内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:充换电柜的通信系统及充换电柜

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!