一种伺服器的制造方法

文档序号:10612240阅读:201来源:国知局
一种伺服器的制造方法
【专利摘要】为解决现有伺服器上输入端口和输出端口若接反时,将导致伺服器无法实现自动改ID,伺服器无法按照正确的设定逻辑动作的问题。本发明提供了一种伺服器,包括舵机MCU、第一端口和第二端口;所述第一端口和所述第二端口之间通过总线连接,所述总线同时连接到所述舵机MCU;其中,所述第一端口和所述第二端口之间的总线上设有所述第一舵机开关和第二舵机开关;所述第一舵机开关与第一端口之间设有第一插入线连接至所述舵机MCU,所述第二舵机开关与第二开口之间设有第二插入线连接至所述舵机MCU。本发明提供的伺服器,使得其组装更简单,伺服器不会出现由于装反而导致无法按照正确的设定逻辑动作的情况。
【专利说明】
一种伺服器
技术领域
[0001]本发明涉及伺服器控制系统领域,尤其指伺服器和控制该伺服器的主控制器。
【背景技术】
[0002]目前,机器人已越来越多的应用在日常生活和娱乐,其一般包括主控制器和若干伺服器(或称伺服马达或舵机)。通过各伺服器来实现机器人各关节的运动。现有一般通过一个主控制器控制若干伺服器。
[0003]各伺服马达通过总线串接或并联接在主控制器的若干接口上;主控制器通过总线向伺服器发送控制讯号。各伺服马达和主控制器之间通过一组线(包括电源线(VDD)、接地线(GND)和信号线)连接到主控制器上。在主控制器内部、伺服器内部和主控制器和伺服器之间也连接有该信号线,以实现主控制器和伺服器的通讯。
[0004]目前,作为较优的方式,该信号线为多重伺服马达控制总线(英文全称:MultipleServo Motor Control Bus,英文简写:MSMCB)。主控制器通过MSMCB与伺服器通讯,主控制器下命令给伺服器,伺服器也可将讯号回传给主控制器,主控制器可以得知伺服器的状态,包括位置,是否过电流等。
[0005]目前,通过该MSMCB,可以将多个伺服器接在主控制器的一个接口上,由于各伺服器共享MSMCB,因此,每个伺服器需要设定ID(身份标识号或账号或唯一编码的简写),才能在主控制器发送指令时用以分辨所要沟通的对象伺服器。该伺服器中设有存储器(如EEPROM(英文全称:Electrically Erasable Programmable Read-Only Memory,中文全称:电可擦可编程只读存储器))来存储各伺服器的ID。
[0006]目前,现有伺服器上一般均设有2端口,其中一个端口为输入端口,另一个端口为输出端口,各伺服器的输入端口通过总线接到主控制器上或者前一伺服器的输出端上。如此,以实现将各伺服器串接在主控制器一个接口上的目的。由于伺服器的个数为多个,因此,需要防止伺服器的ID出现重复的现象,此前的方式是在组装前预先设置好各伺服器的ID,且将各伺服器按照正确的位置设定,更换任意伺服器,或者使得任意伺服器的ID出现偏差,都将使得总个机器人无法按照正确的设定逻辑动作。
[0007]为解决上述技术问题,已有方案对伺服器做了改进,在伺服器内部两端口之间的MSMCB上增加了一开关。通过开关的通断控制,可以在开机时预设各开关为断路,然后通过主控制器对接在其上的第一个伺服器设定其ID,完成第一个伺服器的ID设定后,即将第一个伺服器内的开关导通,使该下一个串接的伺服器(第二个伺服器)可以接受来自主控制器的讯号。然后完成第二个伺服器的ID设定即开关导通,如此重复上述步骤,依序完成各伺服器的ID设定。其可在开机时,自动完成各伺服器的ID设定,省去组装和维修时人为设定ID的困扰。
[0008]然而,该种方式虽然可实现伺服器自动改ID,但伺服器组装时仍然比较麻烦,其必须预先搞清楚伺服器上输入端口和输出端口,防止其接反。否则可能会出现逻辑错误,导致伺服器无法实现自动改ID,其伺服器仍然无法按照正确的设定逻辑动作。

【发明内容】

[0009]为解决现有伺服器上输入端口和输出端口若接反时,将导致伺服器无法实现自动改ID,伺服器无法按照正确的设定逻辑动作的问题。本发明提供了一种伺服器。
[0010]本发明提供了一种伺服器,包括舵机MCU、第一端口和第二端口;所述第一端口和所述第二端口之间通过总线连接,所述总线同时连接到所述舵机MCU;
[0011]其中,所述第一端口和所述第二端口之间的总线上设有所述第一舵机开关和第二舵机开关;所述第一舵机开关连接于所述第一端口和所述舵机MCU之间,该第一舵机开关控制所述第一端口的通断;所述第二舵机开关连接于所述第二端口和所述舵机MCU之间,该第二舵机开关控制所述第二端口的通断;
[0012]所述第一舵机开关与第一端口之间设有第一插入线连接至所述舵机MCU,所述第二舵机开关与第二开口之间设有第二插入线连接至所述舵机MCU。
[0013]进一步地,所述第一舵机开关的控制端和第二舵机开关的控制端均连接至所述舵机 MCU ο
[0014]进一步地,所述伺服器内还设有存储ID的存储器。
[0015]进一步地,所述存储器为EEPR0M、缓存器或者FLASH。
[0016]进一步地,所述总线为多重伺服马达控制总线。
[0017]本发明提供的伺服器,在其内两端口之间的总线上增加了两个舵机开关,并在舵机开关与端口之间设置插入线连接到舵机MCU。如此,在将伺服器连接到主控制器上形成伺服器控制系统时,无需考虑两个端口的输入输出关系,可以随意组装;组装完成后,通过插入线来检测信号,以分别哪个是输入端口、哪个是输出端口。如此,使得其组装更简单,伺服器不会出现由于装反而导致无法按照正确的设定逻辑动作的情况。根据需要,本例提供的伺服器也可以通过对两个开关的通断控制,其可以通过逐个将伺服器接入网络的方式,逐个将伺服器顺序设定ID,以防止出现重复ID,省去组装和维修时人为设定ID的困扰。
【附图说明】
[0018]图1是本发明【具体实施方式】中第一实施例中提供的伺服器内部电路原理示意图;
[0019]图2是本发明【具体实施方式】中第二实施例中提供的一种主控制器内部电路原理示意图;
[0020]图3是本发明【具体实施方式】中第二实施例中提供的另一种主控制器内部电路原理示意图;
[0021]图4是本发明【具体实施方式】中第三实施例中提供的伺服器控制系统原理示意图;
[0022]图5是本发明【具体实施方式】中第四实施例中提供的伺服器ID设定流程图;
[0023]图6是本发明【具体实施方式】中第五实施例中提供的伺服器ID设定流程图;
[0024]图7是本发明【具体实施方式】中第六实施例中提供的步骤S201具体步骤流程图;
[0025]图8是本发明【具体实施方式】中第七实施例中提供的伺服器ID设定流程图;
[0026]图9是本发明【具体实施方式】中提供的第八实施例中主控制器广播的流程图;
[0027]图10是本发明【具体实施方式】中提供的第八实施例伺服器内部的流程图。
[0028]其中,1、伺服器;2、主控制器;11、第一端口; 12、第二端口 ; 13、舵机MCU; 14、第一插入线;15、第二插入线;kl、第一舵机开关;k2、第二舵机开关;20、主控M⑶;21、第一接口; 22、第二接口 ;23、第三接口 ;24、第四接口 ;25、第五接口 ;2a、第一主控开关;2b、第二主控开关;2c、第三主控开关;2d、第四主控开关;2e、第五主控开关;la、第一伺服器;lb、第二伺服器;Ic、第三伺服器;In、第η伺服器;L1、总线;
【具体实施方式】
[0029]为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030]下面通过第一实施例对本发明公开的伺服器I进行具体解释说明。伺服器I又称伺服马达或舵机;该伺服器I的具体机械结构为公众所知,其包括变速齿轮组、马达、电位器、控制电路等,不再赘述。如图1所示,其伺服器I包括MCU(中文名称:微控制单元;英文名称:Micro Controller Unit)和两个端口,为区别后续主控制器2中的MCU,此处的M⑶称为舵机MCU13。两端口之间通过总线LI(各图1-图4中的总线以加粗线条显示)连接,并同时连接到舵机MCU13。该总线LI为多重伺服马达控制总线(英文全称:Multiple Servo MotorControl Bus,英文简写:MSMCB)。同时,端口之间除上述MSMCB外,还包括两电源线(VDD)和接地线(GND)。上述MSMCB线可以根据I2C(英文全称:Inter-1ntegrated Circuit)、UART(英文全称:Universal Asynchronous Receiver and Transmitter,中文全称:通用异步收发器)或自定的序列总线通讯协议来传递信号。该信号线可以是I条或以上,本例中为一条。[0031 ] 上述端口包括第一端口 11和第二端口 12,该第一端口 11和第二端口 12之间没有输入端口和输出端口的限定,该第一端口 11可以作为输入端口,则第二端口 12作为输出端口 ;反之,第一端口 11也可以作为输出端口,则第二端口 12作为输入端口。
[0032]其中,在两端口的总线LI之间设有控制2个端口通断的2个舵机开关;上述2个开关分别称为第一舵机开关kl和第二舵机开关k2;也即在所述两端口总线LI之间临近第一端口11处设有第一舵机开关kl,即第一舵机开关kl连接于所述第一端口 11和舵机M⑶13之间,该第一舵机开关kl控制所述第一端口 11的通断,所述两端口总线LI之间临近第二端口 12处设有第二舵机开关k2,即第二舵机开关k2连接于所述第二端口 12和舵机MCUl 3之间,所述第二舵机开关k2控制所述第二端口 12的通断;所述2个舵机开关的控制端连接到所述舵机MCUl 3,受所述舵机MCUl 3的控制。
[0033]如此,通过在第一端口 11和第二端口 12上外接总线LI,以实现伺服器I与主控制器2,以及伺服器I与伺服器I的之间的电连接,最终实现主控制器2通过总线LI控制各伺服器I的目的。
[0034]同时,在舵机开关与端口之间设置插入线连接到舵机MCU13。具体的,所述第一舵机开关kl与第一端口 11之间设有第一插入线14连接至所述舵机MCU13,所述第二舵机开关k2与第二端口 12之间设有第二插入线15连接至所述舵机MCU13。如此,舵机M⑶13通过所述第一插入线14检测第一端口 11的接入信号;通过所述第二插入线15检测第二端口 12的接入信号;当第一舵机开关kl和第二舵机开关k2断开时,通过第一插入线14和第二插入线15可以检测哪边端口为输入端口,哪边端口为输出端口。
[0035]同时,该伺服器I内还设有存储舵机ID的存储器,所述存储器可以仅仅是一个缓存器,也可以是一个EEPROM或者FLASH。
[0036]本例提供的伺服器1,其在端口之间的总线LI上增加了两个开关,并在开关与端口之间设置插入线连接到舵机MCU13。如此,在将伺服器I进行组装时,无需考虑两个端口的输入输出关系,可以随意组装;组装完成后,通过该插入线来检测信号,以分别哪个是输入端口、哪个是输出端口。如此,使得其组装更简单,伺服器I不会出现由于装反而导致无法按照正确的设定逻辑动作的情况。根据需要,本例提供的伺服器I也可以通过对两个开关的通断控制,其可以通过逐个将伺服器I接入网络的方式,逐个将伺服器I顺序设定ID,以防止出现重复ID,省去组装和维修时人为设定ID的困扰。
[0037]下面通过第二实施例对本发明公开的主控制器2(简称主控)进行具体解释说明。如图2、图3所示,该主控制器2包括主控M⑶20和若干接口;该接口的个数根据需要设置,优选1-6个接口,其可以仅只有一个接口,各伺服器I均通过总线LI串接或者混接在该接口上;也可以包括I个以上的接口,每个接口上根据需要通过总线LI串接若干伺服器I。比如,本例中,设有5个接口,分别命名为第一接口 21、第二接口 22、第三接口 23、第四接口 24和第五接口25;具体的,如图2所示,若干接□可以通过总线LI分别接至主控M⑶20的若干引脚,所述各引脚和对应接口之间设置一个主控开关。该种连接方案称为并联式,该种方式可以同时向各接口广播相同的消息,也可以向各接口广播不同的消息。如图3所示,也可以将各接口接至主控MCU20的同一引脚上,该引脚与各接口之间的总线上分别接有一主控开关。该种方式称为串联式,该种方式总是同时向各伺服器I广播相同的消息。
[0038]其中,每个接口的内部总线LI上设置主控开关,每个主控开关的控制端均电连接至所述主控MCU20 ;所述主控M⑶20控制各主控开关的通断,以控制各接口上连接的各伺服器I与主控制器2通讯的通断;具体的,该第一接口21的内部总线LI上设有第一主控开关2a;第二接口 22的内部总线LI上设有第二主控开关2b;第三接口 23的内部总线LI上设有第三主控开关2c;第四接口 24的内部总线LI上设有第四主控开关2d;第五接口 25的内部总线LI上设有第五主控开关2e。各第一主控开关2a、第二主控开关2b、第三主控开关2c、第四主控开关2d和第五主控开关2e的控制端均电连接至所述主控MCU20。
[0039]本例提供的主控制器2,其在每个接口的内部总线LI上设置主控开关,每个主控开关的控制端均电连接至所述主控MCU20 ;所述主控M⑶20控制各主控开关的通断,以控制各接口上连接的各伺服器I与主控制器2通讯的通断。如此,其可以有选择地打开各主控开关,以接通或断开主控制器2与对应接口上的各伺服器I通讯。可以有效避免主控制器2广播设定ID时出现重复ID的情况发生,使得自动设定ID以后的伺服器I可以按照正确的设定逻辑动作。
[0040]下面通过第三实施例对本发明公开的伺服器I控制系统进行具体解释说明。如图4所示,所述伺服器控制系统包括主控制器2及若干伺服器I。其中,主控制器2已在第二实施例中具体解释说明,伺服器I已在第一实施例中进行具体解释说明。
[0041 ]其中,将所有的伺服器I分成若干串,分别串接到主控制器2的各接口上,也即各接口上的伺服器I为串联的关系,而各接口之间的串联的伺服器串为并联的关系。所有伺服器I具体分成几串,每串伺服器I具体设置几个并没有特别限制,串联和并联混合的好处在于使布线更加简单而规律,并优化主控制器2对各伺服器I的控制效率。比如,第一接口 21上串接有2个伺服器I,第二接口 22上串接有2个伺服器I;第三接口 23上串接有3个伺服器I。在该第四接口 24上串接有η个伺服器I,分别称为第一伺服器la、第二伺服器lb、第三伺服器Ic和第η伺服器In;第五接口 25上串接有3个伺服器I;每个接口上串接的伺服器I的个数根据其具体需要进行设定。
[0042]以第四接口24上串接η个伺服器为例,其具体连接方式如下:在主控制器2的第四接口 24通过总线LI与第一伺服器Ia的任一端口(如第一端口 11,该第一端口 11作为输入端口)串接,然后在另一端口(对应第二端口 12,该第二端口 12作为输出端口)通过总线LI与第二伺服器Ib的任一端口(如第一端口 11,该第一端口 11作为输入端口)串接,如此,依次实现各伺服器I的串接。
[0043]串接以后,其输入端口和输出端口即依次设定。在此串接过程中,并无需强制规定哪个端口为输入端口,哪个端口为输出端口。通过插入线即可判断哪个为输入端口,哪个为输出端口。当其在对各伺服器I的ID进行设定时,当前伺服器I内的舵机MCU13即可读取总线LI上的消息,并根据消息设定当前伺服器I的ID(将设定的ID替换存储在存储器中的原有ID)。并在完成设定ID的操作后,导通该当前伺服器I内的第一开关和第二开关,使下一伺服器I接入总线LI中,此时,下一伺服器I进入可被设定ID的状态,此时,下一伺服器I上即可通过插入线分别出输入端口和输出端口。如此循环,可依次设定各伺服器I的ID。
[0044]其中,上述主控制器2和各伺服器I均可看做单独的节点,即各节点通过串接的方式串联,主控制器2相当于主节点、其余伺服器I成为从节点。
[0045]以在该第四接口24上串接有η个伺服器I为例进行具体解释说明,为方便描述起见,假设总是以各伺服器I的第一端口 11为输入端口,以第二端口 12为输出端口(实际上并不限制)。伺服器I第一伺服器Ia的第一端口 11通过总线LI连接到主控制器2的第四接口 24;第一伺服器Ia的第二端口 12连接到第二伺服器Ib的第一端口 11;第二伺服器Ib的第二端口12连接到第三伺服器Ic的第一端口 11……,以此类推;最终串联连接至第η伺服器In。
[0046]当第四接口24内总线LI上的第四主控开关2d断开时,将使得串接在第四接口 24上的第一伺服器la、第二伺服器lb、第三伺服器Ic……第η伺服器In均处于与主控制器2断开通讯的状态,无法接收主控制器2广播的消息。当第四主控开关2d导通时,才使得串接在第四接口 24上各伺服器I可以与主控制器2进行通讯,各伺服器I可以接收主控制器2广播的消息。然而,如果其中的任意一个伺服器I中接在输入端口上的舵机开关断开时,将使得自身和后续的伺服器I均与主控制器2断开通讯;如果任意一个伺服器I中接在输入端口内总线LI上的舵机开关接通,而接在输出端口内总线LI上的舵机开关断开时,将使得自身可与其前边的伺服器I导通;而后续的伺服器I都将处于与主控制器2断开通讯的状态。
[0047]可以这么理解,假设某伺服器I为当前伺服器I,只有所有当前伺服器I之前的伺服器I中的舵机开关均处于导通状态时,当前伺服器I才有可能通过控制内部2个舵机开关的通断,将自身及后续伺服器I也接入网络中;或者将自身接入到网络中,而将后续伺服器I断开。
[0048]比如,当当前伺服器I之前的伺服器I中的舵机开关均处于导通状态,而当前伺服器I中的第一舵机开关kl和第二舵机开关k2均与处于断开状态时,当前伺服器I与后续的伺服器I均无法接入当前伺服器I之前的总线LI中,即当前伺服器I和后续的伺服器I均无法与主控制器2进行通讯。此时,其可以通过检测第一插入线14和第二插入线15的信号来判断对应的第一端口 11和第二端口 12中那个为输入端口,哪个为输出端口;当其需要将当前伺服器I也接入网络时,当前伺服器I内的舵机M⑶13向接在输入端口内总线LI上的舵机开关发送命令,使其导通,如此,即可将当前伺服器I接入网络中。当其舵机MCUl 3向接在输出端口内总线LI上的舵机开关也发送命令,使其导通,则将使得后续伺服器I也具备接入网络的基础。如果当前伺服器I接在输出端口内总线LI上的舵机开关断开,则无论后续伺服器I中的舵机开关如何动作,都将无法接入到网络中。
[0049]本例提供的该伺服器控制系统,由于其改进了所述伺服器I,在伺服器I端口之间的总线LI上增加了两个舵机开关,并在舵机开关与端口之间设置插入线连接到舵机MCU13。如此,在将伺服器I连接到主控制器2上形成伺服器I控制系统时,无需考虑两个端口的输入输出关系,可以随意组装;组装完成后,通过插入线来检测信号,以分别哪个是输入端口、哪个是输出端口。如此,使得其组装更简单,伺服器I不会出现由于装反而导致无法按照正确的设定逻辑动作的情况。根据需要,本例提供的伺服器I也可以通过对两个开关的通断控制,其可以通过逐个将伺服器I接入网络的方式,逐个将伺服器I顺序设定ID,以防止出现重复ID,省去组装和维修时人为设定ID的困扰。下边将通过具体实施例解释上述顺序设定ID的方法。
[0050]下面通过第四实施例对本发明公开的第三实施例中公开伺服器控制系统中的伺服器ID设定方法进行具体解释说明。
[0051]依次择一接通主控制器上的接口,重复通过以下步骤对接在主控制器接口上的伺服器进行ID设定:如图5所示流程图,所述伺服器ID设定方法包括如下步骤:
[0052]S101、伺服器断开步骤:使依次串接在主控制器2接口上的各伺服器I预先处于断开状态;如此,使得各伺服器I均处于断开网络的状态,在此状态下,主控制器2广播的消息并不会往后传送。
[0053]S102、伺服器ID设定步骤:主控制器2广播,向主控制器当前接通接口的总线LI发送将目标ID替换原有伺服器ID的消息;对应接口上各伺服器I内的舵机MCU13总是检测伺服器I内的第一插入线14和第二插入线15;并在舵机M⑶13检测到第一插入线14或者第二插入线15中接收到信号时,判断接收到信号的插入线处的端口为输入端口,没有接收到信号的插入线处的端口为输出端口;然后使输入端口内总线LI上的舵机开关导通,将伺服器I接入网络,各伺服器I接入网络时接收主控广播的消息,根据消息将目标ID替换原有伺服器ID,完成该伺服器ID设定,并在设定伺服器ID后导通该伺服器I内两个舵机开关;在完成该伺服器ID设定后导通该伺服器I内两个舵机开关的目的是使下一伺服器I也可接收到主控制器2广播的消息。重复本步骤,直至完成所有伺服器I的ID设定。修改后的各目标ID互不相同,以保证不会出现重名的ID。
[0054]S102步骤具体包括如下步骤:主控制器2广播,向总线LI发送将目标ID替换原有伺服器ID的消息;按顺序使串接的各伺服器I重复以下步骤:通过检测第一插入线14和第二插入线15的状态,判断伺服器I的输入端口和输出端口,然后导通伺服器I中接在输入端口内总线LI上的舵机开关,使该伺服器I接入网络中;然后伺服器I接收主控制器2广播的消息,将目标ID存储入存储器中,替换原有ID;然后在完成设定ID后或者同时导通伺服器I中的两个舵机开关。比如,第一个伺服器I修改以后的ID为1#;第二个伺服器I为2#,第三个伺服器I为3#,以此类推,直至完成所有伺服器I的ID设定。
[0055]本例提供的ID设定方法,可通过主控制器2周期性的广播,将各预先处于断开状态的伺服器I顺序接通,并按顺序将各伺服器I的ID改为目标ID。如此,通过本例提供的ID设定方法,使得伺服器I无需再装配前预先手动设置好不重复的ID,也无需考虑伺服器I与主控制器2连接成控制系统的过程中端口是否接反的问题,其可通过预先设定的程序,在接好伺服器控制系统后,自动完成伺服器I的ID设定。
[0056]在上述第四实施例中,需要较复杂的软件控制过程才能实现其方案,下面通过具体的第五实施例对第四实施例进行进一步的改进,以使其伺服器ID设定方法更为简单。
[0057]其中,同样的,主控制器2可以向各接口广播发送消息;同时,伺服器I内舵机M⑶13可控制第一舵机开关kl和第二舵机开关k2的通断;各伺服器I可通过检测第一插入线14和第二插入线15,以判断输入端口和输出端口。当伺服器I的ID为某预设断开ID时,舵机MCU13控制输入端口内总线LI上的舵机开关导通,并使输出端口内总线LI上的舵机开关断开,将该伺服器I接通前边的总线LI中,而将该伺服器I后续的伺服器I断开。当伺服器I的ID与预设断开ID不同时,则舵机M⑶13将控制两个舵机开关均导通;伺服器I可以接收输入端口上发过来的消息,将消息中的ID数据取出,并将其替换存储器中的原有ID。依次择一接通主控制器上的接口,重复通过以下步骤对接在主控制器接通接口上的伺服器进行ID设定:具体的,如图6所示流程图,所述伺服器ID设定方法包括如下步骤:
[0058]S201、预设断开ID设定步骤:主控制器2广播,向总线LI上的所有伺服器I发送将伺服器I的原始ID改为某预设断开ID的消息;各伺服器I根据接收到的消息,将预设断开ID替换原始ID(即将预设断开ID存储入存储器中,以替换存储器中原有的ID);以将所有伺服器I的ID都设定为某预设断开ID。上述预设断开ID被用来作为伺服器I内第一舵机开关kl和第二舵机开关k2通断的判断条件,当伺服器I内的ID为预设断开ID时,则使伺服器I内输入端口内总线LI上的舵机开关接通,而使伺服器I内输出端口内总线LI上的舵机开关断开。也即各伺服器I预先处于断开的状态。当伺服器I内的ID为不同于预设断开ID的ID时,则使伺服器I内总线LI上的两个舵机开关导通。该预设断开ID为人为设定的任意值,比如,本例中设为OxFFο
[0059]S202:目标ID替换预设断开ID步骤:主控制器2广播,向总线LI发送将目标ID替换预设断开ID的消息;各伺服器I顺序接入网络,并在伺服器I接入网络时将伺服器ID替换为目标ID,并在设定伺服器ID后导通伺服器I内所有舵机开关;然后重复本步骤,直至所有伺服器I完成ID设定。该目标ID不同于上述预设断开ID,且各伺服器I的目标ID互不相同。
[0060]其具体方式如下:先将所有伺服器I的ID都设定为预设断开ID,当伺服器I内的ID为预设断开ID时,则使伺服器I内输入端口内总线LI上的舵机开关接通,而使伺服器I内输出端口内总线LI上的舵机开关断开。然后主控制器2广播,向总线LI发送包含将目标ID替换预设断开ID的消息,各伺服器I按顺序逐个接收主控制器2广播的消息,逐一将各伺服器I的预设断开ID改为互不相同的目标ID。由于目标ID不与预设断开ID相同,修改后的伺服器I中的舵机开关导通;如此,紧接位于其后的伺服器I才能接收到来自主控制器2的消息。换言之,任何一个伺服器I在其前一个伺服器I设定ID之前,该伺服器I都无法连接到网络,其收不到主控制器2广播的消息。只有在前一个伺服器I完成ID设定后,该伺服器I才能连接到网络。
[0061]具体的,最初状态下,只有第一个伺服器I的输入端口内总线LI上的舵机开关导通,可将第一个伺服器I接到主控制器2上,可以接收到主控制器2广播的消息,由于第一个伺服器I的输出端口内总线LI上的舵机开关断开,第二个伺服器I及以后的各个伺服器I均处于断开的状态,此时第一个伺服器I根据主控制器2广播的消息,将目标ID替换预设断开ID,完成第一个伺服器I的ID设定,然后使第一个伺服器I内的两个舵机开关都导通。如此,使得第二个伺服器I也可重复上述步骤完成ID设定并导通,如此,依次顺序完成所有伺服器I的ID设定。
[0062]本例提供的上述ID设定方法,其无需复杂的步骤,仅通过简单的主控制器2广播,各伺服器I根据接收到的消息,将预设断开ID逐一替换为互不相同的目标ID,可以快速的逐一完成各伺服器I的ID设定,其方法简单快捷。
[0063]
【申请人】在设置上述预设断开ID,并将各预设断开ID逐一替换为互不相同的目标ID时,发现由于其核心逻辑为当其伺服器I内的ID为预设断开ID时,则使伺服器I内输入端口内总线LI上的舵机开关接通,同时使伺服器I内输出端口内总线LI上的舵机开关断开。当伺服器I内的ID为非预设断开ID时,使伺服器I内总线LI上的两个舵机开关均导通。如此,可以使当前伺服器I完成ID设定,并在ID设定后导通当前伺服器I,使下一个伺服器I可以接入网络中重复上述过程,最终完成所有伺服器I的ID设定。然而,在将各伺服器I内最早存储的原始ID修改为预设断开ID之前,如果若干伺服器I中的原始ID就是预设断开ID,则在其原始ID为预设断开ID的伺服器I就将出现断开,导致后续伺服器I中的ID无法被修改为预设断开ID,最终导致无法按照设定的逻辑完成所有ID的设定。为此,作为改进,本例中采用以下第六实施例介绍的方案以防止上述错误的发生。
[0064]下面通过第六实施例介绍一种进一步改进的预设断开ID设定方法,如图7所示流程图,其具体包括如下步骤:
[0065]S2011、非预设断开ID设定步骤:主控制器2广播,向总线LI上的所有伺服器I发送将伺服器I的原始ID设定为某非预设断开ID的消息;各伺服器I根据接收到的消息,将非预设断开ID替换原始ID;且主控制器2回读总线LI上是否存在预设断开ID,即查找是否存在预设断开ID的伺服器I,如果存在预设断开ID,则主控制器2继续广播,直至所有伺服器I总线LI上的原始ID均被设定为非预设断开ID;在此情形下,即使有部分伺服器I的原始ID为预设断开ID(此时该原始ID为预设断开ID的伺服器I后续的伺服器I均处于断开状态,无法接收主控制器2广播的消息),该预设断开ID也可被修改为非预设断开ID,使得该伺服器I及后续的伺服器I均可接入网络,且后续的伺服器I将原始ID全部改为非预设断开ID;该非预设断开ID可以人为设定的任意与预设断开ID不相同的值。比如,本例中设定为OxFE。由于该非预设断开ID与预设断开ID不相同,因此,各伺服器I内的舵机开关均将处于导通状态,也即将各伺服器ID设定为非预设断开ID后,各伺服器I均导通接入网络中,各伺服器I均可接收主控制器2广播的消息。
[0066]S2022、预设断开ID替换非预设断开ID步骤:主控制器2广播,向总线LI上的所有伺服器I发送将所述非预设断开ID设定为预设断开ID的消息;各伺服器I根据接收到的消息,将预设断开ID替换所述非预设断开ID。
[0067]采用本例提供的该预设断开ID设定方法,其在设定预设断开ID之前,先将所有伺服器I的原始ID设置为某与预设断开ID不相同的非预设断开ID,再将非预设断开ID全部替换为预设断开ID。如此,有效的避免了上述实施例5中出现的问题(即指由于部分伺服器I的原始ID为预设断开ID,导致原始ID为预设断开ID的伺服器I后续的电机均无法被修改为预设断开ID,使得无法按照程序设定,将各伺服器I按顺序逐个接通并一一设定ID的操作的问题)。在此基础上,就可将所有伺服器的预设断开ID修改为互不相同的目标ID。最终实现了伺服器自动设定ID的目的。该方法无需复杂的步骤,简单快捷。
[0068]在第五实施例、第六实施例的基础上,下面通过第七实施例介绍改进后的伺服器ID设定方法。如图8所示流程图,该伺服器ID设定方法主要为第五实施例中的步骤,且将第六实施例中的S2011和S2012步骤替换原S201步骤。
[0069]采用本例提供的伺服器ID设定方法,其可以将各伺服器I的任意原始ID修改为非预设断开ID,然后将所有伺服器I的非预设断开ID修改为互不相同的目标ID。最终实现了伺服器I自动设定ID的目的。该方法无需复杂的步骤,简单快捷,且修改结果更准确可靠。
[0070]下面通过第八实施例进一步具体介绍进一步优化后的伺服器ID设定方法,根据需要,依次择一接通主控制器2接口内的主控开关,然后重复通过下述步骤对串接在接通的主控开关对应接口上的各伺服器I进行ID设定。此处所说的“依次择一接通”请结合图2-图4进行理解,比如,当第一接口 21内的第一主控开关2a接通时,其余接口内的主控开关均断开;对接在第一接口 21上的各伺服器ID进行设定。同样的,当第二接口 22内的第二主控开关2b接通时,其余接口内的主控开关均断开;对接在第二接口 22内的各伺服器ID进行设定。当第三接口 23上的第三主控开关2c接通时,其余接口内的主控开关均断开;对接在第三接口 23上的各伺服器ID进行设定。同样的,当第四接口24内的第四主控开关2d接通时,其余接口内的主控开关均断开;对接在第四接口 24上的各伺服器ID进行设定。同样的,当第五接口25内的第五主控开关2e接通时,其余接口内的主控开关均断开;对接在第五接口 25上的各伺服器ID进行设定。其中,依次并不指各接口只能按顺序接通,即并不一定要按照第一接口21、第二接口 22、第三接口 23、第四接口 24和第五接口 25顺序接通,也可以按其他不规则顺序进行接通,比如,按第一接口 21、第三接口 23、第四接口 24、第二接口 22、第五接口 25等的顺序也是可以的。如此,可以逐串完成所有主控制器2接口上串接的伺服器设定ID;具体的串接在每个主控制器2接口上伺服器ID设定方法包括在伺服器I中的步骤和在主控制器2中的步骤:
[0071]其中,所述主控制器2中的步骤如图9所示,具体如下:
[0072]步骤S301、主控制器2广播,向总线LI发送将所有伺服器I的原始ID设定为某非预设断开ID的消息;具体的,该主控制器2广播消息,且回读总线LI上是否存在预设断开ID,如存在预设断开ID,则继续重复广播,直至将所有伺服器I原始ID设定为非预设断开ID时,才进入S302步骤,该非预设断开ID可以为人为设定的任意值,比如OxFE。
[0073]步骤S302、主控制器2广播,向总线LI发送将所有伺服器I的非预设断开ID设定为预设断开ID的消息;该预设断开ID可以为人为设定的任何值,且不同于非预设断开ID,比如OxFF0
[0074]步骤S303、主控制器2广播,重复向总线LI发送将预设断开ID设定为互不相同的目标ID的消息;本步骤中,主控制器2重复广播包含互不相同的目标ID的消息,每广播一次就回读总线LI上的消息,判断是否已将总线LI上可接收到广播的ID为预设断开ID的伺服器I完成目标ID的设定,如果已完成目标ID的设定,则进入下一广播,向总线LI发送将预设断开ID设定为另一与上次目标ID不相同的目标ID。以此类推。比如,主控制器2第一次广播将伺服器I的预设断开ID(OxFF)替换为目标ID(OxOl)的消息。总线LI上的第一个伺服器I接收到该主控制器2广播的该消息后,即根据该消息将目标ID(OxOl)替换该伺服器I中原有的预设断开ID(OxFF),并向总线LI上返回结果。主控制器2接收到该返回结果后,即进入下一轮广播,再次向总线LI发送将预设断开ID设定为另一与上次目标ID(OxOl)不相同的目标ID(比如0x02)。然后主控制器2重复广播互不相同的目标ID,并接收总线LI上返回的结果。作为优选的方式,目标ID总是按顺序递增或递减。比如目标ID从0x01、0x02、0x03……OxOn依次递增。或者从OxOn……0x03、0x02、0x01依次递增。
[0075]所述伺服器I中的步骤如图10所示,具体如下:
[0076]S401、舵机M⑶13读取存储在存储器中的舵机ID;
[0077]S402、判断舵机ID是否为预设断开ID,如果判断结果为否,进入步骤S403,如果判断结果为是,则进入步骤S404;
[0078]步骤S403、使第一舵机开关kl和第二舵机开关k2均接通,即使该伺服器I处于接通状态;
[0079 ] S404、检测第一插入线14和第二插入线15;然后分别进入步骤S405和步骤S406;
[0080] S405、判断第一插入线14是否检测到信号,如果判断结果为否,则进入步骤S406,如果判断结果为是,则进入步骤S407;
[0081 ] S406、使第一舵机开关kl断开;
[0082]S407、使第一舵机开关kl接通;
[0083]S408、判断第二插入线15是否检测到信号,如果判断结果为是,则进入步骤S409,如果判断结果为否,则进入步骤S410;
[0084]S409、使第二舵机开关k2接通;
[0085]S410、使第二舵机开关k2断开。
[0086]该步骤S403的含义为如果不为预设断开ID,则表示该伺服器I将被接通,该伺服器I具备可以接收主控制器2广播的信息的基础(是否能接收到主控制器2广播的消息,还取决于在该伺服器I之前是否存在ID为预设断开ID的伺服器I,如果该伺服器I之前存在ID为预设断开ID的伺服器I,则该伺服器I同样因为前面的伺服器I断开,使得其处于同样无法接收到主控制器2广播的消息的状态),并可根据接收到的主控制器2广播的消息完成相应的动作。
[0087]步骤S404-S410的含义为,当该伺服器I内的ID为预设断开ID时,舵机M⑶13检测第一插入线14和第二插入线15中的信号,当其中的任一插入线检测到信号时,则表示该检测到信号的插入线连接到的端口为输入端口;反之,没有检测到信号的插入线连接到的端口为输出端口(由于各伺服器I通过串接的方式接在主控制器2的接口上,因此,由于信号的单向流动,其结果只能是一个插入线检测到信号时,另一插入线必然检测不到信号,因此可以以此判断谁是输入端口和输出端口);然后,将输入端口内总线LI上的舵机开关接通,而将输出端口内总线LI上的舵机开关断开;如此,即可使该伺服器I被连接到前序的总线LI中,使其可以接收到主控制器2广播的消息,并根据该消息完成相应的操作(比如将其修改为目标ID或者预设断开ID等)。且使输出端口上的舵机开关断开,使得该伺服器I后续的伺服器I无法再接收到主控制器2广播的消息。比如,当第一插入线14检测到信号时,表示对应的第一端口 11为输入端口,则接通该第一端口 11内的第一舵机开关kl;如此,第二插入线15中将检测不到信号,表示对应的第二端口 12为输出端口,则断开第二端口 12内的第二舵机开关k2o
[0088]在本例提供的ID设定方法中,在主控制器2进行步骤S301时,接在主控制器2对应接口上的伺服器I都会进入步骤S401-S403的判断过程,由于在此过程中,大部分情况下,伺服器I中的原始ID都不是预设断开ID(如OxFF),使得所有伺服器I中的舵机开关都将被接通,且使各伺服器I接收主控制器2广播的消息,将伺服器I中的原始ID设定为非预设断开ID(如OxFE);即使其中有部分伺服器I的原始ID为预设断开ID,其也可以经步骤S401、S402、S404-S410修改为非预设断开ID,并使其在下一个循环内使该已经修改成非预设断开ID的伺服器I导通,使后续的伺服器I也可以接收到主控制器2的广播,再进入S401-S303的步骤,如此,使得所有伺服器I的原始ID最终都被修改为非预设断开ID。
[0089]然后主控制器2进行步骤S302,此时,主控制器2广播,向总线LI发送将所有伺服器I的非预设断开ID设定为预设断开ID的消息;此时,由于主控制器2经过上述步骤S301及各伺服器I经过S401-S410步骤后,已将所有伺服器I的ID修改为非预设断开ID,此时,总线LI上的各伺服器I接收到上述总线LI上的将所有伺服器I的非预设断开ID设定为预设断开ID的消息,即执行将预设断开ID替换原有非预设断开ID的操作;各伺服器I执行步骤S401-S403,将所有伺服器IID设定为预设断开ID。一旦各伺服器I完成设定预设断开ID的操作;则在下一周期中,伺服器I重复执行S401、S402、S404-S410的步骤;如此,将使得各伺服器I均保持其中的输入端口内总线LI上的舵机开关导通,而使各伺服器I输出端口内总线LI上的舵机开关断开。如此,也就使得仅有串接在主控制器2接口上的第一个伺服器I能接收到主控制器2广播的该消息,第一个伺服器I以后的伺服器I均处于断开状态,无法接收到主控制器2广播的消息,其结果使得最终所有伺服器I的ID都被修改为预设断开ID存储在存储器中。
[0090]然后主控制器2进行步骤S303,此时,主控制器2广播,重复向总线LI发送将预设断开ID设定为互不相同的目标ID的消息;当主控制器2在该阶段初次广播将某目标ID(如0x01)替换预设断开ID时,仅有第一个伺服器I能接收到广播,该第一个伺服器I接收到信号,执行步骤S401、S402、S404-S410;如此,将第一个伺服器I接收到的目标ID(如0x01)替换原有预设断开ID;当主控制器2回读到总线LI上返回的第一个伺服器I已完成ID设定的结果后,主控制器2进入下一轮广播,向总线LI发送将不同于上次广播的目标ID(如0x02)替换预设ID的消息,第一个伺服器I执行步骤S401-S403,但其不修改其存储器内存储的ID(OxOl),第二个伺服器I执行S401、S402、S404-S410,将第二个伺服器I上输入端口内总线LI上的舵机开关导通,而使各伺服器I输出端口内总线LI上的舵机开关断开。该第二个伺服器I接收到主控制器2广播的消息,将目标ID(S卩0x02)替换预设断开ID。当主控制器2回读到总线LI上返回的第二个伺服器I已完成ID设定的结果后,主控制器2进入下一轮广播,向总线LI发送将不同于上述2次广播的目标ID(如0x03)替换预设ID的消息,第一个、第二个伺服器I执行步骤3401-5403,但其不修改其存储器内存储的10,第三个伺服器1执行5401、5402、5404-S410,将第三个伺服器I上输入端口内总线LI上的舵机开关导通,而使各伺服器I输出端口内总线LI上的舵机开关断开。该第三个伺服器I接收到主控制器2广播的消息,将目标ID(SP0x03)替换预设断开ID。如此循环,主控制器2重复广播,各伺服器I依次完成各不相同的目标ID替换预设断开ID的步骤,最终将所有目标ID替换预设断开ID。
[0091]如此,经过上述步骤,即完成了所有伺服器I设定ID的过程。
[0092]本例提供的伺服器ID设定方法,无需复杂的软件设置流程,仅需简单地经过主控制器2广播消息,各伺服器I内部自行根据设定的程序及接收到的主控制器2广播的消息,自动完成伺服器I的ID设定。
[0093]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种伺服器,其特征在于,包括舵机M⑶、第一端口和第二端口 ;所述第一端口和所述第二端口之间通过总线连接,所述总线同时连接到所述舵机MCU ; 所述第一端口和所述第二端口之间的总线上设有所述第一舵机开关和第二舵机开关;所述第一舵机开关连接于所述第一端口和所述舵机MCU之间,该第一舵机开关控制所述第一端口的通断;所述第二舵机开关连接于所述第二端口和所述舵机M⑶之间,该第二舵机开关控制所述第二端口的通断; 所述第一舵机开关与第一端口之间设有第一插入线连接至所述舵机MCU,所述第二舵机开关与第二开口之间设有第二插入线连接至所述舵机MCU。2.根据权利要求1所述的伺服器,其特征在于,所述第一舵机开关的控制端和第二舵机开关的控制端均连接至所述舵机MCU。3.根据权利要求1所述的伺服器,其特征在于,所述伺服器内还设有存储ID的存储器。4.根据权利要求3所述的伺服器,其特征在于,所述存储器为EEPROM、缓存器或者FLASH。5.根据权利要求1所述的伺服器,其特征在于,所述总线为多重伺服马达控制总线。
【文档编号】G05B19/414GK105974890SQ201610503839
【公开日】2016年9月28日
【申请日】2016年6月30日
【发明人】黄挺爽, 熊友军
【申请人】深圳市优必选科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1