新聞中心

CAN和DeviceNet總線

作者: 時間:2016-12-14 來源:網(wǎng)絡(luò) 收藏
  DeviceNet的數(shù)據(jù)鏈路層完全根據(jù)CAN規(guī)范和CAN控制器芯片實際特性來定義。CAN規(guī)范定義了兩種總線狀態(tài),“顯性”(邏輯0)和“隱性”(邏輯1)。任何發(fā)送器都可以將總線驅(qū)動為“顯性”狀態(tài)。沒有發(fā)送器處于顯性狀態(tài)時,總線只能是隱性狀態(tài):

  CAN定義了四種類型的幀:
  l 數(shù)據(jù)幀 l 遠(yuǎn)程幀
  l 超載幀 l 出錯幀
  DeviceNet使用數(shù)據(jù)幀傳送數(shù)據(jù)。遠(yuǎn)程幀在DeviceNet中沒有被使用,超載幀和出錯幀則用于例外情況的處理。數(shù)據(jù)幀格式如圖所示。
  
  較高優(yōu)先權(quán)的數(shù)據(jù)取得總線通信權(quán)
  同以太網(wǎng)類似,DeviceNet在總線空閑時任何節(jié)點都可以嘗試發(fā)送,這提供了網(wǎng)絡(luò)固有的點對點的通信能力。當(dāng)兩個或多個節(jié)點同時想要訪問網(wǎng)絡(luò)時,非破壞性逐位仲裁機制會解決潛在的沖突,而不會損失數(shù)據(jù)或浪費帶寬。比較而言,以太網(wǎng)所使用的沖突檢測器,會導(dǎo)致丟失數(shù)據(jù)和帶寬的浪費。發(fā)生沖突的兩個節(jié)點必須回退并重新發(fā)送數(shù)據(jù)?! ?br />  
  CAN使用唯一的、非破壞性逐位仲裁機制。CAN的這一特性使得在解決總線沖突(決定“勝者”時,不會因為要求優(yōu)先權(quán)高的節(jié)點重發(fā)數(shù)據(jù)而損失總線的吞吐能力。

  CAN使用逐位仲裁的方法解決沖突。CAN網(wǎng)絡(luò)上所有接收器通過一個幀的起始位(由隱性轉(zhuǎn)變?yōu)轱@性)同步。標(biāo)識符和RTR(遠(yuǎn)程傳送請求)位一起組成仲裁區(qū),仲裁區(qū)是為了便于媒體訪問。DeviceNet不使用RTR位,因此總線訪問優(yōu)先權(quán)也不將其考慮在內(nèi)。當(dāng)設(shè)備進(jìn)行發(fā)送時,它要監(jiān)視(接收)自己發(fā)送的內(nèi)容,以確定兩者是否一致,從而可以在發(fā)送時進(jìn)行檢測。在節(jié)點發(fā)送仲裁區(qū)時,如果發(fā)送了一個隱性位同時卻接收到一個顯性位,它就停止發(fā)送。同時進(jìn)行發(fā)送的兩個節(jié)點中,仲裁的勝者是具有較低值的11位標(biāo)識符的節(jié)點。CAN還規(guī)定了具有29位標(biāo)識符的數(shù)據(jù)幀格式,但DeviceNet沒有使用該格式。

  控制區(qū)包括兩個固定位和一個4位的長度區(qū)。長度區(qū)可以是0-8中的任一個數(shù)字,表示數(shù)據(jù)區(qū)中的字節(jié)數(shù)。0-8字節(jié)的數(shù)據(jù)長度對于具有少量但必須頻繁交換I/O數(shù)據(jù)的低端設(shè)備來說很理想。同時8個字節(jié)使簡單設(shè)備可以靈活地發(fā)送診斷數(shù)據(jù),或向驅(qū)動器發(fā)送速度基準(zhǔn)和加速度值。
  
  CRC校驗區(qū)是循環(huán)冗余校驗字,CAN控制器用它來檢測幀錯誤。校驗字通過對它前面的位進(jìn)行計算得到。ACK應(yīng)答中的顯性位表明除了發(fā)送者以外至少有一個接收器接受到報文。
  CAN使用包括CRC和自動重試在內(nèi)的多種錯誤檢測和故障限制方法。這些對應(yīng)用來說高度透明的方法,可以防止故障節(jié)點破壞(中斷)網(wǎng)絡(luò)。


關(guān)鍵詞: CANDeviceNet總

評論


技術(shù)專區(qū)

關(guān)閉