網(wǎng)絡(luò)和現(xiàn)場總線模塊-CAN總線
![]() | CAN總線已經(jīng)獲得了巨大的成功,尤其是在機(jī)械制造領(lǐng)域,而且正在變得越來越重要。成功的原因包括高抗干擾性,高速數(shù)據(jù)傳輸,易用性以及確定性實(shí)時(shí)能力。CAN對于擁有易管理的遠(yuǎn)程I/O節(jié)點(diǎn)數(shù)和較少軸數(shù)的應(yīng)用而言是理想的解決方案。作為現(xiàn)場總線,CAN總線在處理規(guī)模更大更復(fù)雜的機(jī)器時(shí)會受到限制。然而對于這些應(yīng)用而言,POWERLINK是擴(kuò)展至更高性能范圍的理想之選。 |
報(bào)文傳輸按照生產(chǎn)者-消費(fèi)者原則
CAN的報(bào)文傳輸是基于“生產(chǎn)者-消費(fèi)者原則”。由生產(chǎn)者節(jié)點(diǎn)發(fā)送的報(bào)文可以由所有其它消費(fèi)者節(jié)點(diǎn)接收。為此,報(bào)文并不是由目的地址標(biāo)明,而是由一個(gè)明確的“報(bào)文標(biāo)識符”標(biāo)記。報(bào)文發(fā)送給所有網(wǎng)絡(luò)節(jié)點(diǎn)也被稱為“廣播”。在CAN協(xié)議中,報(bào)文通常有一個(gè)11位長的標(biāo)識符(標(biāo)準(zhǔn)格式)。這意味著每個(gè)系統(tǒng)可以定義2048個(gè)不同的報(bào)文。這個(gè)數(shù)字足以應(yīng)對大多數(shù)的應(yīng)用。然而,對于特殊應(yīng)用(如重型車輛),也可以使用29位長的標(biāo)識符(擴(kuò)展格式),并定義最多5.12億個(gè)不同的報(bào)文。節(jié)點(diǎn)必須過濾掉與總線上的報(bào)文流相關(guān)的報(bào)文。
多主站,事件導(dǎo)向報(bào)文發(fā)送
一旦總線空閑,CAN網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)都可以啟動(dòng)報(bào)文傳輸。由于可能同時(shí)出現(xiàn)一個(gè)以上的網(wǎng)絡(luò)節(jié)點(diǎn)開始發(fā)送報(bào)文的情況,因此需要一個(gè)仲裁過程以確保實(shí)際上只有一個(gè)節(jié)點(diǎn)繼續(xù)發(fā)送其報(bào)文。
由于每個(gè)節(jié)點(diǎn)都可以啟動(dòng)報(bào)文發(fā)送,因此可以在所有網(wǎng)絡(luò)節(jié)點(diǎn)間直接發(fā)送報(bào)文。因而也可以僅在需要時(shí)發(fā)送報(bào)文,即一個(gè)相應(yīng)的事件已經(jīng)發(fā)生。與循環(huán)發(fā)送報(bào)文相比,結(jié)果大大降低了總線負(fù)載,減少了所需的數(shù)據(jù)傳輸速率。
無損,逐位總線仲裁
由于在一個(gè)CAN網(wǎng)絡(luò)中,一旦總線空閑,每一個(gè)節(jié)點(diǎn)就會開始發(fā)送報(bào)文,因此多個(gè)節(jié)點(diǎn)可以在同一時(shí)間開始發(fā)送。為了防止破壞節(jié)點(diǎn)間發(fā)送的數(shù)據(jù),在所有同時(shí)仲裁的報(bào)文中確定具有優(yōu)先級的報(bào)文的過程被稱為“仲裁階段”。只有發(fā)送優(yōu)先級報(bào)文的網(wǎng)絡(luò)節(jié)點(diǎn)才可以繼續(xù)發(fā)送其報(bào)文。報(bào)文標(biāo)識符數(shù)值的報(bào)文優(yōu)先級。圖1顯示了總線仲裁機(jī)制。在仲裁階段,每個(gè)節(jié)點(diǎn)都會監(jiān)控總線上的信號電平。仲裁階段由發(fā)送報(bào)文標(biāo)識符以及所謂的RTR位所組成。如果一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)檢測到一個(gè)顯性總線電平(顯性位),雖然它已產(chǎn)生一個(gè)隱性電平(隱性位),那么它會立即中止傳輸過程,因?yàn)樵谶@種情況下會同時(shí)發(fā)送更高優(yōu)先級的報(bào)文;所以它就進(jìn)入了接收狀態(tài)。由于報(bào)文都會通過總線仲裁發(fā)送,因此該過程確保了“無損”總線訪問。
優(yōu)先導(dǎo)向報(bào)文傳送
上述仲裁過程保證了在各種情況下,總線一旦空閑,就會始終傳輸具有優(yōu)先級的報(bào)文。報(bào)文優(yōu)先級是由報(bào)文標(biāo)識符的值確定的。該數(shù)值越小,報(bào)文的優(yōu)先級就越高。優(yōu)先導(dǎo)向報(bào)文原則可以非常有效地利用帶寬傳輸數(shù)據(jù)。因此,低優(yōu)先級的報(bào)文99%占用總線而基本不會延遲具有較高優(yōu)先級的報(bào)文傳輸。對于具有優(yōu)先級的報(bào)文而言,約130 µs的等待時(shí)間會導(dǎo)致1 Mbit/s的傳輸速率。另一方面,在設(shè)計(jì)CAN系統(tǒng)的時(shí)候,必須確保高優(yōu)先級報(bào)文不會經(jīng)常占用總線。例如,可以引入所謂的最小“傳輸阻塞時(shí)間”(CANopen:禁止時(shí)間)。
- 位速率和總線長度
CAN使用的逐位仲裁機(jī)制要求在一個(gè)位時(shí)間間隔內(nèi)對分布在總線上的所有網(wǎng)絡(luò)節(jié)點(diǎn)上的本地位電平進(jìn)行比較。由于在總線上分配信號所需的信號傳播時(shí)間與總線長度成正比,因此有必要根據(jù)總線長度的增加相應(yīng)延長一個(gè)位間隔的持續(xù)時(shí)間。因而根據(jù)下述公式,總線長度(網(wǎng)絡(luò)擴(kuò)展)與位速率成反比:位速率(Mbit/s) x 總線長度(m) ≤60。