双模块定位信息采集和显示系统设计

2017-05-12 09:41王世峰
单片机与嵌入式系统应用 2017年5期
关键词:流程图上位北斗

王世峰

(北京信息科技大学 自动化学院,北京100192)

双模块定位信息采集和显示系统设计

王世峰

(北京信息科技大学 自动化学院,北京100192)

针对卫星定位系统在生产生活中广泛应用的现状,提出一种基于北斗/GPS双模块的定位信息的采集与处理系统。以C8051F007单片机作为定位信息采集与处理的核心,完成了北斗/GPS双定位模块BD-126与单片机的接口电路、 OLED显示模块电路、DC-DC升压电路的设计,以及相应的软件系统设计,将采集到的数据在OLED显示和上位机PC端进行显示。测试结果表明,该系统能够实现定位信息的采集,并成功在OLED显示屏和PC端进行显示。

GPS;定位信息;UART;C8051F007

引 言

目前全球卫星定位导航系统有四个,分别为美国的GPS全球定位系统[1]、欧盟的Galileo(伽利略)全球定位系统、俄罗斯的 GLONASS(格洛纳斯)全球定位系统和我国自行研制的北斗全球定位系统(BDS)[2]。中国的定位导航市场异军突起,发展潜力较大。随着目前运输产业在国民生活中的作用日益凸显,为提高运输服务的水平,对其导航定位显得尤其重要。在我们平时的生活中,如行车方向、位置定位导航、失物寻找,更离不开卫星定位导航。

美国的GPS全球定位系统能够覆盖全球范围,是技术最为成熟、应用最为广泛的全球定位系统。但此系统为美国所垄断,一旦美国停止授权服务,将严重影响我们的生产生活,于是,我国投入大量精力自主研发了北斗卫星导航系统(BDS)。其在设计上,和GPS的性能不相上下,只是起步落后于GPS[3],因此还需要拓宽市场,但其对我国的国防建设、经济发展起到了促进作用。因此为了获得更好的服务,北斗/GPS组合式导航系统应运而生[4-5],其性能比在单模式下要好很多,可以满足人们的社会需求,对提高人们生产生活的水平具有重要的意义。

1 系统总体架构

本设计的主控制器为C8051F007单片机。定位信息的采集使用的是BD-126北斗/GPS双定位模块,BD-126北斗/GPS双定位模块与单片机之间通过软件实现的UART通信协议进行连接。定位信息的显示采用OLED模块VGM128064A50A01和上位机PC进行双显示[6],OLED模块与C8051F007单片机之间通过4线串行通信协议(SPI)进行连接,上位机PC与C8051F007单片机之间通过UART-USB转接电路连接。电源电路采用LM1117芯片,输入为PC端USB口的5 V电压,输出为3.3 V电压,给整个系统供电。再将3.3 V电压通过DC-DC升压电路,将电压升至8~15 V之间,供OLED显示器使用。系统结构框图如图1所示。

图1 系统结构框图

2 硬件设计

2.1 单片机最小系统

单片机最小系统以C8051F芯片为主,包括电源电路、晶振电路、复位电路外部时钟电路、JTAG下载电路、USB-UART转换电路。

BD-126属于双模双频的组合定位接收机,是北斗定位系统和GPS定位系统的组合,具体是由拥有24颗卫星组成的GPS系统和拥有16颗工作卫星的BD-2系统组成,相比单一定位系统,双模双频定位系统大大提高了定位精度。此模块采用MTK 3333芯片设计,具有高性能、低功耗的优点,是一个完整的卫星定位接收设备,具备全方位功能,能满足专业定位的严格要求。

图3 CP2102的引脚定义

该模块宽输入电压范围为3.6~6 V,采用二级放大28 dB高增益25×25有源陶瓷天线,TTL电平输出,可直接连接单片机。

2.2 OLED显示模块

用到的OLED显示屏为VGM128064A50A01,属于128 × 64点阵的OLED显示屏,其与单片机间通过4线SPI通信连接,本设计将通过串行时钟 SCLK,串行数据 SDIN、D/C、/CS将单片机与OLED模块进行连接[7]。

OLED模块的D1、D0两个引脚分别与单片机的25、26号引脚P0.4、P0.5相连接,用来构建OLED模块和单片机之间的数据通信。OLED的D/C管与单片机的27号引脚P0.6相连接用来控制OLED进行显示。OLED的17号引脚CS芯片选择引脚与单片机的28号引脚P0.7进行连接,其采用单片机C8051F007对芯片进行片选控制。

由于OLED显示模块需要8~15 V直流电压供电,因此还需要设计一个3.3 V到8~15 V的一个直流-直流(DC-DC)升压电路,这里将系统电压3.3 V升高至显示屏所需电压8~15 V。所用到的芯片为MT18604,硬件连接为单片机的第32号引脚DAC0与MT18604的SHDN引脚相连。DC-DC升压电路如图2所示。

图2 DC-DC升压电路原理图

单片机与上位机PC进行通信时需要用到USB-UART转接电路,此电路涉及到的芯片为CP2102,CP2102是一种USB转UART的桥接器[8],集成度很高。CP2102芯片内部包含有振荡器、USB收发器及其控制器和异步串行数据总线,其串行数据总线带有全部的调制解调器控制信号。CP2101的UART接口包括数据信号和控制信号,数据信号由TX(发送)和RX(接收)引脚决定,控制信号由DSR、DTR、RTS、RI、CTS、DCD引脚决定。其UART支持的数据格式和波特率是可变的,可以通过对其编程进行控制, CP2102的引脚定义如图3所示。

UART的数据格式和波特率的设置是通过在PC端编程后再COM口配置期间完成。该电路通过其驱动程序将PC端的USB口模拟成COM口,以达到扩展的效果。在PC端用软件模拟一个COM口,它通过访问硬件COM口的方式去访问带有CP2102芯片的器件。PC端与CP2102芯片间的数据传输是通过USB完成的,通过串口通信(UART)来完成单片机与CP2102芯片间的数据传输,构成USB-UATR转接电路[9]。单片机实现USB-UART转换电路原理图,如图4所示。

图4 单片机实现USB-UART转换电路原理图

根据BD-126各引脚的定义,本设计将此模块与单片机的连接为:BOOT引脚悬空;VCC接单片机20引脚VDD;GND接单片机21引脚DGND;TX接单片机23引脚P0.2,将BD-126的定位信息传输给单片机;RX接单片机22引脚P0.1,将单片机的控制信号送至BD-126;1PPS接单片机24引脚P0.3,来同步单片机与BD-126的时钟。其接口原理图如图5所示。

图5 BD-126模块接口电路原理图

3 软件设计

在本设计的主程序设计的主要思路是:单片机通过软件实现的UART发送指令协议来控制BD-126模块的工作模式。

① 当BD-126模块定位完成后,其1PPS引脚会产生定位脉冲,定位前端低电平,定位后有周期为1 s,高电平为100 ms的秒脉冲输出,将此引脚接单片机外部中断引脚,从而触发单片机中断,完成时钟的同步。

② 在外部中断的程序中通过串口通信程序读取定位信息,并写入单片机[10]。

③ 写入单片机的定位信息,将分两路进行显示,第一路通过SPI通信协议将定位信息送入OLED显示屏进行显示。

④ 第二路通过串口UART通信协议定位,信息送入上位机PC端进行显示。

根据程序的主要思路设计相应的程序流程图,如图6所示。

图6 主程序流程图

3.1 北斗/GPS定位信息采集程序设计

图7 采集程序设计流程图

定位信息的采集程序能够完成的是对定位信息的采集,由于单片机RX、TX端口被占用,且单片机只有一个硬件实现的UART数据通信,因此需要采用软件模拟UART的方式进行数据传递。在设计中所采用的是中断方式模拟软UART,并且每隔一定的时间更新一次采集。程序流程图如图7所示。

3.2 OLED显示程序设计

单片机将定位信息通过SPI通信协议传输给OLED显示屏,单片机接收到数据后,首先调用码转换函数,得到数据在系统的内部编码; 然后根据编码获得该数据点阵数据的参数,再设置该字符要在 OLED 屏上显示的位置;最后读出字符点阵数据,然后一行一行地输出,即可将定位信息显示在屏幕上。其字符编码得到系统内部编码流程图如图8所示。其显示程序流程图如图9所示。

图8 字符编码得到系统内部编码流程图

图9 OLED显示程序流程图

3.3 UART通信接口程序设计

单片机要实现UART通信,首先要进行串口初始化;此程序应用在单片机与上位机PC之间。UART通信流程图如图10所示。UART中断程序流程图如图11所示。

3.4 上位机串口通信程序设计

先移植PC端串口程序,增加接收和提取GPS数据的处理程序,修改文件和源程序中的类名,然后添加GPS数据处理代码[11]:

需要在CGpsProcView类中增加无模态对话框CGpsDataWin的指针变量GpsDataWin,并设置一个布尔变量GpsDataWinOn,此布尔变量默认为TRUE,由此布尔变量控制是否打开GPS数据的显示窗口,增加相应的菜单和工具栏,能够打开或关闭GPS数据显示窗口。

在CGpsProcView类中增加和GPS数据解释和处理有关的数据类型和常数定义。

图10 UART通信流程图

图11 UART中断程序流程图

图12 UART通信流程图

添加新函数GpsDataProc(),并在DispData()中增加对该函数的调用以显示定位数据。

GpsDataProc()通过UART接收单片机传输的数据并存储到GPS缓冲区,然后对数据进行解释处理。主要处理方法是:先找到语句结束标志' ',然后向前找到“$GP”,再将两者间的字符串放到到一个线性存储区,再从该线性存储区对前部固定长度的数据按固定位置转换数据,对后面长度变化的数据,按搜索语句分隔符‘,’的方法转换数据。单片机与上位机PC进行通信的UART通信流程图如图12所示。

4 设计成果

经调试后,程序运行正常,系统启动和运行后在OLED端的显示图片。

系统运行后在上位机PC端的显示如图13所示,上位机定位数据显示窗口14所示。

图13 上位机PC端的显示

图14 上位机定位数据显示窗口

结 语

[1] 陈吉. 基于GPS的土地面积测绘技术及土地管理信息系统的研究[D].杭州:浙江大学,2013.

[2] 辛德奎. 基于北斗/GPS双模的田间作业机车工况监测系统[D].大庆:黑龙江八一农垦大学,2015.

[3] 黄攀. 基于GPS/DR紧组合车载导航系统研究及实现[D].哈尔滨:哈尔滨工程大学,2013.

[4] 黄少锋,张尊泉,邓斌,等. 基于单片机采集与显示GPS定位信息系统的设计[J]. 空军雷达学院学报,2007(1):37-39.

[5] 徐允鹤. 基于GPS和北斗导航技术的靶船遥测系统设计[D]. 哈尔滨:哈尔滨工程大学,2009.

[6] 刘振武. 基于GPS和GPRS的城市公交智能终端系统设计[D]. 哈尔滨:东北林业大学,2014.

[7] 肖文文,胡平平. OLED字符显示和图形绘制系统的设计与实现[J]. 北京信息科技大学学报:自然科学版,2011(6):70-75.

[8] 徐璟. 基于USB接口的GPRS无线网卡的研究[D].武汉:武汉科技大学,2007.

[9] 陈贤明,何志伟,张杰,等. USB-UART转换器CP2102在智能电动机保护器中的应用[J]. 日用电器,2006(3):44-46.

[10] 李静,程安宇,陈卓.51单片机C语言程序设计[M].北京:人民邮电出版社,2010.

[11] 赵建领,弓雷. 51系列单片机开发宝典[M].北京:电子工业出版社,2012.

Design of Double Module Positioning Information Acquisition and Display System

Wang Shifeng

(School of Automation,Beijing Information Science and Technology University,Beijing 100192,China)

In view of the widespread application of satellite positioning system in production and life,a positioning information acquisition and processing system based on Beidou/GPS dual module is proposed.The C8051F007 MCU is used as the core of acquisition and processing.The Beidou/GPS dual positioning module BD-126 and MCU interface circuit,the OLED display module circuit,the DC-DC boost circuit are designed,and the corresponding software system is designed also.The system collects the data in the OLED display and the host computer PC-side to display.The experiment results show that the system can complete the acquisition of positioning information,and successfully displayes on the OLED display and PC-side.

GPS;location information;UART;C8051F007

TP211

A

迪娜

2016-12-28)

猜你喜欢
流程图上位北斗
北斗时钟盘
“北斗”离我们有多远
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
专利申请审批流程图
专利申请审批流程图
首个北斗全球“厘米级”定位系统开建
中国的北斗 世界的北斗
以新思路促推现代农业上位