基于LabVIEW和STC12C5A60S2的GPS实验装置
2018-04-11何雅琴
何 雅 琴
(常州机电职业技术学院 信息工程学院, 江苏 常州 213164)
0 引 言
随着计算机技术和软件技术的快速发展,仪器仪表的概念和设计发生了突破性的改变。目前计算机已成为很多测试系统中的核心,计算机软件和测试系统形成了一个有机的整体,出现了新的仪器概念——虚拟仪器[1]。虚拟仪器软件替代了传统仪器部分硬件的功能,用户可自定义仪器功能,技术更新周期短,开发维护费用低。在众多的虚拟仪器开发软件中,LabVIEW应用最为广泛。LabVIEW是一个功能强大的开发平台,采用图形化的编程方式,被广泛应用于监控、检测、教育等领域[2-5],很多自动化公司都使用LabVIEW平台开发相应的软件。国内绝大多数高校开设虚拟仪器课程时都选用LabVIEW作为授课实体。
GPS为美国研制的一套全球定位系统[6-7]。GPS具有全天候、高精度等特点,因此它在军事、车辆导航、地震监测等领域应用广泛。虽然我国自主研发了北斗系统,但GPS组网远远早于北斗系统,我国各行各业还在广泛使用GPS终端机。
本文采用LabVIEW、STC12C5A60S2单片机开发了一套基于LabVIEW和STC12C5A60S2的GPS实验装置。该装置结构简单,非常适合高职院校电子技术、电气自动化技术等专业学生使用,通过该装置,学生可以学习单片机系统设计、LabVIEW编程技术等。
1 系统设计思路
基于LabVIEW和STC12C5A60S2的GPS实验装置包括安装了LabVIEW软件的电脑和具备接收GPS信号的单片机实验板两部分。单片机实验板主要包括CPU、最小系统电路、电源电路、通信电路、GPS接口、键盘接口和液晶接口。GPS实验装置方案图如图1所示。
图1GPS实验装置方案图
在进行相关实验时,学生首先要在单片机端编写下位机程序,主要功能是对接收的GPS信号进行解码,同时在电脑端LabVIEW开发平台下编写上位机程序。系统工作时,单片机对GPS信号解码后通过液晶显示屏显示相应的经度、纬度等信息,同时通过RS-232接口把数据打包发送给电脑端。电脑端接收到单片机发送的数据后,在前面板显示相应的信息。
2 系统硬件设计
2.1 处理器选择
由于我院单片机课程教学都是基于51内核的单片机,所以系统选用了增强型单片机(51内核)STC12C5A60S2[8],自动化、电子等专业的学生几乎不要进过额外的培训就可以对该型单片机编程。该单片机具备2个独立波特率的串行通信口[9-10],能够满足单片机与GPS模块以及单片机与电脑通信对串口数量的要求。该单片机还包括1 280 B RAM,60 KB ROM、4个16位定时/计数器等[11],满足本系统开发需求。
2.2 电源部分
STC12C5A60S2单片机供电范围为3.5~5.5 V,采用的GPS模块HOLUX M-89 GPS供电电压范围为3.3~5 V,为了更好的利用已有资源,节省成本,系统放弃使用电源芯片设计电源。系统采用USB供电+电池供电方式,学生可以根据实验需求任选其中一种(通过开关切换)。USB供电方式通过数据线从电脑端取电,电池供电则采用3节5号电池串联产生的4.5 V电压。具体切换电路如图2所示。
图2USB供电和电池供电切换电路图
2.3 GPS接口部分
系统使用的GPS模块为HOLUX M-89 GPS。该模块引脚功能如下:1脚:指示灯,通电常亮,接收到卫星开始闪烁;2脚:外部复位输入,模块内部有复位电路(可不接);3脚:模块串口数据输出;4脚:模块串口数据输入;5脚:GND(接地);6脚:电源输入[12]。模块采用TTL电平通信,不需要进行电平转换,可直接与单片机的串行口连接。通过配置单片机的特殊功能寄存AUXR1把单片机的串行口定义在P1口的P1.2(RXD2)和P1.3(TXD2)。HOLUX M-89 GPS实物图和接口电路分别如图3、4所示。
图3 HOLUXM⁃89GPS实物图图4 GPS接口图
2.4 液晶显示接口部分
液晶显示部分主要用于在下位机端显示经纬度信息,系统采用了LCD1602液晶模块(16字×2行)。该模块主要由HD44780驱动控制器和液晶显示装置组成[13]。LCD1602具有16个引脚,与单片机的接口原理图如图5所示。LCD1602与单片机连接采用了8位数据线的方式(也可根据需要选择采用4位数据线),其8根数据线引脚分别与单片机P0口的8个引脚相连(P0口每个引脚接10kΩ上拉电阻),3个控制引脚RS(数据/寄存器命令选择引脚)、RW(读/写控制引脚)、E(使能端)分别与单片机的P2.4、P2.5和P2.6连接。电位器(10kΩ)的抽头接LCD1602的V0引脚,用于调节液晶对比度。LCD接口如图5所示。
图5LCD接口图
2.5 电脑和单片机通信接口部分
台式机机箱背后一般包含一个DB9的串行通信口(公头),其通信采用RS-232电平,而STC12C5A60S2单片机的两个串口都采用TTL电平进行通信,两者之间不匹配,必须进行电平转换,系统采用了一片美信公司生产的电平转换芯片MAX232[14-15],其接口原理图如图6所示。
图6MAX232与单片机接口图
2.6 其他部分电路说明
除了以上主要电路外,系统还包括上电复位、晶振等最小系统电路,其设计都采用了标准的接口电路。晶振电路部分选用了11.059 2 MHz的晶振,便于和电脑进行9 600 b/s通信。
3 系统软件设计
系统软件部分主要包括两部分:单片机端软件和电脑端软件。
3.1 单片机端软件
单片机端软件使用了Keil μVision4集成开发环境,使用C51进行编程,主要包括主程序、GPS解码程序、通信程序和液晶显示程序等。电脑端发送GPS信息采集命令后,单片机串口1中断服务程序中置为GPS采集标志位GPS_FLAG,主程序判断到GPS_FLAG为1时,启动接收和解码GPS信号,同时判断GPS_OK_FLAG是否置位,GPS_OK_FLAG为1,则把相关信息发送给电脑端。单片机端主程序流程如图7所示。
图7单片机端主程序流程图
单片机端程序的核心和难点为GPS信号的解码。GPS数据格式支持 NMEA0183 V 3.01 数据协议,其接收的数据包括了$GPGGA、$GPRMC等格式,本文选择了对$GPRMC格式的数据进行解码。$GPRMC数据格式如下:$GPRMC, 〈1〉,〈2〉,〈3〉,〈4〉,〈5〉,〈6〉,〈7〉,〈8〉,〈9〉,〈10〉,〈11〉,〈12〉A*hh〈CR〉〈LF〉 (其中〈3〉 代表纬度,〈5〉 代表经度)。解码程序主要提取〈3〉和〈5〉中的内容,解码程序主要在串口2中断服务程序中完成,单片机每接收一字节GPS数据就产生一次串口中断,采用移动数据窗口的方式把接收的数据移入数组gpsbuf[]中,然后开始判断gpsbuf[]前6个字节是否为“$GPRMC”,如果匹配成功,则继续判断本次接收的GPS信号是否有效(〈2〉中的数据,A为有效,V为无效),如果〈2〉中数据为A,则置位GPS_OK_FLAG(供主程序判断)并提取和保存经度、纬度信息,解码程序流程图如图8所示。
3.2 电脑端软件
电脑端的软件使用了LabVIEW开发平台,主要包括用户界面(前面板)和后台程序(框图程序)。
前面板的主要用于串口选择、通信格式设定、启动停止GPS信息采集以及显示经度、纬度信息等。如图 9所示,前面板的设计非常简单,串口选择使用LabVIEW自带的“VISA资源名称”控件,通信格式设定使用了4个数值输入控件,经度、纬度显示使用了4个数值输出控件(精确到分),启动停止GPS信息采集则使用了两个按钮控件(注:启动按钮机械动作设置为释放时转换,停止按钮设置为保持转换直到释放)。
图8解码程序流程图
图9前面板界面图
前面板要实现用户需要的功能,还必须编写相应的框图程序,本系统框图程序的核心为电脑与单片机的通信程序。LabVIEW提供了不同通信方式所必须的各种控件和函数,用户开发通信程序非常方便简单。本系统使用了电脑端的9针串行通信口(RS-232)进行通信,用户只需对LabVIEW中的VISA节点进行配置和编程。学生进行实验时,首先在前面板的数值输入控件输入通信波特率、数据位数等参数,具体数值需要和单片机端的设置相一致,具体实现的框图程序如图10所示。LabVIEW启动GPS信号采集后,单片机端把通过解码后的GPS数据发送给电脑,电脑端接收到数据后在数组中通过索引数组的方式把经度纬度信息提取出来并通过数值显示控件在前面板显示,电脑端数据接收处理程序框图如图11所示。
图10 通信参数配置框图程序图
图11 数据接收处理框图程序图
4 实验验证
系统连接完毕后,分别用两种模式给电路板供电。在电脑端的“设备管理”中查看串口号。然后运行软件,通过数值输入控件输入与单片机端相一致的通信参数(9 600,8,N,1),点击启动GPS采集按钮。如图12所示,经度纬度显示栏显示出了设备所在的经度纬度信息:经度(31°40′),纬度(119°56′)(常州机电职业技术学院信息工程楼的经纬度信息)。整个实验表明 电路板接收GPS正常,对“GPRMC”格式的GPS数据
图12 实验验证前面板显示图
解码正确,系统通信过程正常。
5 结 语
基于LabVIEW和STC12C5A60S2设计的GPS实验装置具有结构简单、性能稳定、性价比高等特点,能够满足电子及电气自动化技术等专业学生进行LabVIEW以及单片机实验的需求,同时也能够为类似产品的开发提供一定的参考。
参考文献(References):
[1]卞晓红,穆飞航,季振宇,等. 基于虚拟技术的脑电信号检测示教系统设计与实现[J]. 医疗卫生装备,2011,32(4):9-10,27.
[2]任龙霞,吴为麟. 虚拟仪器在低压电弧故障断路器研制中的应用[J]. 电力系统保护与控制,2011,39(5):134-138,143.
[3]岳伟甲,刘昌锦. 一种基于VC++的通信信号仿真软件设计[J]. 四川兵工学报,2011,32(5):92-95.
[4]王建勋,周青云. 基于虚拟仪器和蓝牙技术的控制系统设计[J]. 实验室研究与探索,2015,34(3):86-89.
[5]吴香国,曹景杰,赵新宇. 虚拟仪器的超高强混凝土结构性能测试[J]. 实验科学与技术,2012,10(1):52-55.
[6]马永健,张武英.GPS测量技术在地籍测量中的应用[J].重庆科技学院学报(自然科学版),2013(5):131-134.
[7]张小红,郭博峰.单站GPS测速在实时地震监测中的应用[J].地球物理学报,2013,56(6):1928-1936.
[8]代斌,孙志斌,王飞龙,等. 基于PSD的静电悬浮位置测量与控制系统设计[J]. 传感器与微系统,2015,34(3):97-98,102.
[9]雷瑞庭,宋跃,陈上明.远程自动控制灌溉系统软件的设计[J].实验室研究与探索,2013(2):66-69.
[10]宋跃,范王壮远,陈卫,等.一种基于GSM的指纹远程安防系统[J].实验室研究与探索,2014,33(6):111-113.
[11]余炽业,宋跃,雷瑞庭.基于STC12C5A60S2的智能循迹小车[J].实验室研究与探索,2014,33(11):46-49,121.
[12]何雅琴,张飞,李桂秋,等.基于GPS-GSM技术的定位系统设计[J].信息化研究,2016(3):27-29.
[13]耿永刚,李利珍.单片机技术与应用[M].上海:上海科学技术出版社,2012:187-189.
[14]李晓辰,楼喜中. 基于FPGA的多接口转换研究与实现[J]. 电视技术,2014,38(1):66-68,76.
[15]梁天太,周英杰,张泽,等.基于MAX232实现PC机与CPU通信[J]. 新技术新工艺,2015(8):34-36.