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