APP下载

基于GPS/北斗卫星定位导航系统的智能通信终端的设计

2022-08-01湖南工学院电气与信息工程学院吴乐邹本福孙长明成利香

卫星电视与宽带多媒体 2022年13期
关键词:串口短信单片机

湖南工学院 电气与信息工程学院:吴乐 邹本福 孙长明 成利香

随着卫星导航系统的快速发展和产业化,卫星导航定位技术得到广泛应用和发展。最早投入运行并面向全球提供民用导航服务的是美国的“GPS”卫星导航系统,在稳定性、精度、测速具备很大优势,在全球范围内得到了普及。北斗卫星导航系统(BDS)是我国自主建设、独立运行的全球卫星导航系统,可为用户提供高精度、高可靠的定位、导航、授时服务。目前,推广北斗卫星导航系统的终端应用,是国家经济战略发展的需要。

通信终端作为用户接入卫星导航系统的唯一接口,目前被广泛应用,并深入到人民的生活当中,在公共安全、测绘仪器、智能交通运输、精准农业、海洋工程、防灾减灾等方面得到广泛应用,具备很好的发展前景,由此对于卫星导航通信终端的研究与实现显得更加有意义。

文中设计了一款基于GPS/北斗的智能通信终端系统,采用STM32F103RC作为主控制器,通过Air530多模卫星定位导航模块获取定位信息、实时时间,并显示在液晶屏上,还能通过GSM模块将获取的信息发送到用户手机端。系统具有低功耗、低成本、扩展灵活等特点,实现了精准授时、定位和无线通信等功能。

1.总体设计方案

系统以STM32F103RC芯片为核心,主要由GPS/北斗定位模块、无线通信模块、液晶显示模块、电源电路等搭建系统的硬件电路,通过程序设计,系统主要实现获取通信终端的实时位置(经度、纬度)、时间和日期等信息,并在液晶显示屏上显示,还能将获得的位置信息按一定的时间规律发送给用户手机端。系统总体设计方案如下图1所示。

2.系统硬件设计

2.1 主控模块电路

2.1.1 STM32F103RC简介

智能通信终端系统的主控芯片采用STM32F103RC,该芯片采用高性能的Cortex-M3内核,工作频率为72MHz,内部配有高速存储器,处理速度极快,片内资源极其丰富,还拥有丰富的多功能I/O端口以及连接到两条APB总线的外设,配备了许多标准和先进的通信接口。STM32F103RC主控电路设计包括STM32F103RC芯片、复位电路、时钟电路和电源接口电路。

2.1.2 供电接口电路

电源是用电设备必不可少的部分,供电电路采用Type-c接口给STM32单片机芯片供电,为单片机提供稳定的工作电压,Type-c接口没有正反之分,随意使用,不容易损坏电源电路,简单方便又实用。

2.1.3 复位电路

由于选用的STM32单片机是低电平复位,系统设计采用按键复位方式,当按键按下时,电容快速放电,RESET连接的引脚会逐渐变为低电平,按键松开后,电容快速进行充电,RESET连接的引脚电压会逐渐变为3.3V,从按键按下到松开的过程一般都需要持续几百毫秒,远大于系统复位所需拉低电平的时间,因此满足复位条件,单片机能正常复位。

2.1.4 时钟电路

图1:系统总体方案设计图

时钟电路是STM32单片机必不可少的电路之一,它主要为STM32提供时间信号,电路主要由晶振与电容组成,stm32需要两个外部晶振,其中8MHz的高速晶振,PLL倍频用,另一个32.768KHz低速晶振,在系统处于低功耗或者待机状态下使用,也可以用于计时。

2.2 定位模块接口电路设计

2.2.1 定位模块Air530简介

Air530模块是一款高性能、高集成度的多模卫星定位导航模块。它体积小、功耗低,可用于车载导航、智能穿戴、无人机等全球卫星导航系统定位的应用中,而且提供了和其他模块厂商兼容的软、硬件接口,大幅减少了用户的开发周期。模块支持GPS/Beidou/GLONASS/Galileo/QZSS/SBAS。采用了射频基带一体化设计,提供超高的性能,即使在弱信号的地方,也能快速、准确的定位。

2.2.2 Air530模块与STM32接口电路设计

Air530与STM32采用串行接口进行通信,接口电路中GPS_RXD引脚负责数据接收,接单片机的数据发送引脚PA2,接收单片机发送的数据与指令。GPS_TXD引脚负责数据发送,接单片机的数据接收引脚PA3,给单片机发送数据。

2.3 液晶显示屏接口电路设计

系统使用1.44寸TFT液晶显示屏,显示屏只需要3.3V低电压即可驱动,显示效果好,同时功耗也很低,屏幕没有辐射、不闪烁,该屏幕工作的温度范围也很广,在-20℃到+50℃之间都可以使用。显示屏一共只有8个引脚。

TFT液晶显示屏与单片机的接口电路中SD1是液晶屏SPI总线数据输入端,接单片机的PB9引脚,CLK是液晶屏SPI总线时钟信号,接单片机的PB8引脚,CS为液晶屏的片选信号,低电平使能,接单片机的PB7引脚,SD0是液晶屏的复位引脚,负则显示屏出现错误后的复位,接单片机的PB6引脚,D/C引脚控制选择液晶屏寄存器/数据选择,接单片机的PB5引脚,BLK为液晶屏的背光负极,接单片机的PB4引脚。

2.4 无线通信电路设计

2.4.1 SIM800C介绍

SIM800C是一款四频GSM/GPRS模块,该模块的使用范围广,支持收发短信,拨打与接听电话,系统只需要用到其发送短信的功能,实现单片机与手机端的通信。模块的正面有一个MBUS总线插头和一个MicroSIM卡槽,反面是一个MBUS总线插座,SIM800模块上有一路信号指示灯,上电指示灯会快闪,寻找到网络会进入慢闪,连接上GPRS会快闪。

2.4.2 SIM800C与STM32的接口电路设计

SIM800C与STM32之间采用串口通信:V_IN接5V电源,GND接地,TXD引脚负则模块的数据发送,接到单片机的PB11(RXD)脚,RXD引脚负责模块的数据接收,接到单片机的PB10(TXD)脚,PWK引脚接地,模块上电时,会拉低PWK引脚一秒以上,然后释放,模块才能开机。

3.系统软件设计

软件设计主要包括STM32监控程序设计、液晶屏控制与显示程序设计、定位程序设计、GSM无线通信程序设计等。

3.1 主程序设计

主程序为系统运行的主要逻辑,包括了各个模块的初始化管理与各模块之间的工作的管理,详细的程序设计流程如下:

(1)系统上电后,先初始化系统的时钟系统,使系统能在统一的频率下工作。

(2)中断分组,STM32F103有非常多的中断类型,进行中断分组方便对各个中断事件进行处理,因为系统要同时使用串口一、串口二和串口三的中断,所以要进行分组管理,增加系统的稳定性,使系统免于处理数据顺序混乱而出现莫名其妙的BUG。

(3)初始化液晶屏幕,使其能在接下来的时间里显示数据信息。

(4)初始化卫星定位模块,让GPS模块使用GPS卫星与北斗卫星一起定位,从而使定位更加准确,指定GPS模块返回数据的频率为1s/次,返回指定的GPRMC格式的数据。

(5)初始化GSM无线通信模块,使其处于工作状态,等待系统的下一步指令。

(6)初始化led,在主循环中隔一段时间点亮和熄灭led,使用户知晓系统正在正常工作状态。

(7)解析接收到的定位信息,并展示到液晶显示屏上。

(8)最后判断循环次数是否满足了指定的要求,如果满足,就给手机端发送位置信息,如果还不满足条件,就执行下一次循环。

3.2 TFT液晶显示屏程序设计

将对屏幕的每一步操作都封装成单独的函数后,再写一个显示字符串的函数,只需要传入字符串需要显示的位置,字符的颜色,背景颜色和字符串这几个参数即可。

(1)函数会进行字符串是否为空的判断,情况一:如果字符串为空,说明字符已经全部显示,程序结束。情况二:传入的是空字符串,错误的数据格式,直接结束程序。

(2)字符串不为空时,会判断字符的类型,获取相应的字符像素点信息。

(3)将像素点信息发送到屏幕后就会显示相应的字符。

3.3 卫星定位模块程序设计

3.3.1 NMEA协议简介

AIR530模块支持NMEA 0183 V4.1协议并兼容以前版本。NMEA是(National Marine Electronics Association)为海用电子设备制定的标准格式。它是一套定义接收机输出的标准信息,有几种不同的格式,每种都是独立相关的ASCII格式,逗点隔开数据流,数据流长度从30-100字符不等,通常以每秒间隔选择输出,最常用的格式为“GGA”,它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP值,差分状态和校正时段等,其他的有速度,跟踪,日期等。已成为所有的GPS接收机和最通用的数据输出格式,同时它也被用于与GPS接收机接口的大多数的软件包里。NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。

常用格式以及表示的意义如下:

(1)GGA:时间、位置、卫星数量;

(2)GLL:经度、纬度、UTC时间;

(3)GSA:GPS接收机操作模式,定位使用的卫星,DOP值,定位状态;

(4)GSV:可见GPS卫星信息、仰角、方位角、信噪比;

(5)RMC:时间、日期、位置、速度VTG:地面速度信息。

3.3.2 Air530定位程序设计

Air530模块与STM32单片机采用串口通信,设置波特率为9600波特。先对定位模块进行初始化操作,完成之后,模块返回RMC格式的数据给单片机,STM32单片机通过串口接收到数据后,进入中断处理函数,将收到的数据保存到自定义数组中,数据接收完成之后,将接收完成标志位置1。

(1)在程序中通过解析数据函数首先会判断STM32是否接收到了数据,如果没有接收到,则退出解析数据程序等待下一次调用。

(2)如果有数据,则以逗号为分割标志,将接收到的数据分为时间、数据状态、维度、南北纬标志、经度、东西经标志、地面速度、卫星方位、当前日期等几个部分。然后将这些数据保存到自定义的结构体中,用于后续的显示以及无线通信。

3.4 GSM短信发送程序设计

GSM无线通信模块通过串口发送AT指令给SIM800,就可以实现语音、SMS短信和数据信息的传输,可以运用短信来发送时间、位置等信息。

SIM800模块遵循的短信收发功能指令如下:

程序中,采用的指令包括使用“AT+CMGF=1 ”指令将短信配置为文本格式;使用“AT+CSCS=”GSM” ”指令将CSCS设置为GSM模式;使用“AT+CMGS=”指令设置接收短信的手机号码。将一系列的指令发布之后,就是对模块的运行进行设置。主要是需要让它实现在接收到单片机系统传输过来的位置信息之后,系统通过串口通信,将经纬度、时间等信息以数组的形式进行发送。

具体流程为:首先对GSM无线通信模块进行初始化,完成后等待STM32单片机给其发控制指令。当定时时间到后,系统调用发送短信的函数,先将短信模式配置为文本模式,用于发送英文短信,再设置字符格式为GSM字符集,然后输入接收短信的用户手机号码,最后输入要发送的定位位置信息、时间等内容和结尾标志,即可完成短信的发送。

4.系统调试

4.1 室外定位测试

搭建好系统硬件系统,通过KEIL软件编写好程序后,下载到STM32开发板,进行系统测试。首先,系统通电后,各个模块初始化完成,通过卫星定位模块会将接收到的位置信息显示到液晶显示屏上,测试结果如图2所示:第一二行是测试当日的日期和时间,第三四行显示的是开发板所在位置(显示的经、纬度),第五行显示的是以上几行数据信息是否有效,如果系统没能正确的获取到卫星定位的信息,此处会显示“数据无效”。

图2:室外定位测试结果

图3:手机端短信接收结果

4.2 发送短信功能测试

单片机控制GSM模块给指定的手机号发送自定义格式的数据,发送位置信息的同时也把时间信息一起发送,是为了让用户知晓数据获取的时间,保证了数据的时效性,其调试结果如图3所示:第一行是接收到的当前日期,第二行是当前时间,第三第四行分别为定位到的系统的经纬度。用户收到数据后,通过谷歌地图查看定位结果,误差在十米以内,系统的定位比较准确。

猜你喜欢

串口短信单片机
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
道歉短信
代发短信
MCS—51单片机中的多串口通讯技术的应用
“八一”节日短信之一