關(guān)鍵字:CAN總線 光電經(jīng)緯儀 遠(yuǎn)程監(jiān)控
1 引言
CAN (Controller Area Network,控制器局域網(wǎng))總線最初是德國BOSCH公司為汽車的監(jiān)測,、控制系統(tǒng)而設(shè)計(jì)的一種有效支持分布式實(shí)時(shí)控制的串行通信網(wǎng)絡(luò),,由于CAN總線具有通信率高、實(shí)時(shí)性好,、可靠性高,、連接方便和性價(jià)比高等特點(diǎn),推動了其應(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總線是目前惟一有國際標(biāo)準(zhǔn)的現(xiàn)場總線,,并已被公認(rèn)為最有前途的現(xiàn)場總線之一,。
然而,隨著計(jì)算機(jī)、控制,、通信,、網(wǎng)絡(luò)等信息技術(shù)的發(fā)展, 信息交換的領(lǐng)域已經(jīng)覆蓋了工廠、企業(yè)乃至世界各地的市場,。為實(shí)現(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è)計(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)先級節(jié)點(diǎn)優(yōu)先傳送數(shù)據(jù),,故實(shí)時(shí)性好; CAN總線具有點(diǎn)對點(diǎn),、一點(diǎn)對多點(diǎn)及全局廣播傳送數(shù)據(jù)的功能,;CAN總線采用短幀結(jié)構(gòu),每幀有效字節(jié)數(shù)最多為8個,,數(shù)據(jù)傳輸時(shí)間短,,并有CRC及其它校驗(yàn)措施,數(shù)據(jù)出錯率極低,; CAN總線上某一節(jié)點(diǎn)出現(xiàn)嚴(yán)重錯誤時(shí),,可自動脫離總線,而總線上的其他操作不受影響,; 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ū)動電路,。在標(biāo)準(zhǔn)幀(11位報(bào)文標(biāo)識符)時(shí)可達(dá)到110個,而在擴(kuò)展幀(29位報(bào)文標(biāo)識符)時(shí),,個數(shù)不受限,。
2.2 光電經(jīng)緯儀CAN總線網(wǎng)絡(luò)系統(tǒng)架構(gòu)
光電經(jīng)緯儀之間的實(shí)時(shí)通信在傳統(tǒng)上使用串行接口,但其存在較多的先天性缺陷:通信速率低,、傳輸距離短,、線路利用率低、容錯性差,、不易擴(kuò)展、難以維修和測試,。CAN總線應(yīng)用于光電經(jīng)緯儀內(nèi)部通訊可以簡化系統(tǒng)結(jié)構(gòu),,提高通訊實(shí)時(shí)性、傳輸速率,,降低誤碼率,,具有較好的抗電磁干擾性和系統(tǒng)的可擴(kuò)展性。
在任何測控系統(tǒng)中,,都要通過測量裝置獲取環(huán)境和相關(guān)的輸入?yún)?shù),,然后執(zhí)行控制算法,做出相應(yīng)的控制決策,,啟動執(zhí)行設(shè)備來實(shí)現(xiàn)對系統(tǒng)的控制,。基于現(xiàn)場總線建立的測控系統(tǒng)將單個分散的測量儀表和控制設(shè)備變成網(wǎng)絡(luò)節(jié)點(diǎn),,將控制系統(tǒng)中所需的基本控制,、補(bǔ)償計(jì)算、參數(shù)修改,、報(bào)警,、顯示、監(jiān)控,、優(yōu)化等功能也分散到各個節(jié)點(diǎn)中,。因而總線上的節(jié)點(diǎn)應(yīng)該具有總線通信功能、測量或控制功能,,還要具有相當(dāng)?shù)膮f(xié)調(diào)能力,,這必然離不開微處理器,,這種類型的節(jié)點(diǎn)稱為智能節(jié)點(diǎn)。
大型光電經(jīng)緯儀是一種多傳感器融合的測控設(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)組成,不同型號的經(jīng)緯儀內(nèi)部系統(tǒng)構(gòu)成不同,。
以上述八個系統(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ò)中,,每一個分系統(tǒng)都是一個智能節(jié)點(diǎn),各分系統(tǒng)共用總線實(shí)現(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)之間可以完成點(diǎn)對點(diǎn),,點(diǎn)對多點(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ū)動器和單片機(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),,采用源→目的方法,每個節(jié)點(diǎn)都有自己固定的標(biāo)識地址,,且節(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)對多點(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)識符分配如圖3所示:
組播 |
28 |
27 |
26 |
25 |
24 |
23~18 |
DB1.~DB1.4 |
DB1.~DB1.0 |
|||||||
1 |
源節(jié)點(diǎn)地址 |
自定義 |
目標(biā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)所在組編號 |
|||||||||||
圖3 幀標(biāo)識符分配
自定義的標(biāo)識符可以設(shè)置成命令屬性或狀態(tài),、報(bào)告等等,。對所有的命令或狀態(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ì)一個僅能連接以太網(wǎng)與CAN 總線的網(wǎng)關(guān)用來實(shí)現(xiàn)CAN網(wǎng)絡(luò)與以太網(wǎng)的連接,。將這種應(yīng)用方案應(yīng)用在大型光電跟蹤設(shè)備上就可以實(shí)現(xiàn)對光電跟蹤設(shè)備的遠(yuǎn)程監(jiān)控以及信息的共享。通過遠(yuǎn)程控制來實(shí)現(xiàn)不適合人員長期操控或惡劣環(huán)境下的無
人操作測量,,無人操控測量可以減少測量結(jié)果中的人為誤差,使測控更加地精確,。
3.1 嵌入式網(wǎng)關(guān)設(shè)計(jì)
在本設(shè)計(jì)中,,嵌入式網(wǎng)關(guān)通過以太網(wǎng)控制器接口與以太網(wǎng)相連,通過CAN控制器接口與現(xiàn)場總線相連,,硬件連接框圖如圖4所示,。
圖4中采用集成CAN通信控制器的MC68HC05X16單片機(jī)和RTL8019AS以太網(wǎng)控制器來實(shí)現(xiàn)CAN與以太網(wǎng)的連接。RTL8019AS是臺灣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ù)交換,通過內(nèi)置CAN控制器與CAN總線上其它節(jié)點(diǎn)進(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)換,,實(shí)現(xiàn)以太網(wǎng)和CAN間的數(shù)據(jù)通信,。
4 軟件設(shè)計(jì)
通信軟件包括RTLS019AS和CAN的發(fā)送、接收程序,。對于CAN的發(fā)送接收程序在文獻(xiàn)[2]中已給出詳細(xì)程序,,由于篇幅限制此處不再贅述。對RTLS019AS的軟件操作,,有查詢和中斷方式有實(shí)時(shí)性要求的環(huán)境一般采用中斷方式處理RTLS019AS數(shù)據(jù)的收發(fā),。程序入口根據(jù)讀取的RTLS019AS中斷狀態(tài)寄存器(ISR)值進(jìn)行相應(yīng)處理
以太網(wǎng)通信部分的軟件主要有兩部分:一是RTL8019AS的驅(qū)動程序(包括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ù)能夠通過Internet直接傳輸?shù)侥康闹鳈C(jī)上,。RTL8019AS初始化的過程實(shí)際上就是完成對RTL8019AS的內(nèi)部寄存器的配置,,確定發(fā)送和接收條件,并對以太網(wǎng)控制芯片緩沖區(qū)進(jìn)行劃分,。
收發(fā)數(shù)據(jù)的過程實(shí)際上就是通過DMA對RTL8019AS內(nèi)部RAM進(jìn)行讀寫操作的過程[3],。8019接收緩沖區(qū)實(shí)際上是一個循環(huán)FIFO(先進(jìn)先出)隊(duì)列,芯片內(nèi)RAM讀寫操作不采用中斷方式,,而是以查詢方式,,即CURR(當(dāng)前頁寄存器)值是否等于BNRY+1來判斷是否接收到新數(shù)據(jù)。接收流程圖如圖5所示
圖5 RTL8019AS數(shù)據(jù)接收流程圖
當(dāng)MC68HC05XI6接收到來自以太網(wǎng)的TCP數(shù)據(jù)報(bào),,標(biāo)志位置1,,在CAN處理子程序中,根據(jù)該標(biāo)志位判斷是否有數(shù)據(jù)要發(fā)送給另一節(jié)點(diǎn),。在具體調(diào)試時(shí)使一個CAN節(jié)點(diǎn)每隔一段時(shí)間向網(wǎng)關(guān)轉(zhuǎn)換模塊發(fā)送一些數(shù)據(jù),。網(wǎng)關(guān)接收數(shù)據(jù)后,通過以太網(wǎng)轉(zhuǎn)發(fā)給上位機(jī),,上位機(jī)通過超級終端顯示接收的數(shù)據(jù),。同樣,可以通過超級終端發(fā)送一些鍵入的數(shù)據(jù),。經(jīng)過轉(zhuǎn)換模塊傳給另一個CAN節(jié)點(diǎn),,從而改變它的一些內(nèi)部數(shù)據(jù)。
5 結(jié)束語
本文作者創(chuàng)新點(diǎn)是將CAN總線網(wǎng)絡(luò)應(yīng)用于大型光電測控設(shè)備,,從而簡化了設(shè)備的龐大復(fù)雜的內(nèi)部結(jié)構(gòu),,并且由于CAN自身的優(yōu)點(diǎn),使得設(shè)備的可靠性,、數(shù)據(jù)傳輸速率均得到提高,,并且降低了誤碼率。現(xiàn)場技術(shù)與控制技術(shù)相結(jié)合使現(xiàn)場總線在以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)中得到了廣泛的應(yīng)用,CAN網(wǎng)絡(luò)與以太網(wǎng)的連接可以實(shí)現(xiàn)對光電經(jīng)緯儀的遠(yuǎn)程操控以及信息共享,,這已成為測控領(lǐng)域的發(fā)展趨勢,。
參考文獻(xiàn):
[1]劉曉晶,續(xù)志軍,,絕對式光電軸角編碼器CAN總線接口[J],,微計(jì)算機(jī)信息,2007,,23:1-2
[2]饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(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è)計(jì)與實(shí)現(xiàn)[J],計(jì)算機(jī)工程2007.02
[5]孫立輝,,和志強(qiáng).基于SJA1000的CAN總線系統(tǒng)中廣播和組播的實(shí)現(xiàn)[J],,儀表技術(shù)與傳感器,2003