CAN和DeviceNet總線(xiàn)
CAN定義了四種類(lèi)型的幀:
l 數據幀 l 遠程幀
l 超載幀 l 出錯幀
DeviceNet使用數據幀傳送數據。遠程幀在DeviceNet中沒(méi)有被使用,超載幀和出錯幀則用于例外情況的處理。數據幀格式如圖所示。
較高優(yōu)先權的數據取得總線(xiàn)通信權
同以太網(wǎng)類(lèi)似,DeviceNet在總線(xiàn)空閑時(shí)任何節點(diǎn)都可以嘗試發(fā)送,這提供了網(wǎng)絡(luò )固有的點(diǎn)對點(diǎn)的通信能力。當兩個(gè)或多個(gè)節點(diǎn)同時(shí)想要訪(fǎng)問(wèn)網(wǎng)絡(luò )時(shí),非破壞性逐位仲裁機制會(huì )解決潛在的沖突,而不會(huì )損失數據或浪費帶寬。比較而言,以太網(wǎng)所使用的沖突檢測器,會(huì )導致丟失數據和帶寬的浪費。發(fā)生沖突的兩個(gè)節點(diǎn)必須回退并重新發(fā)送數據?! ?br />
CAN使用唯一的、非破壞性逐位仲裁機制。CAN的這一特性使得在解決總線(xiàn)沖突(決定“勝者”時(shí),不會(huì )因為要求優(yōu)先權高的節點(diǎn)重發(fā)數據而損失總線(xiàn)的吞吐能力。
CAN使用逐位仲裁的方法解決沖突。CAN網(wǎng)絡(luò )上所有接收器通過(guò)一個(gè)幀的起始位(由隱性轉變?yōu)轱@性)同步。標識符和RTR(遠程傳送請求)位一起組成仲裁區,仲裁區是為了便于媒體訪(fǎng)問(wèn)。DeviceNet不使用RTR位,因此總線(xiàn)訪(fǎng)問(wèn)優(yōu)先權也不將其考慮在內。當設備進(jìn)行發(fā)送時(shí),它要監視(接收)自己發(fā)送的內容,以確定兩者是否一致,從而可以在發(fā)送時(shí)進(jìn)行檢測。在節點(diǎn)發(fā)送仲裁區時(shí),如果發(fā)送了一個(gè)隱性位同時(shí)卻接收到一個(gè)顯性位,它就停止發(fā)送。同時(shí)進(jìn)行發(fā)送的兩個(gè)節點(diǎn)中,仲裁的勝者是具有較低值的11位標識符的節點(diǎn)。CAN還規定了具有29位標識符的數據幀格式,但DeviceNet沒(méi)有使用該格式。
控制區包括兩個(gè)固定位和一個(gè)4位的長(cháng)度區。長(cháng)度區可以是0-8中的任一個(gè)數字,表示數據區中的字節數。0-8字節的數據長(cháng)度對于具有少量但必須頻繁交換I/O數據的低端設備來(lái)說(shuō)很理想。同時(shí)8個(gè)字節使簡(jiǎn)單設備可以靈活地發(fā)送診斷數據,或向驅動(dòng)器發(fā)送速度基準和加速度值。
CRC校驗區是循環(huán)冗余校驗字,CAN控制器用它來(lái)檢測幀錯誤。校驗字通過(guò)對它前面的位進(jìn)行計算得到。ACK應答中的顯性位表明除了發(fā)送者以外至少有一個(gè)接收器接受到報文。
CAN使用包括CRC和自動(dòng)重試在內的多種錯誤檢測和故障限制方法。這些對應用來(lái)說(shuō)高度透明的方法,可以防止故障節點(diǎn)破壞(中斷)網(wǎng)絡(luò )。
評論