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