徐 襲 石 敏
(1.91388部隊93分隊 湛江 524022)(2.水聲對抗技術重點實驗室 湛江 524022)
無人水下航行器UUV(Unmanned Underwater Vehicle)控制系統(tǒng)采用控制局域網(wǎng)CAN(Controller Area Network)為系統(tǒng)通信網(wǎng)絡,可實現(xiàn)UUV精準、高效地運動控制,能較好模擬水下運動物體的目標特征。在UUV水下運動目標模擬中,隨著特征模擬復雜度的不斷提高,需增加多種特征模擬設備,以使其模擬相似度更高。增加如噪聲、振動等特征模擬設備,某些只具備簡單的RS485(232)等串口通信控制接口,接入UUV控制系統(tǒng)CAN網(wǎng)絡不便,無法準確的匹配整個系統(tǒng)的運行模擬,影響了模擬水下運動物體特征的準確性,因此需解決部分設備的CAN網(wǎng)絡接口問題。本文在UUV控制系統(tǒng)CAN網(wǎng)絡基礎上,采用CAN總線協(xié)議控制芯片SJA1000,利用STC89單片機,設計了CAN網(wǎng)絡轉換節(jié)點,實現(xiàn)了特征模擬設備的CAN網(wǎng)絡互聯(lián)功能,有利于提高UUV模擬水下運動目標特征的準確性。
CAN即控制器局域網(wǎng),最早由德國BOSCH公司提出,目前已形成國際標準,其主要特點如下[1~2]:
1)通信方式靈活。為多主方式工作,網(wǎng)絡上任一節(jié)點均可在任意時刻主動向網(wǎng)絡上其他節(jié)點發(fā)送信息,不分主從;
2)采用非破壞性總線仲裁技術,節(jié)省總線沖突仲裁時間,不會出現(xiàn)網(wǎng)絡癱瘓情況;
3)CAN直接通信距離最遠可達10km(傳輸速率5Kb/s以下),通信速率最高可達1Mb/s;
4)節(jié)點數(shù)取決于總線驅動電路,目前可達110個,報文標識符可達2032種,而擴展標準的報文標識符幾乎不受限制;
5)通信介質可為雙絞線、同軸電纜或光纖,選擇靈活。
由于大多數(shù)特征模擬設備具備RS485(232)接口,結合UUV控制系統(tǒng)的網(wǎng)絡需求,提高設備與系統(tǒng)的協(xié)調(diào)性,需實現(xiàn)RS485(232)到CAN總線的傳輸轉換功能。
某UUV控制系統(tǒng)用CAN實現(xiàn)系統(tǒng)網(wǎng)絡控制,需增加特征模擬設備接入該網(wǎng)絡提高模擬逼真度。本文設計的CAN轉換節(jié)點可將具備RS485(232)接口的設備直接轉化為CAN網(wǎng)絡接入設備,實現(xiàn)設備CAN網(wǎng)絡連接,易于UUV控制系統(tǒng)主控計算機對該設備的控制,設備也可接收并處理CAN網(wǎng)絡傳遞的指令,實現(xiàn)對設備內(nèi)控[3~4]。
圖1 CAN轉換節(jié)點在UUV控制系統(tǒng)中的應用
該轉換節(jié)點主要實現(xiàn)RS485(RS232)到CAN總線的協(xié)議轉換??蓪崿F(xiàn)單個RS485(RS232)端口到單個CAN端口的轉換;CAN實現(xiàn)CAN2.0B協(xié)議;CAN速率可達500Kb/s;RS485速率可達9.6Kb/s,具備較強抗干擾能力,CAN轉換節(jié)點在UUV控制系統(tǒng)中的應用如圖1所示。
UUV控制系統(tǒng)CAN轉換節(jié)點實現(xiàn)功能,其本質就是一個網(wǎng)關的功能,實現(xiàn)不同傳輸協(xié)議的轉換。本文CAN轉換節(jié)點,以CAN協(xié)議控制器SJA1000、單片機STC89S58和MAX485(232)接口芯片為主,可快速便捷地構成UUV控制系統(tǒng)CAN網(wǎng)絡轉換節(jié)點。
UUV控制系統(tǒng)CAN轉換網(wǎng)絡節(jié)點硬件實現(xiàn)方式有多種,市場上目前有兩類器件可實現(xiàn)CAN總線至串口轉換功能:一類是兼容性控制器,即微處理和CAN協(xié)議控制功能相結合,具備串口通信接口,如某些型號DSP、ARM芯片;另一類是獨立CAN控制器和獨立串口通信芯片[5]。本文采用第二類,使用獨立CAN控制器可方便靈活選擇處理器,組成多樣化系統(tǒng)[6~8]。硬件組成示意圖如圖2所示:
圖2 CAN轉換節(jié)點硬件結構示意圖
1)CAN接口模塊:該模塊含總線控制器和收發(fā)器兩部分。CAN總線控制器SJA1000是NXP公司研制和推出的CAN通信控制器,輔助有接口管理邏輯、緩沖發(fā)送、FIFO接收端口、濾波器等,PCA82C250作為收發(fā)器是CAN協(xié)議控制器和物理總線的接口;
2)處理控制模塊:要實現(xiàn)對CAN協(xié)議信息的管理,須選擇合適微處理芯片,STC89S58芯片可實現(xiàn)對CAN協(xié)議芯片SJA1000的控制與管理。SJA1000的AD0~AD7與單片機的數(shù)據(jù)總線相連,P2.7引腳作為SJA1000的片選使能端,由ALE,WR,RD控制SJA1000的數(shù)據(jù)發(fā)送和接收;
3)串行通信接口模塊:該模塊采用 MAX485(232)芯片作為收發(fā)器,滿足RS485(232)串行協(xié)議的要求,符合RS485(232)串行協(xié)議電氣規(guī)范。為提高可靠性,在單片機與RS485(232)之間增加光耦隔離,消除干擾和雜波;
4)抗干擾措施:高速光耦6N137可提高節(jié)點抗干擾能力,CANH和CANL與地之間并聯(lián)小電容,可濾除總線上高頻干擾。
節(jié)點硬件電路部分原理圖如圖3所示。
圖3 CAN轉換節(jié)點電路原理圖(局部)
CAN接口器件實現(xiàn)了其物理層和數(shù)據(jù)鏈路層功能,應用層功能則需編制應用程序實現(xiàn)。單片機程序編制采用Keil uVision2,使用C語言進行節(jié)點功能的程序編寫、編譯和調(diào)試。其運行程序通過調(diào)用驅動程序提供的接口來實現(xiàn)數(shù)據(jù)收發(fā)。該驅動程序含:CAN控制器初始化、報文發(fā)送、報文接收及出錯處理程序等。程序處理流程如圖4所示。RS485(232)串口通信程序的編寫直接調(diào)用對應接口程序即可。
按照該程序控制流程,轉換節(jié)點的微處理器將從串行接口獲得的信息數(shù)據(jù),添加發(fā)送標識,發(fā)送到緩沖區(qū),然后通過指令對寄存器發(fā)送傳輸請求,啟動 CAN的模塊自行將發(fā)送緩沖中的數(shù)據(jù)讀取出來,并且按照CAN的協(xié)議編寫成符合CAN的信息,同時通過接收其發(fā)往總線,實現(xiàn)數(shù)據(jù)轉換發(fā)送,反之亦然[9]。
該轉換節(jié)點軟硬件設計完成后,需驗證其實際可用性與可靠性,采用相應的裝置可完成對所設計節(jié)點的測試,以驗證其性能[10~11]。
1)測試方案
采用RS485(232)協(xié)議轉換器,RS485(232)控制軟件、測試計算機,USBCAN II,CANoe測試軟硬件等構成節(jié)點軟硬件測試平臺,測試平臺構成如圖5所示。
圖4 CAN轉換節(jié)點軟件CAN驅動流程圖
圖5 CAN轉換節(jié)點測試平臺示意圖
2)測試方法
(1)使用串口通信軟件控制USB-RS485(232)設備發(fā)送串口數(shù)據(jù),利用USBCAN進行觀測,確定該轉換發(fā)送功能是否正常;
(2)使用ZLGTEST軟件控制 USBCAN II設備發(fā)送CAN網(wǎng)絡信息,利用串口通信控制軟件觀測,確定該轉換接收功能是否正常;
(3)使用多個節(jié)點,且同時采用上述兩方式測試,檢查CAN網(wǎng)絡及節(jié)點工作是否正常;
(4)將特征模擬設備連接鉆換節(jié)點,組成CAN網(wǎng)絡進行數(shù)據(jù)傳輸與設備控制測試,驗證其組網(wǎng)狀態(tài)下工作的可靠性;
(5)結合CAN網(wǎng)絡數(shù)據(jù)量大小,利用測試分析軟件CANoe進行相關數(shù)據(jù)傳輸時效性測試,確定滿足UUV控制網(wǎng)絡CAN的需求。
以上測試方法與步驟,應對各設備CAN網(wǎng)絡傳輸參數(shù)及串行通信參數(shù)設置正確,確保測試有效。
3)測試結果[14]
使用節(jié)點測試平臺測試所設計的節(jié)點,通過獨立驗證部分傳輸功能及聯(lián)合測試節(jié)點在網(wǎng)絡中的數(shù)據(jù)傳輸效能,該節(jié)點滿足設計要求,可應用于UUV控制系統(tǒng)CAN網(wǎng)絡的相關設備轉換接入,組網(wǎng)性能測試與數(shù)據(jù)幀分析軟件CANoe界面如圖6所示。
圖6 節(jié)點組網(wǎng)測試數(shù)據(jù)統(tǒng)計與分析窗口
UUV模擬水下運動物體目標特性,需增加部分重要模擬設備,以提高其目標模擬性能。為解決設備與UUV系統(tǒng)CAN網(wǎng)絡互連問題,本文采用CAN協(xié)議芯片SJA1000與單片機為主要硬件,利用C語言編制驅動程序,設計并實現(xiàn)了RS485(232)與CAN轉換節(jié)點,構建了節(jié)點測試平臺,并對設計實現(xiàn)的節(jié)點進行了測試驗證,測試表明轉換節(jié)點滿足UUV控制系統(tǒng)CAN要求,可對非CAN網(wǎng)絡設備接入該網(wǎng)絡,增強UUV模擬水下運動物體特征的準確性提供支持。
[1]鄔寬明.CAN總線原理與應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,2002:18-32.
[2]史久根.CAN現(xiàn)場總線系統(tǒng)設計技術[M].北京:國防工業(yè)出版社,2003:55-63.
[3]張立川,徐德民,劉明雍.無人水下航行器網(wǎng)絡控制器設計[J].船舶工程,2010,32(5):30-32.
[4]王曉燕,裴亮,付曉.基于CAN總線的浮標數(shù)據(jù)采集系統(tǒng)設計[J].微計算機信息,2008,24(5):20-21.
[5]楊立,嚴衛(wèi)生,高劍,等.一種基于CANoe的CAN總線系統(tǒng)開發(fā)方法[J].測控技術,2007,26(4):66-67.
[6]馮源,向桂林,李軍.基于C8051的冗余CAN總線智能節(jié)點設計[J].航空計算技術,2008,38(5):107-111.
[7]陳永社,石秀華,李世超,等.基于CAN總線內(nèi)測系統(tǒng)串口數(shù)據(jù)采集節(jié)點設計[J].彈箭與制導學報,2008,28(5):264-266.
[8]楊芬,吳伯農(nóng),吳海軍.智能傳感器的CAN總線接口設計[J].單片機與嵌入式系統(tǒng)應用,2011.8:7-10.
[9]張永紅.基于CAN總線的嵌入式網(wǎng)絡控制節(jié)點的設計與實現(xiàn)[J].制造業(yè)自動化,2011,33(8):143-147.
[10]肖龍龍,程謀森,張為華.運載器控制系統(tǒng)CAN總線數(shù)據(jù)傳輸仿真與評估研究[J].2009,29(2):256-260.
[11]黎善斌.基于網(wǎng)絡控制系統(tǒng)的CAN實時性能研究[J].化工自動化及儀表,2003,30(4):1-6.
[12]郝佳,吳杰長,郭朝有.CAN總線通信過程的Stateflow建模與仿真[J].計算機與數(shù)字工程,2011,39(9).
[13]盧珺,程遠勝.單片機系統(tǒng)中CAN總線位移傳感器的設計[J].計算機與數(shù)字工程,2011,39(9).
[14]王姜博,李文新,慕德俊,等.CAN節(jié)點通訊及處理的強度測試設計[J].計算機技術與發(fā)展,2011,21(6):189-192.