一種伺服器的制造方法
【專利摘要】為解決現有伺服器上輸入端口和輸出端口若接反時,將導致伺服器無法實現自動改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日
【發明人】黃挺爽, 熊友軍
【申請人】深圳市優必選科技有限公司