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