CAN總線和基于CAN總線的高層協(xié)議
DeviceNet 的標(biāo)識(shí)符分配方案是面向節(jié)點(diǎn)的信息標(biāo)識(shí)符分配,對(duì)于DeviceNet系統(tǒng),最多數(shù)量為64個(gè)的節(jié)點(diǎn),其每一個(gè)節(jié)點(diǎn)擁有一組出自于3個(gè)信息組的標(biāo)識(shí)符,如表1所示。信息組1為每個(gè)設(shè)備的16個(gè)信息提供一高優(yōu)先信息組,報(bào)文ID較小的總是優(yōu)先發(fā)送;信息組2的信息優(yōu)先權(quán)主要取決于節(jié)點(diǎn)的號(hào)碼,信息的MAC- ID可以是目標(biāo)或源地址該段共計(jì)分配512個(gè)標(biāo)識(shí)符。信息組3與信息組1結(jié)構(gòu)相似,但提供給每個(gè)設(shè)備7個(gè)標(biāo)識(shí)符優(yōu)先級(jí)比較低,這組的標(biāo)識(shí)符優(yōu)先權(quán)被平均分配到網(wǎng)絡(luò)上的所有設(shè)備。信息組4只有48個(gè)標(biāo)識(shí)符,不包含任何設(shè)備地址,該組信息主要用于網(wǎng)絡(luò)管理。由于采用了基本CAN類型的控制器,信息濾波的潛能受到限制,信息組2以這種受到限制的潛能去支持多個(gè)設(shè)備,因此選擇了根據(jù)節(jié)點(diǎn)號(hào)碼的濾波功能。即DeviceNet規(guī)定了一個(gè)預(yù)定義主從連接組,以便于觀察主-從系統(tǒng)配置的通訊。下面的信道功能是為了向基于預(yù)定義連接組的主從設(shè)備間的I/O與顯式信息的交換提供支持:
l 顯式信息信道。
l 主機(jī)查詢改變信道的狀態(tài)循環(huán)。
l 從機(jī)I/O改變信道的狀態(tài)循環(huán)。
顯式信息主要服務(wù)于設(shè)備的配置。主機(jī)查詢改變狀態(tài)信道使得主機(jī)可以向設(shè)備請(qǐng)求I/O數(shù)據(jù)并把輸出數(shù)據(jù)發(fā)送到從機(jī)。借助于改變狀態(tài)循環(huán)或從機(jī)I/O(通過(guò)改變狀態(tài)循環(huán)觸發(fā)或通過(guò)應(yīng)用觸發(fā)),從機(jī)將輸入數(shù)據(jù)發(fā)送到主機(jī)。通過(guò)位選通指令,主機(jī)可以從最多為64個(gè)的從機(jī)中請(qǐng)求接收一個(gè)輸入數(shù)據(jù)。由于所有的這些信息都是被響應(yīng)的,所以對(duì)這些不同的功能性分配了8個(gè)信息標(biāo)識(shí)符。如果請(qǐng)求獲取數(shù)據(jù)的位選通沒(méi)有使用一高效的標(biāo)識(shí)符,則通過(guò)目的地址場(chǎng)在從機(jī)上對(duì)信息進(jìn)行濾波。
CANopen 系統(tǒng)的標(biāo)識(shí)符分配使用在CAL子集,其中CMS(CAN-based Message Specification)將信息標(biāo)識(shí)符定義了8個(gè)優(yōu)先級(jí),每個(gè)級(jí)別擁有220個(gè)ID,范圍從1~1760,剩余的標(biāo)志(0,1761~2031)保留給NMT(Network MessagemenT)。在CANopen的系統(tǒng)中,可能訪問(wèn)的節(jié)點(diǎn)為128個(gè),所以保留128個(gè)信息標(biāo)識(shí)符作為節(jié)點(diǎn)保護(hù)。
在最小系統(tǒng)配置中,CANopen規(guī)定了一個(gè)面向設(shè)備的標(biāo)識(shí)符分配方案,這種方法可以供127臺(tái)設(shè)備默認(rèn)連接到一臺(tái)主設(shè)備上(如圖1所示)。通過(guò)4位的功能代碼可以區(qū)分某些情況的16種基本功能,這些情況分別是:2個(gè)數(shù)據(jù)過(guò)程信道的接收和發(fā)送、一個(gè)點(diǎn)對(duì)點(diǎn)信道、節(jié)點(diǎn)狀態(tài)控制、節(jié)點(diǎn)保護(hù)、緊急情況通報(bào)以及接收同步信息和有時(shí)間標(biāo)記的信息。由于信息的優(yōu)先級(jí)由它的功能決定,所以功能代碼位于信息標(biāo)識(shí)符的最高幾位。
圖2 CANopen最小系統(tǒng)標(biāo)識(shí)符分配方案
2.2 交換過(guò)程數(shù)據(jù)
在一分布式自動(dòng)化系統(tǒng)的設(shè)備之間發(fā)送過(guò)程數(shù)據(jù)是CAN 通訊系統(tǒng)的目的,它應(yīng)以最高效率的方式完成。因此,對(duì)于應(yīng)用規(guī)定的數(shù)據(jù)(過(guò)程數(shù)據(jù)、I/O數(shù)據(jù))其傳送應(yīng)該根據(jù)產(chǎn)生者使用者的模型來(lái)執(zhí)行,其意思就是說(shuō), 通過(guò)相關(guān)的信息ID推斷所發(fā)送的數(shù)據(jù)。信息的產(chǎn)生者和使用者在這種情況下被假設(shè)擁有使用數(shù)據(jù)的知識(shí)或明白發(fā)送數(shù)據(jù)的含義。
在CAN基本協(xié)議中,各個(gè)節(jié)點(diǎn)采用規(guī)定的模式交換數(shù)據(jù)。CAN的數(shù)據(jù)流由數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和超載幀4種不同的幀類型所表示和控制。數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器。遠(yuǎn)程幀由總線單元發(fā)出,請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀。任何單元檢測(cè)到一總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。超載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。
但是,DeviceNet和CANopen在過(guò)程數(shù)據(jù)交換采用不同的解決方案。DeviceNet過(guò)程數(shù)據(jù)通過(guò)“I/O信息”傳送,CANopen過(guò)程數(shù)據(jù)通過(guò)“過(guò)程數(shù)據(jù)對(duì)象”(PDOs Process Data Object)傳送。
DeviceNet 支持下列的觸發(fā)模式:循環(huán)、改變狀態(tài)和應(yīng)用對(duì)象觸發(fā)。通過(guò)循環(huán)觸發(fā)的模式當(dāng)指定信息的傳送觸發(fā)定時(shí)器終止時(shí),信息的發(fā)送就會(huì)被啟動(dòng)。通過(guò)狀態(tài)改變的模式當(dāng)檢測(cè)到應(yīng)用對(duì)象狀態(tài)改變時(shí),信息發(fā)送就會(huì)開(kāi)始,當(dāng)一特定間隔時(shí)間結(jié)束而沒(méi)有發(fā)送信息,信息也會(huì)被發(fā)送。通過(guò)應(yīng)用對(duì)象觸發(fā)模式,應(yīng)用對(duì)象可以決定何時(shí)觸發(fā)信息的發(fā)送,當(dāng)一特定間隔時(shí)間結(jié)束而沒(méi)有發(fā)送信息時(shí)信息也會(huì)被發(fā)送。
CANopen的觸發(fā)模式劃分為事件、應(yīng)用請(qǐng)求或預(yù)定義同步信息接收后的觸發(fā)模式。事件觸發(fā)可以在子協(xié)議(Profile)或應(yīng)用指定的事件(異步 PDO)中產(chǎn)生。PDO的發(fā)送也可以通過(guò)接收一遠(yuǎn)程請(qǐng)求信息而被觸發(fā)。“同步PDO” 是通過(guò)接收同步信息的一指定號(hào)碼而被循環(huán)觸發(fā)的。同步信息也可以被用作為整個(gè)網(wǎng)絡(luò)中數(shù)據(jù)獲得的同步以及輸出數(shù)據(jù)濾波的同步。傳輸實(shí)時(shí)數(shù)據(jù)時(shí),數(shù)據(jù)從一個(gè)生產(chǎn)者傳到一個(gè)或多個(gè)消費(fèi)者,傳送限制在1到8個(gè)字節(jié),即一個(gè)PDO可以傳輸最多64個(gè)數(shù)字I/O值或者4個(gè)16位的AD值。
數(shù)據(jù)交換過(guò)程中,網(wǎng)絡(luò)設(shè)備會(huì)產(chǎn)生或者消耗一個(gè)以上的映射應(yīng)用對(duì)象。DeviceNet和CANopen為靈活地將應(yīng)用數(shù)據(jù)映射到通訊對(duì)象而提供了非常完善的方法。
評(píng)論