關(guān)鍵字:CAN總線 光電經(jīng)緯儀 遠(yuǎn)程監(jiān)控
1 引言
CAN (Controller Area Network,控制器局域網(wǎng))總線最初是德國BOSCH公司為汽車的監(jiān)測、控制系統(tǒng)而設(shè)計的一種有效支持分布式實時控制的串行通信網(wǎng)絡(luò),由于CAN總線具有通信率高、實時性好、可靠性高、連接方便和性價比高等特點,推動了其應(yīng)用開發(fā)的迅速發(fā)展。由于CAN總線本身的特點,其應(yīng)用范圍目前已不再局限于汽車行業(yè),而擴展到了機械工業(yè)、紡織機械、農(nóng)用機械、機器人、數(shù)控機床、醫(yī)療機械、家用電器及傳感器等領(lǐng)域。CAN總線是目前惟一有國際標(biāo)準(zhǔn)的現(xiàn)場總線,并已被公認(rèn)為最有前途的現(xiàn)場總線之一。
然而,隨著計算機、控制、通信、網(wǎng)絡(luò)等信息技術(shù)的發(fā)展, 信息交換的領(lǐng)域已經(jīng)覆蓋了工廠、企業(yè)乃至世界各地的市場。為實現(xiàn)工業(yè)企業(yè)的綜合自動化, 需要建立包含從工業(yè)現(xiàn)場設(shè)備層到企業(yè)控制層、管理層等各個層次的網(wǎng)絡(luò)平臺。以太網(wǎng)以其能便捷地訪問遠(yuǎn)程系統(tǒng)、共享/訪問多數(shù)據(jù)庫等優(yōu)勢,許多現(xiàn)場總線系統(tǒng)最終都連接到以太網(wǎng)。
本文從大型光電跟蹤設(shè)備的網(wǎng)絡(luò)化出發(fā),設(shè)計一種基于CAN總線網(wǎng)絡(luò)的光電經(jīng)緯儀的遠(yuǎn)程通信方案。
2 光電經(jīng)緯儀內(nèi)部通信網(wǎng)絡(luò)設(shè)計與實現(xiàn)
2.1 CAN總線技術(shù)特點
CAN總線可有效支持分布式控制或?qū)崟r控制。該總線的通信介質(zhì)可以是雙絞線、同軸電纜或光纖,其主要特點如下: CAN總線為多主站總線,各節(jié)點可在任意時刻向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,且不分主從: CAN總線采用獨特的非破壞性總線仲裁技術(shù),高優(yōu)先級節(jié)點優(yōu)先傳送數(shù)據(jù),故實時性好; CAN總線具有點對點、一點對多點及全局廣播傳送數(shù)據(jù)的功能;CAN總線采用短幀結(jié)構(gòu),每幀有效字節(jié)數(shù)最多為8個,數(shù)據(jù)傳輸時間短,并有CRC及其它校驗措施,數(shù)據(jù)出錯率極低; CAN總線上某一節(jié)點出現(xiàn)嚴(yán)重錯誤時,可自動脫離總線,而總線上的其他操作不受影響; CAN總線系統(tǒng)擴充時,可直接將新節(jié)點掛在總線上,因而走線少,系統(tǒng)擴充容易,改型靈活; CAN總線的最大傳輸速率可達(dá)1Mb/s,直接通信距離最遠(yuǎn)可達(dá)到10km(速率在5kbps以下); CAN總線上的節(jié)點數(shù)取決于總線驅(qū)動電路。在標(biāo)準(zhǔn)幀(11位報文標(biāo)識符)時可達(dá)到110個,而在擴展幀(29位報文標(biāo)識符)時,個數(shù)不受限。
2.2 光電經(jīng)緯儀CAN總線網(wǎng)絡(luò)系統(tǒng)架構(gòu)
光電經(jīng)緯儀之間的實時通信在傳統(tǒng)上使用串行接口,但其存在較多的先天性缺陷:通信速率低、傳輸距離短、線路利用率低、容錯性差、不易擴展、難以維修和測試。CAN總線應(yīng)用于光電經(jīng)緯儀內(nèi)部通訊可以簡化系統(tǒng)結(jié)構(gòu),提高通訊實時性、傳輸速率,降低誤碼率,具有較好的抗電磁干擾性和系統(tǒng)的可擴展性。
在任何測控系統(tǒng)中,都要通過測量裝置獲取環(huán)境和相關(guān)的輸入?yún)?shù),然后執(zhí)行控制算法,做出相應(yīng)的控制決策,啟動執(zhí)行設(shè)備來實現(xiàn)對系統(tǒng)的控制。基于現(xiàn)場總線建立的測控系統(tǒng)將單個分散的測量儀表和控制設(shè)備變成網(wǎng)絡(luò)節(jié)點,將控制系統(tǒng)中所需的基本控制、補償計算、參數(shù)修改、報警、顯示、監(jiān)控、優(yōu)化等功能也分散到各個節(jié)點中。因而總線上的節(jié)點應(yīng)該具有總線通信功能、測量或控制功能,還要具有相當(dāng)?shù)膮f(xié)調(diào)能力,這必然離不開微處理器,這種類型的節(jié)點稱為智能節(jié)點。
大型光電經(jīng)緯儀是一種多傳感器融合的測控設(shè)備,一般由機上數(shù)據(jù)通信系統(tǒng),機上控制系統(tǒng),調(diào)焦系統(tǒng),激光系統(tǒng),衛(wèi)星電視系統(tǒng),伺服系統(tǒng),紅外電視系統(tǒng),編碼器電控系統(tǒng)等分系統(tǒng)組成,不同型號的經(jīng)緯儀內(nèi)部系統(tǒng)構(gòu)成不同。
以上述八個系統(tǒng)組成為例設(shè)計光電經(jīng)緯儀內(nèi)部通信系統(tǒng)架構(gòu)[1]如下:
圖1 光電經(jīng)緯儀內(nèi)部CAN通信網(wǎng)絡(luò)
在圖1所示CAN總線網(wǎng)絡(luò)中,每一個分系統(tǒng)都是一個智能節(jié)點,各分系統(tǒng)共用總線實現(xiàn)系統(tǒng)之間的數(shù)據(jù)傳送。在這種由CAN總線網(wǎng)絡(luò)構(gòu)成的通信系統(tǒng)中,每一個分系統(tǒng)完成自身的數(shù)據(jù)的采集、處理,把需要跟其它分系統(tǒng)交互通信的信息發(fā)送到總線上,比如狀態(tài)信息、命令信息等等。各個分系統(tǒng)之間可以完成點對點,點對多點以及廣播式數(shù)據(jù)通信。
2.3 CAN智能節(jié)點的硬件架構(gòu)
本系統(tǒng)中,CAN節(jié)點采用: ECU(AT89C51)+CAN控制器(SJA1000)+CAN收發(fā)器(PCA82C250)的電路結(jié)構(gòu),CAN總線控制器、總線驅(qū)動器和單片機連接基本方法[2]如圖2:
2.4光電經(jīng)緯儀內(nèi)部通信系統(tǒng)中CAN應(yīng)用層協(xié)議
本協(xié)議遵循CAN2.0B規(guī)范,根據(jù)經(jīng)緯儀內(nèi)部各系統(tǒng)相互之間通信方式的特點,采用源→目的方法,每個節(jié)點都有自己固定的標(biāo)識地址,且節(jié)點數(shù)小于64,設(shè)計時把機上數(shù)據(jù)通信系統(tǒng)作為主節(jié)點,而將機上控制系統(tǒng),調(diào)焦系統(tǒng),激光系統(tǒng),衛(wèi)星電視系統(tǒng),導(dǎo)航電視系
圖2 CAN總線接口電路原理圖
統(tǒng),紅外電視系統(tǒng),編碼器電控系統(tǒng)設(shè)置為從節(jié)點。本協(xié)議可完成以下功能: (1)特定信息的廣播(廣播幀); (2)任意節(jié)點之間的連接(單播幀); (3)點對多點的信息交換(組播幀)。 本設(shè)計中SJA1000工作在PeliCAN模式,它支持標(biāo)準(zhǔn)幀和擴展幀兩種幀格式,采用單濾波和雙濾波兩種模式實現(xiàn)節(jié)點之間的組播、廣播和單播[5]。組播幀采用標(biāo)準(zhǔn)幀格式,單濾波模式,廣播和單播幀采用擴展幀格式,雙濾波模式。 組播、廣播和單播幀的標(biāo)識符分配如圖3所示:
組播 |
28 |
27 |
26 |
25 |
24 |
23~18 |
DB1.~DB1.4 |
DB1.~DB1.0 |
|||||||
1 |
源節(jié)點地址 |
自定義 |
目標(biāo)組編號 |
||||||||||||
廣播 |
28 |
27 |
26 |
25 |
24 |
23~13 |
|
||||||||
1 |
源節(jié)點地址 |
自定義 |
|||||||||||||
單播 |
28 |
27~24 |
24~21 |
20~17 |
16~13 |
||||||||||
0 |
源節(jié)點地址 |
目標(biāo)節(jié)點地址 |
自定義 |
目標(biāo)節(jié)點所在組編號 |
|||||||||||
圖3 幀標(biāo)識符分配
自定義的標(biāo)識符可以設(shè)置成命令屬性或狀態(tài)、報告等等。對所有的命令或狀態(tài)、數(shù)據(jù)、報告屬性、除定時采集發(fā)送的數(shù)據(jù)外,原則上均需應(yīng)答(發(fā)送確認(rèn)幀以保證通訊正常)。
3 光電經(jīng)緯儀內(nèi)部CAN網(wǎng)絡(luò)與Internet連接的設(shè)計與實現(xiàn)
人們往往采用嵌入式技術(shù)設(shè)計一個僅能連接以太網(wǎng)與CAN 總線的網(wǎng)關(guān)用來實現(xiàn)CAN網(wǎng)絡(luò)與以太網(wǎng)的連接。將這種應(yīng)用方案應(yīng)用在大型光電跟蹤設(shè)備上就可以實現(xiàn)對光電跟蹤設(shè)備的遠(yuǎn)程監(jiān)控以及信息的共享。通過遠(yuǎn)程控制來實現(xiàn)不適合人員長期操控或惡劣環(huán)境下的無
人操作測量,無人操控測量可以減少測量結(jié)果中的人為誤差,使測控更加地精確。
3.1 嵌入式網(wǎng)關(guān)設(shè)計
在本設(shè)計中,嵌入式網(wǎng)關(guān)通過以太網(wǎng)控制器接口與以太網(wǎng)相連,通過CAN控制器接口與現(xiàn)場總線相連,硬件連接框圖如圖4所示。
圖4中采用集成CAN通信控制器的MC68HC05X16單片機和RTL8019AS以太網(wǎng)控制器來實現(xiàn)CAN與以太網(wǎng)的連接。RTL8019AS是臺灣Realtek公司制造的一種高集成度的全雙工10Mbps 以太網(wǎng)控制芯片[4],可實現(xiàn)基于Ethernet協(xié)議的MAC層的全部功能,內(nèi)置16KB的SRAM、雙DMA通道和FIFO,可完成數(shù)據(jù)包的接收和發(fā)送功能。MC68HC05X16采用RTL8019AS同以太網(wǎng)上的操作站進(jìn)行數(shù)據(jù)交換,通過內(nèi)置CAN控制器與CAN總線上其它節(jié)點進(jìn)行數(shù)據(jù)交換。在交互過程中MC68HC05X16依據(jù)應(yīng)用要求對數(shù)據(jù)進(jìn)行處理。
處理器MC68HC05XI6負(fù)責(zé)對以太網(wǎng)控制器RTL8019AS和SJAIO00的控制。微處理器內(nèi)駐有TCP/IP通信協(xié)議和CAN協(xié)議,完成以太網(wǎng)協(xié)議和CAN總線協(xié)議轉(zhuǎn)換,實現(xiàn)以太網(wǎng)和CAN間的數(shù)據(jù)通信。
4 軟件設(shè)計
通信軟件包括RTLS019AS和CAN的發(fā)送、接收程序。對于CAN的發(fā)送接收程序在文獻(xiàn)[2]中已給出詳細(xì)程序,由于篇幅限制此處不再贅述。對RTLS019AS的軟件操作,有查詢和中斷方式有實時性要求的環(huán)境一般采用中斷方式處理RTLS019AS數(shù)據(jù)的收發(fā)。程序入口根據(jù)讀取的RTLS019AS中斷狀態(tài)寄存器(ISR)值進(jìn)行相應(yīng)處理
以太網(wǎng)通信部分的軟件主要有兩部分:一是RTL8019AS的驅(qū)動程序(包括RTL8019AS初始化、以太網(wǎng)報文的接收和發(fā)送);二是為實現(xiàn)數(shù)據(jù)遠(yuǎn)程傳輸而進(jìn)行的TCP/IP協(xié)議處理,將從光電經(jīng)緯儀采集到的數(shù)據(jù)按TCP/IP協(xié)議進(jìn)行封裝,使數(shù)據(jù)能夠通過Internet直接傳輸?shù)侥康闹鳈C上。RTL8019AS初始化的過程實際上就是完成對RTL8019AS的內(nèi)部寄存器的配置,確定發(fā)送和接收條件,并對以太網(wǎng)控制芯片緩沖區(qū)進(jìn)行劃分。
收發(fā)數(shù)據(jù)的過程實際上就是通過DMA對RTL8019AS內(nèi)部RAM進(jìn)行讀寫操作的過程[3]。8019接收緩沖區(qū)實際上是一個循環(huán)FIFO(先進(jìn)先出)隊列,芯片內(nèi)RAM讀寫操作不采用中斷方式,而是以查詢方式,即CURR(當(dāng)前頁寄存器)值是否等于BNRY+1來判斷是否接收到新數(shù)據(jù)。接收流程圖如圖5所示
圖5 RTL8019AS數(shù)據(jù)接收流程圖
當(dāng)MC68HC05XI6接收到來自以太網(wǎng)的TCP數(shù)據(jù)報,標(biāo)志位置1,在CAN處理子程序中,根據(jù)該標(biāo)志位判斷是否有數(shù)據(jù)要發(fā)送給另一節(jié)點。在具體調(diào)試時使一個CAN節(jié)點每隔一段時間向網(wǎng)關(guān)轉(zhuǎn)換模塊發(fā)送一些數(shù)據(jù)。網(wǎng)關(guān)接收數(shù)據(jù)后,通過以太網(wǎng)轉(zhuǎn)發(fā)給上位機,上位機通過超級終端顯示接收的數(shù)據(jù)。同樣,可以通過超級終端發(fā)送一些鍵入的數(shù)據(jù)。經(jīng)過轉(zhuǎn)換模塊傳給另一個CAN節(jié)點,從而改變它的一些內(nèi)部數(shù)據(jù)。
5 結(jié)束語
本文作者創(chuàng)新點是將CAN總線網(wǎng)絡(luò)應(yīng)用于大型光電測控設(shè)備,從而簡化了設(shè)備的龐大復(fù)雜的內(nèi)部結(jié)構(gòu),并且由于CAN自身的優(yōu)點,使得設(shè)備的可靠性、數(shù)據(jù)傳輸速率均得到提高,并且降低了誤碼率?,F(xiàn)場技術(shù)與控制技術(shù)相結(jié)合使現(xiàn)場總線在以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)中得到了廣泛的應(yīng)用,CAN網(wǎng)絡(luò)與以太網(wǎng)的連接可以實現(xiàn)對光電經(jīng)緯儀的遠(yuǎn)程操控以及信息共享,這已成為測控領(lǐng)域的發(fā)展趨勢。
參考文獻(xiàn):
[1]劉曉晶,續(xù)志軍,絕對式光電軸角編碼器CAN總線接口[J],微計算機信息,2007,23:1-2
[2]饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN 原理與應(yīng)用技術(shù)[M],北京航空航天大學(xué)出版社
[3]杜尚豐,曹曉鐘,徐津.CAN總線測控技術(shù)及其應(yīng)用[M],電子工業(yè)出版社
[4] 林士兵,袁 焱,楊煜普.TCP/IP 網(wǎng)絡(luò)與CAN 網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計與實現(xiàn)[J],計算機工程2007.02
[5]孫立輝,和志強.基于SJA1000的CAN總線系統(tǒng)中廣播和組播的實現(xiàn)[J],儀表技術(shù)與傳感器,2003