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