亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

關(guān)于控制局域網(wǎng)總線從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配方法

文檔序號:7692192閱讀:194來源:國知局
專利名稱:關(guān)于控制局域網(wǎng)總線從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種節(jié)點(diǎn)號自動分配方案,更具體地說,涉及一種關(guān)于CAN 總線通信系統(tǒng)中的同 一型號節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配方案。
背景技術(shù)
在工業(yè)網(wǎng)絡(luò)中利用CAN總線來建立通信系統(tǒng)已經(jīng)是一個很成熟的應(yīng)用 了 ,比如CANOpen、 DeviceNet等,在一根CAN總線上可以掛載多個節(jié)點(diǎn)設(shè) 備,但只能有一個主節(jié)點(diǎn)(master)與多個從節(jié)點(diǎn)(slave )組成,如圖1所示。 圖1示出了一種利用CAN總線建立的由一個主節(jié)點(diǎn)和多個從節(jié)點(diǎn)組成的 CAN的主從式網(wǎng)絡(luò)構(gòu)架。圖1所示的CAN的主^v式網(wǎng)絡(luò)構(gòu)架中,為了說明 列舉了一個主節(jié)點(diǎn)和6個從節(jié)點(diǎn)。而從節(jié)點(diǎn)的數(shù)目可以根據(jù)需要來設(shè)置,并 不限于此處列舉的6個。
在整個網(wǎng)絡(luò)系統(tǒng)中,每個節(jié)點(diǎn)(包括主節(jié)點(diǎn)與從節(jié)點(diǎn))都有唯一的節(jié)點(diǎn) 號來標(biāo)識每個網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備,這樣通信數(shù)據(jù)才能根據(jù)節(jié)點(diǎn)號正確的進(jìn)行主從 之間的傳輸。在目前應(yīng)用中,對每個從節(jié)點(diǎn)的節(jié)點(diǎn)號分配都是通過用戶設(shè)定 的手段來實現(xiàn)的,比如為每個從節(jié)點(diǎn)設(shè)備安裝一個數(shù)字撥碼開關(guān),通過數(shù)字 撥碼開關(guān)為每個從節(jié)點(diǎn)分配唯一的節(jié)點(diǎn)號。這樣做當(dāng)然可以解決問題,但顯 而易見的是會增加硬件成本(至少一個數(shù)字撥碼開關(guān)的成本),更致命的還在 于會降低節(jié)點(diǎn)設(shè)備的防護(hù)等級(比如防水、防腐蝕、抗爆等),這是因為在工 業(yè)應(yīng)用中,很多設(shè)備從節(jié)點(diǎn)都需要考慮到這些因素的影響,增加了一個數(shù)字 撥碼開關(guān)意味著需要在設(shè)備外殼上為撥碼開關(guān)開個窗口以便節(jié)點(diǎn)號設(shè)置,這 樣勢必會降低設(shè)備從節(jié)點(diǎn)的防護(hù)等級。
如果我們能夠做到既不需要利用撥碼開關(guān),又能為每個從節(jié)點(diǎn)分配唯一 節(jié)點(diǎn)號的話,那么上述的問題就解決了,接下來就重點(diǎn)描述該設(shè)計方案。
CAN基本應(yīng)用
在進(jìn)行方案描述之前,為了后面更好的理解,我們先簡略的介紹一下 CAN的應(yīng)用與基本實現(xiàn)方法。在CAN核中,一4殳存在數(shù)個數(shù)據(jù)通道,設(shè)計者可以把各個數(shù)據(jù)通道配置成數(shù)據(jù)發(fā)送通道或者數(shù)據(jù)接收通道,每個通道包 含一個ID寄存器與一組通信數(shù)據(jù)寄存器,當(dāng)其中某一個數(shù)據(jù)發(fā)送通道在數(shù)
據(jù)發(fā)送時,通信數(shù)據(jù)包里會包含該通道的ID值與通信數(shù)據(jù)值。在CAN核收 到CAN通信數(shù)據(jù)時,首先對接收到的通信數(shù)據(jù)包的ID值與自身的各個數(shù)據(jù) 接收通道進(jìn)行逐個比較,如果與某個數(shù)據(jù)接收通道的ID寄存器的設(shè)置值一 致,那么該數(shù)據(jù)接收通道就把通信數(shù)據(jù)值存入到該通信寄存器里。值得一提 的是,對于數(shù)據(jù)接收通道的ID值的比較,我們還會經(jīng)常用到一些ID值Mask 功能,利用Mask功能可以忽略對ID值中的指定幾位數(shù)據(jù)的比較,不管這幾 位數(shù)據(jù)是不是與接收到的數(shù)據(jù)包的ID值一致,只要非mask位的ID數(shù)據(jù)一 致,都能接收進(jìn)來,在本方案中我們將會利用到此功能。如圖2所示,圖2 示出了 CAN接收、發(fā)送數(shù)據(jù)通道的例子,其中數(shù)據(jù)接收通道利用了 ID值mask 功能。
如圖2所示,CAN數(shù)據(jù)發(fā)送方向CAN數(shù)據(jù)4妄收方發(fā)送CAN通信數(shù)據(jù) 包片斷。CAN數(shù)據(jù)接收方的數(shù)據(jù)接收通道驗證ID值是否一致,數(shù)據(jù)接收通 道1驗證ID不一致,則不接收CAN通信數(shù)據(jù)包片斷;而數(shù)據(jù)接收通道2利 用mask功能將后兩位mask之后,驗證ID—致,則接收通信數(shù)據(jù)包片斷。
ID設(shè)置值一般分為兩種 一種是11位的標(biāo)準(zhǔn)幀(如圖2所示的ID設(shè)置), 另外一種是29位的括展幀,為了實現(xiàn)本發(fā)明的方案,將會使用29位的括展 幀,其原因在下面的具體實施方式
部分將詳細(xì)描述。
CAN具有載波偵聽多路訪問/沖突檢測的通信仲裁機(jī)制,所以如果有多 個節(jié)點(diǎn)同時往CAN總線上發(fā)送數(shù)據(jù)的時候,發(fā)送ID值小的那個節(jié)點(diǎn)優(yōu)先獲 得CAN總線的控制權(quán),至于更細(xì)節(jié)的東西請參考CAN通信規(guī)范,不屬于本 發(fā)明方案的重點(diǎn)描述范圍。為了清楚和簡潔,將省略對公知功能和結(jié)構(gòu)的描 述。

發(fā)明內(nèi)容
本發(fā)明的另外方面和優(yōu)點(diǎn)部分將在后面的描述中闡述,還有部分可從描 述中明顯地看出,或者可以在本發(fā)明的實踐中得到。
本發(fā)明提供了一種CAN總線通信系統(tǒng)中從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配 方法,包括a.初始化從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號;b.發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求;c. 等待預(yù)定時間,如果預(yù)定時間內(nèi)收到其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù),則返回步驟a;如果沒有收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù),則檢查該 次重復(fù)節(jié)點(diǎn)號查詢請求是否是第卩次,其中卩為自然數(shù);d.如果小于卩次, 則返回步驟b;如果是第卩次,則該節(jié)點(diǎn)號被確定為該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號。
本發(fā)明還提供一種CAN總線通信系統(tǒng)中從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配 設(shè)備,包括用于初始化從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號的裝置;用于響應(yīng)于節(jié)點(diǎn)號的 初始化操作,發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求的裝置;用于判斷預(yù)定時間內(nèi)是否收 到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù)的裝置,在收到?jīng)_突回復(fù)時,該判 斷裝置將結(jié)果反饋回用于初始化節(jié)點(diǎn)號的裝置,在沒有收到節(jié)點(diǎn)號沖突回復(fù) 時,將結(jié)果輸出到檢查裝置;用于檢查該次重復(fù)節(jié)點(diǎn)號查詢請求是否是第卩 次的裝置,其中(3為自然數(shù),在小于卩次時,將輸出反饋回用于發(fā)送查詢請 求的裝置,否則將結(jié)果輸出到確定裝置;用于將該節(jié)點(diǎn)號確定為該從節(jié)點(diǎn)設(shè) 備的節(jié)點(diǎn)號的裝置。
本發(fā)明還提供一種包含一個主節(jié)點(diǎn)和多個從節(jié)點(diǎn)的CAN通信系統(tǒng),用 于自動分配從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號,該系統(tǒng)包括用于初始化從節(jié)點(diǎn)設(shè)備的節(jié) 點(diǎn)號的裝置;用于響應(yīng)于節(jié)點(diǎn)號的初始化操作,發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求的 裝置;用于判斷預(yù)定時間內(nèi)是否收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù) 的裝置,在收到?jīng)_突回復(fù)時,該判斷裝置將結(jié)果反饋回用于初始化節(jié)點(diǎn)號的 裝置,在沒有收到節(jié)點(diǎn)號沖突回復(fù)時,將結(jié)果輸出到檢查裝置;用于檢查該 次重復(fù)節(jié)點(diǎn)號查詢請求是否是第卩次的裝置,其中卩為自然數(shù),在小于(3次 時,將輸出反饋回用于發(fā)送查詢請求的裝置,否則將結(jié)果輸出到確定裝置; 用于將該節(jié)點(diǎn)號確定為該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號的裝置。


通過結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其 他目的、特性和優(yōu)點(diǎn)將會變得更加清楚,其中相同的標(biāo)號指定相同結(jié)構(gòu)的單 元,并且在其中
圖1示出了一種利用CAN總線建立的由一個主節(jié)點(diǎn)和多個從節(jié)點(diǎn)組成 的CAN的主/人式網(wǎng)絡(luò)構(gòu)架;
圖2示出了 CAN接收、發(fā)送數(shù)據(jù)通道的例子,其中數(shù)據(jù)接收通道利用 了 ID值mask功能;
圖3示出了 CAN的主從式網(wǎng)絡(luò)構(gòu)架中從節(jié)點(diǎn)設(shè)備節(jié)點(diǎn)號確定的狀態(tài)遷移圖4示出了重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)發(fā)送通道和重復(fù)節(jié)點(diǎn)號沖突回復(fù) 的數(shù)據(jù)接收通道的寄存器設(shè)置;
圖5示出了重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)發(fā)送通道;
圖6示出重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)接收通道和重復(fù)節(jié)點(diǎn)號沖突回復(fù)的 數(shù)據(jù)發(fā)送通道的寄存器設(shè)置;
圖7示出了 CAN的主從式網(wǎng)絡(luò)構(gòu)架中從節(jié)點(diǎn)設(shè)備節(jié)點(diǎn)號自動分配的方 法流程圖;和
圖8示出了 CAN通信系統(tǒng)。
具體實施例方式
下面將參照示出本發(fā)明實施例的附圖充分描述本發(fā)明。然而,本發(fā)明可 以以許多不同的形式實現(xiàn),而不應(yīng)當(dāng)認(rèn)為限于這里所述的實施例。相反,提 供這些實施例以便使本公開透徹且完整,并且將向本領(lǐng)域技術(shù)人員充分表達(dá) 本發(fā)明的范圍。在附圖中,為了清楚起見放大了組件。
除非另有定義,這里使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有與本 發(fā)明所屬領(lǐng)域的普通技術(shù)人員共同理解的相同含義。還應(yīng)當(dāng)理解,諸如在通
含義相一致的含義,而不應(yīng)用理想化或極度形式化的意義來解釋,除非這里 明確地這樣定義。
與現(xiàn)有技術(shù)方案相比校,本發(fā)明方案不需要使用撥碼開關(guān)來確定節(jié)點(diǎn)號, 我們都知道在CANopen或DeviceNet通信協(xié)議的從節(jié)點(diǎn)設(shè)備中,每個從節(jié)點(diǎn) 設(shè)備都會含有一個唯一的序列號,序列號一般^f皮用來標(biāo)識產(chǎn)品的生產(chǎn)編號, 以便召回或維修產(chǎn)品因生產(chǎn)因素導(dǎo)致的產(chǎn)品問題,該序列號一般是被保存在 非易失性存儲器中,比如EEPROM或者FLASH,且同一型號中的各個產(chǎn)品 的序列號都是唯一的。本方案正是利用序列號的唯一性這個特性,并通過從 節(jié)點(diǎn)設(shè)備之間的通信交互來確定各個節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號。確定節(jié)點(diǎn)號的流程 機(jī)制如圖3所示,圖3示出了 CAN的主從式網(wǎng)絡(luò)構(gòu)架中從節(jié)點(diǎn)設(shè)備節(jié)點(diǎn)號確 定的狀態(tài)遷移圖。
下面對圖3中的A、 B、 C、 D四種節(jié)點(diǎn)狀態(tài)進(jìn)行詳細(xì)的描述。 首先讀取當(dāng)前要設(shè)置節(jié)點(diǎn)號的X從節(jié)點(diǎn)的序列號并將發(fā)送請求次數(shù)設(shè)置n為零,其中n是自然數(shù)。接著,進(jìn)入狀態(tài)A。
A:隨機(jī)生成一個節(jié)點(diǎn)號,并利用讀取到的序列號設(shè)置一個數(shù)據(jù)發(fā)送通 道與數(shù)據(jù)接收通道,如圖4所示,圖4示出了 X/人節(jié)點(diǎn)的重復(fù)節(jié)點(diǎn)號查詢請 求的數(shù)據(jù)發(fā)送通道和重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)接收通道的寄存器設(shè)置。如 果從節(jié)點(diǎn)狀態(tài)C返回狀態(tài)A,則繼續(xù)使用上次生成的節(jié)點(diǎn)號初始值。
通過圖4也可以回答上面提到的為什么要采用29位擴(kuò)展幀的問題了,這 是因為如果采用ll位的標(biāo)準(zhǔn)幀,那么除去2位命令字以后,序列號范圍只有 為(0 2A9-1),也就是最多只有512個序列號,通常估計很少有產(chǎn)品只生產(chǎn) 512個。因此,如果采用29位的擴(kuò)展幀,那么序列號范圍就大多了,可以支 持2A27= 134217728個產(chǎn)品,這個數(shù)已經(jīng)完全可以滿足工控產(chǎn)品的生產(chǎn)需要 了。當(dāng)然,在產(chǎn)品數(shù)量在512個內(nèi)的情況下,也可以采用ll位的標(biāo)準(zhǔn)幀
在圖4的重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)發(fā)送通道中,包含了 ID寄存器和數(shù) 據(jù)寄存器。在ID寄存器中存儲了 27位節(jié)點(diǎn)設(shè)備序列號以及2位重復(fù)節(jié)點(diǎn)號 命令字。當(dāng)然,在采用標(biāo)準(zhǔn)幀的情況下,序列號是9位。在數(shù)據(jù)寄存器中存 儲了待發(fā)送的查詢節(jié)點(diǎn)號。
B:在X節(jié)點(diǎn)發(fā)送完重復(fù)節(jié)點(diǎn)號查詢請求后(l),接下來X節(jié)點(diǎn)要等待在
t秒(其中t為自然數(shù),可以根據(jù)實際情況對t進(jìn)行設(shè)置,例如,t可以等于
1秒)內(nèi)會不會收到重復(fù)節(jié)點(diǎn)號沖突的回復(fù)了,假如已經(jīng)有一個節(jié)點(diǎn)設(shè)備Y 確定了節(jié)點(diǎn)號了,并且該節(jié)點(diǎn)號與X節(jié)點(diǎn)請求的節(jié)點(diǎn)號是相同的,那么Y節(jié) 點(diǎn)在收到來自X節(jié)點(diǎn)的重復(fù)節(jié)點(diǎn)號查詢請求后,就會發(fā)送重復(fù)節(jié)點(diǎn)號沖突的 回復(fù)并將發(fā)送請求次數(shù)n清零(2),而X節(jié)點(diǎn)在收到節(jié)點(diǎn)號沖突的回復(fù)后重 新返回到初始化節(jié)點(diǎn)號狀態(tài)A,并再次隨機(jī)生成一個新的節(jié)點(diǎn)號,如此重復(fù), 直到請求的節(jié)點(diǎn)號沒被占用為止,Y節(jié)點(diǎn)的重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)發(fā)送 通道如圖5所示,圖5示出了重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)發(fā)送通道。
在圖5中,Y節(jié)點(diǎn)重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)發(fā)送通道中包含ID寄存器 和數(shù)據(jù)寄存器。在Y節(jié)點(diǎn)ID寄存器中存儲了發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求的節(jié) 點(diǎn)(在本例中為X節(jié)點(diǎn))的設(shè)備序列號,并且Y節(jié)點(diǎn)數(shù)據(jù)寄存器中存儲了 X 節(jié)點(diǎn)的查詢節(jié)點(diǎn)號。
C:如果在t秒時間內(nèi)沒收到節(jié)點(diǎn)號沖突的回復(fù)(3),那么將發(fā)送請求次 數(shù)n加1,并檢查該次重復(fù)節(jié)點(diǎn)號查詢的發(fā)送請求次數(shù)n是否是第卩次(其 中P為自然數(shù),用戶可以根據(jù)實際情況設(shè)置|3,例如2或3等),如果小于卩次的話(4),那么對這個節(jié)點(diǎn)號再次發(fā)送查詢請求,如果第p次查詢后還是沒 有收到任何回復(fù)的話(5),那么該節(jié)點(diǎn)號就被正式確定下來進(jìn)入狀態(tài)D,否則 進(jìn)入狀態(tài)A,繼續(xù)重復(fù)查詢與等待回復(fù)的工作,多次查詢是為了更加可靠的 保證該節(jié)點(diǎn)號是沒被其他節(jié)點(diǎn)設(shè)備占用的。
D:假如X節(jié)點(diǎn)的節(jié)點(diǎn)號通過如上方式被確定了,那么節(jié)點(diǎn)設(shè)備X就進(jìn) 入了正常通訊的狀態(tài)了,也就是D狀態(tài)。進(jìn)入該狀態(tài)后,節(jié)點(diǎn)X除了要正常 通訊外,還需要對來自未確定節(jié)點(diǎn)號的節(jié)點(diǎn)設(shè)備N的重復(fù)節(jié)點(diǎn)查詢請求做出 回復(fù)(如果有節(jié)點(diǎn)號沖突的話,否則保持沉默)。所以還需要設(shè)置一個重復(fù)節(jié) 點(diǎn)號查詢請求的數(shù)據(jù)接收通道,以及一個重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)發(fā)送通 道。如圖6,圖6示出重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)接收通道和重復(fù)節(jié)點(diǎn)號沖 突回復(fù)的數(shù)據(jù)發(fā)送通道的寄存器設(shè)置。
在圖6中,M節(jié)點(diǎn)的數(shù)據(jù)接收通道中用到了 IDmask寄存器的設(shè)置,用 了 mask功能就可以忽略了 N節(jié)點(diǎn)的序列號的比較,這樣做是因為對于X節(jié) 點(diǎn)來說,其并不關(guān)心對方節(jié)點(diǎn)N的序列號,只關(guān)心存在于通信包數(shù)據(jù)部分的 查詢節(jié)點(diǎn)號,采用mask功能就可以把查詢請求都接收進(jìn)來,進(jìn)而檢查該查詢 節(jié)點(diǎn)號是否與本節(jié)點(diǎn)的節(jié)點(diǎn)號有沖突,如果有的話,那么就立即給出一個節(jié) 點(diǎn)號沖突的回復(fù),否則的話就保持沉默。而在節(jié)點(diǎn)ID寄存器中存儲了發(fā)送查 詢請求的節(jié)點(diǎn)的設(shè)備序列號,由于采用了 IDmask寄存器,因此節(jié)點(diǎn)ID寄存 器中的設(shè)備序列號可以是任何數(shù),其并不影響通信數(shù)據(jù)包的接收。同時,還 包括存儲查詢節(jié)點(diǎn)號的數(shù)據(jù)寄存器。
圖7示出了 CAN的主從式網(wǎng)絡(luò)構(gòu)架中從節(jié)點(diǎn)設(shè)備節(jié)點(diǎn)號自動分配的方 法流程圖。在步驟S1,給待確定節(jié)點(diǎn)號的從節(jié)點(diǎn)設(shè)備上電。在步驟S2,讀取 從節(jié)點(diǎn)設(shè)備的序列號。在步驟S3,初始化節(jié)點(diǎn)號,也即隨機(jī)生成一個新節(jié)點(diǎn) 號,并將發(fā)送請求次數(shù)n設(shè)置為零。在步驟S4, 乂人節(jié)點(diǎn)設(shè)備向所有上電的其 他從節(jié)點(diǎn)設(shè)備發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求。在步驟S5,發(fā)送請求的從節(jié)點(diǎn)設(shè)備 等待t秒。在步驟S6,在t秒之后,判斷從節(jié)點(diǎn)設(shè)備是否收到來自其他從節(jié) 點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù)。當(dāng)收到節(jié)點(diǎn)號沖突回復(fù)時,返回步驟S3,重新隨 機(jī)生成新的節(jié)點(diǎn)號,并將發(fā)送請求次數(shù)n設(shè)置為零。當(dāng)沒有收到節(jié)點(diǎn)號沖突 回復(fù)時,進(jìn)入步驟S7,將發(fā)送請求次凄t加1,即n-n+l。接著,在步驟S8, 判斷發(fā)送請求次數(shù)n是否等于用戶根據(jù)實際情況設(shè)定的預(yù)定常數(shù)p。如果發(fā) 送請求次數(shù)n不等于預(yù)定常數(shù)P,則返回步驟S4,繼續(xù)向其他從i殳備發(fā)送重復(fù)節(jié)點(diǎn)號重新請求。如果等于預(yù)定常數(shù)P,則進(jìn)入步驟S9,確定該節(jié)點(diǎn)號為 該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號。
為了更好的闡述上述方法,現(xiàn)以一個例子來進(jìn)^f亍講述。
圖8示出了 CAN通信系統(tǒng)。如圖8所示,布I定在一個CAN通信系統(tǒng)中 有K個節(jié)點(diǎn)設(shè)備(在本例中,K-6),其中包括一個主節(jié)點(diǎn)設(shè)備和5個從節(jié) 點(diǎn)設(shè)備,在CAN通信系統(tǒng)中一般主節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號固定為0,所以主節(jié)點(diǎn) 設(shè)備的節(jié)點(diǎn)號是不需要進(jìn)行自動分配的,而且主節(jié)點(diǎn)是不會對任何重復(fù)節(jié)點(diǎn) 號的請求命令作出任何反應(yīng)的,這樣做可以減少主節(jié)點(diǎn)的工作負(fù)擔(dān),接下來 主要是對各個從節(jié)點(diǎn)設(shè)備進(jìn)行節(jié)點(diǎn)號的自動分配。
假定5個從節(jié)點(diǎn)設(shè)備的序列號依次為10000、 10001、 10002、 10003、和 10004。
給定上述的假設(shè)條件后,接下來我們分兩種情況來描述該方法,以驗證
該方法的正確性與可4亍性。
情況1——所有節(jié)點(diǎn)設(shè)備都不是同時上電
假設(shè)節(jié)點(diǎn)1先上電,很顯然節(jié)點(diǎn)1請求任何一個有效節(jié)點(diǎn)號都是可行的, 因為別的節(jié)點(diǎn)都還沒有上電,所以收不到任何回復(fù)。 一旦節(jié)點(diǎn)1確定節(jié)點(diǎn)號 后,如果接下來是節(jié)點(diǎn)2上電,那么如果節(jié)點(diǎn)2請求查詢的節(jié)點(diǎn)號與節(jié)點(diǎn)1 不沖突的話,節(jié)點(diǎn)2的節(jié)點(diǎn)號也就確定下來了,否則的話,節(jié)點(diǎn)l會給節(jié)點(diǎn) 2發(fā)送重復(fù)節(jié)點(diǎn)號沖突的回復(fù),那么節(jié)點(diǎn)2只能再次隨即產(chǎn)生一個新的查詢 節(jié)點(diǎn)號,如此重復(fù)。其他的節(jié)點(diǎn)也是如此重復(fù)上述步驟,到最后所有的節(jié)點(diǎn) 都可以得到一個有效無沖突的節(jié)點(diǎn)號。這樣就證明該方案對情況1是適用的。
情況2--至少兩個節(jié)點(diǎn)設(shè)備同時上電
如果至少兩個節(jié)點(diǎn)設(shè)備同時上電,假設(shè)有節(jié)點(diǎn)1、 3、 5同時上電,那么 可想而知3個節(jié)點(diǎn)都會同時發(fā)出重復(fù)節(jié)點(diǎn)號的查詢請求,現(xiàn)在我們回到先前 介紹過的CAN協(xié)議的仲裁機(jī)制----如果有多個節(jié)點(diǎn)同時往CAN總線上發(fā)送數(shù) 據(jù)的時候,發(fā)送ID值小的那個節(jié)點(diǎn)優(yōu)先獲得CAN總線的控制權(quán)。根據(jù)這一 機(jī)制,回到圖4,由于同一型號的節(jié)點(diǎn)設(shè)備序列號是不相同的,所以序列號 越小的節(jié)點(diǎn)優(yōu)先獲得發(fā)送權(quán),注意這并不意味著序列號小的節(jié)點(diǎn)優(yōu)先獲得有 效的節(jié)點(diǎn)號,這個道理很簡單,雖然一個節(jié)點(diǎn)序列號小就可以優(yōu)先獲得重復(fù) 節(jié)點(diǎn)號的查詢請求發(fā)送權(quán),但是如果其運(yùn)氣不佳查詢的隨機(jī)節(jié)點(diǎn)號總是跟別 的已經(jīng)確定節(jié)點(diǎn)號的節(jié)點(diǎn)有沖突的話,那么該節(jié)點(diǎn)確定節(jié)點(diǎn)號的速度會反而會不及那些序列號大但運(yùn)氣好查詢節(jié)點(diǎn)號無沖突的節(jié)點(diǎn)來的快。但不管怎么 說,同時上電的每個節(jié)點(diǎn)都會依次獲得有效的節(jié)點(diǎn)號。這樣證明該方案也同
時適用于情況2。
根據(jù)上述本發(fā)明方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)自 動的節(jié)點(diǎn)號分配可以去掉撥碼開關(guān)等硬件設(shè)備,降低成本;采用自動節(jié)點(diǎn)號 分配可以避免使用像撥碼開關(guān)等硬件設(shè)備帶來的開窗設(shè)計,可以提高設(shè)備的 防護(hù)等級;并且該方案中對節(jié)點(diǎn)號的分配并沒有讓主節(jié)點(diǎn)參與進(jìn)來,這樣既 沒有增加主節(jié)點(diǎn)的工作負(fù)擔(dān),又能實現(xiàn)節(jié)點(diǎn)號自動分配的功能。
這里參照支持根據(jù)本發(fā)明實施例的方法和系統(tǒng)的方框圖和流程圖描述本 發(fā)明示例性實施例。應(yīng)當(dāng)理解,流程圖和/或方框圖的每個方框以及流程圖和 /或方框圖的方框組合可以通過計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可 以提供給通用計算機(jī)、專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn) 生機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng) 建實現(xiàn)流程圖和/或方框圖方框中指定功能/動作的手段。
這些計算機(jī)程序指令也可以存儲在計算機(jī)可讀存儲器中,可以引導(dǎo)計算 機(jī)或其他可編程數(shù)據(jù)處理裝置以特定方式運(yùn)行,使得存儲在計算機(jī)可讀存儲 器中的指令產(chǎn)生包括實現(xiàn)流程圖和/或方框圖方框中指定功能/動作的指令手 ,殳的制造物 品。
計算機(jī)程序指令還可以加載到計算機(jī)或其他可編程數(shù)據(jù)處理裝置上,導(dǎo) 致在計算機(jī)或其他可編程裝置上執(zhí)行一系列操作步驟來產(chǎn)生計算機(jī)實現(xiàn)的處 理,使得計算機(jī)或其他可編程裝置上執(zhí)行的指令提供實現(xiàn)流程圖和/或方框圖 方框中指定功能/動作的步驟。每個方框可以表示代碼模塊、片斷或部分,其 包括一個或多個用來實現(xiàn)指定邏輯功能的可執(zhí)行指令。還應(yīng)當(dāng)注意,在其他 實現(xiàn)中,方框中標(biāo)出的功能可能不按圖中標(biāo)出的順序發(fā)生。例如,根據(jù)所涉 及的功能,連續(xù)示出的兩個方框可能實際上基本上并發(fā)地執(zhí)行,或者方框有 時可能以相反的順序執(zhí)行。
用于執(zhí)行根據(jù)本發(fā)明示例性實施例的web瀏覽方法的程序也可以作為計 算機(jī)可讀代碼實現(xiàn)在計算機(jī)可讀記錄介質(zhì)上。計算機(jī)可讀記錄介質(zhì)是可以存 儲之后可由計算機(jī)系統(tǒng)讀取的數(shù)據(jù)的任何存儲設(shè)備。計算機(jī)可讀記錄介質(zhì)的 示例包括只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、 CD-ROM、磁帶、 軟盤和光數(shù)據(jù)存儲設(shè)備。計算可讀記錄介質(zhì)也可以分布在網(wǎng)絡(luò)互連的計算機(jī)
12系統(tǒng)上,從而以分布式存儲和執(zhí)行計算機(jī)可讀代碼。
雖然結(jié)合目前被認(rèn)為是最實際和最優(yōu)的實施例描述了本發(fā)明,但本領(lǐng)域 技術(shù)人員應(yīng)當(dāng)理解本發(fā)明不限于所公開的實施例,相反,本發(fā)明旨在覆蓋所 附權(quán)利要求的精神和范疇之內(nèi)包括的各種各樣的修改和等價結(jié)構(gòu)。
權(quán)利要求
1.一種CAN總線通信系統(tǒng)中從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配方法,包括a.初始化從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號;b.發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求;c.等待預(yù)定時間,如果預(yù)定時間內(nèi)收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù),則返回步驟a;如果沒有收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù),則檢查該次重復(fù)節(jié)點(diǎn)號查詢請求是否是第β次,其中β為自然數(shù);d.如果小于β次,則返回步驟b;如果是第β次,則該節(jié)點(diǎn)號被確定為該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號。
2. 如權(quán)利要求1所述的節(jié)點(diǎn)號自動分配方法,其中在所述步驟a之前進(jìn) 一步包括讀取從節(jié)點(diǎn)設(shè)備的序列號。
3. 如權(quán)利要求2所述的節(jié)點(diǎn)號自動分配方法,其中所述步驟a進(jìn)一步包 括隨^L生成一個節(jié)點(diǎn)號并將發(fā)送請求次數(shù)設(shè)置為零。
4. 如權(quán)利要求3所述的節(jié)點(diǎn)號自動分配方法,其中所述步驟b進(jìn)一步包 括利用讀取的從節(jié)點(diǎn)設(shè)備的序列號設(shè)置一個重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)發(fā) 送通道和一個重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)接收通道。
5. 如權(quán)利要求4所述的節(jié)點(diǎn)號自動分配方法,其中所述步驟c進(jìn)一步包 括在沒有收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù)時,將發(fā)送請求次數(shù) 加1。
6. 如權(quán)利要求5所述的節(jié)點(diǎn)號自動分配方法,其中在該從節(jié)點(diǎn)設(shè)備的節(jié) 點(diǎn)號被確定后,進(jìn)一步包括在該從節(jié)點(diǎn)設(shè)備設(shè)置一個重復(fù)節(jié)點(diǎn)號查詢請求 的數(shù)據(jù)接收通道和一個重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)發(fā)送通道,以響應(yīng)來自未 確定節(jié)點(diǎn)號的從節(jié)點(diǎn)設(shè)備的重復(fù)節(jié)點(diǎn)查詢請求。
7. 如權(quán)利要求5所述的節(jié)點(diǎn)號自動分配方法,其中所述重復(fù)節(jié)點(diǎn)號查詢 請求的數(shù)據(jù)發(fā)送通道包括ID寄存器,用于存儲節(jié)點(diǎn)設(shè)備序列號和重復(fù)節(jié)點(diǎn) 號命令字;和數(shù)據(jù)寄存器,用于存儲查詢節(jié)點(diǎn)號;以及所述重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)接收通道包括ID寄存器,用于存儲節(jié)點(diǎn) 設(shè)備序列號。
8. 如權(quán)利要求6所述的節(jié)點(diǎn)號自動分配方法,其中重復(fù)節(jié)點(diǎn)號沖突回復(fù) 的數(shù)據(jù)發(fā)送通道包括ID寄存器,用于存儲節(jié)點(diǎn)設(shè)備序列號和重復(fù)節(jié)點(diǎn)號命令字;和數(shù)據(jù)寄存器,用于存儲查詢節(jié)點(diǎn)號;以及所述重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)接收通道包括IDmask寄存器,用于 忽略從節(jié)點(diǎn)設(shè)備的序列號的比較而接收查詢請求;ID寄存器,用于存儲節(jié)點(diǎn) 設(shè)備序列號和重復(fù)節(jié)點(diǎn)號命令字;和數(shù)據(jù)寄存器,用于存儲查詢節(jié)點(diǎn)號。
9. 如權(quán)利要求7或8任一個所述的節(jié)點(diǎn)號自動分配方法,其中所述序列 號是27位,所述命令字是2位。
10. 如權(quán)利要求1所述的節(jié)點(diǎn)號自動分配方法,其中主節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn) 號是固定的,并且主節(jié)點(diǎn)設(shè)備不對來自從節(jié)點(diǎn)設(shè)備的重復(fù)節(jié)點(diǎn)號請求命令作 出任何反應(yīng)。
11. 如權(quán)利要求1所述的節(jié)點(diǎn)號自動分配方法,其中所述預(yù)定時間可以 是l秒,卩可以是2。
12. 如權(quán)利要求1所述的節(jié)點(diǎn)號自動分配方法,其中從節(jié)點(diǎn)設(shè)備上電時 即請求執(zhí)行節(jié)點(diǎn)號的自動分配。
13. 如權(quán)利要求12所述的節(jié)點(diǎn)號自動分配方法,其中如果多個從節(jié)點(diǎn)設(shè) 備同時上電,ID值小的從節(jié)點(diǎn)設(shè)備優(yōu)先獲得CAN總線的控制權(quán)。
14. 一種CAN總線通信系統(tǒng)中從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配設(shè)備,包括用于初始化從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號的裝置;用于響應(yīng)于節(jié)點(diǎn)號的初始化操作,發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求的裝置;用于判斷預(yù)定時間內(nèi)是否收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù)的 裝置,在收到?jīng)_突回復(fù)時,該判斷裝置將結(jié)果反饋回用于初始化節(jié)點(diǎn)號的裝 置;在沒有收到節(jié)點(diǎn)號沖突回復(fù)時,將結(jié)果輸出到檢查裝置;用于檢查該次重復(fù)節(jié)點(diǎn)號查詢請求是否是第p次的裝置,其中(3為自然 數(shù),在小于卩次時,將輸出反饋回用于發(fā)送查詢請求的裝置,否則將結(jié)果輸 出到確定裝置;用于將該節(jié)點(diǎn)號確定為該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號的裝置。
15. 如權(quán)利要求14所述的節(jié)點(diǎn)號自動分配設(shè)備,還包括用于讀取從節(jié)點(diǎn) 設(shè)備的序列號的裝置。
16. 如權(quán)利要求15所述的節(jié)點(diǎn)號自動分配設(shè)備,用于初始化的裝置隨機(jī) 生成一個節(jié)點(diǎn)號并將發(fā)送請求次數(shù)設(shè)置為零。
17. 如權(quán)利要求16所述的節(jié)點(diǎn)號自動分配設(shè)備,用于發(fā)送查詢請求的裝置利用讀取的從節(jié)點(diǎn)設(shè)備的序列號設(shè)置一個重復(fù)節(jié)點(diǎn)號查詢請求的數(shù)據(jù)發(fā)送 通道和一個重復(fù)節(jié)點(diǎn)號沖突回復(fù)的數(shù)據(jù)接收通道。
18. 如權(quán)利要求17所述的節(jié)點(diǎn)號自動分配設(shè)備,進(jìn)一步包括一計數(shù)器,用于在從用于判斷的裝置收到?jīng)]有節(jié)點(diǎn)號沖突回復(fù)的結(jié)果時,將發(fā)送請求次 數(shù)加l,并將結(jié)果輸出到用于檢查的裝置。
19. 如權(quán)利要求14所述的節(jié)點(diǎn)號自動分配設(shè)備,其中所述預(yù)定時間可以 是1秒,卩可以是2。
20. —種包含一個主節(jié)點(diǎn)和多個從節(jié)點(diǎn)的CAN通信系統(tǒng),用于自動分 配從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號,該系統(tǒng)包括用于初始化從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號的裝置;用于響應(yīng)于節(jié)點(diǎn)號的初始化操作,發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求的裝置;用于判斷預(yù)定時間內(nèi)是否收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù)的 裝置,在收到?jīng)_突回復(fù)時,該判斷裝置將結(jié)果反饋回用于初始化節(jié)點(diǎn)號的裝 置;在沒有收到節(jié)點(diǎn)號沖突回復(fù)時,將結(jié)果輸出到檢查裝置;用于檢查該次重復(fù)節(jié)點(diǎn)號查詢請求是否是第卩次的裝置,其中卩為自然 數(shù),在小于卩次時,將輸出反饋回用于發(fā)送查詢請求的裝置,否則將結(jié)果輸 出到確定裝置;用于將該節(jié)點(diǎn)號確定為該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號的裝置。
全文摘要
本發(fā)明提供了一種CAN總線通信系統(tǒng)中從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號自動分配方法,包括a.初始化從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號;b.發(fā)送重復(fù)節(jié)點(diǎn)號查詢請求;c.等待預(yù)定時間,如果預(yù)定時間內(nèi)收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù),則返回步驟a;如果沒有收到來自其他從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號沖突回復(fù),則檢查該次重復(fù)節(jié)點(diǎn)號查詢請求是否是第β次,其中β為自然數(shù);d.如果小于β次,則返回步驟b;如果是第β次,則該節(jié)點(diǎn)號被確定為該從節(jié)點(diǎn)設(shè)備的節(jié)點(diǎn)號。
文檔編號H04L12/40GK101582824SQ20081009735
公開日2009年11月18日 申請日期2008年5月13日 優(yōu)先權(quán)日2008年5月13日
發(fā)明者任可可, 李人東 申請人:施耐德電器工業(yè)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1