GPS(Global Positioning System,全球定位体系)是世界上最完善的卫星导航体系。它不仅有掩盖全球的实时、接连的高精度的三维定位才能,一起也有精准的授时功用。运用高度安稳、准确的星载原子钟作为信号源进行时刻传输和比对,已成为很多范畴获取时刻的重要手法。基于此,本文运用GPS所供给的准确授时功用,选用单片机技能,完结了一种GPS时钟,并将时刻信息经过LCD进行显现。
体系构成及硬件完结
1 体系构成
GPS时钟体系主要由GPS接纳机、单片机、LCD显现器三部分组成,如图1所示。
图1 GPS时钟体系构成框图
GPS接纳机
在本体系中,GPS接纳机选用Garmin公司的GPS15XL,它是12通道的GPS接纳机,体积小,重量轻,功耗低,初次定位和重捕获时刻短,有较强抗遮挡和抗搅扰才能,功能极端安稳牢靠,且操作简略,易于开发。可作业在3.3~5.4V电压规模内,本体系选用+3.3V供电;精细授时类型精度可达±50ns(典型值);具有串行端口,输出为RS232,输入可为RS232或许具有RS232极性的TTL电平,波特率从300~38 400可选,默以为4800,无奇偶校验,8个数据位,1个开端位,1个中止位。GPS15XL输出的数据以美国国家海洋电子协会(National Marine Electronics Association)的NMEA0183 ASCII码接口协议为根底,可输出多条句子,内容包含经度、纬度、速度、方位角、高度、世界时、星历等信息。还可输出Garmin二进制格局信息。十分合适使用于车辆导航、海事导航、电力体系校时等。
对GPS15XL的装备,能够运用单片机经过NMEA 0183句子在程序中完结,也能够运用SNSRCFG软件来进行。装备参数将被保存在永久性存储器中,下次加电时主动收效。为简化规划,本文选用第二种方法,即经过SNSRCFG软件对GPS15XL进行初始化装备。
GPS15XL能够输出两种时刻信号:一是包含在串口输出信息中的UTC(Coordinated Universal Time和谐世界时)肯定时刻(年、月、日、时、分、秒);二是距离为1s的同步脉冲信号1PPS,其脉冲前沿与UTC的同步差错不超越1μs。本体系主要是运用串口输出的NMEA 0183句子获取UTC时刻信息。
NMEA 0183句子以“$”开端,以CR>LF>,即ASCII字符“回车”(十六进制的0D)和“换行”(十六进制的0A)完毕。下面以本文运用的GPRMC句子为例阐明其格局:
$GPRMC,1>,2>,3>,4>,5>,6>,7>,8>,9>,10>,11>,12>*hh CR>LF>
$GPRMC:句子开端标志(Recommended Minimum Specific GPS/TRANSIT Data引荐定位信息)
1> UTC时刻,hhmmss(时分秒)格局
2>定位状况,A=有用定位,V=无效定位
9>UTC日期,ddmmyy(日月年)格局
最终的校验码*hh用于做奇偶校验,一般不是必需的,但当周围环境有较强的电磁搅扰时则引荐运用校验码。hh代表了“$”和“*”之间一切字符的按位异或值(不包含这两个字符)。
单片机PIC18F8520
体系选用Microchip公司出产的高功能RISC CPU PIC18F8520作为控制器,它内部有32KB的FLASH程序存储器和2KB的SRAM数据存储器、1KB的EEPROM数据存储器;运算速度可达10MIPS;能够作业在DC~40MHz的时钟频率规模之内;具有USART接口,支撑RS-485和RS-232,可与GPS模块相连,用来获取时刻信息;支撑ICSP在线串行编程,便于软件的晋级和保护;支撑ICD,能够在线调试,缩短开发周期。
LCD显现器
体系选用LCD1602作为显现设备。LCD1602液晶显现模块具有体积小、功耗低、显现内容丰富、超薄轻盈等长处,在袖珍式外表和低功耗使用体系中使用广泛。它能够显现两行,每行16个字符,选用单+5V电源供电,外围电路装备简略,价格便宜,具有很高的性价比。
2 硬件电路
体系的硬件电路如图2和图3所示。
图2 单片机外围电路衔接
图3 单片机与GPS模块的衔接
电路板上有3.3V和5V两种电压,其间LCD选用5V供电,而单片机和MAX3232作业在3.3V电压下。外部电源为5V,经AS2830转化为3.3V,给单片机和MAX3232供电。从图2中能够看到,单片机的电源脚没有与3.3V直接相连,而是经过J2、J3跳线即可连到3.3V上,也可连到VDD上。这是由于单片机在选用PIC16-MCD2编程器经过ICSP接口进行在线编程时由MCD2供电,这时,单片机电源脚需衔接到VDD上(MCD2输出电压VDD为5V);而正常运转时单片机由电路板供电,J2、J3跳线衔接到3.3V上,单片机就作业在3.3V,能够下降功耗。
PIC18F8520既有模仿电源、模仿地引脚也有数字电源、数字地引脚,在电路规划中,选用模仿电源、数字电源别离,模仿地、数字地别离,模仿电源和数字电源之间经过磁珠衔接,模仿地和数字地经过0Ω电阻在单点衔接,以防止模仿信号与数字信号之间的搅扰,进步体系的牢靠性。
软件完结
软件由主程序和中止子程序组成,在MPLAB IDE v8.53环境下,选用MPLAB C18编译器,用C言语编程完结。
在主程序中进行体系的初始化、数据处理、LCD显现,GPS数据的接纳则经过串口中止完结,每收到一条完好的NMEA句子,就设定一个标志,在主程序中经过查询该标志进行UTC时刻的提取以及转化成北京时刻,再经过LCD显现。由于将杂乱的数据处理放到主程序中,这样就能够使中止程序尽量简略,在产生其他中止时,单片机能够及时做出呼应,进步了体系的实时性。流程图如图4所示。
图4 流程图
由于GPS模块输出的时刻为UTC时刻,依据习气,需转化成本地时刻(北京时刻),这项作业在主程序中完结。依据本地时刻=UTC时刻+时区值,而北京坐落第8时区,时区值为+8,故北京时刻=UTC时刻+8。在转化过程中,须对16:00:00—23:59:59 UTC时刻作相应的处理,+8后判别小时是否大于24,若大于,则减去24,一起日期+1,别的,还涉及到闰年、大月、小月的处理。
中止服务程序流程图中,串口接纳数据时判别字头,只判别了“$”一个字符,这是由于之前已经过SNSRCFG软件将GPS15XL设置为只输出GPRMC一条NMEA句子。
调试及运转
首要,对GPS15XL进行初始化。将GPS15XL经过串口与PC衔接好,给GPS15XL上电,用软件SNSRCFG设置初始化信息,波特率设为9600,只输出一条GPRMC句子(要获取UTC日期和时刻,一条GPRMC句子就足够了),将这些信息写入OEM板内的永久性存储器中,下次上电时将会主动收效。
然后,经过电路板上预留的ICSP接口,运用PIC16-MCD2编程器将编译好的程序写入单片机。编程时不给电路板供电,单片机经过MCD2供电,须留意电路板上跳线的设置。
最终,将GPS15XL与电路板衔接。给电路板和GPS15XL上电,授时接纳体系进入正常作业状况,单片机经过RS-232串行方法接纳GPS15XL的卫星数据,获取准确的时刻信息,并转化成北京时刻,经过LCD显现。
留意:运用时,GPS授时天线一定要放在开阔的室外,不然接纳不到卫星信号,也就无法获取UTC时刻信息。
结语
本文运用P%&&&&&%18F8520提取GPS高精度时钟,并在LCD上显现,所完结的时钟体系是配电线路毛病长途监测及定位体系项目的一部分,经测验,该规划运转安稳,能够为整个体系供给准确的时刻信息,具有较高的牢靠性、准确性和实用性。此外,还能够将GPS时钟的内核嵌入其他体系,以其时刻作为体系时刻,例如:金融/证券实时结算、民航/铁路/交通调度体系、各种计算机网络体系、实时通讯网络体系、体育彩票和福利彩票等实时出售体系等,使用十分广泛。