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