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