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