專利名稱:一種小型can總線網(wǎng)絡(luò)組網(wǎng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及CAN總線技術(shù)領(lǐng)域,尤其涉及一種小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法。
技術(shù)背景
CAN即控制器局域網(wǎng)絡(luò),屬于工業(yè)現(xiàn)場總線的范疇。與一般的通信總線相比,CAN 總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特的設(shè)計, CAN總線越來越受到人們的重視。其應(yīng)用范圍目前已不再局限于汽車行業(yè),而向自動控制、 航空航天、航海、過程工業(yè)、機械工業(yè)、紡織機械、農(nóng)用機械、機器人、數(shù)控機床、醫(yī)療器械及傳感器等領(lǐng)域發(fā)展。
一般在組成CAN網(wǎng)絡(luò)時,需要先定義好CAN網(wǎng)絡(luò)中每個節(jié)點的ID,這樣使得CAN網(wǎng)絡(luò)的建立需要大量的準備時間,需要有專業(yè)人員設(shè)置好每個節(jié)點的ID。對于一般的CAN網(wǎng)絡(luò),用戶無法使自行完成CAN網(wǎng)絡(luò)中ID的分配。
雖然現(xiàn)有的CAN組網(wǎng)的方法中,也可由網(wǎng)絡(luò)分配ID,但多采用一個主機來管理和分配地址,各個節(jié)點需要依次連接到網(wǎng)絡(luò),在節(jié)點接入過程中容易在網(wǎng)絡(luò)中引入干擾,組網(wǎng)復雜度較高,操作較不方便。發(fā)明內(nèi)容
本發(fā)明的目的在于針對上述問題而設(shè)計了一種能自行分配ID,實現(xiàn)CAN網(wǎng)絡(luò)通訊的小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法,主要針對網(wǎng)絡(luò)節(jié)點數(shù)目較少的場合,本方法無需主機分配地址,各個節(jié)點在組網(wǎng)時都已經(jīng)接入CAN總線網(wǎng)絡(luò),不需要依次連接到網(wǎng)絡(luò),算法簡單, 操作簡單,在現(xiàn)有硬件條件下只需加入簡單代碼就可以實現(xiàn)本方法。
為實現(xiàn)上述目的,本發(fā)明采用如下方法一種小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法,它的步驟為第一步,CAN網(wǎng)絡(luò)中各個節(jié)點的ID均為初始值ID0,選定其中一個為起始的目標節(jié)點, 然后在CAN網(wǎng)絡(luò)上廣播發(fā)送生成ID的命令;由于節(jié)點初始值均為ID0,所以CAN通訊模塊可以批量生產(chǎn),裝配簡單,無需像傳統(tǒng)組網(wǎng)那樣,需要提前設(shè)定好每個節(jié)點的ID。由于各個節(jié)點的CAN通訊模塊并無差異,所以起始的目標節(jié)點可以按用戶的需要選定,無任何限制, 而現(xiàn)有的能自行分配ID的網(wǎng)絡(luò)中,都采用一個專門用來管理和分配ID的節(jié)點,這個節(jié)點是唯一確定的,在實際安裝網(wǎng)絡(luò)中很不方便。
第二步,其他節(jié)點在接收到生成ID的命令后,開始隨機生成一個整數(shù)作為自己的 ID,各個節(jié)點生成自己的ID后,把IDO作為目標地址,將自己新ID發(fā)送出去;由于節(jié)點初始 ID都為ID0,所以目標節(jié)點發(fā)送的生成ID的命令,各個節(jié)點在同一時間均可接收到,然后利用隨機數(shù)函數(shù)生成自己的ID。較之用固定的管理節(jié)點來對依次接入網(wǎng)絡(luò)的節(jié)點進行ID的分配,可以節(jié)約大量的時間,且通訊穩(wěn)定性好,不會因節(jié)點的依次接入而引入干擾;算法簡單可靠,直接調(diào)用現(xiàn)有的隨機數(shù)函數(shù)即可。
第三步,IDO節(jié)點將接收到的ID號碼加上IDO組成一個ID表;起始的目標節(jié)點暫時對網(wǎng)絡(luò)中的ID進行管理,可以快速的判斷出組網(wǎng)是否成功。固定的管理節(jié)點需要時時刻刻的對總線進行監(jiān)聽,這樣不僅浪費資源,而且還大量占用總線時間,降低有效通訊。與采用固定的管理節(jié)點不同,起始的目標節(jié)點只是被動的接收各個節(jié)點發(fā)送來的數(shù)據(jù),全部為有益通訊,總線利用率高,而且只是暫時管理ID表。
第四步,IDO節(jié)點將生成的ID表發(fā)送給各個其他節(jié)點,至此CAN網(wǎng)絡(luò)ID分配完成。 將完整的ID表發(fā)送給其他各個節(jié)點,從而取消了起始的目標節(jié)點的差異性,使網(wǎng)絡(luò)中各個節(jié)點的地位均相同,使用固定的管理節(jié)點的網(wǎng)絡(luò),這一管理節(jié)點始終處于管理者的地位,其他節(jié)點均受到管理。
所述第三步中,如果各個節(jié)點隨機生成的ID號均不一樣,則ID表中含有N個不相同的ID號,則表示ID分配成功,進入第四步。
所述第三步中,如果生成的ID表中出現(xiàn)相同的ID,或者ID表中ID的數(shù)目少于N, IDO節(jié)點則按照當前的ID表重發(fā)生成ID的命令,跳至第二步繼續(xù)進行。
本發(fā)明是針對小型的CAN網(wǎng)絡(luò)提出的組網(wǎng)方法,具體說是針對節(jié)點數(shù)50以內(nèi)的 CAN網(wǎng)絡(luò)的組網(wǎng)方法。它先將CAN網(wǎng)絡(luò)中各節(jié)點的地址一致化,然后從中選擇一個節(jié)點作為起始的目標節(jié)點,隨即向CAN網(wǎng)絡(luò)發(fā)布ID生成信息,除目標節(jié)點外的其余各節(jié)點都會自動生成一個地址,并向目標節(jié)點發(fā)送自己的地址,為防止沖突出現(xiàn),只有當所有節(jié)點發(fā)布的自己地址不同時,組網(wǎng)才算成功,只要有任何兩個或多個節(jié)點的地址出現(xiàn)相同,則本次組網(wǎng)失敗,將重新進行組網(wǎng)操作。
本發(fā)明的有益效果是1)方法實現(xiàn)簡單,從而降低了開發(fā)成本,只需加入簡單的代碼就可以實現(xiàn)本方法,無需任何的硬件改動。 2)本方法中最初各個節(jié)點的初始ID相同,各個節(jié)點的CAN通訊部分軟硬件完全相同,所以適合于產(chǎn)量化的生產(chǎn)節(jié)點通訊器件。 3)組網(wǎng)操作簡單,可由用戶自行完成,用戶只要連接好線路,即可完成整個網(wǎng)絡(luò)的ID分配,使用方便。
圖1為本發(fā)明CAN網(wǎng)絡(luò)示意圖。
具體實施方式
下面結(jié)合附圖與實施例對本發(fā)明作詳細說明。
圖 1 中,第一步,先按附圖所示連接好各個節(jié)點,各個節(jié)點的ID初始值均為ID0,且使用的為10 位二進制ID。
第二步,選取一節(jié)點,例如節(jié)點3,輸入CAN網(wǎng)絡(luò)中節(jié)點總數(shù)N,開啟ID分配功能。
第三步,節(jié)點3以IDO作為目標地址,在CAN網(wǎng)絡(luò)中發(fā)送生成ID的命令。
第四步,CAN網(wǎng)絡(luò)中其他節(jié)點接收到生成ID的命令后,開始隨機生成一個10位二進制的正整數(shù)作為自己的ID,并將此ID發(fā)送給節(jié)點3。例如,節(jié)點1在接收到生成ID的命令后,節(jié)點1會隨機生成一個10位二進制數(shù),將此二進制數(shù)作為自己的ID,并將此ID發(fā)送給節(jié)點3。
第五步,節(jié)點3會在一定時間里接收各個節(jié)點發(fā)來的ID號,并生成ID表。超過此時間后,節(jié)點3開始開始計算ID表中不相同ID的數(shù)目n,如果η等于N,則表示網(wǎng)絡(luò)中各個節(jié)點的ID都不相同,ID分配成功,進入第六步。否則,節(jié)點3將根據(jù)當前的ID表,向其他各個節(jié)點重發(fā)生成ID的命令,轉(zhuǎn)至第四步繼續(xù)進行。
第六步,節(jié)點3將ID表發(fā)送給其他各個節(jié)點。
關(guān)于此方法在CAN網(wǎng)絡(luò)中適用范圍的計算。
假設(shè)采用10位二進制ID,則可用ID為IOM個,我們以1000個可用ID計算。(CAN網(wǎng)絡(luò)中節(jié)點總數(shù)N)-1第一次ID分配成功的概率
權(quán)利要求
1.一種小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法,其特征是,它的步驟為第一步,CAN網(wǎng)絡(luò)中各個節(jié)點的ID均為初始值ID0,選定其中一個為起始的目標節(jié)點, 然后在CAN網(wǎng)絡(luò)上廣播發(fā)送生成ID的命令;第二步,其他節(jié)點在接收到生成ID的命令后,開始隨機生成一個整數(shù)作為自己的ID, 各個節(jié)點生成自己的ID后,把IDO作為目標地址,將自己新ID發(fā)送出去; 第三步,IDO節(jié)點將接收到的ID號碼加上IDO組成一個ID表; 第四步,IDO節(jié)點將生成的ID表發(fā)送給各個其他節(jié)點,至此,CAN網(wǎng)絡(luò)ID分配完成。
2.如權(quán)利要求1所述的小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法,其特征是,所述第三步中,如果各個節(jié)點隨機生成的ID號均不一樣,則ID表中含有N個不相同的ID號,則表示ID分配成功,進入第四步。
3.如權(quán)利要求1所述的小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法,其特征是,所述第三步中,如果生成的ID表中出現(xiàn)相同的ID,或者ID表中ID的數(shù)目少于N,IDO節(jié)點則按照當前的ID表重發(fā)生成ID的命令,跳至第二步繼續(xù)進行。
全文摘要
本發(fā)明公開了一種能自行分配ID,實現(xiàn)CAN網(wǎng)絡(luò)通訊的小型CAN總線網(wǎng)絡(luò)組網(wǎng)的方法,主要針對網(wǎng)絡(luò)節(jié)點數(shù)目較少的場合。它的步驟為第一步,CAN網(wǎng)絡(luò)中各個節(jié)點的ID均為初始值ID0,選定其中一個為起始的目標節(jié)點,然后在CAN網(wǎng)絡(luò)上廣播發(fā)送生成ID的命令;第二步,其他節(jié)點在接收到生成ID的命令后,開始隨機生成一個整數(shù)作為自己的ID,各個節(jié)點生成自己的ID后,把ID0作為目標地址,將自己新ID發(fā)送出去;第三步,ID0節(jié)點將接收到的ID號碼加上ID0組成一個ID表;第四步,ID0節(jié)點將生成的ID表發(fā)送給各個其他節(jié)點,至此,CAN網(wǎng)絡(luò)ID分配完成。
文檔編號H04L12/40GK102546340SQ201210034238
公開日2012年7月4日 申請日期2012年2月16日 優(yōu)先權(quán)日2012年2月16日
發(fā)明者于國棟, 方圓, 王公堂, 許福運 申請人:山東師范大學