摘 要: 介紹了一種雷達模擬器的硬件研制方案,該方案以STC的單片機為核心,使用A/D轉(zhuǎn)換采集電位器電壓的方式,模擬TUNE、GAIN等旋鈕的數(shù)值;通過旋轉(zhuǎn)編碼器模擬EBL、VRM的數(shù)值,利用RS-485總線實現(xiàn)數(shù)據(jù)的傳輸,并在PC機顯示。該方案的研制對其他模擬器的開發(fā)及大型船舶操縱模擬器的研制具有廣泛的參考價值。
關(guān)鍵詞: 單片機;雷達模擬器;RS-485
隨著雷達技術(shù)的發(fā)展,自動雷達標(biāo)繪儀ARPA(Automatic Radar Plotting Aid),由于可以直接顯示目標(biāo)船的多方面信息,因而得到了廣泛的應(yīng)用。特別是在航海船員培訓(xùn)中,雷達模擬器發(fā)揮了重要的作用,是培訓(xùn)中不可或缺的重要組成部分。雷達模擬器主要是利用計算機仿真技術(shù),模擬在能見度不良的情況下船舶的操縱和避碰,使學(xué)員應(yīng)對復(fù)雜海況,做出正確的判斷。為此,國際海事組織(IMO)將雷達與ARPA培訓(xùn)作為船舶駕駛員必須參加的強制性專業(yè)培訓(xùn)項目。由此可見,雷達模擬器的研究和開發(fā)具有重要意義[1]。
本文提出了一種以單片機為核心的雷達模擬器的硬件研制方案。該方案以STC的單片機為核心,使用A/D轉(zhuǎn)換采集電位器電壓的方式,模擬TUNE、GAIN等旋鈕的數(shù)值;通過旋轉(zhuǎn)編碼器模擬EBL、VRM的數(shù)值,采用適合遠距離傳輸?shù)腞S-485通信方式進行數(shù)據(jù)的傳輸,并最終在PC機顯示出來。本方案對其他模擬器的開發(fā)及大型船舶操縱模擬器的研制具有廣泛的參考價值。
1 硬件設(shè)計[2]
本雷達模擬器硬件總體設(shè)計框圖如圖1所示。
STC12C5A60S2是宏晶科技生產(chǎn)的單時鐘/機器周期為1 T、高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度比傳統(tǒng)8051快8~12倍。STC12C5A60S2內(nèi)部集成了MAX810專用復(fù)位電路、2路PWM、8路高速A/D轉(zhuǎn)換(250 KB/s),是本雷達模擬器的控制核心。
本雷達模擬器使用5個電位器,其中4個電位器分別接到單片機的P1.4~P1.7口,實現(xiàn)雷達模擬器相應(yīng)功能的調(diào)節(jié)及控制。1個電位器用來調(diào)節(jié)整個雷達模擬器控制面板背景燈的亮度。
該雷達模擬器使用2個旋轉(zhuǎn)編碼器,其A、B端分別接到單片機的中斷口和一個普通I/O口。接C1、C5電容的作用是為了濾波,防止雜波干擾影響編碼器的使用。旋轉(zhuǎn)編碼器部分的原理圖如圖2所示。
4×4矩陣鍵盤的識別是將矩陣鍵盤的8根線連接到單片機的某一組I/O口上,在本模擬器中選用的是單片機的P0.2口。通過對單片機的控制就可以檢測出矩陣鍵盤的按鍵情況。矩陣鍵盤的接線如圖3所示。
PC機與單片機之間的通信方式有并行和串行兩種。串口通信就是串口按bit發(fā)送和接收字節(jié)。在串口通信中,RS-232只適合于傳輸距離不太遠的場合。為了解決這個問題,本雷達模擬器采用的是RS-485總線方式通信。RS-485通信可大大提高通信的可靠性和傳輸距離[3]。
整個雷達模擬器由電源、單片機最小系統(tǒng)、電位器、旋轉(zhuǎn)編碼器、矩陣鍵盤、串口通信等主要部分組成,其原理圖如圖4所示。本雷達模擬器作為大型船舶操縱模擬器的一個部分。
2 軟件設(shè)計[4]
STC系列單片機沿用的是51單片機的內(nèi)核,故其程序可用C語言編寫。首先,對單片機的全部參數(shù)進行初始化。給P2賦值0xfe,也就是P2.0為低電平,其他為高電平,這時如果P2.4、P2.5、P2.6、P2.7有按鍵按下時就會出現(xiàn)低電平,從而可判斷哪個按鍵按下;然后分別依次將P2.1、P2.2、P2.3設(shè)置為低電平,以相同方法判斷是否有按鍵按下。經(jīng)過4次檢測之后,將鍵盤的按鍵情況進行保存。
開始判斷電位器1是否有轉(zhuǎn)動,如果沒有,直接進入判斷電位器2的狀態(tài);如果有,則利用該STC單片機P1口自帶的A/D轉(zhuǎn)換功能,將電位器1的電壓值進行模數(shù)轉(zhuǎn)換,再將轉(zhuǎn)換后的數(shù)值傳送到單片機。為了模擬TUNE、GAIN等旋鈕的功能,可將電位器的變化范圍分為16個檔位。同時為了避免由于電壓的不穩(wěn)定導(dǎo)致檔位交界處的頻繁變化,需要在檔位交界處設(shè)置一定的空位。單片機根據(jù)轉(zhuǎn)換后的數(shù)值判斷好電位器的檔位以后,再將檔位的信息保存到單片機。按照判斷電位器1是否有轉(zhuǎn)動的方法依次判斷電位器2、3、4的狀態(tài),并且將這些信息存入單片機。
旋轉(zhuǎn)編碼器有一個中心有軸的光電碼盤,其上有環(huán)形通、暗的刻線,由光電發(fā)射和接收器件讀取,獲得的4組正弦波信號組合成A、B、C、D信號,每個正弦波相差90°相位差(相對于一個周波為360°),將C、D信號反向,疊加在A、B兩相上,可增強穩(wěn)定信號。每轉(zhuǎn)輸出一個Z相脈沖以代表零位參考位。由于A、B兩相相差90°,可通過比較A相在前還是B相在前,以判別編碼器的正轉(zhuǎn)與反轉(zhuǎn),通過零位脈沖,可獲得編碼器的零位參考位。
在整個程序執(zhí)行過程中,一旦旋轉(zhuǎn)編碼器有轉(zhuǎn)動,單片機將會自動進入中斷,處理該中斷響應(yīng)。首先判斷兩個旋轉(zhuǎn)編碼器中哪一個發(fā)生了旋轉(zhuǎn),然后再判斷這個旋轉(zhuǎn)編碼器是正轉(zhuǎn)還是反轉(zhuǎn),并將結(jié)果進行存儲。中斷響應(yīng)結(jié)束,則退出中斷,從原來斷點處繼續(xù)執(zhí)行剩余的程序。中斷服務(wù)子程序流程如圖5所示。
最后,將程序運行之后的結(jié)果以協(xié)議規(guī)定的相應(yīng)格式保存好。利用RS-485將保存好的數(shù)據(jù)傳送給上位機,以此循環(huán)。其主程序流程如圖6所示。
本文介紹的基于RS-485總線的雷達模擬器既可以滿足遠距離傳輸?shù)男枰瑫r又可以實現(xiàn)多路共用,所以既可以單獨使用,也可以作為大型船舶操縱模擬器的一個模塊使用[5]。該雷達模擬器的硬件研制方案對其他模擬器的開發(fā)及大型船舶操縱模擬器的研制具有廣泛的參考價值。
參考文獻
[1] 靳玉杰.雷達模擬器中的單片機應(yīng)用[D].武漢:武漢理工大學(xué),2004.
[2] 王逢僅.大型船舶操縱模擬器控制臺的結(jié)構(gòu)與設(shè)計[D].大連:大連海事大學(xué),2003.
[3] 鄭敏杰,楊神化.基于RS-485總線的紅外報警器設(shè)計[J].信息化縱橫,2009(8):27-34.
[4] 張毅剛,彭喜源.MCS-51單片機應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2001.
[5] 胡瑋,魏偉.RS232與RS485串行接口轉(zhuǎn)換電路及其編程實現(xiàn)[J].實驗科學(xué)與技術(shù),2010(2):69-71.