| 關(guān)鍵詞: CAN CANopen DeviceNet 協(xié)議應(yīng)用層 1 引言 從1982年2月RobertBosch公司在SAE(汽車(chē)工程協(xié)會(huì))大會(huì)上宣布CAN控制器局部網(wǎng)的那一刻開(kāi)始, CAN已經(jīng)走過(guò)20多年的歷史。1992年,Mercedes(奔馳)在他們的高級(jí)客車(chē)中使用CAN技術(shù),相繼Volvo、Volkswagen、BMW 等幾十家公司都在各自的汽車(chē)上應(yīng)用CAN技術(shù)。今天,在歐洲幾乎每一輛新客車(chē)均裝有CAN控制器局部網(wǎng)。CAN技術(shù)近年在我國(guó)發(fā)展也比較迅猛,國(guó)內(nèi)的高級(jí)客車(chē)也都開(kāi)始應(yīng)用CAN技術(shù)。 CAN的協(xié)議在應(yīng)用過(guò)程中,用戶(hù)層直接訪問(wèn)數(shù)據(jù)鏈接層,每個(gè)廠商提供的數(shù)據(jù)調(diào)用方式各不相同,而CAN的標(biāo)準(zhǔn)沒(méi)有規(guī)定應(yīng)用層的相關(guān)信息,因此,CAN設(shè)備的兼容性和互換性不是很規(guī)范。而且,隨著應(yīng)用領(lǐng)域的擴(kuò)展,CAN協(xié)議在實(shí)際工業(yè)控制應(yīng)用過(guò)程中,即使執(zhí)行一些簡(jiǎn)單的分布式網(wǎng)絡(luò),除了標(biāo)準(zhǔn)中的物理層和數(shù)據(jù)鏈接層外,客戶(hù)還要求有更多的功能,如發(fā)送長(zhǎng)于8字節(jié)的數(shù)據(jù)塊、響應(yīng)和確定數(shù)據(jù)傳送、標(biāo)識(shí)符分配、網(wǎng)絡(luò)節(jié)點(diǎn)的狀態(tài)等。如果這些功能正確執(zhí)行,通信和應(yīng)用過(guò)程的界線(xiàn)就十分清晰,將明顯提高各個(gè)廠商之間的設(shè)備互換性和兼容性。鑒于這些原因,產(chǎn)生了一些針對(duì)不同的目的和要求的基于CAN協(xié)議的較高層協(xié)議標(biāo)準(zhǔn)。下面就對(duì)CAN協(xié)議及其較高層協(xié)議DeviceNet和CANopen進(jìn)行一些比較。 2 三種協(xié)議的比較項(xiàng)目 CAN(Controller Area Network)1993年形成了CAN總線(xiàn)國(guó)際標(biāo)準(zhǔn),2003年又進(jìn)行了修訂,是BOSCH公司為改進(jìn)汽車(chē)內(nèi)部電器線(xiàn)路開(kāi)發(fā)的一種總線(xiàn)。CAN協(xié)議的實(shí)現(xiàn)簡(jiǎn)單,成本低,可靠性高,抗干擾能力強(qiáng)。 DeviceNet在美國(guó)市場(chǎng)占有率比較高,它是由美國(guó)Rockwell公司在CAN的基礎(chǔ)上推出的一種低成本的通信鏈接,它使用抽象的對(duì)象模型,其協(xié)議和規(guī)范都是開(kāi)放的,用戶(hù)將設(shè)備連接到系統(tǒng)時(shí)無(wú)需購(gòu)買(mǎi)硬件、軟件和許可權(quán)。 CANopen 是由CiA(CAN in Aoutmation)成員編制,主要盛行于歐洲,它在通訊和系統(tǒng)服務(wù)以及網(wǎng)絡(luò)管理方面使用了CAL(CAN Application Layer)子集,設(shè)備建模是借助于對(duì)象目錄而基于設(shè)備功能性的描述,標(biāo)準(zhǔn)設(shè)備以設(shè)備子協(xié)議的形式規(guī)定。CANopen標(biāo)準(zhǔn)由CiA同行機(jī)構(gòu)集團(tuán)支持,設(shè)備子協(xié)議由CiA中專(zhuān)門(mén)的同行機(jī)構(gòu)制定。 本文就以下項(xiàng)目對(duì)三種協(xié)議進(jìn)行比較。 (1) 信息標(biāo)識(shí)符的分配; (2) 數(shù)據(jù)交換的方法; (3) 建立信息連接的方法; (4) 網(wǎng)絡(luò)管理; (5) 設(shè)備建模和子協(xié)議。 2.1 信息標(biāo)識(shí)符的分配 由于CAN采用非破壞性的仲裁方法,因此,標(biāo)識(shí)符決定了塊信息傳送的優(yōu)先權(quán)和信息等待時(shí)間,信息標(biāo)識(shí)符的分配的方法被認(rèn)為是CAN系統(tǒng)的主要結(jié)構(gòu)元素,它同時(shí)也影響了信息濾波和標(biāo)識(shí)符的使用效率問(wèn)題。 由于標(biāo)識(shí)符分配的方法不同,不同的協(xié)議在解決方案已把不同的原則考慮進(jìn)去。CAN基本協(xié)議和DeviceNet的標(biāo)識(shí)符采用預(yù)定義的方式,不同的是在CAN 協(xié)議中節(jié)點(diǎn)標(biāo)識(shí)符在設(shè)計(jì)時(shí)被確定后就不能動(dòng)態(tài)更改,而DeviceNet每個(gè)節(jié)點(diǎn)預(yù)定義多個(gè)標(biāo)識(shí)符,不同的功能標(biāo)識(shí)符優(yōu)先級(jí)不同。在CANopen協(xié)議中,除了預(yù)定義了一些用于管理的標(biāo)識(shí)符外,其它標(biāo)識(shí)符統(tǒng)一組成一個(gè)通用的標(biāo)識(shí)符庫(kù),用戶(hù)可根據(jù)設(shè)備的需要進(jìn)行手動(dòng)或者自動(dòng)分配所有的設(shè)備標(biāo)識(shí)符。這樣的分配方案用戶(hù)就可以完全自由決定標(biāo)識(shí)符的使用及系統(tǒng)實(shí)時(shí)通訊的過(guò)程。 表1 DeviceNet關(guān)于CAN標(biāo)識(shí)符的使用分配  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類(lèi)型的控制器,信息濾波的潛能受到限制,信息組2以這種受到限制的潛能去支持多個(gè)設(shè)備,因此選擇了根據(jù)節(jié)點(diǎn)號(hào)碼的濾波功能。即DeviceNet規(guī)定了一個(gè)預(yù)定義主從連接組,以便于觀察主-從系統(tǒng)配置的通訊。下面的信道功能是為了向基于預(yù)定義連接組的主從設(shè)備間的I/O與顯式信息的交換提供支持: l 顯式信息信道。 l 主機(jī)查詢(xún)改變信道的狀態(tài)循環(huán)。 l 從機(jī)I/O改變信道的狀態(tài)循環(huán)。 顯式信息主要服務(wù)于設(shè)備的配置。主機(jī)查詢(xún)改變狀態(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í)符的最高幾位。 |