主节点支持从节点上不同协议类型从单元设备的方法

文档序号:7587885阅读:231来源:国知局
专利名称:主节点支持从节点上不同协议类型从单元设备的方法
技术领域
本发明涉及一种通信协议技术,特别是涉及主节点支持从节点上不同协议类型从单元设备的方法。
背景技术
完成特定功能的系统一般由多个具有相对独立功能的子系统单元组合构成,这些子系统单元在系统中的地位是不同的,一般有一个居于主要地位的主单元和多个居于从属地位的从单元。主单元是系统中居于控制地位的子系统,完成系统的主要功能,并控制其它子系统;从单元是系统中居于被控制地位的子系统,完成系统的辅助功能,并接受主单元的控制。
图1是主、从节点的关系示意图。参见图1,一般系统中有一个主节点和一个或者多个从节点,主节点和从节点之间通过通信通道相互联系,并通过主从通信协议进行通信,通信通道时分复用。
主从通信协议是系统中主单元设备和从单元设备相互通信时遵从的通信协议。在主从通信协议中,主单元对应主节点概念,从单元对应从节点概念,节点是逻辑概念,而单元是物理概念,是指完成特定功能的子系统。
系统中存在不同类型的从单元设备,从单元设备类型不同不是指从单元设备的功能不同,而是指从单元设备和主单元设备进行报文交互时所遵从的协议类型不同,以及和这些协议相对应的不同的上层应用程序。
在现有的主从通信协议中,主节点通过从节点标识来识别遵从不同协议类型的从单元设备,进而找到从节点上从单元设备的上层应用程序,完成对从单元设备的支持。
现有技术实现主节点支持从节点上不同协议类型从单元设备的方法为
方法一设定从节点号与协议类型的对应关系,主节点通过从节点号识别遵从不同协议类型的从单元设备。设备的从节点号由硬件决定,每个设备上都有拨码开关,通过拨码开关设定设备的从节点号。例如有遵从不同协议类型的从单元设备A与从单元设备B,设定设备A遵从的协议类型一对应的从节点号为1,那么在安装设备A的时候,将设备A的拨码开关拨到1的位置,当设备A所在的从节点1向主节点发送报文后,主节点通过报文中的从节点号1识别设备A,并找到设备A的上层应用程序,完成对设备A的支持。
如果设备A的拨码开关没有拨到1的位置,即设备A的从节点号与设备A遵从的协议类型一不存在对应关系,那么设备A不会被支持;如果将遵从协议类型二的设备B的拨码开关拨到1的位置,因为设备B遵从的协议类型二与从节点号1不存在对应关系,那么设备B不会被支持。可见,在这种方法中,从节点号和协议类型的对应关系是固定的,所以,当设备所拨的从节点号与该设备所遵从协议对应的从节点号不存在对应关系时,该设备不会被支持。
方法二设定从节点波特率与协议类型的对应关系,主节点通过从节点波特率识别遵从不同协议类型的从单元设备。例如有遵从不同协议类型的从单元设备A与设备B,设定设备A遵从的协议类型一对应的从节点波特率为15000,当设备A所在的从节点向主节点发送报文后,主节点通过该从节点的波特率15000识别出设备A,并找到设备A的上层应用程序,完成对设备A的支持。
如果在实际传输时,设备A的波特率为9600,即设备A的从节点波特率与设备A遵从的协议类型一不存在对应关系,那么设备A不会被支持;如果遵从协议类型二的设备B的传输波特率为15000,因为设备B遵从的协议类型二与从节点波特率15000之间不存在对应关系,那么设备B不会被支持。可见,在这种方法中,从节点波特率与协议类型的对应关系是固定的,所以,当某设备的实际传输波特率与该设备所遵从协议对应的从节点波特率不存在对应关系时,该设备不会被支持。可见,在现有的主从通信协议中,主节点通过从节点标识实现对不同协议类型从单元设备的支持。但是,由于从节点标识与协议类型的对应关系是固定的,所以当从节点的实际标识与协议类型不存在对应关系时,主节点不能支持从节点上的从单元设备,从而导致主节点对从单元设备的支持率低,无法适应从单元设备的改变和扩展。
可见,在现有技术中,即使从单元设备所遵从的协议类型没有改变,但只要从节点标识改变,就会导致主节点无法支持从节点上从单元设备。
并且,在主从通信协议中,主节点与从节点进行报文交互的过程分作主节点侧和从节点侧两个部分,主节点侧和从节点侧分别维护着一个状态机,通过状态机完成报文的发送和接收。
图2是主节点的主从通信状态机示意图。参见图2,现有的主从通信协议中,主节点状态机共有五个状态,其中,空闲状态201是数据发送和接收流程公用的状态;等待查询应答状态202和等待接收数据状态203用于数据接收流程;等待传输应答状态204和等待接收应答状态205用于数据发送流程。主节点状态机的普通状态为空闲状态201,空闲状态201具有周期属性,该周期属性有两个值查询周期和传输周期。
在现有的主节点报文接收流程中,主节点在空闲状态201的查询周期向从节点发送查询命令;在等待查询应答状态202接收从节点发回的查询应答;在等待接收数据状态203中接收从节点发来的数据报文。
在现有的主节点报文发送流程中,主节点在空闲状态201的传输周期向从节点发送传输命令;在等待传输应答状态204中向从节点发送数据报文;在等待接收应答状态205中接收从节点发来的接收报文应答。
图3是从节点的主从通信状态机示意图。参见图3,现有的主从通信协议中,从节点状态机共有四个状态,其中,等待命令状态301是数据发送和接收流程公用的状态;等待接收命令状态302和等待接收应答状态303用于数据发送流程;等待接收数据状态304用于数据接收流程。从节点状态机的普通状态为等待命令状态301,等待命令状态301具有周期属性,其周期属性与主节点状态机的空闲状态201的周期属性相反。
在现有的从节点报文发送流程中,从节点在等待命令状态301向主节点发送查询应答;在等待接收命令状态302中向主节点发送数据报文;在等待接收应答状态303中接收主节点发来的接收报文应答。
在现有的从节点报文接收中,从节点在等待命令状态301接收到主节点的传输命令;在等待接收数据状态304中接收主节点发来的数据报文。

发明内容
有鉴于此,本发明的目的在于提供主节点支持从节点上不同协议类型从单元设备的方法,通过从单元设备所遵从的协议类型,使主节点查找到从单元设备的上层应用程序。
为了达到上述目的,本发明的技术方案是这样实现的主节点支持从节点上不同协议类型从单元设备的方法,预先在主从通信协议中设定各协议类型从单元设备的报文内容键值和报文内容掩码,并建立同一协议类型从单元设备的报文内容掩码、报文内容键值和上层应用程序三者之间的对应关系,该方法包括以下步骤A、主节点接收从节点发来的报文;B、选取未选用过的一个协议类型的报文内容掩码,并通过选取的报文内容掩码获得报文中的报文内容键值;C、将获得的报文内容键值与步骤B所述协议类型的报文内容键值进行比较,如果获得的报文内容键值与步骤B所述协议类型的报文内容键值相同,则执行步骤E,如果获得的报文内容键值与步骤B所述协议类型的报文内容键值不同,且存在未被选用过的报文内容掩码,则返回步骤B,如果获得的报文内容键值与步骤B所述协议类型的报文内容键值不同,且所有协议类型的报文内容掩码均被选用过,则执行步骤D;
D、主节点将报文丢弃,提示告警信息,并结束本流程;E、选取步骤B所述协议类型的报文内容键值对应的上层应用程序为从节点上从单元设备的上层应用程序。
所述设定报文内容键值的步骤包括设定报文中能够唯一标识从单元设备与主单元设备通信时所遵从协议类型的报文内容为该协议类型的报文内容键值。
所述设定报文内容掩码的步骤包括设定报文内容掩码由地址偏移量和掩码值组成,并根据报文内容键值设定报文内容掩码的地址偏移量和掩码值。
所述根据报文内容键值设定报文内容掩码的地址偏移量的步骤包括设定报文内容掩码的地址偏移量为报文内容键值在报文中所处的字节位减一。
所述根据报文内容键值设定报文内容掩码的掩码值的步骤包括设定掩码值的字节数为报文内容键值的字节数,并设定掩码值的各个字节位为十六进制的全一值。
步骤B所述通过选取的报文内容掩码获得报文中的报文内容键值的步骤包括将用于确定报文内容键值的指针进行偏移,指针的偏移量为报文内容掩码中地址偏移量的值,然后选取指针所指字节位为当前报文中报文内容键值的起始位,并选取报文内容掩码中掩码值的字节位数为当前报文中报文内容键值的字节位数,然后将选取的报文内容键值与报文内容掩码的掩码值相与,获得报文中的报文内容键值。
该方法进一步包括主节点在所述步骤A接收到从节点发来的报文后,先查找报文中的从节点号,并判断是否有该从节点号的保存记录,如果没有该从节点号的保存记录,则将该报文作为首报文,并保存该首报文中的从节点号,再进行所述步骤B至步骤E,然后建立保存的首报文从节点号与所述步骤E选取的上层应用程序的对应关系,如果有该从节点号的保存记录,则不进行所述步骤B至步骤E,直接选取与该从节点号对应的上层应用程序。
所述步骤A包括以下步骤a、主节点在空闲状态的查询周期中向从节点发送查询命令,然后迁移到等待查询应答状态;b、从节点在等待命令状态接收到主节点发来的查询命令,并且有数据报文,则向主节点发送该数据报文,然后迁移到等待接收应答状态;c、主节点在等待查询应答状态中,如果接收到错误的数据报文,则向从节点发出发送错误应答,并保持在等待查询应答状态,如果主节点接收到正确的数据报文,则向从节点发出发送成功应答;d、从节点在等待接收应答状态中,如果等待应答超时或接收到发送错误应答,则重发数据报文,并保持在等待接收应答状态,如果从节点接收到发送成功应答,则迁移到等待命令状态。
步骤d所述从节点重发数据报文,并保持在等待接收应答状态的步骤进一步包括从节点重发数据报文的次数达到上限,则迁移到等待命令状态。
所述数据报文的重发次数根据报文的重要性预先设定。
可见,本发明方法通过对主节点报文接收流程和从节点报文发送流程进行简化,省去从节点返回查询应答与主节点发送数据接收命令的命令交互过程,提高了主节点与从节点之间的通信速率,并减少了通信时的出错概率。本发明方法通过建立同一协议类型从单元设备的报文内容掩码、报文内容键值和上层应用程序三者之间的一一对应关系,实现主节点对不同协议类型从单元设备的支持,避免了从节点标识改变而导致主节点不支持从节点上的从单元设备的缺点。根据本发明提出的方法,通过对主从通信控制块中从单元设备的报文内容掩码、报文内容键值和上层应用程序及其对应关系进行相应的增加或更改操作,还可及时适应从节点上从单元设备的增加和改变。


图1是主、从节点的关系示意图;图2是现有技术中主节点的主从通信状态机示意图;
图3是现有技术中从节点的主从通信状态机示意图;图4是本发明方法的流程图;图5是本发明方法中主节点的主从通信状态机示意图;图6是本发明方法中从节点的主从通信状态机示意图。
具体实施例方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图及实施例对本发明作进一步地详细描述。
预先设定各个协议类型从单元设备的报文内容键值和报文内容掩码,并建立同一协议类型从单元设备的报文内容掩码、报文内容键值和上层应用程序三者之间的对应关系,其中,报文内容键值为唯一标识从单元设备与主单元设备进行报文交互时所遵从协议类型的报文内容;报文内容掩码由地址偏移量和掩码值组成,设定报文内容掩码的地址偏移量为与该报文内容掩码对应的报文内容键值在报文中所处的字节位减一,设定报文内容掩码的掩码值的字节数为与该报文内容掩码对应的报文内容键值的字节数,且掩码值的各个字节位为十六进制的全一值。
在主从通信协议中规定通过报文内容掩码获得从节点报文的报文内容键值,在主从通信控制块中查找与获得的报文内容键值相同的报文内容键值及与查找到的报文内容键值对应的从节点上的从单元设备的上层应用程序。
因为握手字符可唯一标识协议类型,所以在本实施例中将握手字符设定为报文内容键值。
例如,有遵从协议类型①的从单元设备C,协议类型①的握手字符为“HD”,将握手字符“HD”设定为协议类型①的报文内容键值。握手字符“HD”在报文中位于第3个字节位,那么根据该握手字符“HD”设定协议类型①的报文内容掩码,将握手字符“HD”在报文中所处的字节位减一,得到报文内容掩码的地址偏移量2,握手字符“HD”的字节数为2,所以报文内容掩码的掩码值为字节数为2的十六进制的全一值,即0xFFFF。
图4是本发明方法的流程图。参见图4,实现主节点支持协议类型①的从单元设备C的方法具体包括以下步骤步骤401从节点接收到主节点发来的查询命令后,向主节点发送报文。
步骤402主节点接收到从节点发来的报文。
步骤403主节点查找到报文中的从节点号,并判断该从节点号是否有保存记录,如果有保存记录,则执行步骤404,如果没有保存记录,则执行步骤405。
步骤404主节点则根据从节点号查找到与该从节点号对应的从单元设备的上层应用程序,并结束本流程。
步骤405主节点将接收到的报文作为首报文,并保存该首报文中的从节点号。
步骤406在主从通信控制块中,选取未选用过的一个协议类型的报文内容掩码,并根据选取的报文内容掩码获得首报文中的报文内容键值,例如选取到协议类型①的报文内容掩码,该报文内容掩码的地址偏移量为2,将用于确定报文中报文内容键值的指针进行偏移,指针的偏移量为报文内容掩码中地址偏移量的值2,然后选取指针所指的第3个字节位为该首报文中报文内容键值的起始位,因为报文内容掩码中掩码值0xFFFF的字节位数为2,则设定该报文中报文内容键值的字节位数为2,然后将选取的报文内容键值与报文内容掩码的掩码值0xFFFF相与,获得该首报文的报文内容键值。
步骤407将首报文的报文内容键值与协议类型①的报文内容键值“HD”进行比较,并判断该首报文的报文内容键值与协议类型①的报文内容键值“HD”是否相同,如果不相同,则执行步骤408,如果相同,则执行步骤410。
步骤408判断主从通信控制块中是否存在未被选用过协议类型的报文内容掩码,如果存在,则返回步骤406,如果不存在,则执行步骤409。
步骤409主节点将从节点报文丢弃,并提示告警信息,然后结束本流程。
步骤410选取与协议类型①的报文内容键值对应的上层应用程序为从节点上的从单元设备C的上层应用程序,并建立首报文中的从节点号与选取的从节点上的从单元设备C的上层应用程序之间的对应关系。
为了提高主节点与从节点之间的通信速率,并减少了通信时的出错概率,一个较佳实施例是将步骤401中主节点向从节点发送查询命令,从节点接收到查询命令后,向主节点发送报文的过程进行简化,即把主节点报文接收流程和从节点报文发送流程进行简化,省去主节点与从节点的二次命令交互过程。
图5是本发明方法中主节点的主从通信状态机示意图,图6是本发明方法中从节点的主从通信状态机示意图,下面结合图5和图6介绍简化后的主节点报文接收流程和从节点报文发送流程。
在主节点报文接收流程中,去掉主节点状态机的等待接收数据状态203,同时取消主节点向从节点发送的数据接收命令。
主节点报文接收流程为主节点在空闲状态201的查询周期中向从节点发送查询命令,然后迁移到等待查询应答状态202,等待自从节点发回的应答;在等待查询应答状态202中,如果主节点等待应答超时或者自从节点发回的应答是表明没有数据要发送的无事应答,那么主节点迁移到空闲状态201,且周期属性迁移到传输周期,如果主节点接收到错误的数据报文,则向从节点发出发送错误应答,同时,主节点保持在等待查询应答状态202,等待从节点重发数据报文,如果主节点接收到正确的数据报文,则向从节点发出发送成功应答,然后主节点迁移到空闲状态201,且周期属性迁移到传输周期。
相应地,在从节点报文发送流程中,去掉从节点状态机的等待接收命令状态302,取消从节点向主节点发送的有事应答。
从节点报文发送流程为从节点在等待命令状态301接收到主节点发来的查询命令,如果从节点没有数据报文要发送到主节点,则向主节点发送无事应答,同时,从节点保持在等待命令状态301,如果从节点有数据报文要发送到主节点,则向主节点发送该数据报文,然后从节点迁移到等待接收应答状态303;在等待接收应答状态303中,如果从节点等待应答超时或者接收到发送错误应答,则重发数据报文,数据报文的重发次数可预先设定,同时,从节点保持在等待接收应答状态303,如果从节点接收到发送成功应答或者数据报文的重发次数超过上限,那么从节点迁移到等待命令状态301。
总之,以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.主节点支持从节点上不同协议类型从单元设备的方法,其特征在于,预先在主从通信协议中设定各协议类型从单元设备的报文内容键值和报文内容掩码,并建立同一协议类型从单元设备的报文内容掩码、报文内容键值和上层应用程序三者之间的对应关系,该方法包括以下步骤A、主节点接收从节点发来的报文;B、选取未选用过的一个协议类型的报文内容掩码,并通过选取的报文内容掩码获得报文中的报文内容键值;C、将获得的报文内容键值与步骤B所述协议类型的报文内容键值进行比较,如果获得的报文内容键值与步骤B所述协议类型的报文内容键值相同,则执行步骤E,如果获得的报文内容键值与步骤B所述协议类型的报文内容键值不同,且存在未被选用过的报文内容掩码,则返回步骤B,如果获得的报文内容键值与步骤B所述协议类型的报文内容键值不同,且所有协议类型的报文内容掩码均被选用过,则执行步骤D;D、主节点将报文丢弃,提示告警信息,并结束本流程;E、选取步骤B所述协议类型的报文内容键值对应的上层应用程序为从节点上从单元设备的上层应用程序。
2.根据权利要求1所述的方法,其特征在于,所述设定报文内容键值的步骤包括设定报文中能够唯一标识从单元设备与主单元设备通信时所遵从协议类型的报文内容为该协议类型的报文内容键值。
3.根据权利要求1所述的方法,其特征在于,所述设定报文内容掩码的步骤包括设定报文内容掩码由地址偏移量和掩码值组成,并根据报文内容键值设定报文内容掩码的地址偏移量和掩码值。
4.根据权利要求3所述的方法,其特征在于,所述根据报文内容键值设定报文内容掩码的地址偏移量的步骤包括设定报文内容掩码的地址偏移量为报文内容键值在报文中所处的字节位减一。
5.根据权利要求3或4所述的方法,其特征在于,所述根据报文内容键值设定报文内容掩码的掩码值的步骤包括设定掩码值的字节数为报文内容键值的字节数,并设定掩码值的各个字节位为十六进制的全一值。
6.根据权利要求5所述的方法,其特征在于,步骤B所述通过选取的报文内容掩码获得报文中的报文内容键值的步骤包括将用于确定报文内容键值的指针进行偏移,指针的偏移量为报文内容掩码中地址偏移量的值,然后选取指针所指字节位为当前报文中报文内容键值的起始位,并选取报文内容掩码中掩码值的字节位数为当前报文中报文内容键值的字节位数,然后将选取的报文内容键值与报文内容掩码的掩码值相与,获得报文中的报文内容键值。
7.根据权利要求1所述的方法,其特征在于,该方法进一步包括主节点在所述步骤A接收到从节点发来的报文后,先查找报文中的从节点号,并判断是否有该从节点号的保存记录,如果没有该从节点号的保存记录,则将该报文作为首报文,并保存该首报文中的从节点号,再进行所述步骤B至步骤E,然后建立保存的首报文从节点号与所述步骤E选取的上层应用程序的对应关系,如果有该从节点号的保存记录,则不进行所述步骤B至步骤E,直接选取与该从节点号对应的上层应用程序。
8.根据权利要求1所述的方法,其特征在于,所述步骤A包括以下步骤a、主节点在空闲状态的查询周期中向从节点发送查询命令,然后迁移到等待查询应答状态;b、从节点在等待命令状态接收到主节点发来的查询命令,并且有数据报文,则向主节点发送该数据报文,然后迁移到等待接收应答状态;c、主节点在等待查询应答状态中,如果接收到错误的数据报文,则向从节点发出发送错误应答,并保持在等待查询应答状态,如果主节点接收到正确的数据报文,则向从节点发出发送成功应答;d、从节点在等待接收应答状态中,如果等待应答超时或接收到发送错误应答,则重发数据报文,并保持在等待接收应答状态,如果从节点接收到发送成功应答,则迁移到等待命令状态。
9.根据权利要求8所述的方法,其特征在于,步骤d所述从节点重发数据报文,并保持在等待接收应答状态的步骤进一步包括从节点重发数据报文的次数达到上限,则迁移到等待命令状态。
10.根据权利要求9所述的方法,其特征在于,所述数据报文的重发次数根据报文的重要性预先设定。
全文摘要
本发明公开了主节点支持从节点上不同协议类型从单元设备的方法,在主从通信协议中,预先设定各个协议类型从单元设备的报文内容键值和报文内容掩码,并建立同一协议类型从单元设备的报文内容掩码、报文内容键值与上层应用程序的对应关系,该方法包括以下步骤主节点接收到从节点发来的报文后,逐一选取未选用过的一个协议类型的报文内容掩码,并通过选取的报文内容掩码获得报文内容键值;将获得的报文内容键值与所述协议类型的报文内容键值进行比较,若相同,则选取所述协议类型的报文内容键值对应的上层应用程序,若不相同,则将从节点报文丢弃。本发明方法实现了对不同协议类型从单元设备的支持,并且能够灵活适应从节点上不同协议类型从单元设备的改变和增减。
文档编号H04L29/06GK1642167SQ20041000017
公开日2005年7月20日 申请日期2004年1月8日 优先权日2004年1月8日
发明者陈刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1