過(guò)邏輯程序控制Q管腳的輸出特定與之前所述的延時(shí)電路完全一致。
[0063]在上述本發(fā)明公開(kāi)的實(shí)施例的基礎(chǔ)上,本發(fā)明還公開(kāi)了一種地址分配方法,將通過(guò)以下實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
[0064]請(qǐng)參閱附圖4,為本發(fā)明公開(kāi)的一種地址分配方法實(shí)施例1流程示意圖,所述方法應(yīng)用于前面所述的串行總線系統(tǒng),該方法具體包括:
[0065]S101,為起始節(jié)點(diǎn)分配初始地址Si。
[0066]需要說(shuō)明的是,初始地址Si可以為任意值,優(yōu)選的可以為O或I。
[0067]S102,起始節(jié)點(diǎn)在脈沖信號(hào)線上發(fā)出一個(gè)脈沖,并在時(shí)鐘線上發(fā)出周期為T(mén)的方波。
[0068]其中,所述脈沖的持續(xù)時(shí)間小于所述周期T。
[0069]S103,當(dāng)前節(jié)點(diǎn)計(jì)算接收到所述脈沖和所述方波的時(shí)間差。
[0070]所述當(dāng)前節(jié)點(diǎn)為除所述起始節(jié)點(diǎn)之外的其他節(jié)點(diǎn)中的任意一個(gè)節(jié)點(diǎn)。
[0071]具體的,從所述方波的第一個(gè)上升沿開(kāi)始計(jì)時(shí),到當(dāng)前節(jié)點(diǎn)接收到的脈沖信號(hào)發(fā)生第一個(gè)上升沿時(shí)結(jié)束,獲取當(dāng)前節(jié)點(diǎn)的計(jì)時(shí)時(shí)間△ T作為所述時(shí)間差。
[0072]S104,當(dāng)前節(jié)點(diǎn)根據(jù)所述初始地址Si以及所述時(shí)間差計(jì)算自身地址。
[0073]具體的,根據(jù)公式sn = sl+(AT+T_t)/T計(jì)算當(dāng)前節(jié)點(diǎn)的地址,其中,η為當(dāng)前節(jié)點(diǎn)的順序號(hào),t為延時(shí)電路的延時(shí)時(shí)間,t < T/2。
[0074]本實(shí)施例公開(kāi)的地址分配方法,起始節(jié)點(diǎn)在時(shí)鐘線及脈沖信號(hào)線上同時(shí)發(fā)送信號(hào),其他節(jié)點(diǎn)根據(jù)接收到的兩個(gè)信號(hào)的時(shí)間差計(jì)算出各自的地址。各節(jié)點(diǎn)的CPU不參與其他節(jié)點(diǎn)的地址分配過(guò)程,因此,即使串行總線上的某個(gè)節(jié)點(diǎn)故障或不在線,也不會(huì)影響其他節(jié)點(diǎn)的地址分配。
[0075]另外,本實(shí)施例給出了如下示例詳細(xì)描述上述方法。
[0076]請(qǐng)參閱附圖5,為本示例中的串行總線系統(tǒng)結(jié)構(gòu)示意圖,該串行總線系統(tǒng)包括4個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3和節(jié)點(diǎn)4),相鄰兩個(gè)節(jié)點(diǎn)之間連接有I個(gè)延時(shí)電路,延時(shí)電路具有脈沖信號(hào)輸入端(D)、時(shí)鐘信號(hào)輸入端(CLK)以及輸出端(Q)。為方便描述,將四個(gè)節(jié)點(diǎn)的第一輸出端連接的脈沖信號(hào)線分別命名為D、Ql、Q2和Q3。時(shí)鐘信號(hào)線為CLK。
[0077]地址分配的具體過(guò)程如下:
[0078]節(jié)點(diǎn)I作為起始節(jié)點(diǎn),自動(dòng)分配地址為si = I。
[0079]當(dāng)需要分配地址時(shí),節(jié)點(diǎn)I先在D線上發(fā)出I個(gè)脈沖,然后再在CLK線上發(fā)出周期為T(mén)的方波。其中脈沖信號(hào)線上脈沖的持續(xù)時(shí)間小于T、
[0080]經(jīng)過(guò)多個(gè)延時(shí)電路后,Q1、Q2、Q3端口的電平變化如圖6所示。其中延時(shí)電路的延時(shí)時(shí)間t經(jīng)過(guò)調(diào)節(jié),保證t < T/2。
[0081]節(jié)點(diǎn)2監(jiān)控CLK線和Ql線的電平變化過(guò)程,從CLK線電平發(fā)生第I個(gè)上升沿開(kāi)始計(jì)時(shí),到Ql線電平發(fā)生上升沿時(shí)結(jié)束。由于節(jié)點(diǎn)I與節(jié)點(diǎn)2之間有I個(gè)延時(shí)電路,因此計(jì)時(shí)時(shí)間為t。
[0082]節(jié)點(diǎn)3監(jiān)控CLK線和Q2線的電平變化過(guò)程,從CLK線電平發(fā)生第I個(gè)上升沿開(kāi)始計(jì)時(shí),到Q2線電平發(fā)生上升沿時(shí)結(jié)束。由于節(jié)點(diǎn)I與節(jié)點(diǎn)3之間有2個(gè)延時(shí)電路,因此計(jì)時(shí)時(shí)間為t+T。
[0083]節(jié)點(diǎn)4監(jiān)控CLK線和Q3線的電平變化過(guò)程,從CLK線電平發(fā)生第I個(gè)上升沿開(kāi)始計(jì)時(shí),到Q3線電平發(fā)生上升沿時(shí)結(jié)束。由于節(jié)點(diǎn)I與節(jié)點(diǎn)4之間有3個(gè)延時(shí)電路,因此計(jì)時(shí)時(shí)間為t+2T。
[0084]節(jié)點(diǎn)2、節(jié)點(diǎn)3、節(jié)點(diǎn)4根據(jù)計(jì)算公式:sn = si+( Δ T+T_t)/T,得到各自的地址,分別為2、3、4。ΔΤ為各節(jié)點(diǎn)各自記錄得到的計(jì)時(shí)時(shí)間。
[0085]如果存在節(jié)點(diǎn)5、節(jié)點(diǎn)6,,……,可以按照上述方法類推,即可得到所有節(jié)點(diǎn)的地址。
[0086]需要說(shuō)明的是,本發(fā)明目前具體應(yīng)用于工業(yè)控制系統(tǒng)中,在實(shí)現(xiàn)案例中,控制器承擔(dān)節(jié)點(diǎn)I的角色,各從站承擔(dān)節(jié)點(diǎn)2、節(jié)點(diǎn)3、……的角色。
[0087]上述控制器和從站均使用統(tǒng)一的接口端子設(shè)計(jì),例如標(biāo)準(zhǔn)的DB9、DB15端子。在接口端子內(nèi)部集成了延時(shí)電路。具體可參見(jiàn)圖7所示。
[0088]根據(jù)上述設(shè)計(jì),由于延時(shí)電路集成在了接口端子內(nèi),而接口端子對(duì)于節(jié)點(diǎn)是獨(dú)立的部件。因此,當(dāng)某個(gè)從站發(fā)生故障或不在線時(shí),只要相應(yīng)的接口端子存在,控制器仍然能夠?qū)ζ溆喙?jié)點(diǎn)正常進(jìn)行地址分配。而且當(dāng)故障或不在線的從站恢復(fù)正常后,只要控制器重新發(fā)起分配地址,該從站其也能得到地址,且不會(huì)影響其它已分配到地址的從站。
[0089]綜上所述:
[0090]本發(fā)明公開(kāi)了一種串行總線系統(tǒng)和地址分配方法,串行總線上的多個(gè)節(jié)點(diǎn)通過(guò)時(shí)鐘線及脈沖信號(hào)線連接,并且,相鄰兩個(gè)節(jié)點(diǎn)之間設(shè)置有延時(shí)電路,起始節(jié)點(diǎn)在時(shí)鐘線及脈沖信號(hào)線上同時(shí)發(fā)送信號(hào),其他節(jié)點(diǎn)根據(jù)接收到的兩個(gè)信號(hào)的時(shí)間差計(jì)算出各自的地址。各節(jié)點(diǎn)的CPU不參與其他節(jié)點(diǎn)的地址分配過(guò)程,因此,即使串行總線上的某個(gè)節(jié)點(diǎn)故障或不在線,也不會(huì)影響其他節(jié)點(diǎn)的地址分配。
[0091]本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
[0092]另外需說(shuō)明的是,以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。另外,本發(fā)明提供的裝置實(shí)施例附圖中,模塊之間的連接關(guān)系表示它們之間具有通信連接,具體可以實(shí)現(xiàn)為一條或多條通信總線或信號(hào)線。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0093]通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)專用硬件包括專用集成電路、專用CPU、專用存儲(chǔ)器、專用元器件等來(lái)實(shí)現(xiàn)。一般情況下,凡由計(jì)算機(jī)程序完成的功能都可以很容易地用相應(yīng)的硬件來(lái)實(shí)現(xiàn),而且,用來(lái)實(shí)現(xiàn)同一功能的具體硬件結(jié)構(gòu)也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返取5?,?duì)本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤(pán),U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0094]綜上所述,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種串行總線系統(tǒng),其特征在于,包括: 串接有多個(gè)節(jié)點(diǎn)的串行總線、時(shí)鐘線以及脈沖信號(hào)線; 相鄰兩個(gè)節(jié)點(diǎn)之間設(shè)置有延時(shí)電路; 其中,任意兩個(gè)相鄰節(jié)點(diǎn)之間的連接方式具體如下: 第一節(jié)點(diǎn)的第一端口通過(guò)所述脈沖信號(hào)線連接延時(shí)電路的脈沖信號(hào)輸入端,所述延時(shí)電路的輸出端通過(guò)所述脈沖信號(hào)線連接第二節(jié)點(diǎn)的第一端口; 第一節(jié)點(diǎn)的第二端口通過(guò)所述時(shí)鐘線連接延時(shí)電路的時(shí)鐘信號(hào)輸入端后,連接第二節(jié)點(diǎn)的第二端口; 所述延時(shí)電路的時(shí)鐘信號(hào)輸入端發(fā)生上升沿變化的預(yù)設(shè)時(shí)間之后,所述延時(shí)電路的輸出端為延時(shí)電路的脈沖信號(hào)輸入端在時(shí)鐘信號(hào)輸入端發(fā)生上升沿變化的時(shí)刻的狀態(tài);所述延時(shí)電路的時(shí)鐘信號(hào)輸入端未發(fā)生上升沿變化時(shí),所述延時(shí)電路的輸出端的狀態(tài)不改變。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述延時(shí)電路包括: D觸發(fā)器和RC電路; 其中,所述RC電路由電阻(R)和電容(C)組成; D觸發(fā)器的第一輸入端(DO)為所述延時(shí)電路的脈沖信號(hào)輸入端; D觸發(fā)器的第二輸入端(CLKO)為所述延時(shí)電路的時(shí)鐘信號(hào)輸入端; D觸發(fā)器的輸出端(QO)與所述RC電路的電阻一端相連,所述RC電路的電阻的另一端連接所述RC電路的電容的一端后為所述延時(shí)電路的輸出端;所述RC電路的電容的另一端接地。3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述延時(shí)電路采用可編程邏輯器件構(gòu)建。4.一種地址分配方法,其特征在于,應(yīng)用于權(quán)利要求1?3中任意一項(xiàng)所述的串行總線系統(tǒng),所述方法包括: 為起始節(jié)點(diǎn)分配初始地址si ; 起始節(jié)點(diǎn)在脈沖信號(hào)線上發(fā)出一個(gè)脈沖,并在時(shí)鐘線上發(fā)出周期為T(mén)的方波,其中所述脈沖的持續(xù)時(shí)間小于所述周期T ; 當(dāng)前節(jié)點(diǎn)計(jì)算接收到所述脈沖和所述方波的時(shí)間差;所述當(dāng)前節(jié)點(diǎn)為除所述起始節(jié)點(diǎn)之外的其他節(jié)點(diǎn)中的任意一個(gè)節(jié)點(diǎn); 當(dāng)前節(jié)點(diǎn)根據(jù)所述初始地址Si以及所述時(shí)間差計(jì)算自身地址。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述當(dāng)前節(jié)點(diǎn)計(jì)算接收到所述脈沖和所述方波的時(shí)間差具體包括: 從所述方波的第一個(gè)上升沿開(kāi)始計(jì)時(shí),到當(dāng)前節(jié)點(diǎn)接收到的脈沖信號(hào)發(fā)生第一個(gè)上升沿時(shí)結(jié)束,獲取當(dāng)前節(jié)點(diǎn)的計(jì)時(shí)時(shí)間△ T作為所述時(shí)間差。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述初始地址Si以及所述時(shí)間差計(jì)算自身地址具體包括: 根據(jù)公式sn = sl+(AT+T-t)/T計(jì)算當(dāng)前節(jié)點(diǎn)的地址,其中,η為當(dāng)前節(jié)點(diǎn)的順序號(hào),t為延時(shí)電路的延時(shí)時(shí)間,t < T/2。7.根據(jù)權(quán)利要求4?6任一項(xiàng)所述的方法,其特征在于,所述初始地址Si為O。8.根據(jù)權(quán)利要求4?6任一項(xiàng)所述的方法,其特征在于,所述初始地址Si為I。
【專利摘要】本發(fā)明公開(kāi)了一種串行總線系統(tǒng)和地址分配方法,串行總線上的多個(gè)節(jié)點(diǎn)通過(guò)時(shí)鐘線及脈沖信號(hào)線連接,并且,相鄰兩個(gè)節(jié)點(diǎn)之間設(shè)置有延時(shí)電路,起始節(jié)點(diǎn)在時(shí)鐘線及脈沖信號(hào)線上同時(shí)發(fā)送信號(hào),其他節(jié)點(diǎn)根據(jù)接收到的兩個(gè)信號(hào)的時(shí)間差計(jì)算出各自的地址。各節(jié)點(diǎn)的CPU不參與其他節(jié)點(diǎn)的地址分配過(guò)程,因此,即使串行總線上的某個(gè)節(jié)點(diǎn)故障或不在線,也不會(huì)影響其他節(jié)點(diǎn)的地址分配。
【IPC分類】G06F13/42
【公開(kāi)號(hào)】CN104991881
【申請(qǐng)?zhí)枴緾N201510434202
【發(fā)明人】張國(guó)亮, 陳健, 呂煒, 曹焱, 王文偉
【申請(qǐng)人】浙江中控技術(shù)股份有限公司
【公開(kāi)日】2015年10月21日
【申請(qǐng)日】2015年7月22日