何 雅 琴
(常州機(jī)電職業(yè)技術(shù)學(xué)院 信息工程學(xué)院, 江蘇 常州 213164)
隨著計(jì)算機(jī)技術(shù)和軟件技術(shù)的快速發(fā)展,儀器儀表的概念和設(shè)計(jì)發(fā)生了突破性的改變。目前計(jì)算機(jī)已成為很多測試系統(tǒng)中的核心,計(jì)算機(jī)軟件和測試系統(tǒng)形成了一個有機(jī)的整體,出現(xiàn)了新的儀器概念——虛擬儀器[1]。虛擬儀器軟件替代了傳統(tǒng)儀器部分硬件的功能,用戶可自定義儀器功能,技術(shù)更新周期短,開發(fā)維護(hù)費(fèi)用低。在眾多的虛擬儀器開發(fā)軟件中,LabVIEW應(yīng)用最為廣泛。LabVIEW是一個功能強(qiáng)大的開發(fā)平臺,采用圖形化的編程方式,被廣泛應(yīng)用于監(jiān)控、檢測、教育等領(lǐng)域[2-5],很多自動化公司都使用LabVIEW平臺開發(fā)相應(yīng)的軟件。國內(nèi)絕大多數(shù)高校開設(shè)虛擬儀器課程時都選用LabVIEW作為授課實(shí)體。
GPS為美國研制的一套全球定位系統(tǒng)[6-7]。GPS具有全天候、高精度等特點(diǎn),因此它在軍事、車輛導(dǎo)航、地震監(jiān)測等領(lǐng)域應(yīng)用廣泛。雖然我國自主研發(fā)了北斗系統(tǒng),但GPS組網(wǎng)遠(yuǎn)遠(yuǎn)早于北斗系統(tǒng),我國各行各業(yè)還在廣泛使用GPS終端機(jī)。
本文采用LabVIEW、STC12C5A60S2單片機(jī)開發(fā)了一套基于LabVIEW和STC12C5A60S2的GPS實(shí)驗(yàn)裝置。該裝置結(jié)構(gòu)簡單,非常適合高職院校電子技術(shù)、電氣自動化技術(shù)等專業(yè)學(xué)生使用,通過該裝置,學(xué)生可以學(xué)習(xí)單片機(jī)系統(tǒng)設(shè)計(jì)、LabVIEW編程技術(shù)等。
基于LabVIEW和STC12C5A60S2的GPS實(shí)驗(yàn)裝置包括安裝了LabVIEW軟件的電腦和具備接收GPS信號的單片機(jī)實(shí)驗(yàn)板兩部分。單片機(jī)實(shí)驗(yàn)板主要包括CPU、最小系統(tǒng)電路、電源電路、通信電路、GPS接口、鍵盤接口和液晶接口。GPS實(shí)驗(yàn)裝置方案圖如圖1所示。
圖1GPS實(shí)驗(yàn)裝置方案圖
在進(jìn)行相關(guān)實(shí)驗(yàn)時,學(xué)生首先要在單片機(jī)端編寫下位機(jī)程序,主要功能是對接收的GPS信號進(jìn)行解碼,同時在電腦端LabVIEW開發(fā)平臺下編寫上位機(jī)程序。系統(tǒng)工作時,單片機(jī)對GPS信號解碼后通過液晶顯示屏顯示相應(yīng)的經(jīng)度、緯度等信息,同時通過RS-232接口把數(shù)據(jù)打包發(fā)送給電腦端。電腦端接收到單片機(jī)發(fā)送的數(shù)據(jù)后,在前面板顯示相應(yīng)的信息。
由于我院單片機(jī)課程教學(xué)都是基于51內(nèi)核的單片機(jī),所以系統(tǒng)選用了增強(qiáng)型單片機(jī)(51內(nèi)核)STC12C5A60S2[8],自動化、電子等專業(yè)的學(xué)生幾乎不要進(jìn)過額外的培訓(xùn)就可以對該型單片機(jī)編程。該單片機(jī)具備2個獨(dú)立波特率的串行通信口[9-10],能夠滿足單片機(jī)與GPS模塊以及單片機(jī)與電腦通信對串口數(shù)量的要求。該單片機(jī)還包括1 280 B RAM,60 KB ROM、4個16位定時/計(jì)數(shù)器等[11],滿足本系統(tǒng)開發(fā)需求。
STC12C5A60S2單片機(jī)供電范圍為3.5~5.5 V,采用的GPS模塊HOLUX M-89 GPS供電電壓范圍為3.3~5 V,為了更好的利用已有資源,節(jié)省成本,系統(tǒng)放棄使用電源芯片設(shè)計(jì)電源。系統(tǒng)采用USB供電+電池供電方式,學(xué)生可以根據(jù)實(shí)驗(yàn)需求任選其中一種(通過開關(guān)切換)。USB供電方式通過數(shù)據(jù)線從電腦端取電,電池供電則采用3節(jié)5號電池串聯(lián)產(chǎn)生的4.5 V電壓。具體切換電路如圖2所示。
圖2USB供電和電池供電切換電路圖
系統(tǒng)使用的GPS模塊為HOLUX M-89 GPS。該模塊引腳功能如下:1腳:指示燈,通電常亮,接收到衛(wèi)星開始閃爍;2腳:外部復(fù)位輸入,模塊內(nèi)部有復(fù)位電路(可不接);3腳:模塊串口數(shù)據(jù)輸出;4腳:模塊串口數(shù)據(jù)輸入;5腳:GND(接地);6腳:電源輸入[12]。模塊采用TTL電平通信,不需要進(jìn)行電平轉(zhuǎn)換,可直接與單片機(jī)的串行口連接。通過配置單片機(jī)的特殊功能寄存AUXR1把單片機(jī)的串行口定義在P1口的P1.2(RXD2)和P1.3(TXD2)。HOLUX M-89 GPS實(shí)物圖和接口電路分別如圖3、4所示。
圖3 HOLUXM?89GPS實(shí)物圖圖4 GPS接口圖
液晶顯示部分主要用于在下位機(jī)端顯示經(jīng)緯度信息,系統(tǒng)采用了LCD1602液晶模塊(16字×2行)。該模塊主要由HD44780驅(qū)動控制器和液晶顯示裝置組成[13]。LCD1602具有16個引腳,與單片機(jī)的接口原理圖如圖5所示。LCD1602與單片機(jī)連接采用了8位數(shù)據(jù)線的方式(也可根據(jù)需要選擇采用4位數(shù)據(jù)線),其8根數(shù)據(jù)線引腳分別與單片機(jī)P0口的8個引腳相連(P0口每個引腳接10kΩ上拉電阻),3個控制引腳RS(數(shù)據(jù)/寄存器命令選擇引腳)、RW(讀/寫控制引腳)、E(使能端)分別與單片機(jī)的P2.4、P2.5和P2.6連接。電位器(10kΩ)的抽頭接LCD1602的V0引腳,用于調(diào)節(jié)液晶對比度。LCD接口如圖5所示。
圖5LCD接口圖
臺式機(jī)機(jī)箱背后一般包含一個DB9的串行通信口(公頭),其通信采用RS-232電平,而STC12C5A60S2單片機(jī)的兩個串口都采用TTL電平進(jìn)行通信,兩者之間不匹配,必須進(jìn)行電平轉(zhuǎn)換,系統(tǒng)采用了一片美信公司生產(chǎn)的電平轉(zhuǎn)換芯片MAX232[14-15],其接口原理圖如圖6所示。
圖6MAX232與單片機(jī)接口圖
除了以上主要電路外,系統(tǒng)還包括上電復(fù)位、晶振等最小系統(tǒng)電路,其設(shè)計(jì)都采用了標(biāo)準(zhǔn)的接口電路。晶振電路部分選用了11.059 2 MHz的晶振,便于和電腦進(jìn)行9 600 b/s通信。
系統(tǒng)軟件部分主要包括兩部分:單片機(jī)端軟件和電腦端軟件。
單片機(jī)端軟件使用了Keil μVision4集成開發(fā)環(huán)境,使用C51進(jìn)行編程,主要包括主程序、GPS解碼程序、通信程序和液晶顯示程序等。電腦端發(fā)送GPS信息采集命令后,單片機(jī)串口1中斷服務(wù)程序中置為GPS采集標(biāo)志位GPS_FLAG,主程序判斷到GPS_FLAG為1時,啟動接收和解碼GPS信號,同時判斷GPS_OK_FLAG是否置位,GPS_OK_FLAG為1,則把相關(guān)信息發(fā)送給電腦端。單片機(jī)端主程序流程如圖7所示。
圖7單片機(jī)端主程序流程圖
單片機(jī)端程序的核心和難點(diǎn)為GPS信號的解碼。GPS數(shù)據(jù)格式支持 NMEA0183 V 3.01 數(shù)據(jù)協(xié)議,其接收的數(shù)據(jù)包括了$GPGGA、$GPRMC等格式,本文選擇了對$GPRMC格式的數(shù)據(jù)進(jìn)行解碼。$GPRMC數(shù)據(jù)格式如下:$GPRMC, 〈1〉,〈2〉,〈3〉,〈4〉,〈5〉,〈6〉,〈7〉,〈8〉,〈9〉,〈10〉,〈11〉,〈12〉A(chǔ)*hh〈CR〉〈LF〉 (其中〈3〉 代表緯度,〈5〉 代表經(jīng)度)。解碼程序主要提取〈3〉和〈5〉中的內(nèi)容,解碼程序主要在串口2中斷服務(wù)程序中完成,單片機(jī)每接收一字節(jié)GPS數(shù)據(jù)就產(chǎn)生一次串口中斷,采用移動數(shù)據(jù)窗口的方式把接收的數(shù)據(jù)移入數(shù)組gpsbuf[]中,然后開始判斷gpsbuf[]前6個字節(jié)是否為“$GPRMC”,如果匹配成功,則繼續(xù)判斷本次接收的GPS信號是否有效(〈2〉中的數(shù)據(jù),A為有效,V為無效),如果〈2〉中數(shù)據(jù)為A,則置位GPS_OK_FLAG(供主程序判斷)并提取和保存經(jīng)度、緯度信息,解碼程序流程圖如圖8所示。
電腦端的軟件使用了LabVIEW開發(fā)平臺,主要包括用戶界面(前面板)和后臺程序(框圖程序)。
前面板的主要用于串口選擇、通信格式設(shè)定、啟動停止GPS信息采集以及顯示經(jīng)度、緯度信息等。如圖 9所示,前面板的設(shè)計(jì)非常簡單,串口選擇使用LabVIEW自帶的“VISA資源名稱”控件,通信格式設(shè)定使用了4個數(shù)值輸入控件,經(jīng)度、緯度顯示使用了4個數(shù)值輸出控件(精確到分),啟動停止GPS信息采集則使用了兩個按鈕控件(注:啟動按鈕機(jī)械動作設(shè)置為釋放時轉(zhuǎn)換,停止按鈕設(shè)置為保持轉(zhuǎn)換直到釋放)。
圖8解碼程序流程圖
圖9前面板界面圖
前面板要實(shí)現(xiàn)用戶需要的功能,還必須編寫相應(yīng)的框圖程序,本系統(tǒng)框圖程序的核心為電腦與單片機(jī)的通信程序。LabVIEW提供了不同通信方式所必須的各種控件和函數(shù),用戶開發(fā)通信程序非常方便簡單。本系統(tǒng)使用了電腦端的9針串行通信口(RS-232)進(jìn)行通信,用戶只需對LabVIEW中的VISA節(jié)點(diǎn)進(jìn)行配置和編程。學(xué)生進(jìn)行實(shí)驗(yàn)時,首先在前面板的數(shù)值輸入控件輸入通信波特率、數(shù)據(jù)位數(shù)等參數(shù),具體數(shù)值需要和單片機(jī)端的設(shè)置相一致,具體實(shí)現(xiàn)的框圖程序如圖10所示。LabVIEW啟動GPS信號采集后,單片機(jī)端把通過解碼后的GPS數(shù)據(jù)發(fā)送給電腦,電腦端接收到數(shù)據(jù)后在數(shù)組中通過索引數(shù)組的方式把經(jīng)度緯度信息提取出來并通過數(shù)值顯示控件在前面板顯示,電腦端數(shù)據(jù)接收處理程序框圖如圖11所示。
圖10 通信參數(shù)配置框圖程序圖
圖11 數(shù)據(jù)接收處理框圖程序圖
系統(tǒng)連接完畢后,分別用兩種模式給電路板供電。在電腦端的“設(shè)備管理”中查看串口號。然后運(yùn)行軟件,通過數(shù)值輸入控件輸入與單片機(jī)端相一致的通信參數(shù)(9 600,8,N,1),點(diǎn)擊啟動GPS采集按鈕。如圖12所示,經(jīng)度緯度顯示欄顯示出了設(shè)備所在的經(jīng)度緯度信息:經(jīng)度(31°40′),緯度(119°56′)(常州機(jī)電職業(yè)技術(shù)學(xué)院信息工程樓的經(jīng)緯度信息)。整個實(shí)驗(yàn)表明 電路板接收GPS正常,對“GPRMC”格式的GPS數(shù)據(jù)
圖12 實(shí)驗(yàn)驗(yàn)證前面板顯示圖
解碼正確,系統(tǒng)通信過程正常。
基于LabVIEW和STC12C5A60S2設(shè)計(jì)的GPS實(shí)驗(yàn)裝置具有結(jié)構(gòu)簡單、性能穩(wěn)定、性價比高等特點(diǎn),能夠滿足電子及電氣自動化技術(shù)等專業(yè)學(xué)生進(jìn)行LabVIEW以及單片機(jī)實(shí)驗(yàn)的需求,同時也能夠?yàn)轭愃飘a(chǎn)品的開發(fā)提供一定的參考。
參考文獻(xiàn)(References):
[1]卞曉紅,穆飛航,季振宇,等. 基于虛擬技術(shù)的腦電信號檢測示教系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 醫(yī)療衛(wèi)生裝備,2011,32(4):9-10,27.
[2]任龍霞,吳為麟. 虛擬儀器在低壓電弧故障斷路器研制中的應(yīng)用[J]. 電力系統(tǒng)保護(hù)與控制,2011,39(5):134-138,143.
[3]岳偉甲,劉昌錦. 一種基于VC++的通信信號仿真軟件設(shè)計(jì)[J]. 四川兵工學(xué)報(bào),2011,32(5):92-95.
[4]王建勛,周青云. 基于虛擬儀器和藍(lán)牙技術(shù)的控制系統(tǒng)設(shè)計(jì)[J]. 實(shí)驗(yàn)室研究與探索,2015,34(3):86-89.
[5]吳香國,曹景杰,趙新宇. 虛擬儀器的超高強(qiáng)混凝土結(jié)構(gòu)性能測試[J]. 實(shí)驗(yàn)科學(xué)與技術(shù),2012,10(1):52-55.
[6]馬永健,張武英.GPS測量技術(shù)在地籍測量中的應(yīng)用[J].重慶科技學(xué)院學(xué)報(bào)(自然科學(xué)版),2013(5):131-134.
[7]張小紅,郭博峰.單站GPS測速在實(shí)時地震監(jiān)測中的應(yīng)用[J].地球物理學(xué)報(bào),2013,56(6):1928-1936.
[8]代斌,孫志斌,王飛龍,等. 基于PSD的靜電懸浮位置測量與控制系統(tǒng)設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2015,34(3):97-98,102.
[9]雷瑞庭,宋躍,陳上明.遠(yuǎn)程自動控制灌溉系統(tǒng)軟件的設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2013(2):66-69.
[10]宋躍,范王壯遠(yuǎn),陳衛(wèi),等.一種基于GSM的指紋遠(yuǎn)程安防系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2014,33(6):111-113.
[11]余熾業(yè),宋躍,雷瑞庭.基于STC12C5A60S2的智能循跡小車[J].實(shí)驗(yàn)室研究與探索,2014,33(11):46-49,121.
[12]何雅琴,張飛,李桂秋,等.基于GPS-GSM技術(shù)的定位系統(tǒng)設(shè)計(jì)[J].信息化研究,2016(3):27-29.
[13]耿永剛,李利珍.單片機(jī)技術(shù)與應(yīng)用[M].上海:上??茖W(xué)技術(shù)出版社,2012:187-189.
[14]李曉辰,樓喜中. 基于FPGA的多接口轉(zhuǎn)換研究與實(shí)現(xiàn)[J]. 電視技術(shù),2014,38(1):66-68,76.
[15]梁天太,周英杰,張澤,等.基于MAX232實(shí)現(xiàn)PC機(jī)與CPU通信[J]. 新技術(shù)新工藝,2015(8):34-36.