文獻標識碼: A
文章編號: 0258-7998(2013)08-0123-04
為遵循STCW公約馬尼拉修正案第A-1/12節(jié)關于使用模擬器的標準,執(zhí)行中國海事局“關于做好STCW公約馬尼拉修正案履約準備工作有關事項的通知(海船員[2011]923號)”的規(guī)定,各個航海院校必須配備大型船舶操縱模擬器做為駕駛臺資源管理訓練評估的實驗設備[1]。而目前國外能夠生產大型船舶操縱模擬器的廠家大都價格昂貴,可移植性不高,維護不便,無法滿足船員培訓中靈活多變的教學和訓練模式。針對上述問題,本文提出并實現了一種高性價比且可擴展性強的大型船舶操縱模擬器。該模擬器不同于國內外其他廠家的設備,其特點是模擬器操作臺上的硬件設備全部自主研發(fā),避免了因設備采購于不同廠家,導致通信協議靈活性差、可擴展性低,無法根據不同用戶的特點設計與其設備配套的問題。采用自主研發(fā)的硬件設備,增強了靈活性及擴展性,較大地促進了大型船舶操縱模擬器的發(fā)展。
1 船舶操縱模擬器系統(tǒng)硬件構架
大型船舶操縱模擬器控制臺不僅有拖輪面板、纜繩和錨面板、側推器面板、舵機控制面板、報警面板、號燈面板、雷達面板、望遠鏡面板,還有車鐘、舵輪、羅經三大部件,以及懸掛于駕駛臺上面的7個儀表盤,其硬件架構如圖1所示。
所有的硬件設備采用標準的485通信接口,共用一條485總線[2],每個設備初始化時都處于接收狀態(tài),通過制定的通信協議,上位機按照一定的時間間隔以地址從低到高的順序輪詢每一個硬件設備。由于上位機采用的是232的通信接口,因此需要一個485轉232的轉換器進行通信。
2 船舶操縱模擬器各硬件模塊設計
2.1 硬件面板
硬件面板主要由8塊面板組成:拖輪面板、纜繩和錨控制面板、側推器面板、舵機控制面板、號燈面板、報警面板、雷達面板以及望遠鏡面板。由于篇幅有限,本文僅以望遠鏡面板的電路進行分析。
望遠鏡面板可以模擬航海駕駛室內的望遠鏡,通過操縱相對應的搖桿,控制望遠鏡視景的放大或縮小,同時結合面板上相應的按鍵,控制望遠鏡視景的切換。望遠鏡面板外觀效果如圖2所示。其電路原理圖主要由五部分組成,分別是模/數轉換接口、485通信接口、主控制器、矩陣鍵盤掃描模塊及LED控制模塊。
模/數轉換接口主要用來采集搖桿內部的電位器電壓值。當船員操縱搖桿的時候,會造成搖桿內部電位器電壓數值的變化,主控制器據此來識別搖桿的方向和搖動的幅度。其接口分別用來識別左右、上下,以及旋轉的方向,共3個自由度,提高了搖桿信號采集的靈活度,增強了船員駕駛室操縱的真實感。
485通信模塊是各個硬件設備與PC通信的橋梁。由于模擬器所有硬件設備都共用一條485總線,且由于現場情況十分復雜,各個硬件設備之間存在較高的共模電壓。雖然RS-485接口采用的是差分傳輸方式,具有一定的抗共模干擾能力,但當共模電壓超過RS-485接收器的極限接收電壓,即>+12 V或<-7 V時,會導致設備無法正常通信,甚至會燒毀芯片和各個硬件設備。因此,本文采用DC-DC將系統(tǒng)電源和RS-485收發(fā)器的電源隔離,利用1塊TLP521芯片以及2塊6N137芯片構成光電隔離電路,用以隔離信號,徹底消除共模電壓的影響,保證485網絡通信的穩(wěn)定性。
矩陣鍵盤掃描模塊是用來識別用戶對面板按鍵的操作,本文主要采用反轉法掃描方式,執(zhí)行效率比傳統(tǒng)的掃描方式有較大的提高。
LED控制模塊主要用來控制面板按鍵內部各個LED的顏色以及亮度變化,使用戶在操作的過程中可以很直觀地觀察面板按鍵顏色的變化,驗證操作的準確性。該模塊采用1塊MAX7219芯片進行控制。MAX7219是一種集成化的串行輸入/輸出共陰極顯示驅動器,它不僅可以控制8位數碼管顯示,也可以同時控制64個獨立的LED。不僅如此,它還可以用 n 片MAX7219進行級連,以驅動8×n位數碼管顯示。該模塊還有一個外部寄存器用來設置各個LED的段電流,可以直接控制LED的亮度,并采用一個方便的四線串行接口(SCLK、DATA、LOAD、DOUT)與主控制器芯片相連。當主控制器芯片把數據送到MAX7219后,它就可以獨立地進行動態(tài)掃描顯示,無需主控制器芯片進行干預。
主控制器主要是由1塊STC單片機構成,不僅具備雙串口,還帶有8路10位的A/D轉換器,2路PWM等,功能強大。該控制器不僅要采集搖桿電位器的電壓值,進行模/數轉換,還通過矩陣鍵盤進行掃描,識別用戶操作按鍵的鍵值,并對面板一系列的LED進行邏輯判斷和控制。最后,把用戶操作的所有數據通過485總線傳遞到PC,PC結合相應的軟件對主控制器發(fā)送過來的數值進行處理,并通過視景或相配套的軟件顯示出來。
2.2 車鐘、羅經、舵輪
車鐘、羅經、舵輪是船舶操縱模擬器中不可缺少的三大部件,以往模擬器都采用實船的真車鐘、真羅經、真舵輪,但成本很高,而且要依賴于廠家定義的通信協議和接口,擴展性不高。因此,本文采用全模擬方案實現車鐘、羅經、舵輪三大部件的主要功能,外觀采用1:1的實物仿真,結構、主要功能、操作方式、顯示面板和數據與真實設備基本相同。本文主要介紹三大部件中羅經的電路部分。
羅經在船舶操縱模擬器中用來指示船舶的航向。考慮到羅經內部機械加工的工藝以及航海對羅經精度的要求,本文主要設計為單圈羅經。
羅經的電路主要由五部分組成:步進電機驅動模塊、485通信接口、主控制器、找零接口及LED亮度控制模塊。這里主要介紹步進電機驅動模塊以及找零接口。
步進電機驅動模塊由1塊ULN2803的芯片進行控制。ULN2803是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬及帶負載能力強等特點,很適合用來驅動步進電機。步進電機采用的是42BYG系列四相八拍高轉矩混合式的步進電機,步距角為0.9°,經過二分頻之后精度變?yōu)?.45°,完全滿足航海模擬器中羅經的精度要求。另外,考慮到將羅經擴展為雙圈羅經的需要,預留了4路接口,由此可以再驅動一個步進電機,從而為雙圈羅經的擴展提供了可能。
模擬羅經要解決的關鍵的問題是找零問題。本設計采用了一個槽式光電耦合器,槽口分上下兩端,一端是紅外發(fā)射器,另一端是紅外接收器。當對刻度盤進行加工時,在邊緣處涂抹一定寬度的黑邊,并在零刻度線上去掉一個缺口,通過一定的機械加工,使刻度盤在步進電機的驅動下旋轉,并保持在旋轉過程中刻度盤的黑邊始終能擋住紅外發(fā)射器。此時,當刻度盤的零點轉動到紅外發(fā)射器時,由于零刻度線處開口,因此,槽口另一端紅外接收器能夠接收到紅外線,并產生一個下降沿輸出,通過相應的電路把該輸出接到主控制器芯片外部中斷的管腳,從而觸發(fā)主控制器芯片產生一個外部中斷,實現了羅經的找零。
2.3 儀表盤
儀表盤在船舶操縱模擬器中用于顯示各類航行數據。主要由風向風速儀表盤、水深儀表盤、船速儀表盤、主機轉速儀表盤、舵角儀表盤及轉頭率儀表盤構成。
儀表盤除了風向風速是數碼管顯示之外,其余儀表盤都是指針式,并且通過直流電壓來驅動,驅動電壓范圍有兩種,一種是0~5 V,另一種是-5 V~+5 V。但是,在船舶操縱模擬器中,儀表盤的數據來源于上位機,而上位機傳過來的數據是數字信號。因此,必須通過數/模轉換器將上位機傳送過來的數字信號轉化為驅動儀表盤的電壓信號,同時,考慮到儀表盤有兩種驅動電壓,因此需要2塊D/A轉換芯片, 本文采用型號為TLC7226的D/A轉換芯片。TLC7226[3]是TI 公司生產的、包含4路8位電壓輸出的高性能D/A轉換器, 在單個芯片上帶有輸出緩沖放大器和接口邏輯電路。數據通過公共的8位TTL/CMOS兼容(5 V)輸入口送入數據寄存器,每一路DAC都能提供高達5 mA的輸出電流,支持單極性和雙極性輸出,單極性輸出范圍為0~5 V,雙極性輸出電壓范圍為-5 V~+5 V,足以滿足儀表盤驅動的要求。儀表盤驅動電路原理圖如圖3所示。
3 船舶操縱模擬器硬件系統(tǒng)軟件設計
系統(tǒng)的軟件設計包括系統(tǒng)軟件協議以及各硬件模塊的軟件設計兩部分。
3.1 系統(tǒng)軟件協議
由于船舶操縱模擬器大部分的硬件設備(包括所有硬件面板、車鐘、羅經、舵輪、儀表盤等)都掛載到一條485總線,上位機依次訪問每個硬件設備。由于485總線屬于半雙工,因此,上位機在訪問某塊硬件設備時,其余設備都應處于接收狀態(tài),否則會出現通信亂碼。因此,本文設計了以下通信協議:
(1)每個硬件設備都有自己的地址,初始化時都處于接收狀態(tài),上位機根據每個設備的地址從小到大依次進行查詢。若查詢到該設備有數據需要發(fā)送,則該設備會轉變?yōu)榘l(fā)送狀態(tài),發(fā)送信息協議格式定義如下:
$(1)(2)*hh<CR><LF>
其中,$是串頭; (1)是該設備的地址;(2)是按鍵值,值的范圍根據面板的按鍵數量來決定;*是串尾;hh為校驗;<CR>是回車控制符;<LF>是換行控制符。
(2)有些硬件面板上面會有一些數碼管顯示,而數碼管顯示的數值都來源于上位機。因此,為了避免多塊面板數碼管上顯示的數據沖突,協議規(guī)定如下:
@(1)(2)(3)(4)*hh<CR><LF>
其中, @是串頭; (1)是該設備的地址;(2)是按鍵序列號(考慮到有些面板多個按鍵共用1塊數碼管,因此需要對此進行區(qū)分),數值的范圍根據面板的按鍵數量來決定;(3)是數碼管的序列號(考慮到1塊面板有多個數碼管,因此為了避免顯示沖突,特此定義);(4)是參數值,有4個字節(jié),數值范圍從0~9999;*是串尾; hh為校驗; <CR>是回車控制符;<LF>是換行控制符。
(3)有些面板可以通過按鍵改變某些數碼管顯示的
數值,而為了與上位機軟件界面同步,需要及時把改變后的數據傳送到上位機,因此,協議規(guī)定如下:
&(1)(2)(3)*hh<CR><LF>
其中,&是串頭; (1)是該設備的地址;(2)是按鍵序列號;(3)是參數值,有4個字節(jié),數值范圍從0~9999;*是串尾; hh為校驗;<CR>是回車控制符;<LF>是換行控制符。
另外,還有復位協議、初始化協議等,在此不一一進行闡述。
3.2 各硬件模塊的軟件設計
針對操縱模擬器中的硬件面板進行軟件設計:車鐘、羅經、舵輪三大部件的軟件設計以及儀表盤的驅動,整個系統(tǒng)均采用C語言進行編程。由于每個硬件設備的邏輯關系較為復雜,在此僅以望遠鏡面板的軟件設計進行分析。
首先對望遠鏡電路板進行初始化[4],主要包括工作方式的設置、A/D轉換方式、通道選擇的設置、MAX7219芯片的初始化設置、波特率參數設置和中斷允許寄存器的設置等。
其次進行矩陣鍵盤掃描,這里主要采用反轉法掃描方式。如果掃描到有按鍵觸發(fā),則通過消抖確認為真實觸發(fā)之后,立即記錄該按鍵鍵值。再通過面板按鍵燈邏輯判斷,根據望遠鏡面板制定的協議,對面板按鍵燈進行控制,利用該按鍵燈顏色的改變或熄滅等方式來告知用戶已實際操作了該按鍵。
按鍵掃描完之后,開始進入搖桿掃描,即對搖桿內部電位器的電壓值進行模/數轉換,由于搖桿有3個自由度,因此需要用到3個模/數轉換接口。通過對3個接口進行模/數轉換之后,判斷采集到的這3個數值與上一次掃描周期相比是否發(fā)生了變化,若是,則記錄下來;否則,進入下一次掃描周期。
由于上位機是通過輪詢方式及485總線掃描每一個硬件設備,因此,當上位機未掃描到該望遠鏡面板時,該設備應處于接收狀態(tài),即使有動作觸發(fā),也不能立即發(fā)送,直到上位機輪詢到該望遠鏡面板時,才能將數據封裝成協議規(guī)定的格式,再通過調用串口通信模塊,把數據通過485總線傳遞到上位機。發(fā)送完畢,再立即進入接收狀態(tài),開始下一個周期的掃描。望遠鏡面板程序流程如圖4所示。
本文討論了大型船舶操縱模擬器硬件的設計方案,并對該硬件的總體設計和部分硬件設備的軟硬件設計進行了詳細闡述。該系統(tǒng)已投入到國內多家航海院校和培訓機構的教學使用當中,經過連續(xù)的運行和測試以及用戶反映的情況,該模擬器硬件設備工作狀態(tài)穩(wěn)定,逼真度較高,可媲美于國內外一些大型船舶操縱模擬器。同時,由于硬件設備都屬于自主研發(fā),有利于今后的性能擴展,降低了維護成本,也為第二代大型船舶操縱模擬器的開發(fā)打下了堅實的基礎,加快了大型船舶操縱模擬器的發(fā)展進程。
參考文獻
[1] 金一丞,尹勇,任鴻祥,等.多本船航海模擬系統(tǒng)的研制[J].交通運輸工程學報, 2001,1(3):108-111.
[2] 鄭敏杰,楊神化.基于RS-485總線的紅外報警器設計[J].信息化縱橫,2009(8):27-30.
[3] 盛惠興,黃禮軍. 基于DSP 的電力電量參數測量系統(tǒng)的設計[J].現代電子技術,2004(2):102-106.
[4] 余楓,李志華,劉秀文,等.船舶操縱模擬器中通信模塊的設計和應用[J].信息技術與信息化, 2008(4):22-24.