发明内容
本发明实施例所要解决的技术问题在于,提供一种环网串行通讯方法及系统,可解决现有工业控制方案设计复杂、成本较高的缺陷。
为了解决上述技术问题,本发明实施例提供了一种环网串行通讯系统,包括主节点以及与所述主节点串联成环网的至少一个从节点;
所述主节点包括:
主节点传输模块,用于向在数据传输方向上与所述主节点相邻的下一从节点发送数据传输帧,并从数据传输方向上与所述主节点相邻的上一从节点接收返回的数据传输帧,所述数据传输帧包括帧类型字段;
所述从节点包括:
从节点传输模块,用于接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的数据传输帧,并将处理后的数据传输帧转发给所述主节点或在数据传输方向上与所述从节点相邻的下一从节点
帧类型确定模块,用于根据所述帧类型字段确定所述数据传输帧的类型;
点对点帧处理模块,用于当所述帧类型确定模块确定所述数据传输帧是点对点帧时,从所述点对点帧中提取目的地址信息,当所述目的地址信息与本节点地址一致时,提取所述点对点帧中的数据内容,将对应的数据内容写入所述点对点帧;
广播帧处理模块,用于当所述帧类型确定模块确定所述数据传输帧是广播帧时,从所述广播帧中指定给本节点的位置提取数据内容,并将本节点中对应的数据内容写入所述广播帧中指定给本节点的位置。
其中,所述主节点传输模块还用于向在数据传输方向上与所述主节点相邻的下一从节点发送地址配置帧;所述从节点传输模块还用于接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的地址配置帧,所述地址配置帧包括节点地址字段;
所述从节点还包括:
地址配置模块,用于判断自己是否分配有节点地址,若判断为否,则将所述节点地址字段中的节点地址分配给自己;若判断为是,则通知所述从节点传输模块将所述地址配置帧转发给在数据传输方向上与所述从节点相邻的下一从节点。
其中,所述主节点传输模块还用于向在数据传输方向上与所述主节点相邻的下一从节点发送地址确认帧,并从在数据传输方向上与所述主节点相邻的上一从节点接收返回的地址确认帧;所述从节点传输模块还用于接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的地址确认帧,并将处理后的地址确认帧转发给所述主节点或在数据传输方向上与所述从节点相邻的下一从节点;
所述从节点还包括:
地址确认帧处理模块,用于将本节点的节点地址写入所述地址确认帧中指定给本节点的位置。
其中:
所述主节点还包括:
地址确认模块,用于从返回的地址确认帧中提取各个从节点的节点地址信息,判断是否存在地址分配错误的从节点;
所述主节点传输模块还用于在地址确认模块的判断结果为是时,向在数据传输方向上与所述主节点相邻的下一从节点发送复位帧;
所述从节点传输模块还用于接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的复位帧,并将复位帧转发给所述主节点或在数据传输方向上与所述从节点相邻的下一节点;
所述从节点还包括:
复位帧处理模块,用于根据复位帧清除本节点配置的节点地址。
其中:
所述主节点还包括:
主节点故障检测模块,用于当检测到故障时,确定故障类型;若所述故障是断线,则发送故障诊断帧;若所述故障是异常,则发送故障码;
所述从节点还包括:
从节点故障检测模块,用于当检测到故障时,确定故障类型;若所述故障是断线,则发送故障诊断帧;若所述故障是异常,则发送故障码。
相应地,本发明还提供了一种环网串行通讯方法,包括:
主节点向在数据传输方向上与所述主节点相邻的下一从节点发送数据传输帧,所述数据传输帧包括帧类型字段
从节点接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的数据传输帧;
根据所述帧类型字段确定所述数据传输帧的类型:
若所述数据传输帧是点对点帧,则从所述点对点帧中提取目的地址信息,当所述目的地址信息与本节点地址一致时,提取所述点对点帧中的数据内容,将对应的数据内容写入所述点对点帧;
若所述数据传输帧是广播帧,则从所述广播帧中指定给本节点的位置提取数据内容,并将本节点中对应的数据内容写入所述广播帧中指定给本节点的位置;
将处理后的数据传输帧转发给所述主节点或在数据传输方向上与所述从节点相邻的下一从节点;
主节点从数据传输方向上与所述主节点相邻的上一从节点接收返回的数据传输帧。
其中,在所述主节点向在数据传输方向上与其相邻的下一从节点发送数据传输帧的步骤之前,所述方法还包括:
主节点向在数据传输方向上与所述主节点相邻的下一从节点发送地址配置帧,所述地址配置帧包括节点地址字段;
从节点接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的地址配置帧;
判断自己是否分配有节点地址,若判断为否,则将所述节点地址字段中的节点地址分配给自己;若判断为是,则将所述地址配置帧转发给在数据传输方向上与所述从节点相邻的下一从节点。
其中,在所述主节点向在数据传输方向上与其相邻的下一从节点发送数据传输帧的步骤之前,所述方法还包括:
主节点向在数据传输方向上与所述主节点相邻的下一从节点发送地址确认帧;
从节点接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的地址确认帧;
将本节点的节点地址写入所述地址确认帧中指定给本节点的位置;
将所述地址确认帧转发给所述主节点或在数据传输方向上与所述从节点相邻的下一从节点;
主节点从在数据传输方向上与所述主节点相邻的上一从节点接收返回的地址确认帧。
其中,所述主节点从在数据传输方向上与其相邻的上一从节点接收返回的地址确认帧的步骤之后,所述方法还包括:
主节点从返回的地址确认帧中提取各个从节点的节点地址信息,判断是否存在地址分配错误的从节点;
若判断为是,则向在数据传输方向上与所述主节点相邻的下一从节点发送复位帧;
从节点接收从所述主节点或在数据传输方向上与所述从节点相邻的上一从节点发送来的复位帧;
根据复位帧清除本节点配置的节点地址。
其中,所述方法还包括:
当检测到故障时,确定故障类型;
若所述故障是断线,则发送故障诊断帧;
若所述故障是异常,则发送故障码。
实施本发明实施例,具有如下有益效果:通过在串行通讯环内传输点对点帧,只需一次帧传输,就可以完成主节点与指定从节点的数据交换;通过在串行通讯环内传输广播帧,并给每个从节点在广播帧中指定相应的数据存储位置,只需一次帧传输,就可以完成主节点与所有从节点的数据交换;设计简单,利于开发,且成本较低。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是预定义协议下环网串行通讯系统100的分层示意图,包括一个主节点110和至少一个从节点120-1~120-N,传输方向为主节点110、从节点120-1、从节点120-2、……、从节点120-N、主节点110,在物理上构成一个串行通讯环。各个节点之间可以采用光纤连接,以利于安规设计,也可以采用线缆连接,以降低成本。根据预定义的通信协议,可以将主节点110和从节点120-1~120-N中的每一个都分别分为三层,这三层分别为编解码层1、协议控制层2和数据存储层3。
主节点110和从节点120-1~120-N的编解码层1可以利用各种编解码方式对数据进行编解码,例如采用4B5B编解码和非归零反相编解码相结合的方式,可以提高直流平衡性能。其中,编解码层1的4B5B编码过程包括:将输入并行数据编码成数据码,写入相应的字段,并在字段头部和尾部分别加入起始码和结束码,将输入状态编码成同步码、故障码后输出。其中,故障码优先级最高,数据码次之,同步码优先级最低。其中故障码和同步码可不通过帧直接在总线上传输,实时性高,可用来作故障保护和周期同步。编解码层1的4B5B解码方式包括识别起始码和结束码,将串行数据段解码成数据输出至协议控制层2;将同步码和故障码解码成状态信号输出至协议控制层2。
主节点110和从节点120-1~120-N的协议控制层2可以解析环形总线上传输的帧并判断帧类型,根据帧类型决定是否响应该帧;若响应该帧,还可以决定发送和接收数据字段的起始位置。
主节点110和从节点120-1~120-N的数据存储层3用于存储需要交换的数据,包括接收存储区间和发送存储区间这两个独立的存储区间,从而保证数据读写能够独立进行。通常,每个节点(包括主节点110和从节点120-1~120-N的协议控制层2)的数据存储层3的空间大小相同。
请参见图2,是本发明第一实施例提供的环网串行通讯系统100的结构示意图。其中,主节点110包括主节点传输模块111,从节点包括从节点传输模块121、帧类型确定模块122、点对点帧处理模块123和广播帧处理模块124。
主节点传输模块111,位于主节点110的编解码层1,用于向在数据传输方向上与主节点110相邻的下一从节点发送数据传输帧,并从数据传输方向上与主节点110相邻的上一从节点接收返回的数据传输帧,所述数据传输帧包括帧类型字段。具体地,主节点传输模块111用于对待传输数据进行编码,写入数据传输帧,然后将其发送给下一从节点;还用于从上一从节点接收返回的数据传输帧,对所述数据传输帧进行解码,获取所需数据。优选地,数据传输帧可以是点对点帧或广播帧。如下表1所示,点对点帧可以包括帧起始字段、帧类型字段、节点地址及数据段位置字段、源地址字段、校验码字段和数据字段,其中源位置字段用于表示主节点110的节点地址,节点地址及数据段位置字段用于表示指定从节点的节点地址及数据字段的起始位置。如下表2所示,广播帧可以包括帧起始字段、帧类型字段、数据段位置字段、源地址字段、校验码字段和数据字段,其中源位置字段用于表示主节点110的节点地址,广播帧中的数据段位置字段用于表示数据字段的起始位置。
帧起始字段 |
帧类型字段 |
节点地址及数据段位置字段 |
源地址字段 |
校验码字段 |
数据字段 |
表1
帧起始字段 |
帧类型字段 |
数据段位置字段 |
源地址字段 |
校验码字段 |
数据字段 |
表2
从节点传输模块121,位于从节点120-1~120-N的编解码层,用于接收主节点110或数据传输方向上与该从节点相邻的上一从节点发送来的数据传输帧;还用于将处理后的数据传输帧转发给主节点110或数据传输方向上与该从节点相邻的下一从节点。具体地,第一从节点120-1的从节点传输模块121从主节点110接收数据传输帧,对数据传输帧进行解码后,传递给第一从节点120-1的协议控制层进行处理,然后第一从节点120-1的从节点传输模块121对其协议控制层处理后的数据进行编码,得到处理后的数据传输帧,最后将该处理后的数据传输帧转发给第二从节点120-2;第二从节点进行类似的操作,依次类推,直至第N从节点120-N将处理后的数据传输帧转发给主节点110的主节点传输模块111,完成主节点与从节点之间的数据交换。
帧类型确定模块122,位于从节点120-1~120-N的协议控制层,用于根据所述帧类型字段确定所述数据传输帧的类型。在本实施例中,数据传输帧的类型包括点对点帧和广播帧,但这仅仅用于举例说明,在本发明的其它实施例中,数据传输帧还可以包括组播帧等任何合适类型的数据传输帧。
点对点帧处理模块123,位于从节点120-1~120-N的协议控制层,用于当所述帧类型确定模块122确定所述数据传输帧是点对点帧时,从所述点对点帧中提取目的地址信息,当所述目的地址信息与本节点地址一致时,提取所述点对点帧中的数据内容,将对应的数据内容写入所述点对点帧。具体地,当帧类型确定模块122确定所接收的数据传输帧是点对点帧时,点对点帧处理模块123从该点对点帧的节点地址及数据段位置字段提取目的地址信息(即指定节点的节点地址)和数据字段的起始位置,若目的地地址信息与本节点的节点地址一致,表示本节点即为指定节点,然后点对点帧处理模块123根据数据字段的起始位置找到点对点帧中的数据字段,由从节点传输模块121对其进行解码,然后点对点帧处理模块123将解码后的数据写入数据存储层的接收存储区间,并从数据存储层的发送存储区间的相应位置提取数据内容,由从节点传输模块123对该提取的数据内容进行编码,点对点帧处理模块123将编码后的数据内容写入点对点帧中对应的数据字段;若目的地地址信息与本节点的节点地址不一致,则表示本节点不是指定节点,通过从节点传输模块121将数据帧转发给主节点110或数据传输方向上与该从节点相邻的下一从节点
广播帧处理模块124,位于从节点120-1~120-N的协议控制层,用于当帧类型确定模块122确定所述数据传输帧是广播帧时,从所述广播帧中指定给本节点的位置提取数据内容,并将本节点中对应的数据内容写入所述广播帧中指定给本节点的位置。具体地,当帧类型确定模块122确定所接收的数据传输帧是广播帧时,广播帧处理模块124从该广播帧的数据段位置字段提取数据字段的起始位置,根据数据字段的起始位置找到广播帧中的数据字段,由从节点传输模块121对其进行解码,然后广播帧处理模块124从解码后的数据中提取指定给本节点的位置中的数据,写入数据存储层的接收存储区间,并从数据存储层的发送存储区间的相应位置提取数据,写入广播帧的数据字段中指定给本节点的位置,并由从节点传输模块124对数据字段进行编码。其中,根据预先定义的协议,广播帧中的数据字段的不同位置被分配给各个从节点,例如广播帧的数据字段可以如下表3所示。
第一从节点数据 |
第二从节点数据 |
…… |
第N-1从节点数据 |
第N从节点数据 |
表3
本发明实施例提供的串行通讯系统,通过在串行通讯环内传输点对点帧,只需一次帧传输,就可以完成主节点与指定从节点的数据交换;通过在串行通讯环内传输广播帧,并给每个从节点在广播帧中指定相应的数据存储位置,只需一次帧传输,就可以完成主节点与所有从节点的数据交换;设计简单,利于开发,且成本较低。
通常,重新上电后,所有从节点都处于初始状态,没有被分配节点地址,因此只能接收上一节点的数据,而不能将接收到的数据转发给下一节点,整个通讯环是断开的。这时,主节点需要对从节点进行地址配置,下面将参考图3对这个优选实施例进行详细描述。
请参见图3,是本发明第二实施例提供的环网串行通讯系统100的结构示意图。其中,主节点110包括主节点传输模块111,从节点120-1~120-N分别包括从节点传输模块121、帧类型确定模块122、点对点帧处理模块123、广播帧处理模块124和地址配置模块125。
主节点传输模块111,除了图2所示实施例的功能之外,还用于向在数据传输方向上与主节点110相邻的下一从节点发送地址配置帧,所述地址配置帧包括节点地址字段。具体地,主节点传输模块111依次向第一从节点120-1发送N个地址配置帧,分别用于给从节点120-1~120-N配置节点地址。优选地,如下表4所示,地址配置帧可以包括帧起始字段、帧类型字段、源地址字段、节点地址字段、和校验码字段,其中源位置字段用于表示主节点110的节点地址,节点地址字段用于表示分配给从节点的可供识别的节点地址。
帧起始字段 |
帧类型字段 |
源地址字段 |
节点地址字段 |
校验码字段 |
表4
从节点传输模块121,除了图2所示实施例的功能之外,还用于接收主节点110或数据传输方向上与该从节点相邻的上一从节点发送的地址配置帧,并在本节点已分配有节点地址时将所接收的地址配置帧转发给数据传输方向上与该从节点相邻的下一从节点。
地址配置模块125,位于协议控制层,用于判断自己是否分配有节点地址,若判断为否,则将所述节点地址字段中的节点地址分配给自己;若判断为是,则通知所述从节点传输模块121将所述地址配置帧转发给下一节点。具体地,当第一从节点120-1的从节点传输模块121从主节点110接收第一个地址配置帧时,自己还没有配置节点地址,因此地址配置模块125将地址配置帧的节点地址字段中的节点地址分配给自己;当第一从节点120-1的从节点传输模块121从主节点110接收第二个地址配置帧时,自己已经配置有节点地址,因此从节点传输模块121将该第二个地址配置帧转发给第二从节点120-2,依次类推,直至第N从节点120-N根据主节点110发出的第N个地址配置帧完成地址配置。
图3所示的实施例虽然对从节点进行了地址配置,但是无法确保所配置的节点地址均是正确的,一旦从节点的节点地址配置错误,必然影响数据交换的准确率,因此,需要对每个从节点所配置的节点地址进行检查,甚至纠错。下面将参考图4对该优选实施例进行详细描述。
请参见图4,是本发明第三实施例提供的环网串行通讯系统100的结构示意图。其中,主节点110包括主节点传输模块11l和地址确认模块112,从节点120-1~120-N分别包括从节点传输模块121、帧类型确定模块122、点对点帧处理模块123、广播帧处理模块124、地址配置模块125、地址确认帧处理模块126和复位帧处理模块127。
主节点传输模块111,除了图3所示实施例中的功能外,还用于向在数据传输方向上与主节点110相邻的下一从节点发送地址确认帧,并从在数据传输方向上与主节点110相邻的上一从节点接收返回的地址确认帧;还用于在地址确认模块112确定存在地址分配错误的从节点时,向在数据传输方向上与主节点110相邻的下一从节点发送复位帧,将所有从节点的节点地址清除。优选地,如下表5所示,地址确认帧可以包括帧起始字段、帧类型字段、源地址字段和节点地址字段,其中该节点地址字段为空,且节点地址字段的不同位置被分配给各个从节点。优选地,如下表6所示,返回给主节点传输模块111的地址确认帧中的节点地址字段包括第一从节点地址、第二从节点地址、……、第N-1从节点地址、第N从节点地址。优选地,如下表7所示,主节点传输模块111发送的复位帧可以包括帧起始字段、帧类型字段、源地址字段和校验码字段,其中源位置字段用于表示主节点110的节点地址。
表5
第一从节点地址 |
第二从节点地址 |
…… |
第N-1从节点地址 |
第N从节点地址 |
表6
表7
地址确认模块112,位于协议控制层,用于从主节点传输模块111从上一从节点(即第N从节点120-N)接收的地址确认帧的节点地址字段(如上表6所示)中提取各个从节点的节点地址信息,判断是否存在地址分配错误的从节点,若存在地址分配错误的从节点,则通知主节点传输模块111向下一从节点发送复位帧,若所有从节点的地址都是正确的,则可以进行图2所示实施例所描述的数据交换操作。
从节点传输模块121,除了图3所示实施例中的功能外,还用从主节点或在数据传输方向上与该从节点相邻的上一从节点接收地址确认帧,并将地址确认帧处理模块126处理后的地址确认帧转发给主节点或在数据传输方向上与该从节点相邻的下一从节点;还用于从主节点或在数据传输方向上与该从节点相邻的上一从节点接收复位帧,并将复位帧处理模块127处理后的复位帧转发给主节点或在数据传输方向上与该从节点相邻的下一从节点。
地址确认帧处理模块126,位于协议控制层,用于将本节点的节点地址写入所述地址确认帧中指定给本节点的位置。具体地,地址确认帧处理模块126可以在从节点传输模块121接收到地址确认帧后,将本节点的节点地址写入该地址确认帧的节点地址字段中指定给本节点的位置,以便主节点110获取各个从节点所配置的节点地址信息,进而判断地址配置是否正确。
复位帧处理模块127,位于协议控制层,用于在从节点传输模块121接收到复位帧后,根据复位帧清除本节点配置的节点地址。
在图2-4所示的实施例中,主节点传输模块111还可以用于在发送数据传输帧之前发送同步信号,通知各从节点更新数据存储层中的内容。通过同步,可以保证数据的实时性,并消除节点问时钟频差的影响,提高通讯效率。当然,也可以只采用传输数据方式,而不传输同步信号,各个节点采用本地时钟移相从数据中恢复时钟,这样可以减少光纤或线缆连接数量,降低成本。
在图2-4所示的实施例中,主节点110还可以包括:主节点故障检测模块,用于当检测到故障时,确定故障类型;若所述故障是断线,则通过主节点传输模块发送故障诊断帧;若所述故障是异常,则通过主节点传输模块发送故障码。从节点120-1~120-N还可以分别包括:从节点故障检测模块,用于当检测到故障时,确定故障类型;若所述故障是断线,则发送故障诊断帧;若所述故障是异常,则发送故障码。优选地,如下表8所示,故障诊断帧包括帧起始字段、帧类型字段、故障节点字段和校验码字段。其中,故障节点字段中包含一个初始故障路径计数数据,每个从节点收到故障诊断帧后将故障路径计数数据增加一个固定的值,如‘1’。即使从节点地址未分配,主机接收到故障诊断帧时也可以从故障路径计数数据反推出故障节点位置。另外,任一节点(包括主节点)检测到除节点断线以外的其它异常时,例如故障源为环形通讯总线或其他外部设备时,通过编解码层发送故障码,保证所有节点均能收到故障信号。
请参见图5,是本发明第一实施例提供的环网串行通讯方法的流程图,该方法在图1所示的系统中执行,包括:
步骤S100、主节点向在数据传输方向上与主节点相邻的下一从节点发送数据传输帧,所述数据传输帧包括帧类型字段。具体地,主节点110对待传输数据进行编码,写入数据传输帧,然后将其发送给下一从节点(即第一从节点120-1)优选地,数据传输帧可以是点对点帧或广播帧。如上表1所示,点对点帧可以包括帧起始字段、帧类型字段、节点地址及数据段位置字段、源地址字段、校验码字段和数据字段,其中源位置字段用于表示主节点110的节点地址,节点地址及数据段位置字段用于表示指定从节点的节点地址及数据字段的起始位置。如上表2所示,广播帧可以包括帧起始字段、帧类型字段、数据段位置字段、源地址字段、校验码字段和数据字段,其中源位置字段用于表示主节点110的节点地址,广播帧中的数据段位置字段用于表示数据字段的起始位置。
步骤S101、从节点接收主节点或在数据传输方向上与该从节点相邻的上一从节点发送来的数据传输帧。具体地,第一从节点120-1的编解码层从主节点110接收数据传输帧,处理后转发给第二从从节点120-2,依次类推,直至第N从节点120-N从第N-1从节点接收到数据传输帧,完成主节点到从节点的数据传递。
步骤S102、根据所述帧类型字段确定所述数据传输帧的类型。在本实施例中,数据传输帧的类型包括点对点帧和广播帧,但这仅仅用于举例说明,在本发明的其它实施例中,数据传输帧还可以包括组播帧等任何合适类型的数据传输帧。
若步骤S102中确定所述数据传输帧是点对点帧,则执行步骤S103。步骤S103、从所述点对点帧中提取目的地址信息,当所述目的地址信息与本节点地址一致时,提取所述点对点帧中的数据内容,将对应的数据内容写入所述点对点帧。接下来执行步骤S104。具体地,当步骤S102中确定所接收的数据传输帧是点对点帧时,从该点对点帧的节点地址及数据段位置字段提取目的地址信息(即指定节点的节点地址)和数据字段的起始位置,若目的地地址信息与本节点的节点地址一致,表示本节点即为指定节点,然后根据数据字段的起始位置找到点对点帧中的数据字段,对其进行解码,然后将解码后的数据写入数据存储层的接收存储区间,并从数据存储层的发送存储区间的相应位置提取数据内容,对该提取的数据内容进行编码,将编码后的数据内容写入点对点帧中对应的数据字段;若目的地地址信息与本节点的节点地址不一致,则表示本节点不是指定节点,将数据帧转发给主节点或数据传输方向上与该从节点相邻的下一从节点。
步骤S104、将处理后的数据传输帧转发给主节点或在数据传输方向上与该从节点相邻的下一从节点。
步骤S105、主节点从数据传输方向上与其相邻的上一从节点接收返回的数据传输帧。具体地,主节点110从上一从节点接收返回的数据传输帧,对所述数据传输帧进行解码,获取所需数据,完成从节点到主节点的数据传递。
若步骤S102中确定所述数据传输帧是广播帧,则执行步骤S106。步骤S106、从所述广播帧中指定给本节点的位置提取数据内容,并将本节点中对应的数据内容写入所述广播帧中指定给本节点的位置。接下来执行步骤S104。具体地,当步骤S102中确定所接收的数据传输帧是广播帧时,从该广播帧的数据段位置字段提取数据字段的起始位置,根据数据字段的起始位置找到广播帧中的数据字段,对其进行解码,然后从解码后的数据中提取指定给本节点的位置中的数据,写入数据存储层的接收存储区间,并从数据存储层的发送存储区间的相应位置提取数据,写入广播帧的数据字段中指定给本节点的位置,并对数据字段进行编码。其中,根据预先定义的协议,广播帧中的数据字段的不同位置被分配给各个从节点,例如广播帧的数据字段可以如上表3所示。
本发明实施例提供的串行通讯方法,通过在串行通讯环内传输点对点帧,只需一次帧传输,就可以完成主节点与指定从节点的数据交换;通过在串行通讯环内传输广播帧,并给每个从节点在广播帧中指定相应的数据存储位置,只需一次帧传输,就可以完成主节点与所有从节点的数据交换;设计简单,利于开发,且成本较低。
通常,重新上电后,所有从节点都处于初始状态,没有被分配节点地址,因此只能接收上一节点的数据,而不能将接收到的数据转发给下一节点,整个通讯环是断开的。这时,主节点需要对从节点进行地址配置,下面将参考图6对地址配置过程进行详细描述。
请参见图6,是图5所示的环网串行通讯方法的地址配置方法的流程图,该方法在图1所示的系统中执行,且在步骤S100之前执行,包括:
步骤S200、主节点向在数据传输方向上与主节点相邻的下一从节点发送地址配置帧,所述地址配置帧包括节点地址字段。具体地,主节点110依次向第一从节点120-1发送N个地址配置帧,分别用于给从节点120-1~120-N配置节点地址。优选地,如上表4所示,地址配置帧可以包括帧起始字段、帧类型字段、源地址字段、节点地址字段、和校验码字段,其中源位置字段用于表示主节点110的节点地址,节点地址字段用于表示分配给从节点的可供识别的节点地址。
步骤S201、从节点接收主节点或在数据传输方向上与该从节点相邻的上一从节点发送的地址配置帧。
步骤S202、判断自己是否分配有节点地址。
若步骤S202的判断结果为否,则执行步骤S203。步骤S203、将所述节点地址字段中的节点地址分配给自己。
若步骤S202的判断结果为是,则执行步骤S204。步骤S204、将所述地址配置帧转发给在数据传输方向上与该从节点相邻的下一从节点。
具体地,在图6所示的实施例中,当第一从节点120-1从主节点110接收第一个地址配置帧时,自己还没有配置节点地址,因此将地址配置帧的节点地址字段中的节点地址分配给自己;当第一从节点120-1从主节点110接收第二个地址配置帧时,自己已经配置有节点地址,因此从节点传输模块121将该第二个地址配置帧转发给第二从节点120-2,依次类推,直至第N从节点120-N根据主节点110发出的第N个地址配置帧完成地址配置。
图6所示的地址配置方法虽然对从节点进行了地址配置,但是无法确保所配置的节点地址均是正确的,一旦从节点的节点地址配置错误,必然影响数据交换的准确率,因此,需要对每个从节点所配置的节点地址进行检查,甚至纠错。下面将参考图7对地址配置检查及纠错方法进行详细描述。
请参见图7,是图5所示的环网串行通讯方法的地址配置检查及纠错方法的流程图,该方法在图1所示的系统中执行,且在步骤S100之前执行,包括:
步骤S300、主节点向在数据传输方向上与主节点相邻的下一从节点发送地址确认帧。优选地,如上表5所示,地址确认帧可以包括帧起始字段、帧类型字段、源地址字段和节点地址字段,其中该节点地址字段为空,且节点地址字段的不同位置被分配给各个从节点。
步骤S301、从节点接收主节点或在数据传输方向上与该从节点相邻的上一从节点发送的地址确认帧。
步骤S302、将本节点的节点地址写入所述地址确认帧中指定给本节点的位置。具体地,可以将本节点的节点地址写入地址确认帧的节点地址字段中指定给本节点的位置,以便主节点110获取各个从节点所配置的节点地址信息,进而判断地址配置是否正确。
步骤S303、将所述地址确认帧转发给主节点或在数据传输方向上与该从节点相邻的下一从节点。
步骤S304、主节点从在数据传输方向上与主节点相邻的上一从节点接收返回的地址确认帧。优选地,如上表6所示,返回给主节点的地址确认帧中的节点地址字段包括第一从节点地址、第二从节点地址、……、第N-1从节点地址、第N从节点地址。
步骤S305、从返回的地址确认帧中提取各个从节点的节点地址信息,判断是否存在地址分配错误的从节点。具体地,主节点110从上一从节点(即第N从节点120-N)接收的地址确认帧的节点地址字段(如上表6所示)中提取各个从节点的节点地址信息,判断是否存在地址分配错误的从节点。
若步骤S305的判断结果为是,则执行步骤S306。步骤S306、向在数据传输方向上与主节点相邻的下一从节点发送复位帧。优选地,如上表7所示,复位帧可以包括帧起始字段、帧类型字段、源地址字段和校验码字段,其中源位置字段用于表示主节点110的节点地址。
步骤S307、从节点从主节点或在数据传输方向上与该从节点相邻的上一从节点接收复位帧。
步骤S308、根据复位帧清除本节点配置的节点地址。然后,将复位帧转发给主节点或在数据传输方向上与该从节点相邻的下一从节点。当第N从节点从第N-1从节点接收到复位帧并清除了本节点的节点地址后,本方法流程结束,或者说主节点从数据传输方向上与主节点相邻的上一从节点接收复位帧后,本方法流程结束。接下来,可以重新进行图6所示的地址配置。
若步骤S305的判断结果为否,则本方法流程结束。接下来可以进行图5所示的数据传输操作。
在图5-7所示的实施例中,主节点110还可以在发送数据传输帧之前发送同步信号,通知各从节点更新数据存储层中的内容。通过同步,可以保证数据的实时性,并消除节点间时钟频差的影响,提高通讯效率。当然,也可以只采用传输数据方式,而不传输同步信号,各个节点采用本地时钟移相从数据中恢复时钟,这样可以减少光纤或线缆连接数量,降低成本。
在图5-7所示的实施例中,主节点110还可以在执行图5-7所示的方法的过程中,进行故障检测,包括:当检测到故障时,确定故障类型;若所述故障是断线,则发送故障诊断帧;若所述故障是异常,则发送故障码。从节点120也可以在执行图5-7所示的方法的过程中,进行故障检测,包括:当检测到故障时,确定故障类型;若所述故障是断线,则发送故障诊断帧;若所述故障是异常,则发送故障码。优选地,如上表8所示,故障诊断帧包括帧起始字段、帧类型字段、故障节点字段和校验码字段。其中,故障节点字段中包含一个初始故障路径计数数据,每个从节点收到故障诊断帧后将故障路径计数数据增加一个固定的值,如‘1’。即使从节点地址未分配,主机接收到故障诊断帧时也可以从故障路径计数数据反推出故障节点位置。另外,任一节点(包括主节点)检测到除节点断线以外的其它异常时,例如故障源为环形通讯总线或其他外部设备时,通过编解码层发送故障码,保证所有节点均能收到故障信号。
应当理解的是,本文中所使用的“接收主节点或数据传输方向上与所述从节点相邻的上一从节点传送来的……”、“将……帧转发给主节点或数据传输方向上与所述从节点相邻的下一从节点”及其类似表述,指的是当该从节点在数据传输方向上的上一节点是主节点时,接收该主节点传送来的信息,当该从节点在数据传输方向上的上一节点是另一从节点时,接收该另一从节点传送来的信息,当该从节点在数据传输方向上的下一节点是主节点时,将信息转发给主节点,当该从节点在数据传输方向上的下一节点是另一从节点时,将信息转发给该另一从节点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。