張 穎,張有志,方 敏,朱大奇
(1.上海海事大學(xué)信息工程學(xué)院,上海 200135;2.上海微電子裝備有限公司系統(tǒng)工程部,上海 201203)
自治水下機(jī)器人(Autonomous Underwater Vehicle,AUV)是1種適于海底搜索、調(diào)查、識別和打撈作業(yè)的既經(jīng)濟(jì)又安全的工具,也是1種有效的水中兵器,代表未來水下機(jī)器人技術(shù)的發(fā)展方向.AUV運(yùn)動的交叉耦合性、非線性和時變性等非常嚴(yán)重,因此,對各部件之間的協(xié)同工作,尤其是對信息傳輸?shù)膶崟r性、穩(wěn)定性及冗余性等有較高的要求.AUV的通信系統(tǒng)設(shè)計是整個機(jī)器人系統(tǒng)構(gòu)架的關(guān)鍵環(huán)節(jié).
目前AUV底層通信一般采用點(diǎn)對點(diǎn)的方式,其有1個主控通信節(jié)點(diǎn),在其他模塊上安裝通信子節(jié)點(diǎn),多采用單主工作方式.該通信模式存在一些缺點(diǎn):(1)只存在1個沒有硬件通信協(xié)議的物理層,其通信協(xié)議完全依賴軟件的支持,系統(tǒng)通信軟件的負(fù)擔(dān)較重;(2)在幾乎沒有可靠的總線競爭仲裁與幀重發(fā)機(jī)制的情況下,數(shù)據(jù)丟失率與總線數(shù)據(jù)的流通量成正比,有時甚至?xí)?dǎo)致整個通信網(wǎng)絡(luò)的癱瘓;(3)通信器件較小的收發(fā)緩沖區(qū)不利于網(wǎng)絡(luò)長期處于連續(xù)或長字串的收發(fā)狀態(tài),在接收和發(fā)送數(shù)據(jù)量不平衡時尤其明顯.
顯然,作為AUV系統(tǒng)底層主干通信網(wǎng)絡(luò),在網(wǎng)絡(luò)數(shù)據(jù)負(fù)荷量相對較重的情況下,該模式無法達(dá)到較好的通信效果.
在20世紀(jì)80年代,為滿足汽車工業(yè)不斷發(fā)展的需要,最先由德國Bosch公司提出以控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)總線方案解決汽車裝置間的通信問題,在車載各電子控制裝置(Electric Control Unit,ECU)之間交換信息.CAN采用多主工作方式和非破壞性仲裁技術(shù),其報文格式精簡、通信速率高、可靠性強(qiáng),還可在異常情況下實現(xiàn)節(jié)點(diǎn)自動關(guān)閉.
CAN總線的優(yōu)勢使其應(yīng)用范圍從車載通信迅速擴(kuò)展到船載通信等領(lǐng)域,目前,國外已將CAN總線技術(shù)應(yīng)用于水下機(jī)器人系統(tǒng),而我國在這方面的應(yīng)用研究尚處于起步階段.
CAN總線可與局部互聯(lián)網(wǎng)絡(luò)(Local Interconnect Network,LIN)總線配合,用于水下機(jī)器人系統(tǒng)中的多主節(jié)點(diǎn)控制和數(shù)據(jù)采集.因此,研究AUV的CAN總線通信系統(tǒng)有重要意義.
SZABO等[1]首次將分布式CAN網(wǎng)絡(luò)通信應(yīng)用于空間自治移動機(jī)器人,并采用輕量化的CAN總線協(xié)議,保證各微處理器之間的可靠通信;HIROSHI等[2]開發(fā)出1臺名為 MR-X1的工程 AUV,主要設(shè)備之間均通過CAN接口通信,由雙絞線連接各個微處理器;LIU等[3]為AUV開發(fā)的ECU,以CAN作為底層通信網(wǎng)絡(luò),CAN以廣播的通信機(jī)制發(fā)布信息,可很好地完成實時傳遞信息的任務(wù);楊曉華等[4-5]、侯魏等[6]提出基于CAN總線的水下機(jī)器人分布式控制系統(tǒng)結(jié)構(gòu),采用飛利浦P87C591單片機(jī)作為節(jié)點(diǎn)的核心處理器,將CAN總線通信控制器嵌入水下機(jī)器人各執(zhí)行器單元中,形成基于CAN總線通信的水下機(jī)器人執(zhí)行器節(jié)點(diǎn),從控制系統(tǒng)結(jié)構(gòu)出發(fā),研究基于CAN總線的分布式控制網(wǎng)絡(luò).
本文研究基于CAN總線的AUV多主節(jié)點(diǎn)構(gòu)架的底層網(wǎng)絡(luò)通信結(jié)構(gòu),并構(gòu)造總線控制節(jié)點(diǎn),以多主結(jié)構(gòu)的分布式總線結(jié)構(gòu)取代以往的集中式控制結(jié)構(gòu)及主從式通信方式,總線上的節(jié)點(diǎn)在大部分時間里并行工作,完成不同的任務(wù)和功能.研究對象為Outland 1000水下機(jī)器人試驗設(shè)備.
Outland 1000的ECU模塊可分為數(shù)據(jù)采集模塊(包括各類傳感器)、控制器模塊和執(zhí)行器模塊等3大類.數(shù)據(jù)采集模塊位于導(dǎo)航艙中,包括采集與傳送指南針、陀螺儀和深度計等傳感部件信息的模塊以及采集攝像機(jī)和照明燈狀態(tài)信號的模塊;控制器模塊位于電子艙中,包括下潛深度、轉(zhuǎn)彎方向的PI及PID控制算法執(zhí)行器;執(zhí)行器模塊主要包括AUV各方向的推進(jìn)器,由各驅(qū)動電機(jī)構(gòu)成.
采用CAN總線通信后,CAN總線通信終端模塊取代原有的RS485通信接口模塊.系統(tǒng)各結(jié)構(gòu)單元可分為4類節(jié)點(diǎn):(1)總控單元;(2)姿態(tài)與推進(jìn)單元,即執(zhí)行機(jī)構(gòu),包括推動、水平調(diào)節(jié)、加載下沉、拋載釋放、側(cè)傾和縱傾等動作執(zhí)行機(jī)構(gòu);(3)數(shù)據(jù)采集單元,包括對各種測量傳感器的數(shù)據(jù)獲取及某些定位通信;(4)監(jiān)控單元,包括通信系統(tǒng)的監(jiān)控、診斷等.AUV控制節(jié)點(diǎn)總體功能劃分見圖1.根據(jù)AUV的設(shè)計特點(diǎn),采用分布式總線型拓?fù)浣Y(jié)構(gòu),將某個控制任務(wù)分解為多個獨(dú)立的功能模塊,在不同的處理器上運(yùn)行.針對不同節(jié)點(diǎn)構(gòu)建其基于事件觸發(fā)的工作流程時序,并將其封裝于不同的節(jié)點(diǎn)控制器中.首先進(jìn)行多種情況下的仿真試驗,確定AUV通信網(wǎng)絡(luò)結(jié)構(gòu);然后進(jìn)行硬件回路仿真試驗,驗證系統(tǒng)設(shè)計的實時性、穩(wěn)定性和可靠性;再進(jìn)行節(jié)點(diǎn)的硬件系統(tǒng)開發(fā)設(shè)計,實現(xiàn)CAN通信協(xié)議應(yīng)用層的制定及軟件代碼的編寫,完成對AUV模型系統(tǒng)中控制器通信接口的改造和替換.
圖1 AUV控制節(jié)點(diǎn)總體功能劃分
CAN總線通信網(wǎng)絡(luò)見圖2.其中,CAN USB 2可實現(xiàn)協(xié)議轉(zhuǎn)換的功能,實時監(jiān)測網(wǎng)絡(luò)中數(shù)據(jù)通信的狀況;82C250為飛利浦公司的CAN總線收發(fā)器;SJA1000為飛利浦公司的CAN通信控制器;89C51為所選的MCU控制器.監(jiān)測控制節(jié)點(diǎn)為網(wǎng)絡(luò)的主節(jié)點(diǎn),是子網(wǎng)通信控制的樞紐,承擔(dān)與上位監(jiān)控機(jī)的通信等任務(wù).從節(jié)點(diǎn)為一般的分布式數(shù)據(jù)采集、控制或執(zhí)行節(jié)點(diǎn),完成系統(tǒng)各部分的具體工作任務(wù).
圖2 CAN總線通信網(wǎng)絡(luò)
CAN總線通信節(jié)點(diǎn)的硬件結(jié)構(gòu)及接口設(shè)計框圖見圖3.CAN節(jié)點(diǎn)模塊中的微處理器采用AT89C51,利用I/O端口采集溫度、壓力和深度等傳感器的數(shù)據(jù),對常用的I/O功能模塊進(jìn)行控制;CAN總線控制器采用SJA1000,實現(xiàn)CAN總線的物理層和數(shù)據(jù)鏈路層協(xié)議的功能;CAN收發(fā)器采用82C250,負(fù)責(zé)將數(shù)據(jù)信號送至總線,其接口電氣特性必須與CAN總線標(biāo)準(zhǔn)完全兼容;為增強(qiáng)抗干擾能力,保證CAN總線通信正常穩(wěn)定,還必須設(shè)計CAN總線通信保護(hù)電路、信號的光電隔離及考慮總線匹配電阻的跨接等問題.
圖3 CAN總線通信節(jié)點(diǎn)的硬件結(jié)構(gòu)及接口設(shè)計框圖
收發(fā)器是CAN控制器與物理總線間的接口,可實現(xiàn)對來自CAN控制器信號的差動發(fā)送和對總線信號的差動接收.為保證收發(fā)器的可靠工作而設(shè)計的CAN總線收發(fā)器保護(hù)電路如下:CAN-H和CAN-L引腳各自通過1個5 Ω的電阻與CAN總線相連,可起到一定的限流作用,使收發(fā)器免受過流的沖擊.另外,CAN-H和CAN-L與地之間并聯(lián)2個30 pF的電容,可起到濾除總線上的高頻干擾和一定的防電磁輻射的作用.CAN-H與CAN-L之間加1個120 Ω的終端電阻,用以匹配總線阻抗,提高總線的抗干擾能力.
節(jié)點(diǎn)MCU主程序控制流程及發(fā)送子程序流程見圖4,SJA1000初始化及中斷接收流程見圖5.
圖4 MCU的控制流程及發(fā)送子程序流程
圖5 SJA1000初始化及中斷接收流程
試驗表明,在將原有 AUV各功能單元上的RS485通信模塊替換、擴(kuò)展為CAN總線通信接口后,可構(gòu)建起CAN總線實時通信系統(tǒng),能滿足系統(tǒng)各部分的信息交換,保證系統(tǒng)的正常工作,而總線系統(tǒng)的優(yōu)點(diǎn)使得對系統(tǒng)數(shù)據(jù)通信的監(jiān)控更加有效、及時,CAN總線診斷協(xié)議的合理應(yīng)用有利于系統(tǒng)的實時通信故障診斷與分析;系統(tǒng)易于增加新的CAN節(jié)點(diǎn),有利于系統(tǒng)功能擴(kuò)充與升級;系統(tǒng)線束的布設(shè)可得到一定的簡化.
本文介紹基于CAN總線的分布式網(wǎng)絡(luò)通信機(jī)制,將CAN總線應(yīng)用于水下機(jī)器人系統(tǒng),構(gòu)成多主站的分布式控制系統(tǒng),取代以往的集中式控制結(jié)構(gòu).該總線結(jié)構(gòu)可使AUV系統(tǒng)的通信線纜得到有效精簡,并能使整機(jī)系統(tǒng)獲得較好的通信性能.
[1]SZABO S,OPLUSTIL V.Distributed CAN based control system for robotic& airborne applications[J].IEEE Contr,Automation,Robotics& Vision,2002,3(11):1233-1238.
[2]HIROSHI Y,TARO A,SATOSHI T,et al.A working AUV using CAN bus interface[C]//2004 ISOPE,Toulon,2004:255-259.
[3]LIU Weidong,GAO Lie,DING Yilin,et al.Communication scheduling for CAN bus autonomous underwater vehicles[C]//2006 Int Conf Mechatronics& Automation,Luoyang,2006:379-383.
[4]楊曉華,侯魏,王樹新,等.基于CAN總線的水下機(jī)器人執(zhí)行節(jié)點(diǎn)設(shè)計與實現(xiàn)[J].海洋技術(shù),2005,24(4):14-17.
[5]楊曉華,侯魏,王樹新,等.基于CAN總線的分布式控制網(wǎng)絡(luò)設(shè)計[J].低壓電器,2006(1):40-43.
[6]侯魏,王樹新,溫秉權(quán),等.小型自治水下機(jī)器人控制系統(tǒng)研究開發(fā)[J].機(jī)器人,2005,27(4):354-357.