TWI470441B - Method and system of intelligent address allocation based on tandem bus - Google Patents
Method and system of intelligent address allocation based on tandem bus Download PDFInfo
- Publication number
- TWI470441B TWI470441B TW97144928A TW97144928A TWI470441B TW I470441 B TWI470441 B TW I470441B TW 97144928 A TW97144928 A TW 97144928A TW 97144928 A TW97144928 A TW 97144928A TW I470441 B TWI470441 B TW I470441B
- Authority
- TW
- Taiwan
- Prior art keywords
- slave
- address
- host
- command
- switch
- Prior art date
Links
Landscapes
- Small-Scale Networks (AREA)
Description
本發明一般性地涉及智慧地址分配,更具體而言,涉及一種在主從通信模式下基於串列匯流排的智慧地址分配的方法和系統。
串列匯流排廣泛應用於工業控制領域。在使用串列匯流排時,匯流排上的所有設備共用通信介質,任何一個設備發出的通信信息都能夠被匯流排上的其他設備收到。為了標誌發送或接收信息的設備,必須為每個設備分配一個通信地址。一般匯流排有主從模式和“輪主輪從”模式兩種工作方式。因後者在節點較多情況下性能不佳,工業控制當中絕大部分都是採用一主多從的通訊網絡結構。在主從模式下,整個通信匯流排系統由一個主節點、若干個從節點組成,由主節點不斷地輪流查詢從節點是否有通信需求。如果有則將匯流排控制權交給某一從節點,從節點發送完畢-後立刻交還匯流排控制權,主機必須很明確從機的地址才能建立通訊,而且從機地址在網路上必須唯一。同一時刻,匯流排上只能有一個節點成為主節點而處於發送狀態,其他所有節點必須處於接收狀態。如果同一時刻有兩個以上的節點處於發送狀態,將導致所有發送方的資料發送失敗,即所謂匯流排衝突。
目前,在採用主從通信模式下的串列匯流排系統中,一般是採用手動設置設備地址。通常地址的設定都是人為事先在從機上手動設置撥碼開關的分配好設備地址,然後記錄下分配的地址號,再到主機輸入已經分配的從設備的地址,這樣才建立通訊。在工業應用中,例如在中央空調系統中,通常主機下面會連接很多從機,而且從機的位置都不固定且距離很遠,手動設置設備地址很可能會設置重複的地址。而且很多主機都是屬於封閉主機,只有打開機器外殼才能進行簡單的設置,如果在用戶維修從機或者新增加從機設備後,往往會帶來一些意外故障。
舉例來說,如第1a圖所示,其中圖示了現有技術中的RS485匯流排的網路結構,該網路由一台主機(host)和三台從機(slave)1、2、3組成。第1b和1c圖分別示出了現有技術中的主機和從機的結構示意圖。由圖可見,現有技術的主機包括:MCU微控制器、通訊模組、記憶體和撥碼輸入裝置。其中,通訊模組與雙絞線連接,並與MCU微控制器連接,在MCU微控制器的控制下執行正常的通信命令發送和接收功能;MCU微控制器,分別與通信模組和記憶體連接;記憶體,用於存儲輸入的各從機地址,並提供給MCU微控制器讀取;撥碼輸入開關,用於向記憶體輸入各從機已經設置好的地址。現有技術主機需要手工輸入各個從機設定的地址,因此需要一個輸入裝置,即撥碼輸入開關,用於向記憶體中輸入已經分配的從機地址,以便於正確輸入。類似地,現有技術的從機包括MCU微控制器、通訊模組、記憶體和撥碼輸入裝置。現有技術從機需要手工輸入各個從機設定的地址,因此需要一個輸入裝置,即撥碼輸入開關。
根據匯流排的電氣特性,設備地址不允許重複,匯流排上的設備地址是唯一的。然而,在手工設定過程中,如果不慎將兩台從機,例如從機1和從機3的地址都設置為例如0x01,那麼根據匯流排特性,如果主機發送給地址為0x01的從機的命令,從機1和從機3都可以收到,且都會向主機應答,這樣就在網路中造成在同一時刻有兩台從機同時在發送消息,這將造成所有終端的通信失敗,也就是發生了匯流排衝突,以至於整個系統不能工作。
主從通信模式下的自動地址分配在應用上是迫切需要的。例如在一個已有的系統上添加從站設備,就有可能碰到地址重複的問題;類似地,在更換損壞的從站時,也有可能碰到地址重複的問題。
根據本發明的一個方面,提供了一種串列匯流排系統中的地址分配方法,該串列匯流排系統包括至少一個主機和至少一個從機,該方法包括下列步驟:a.在串列匯流排中為該至少一個從機中的每一個設置電子物理開關,以控制每一該從機和與其相鄰的下一該從機之間的線路通斷;b.斷開該至少一個從機中的每一個的電子物理開關;c.由該主機為最相鄰的待分配地址的從機分配地址後,閉合該從機的電子開關。
較佳地,重複步驟c直至對全部從機完成地址分配。
較佳地,在步驟b中,主機向從機發送初始化命令,以斷開電子物理開關。
較佳地,在步驟c之前還包括下列步驟:主機向從機發送地址檢查命令,與該地址檢查命令中的檢查地址匹配的從機向主機發送確認應答。
較佳地,該的地址分配方法進一步包括步驟d:主機定期向從機發送巡檢命令的步驟,該巡檢命令包括各從機地址。更較佳地,該巡檢命令還包括為初始值的地址。
較佳地,該的地址分配方法進一步包括:e.在該串列匯流排系統中增加至少一個附加從機;f.初始化該附加從機,以斷開該附加從機的電子物理開關,並設置附加從機地址為初始值;g.與該巡檢命令中的為初始值的地址匹配的附加從機向主機發送確認應答,保存該地址並閉合該附加從機的該電子物理開關。
更較佳地,重複步驟g直至對全部附加從機完成地址分配。
較佳地,該的地址分配方法進一步包括判定有效分配地址是否小於從機數量的步驟。
較佳地,該從機地址的初始值是0xFF。
較佳地,該電子物理開關是繼電器。
根據本發明的另一方面,提供了一種用於串列匯流排系統中的主機,該串列匯流排系統還包括至少一個從機,該主機包括:控制器;通信模組,與控制器相連,用於向該至少一個從機發送資料和從該至少一個從機接收資料;記憶體,與控制器相連,用於存取該至少一個從機的地址資料;和初始化開關,與控制器相連,用於當該初始化開關被啟動時啟動初始化操作。
較佳地,該控制器包括:初始化命令單元,用於在初始化開關被按下後,向該至少一個從機發送初始化命令;和地址分配命令發送單元,用於向該至少一個從機發送地址分配命令。
較佳地,該控制器還包括巡檢模組,用於定期向該至少一個從機發送巡檢命令,其中該巡檢命令包括該至少一個從機的地址。更較佳地,該巡檢命令還包括為初始值的地址。
較佳地,該控制器還包括異常處理模組,用於當巡檢模組發現有附加從機接入時,調用地址分配命令單元,向該附加從機發送地址分配命令。
較佳地,該控制器還包括地址檢查命令發送單元,用於向該至少一個從機發送地址檢查命令。
較佳地,該通信模組是RS485通信模組。
較佳地,該記憶體是非易失性記憶體。
較佳地,該初始化開關是JP跳線開關或觸發按鍵開關。
根據本發明的又一方面,提供了一種用於串列匯流排系統中的從機,該串列匯流排系統還包括至少一個主機,該從機包括:控制器;通信模組,與控制器相連,用於向該至少一個主機發送資料和從該至少一個主機接收資料;記憶體,與控制器相連,用於存取該從機的地址資料;電子物理開關,連接於串列匯流排中並位於通信模組的下游;和初始化開關,與控制器相連,用於當該初始化開關被啟動時啟動初始化操作。
較佳地,該控制器包括:初始化命令執行單元,用於在初始化開關被啟動後,或收到該至少一個主機發送的初始化命令後,斷開該電子物理開關,並將自身地址設置為初始值;地址分配命令發送單元,用於在收到該至少一個主機發送的地址分配命令,使用地址分配命令中的地址取代分配前的地址,並回復應答,同時接通電子物理開關。
較佳地,該控制器還包括地址檢查命令應答單元,用於在收到該至少一個主機發送的地址檢查命令後,回復應答。
較佳地,該通信模組是RS485通信模組。
較佳地,該記憶體是非易失性記憶體。
較佳地,該初始化開關是JP跳線開關或觸發按鍵開關。
較佳地,該電子物理開關是繼電器。
根據本發明的又一方面,提供了一種系統,該系統包括:至少一個主機;至少一個從機;包括雙線的串列匯流排;其中該至少一個從機中的每一個包括電子物理開關,並且其中串列匯流排的雙線從主機引出,依次經過該至少一個從機中的每一個的電子物理開關。
較佳地,該至少一個主機中的每一個包括:主機控制器;主機通信模組,與主機控制器相連,用於向該至少一個從機發送資料和從該至少一個從機接收資料;主機記憶體,與主機控制器相連,用於存取該至少一個從機的地址資料;和主機初始化開關,與主機控制器相連,用於當該主機初始化開關被啟動時啟動初始化操作。
較佳地,該主機控制器包括:初始化命令單元,用於在主機初始化開關被按下後,向該至少一個從機發送初始化命令;和主機地址分配命令發送單元,用於向該至少一個從機發送地址分配命令。
較佳地,該主機控制器還包括巡檢模組,用於定期向該至少一個從機發送巡檢命令,其中該巡檢命令包括該至少一個從機的地址。更較佳地,該巡檢命令還包括為初始值的地址。
較佳地,該主機控制器還包括異常處理模組,用於當巡檢模組發現有附加從機接入時,調用地址分配命令單元,向該附加從機發送地址分配命令。
較佳地,主機控制器還包括地址檢查命令發送單元,用於向該至少一個從機發送地址檢查命令。
較佳地,該主機通信模組是RS485通信模組。
較佳地,該主機記憶體是非易失性記憶體。
較佳地,該主機初始化開關是JP跳線開關或觸發按鍵開關。
較佳地,該至少一個從機中的每一個包括:從機控制器;從機通信模組,與從機控制器相連,用於向該至少一個主機發送資料和從該至少一個主機接收資料;從機記憶體,與從機控制器相連,用於存取該從機的地址資料;電子物理開關,連接於串列匯流排中並位於通信模組的下游;和從機初始化開關,與從機控制器相連,用於當該從機初始化開關被啟動時啟動初始化操作。
較佳地,該從機控制器包括:初始化命令執行單元,用於在從機初始化開關被啟動後,或收到該至少一個主機發送的初始化命令後,斷開該電子物理開關,並將該從機地址設置為初始值;和從機地址分配命令發送單元,用於在收到該至少一個主機發送的地址分配命令,使用地址分配命令中的地址取代分配前的地址,並回復應答,同時接通電子物理開關。
較佳地,該控制器還包括地址檢查命令應答單元,用於在收到該至少一個主機發送的地址檢查命令後,回復應答。
較佳地,該從機通信模組是RS485通信模組。
較佳地,該從機記憶體是非易失性記憶體。
較佳地,該從機初始化開關是JP跳線開關或觸發按鍵開關。
較佳地,該電子物理開關是繼電器。
利用本發明,在向系統加入新的從機時只需要在從機上啟動初始化鍵,主機即可完成對新插入的從機的地址分配,而不影響其他從機的通訊。本發明可以在串列匯流排系統中實現自動地址分配,從而避免了人工設置地址錯誤率高、效率低的問題。
在本發明的實施例中,以RS485匯流排為例,詳細描述了本發明。然而,應當理解,本發明並不僅限於RS485匯流排,而可有利地應用其他匯流排,例如RS422匯流排。
第2圖是根據本發明的實施例的智慧地址分配系統的網路結構。如圖所示,系統包括一個主機100、多個從機200以及RS485匯流排300,其中主機100是命令發起者,從機200是屬於命令的接收和執行者,兩者通過RS485匯流排連接以完成指令的發送和接收。每個從機200設置有電子物理開關205。RS485匯流排的雙絞線從主機100引出後,先引入第一從機的電子物理開關的輸入端,再從第一從機的電子物理開關的輸出端引線到第二從機的電子物理開關的輸入端,以此類推,完成組網。
具體地,如第3圖所示,其中示出了根據本發明的實施例的主機100的結構示意圖,主機100包括主機控制器101(例如主機MCU微控制器)、主機通訊模組102、主機記憶體103以及主機初始化開關104。其中,主機通訊模組102分別與主機MCU微控制器101以及雙絞線連接,在主機MCU微控制器101的控制下執行正常的發送和接收功能;主機MCU微控制器101分別與主機通信模組102和主機記憶體103連接,用於完成初始化動作,自動分配各從機地址,將已經分配的從機地址進行保存,並定期巡檢從機,當發現有新的從機接入時,讀取主機記憶體103中已經分配的從機地址,自動按照順序增加,產生新地址,並分配給該新接入的從機;主機記憶體103用於自動保存由主機100分配給各對應從機的地址,並提供給主機MCU微控制器101讀取;主機初始化開關104與主機MCU微控制器101相連,用於在被按下後啟動初始化動作。初始化動作包括:所有從機地址設定為一預定值,比如0xFF、為網中所有從機分配地址並記錄保存入主機記憶體103。在該實施例中,主機初始化開關104是JP跳線開關或觸發按鍵開關,主機記憶體103是快閃記憶體。然而應當理解,主機初始化開關104不限於上述類型的開關,也可以是撥動開關等任何合適類型的開關。同樣地,主機記憶體103也不局限於上述類型的記憶體,而可以是任何合適類型的記憶體。主機記憶體較佳是非易失性記憶體,包括但不限於軟碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦除可編程唯讀記憶體(EPROM或快閃記憶體)等。同樣地,主機控制器101也不限於MCU微控制器,而可以是任何合適類型的控制器。此外,主機控制器101還可以連接一個報警裝置(未示出),用於在通訊故障時發出聲和/或光報警。
主機控制器可以包括以下的功能模組:初始化命令單元,用於在主機初始化開關被按下後,向從機發送初始化命令;地址分配命令發送單元,用於向從機發送地址分配命令。主機控制器還可以包括巡檢模組,用於定期向從機發送巡檢命令。主機控制器還可以包括異常處理模組,用於當巡檢模組發現有附加從機接入時,調用地址分配命令單元,向附加從機發送地址分配命令。主機控制器還可以包括地址檢查命令發送單元,用於向從機發送地址檢查命令。
第4圖是根據本發明的實施例的從機200的結構示意圖。如圖所示,從機200包括從機控制器201(比如MCU微控制器)、從機通訊模組202、從機記憶體203、電子物理開關205、以及從機初始化開關204。在該實施例中,電子物理開關205是繼電器(常閉合,選常閉合的目的是當從機沒開機或故障的時候,不會影響到其他從機的通訊,相當於這台從機沒有掛接在匯流排上),從機初始化開關是JP跳線。應當理解的是,電子物理開關205以及從機初始化開關204並不限於上述類型,而可以是任何合適的類型。同樣地,從機控制器201也不限於MCU微控制器,而可以是任何合適類型的控制器。從機通訊模組202分別與從機MCU微控制器201和雙絞線相連,雙絞線經過繼電器205後輸出;從機記憶體203用於存儲從機200被分配的地址;繼電器205在從機MCU微控制器201的控制下執行通斷,其默認態是閉合的,這樣當從節點出現故障而沒法開機或者沒法初始化的時候,並不影響其他設備的正常通訊;從機初始化開關204,在該實施例中是JP跳線,用於基於從機MCU微控制器201的控制初始化地址,比如在設備維修後需要初始化地址為出廠設置。由於繼電器205位於從機通訊模組202的下游,這樣,當繼電器205斷開時,就斷開了與下一個從機的通信,但該從機仍可以通過該從機的從機通訊模組202與主機通信。
從機控制器可以包括以下的功能模組:初始化命令執行單元,用於在初始化開關被啟動後,或收到主機發送的初始化命令後,斷開電子物理開關,並將自身地址設置為初始值;地址分配命令發送單元,用於在收到主機發送的地址分配命令,使用地址分配命令中的地址取代分配前的地址,並回復應答,同時接通電子物理開關。從機控制器還可以包括地址檢查命令應答單元,用於在收到主機發送的地址檢查命令後,回復應答。
第5圖是根據本發明的一個實施例的智慧地址分配方法的流程圖。如圖所示,系統工作開始於步驟502,此時主機和從機均開始上電運行。在步驟504,按下主機初始化開關104,主機100的主機控制器101的初始化命令單元向從機200發送初始化命令,使所有從機200的從機控制器的初始化命令執行單元動作,斷開繼電器205,並將從機地址都設定成一預定值,例如0xff。在一個實施例中連續發送20次初始化命令,以確保從機收到。然後,在步驟506,主機100的主機控制器101的地址分配命令發送單元向從機200發送有效分配地址,未分配地址的從機200的從機控制器的地址分配命令發送單元收到後,使用該分配地址取代0xff並閉合繼電器回復應答,如果有應答,則進入步驟508,等待從機應答或者到達一預定等待時間,比如100ms,如果有應答則將有效分配地址按預定順序增加(比如增加1),並再次進入步驟506,這時前一個分配好地址的從機也收到主機向從機發送的分配地址,但是比對地址不是自己分配的地址,所以並不回應,而和該從機最接近的另外一個從機的從機控制器的地址分配命令發送單元在收到分配地址的命令後,保存該地址並閉合繼電器回復應答。如果在步驟506迴圈多次(例如,10次)仍無應答,則認為全部從機都已被分配地址,則進入步驟510,自動地址分配過程完全結束。
第6圖是根據本發明的另一個實施例的智慧地址分配方法的流程圖。如圖所示,系統工作開始於步驟602,此時主機和從機均開始上電運行。在步驟604,系統中的主機100通過檢查主機初始化開關104(跳線開關狀態或按鍵狀態)判斷是否需要系統初始化,例如,系統自動設置當主機初始化開關為1時,需要進行初始化,主機初始化開關為0時,不需要進行初始化。也就是說,如果主機初始化開關為1,則系統進入步驟610,此時主機100的主機控制器101的初始化命令單元連續多次向從機200發送地址分配群發命令,使所有從機200的從機控制器的初始化命令執行單元動作,斷開繼電器205,並將從機地址都設定成一預定值,例如0xff,在一個實施例中連續發送了20次,以確保從機收到。如果主機初始化開關為0,則系統進入步驟606,此時系統從指定存儲區域讀出已經分配的從機地址佇列,並接著進入步驟608,進入正常通信程式,並對從機進行巡檢。應當理解,系統也可以進行相反的設置。然後,在步驟612,由於原來的匯流排在物理上都被切斷,但是總有一個節點是唯一和主機連接的(最近的節點),所以主機100的主機控制器101的地址檢查命令發送單元向最近的一台從機200發送地址檢查命令,其中攜帶的目標地址為0xff,地址為0xff的從機的從機控制器的地址檢查命令應答單元收到後回復應答,並且如果經過一預定時間,比如30秒主機沒有收到從機的應答,則報警,否則就進入步驟614,等待從機應答或者等待一預定時間,例如100ms。如果在步驟614,從機有應答,則進入步驟616,系統發送準備分配的有效從機地址,否則,返回步驟612。在步驟618,主機的主機控制器101的地址分配命令發送單元向從機發送有效分配地址,其中攜帶正式分配的地址,未分配地址的從機200的從機控制器的地址分配命令發送單元收到後,使用該正式分配的地址取代0xff並閉合繼電器205回復應答,如果有應答,則將有效分配地址按預定順序(比如增加1),並再次進入步驟616,這時前一個分配好地址的從機也收到主機向從機發送的分配地址,但是比對地址不是自己分配的地址,所以並不回應,而和該從機最接近的另外一個從機的從機控制器的地址分配命令發送單元在收到分配地址的命令後,保存該地址並閉合繼電器205回復應答。如果在步驟618迴圈多次(例如,10次)仍無應答,則認為全部從機都已被分配地址,則進入步驟620,系統地址分配結束,保存分配的從機最大地址並提示自動分配成功。
第7圖是根據本發明的另一個實施例的智慧地址分配方法的流程圖。如圖所示,系統工作開始於步驟702,此時主機和從機均開始上電運行。在步驟704,系統中的主機100通過檢查主機初始化開關104(跳線開關狀態或按鍵狀態)判斷是否需要系統初始化,例如,系統自動設置當初始化開關為1時,需要進行初始化,主機初始化開關為0時,不需要進行初始化。也就是說,如果主機初始化開關為1,則系統進入步驟710,此時系統開始讀取從機的總數量。如果主機初始化開關為0,則系統進入步驟706,此時系統從指定存儲區域讀出已經分配的從機地址佇列,並接著進入步驟708,進入正常通信程式,並對從機進行巡檢。應當理解,系統也可以進行相反的設置。在步驟712,此時主機100的主機控制器101的初始化命令單元連續多次向從機200發送地址分配群發命令,使所有從機的從機控制器的初始化命令執行單元動作,斷開繼電器205,並將從機地址都設定成0xff,在一個實施例中連續發送了20次,以確保從機收到。然後,在步驟714,由於原來的匯流排在物理上都被切斷,但是總有一個節點是唯一和主機連接的(最近的節點),所以主機100的主機控制器101的地址檢查命令發送單元向最近的一台從機200發送地址檢查命令,其中攜帶的目標地址為0xff,地址為0xff的從機的從機控制器的地址分配命令發送單元收到後回復應答,並且如果經過一預定時間,比如30秒主機沒有收到從機的應答,則報警,否則就進入步驟716,等待從機應答或者等待一預定時間,例如100ms。如果在步驟716,從機有應答,則進入步驟718,否則,返回步驟714。在步驟718,主機的主機控制器101的地址分配命令發送單元向從機發送準備分配的有效從機地址,其中攜帶正式分配的地址,未分配地址的從機200的從機控制器的地址分配命令發送單元收到後,使用該正式分配的地址取代0xff並閉合繼電器205回復應答。在步驟720,系統再次等待從機應答或者100ms的時間,如果無應答,則返回716,否則進入步驟722。在步驟722,系統判斷“有效分配地址<SlaveNum>”是否成立,如果成立,則將有效地址增加1,並再次進入步驟720,否則,進入步驟724,系統地址分配結束,保存分配的從機最大地址並提示自動分配成功。
第8圖是根據本發明的一個實施例的從機的初始化流程圖。當在網路中接入新的從機200時,在步驟802,從機200上電。進而在步驟804,從機200通過檢查從機初始化開關204判斷是否需要系統初始化,例如,系統自動設置當從機初始化開關為1時,需要進行初始化,從機初始化開關為0時,不需要進行初始化。也就是說,如果從機初始化開關為1,則系統進入步驟810,此時從機的從機控制器的初始化命令執行單元將其記憶體203設定為出廠設置值,例如0xff,並斷開繼電器205,等待分配地址。如果從機初始化開關為0,則系統進入步驟806,判斷地址是否已經分配,進而進入步驟808轉入正常通訊模式。應當理解,系統也可以進行相反的設置。
當原有網路中需要插入新從機200時,只需將從機的初始化開關204打開,恢復默認0xff設置,該從機便會等待地址分配命令,斷開繼電器205開關,然後直接插入新接入的網路並再次按下主機初始化開關104,就可重新自動完成對全部從機的智慧地址分配。較佳地,在插入新從機時就無需再次按下主機初始化開關104即可對新插入的從機分配地址。為此,主機的主機控制器的巡檢模組可以設置成在巡檢時發送的命令中加入0xFF設備搜索命令。主機也可以設置成在所有正常通訊結束後,在匯流排空閒時候,單獨再發一條詢問0xFF地址的命令。正常通訊的週期根據不同的系統條件而不同,比如該週期可以為10秒。兩種方法都可以被用來對新插入的從機分配地址。下面以利用主機定期巡檢、在巡檢時發送的命令中加入0xFF設備搜索命令的方案為例進行說明。首先將新從機的初始化開關打開,恢復默認0xff設置,當主機巡檢時,主機控制器的巡檢模組發送0xFF設備搜索命令時就會收到回應,則表明有新從機插入,接著主機的主機控制器的異常處理模組調用地址分配命令單元,開始對新從機分配地址,直到對所有新從機分配完成。在一個實施例中,主機在已經分配地址號的基礎上順序增加地址號碼,分配給新增加的從機。上述主機所發送的巡檢命令可定期發送,其中攜帶的目標地址分別為各從機地址,也包括一個0xff地址。利用該較佳實施方案不需要知道當前網路裏面的地址是多少,主機即可智慧完成新從機的插入,而不影響其他從機的通訊。
下面結合通訊協定棧進一步說明本發明。其中資料幀格式由二十三位元組組成,具體的資料幀格式如下:
其中各個位元組分別表示:
STX:0x02,該值僅為示例性數值,應當理解,可以是其他值;
CMD:資料格式類型;
Dest Addr:資料發送的目標地址;
Source Addr:資料發送的源地址;
DATA:16位元組發送資料;
CHECK:CRC16校驗,CRC初值為0xFFFF;
ETX:0x03,該值僅為示例性數值,應當理解,可以是其他值。
假設有一台主機(host),三台從機(slave)1、2、3,組成一個控制網路,並且作為示例性實施例,主機為從機分配的地址從0x01開始。各從機中的繼電器的常態為閉合態。應當理解,從機的地址並不僅限於從0x01開始,其可以選自0x00~0xFF中的任意一個。
當該網路中沒有插入新的從機時,如果主機上的初始化開關被按下,則主機自動進入初始化過程:
1、主機發送初始化命令:
STX+0x5A+0xFF+0x00+Data+CRC16+ETX
(Data任意)
連續發送5秒,在三個從機都收到有效信息後,延遲3秒斷開繼電器,同時將自身地址設置為0xff。
2、主機隨後發送地址檢查命令
STX+0x5B+0xFF+0x00+Data+CRC16+ETX
(Data任意)
這時,由於所有繼電器都斷開,只有從機1通過其從機通訊模組與主機相連,可以收到該地址檢查命令,且地址為0xFF,因此,從機1向主機發送應答:
STX+0xA5+0x00+0xFF+Data+CRC16+ETX
(Data任意)
其中,目標地址0x00位置為主機地址,源地址0xFF位置為從機地址。
3、主機收到從機1應答後,發送正式地址分配命令:
STX+0x5C+0x01+0x00+Data+CRC16+ETX
(Data任意)
其中目標地址為0x01,表示由0x01開始分配;
從機1收到該命令後,向主機發送確認應答:
STX+0xA6+0x00+0x01+Data+CRC16+ETX
(Data任意)
並同時閉合繼電器,接通下一台從機2。
4、主機收到從機2應答後,發送正式地址分配命令:
STX+0x5C+0x02+0x00+Data+CRC16+ETX
(Data任意)
從機1收到該命令後,將其中的地址與自己已被分配的地址對比,發現地址不匹配,忽略且不回應;從機2收到後,保存該地址(即將0xff替換為該地址)並向主機發送確認應答:
STX+0xA6+0x00+0x02+Data+CRC16+ETX
(Data任意)
並同時閉合繼電器,接通下一台從機3。
5、主機收到從機3應答後,發送正式地址分配命令:
STX+0x5C+0x03+0x00+Data+CRC16+ETX
(Data任意)
從機1、從機2收到該命令後,其中地址與自己被分配的地址不匹配,忽略且不回應;從機3收到後,保存該地址並向主機發送確認應答:
STX+0xA6+0x00+0x03+Data+CRC16+ETX
(Data任意)
並同時閉合繼電器。
6、主機再次向從機發送正式地址分配命令:
STX+0x5C+0x04+0x00+Data+CRC16+ETX
(Data任意)
連續發送10次,沒有回應,地址分配結束。
應當理解的是,地址分配命令的格式不限於上述格式,而可以是任意適合的格式,例如可以採用用Data位攜帶分配地址的格式。
STX+0x5C+0xff+0x00+Addr+CRC16+ETX
地址為0xff的從機收到該命令後,使用Addr替換0xff,並發送確認應答,同時接通下一台從機通訊:
STX+0xA6+0x00+Addr+Data+CRC16+ETX
(Data任意)
接下來,主機再次發送地址分配命令:
STX+0x5C+0xff+0x00+(Addr+1)+CRC16+ETX
第一台從機收到後,對比0xff不是自己的地址,因此不應答,第二台從機收到後,發現是發給自己的,則使用Addr+1替換0xff,並應答,同時接通下一台從機:
STX+0xA6+0x00+(Addr+1)+Data+CRC16+ETX
(Data任意)
以這樣的方式也可以實現連續的地址分配。
還應當理解的是,如果為了簡化設計,在一個實施例中,在初始化步驟之後不進行地址檢查,而可直接進行地址分配。在另一實施例中,可以在每次地址分配前都進行一次地址檢查。
當在該網路中的從機3之後順序接入一個新從機4時,首先在接入從機4前,按下從機4的初始化開關,恢復出廠默認0xff設置,然後直接插入網路。在從機4上電後,檢查到初始化開關被按下,則從機4啟動初始化,斷開繼電器,等待地址分配。
1、主機在巡檢時,會插入搜尋0xff從機的命令:
STX+0x5B+0xFF+0x00+Data+CRC16+ETX
(Data任意)
從機1、2、3收到該命令後,其中地址與自己被分配的地址不匹配,忽略;從機4收到後,向主機發送確認應答:
STX+0xA5+0x00+0xFF+Data+CRC16+ETX
(Data任意)
2、主機收到從機4應答後,發送正式地址分配命令:
STX+0x5C+0x04+0x00+Data+CRC16+ETX
(Data任意)
從機1、從機2和從機3收到該命令後,其中地址與自己被分配的地址不匹配,忽略;從機4收到後,保存該地址並向主機發送確認應答:
STX+0xA6+0x00+0x04+Data+CRC16+ETX
(Data任意)
3、主機再次向從機發送正式地址分配命令:
STX+0x5C+0x05+0x00+Data+CRC16+ETX
(Data任意)
連續發送10次,沒有回應,地址分配結束。
當在該網路中的從機1和從機2之間增加一個新從機5,同時在從機3和從機4之間增加一個新從機6時,首先在接入從機5、從機6前,按下從機5、從機6的初始化開關,恢復出廠默認0xff設置,然後直接插入網路。在從機5、從機6上電後,檢查到初始化開關被按下,則從機5、從機6啟動初始化,斷開繼電器,等待地址分配。由於從機6位於從機5之後,所以在從機5的繼電器已經斷開的情況下,與主機相連的地址為0xff的從機只有從機5,也就是說,系統中時刻只有不多於一個地址為0xff的從機與主機相連。
1、主機在巡檢時,會插入搜尋0xff從機的命令:
STX+0x5B+0xFF+0x00+Data+CRC16+ETX
(Data任意)
從機1收到該命令後,其中地址與自己被分配的地址不匹配,忽略;從機5收到後,向主機發送確認應答:
STX+0xA5+0x00+0xFF+Data+CRC16+ETX
(Data任意)
2、主機收到從機5應答後,發送正式地址分配命令:
STX+0x5C+0x05+0x00+Data+CRC16+ETX
(Data任意)
從機1收到該命令後,其中地址與自己被分配的地址不匹配,忽略;從機5收到後,保存該地址並向主機發送確認應答:
STX+0xA6+0x00+0x05+Data+CRC16+ETX
(Data任意)
並同時閉合繼電器,接通從機6。
3、主機收到從機5應答後,發送正式地址分配命令:
STX+0x5C+0x06+0x00+Data+CRC16+ETX
(Data任意)
從機1、從機5、從機2和從機3收到該命令後,其中地址與自己被分配的地址不匹配,忽略;從機6收到後,保存該地址並向主機發送確認應答:
STX+0xA6+0x00+0x06+Data+CRC16+ETX
(Data任意)
4、主機再次向從機發送正式地址分配命令:
STX+0x5C+0x07+0x00+Data+CRC16+ETX
(Data任意)
連續發送10次,沒有回應,地址分配結束。
從以上示例性的說明可以看出,無論何時哪些從機的電子開關斷開,未分配地址的從機中,時刻只有一台可以與主機通信,而該從機必然是與主機最為鄰近的未分配地址從機。
應當理解的是,本發明並不限於上述較佳實施方案中所公開的具體形式。例如,本發明也適用於多主多從系統,在這樣的系統中,將有一個主站完成地址分配,其餘的主站可以不參加地址分配或被當作某一個特殊的從站(具有某種特殊的標記)對待。
儘管已經參照本發明的特定實施方案顯示並描述了本發明,但是本領域的普通技術人員將理解,在不偏離本發明的精神和範圍的情況下,可以在其中進行前述以及其他形式和細節變化,包括但不限於添加、減少或修改元件或以等同物進行替代,和/或添加、減少或修改以相同或不同順序執行的步驟。
100...主機
101...主機控制器
102...主機通訊模組
103...主機記憶體
104...主機初始化開關
200...從機
201...從機控制器
202...從機通訊模組
203...從機記憶體
204...從機初始化開關
205...電子物理開關
300...匯流排
當結合下面的附圖思考下面所公開實施方案的詳細描述的時候,可以獲得對本發明更好的理解,其中:
第1a圖是現有技術中的RS485匯流排的網路結構;
第1b圖是現有技術中的主機的結構示意圖;
第1c圖是現有技術中的從機的結構示意圖;
第2圖是根據本發明的實施例的智慧地址分配系統的網路結構;
第3圖是根據本發明的實施例的主機的結構示意圖;
第4圖是根據本發明的實施例的從機的結構示意圖;
第5圖是根據本發明的一個實施例的智慧地址分配方法的流程圖;
第6圖是根據本發明的另一個實施例的智慧地址分配方法的流程圖;以及
第7圖是根據本發明的另一個實施例的智慧地址分配方法的流程圖。
第8圖是根據本發明的一個實施例的從機的初始化流程圖。
100...主機
200...從機
205...電子物理開關
300...匯流排
Claims (39)
- 一種串列匯流排系統中的地址分配方法,該串列匯流排系統包括至少一個主機和至少一個從機,該方法包括下列步驟:a.在串列匯流排中為該至少一個從機中的每一個設置電子物理開關,以控制每一該從機和與其相鄰的下一該從機之間的線路通斷;b.斷開該至少一個從機中的每一個的電子物理開關;c.由該主機為最相鄰的待分配地址的從機分配地址後,閉合該從機的電子開關;d.該主機定期向該至少一個從機發送一巡檢命令;其中該巡檢命令包括各從機地址及初始值地址,使得在該串列匯流排系統中新增至少一個附加從機時,該新增附加從機可與該巡檢命令之該初始值地址匹配,並向該主機發送確認應答。
- 根據申請專利範圍第1項之地址分配方法,其中重複步驟c直至對全部從機完成地址分配。
- 根據申請專利範圍第1項之地址分配方法,其中在步驟b中,主機向從機發送初始化命令,以斷開電子物理開關。
- 根據申請專利範圍第1項之地址分配方法,其中在步驟c之前還包括下列步驟:主機向從機發送地址檢查命令,與 該地址檢查命令中的檢查地址匹配的從機向主機發送確認應答。
- 根據申請專利範圍第1項之地址分配方法,進一步包括:e.在該串列匯流排系統中增加至少一個附加從機;f.初始化該附加從機,以斷開該附加從機的電子物理開關,並設置附加從機地址為初始值;g.與該巡檢命令中的為初始值的地址匹配的附加從機向主機發送確認應答,保存該地址並閉合該附加從機的該電子物理開關。
- 根據申請專利範圍第5項之地址分配方法,其中重複步驟g直至對全部附加從機完成地址分配。
- 根據申請專利範圍第1項之地址分配方法,進一步包括判定有效分配地址是否小於從機數量的步驟。
- 根據申請專利範圍第1項之地址分配方法,其中該從機地址的初始值是0xFF。
- 根據申請專利範圍第1項之地址分配方法,其中該電子物理開關是繼電器。
- 一種用於串列匯流排系統中的主機,該串列匯流排系統 還包括至少一個從機,該主機包括:控制器;通信模組,與該控制器相連,用於向該至少一個從機發送資料和從該至少一個從機接收資料;記憶體,與該控制器相連,用於存取該至少一個從機的地址資料;和初始化開關,與該控制器相連,用於當該初始化開關被啟動時啟動初始化操作;其中該控制器包括巡檢模組,用於定期向該至少一個從機發送一巡檢命令,其中該巡檢命令包括該至少一個從機的地址及初始值地址,使得在該串列匯流排系統中新增至少一個附加從機時,該新增附加從機可與該巡檢命令之該初始值地址匹配,並向該主機發送確認應答。
- 根據申請專利範圍第10項之主機,其中該控制器包括:初始化命令單元,用於在該初始化開關被按下後,向該至少一個從機發送初始化命令;地址分配命令發送單元,用於向該至少一個從機發送地址分配命令。
- 根據申請專利範圍第10項之主機,其中該控制器還包括異常處理模組,用於當該巡檢模組發現有附加從機接入時,調用地址分配命令單元,向該附加從機發送地址分配命令。
- 根據申請專利範圍第11項之主機,其中該控制器還包括地址檢查命令發送單元,用於向該至少一個從機發送地址檢查命令。
- 根據申請專利範圍第10項之主機,其中該通信模組是RS485通信模組。
- 根據申請專利範圍第10項之主機,其中該記憶體是非易失性記憶體。
- 根據申請專利範圍第10項之主機,其中該初始化開關是JP跳線開關或觸發按鍵開關。
- 一種用於串列匯流排系統中的從機,該串列匯流排系統還包括至少一個主機,該從機包括:控制器;通信模組,與該控制器相連,用於向該至少一個主機發送資料和從該至少一個主機接收資料;記憶體,與該控制器相連,用於存取該從機的地址資料;電子物理開關,連接於串列匯流排中並位於通信模組的下游;和初始化開關,與該控制器相連,用於當該初始化開關 被啟動時啟動初始化操作。
- 根據申請專利範圍第17項之從機,其中該控制器包括:初始化命令執行單元,用於在該初始化開關被啟動後,或收到該至少一個主機發送的初始化命令後,斷開該電子物理開關,並將自身地址設置為初始值;地址分配命令發送單元,用於在收到該至少一個主機發送的地址分配命令,使用地址分配命令中的地址取代分配前的地址,並回復應答,同時接通該電子物理開關。
- 根據申請專利範圍第18項之從機,其中該控制器還包括地址檢查命令應答單元,用於在收到該至少一個主機發送的地址檢查命令後,回復應答。
- 根據申請專利範圍第17項之從機,其中該通信模組是RS485通信模組。
- 根據申請專利範圍第17項之從機,其中該記憶體是非易失性記憶體。
- 根據申請專利範圍第17項之從機,其中該初始化開關是JP跳線開關或觸發按鍵開關。
- 根據申請專利範圍第17項之從機,其中該電子物理開 關是繼電器。
- 一種智慧地址分配系統,該系統包括:至少一個主機;至少一個從機;包括雙線的串列匯流排;其中該至少一個從機中的每一個包括電子物理開關,並且其中串列匯流排的雙線從主機引出,依次經過該至少一個從機中的每一個的電子物理開關;其中該至少一個主機中的每一個包括:主機控制器;主機通信模組,與該主機控制器相連,用於向該至少一個從機發送資料和從該至少一個從機接收資料;主機記憶體,與該主機控制器相連,用於存取該至少一個從機的地址資料;和主機初始化開關,與該主機控制器相連,用於當該主機初始化開關被啟動時啟動初始化操作。
- 根據申請專利範圍第24項之系統,其中該主機控制器包括:初始化命令單元,用於在該主機初始化開關被按下後,向該至少一個從機發送初始化命令;主機地址分配命令發送單元,用於向該至少一個從機發送地址分配命令。
- 根據申請專利範圍第25項之系統,其中該主機控制器還包括巡檢模組,用於定期向該至少一個從機發送巡檢命令,其中該巡檢命令包括該至少一個從機的地址。
- 根據申請專利範圍第26項之系統,其中該巡檢命令還包括為初始值的地址。
- 根據申請專利範圍第27項之系統,其中該主機控制器還包括異常處理模組,用於當巡檢模組發現有附加從機接入時,調用地址分配命令單元,向該附加從機發送地址分配命令。
- 根據申請專利範圍第24項之系統,其中該主機控制器還包括地址檢查命令發送單元,用於向該至少一個從機發送地址檢查命令。
- 根據申請專利範圍第24項之系統,其中該主機通信模組是RS485通信模組。
- 根據申請專利範圍第24項之系統,其中該主機記憶體是非易失性記憶體。
- 根據申請專利範圍第24項之系統,其中該主機初始化 開關是JP跳線開關或觸發按鍵開關。
- 根據申請專利範圍第24項之系統,其中該至少一個從機中的每一個包括:從機控制器;從機通信模組,與該從機控制器相連,用於向該至少一個主機發送資料和從該至少一個主機接收資料;從機記憶體,與該從機控制器相連,用於存取該從機的地址資料;電子物理開關,連接於串列匯流排中並位於通信模組的下游;和從機初始化開關,與該從機控制器相連,用於當該從機初始化開關被啟動時啟動初始化操作。
- 根據申請專利範圍第33項之系統,其中該從機控制器包括:初始化命令執行單元,用於在該從機初始化開關被啟動後,或收到該至少一個主機發送的初始化命令後,斷開該電子物理開關,並將該從機地址設置為初始值;從機地址分配命令發送單元,用於在收到該至少一個主機發送的地址分配命令,使用地址分配命令中的地址取代分配前的地址,並回復應答,同時接通電子物理開關。
- 根據申請專利範圍第34項之系統,其中該從機控制器 還包括地址檢查命令應答單元,用於在收到該至少一個主機發送的地址檢查命令後,回復應答。
- 根據申請專利範圍第33項之系統,其中該從機通信模組是RS485通信模組。
- 根據申請專利範圍第33項之系統,其中該從機記憶體是非易失性記憶體。
- 根據申請專利範圍第33項之系統,其中該從機初始化開關是JP跳線開關或觸發按鍵開關。
- 根據申請專利範圍第33項之系統,其中該電子物理開關是繼電器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97144928A TWI470441B (zh) | 2008-11-20 | 2008-11-20 | Method and system of intelligent address allocation based on tandem bus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97144928A TWI470441B (zh) | 2008-11-20 | 2008-11-20 | Method and system of intelligent address allocation based on tandem bus |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201020797A TW201020797A (en) | 2010-06-01 |
TWI470441B true TWI470441B (zh) | 2015-01-21 |
Family
ID=44832375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97144928A TWI470441B (zh) | 2008-11-20 | 2008-11-20 | Method and system of intelligent address allocation based on tandem bus |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI470441B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI495969B (zh) * | 2013-05-08 | 2015-08-11 | Pegatron Corp | 站位順序自動偵測方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583754A (en) * | 1994-02-17 | 1996-12-10 | Heidelberger Druckmaschinen Ag | Method and device for configuring functional units in a serial master-slave arrangement |
US20060282549A1 (en) * | 2002-12-20 | 2006-12-14 | Thomas Vinnemann | Automatic addressing on bus systems |
TW200842588A (en) * | 2007-01-29 | 2008-11-01 | Microsemi Corp Analog Mixed Si | Addressable serial peripheral interface |
-
2008
- 2008-11-20 TW TW97144928A patent/TWI470441B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583754A (en) * | 1994-02-17 | 1996-12-10 | Heidelberger Druckmaschinen Ag | Method and device for configuring functional units in a serial master-slave arrangement |
US20060282549A1 (en) * | 2002-12-20 | 2006-12-14 | Thomas Vinnemann | Automatic addressing on bus systems |
TW200842588A (en) * | 2007-01-29 | 2008-11-01 | Microsemi Corp Analog Mixed Si | Addressable serial peripheral interface |
Also Published As
Publication number | Publication date |
---|---|
TW201020797A (en) | 2010-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010009584A1 (en) | Method and system for smart address assignment based on serial bus | |
US7562164B2 (en) | Remote terminal apparatus for programmable controller | |
CN100483966C (zh) | 控制家用自动系统启动的设备和方法 | |
US9100397B2 (en) | BACnet MS/TP automatic MAC addressing | |
US20140223048A1 (en) | Communication network and method for communicating in a communication network | |
KR20030024262A (ko) | 전력선을 이용한 통신망에서의 식별자중복사용을 검출하고조치하는 방법과, 그러한 통신망의 서브넷에 연결되는전기전자응용기기 및, 그러한 전기전자응용기기에이용되는 통신모듈 | |
CN103490906B (zh) | 供电处理方法和装置及供电系统 | |
US11159369B2 (en) | Automatic initialization routine in an automation system | |
JP2008099482A (ja) | 組電池ブロックならびに電池パックシステムおよびそのアドレス設定方法 | |
CN118300918B (zh) | 一种电能表系统 | |
US8816831B2 (en) | Pairing PLC devices | |
CN105140886A (zh) | 继电保护系统和利用其来收集数据的方法 | |
CN114866365B (zh) | 仲裁机选举方法、装置、智能设备及计算机可读存储介质 | |
US10467024B2 (en) | System and method for bus arrangement communications | |
TWI470441B (zh) | Method and system of intelligent address allocation based on tandem bus | |
US9959231B2 (en) | Data bus coupler and method of operation | |
TWI697161B (zh) | 含有多數功能模組的系統及其功能模組編址方法 | |
WO2019119740A1 (zh) | 家用电器的通信系统、通信方法以及家用电器 | |
CN109525313B (zh) | 一种可见光通信系统及方法 | |
CN112764385A (zh) | 小型plc总线的实现系统及方法 | |
JP4023342B2 (ja) | フィールドバスシステムにおける二重アドレス検知方法及びスレーブ並びにマスタ及びフィールドバス | |
JPWO2020230316A1 (ja) | マルチホップネットワークを構成する通信端末、及びマルチホップネットワーク | |
CN114599038B (zh) | 多联机系统的配对方法、配对系统和多联机系统 | |
KR20070086481A (ko) | 기기, 특히 가전 기기를 위한 초기화 과정 또는 기록과정을 실행하기 위한 방법 및 회로 장치 | |
JP4458278B2 (ja) | 通信サイクル制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |