姚曉玲
摘 要:本文介紹了CAN總線的技術(shù)特點、CAN通訊協(xié)議的構(gòu)成及拖纜遙控小艇系統(tǒng)結(jié)構(gòu),討論了CAN總線技術(shù)應(yīng)用于拖纜遙控小艇的可行性及CAN控制節(jié)點軟硬件設(shè)計。
關(guān)鍵詞:CAN總線;遙控;小艇;硬件;軟件
中圖分類號:U666.1 文獻(xiàn)標(biāo)識碼:A
1 概述
本文提出的基于CAN總線的系統(tǒng)設(shè)計方案是一種經(jīng)濟有效的方案,既能提高系統(tǒng)可靠性,又能節(jié)約開發(fā)時間和成本。拖纜遙控小艇放置在母船甲板,執(zhí)行任務(wù)時,母船將小艇吊放入水,小艇與母船之間主要通過一根電纜(CAN總線)保持實時數(shù)據(jù)傳輸和通信。一般情況下,根據(jù)小艇上固定監(jiān)控攝像頭的實時視頻信息,由母船遙控小艇執(zhí)行任務(wù)。
2 CAN總線簡介
CAN(Control Area Network),即控制器局域網(wǎng),由德國Bosch公司最初為了汽車監(jiān)控和控制系統(tǒng)而設(shè)計,其高性能及高可靠度吸引世界上眾多的著名汽車制造商采用此總線來實現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測和執(zhí)行機構(gòu)間的數(shù)據(jù)通信。由于CAN總線技術(shù)本身的特點,其應(yīng)用范圍已經(jīng)擴展到機械工業(yè)、紡織工業(yè)、農(nóng)用機械、機器人、數(shù)控機床、醫(yī)療器械及傳感器等領(lǐng)域。
CAN屬于總線式串行通信設(shè)備,由于采用了許多新技術(shù)及獨特的設(shè)計,與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。其主要特點如下:
(1)通信方式靈活:CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點均可在任意時刻主動向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息,而不分主從,且無需站地址等節(jié)點信息;
(2)CAN節(jié)點信息可以分為不同的優(yōu)先級,滿足不同的實時要求;
(3)CAN采用非破壞性總線仲裁技術(shù),多個節(jié)點同時發(fā)送信息時,優(yōu)先級低的節(jié)點會主動退出發(fā)送,保證優(yōu)先級高的節(jié)點優(yōu)先傳送數(shù)據(jù),從而大大節(jié)省總線沖突仲裁時間;
(4)CAN總線通過報文濾波(根據(jù)報文的ID決定接受或屏蔽該報文)實現(xiàn)點對點、一點對多點及全局廣播;
(5)CAN直接通信距離可達(dá)10 km(傳輸速率5 kb/s以下),通信速率最高達(dá)1 Mb/s,此時通信距離最長40 m,CAN總線通信速率與傳輸距離的關(guān)系;
(6)CAN總線節(jié)點目前可達(dá)110個;
(7)CAN的每幀數(shù)據(jù)都有CRC校驗及其他檢錯措施,保證了數(shù)據(jù)通信的可靠性;
(8)發(fā)送的信息遭到破壞后,可自動重發(fā),節(jié)點在錯誤嚴(yán)重的情況下能夠自動退出總線。
3 拖纜遙控小艇的系統(tǒng)組成
拖纜遙控小艇由供電控制分系統(tǒng)、舵機控制分系統(tǒng)、主推進(jìn)電機分系統(tǒng)、視頻監(jiān)測分系統(tǒng)、導(dǎo)航分系統(tǒng)、GPS定位系統(tǒng)、母船控制中心等組成。各分系統(tǒng)主要功能如下:
(1)供電控制分系統(tǒng):使用可編程邏輯控制器,可對任何一個分系統(tǒng)進(jìn)行供電控制;
(2)舵機控制分系統(tǒng):接收來自母船控制中心的操舵指令,控制舵頁轉(zhuǎn)動,調(diào)整小艇的航向;
(3)主推進(jìn)電機分系統(tǒng):接收來自母船控制中心的指令,控制主推進(jìn)螺旋槳正轉(zhuǎn)或反轉(zhuǎn),使小艇前進(jìn)或倒退;
(4)視頻監(jiān)測分系統(tǒng):在小艇桅桿、艇首等位置處安裝視頻監(jiān)控攝像頭,向母船控制中心提供視頻信號,輔助操控人員實時了解小艇的狀況;
(5)導(dǎo)航分系統(tǒng):由電羅經(jīng)和姿態(tài)傳感器組成,向母船控制中心提供小艇的航向、縱搖和橫搖等信息;
(6)GPS分系統(tǒng):向母船提供小艇位置信息;
(7)未來擴展分系統(tǒng):根據(jù)小艇未來需要執(zhí)行的任務(wù),可隨時在總線上添加新的系統(tǒng);
(8)母船控制中心:遙控操縱小艇時,從母船控制中心對小艇下達(dá)各項指令。
4 系統(tǒng)硬件設(shè)計與功能實現(xiàn)
供電控制分系統(tǒng)、舵機控制分系統(tǒng)、主推進(jìn)電機分系統(tǒng)、導(dǎo)航分系統(tǒng)、GPS分系統(tǒng)由于其任務(wù)功能相對簡單,可采用飛利浦LPC21系列ARM控制器。該控制器是基于一個支持實時仿真和跟蹤的16/32位ARM微處理器,帶有128/256k字節(jié)嵌入的高速Flash存儲器,其集成2路CAN控制器、4路10位A/D轉(zhuǎn)換器和多個串行接口。
考慮視頻監(jiān)測分系統(tǒng)數(shù)據(jù)量較大,總線占用率較高,只采用CAN總線對云臺轉(zhuǎn)動和鏡頭變焦轉(zhuǎn)換等相關(guān)控制信號進(jìn)行傳輸,視頻監(jiān)控圖像通過專用電纜傳輸。下位機的微處理器可采用P89C51單片機,控制器系統(tǒng)采用飛利浦SJA1000作為CAN通信控制器、82C250芯片作為CAN總線收發(fā)器。P89C51單片機負(fù)責(zé)CAN通信控制器的初始化,CAN通信控制器實現(xiàn)對云臺轉(zhuǎn)動和鏡頭變焦轉(zhuǎn)換等相關(guān)控制數(shù)據(jù)的接收和發(fā)送。
母船控制中心采用一臺工控機實現(xiàn)功能,系統(tǒng)中所有的命令都由該工控機給出,對各分系統(tǒng)的命令通過程序以數(shù)據(jù)的形式發(fā)出。
(1)基本CAN總線節(jié)點硬件電路設(shè)計
電路主要由四個部分構(gòu)成:微控制器、獨立CAN通信控制器、CAN總線收發(fā)器、高速光電耦合器。
微處理器負(fù)責(zé)CAN通信控制器的初始化,通過控制CAN通信控制器實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通訊任務(wù)。
(2)協(xié)議轉(zhuǎn)換硬件電路設(shè)計
在硬件設(shè)計中,協(xié)議轉(zhuǎn)換器有多種,如CAN到RS-232/RS-485協(xié)議轉(zhuǎn)換器、CAN到TCP/IP協(xié)議轉(zhuǎn)換器等。
內(nèi)部通訊總線的協(xié)議轉(zhuǎn)換器,主要由以下幾部分組成:
① +5V DC電源線性穩(wěn)壓電路;
② CAN驅(qū)動器電路;
③ 微控制器的石英振蕩器電路;
④ 電平轉(zhuǎn)換電路;
⑤ 其他電路。
+5V DC電源線性穩(wěn)壓電路為整個協(xié)議轉(zhuǎn)換電路提供電源,穩(wěn)定可靠的電源是整個協(xié)議轉(zhuǎn)換器正常工作的前提;CAN驅(qū)動器電路由CAN控制器和CAN驅(qū)動器構(gòu)成。CAN的整個協(xié)議都由CAN控制器芯片及其上的固化程序來運行;微控制器是協(xié)議轉(zhuǎn)換器的核心及協(xié)議轉(zhuǎn)換器軟件的載體;電平轉(zhuǎn)換電路采用專用電平轉(zhuǎn)換芯片。
5 系統(tǒng)軟件設(shè)計與實現(xiàn)
(1)控制體系結(jié)構(gòu)
拖纜遙控小艇的控制體系結(jié)構(gòu)分為兩層:行為執(zhí)行層和硬件驅(qū)動層。
母船控制中心屬于行為執(zhí)行層,發(fā)出舵角指令、轉(zhuǎn)速指令等信息;
供電控制分系統(tǒng)、舵機控制分系統(tǒng)、主推電機分系統(tǒng)屬于硬件驅(qū)動層,完成指令到硬件的動作。
結(jié)合CAN總線協(xié)議的模型結(jié)構(gòu),根據(jù)軟件分層的思想,在以上協(xié)議的基礎(chǔ)上,將各種基本的CAN通信功能設(shè)計成接口函數(shù),以便應(yīng)用時直接調(diào)用。
CAN總線軟件結(jié)構(gòu)模型主要包括:
初始化函數(shù);接收函數(shù);發(fā)送函數(shù);中斷函數(shù);錯誤處理函數(shù)等。
(2)通信協(xié)議規(guī)劃
其中,優(yōu)先級部分D28~D26共3位,可表示8個報文優(yōu)先級;D25~D16每位對應(yīng)一個節(jié)點;D15~D12每位對應(yīng)一個節(jié)點;D11:0表示模式報文,1表示數(shù)據(jù)報文;D10~D4可容納128種報文;D3~D0:0000表示該報文不帶數(shù)據(jù)。
拖纜遙控小艇的各分系統(tǒng)都有統(tǒng)一的對外接口——CAN接口,對系統(tǒng)的更改和優(yōu)化在軟件層面可以實現(xiàn),這樣使得系統(tǒng)既易于維護(hù),又有著很好的移植性??偩€協(xié)議轉(zhuǎn)換器及其軟件為各個節(jié)點提供透明的數(shù)據(jù)傳輸功能,協(xié)議轉(zhuǎn)換器接收到節(jié)點設(shè)備傳來的消息后,將該消息加上發(fā)送標(biāo)識符后轉(zhuǎn)發(fā)到總線上;另一方面,協(xié)議轉(zhuǎn)換器接收到帶有接收標(biāo)識符的CAN幀后,可將其轉(zhuǎn)發(fā)給連接此協(xié)議轉(zhuǎn)換器的設(shè)備。
6 結(jié)論
從以上分析可以看出,采用CAN總線技術(shù)可以實現(xiàn)對小艇的遙控操作,并且明顯減少了系統(tǒng)之間的連線,未來需要擴展新系統(tǒng)時,只需將新系統(tǒng)通過CAN節(jié)點接入CAN總線即可。當(dāng)需要增加設(shè)備之間傳遞的信息量時,不需要增加設(shè)備之間的連線,只需修改相關(guān)應(yīng)用程序。另外,CAN總線可以實現(xiàn)信息共享,對于同一個信息,只需要在系統(tǒng)中設(shè)置一個提供該信息的采集單元,其他需要該信息的設(shè)備可以通過總線獲得。
參考文獻(xiàn)
[1] 饒運濤等.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出
版社,2007:11-18.
[2] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,
2008:112-113.
[3] 周立功,譯.CAN-bus規(guī)范V2.0版本[M].