本發明涉及計算機技術領域,尤其涉及一種分配通信地址的方法及裝置。
背景技術:
串行總線廣泛應用于計算機及工業控制領域中實現數據交換。在串行總線通信過程中,串行總線上的各個節點設備共享串行總線,任何一個節點設備發出的通信信息,都能夠被總線上的其它節點設備收到。為了標識發送或接收信息的節點設備,必須為串行總線上的每個節點設備分配一個唯一的通信地址。
現有可行的為串行總線節點設備分配通信地址的方法是,以人工分配的方式,為串行總線上的每一節點設備分別分配唯一的通信地址。當串行總線上節點設備數量較多時,依靠人工為串行總線上的每個節點設備分別分配通信地址,對于工作人員來說,無疑是一項繁重的體力勞動,并且分配效率不高。因此,業內亟需一種能夠自動為串行總線上的節點設備分配通信地址的方法,來降低工作人員勞動量,提高通信地址分配效率。
技術實現要素:
基于上述現有技術的缺陷和不足,本發明提出一種分配通信地址的方法及裝置,能夠實現自動為串行總線上的節點設備分配通信地址。
一種分配通信地址的方法,應用于串行總線上的節點設備,該方法包括:
接收與所述節點設備相鄰的第一節點設備發送的通信地址;
根據所述第一節點設備發送的通信地址,計算得到自身通信地址;
將所述自身通信地址發送給與所述節點設備相鄰的第二節點設備,使所述第二節點設備根據所述自身通信地址,計算所述第二節點設備自身的通信地址。
優選地,所述根據所述第一節點設備發送的通信地址,計算得到自身通信地址,包括:
對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址。
優選地,所述對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址,包括:
將所述第一節點設備發送的通信地址加1,得到自身通信地址。
優選地,當與所述節點設備相鄰的第一節點設備為主機設備時,所述接收與所述節點設備相鄰的第一節點設備發送的通信地址,包括:
接收與所述節點設備相鄰的主機設備發送的,所述主機設備為所述節點設備分配的通信地址。
優選地,當所述串行總線上的節點設備為所述串行總線上的最后一個節點設備時,在根據所述第一節點設備發送的通信地址,計算得到自身通信地址后,該方法還包括:
按照設定的周期檢測是否有新加入的節點設備與所述串行總線上的最后一個節點設備連接;
當檢測到有新加入的節點設備與所述串行總線上的最后一個節點設備連接時,將所述自身通信地址發送給所述新加入的節點設備,使所述新加入的節點設備根據所述自身通信地址,計算所述新加入的節點設備自身的通信地址。
一種分配通信地址的裝置,應用于串行總線上的節點設備,該裝置包括:
數據接收單元,用于接收與所述節點設備相鄰的第一節點設備發送的通信地址;
計算單元,用于根據所述第一節點設備發送的通信地址,計算得到自身通信地址;
數據發送單元,用于將所述自身通信地址發送給與所述節點設備相鄰的第二節點設備,使所述第二節點設備根據所述自身通信地址,計算所述第二節點設備自身的通信地址。
優選地,所述計算單元根據所述第一節點設備發送的通信地址,計算得到自身通信地址時,具體用于:
對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址。
優選地,所述計算單元對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址時,具體用于:
將所述第一節點設備發送的通信地址加1,得到自身通信地址。
優選地,當與所述節點設備相鄰的第一節點設備為主機設備時,所述數據接收單元接收與所述節點設備相鄰的第一節點設備發送的通信地址時,具體用于:
接收與所述節點設備相鄰的主機設備發送的,所述主機設備為所述節點設備分配的通信地址。
優選地,該裝置還包括:
檢測處理單元,用于當所述串行總線上的節點設備為所述串行總線上的最后一個節點設備時,在所述計算單元根據所述第一節點設備發送的通信地址,計算得到自身通信地址后,按照設定的周期檢測是否有新加入的節點設備與所述串行總線上的最后一個節點設備連接;當檢測到有新加入的節點設備與所述串行總線上的最后一個節點設備連接時,控制所述數據發送單元將所述自身通信地址發送給所述新加入的節點設備,使所述新加入的節點設備根據所述自身通信地址,計算所述新加入的節點設備自身的通信地址。
本發明提出的分配通信地址的方法,應用于串行總線上的節點設備。串行總線上的節點設備接收相鄰的第一節點設備發送的通信地址,并根據接收的通信地址計算得到自身通信地址,然后將計算得到的自身通信地址發送給與自身相鄰的第二節點設備。第二節點設備按照上述同樣的方法,根據接收的通信地址計算自身通信地址,然后再把第二節點設備自身的通信地址發送給下一個節點設備,以此類推,采用本發明技術方案,各個節點設備能夠自動計算得到自身唯一的通信地址,實現了自動為串行總線上的節點設備分配通信地址的目的,提高了通信地址分配效率。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1是本發明實施例提供的一種分配通信地址的方法的流程示意圖;
圖2是本發明實施例提供的一種串行總線系統結構示意圖;
圖3是本發明實施例提供的一種分配通信地址的裝置的結構示意圖;
圖4是本發明實施例提供的另一種分配通信地址的裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例公開了一種分配通信地址的方法,應用于串行總線上的節點設備,參見圖1所示,該方法包括:
s101、接收與所述節點設備相鄰的第一節點設備發送的通信地址;
具體的,串行總線上的節點設備按照圖2所示的方式串行連接。除去串行總線頭尾的節點設備之外,串行總線上的每一個節點設備,都有兩個相鄰的節點設備。
例如在由可編程邏輯控制器(programmablelogiccontroller,plc)作為主機構成的串行總線通信系統中,一般是從與plc主機連接的第一個節點設備開始分配通信地址,一直到串行總線的最后一個節點設備。
本發明實施例所述的與串行總線上的節點設備相鄰的第一節點設備,是指節點設備的前一個節點設備,即按照上述通信地址分配方式,已經分配通信地址的前一個節點設備。
與節點設備相鄰的前一個節點設備在確認自身的通信地址后,將自身的通信地址發送給上述節點設備。
上述通信地址,通常是以數字表示的地址代碼。每個節點設備分配唯一的通信地址。
s102、根據所述第一節點設備發送的通信地址,計算得到自身通信地址;
具體的,當節點設備接收到相鄰的第一節點設備發送的通信地址后,根據第一節點設備的通信地址,計算出自身的通信地址。
需要說明的是,節點設備按照預先設定的計算方法,計算出自身的通信地址,并且,該計算方法能夠保證根據某一通信地址計算出的通信地址,一定與上述某一通信地址不同。也就是說,上述計算方法能夠保證各個節點設備計算出的通信地址不會重復,都是唯一存在的。
s103、將所述自身通信地址發送給與所述節點設備相鄰的第二節點設備,使所述第二節點設備根據所述自身通信地址,計算所述第二節點設備自身的通信地址。
具體的,當節點設備計算得到自身的通信地址后,將自身通信地址再發送給與自身連接的下一個節點設備,即與自身相鄰的第二節點設備。然后,第二節點設備接收到上述節點設備發送的通信地址后,采用s102相同的方法,計算得到自身通信地址,以及將第二節點設備自身的通信地址發送給與第二節點設備相鄰的再下一個節點設備。以此類推,每個節點設備分別執行步驟s101~s103,即實現了對串行總線上各個節點設備的通信地址的自動分配。
本發明實施例提出的分配通信地址的方法,應用于串行總線上的節點設備。串行總線上的節點設備接收相鄰的第一節點設備發送的通信地址,并根據接收的通信地址計算得到自身通信地址,然后將計算得到的自身通信地址發送給與自身相鄰的第二節點設備。第二節點設備按照上述同樣的方法,根據接收的通信地址計算自身通信地址,然后再把第二節點設備自身的通信地址發送給下一個節點設備,以此類推,采用本發明實施例技術方案,各個節點設備能夠自動計算得到自身唯一的通信地址,實現了自動為串行總線上的節點設備分配通信地址的目的,提高了通信地址分配效率。
可選的,在本發明的另一個實施例中,所述根據所述第一節點設備發送的通信地址,計算得到自身通信地址,包括:
對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址。
具體的,在本發明實施例中,為各個節點設備分別預先設定統一的數學運算方法,該數學運算方法,用來通過某一通信地址,計算得到另一個通信地址,并且能夠保證計算得到的通信地址都不相同。例如,可以設定乘法運算、除法運算、平方運算等運算方法。
當節點設備接收到相鄰的第一節點設備發送的通信地址后,采用上述預先設定的數學運算方法,對該通信地址進行數學運算處理,得到另一個通信地址,并將得到的另一個通信地址,作為自身的通信地址。
可選的,在本發明的另一個實施例中,所述對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址,包括:
將所述第一節點設備發送的通信地址加1,得到自身通信地址。
具體的,在本發明實施例中,為節點設備設置簡單的數學運算方法,使節點設備能夠快速地根據接收的通信地址,計算得到自身通信地址。上述簡單的數學運算方法為加1運算,即節點設備將接收的通信地址加1,得到的新的通信地址,作為自身通信地址。
可選的,在本發明的另一個實施例中,當與所述節點設備相鄰的第一節點設備為主機設備時,所述接收與所述節點設備相鄰的第一節點設備發送的通信地址,包括:
接收與所述節點設備相鄰的主機設備發送的,所述主機設備為所述節點設備分配的通信地址。
具體的,當節點設備為與主機設備直接相連的節點設備時,上述與節點設備相鄰的第一節點設備,即為上述主機設備。
在本發明實施例中,主機設備直接為與其連接的節點設備分配通信地址,并將分配的通信地址發送給節點設備。
需要說明的是,在上述場景中,即節點設備相鄰的第一節點設備為主機設備時,主機設備為該節點設備分配了通信地址,并將通信地址發送給該節點設備后,節點設備不再執行步驟s102,即不用再計算自身的通信地址,而是直接將主機設備發送的,為自身分配的通信地址,發送給與自身相鄰的第二節點設備即可。
可選的,在本發明的另一個實施例中,當所述串行總線上的節點設備為所述串行總線上的最后一個節點設備時,在根據所述第一節點設備發送的通信地址,計算得到自身通信地址后,該方法還包括:
按照設定的周期檢測是否有新加入的節點設備與所述串行總線上的最后一個節點設備連接;
當檢測到有新加入的節點設備與所述串行總線上的最后一個節點設備連接時,將所述自身通信地址發送給所述新加入的節點設備,使所述新加入的節點設備根據所述自身通信地址,計算所述新加入的節點設備自身的通信地址。
具體的,當實施本發明實施例技術方案的節點設備為串行總線上的最后一個節點設備時,由于該節點設備沒有相鄰的第二節點設備,因此,在計算得到自身的通信地址后,沒有可以發送自身通信地址的目的節點設備。
在這種情況下,本發明實施例使節點設備按照設定的周期,檢測是否有新加入該串行總線系統的節點設備與該節點設備連接。如果檢測到有新加入的節點設備與該節點設備連接,那么該節點設備將已經計算得到的自身通信地址發送給該新加入的節點設備,并且停止檢測是否有新加入該串行總線系統的節點設備與該節點設備連接。新加入的節點設備接收到通信地址后,按照s102的方法,計算得到自身的通信地址。
此時,新加入的節點設備同樣沒有可以發送自身通信地址的目的節點設備,因此,新加入的節點設備開始按照設定的周期,檢測是否又有新加入該串行總線系統的節點設備與該新加入的節點設備連接。當又有新加入的節點設備時,將自身通信地址發送給新加入的節點設備。
綜上所述,當實施本發明實施例技術方案的節點設備為串行總線的最后一個節點設備時,要通過周期檢測新加入的設備,當檢測到新加入的設備時,將自身通信地址發送給新加入的設備。
本發明實施例公開了一種分配通信地址的裝置,應用于串行總線上的節點設備,參見圖3所示,該裝置包括:
數據接收單元301,用于接收與所述節點設備相鄰的第一節點設備發送的通信地址;
計算單元302,用于根據所述第一節點設備發送的通信地址,計算得到自身通信地址;
數據發送單元303,用于將所述自身通信地址發送給與所述節點設備相鄰的第二節點設備,使所述第二節點設備根據所述自身通信地址,計算所述第二節點設備自身的通信地址。
具體的,本實施例中各個單元的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,計算單元302根據所述第一節點設備發送的通信地址,計算得到自身通信地址時,具體用于:
對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址。
具體的,本實施例中的計算單元302的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,計算單元302對所述第一節點設備發送的通信地址,進行設定的數學運算處理,得到自身通信地址時,具體用于:
將所述第一節點設備發送的通信地址加1,得到自身通信地址。
具體的,本實施例中的計算單元302的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,當與所述節點設備相鄰的第一節點設備為主機設備時,數據接收單元301接收與所述節點設備相鄰的第一節點設備發送的通信地址時,具體用于:
接收與所述節點設備相鄰的主機設備發送的,所述主機設備為所述節點設備分配的通信地址。
具體的,本實施例中的數據接收單元301的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
可選的,在本發明的另一個實施例中,參見圖4所示,該裝置還包括:
檢測處理單元304,用于當所述串行總線上的節點設備為所述串行總線上的最后一個節點設備時,在計算單元302根據所述第一節點設備發送的通信地址,計算得到自身通信地址后,按照設定的周期檢測是否有新加入的節點設備與所述串行總線上的最后一個節點設備連接;當檢測到有新加入的節點設備與所述串行總線上的最后一個節點設備連接時,控制數據發送單元303將所述自身通信地址發送給所述新加入的節點設備,使所述新加入的節點設備根據所述自身通信地址,計算所述新加入的節點設備自身的通信地址。
具體的,本實施例中的檢測處理單元304的具體工作內容,請參見上述方法實施例的內容,此處不再贅述。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。