工业总线的从节点的通信地址的自动分配的系统和方法与流程

文档序号:11732179阅读:199来源:国知局
工业总线的从节点的通信地址的自动分配的系统和方法与流程

本发明涉及工业总线通信技术领域,特别涉及一种工业总线的从节点的通信地址的自动分配的系统和方法。



背景技术:

工业总线通信系统一般是由一个主节点和若干个从节点组成,随着系统规模的增长,系统中的节点越来越多,如何有效区分系统中的节点显得尤为重要。在总线主从通信模式下,必须确定每个从节点的通信地址信息才能保证系统通信的可靠稳定。目前总线的从节点的通信地址设置的实现方式主要有两种:固定地址和硬件拨码,固定地址是每个从节点把通信地址信息存放在eeprom(电可擦可编程只读存储器)中;硬件拨码是通过拨码开关硬件电路设置通信地址。

固定地址方式存在以下问题:当从节点的通信地址进行变更时需要修改对应的软件程序代码并重新烧写程序至eeprom,并且不同从节点的通信地址对应的程序不同,有多少个从节点就有多少个通信地址对应的程序,程序版本过多不便于统一管理和系统的更换维护。

硬件拨码方式存在以下的问题:受拨码开关自身的限制,可表示的通信地址的数量有限,设置通信地址时需要系统维护人员进行人工手动设置拨码开关,每个从节点都需要进行一次拨码,工作量大,既不便于维护又容易出现设置错误。

在工业总线通信系统中,主节点和从节点的控制芯片一般为单片机和arm(一款微处理器),这些控制芯片的io(输入输出接口)资源有限,其io资源宝贵,现有的工业总线的从节点的通信地址的设置方式占用了过多的控制芯片的io资源,不利于控制成本。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中工业总线的从节点的通信地址设置时程序版本过多不便于统一管理与维护以及人工设置拨码开关工作量大且易出错的缺陷,提供一种通过维护一个程序即可以简单、快速地实现通信地址自动分配的工业总线的从节点的通信地址的自动分配的系统和方法。

本发明是通过下述技术方案来解决上述技术问题:

一种工业总线的从节点的通信地址的自动分配的系统,其特点在于,所述系统包括主节点和若干从节点,所述主节点包括若干主节点输出端,每个所述从节点包括从节点使能端,所述主节点和每个所述从节点分别接至所述工业总线;

所述主节点通过所述主节点输出端向每个所述从节点发出第一片选信号,所述第一片选信号包括有效和无效状态,所述从节点检测到对应的所述第一片选信号为有效状态时采集所述工业总线上的数据;每个所述第一片选信号默认为无效状态;

所述主节点用于依次选择一个从节点作为待分配从节点;

所述主节点还用于获取目标地址,所述目标地址为所述待分配从节点对应的待分配的地址;

所述主节点还用于驱动所述待分配从节点对应的所述第一片选信号为有效状态,同时将所述目标地址作为总线数据发送至所述工业总线;

所述待分配从节点用于在检测到对应的所述第一片选信号为有效状态时采集所述工业总线上的数据并设置为通信地址;

所述主节点还用于判断是否所有从节点的通信地址均已设置,若否则重新选择一个从节点作为待分配从节点并完成通信地址的设置。

本方案中,在通信地址的自动分配过程中,主节点每次仅选通一个从节点,其它从节点的第一片选信号均为无效状态,而只有选通的从节点才会采集工业总线上的数据,其它未被选通的从节点不会采集或者采集了也不会解析及进一步处理,从而实现了主节点有针对性地对从节点的通信地址进行设置的功能。

本方案提供的系统能够简单快速地实现工业总线的从节点的通信地址的自动分配,不需要拨码开关,能够节省硬件成本,现场更换节点或者节点地址需要变更时能够实现从节点即插即用,不需要人工手动设置通信地址,减少了现场工作人员的工作量,提升了工作效率,提高了系统的灵活性和可靠性。

较佳地,所述主节点还用于获取地址表,所述地址表用于存储所有从节点的待分配的地址,所述主节点用于从所述地址表中获取所述目标地址。

本方案中,所有从节点的待分配的地址均存在于一个统一的地址表中,需要变更地址时只需要修改该地址表即可完成所有从节点地址的修改,避免了现有技术中一个从节点对应一个地址变更程序导致程序版本过多不便于统一管理和系统的更换维护的问题。

较佳地,所述系统还包括译码器模块,所述译码器模块包括译码器片选端、n个译码器输入端和2n个译码器输出端,n为大于0的整数;所述主节点还包括主节点片选端;所述主节点输出端的数量与所述译码器输入端的数量相同;所述主节点片选端与所述译码器片选端电连接;所述主节点输出端与所述译码器输入端一一对应电连接;所述译码器输出端与所述从节点使能端依次一一对应电连接;所述主节点还用于按照所述译码器输出端在所述译码器上的端口的排列顺序依次选择所述待分配从节点;所述主节点还用于通过驱动所述主节点片选端使得所述译码器模块的译码器片选端的第二片选信号为有效状态,所述第二片选信号用于使能或禁止所述译码器模块;同时所述主节点还用于驱动所述主节点输出端,以使得所述译码器模块驱动所述译码器输出端输出所述待分配从节点对应的所述第一片选信号为有效状态。

本方案中,主节点和从节点之间串接译码器模块,实现了只需较少的主节点的输出端即可实现对多个从节点的逐一使能的功能,从而节省了主节点io资源,方便系统的拓展和升级。

较佳地,所述从节点还用于将所述通信地址作为总线数据发送至所述工业总线;所述主节点还用于采集所述工业总线上的数据作为比对地址并判断所述比对地址与所述目标地址是否相同,若否则报警。

本方案中,待分配从节点完成通信地址设置后,将该通信地址经工业总线发送给主节点,主节点接收到该数据后判断是否与预期的目标地址相同,如果不相同说明设置过程中出错,报警以便进一步处理;如果相同说明该待分配从节点设置成功,主节点可以继续其它未设置地址的从节点的地址分配。

本方案中,进一步地,如果不相同,主节点也可以采用针对该从节点重新发送目标地址进行设置的策略,尝试预定次数均失败后再报警,如连续三次地址设置均不成功,主节点再停止地址自动设置并报警。

较佳地,所述译码器模块包括多个级联的译码器。

本方案中,译码器模块采用多个级联的译码器实现,从而达到连接更多从节点的功能,最大限度地节省主节点的io资源,从而降低成本。

本发明还提供一种工业总线的从节点的通信地址的自动分配的方法,其特点在于,所述方法使用权利要求1所述的工业总线的从节点的通信地址的自动分配的系统,所述方法包括以下步骤:

s1、所述主节点依次选择一个从节点作为待分配从节点;

s2、所述主节点获取所述目标地址;

s3、所述主节点驱动所述待分配从节点对应的所述第一片选信号为有效状态,同时将所述目标地址作为总线数据发送至所述工业总线;

s4、所述待分配从节点在检测到对应的所述第一片选信号为有效状态时采集所述工业总线上的数据并设置为通信地址;

s5、所述主节点判断是否所有从节点的通信地址均已设置,若否则执行步骤s1。

本方案中,在通信地址的自动分配过程中,主节点每次仅选通一个从节点,其它从节点的第一片选信号均为无效状态,此时主节点通过工业总线向从节点发送目标地址,只有选通的从节点才会采集工业总线上的数据,其它未被选通的从节点不会采集或者采集了也不会解析及进一步处理,从而实现了主节点有针对性地对从节点的通信地址进行设置的功能。每设置完一个从节点后,主节点会自动判断是否全部的从节点的通信地址均已设置完毕,若否则继续下一个从节点的自动设置,若是则自动地址分配结束。

本方案提供的方法能够简单快速地实现工业总线的从节点的通信地址的自动分配,不需要拨码开关,能够节省硬件成本,现场更换节点或者节点地址需要变更时能够实现从节点即插即用,不需要人工手动设置通信地址,减少了现场工作人员的工作量,提升了工作效率,提高了系统的灵活性和可靠性。

较佳地,步骤s2之前还包括以下步骤:

所述主节点获取地址表,所述地址表用于存储所有从节点的待分配的地址;

步骤s2中所述主节点从所述地址表中获取所述目标地址。

本方案中,所有从节点的待分配的地址均存储在一个统一的地址表中,需要变更地址时只需要修改该地址表即可完成所有从节点地址的重新设置工作,如将该地址表存储在一个eeprom中,每次仅需要修改一个程序并烧录该程序至eeprom中即可完成所有从节点的地址修改工作,避免了现有技术中一个从节点对应一个地址变更程序导致程序版本过多不便于统一管理和系统的更换维护的问题。

较佳地,所述系统还包括译码器模块,所述译码器模块包括译码器片选端、n个译码器输入端和2n个译码器输出端,n为大于0的整数;所述主节点还包括主节点片选端;所述主节点输出端的数量与所述译码器输入端的数量相同;

所述主节点片选端与所述译码器片选端电连接;

所述主节点输出端与所述译码器输入端一一对应电连接;

所述译码器输出端与所述从节点使能端依次一一对应电连接;

步骤s1为所述主节点按照所述译码器输出端在所述译码器模块上的端口的排列顺序依次选择所述待分配从节点;

步骤s3中所述主节点通过驱动所述主节点片选端使得所述译码器模块的译码器片选端的第二片选信号为有效状态,所述第二片选信号用于使能或禁止所述译码器模块;同时所述主节点驱动所述主节点输出端,以使得所述译码器模块驱动所述译码器输出端输出所述待分配从节点对应的所述第一片选信号为有效状态。

本方案中,主节点和从节点不直接连接,而是在主节点和从节点之间串接译码器模块,主节点通过设置译码器片选端有效使得译码器模块开始译码动作,即对主节点输出端输出至译码器输入端的数据进行译码,实现译码器输出端对待分配从节点的选通功能。本方案中通过译码器模块实现了只需较少的主节点的输出端即可实现对多个从节点的逐一使能的功能,从而节省了主节点的io资源,方便系统的拓展和升级。

较佳地,步骤s4和步骤s5之间还包括以下步骤:

所述从节点将所述通信地址作为总线数据发送至所述工业总线;

所述主节点采集所述工业总线上的数据作为比对地址;

所述主节点判断所述比对地址与所述目标地址是否相同,若否则报警。

本方案中,步骤s4和步骤s5之间还包括通信地址设置是否成功的校验过程,即待分配从节点完成通信地址设置后,将该通信地址经工业总线发送给主节点,主节点接收到该数据后判断是否与预期的目标地址相同,如果不相同说明设置过程中出错,报警以便进一步处理;如果相同说明该待分配从节点的通信地址设置成功,主节点可以继续其它未设置地址的从节点的地址分配动作,直到所有从节点均设置完毕。

本方案中,进一步地,如果不相同,主节点也可以采用针对该从节点重新发送目标地址的进行设置的策略,尝试预定次数均失败后再报警,如连续三次地址设置均不成功,主节点再停止地址自动设置并报警。

较佳地,所述译码器模块包括一个译码器,n为4。

本方案中,译码器模块由一个4-16译码器组成,主节点通过4个主节点输出端加上一个主节点片选端通过该译码器实现最多连接16个从节点的功能,能够节省11个主节点的io资源。

本发明的积极进步效果在于:本发明提供的工业总线的从节点的通信地址的自动分配的系统和方法实现了一种新型的工业总线的从节点的通信地址的自动分配方式,通过维护一个程序即可以简单、快速地实现通信地址自动分配;另外不需要拨码开关,能够节省硬件成本,既能省去手动设置地址的烦琐工作,可以避免人工设置的误操作,现场更换节点或者节点地址需要变更时实现节点即插即用,不需要人工手动设置地址,减少了现场工作人员的工作量,提升了工作效率,提高了系统的灵活性和可靠性,同时能够节省主节点的io资源,进一步降低成本。

附图说明

图1为本发明实施例1的工业总线的从节点的通信地址的自动分配的系统的示意图。

图2为本发明实施例2的工业总线的从节点的通信地址的自动分配的方法的流程图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

如图1所示,一种工业总线的从节点的通信地址的自动分配的系统,包括主节点1、译码器模块和四个从节点,四个从节点分别为从节点1、从节点2、从节点3以及从节点4。其中,主节点1包括两个主节点输出端a、b和一个主节点片选端s;译码器模块包括一个译码器2,译码器2为2-4译码器,译码器2包括两个译码器输入端a’、b’、一个译码器片选端s’和四个译码器输出端s1、s2、s3、s4;每个从节点分别包括一个从节点使能端s1’、s2’、s3’、s4’。主节点片选端s与译码器片选端s’电连接,两个主节点输出端a、b与两个译码器输入端a’、b’一一对应电连接,四个译码器输出端s1、s2、s3、s4与四个从节点使能端s1’、s2’、s3’、s4’依次一一对应电连接。主节点1和四个从节点分别接至工业总线3。

本实施例中,主节点1用于按照译码器输出端s1、s2、s3、s4在译码器2上的输出端口的排列顺序依次选择待分配从节点,即首先选择从节点1、然后分别是从节点2、从节点3和从节点4。其中,译码器输出端s1用于选择从节点1,译码器输出端s2用于选择从节点2,译码器输出端s3用于选择从节点3,译码器输出端s4用于选择从节点4。

本实施例中,主节点1还用于获取地址表,地址表用于存储所有从节点的待分配的地址;主节点1还用于从地址表中获取目标地址,目标地址为待分配从节点对应的待分配的地址。

本实施例中,主节点1通过主节点输出端向每个从节点发出第一片选信号,第一片选信号包括有效和无效状态,从节点检测到对应的第一片选信号为有效状态时采集工业总线3上的数据;每个第一片选信号默认为无效状态。主节点1还用于通过驱动主节点片选端s使得译码器2的译码器片选端s’的第二片选信号为有效状态,第二片选信号用于使能或禁止译码器2;同时主节点1还用于驱动主节点输出端a、b,以使得译码器2驱动译码器输出端s1、s2、s3、s4输出待分配从节点对应的第一片选信号为有效状态,同时将目标地址作为总线数据发送至工业总线3。

本实施例中,待分配从节点用于在检测到对应的第一片选信号为有效状态时采集工业总线3上的数据并设置为自身的通信地址。待分配从节点还用于将该通信地址作为总线数据发送至工业总线3。主节点1还用于采集工业总线3上的数据作为比对地址并判断该比对地目标地址是否相同,若否则报警。主节点1还用于判断是否所有的四个从节点的通信地址均已设置完毕,若否则重新选择一个从节点作为待分配从节点并完成通信地址的设置,若是则结束地址设置。

本实施例中,系统由一个主节点、2-4译码器和四个从节点组成,所有从节点连接在一个工业总线上,如can(控制器局域网络)总线,主节点与2-4译码器用三根信号线相连,译码器的每个输出端分别连接一个从节点,一个2-4译码器最多可以连接4个从节点。需要说明的是,虽然本实施例中译码器模块仅包括一个2-4译码器,但是并不限制译码器模块的实现方式,根据应用需求译码器模块可以采用多个级联的译码器实现。

实施例2

如图2所示,一种工业总线的从节点的通信地址的自动分配的方法,该方法使用实施例1的工业总线的从节点的通信地址的自动分配的系统,该方法包括以下步骤:

步骤s100、主节点1从eeprom中获取地址表,该地址表用于存储所有从节点的待分配的地址;

步骤s101、主节点1按照译码器输出端在译码器2上的端口的排列顺序依次选择待分配从节点,即首先选择从节点1,从节点1设置完毕后再依次设置从节点2、从节点3和从节点4;

步骤s102、主节点1从地址表中获取目标地址,目标地址为待分配从节点对应的待分配的地址;

步骤s103、主节点1通过驱动主节点片选端s使得译码器2的译码器片选端s’的第二片选信号为有效状态,该第二片选信号用于使能或禁止译码器2;同时主节点1驱动主节点输出端a、b,以使得译码器2驱动译码器输出端s1、s2、s3、s4输出待分配从节点对应的第一片选信号为有效状态,同时将目标地址作为总线数据发送至工业总线3;

步骤s104、待分配从节点在检测到对应的第一片选信号为有效状态时采集工业总线3上的数据并设置为自身的通信地址;

步骤s105、待分配从节点将设置好的通信地址作为总线数据发送至工业总线3;

步骤s106、主节点1采集工业总线3上的数据作为比对地址;

步骤s107、主节点1判断比对地址与目标地址是否相同,若否则执行步骤s108,若是则执行步骤s110;

步骤s108、判断对该待分配从节点的地址设置是否超过三次,若是则执行步骤s109,若否则执行步骤s103;

步骤s109、报警,执行步骤s111;

步骤s110、主节点1判断是否所有四个从节点的通信地址均已设置,若否则执行步骤s101,若是则执行步骤s111;

步骤s111、结束流程。

本实施例中,步骤s103中主节点1先设置译码器片选端s’的第二片选信号为有效状态,使得译码器2开始译码动作,同时主节点1驱动主节点输出端a、b为合适的值,如主节点输出端a、b的值为二进制00则使得译码器2驱动译码器输出端s1、s2、s3、s4输出待分配从节点对应的第一片选信号为有效状态,此时译码器输出端s1、s2、s3、s4输出的值为二进制1000,主节点1同时将目标地址作为总线数据发送至工业总线3。因为此时只有译码器输出端s1为二进制1,所以只有从节点1采集工业总线3上的数据,其它三个从节点此时放弃采集及解析。如主节点输出端a、b的值为二进制01,则此时译码器输出端s1、s2、s3、s4输出的值为二进制0100,此时只有译码器输出端s2为二进制1,所以只有从节点2采集工业总线3上的数据,其它三个从节点此时放弃采集及解析。如主节点输出端a、b的值为二进制10,则此时译码器输出端s1、s2、s3、s4输出的值为二进制0010,此时只有译码器输出端s3为二进制1,所以只有从节点3采集工业总线3上的数据,其它三个从节点此时放弃采集及解析。如主节点输出端a、b的值为二进制11,则此时译码器输出端s1、s2、s3、s4输出的值为二进制0001,此时只有译码器输出端s4为二进制1,所以只有从节点4采集工业总线3上的数据,其它三个从节点此时放弃采集及解析。

本实施例提供的工业总线的从节点的通信地址的自动分配的方法实现了一种新型的工业总线的从节点的通信地址的自动分配方式,通过维护一个程序即可以简单、快速地实现通信地址自动分配;另外不需要拨码开关,能够节省硬件成本,既能省去手动设置地址的烦琐工作,可以避免人工设置的误操作,现场更换节点或者节点地址需要变更时实现节点即插即用,不需要人工手动设置地址,减少了现场工作人员的工作量,提升了工作效率,提高了系统的灵活性和可靠性,同时能够节省主节点的io资源,进一步降低成本。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1