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