基于单片机的GPS高精度授时时钟设计说明.docx

上传人:b****8 文档编号:11312780 上传时间:2023-02-26 格式:DOCX 页数:46 大小:139.37KB
下载 相关 举报
基于单片机的GPS高精度授时时钟设计说明.docx_第1页
第1页 / 共46页
基于单片机的GPS高精度授时时钟设计说明.docx_第2页
第2页 / 共46页
基于单片机的GPS高精度授时时钟设计说明.docx_第3页
第3页 / 共46页
基于单片机的GPS高精度授时时钟设计说明.docx_第4页
第4页 / 共46页
基于单片机的GPS高精度授时时钟设计说明.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

基于单片机的GPS高精度授时时钟设计说明.docx

《基于单片机的GPS高精度授时时钟设计说明.docx》由会员分享,可在线阅读,更多相关《基于单片机的GPS高精度授时时钟设计说明.docx(46页珍藏版)》请在冰豆网上搜索。

基于单片机的GPS高精度授时时钟设计说明.docx

基于单片机的GPS高精度授时时钟设计说明

学士学位毕业设计(论文)

基于单片机的GPS高精度

授时时钟设计

学生姓名:

指导教师:

所在学院:

专业:

农业电气化

摘要

本文设计了一种基于P89LPC952高速单片机的GPS卫星授时时钟。

它由接收机、中央处理单元、LCM显示、键盘、输出接口组成。

利用接收机提供的标准时间信号,通过中央处理单元对数据的处理,从而可同步输出时间数

据,保证高精度授时。

这不仅解决了时间获取问题,而且能真正实现全球范

围内的时间校准。

更创新性地集成了全世界212个城市的实时时间显示。

传统方法相比,这种全新的时钟同步方法具有实现手段简单、精度高、范围

大、不需通道联系、不受地理和气候条件限制等众多优点,是时钟同步的理

想方法。

本文介绍了基于P89LPC952的GPS授时时钟装置的硬件;根据装置要实现的功能,给出了主程序和中断程序的流程图和程序介绍。

关键词:

授时时钟P89LPC952GPS中央处理单元

ABSTRACT

AkindofGPSsatellitetimingclockbasedontheP89LPC952High-speedMCUisrecommendedinthefollowingthesis.Itiscomposedofreceptors、centralproceedingsections,LCM,keyboardandoutputconnectors.Thecentralproceedingsectioncoulddealwiththedatatomaketheoutputtimedatabyuseofthestandardtimesignalssuppliedbyreceptors,thus,keepinghighlyprecisiontiming.Bythisway,notonlysolvetheproblemofthetimeobtained,butalsothetimeintheworldwideisreallycompletelyunified.Evenmore,creativelyintegrates212citiesoftheworldwide's-tealedisplay.Comparedwithconventionalmethod,thisnewsynchronousclockplanhasmanyadvantages,suchassimple,highprecision,wideextension,nochannelsneeded,noconfineofgeographyandweatherenvironmentandsoon.Itistheidealwaytosynchronizetheclock.Inthefollowingpaper,representthehardwareoftheGPStimingclockbasedontheP89LPC952High-speedMCU.Accordingtothefunctionofthedevice,listtheflowchartofthemainprogramandtheinterruptprogramandtheintroductionofthoseprograms.

Keywords:

TimingclockP89LPC952GPSCentralproceedingsection

摘要II..

ABSTRACTU1.

前言IV.

1.绪论1…

1.1设计提出的意义1.

1.2课题主要内容

2.系统设计基础2.

2.1设计思想2.

2.2方案选择2.

2.3本章小结3..

3.系统组成原理及硬件设计4.

3.1系统的组成和原理4.

3.2硬件电路的设计4.

3.3本章小结10

4.软件设计11

4.1软件系统结构1.1

4.2主要算法设计12

4.3本章小结15

5.PCB设计、组装及调试16

5.1PCB的设计16

5.2PCB焊接组装17

5.3电路的调试17

5.4本章小结18

结论19

参考文献20

致谢2.1.

附录1系统原理图22

附录2主要源代码23

、八,、■

刖言

20世纪70年代的计算机革命产生了一群新的时间用户,他们需要精确

的计算机时间。

但是,众所周知,计算机时钟的守时性能并不出色。

通常,

简单的时钟如腕表和家里的挂钟的性能要好于计算机时钟。

这种计算机时钟的性能会导致很多问题,因为有很多计算机应用需要时

间精度保持在接近1s或更好。

例如,出于安全原因,用于金融系统的计算机

必须能够精确记录每次转账、交易的精确时间。

同样,用于电信计费的计算

机,它不仅要求单机能够准确记录通信的时间,还要求另外城市的计算机能

够保持时间同步,才能保证网间结算不会出问题。

用于精确物理测量获得科学数据的计算机系统需要知道测量的精确时刻,全自动化工业系统也需要计

算机在正确的时刻发出控制指令。

对同步通信系统,如无线电台、电视基站,需要计算机在正确的时间建立链路连接。

授时系统就是使仪器或计算机

与国际标准时间达到精确同步。

通常,可以用原子钟来保证仪器的时间与国

标时间达到精确同步,但是原子钟价格昂贵。

这里介绍一种简单、相对廉价的时间同步方法。

利用全球定位系统提供的时间信号和秒脉冲,通过软件可

以使计算机的时钟与UTC(UniversalTimeCoordinated协调世界时)达到精确

的同步。

1.绪论

1.1设计提出的意义

面对着现代社会的快节奏生活,人们对时间的要求就会越来越高。

而且

现在有很多机构对时间的同步性要求也越来也高,而原子钟的成本又太高,

所以,基于单片机的GPS高精度授时时钟将完全能够胜任这些高要求的时间机构。

1.2课题主要内容

本课题主要设计一个可以接收GPS报文,并能提取报文中的时间信息,

在一定时间周期内为系统内的时钟校时,使系统始终运行在秒级精度上。

且可以将GPS的有关时间的报文,通过另一个串口向PC端发送。

并且存储

212个城市的中英文名称和市区数据,而且可以用液晶无延迟显示这些城市

的名称和当前时间,并能通过键盘实时切换的各个城市的高精度时钟。

时钟在没有接收到准确的GPS报文的情况下还可以通过键盘对时钟进行

手动调整。

并且系统内带有一个闹钟,可以通过键盘对其进行调整以及控制

其起停。

并且系统还有实时显示本地经纬度功能。

在硬件设计上,采用先进

的SMT工艺,使整个系统迷你化。

2.系统设计基础

2.1设计思想

本系统在设计之初时,首先要求要有两个串口,一个用来接收GPS报

文,另一个用来向PC发送时间数据。

GPS模块的1PPS引脚接到单片机的中断管脚上,以提高授时的精度。

要让单片机能够存储、检索212个国家的中英文名称和其时区数据。

通过一块液晶屏幕将整合后的时间信息显示。

系统内要自带一个实时运行的时钟。

接收到的GPS时间信息是要为本系

统校时,而不是直接为系统提供时间。

这样系统内就始终有一个时钟在运

行。

系统内还要有一个键盘,可以实现系统的时间调整、闹铃调整以及其他

功能。

利用系统内已有的时钟,设计一个闹铃。

2.2方案选择

用一片P89LPC952作为中央处理单元,由于P89LPC952只有8K的存储空间,所以加一片32K铁电存储器一一FM25CL256作为数据存储器。

系统框图如图1。

图1系统框图

P89LPC952有两个独立的串口,可配置各自独立的波特率。

铁电存储采

用串行SPI总线进行高达3Mb/s的速率读写。

完全可以应付屏幕显示的速度。

2.3本章小结

本章主要讨论基于单片机的GPS高精度授时时钟的设计思想,并详细介

绍了方案选择的过程。

其中P89LPC936有足够的存储空间,但外部的管脚资源太少,单GM8125就占用了八个管脚,扩展性能太差。

P89LPC952有足够的44个管脚,但存储空间只有8K。

但SPI总线的高速率弥补了空间的不足。

3.系统组成原理及硬件设计

3.1系统的组成和原理

整个系统由单片机中央控制和运算模块、GPS模块、铁电数据存储模

块、机内时钟和闹铃模块以及键盘和显示模块组成。

单片机中央控制与运算模块负责接收GPS报文,读写I2C时钟,将GPS

报文中的时间信息提取出来,经过与默认城市的市区数据运算后,在1PPS中

断到来的时刻,将时间数据写入I2C时钟芯片,同时将时间数据以及从存储

器中读出的城市中英文名称整合后送屏幕显示。

GPS模块通过天线接收多颗卫星传来的定位及时间数据,通过串口以

TTL-232电平将数据送出,并产生1PPS秒脉冲。

在铁电存储模块中,创新性地存储了全世界212个城市的中英文名称和

时区数据,这就使整个系统不仅仅是一台高精度授时时钟,更是一台高精度

的世界时钟。

可以查询这212个城市的实时时间。

而且只用存储其中2bytes

的存储空间,实现了可将任意城市的时间设为在系统主界面显示的城市名称和当前时间,这就为长途旅行带来更多的方便。

机内时钟和闹铃模块自身一直在有一个时钟运行,单片机通过I2C总线读取其中的时间数据,而且芯片内还有一个报警中断引脚,用来做闹铃的开

关。

总的来说,就是单片机将所有接收到的时间数据于读取的城市数据运算整合,送屏幕显示,并和机内时钟的报警中断共同控制系统闹铃。

键盘则用

以进入菜单,实现时钟调整等各种功能。

3.2硬件电路的设计

3.2.1P89LPC952单片机系统设计

P89LPC952是飞利浦最新的一款单片机,含有多种低成本的封装形式。

它采用了高性能的处理器结构,指令执行时间只需2到4个时钟周期。

6倍于

标准80C51器件。

8KB可擦除Flash程序存储器,单字节擦除特性使得任何字节都可用于非易失性数据存储。

两个增强型UART,具有波特率发生器、间

隔检测、帧错误检测和自动地址检测功能。

400kHz字节宽度的I2C通信端口

和SPI通信端口。

片内高精度的RC振荡器选项带有时钟倍频器,无需外接振

荡器件。

VDD操作电压范围为2.4〜3.6V。

I/O口可承受5V电压。

端口输入

模式匹配”检测。

当P0口管脚的值与一个可编程的模式匹配或者不匹配时,

可产生一个中断键盘中断。

在本系统中主要应用了单片机的内部晶振、两个增强型UART、I2C通信端口、P0口键盘中断和一个外部中断。

SPI总线采用I/O口软件模拟的方式。

并用I/O口软件模拟的方式驱动液晶显示模块。

在单片机电路设计中,按照飞利浦给出的接口定义,接出了ICP在电路

编程接口,并预留了JTAG10针在线调试接口[2]。

ICP在电路编程接口定义如图2。

JTAG接口的定义图如图3。

图2ICP在电路编程接口定义

VDD

NC

JTRIG

NC

GND

JSCLK

JSDAT

NC

NC

RST

JTAG

MJ11

VCC_PIN1

JTRIG2

GND_PIN3

JSDAT4

5

10

9

8jsclk

7

6RSTPIN

图3JTAA在线调试接口定义

ICP是一种串行编程方式,其通过一根时钟线与一根数据线串行传输编

程指令及数据。

在开发过程中,不需将芯片从系统板上取下,即可实现重新编程。

不占用程序存储空间,不受串口的影响[3]。

3.2.2电源电路的设计

由于系统中需要两种电压,例如单片机、串行电平转换芯片、时钟芯片铁电存储芯片为3.3V供电,而GPS模块、蜂鸣器和液晶屏幕则用5V供电。

所以系统中要设计出两种电压的输出。

由直流输入到5V输出使用SPX3819,而3.3V输出采用LM1117-33。

SPX3819持续输出电流可达500mA,压降为340mV。

由于仅提供固定输出电压,无需外部电压设定电阻,因而减少了所需的板空间。

而且SPX3819还具有反向电池保护、反馈电流限制和负载掉电保护等功能⑷。

LM1117-33输出电流可达800mA,但压差偏高。

当输入输出的压差达到1.2V时芯片才能正常工作。

在本系统中由于是将SPX3819输出的5V接入其

输入管脚,所以芯片完全可以正常工作[5]。

由于电压中含有许多高频干扰源,这些高频成分很容易经过电源进入通信系统中。

另外系统自身的发送频率也会经过电源感应反馈到通信系统造成干扰。

因而可在电源电路中并入多个不同容值的电容所构成的滤波电路来抑制各种高频信号。

使系统能够得到稳定可靠且低干扰的电源,保证系统的可靠运行⑹。

电源电路如图4所示。

PJ2BT1(6V)

图4电源电路

323GPS模块电路设计

GPS模块采用台湾HOLUX公司的GR-85模块。

GR-85模块采用美国瑟孚(SiRF)公司所设计的第二代低耗电量卫星定位接收芯片,是一个完整的卫星

定位接收器。

其耗电量低,且能同时追踪12颗定位卫星的讯号,每0.1秒接收一次,每秒更新一次定位,支持NMEA01832.2版本规格输出。

而且支持1PPS秒脉冲的输出[7]。

GR-85总共有六个管脚,管脚定义如表1。

表1GR-85管脚定义

管脚

定义

管脚描述

1

VCC_5V

5.5V电源输入

2

TXA

串行口输出A

3

RXA

串行口输入A

4

RXB

串行口输入B

5

GND

接地

6

1PPS

时间标记:

1PPS时间标记输出

3.2.4铁电外部数据存储模块设计

对于各城市的中英文名称以及时区数据采用Ramtron公司的FM25CL256

――32K的数据存储器。

FM25CL256是用先进的铁电技术制造32Kb的非易失性存储器。

铁电随机存储器(FRAM)具有非易失性,并且可以像RAM一样快速读写,数据在掉电后可以保存10年,相对于EEPROM或其他非易失性存储器,FRAM具有系

统可靠性更高,结构更简单等诸多优点。

与EEPROM不同,FM25CL256以SPI总线进行写操作,操作无须延时。

当数据被移入芯片后,写操作仅需几百纳秒,下一个总线周期可以立刻开始而无须进行数据轮循。

另外,FM25CL256具有比其它非易失性存储器高得多的读写操作次数,可以承受超过100亿次的读写操作⑹。

基于以上选择了FM25CL256,在实际读取应用中,每次在调用片内数据送去显示时,根本没有读取延时。

它就像单片机中的一个大容量RAM存储

区。

这样,单片机中所可以在液晶上显示的汉字就全部储存在其中。

而且它

还存储了默认城市数据索引的首地址。

这样即使在系统完全掉电的情况下,

默认的数据也不会丢失,增加了系统的人性化,也赋予了系统更多的创新

性。

3.2.5时钟和闹铃模块的设计

时钟芯片采用了飞利浦公司生产的PCF8563芯片,PCF8563是低功耗的

CMOS实时时钟/日历芯片,它提供一个可编程时钟输出,一个中断输出和

掉电检测器,所有的地址和数据通过I2C总线接口串行传递。

最大总线速度

为400Kb/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。

芯片

的I2C总线从地址:

读0A3H;写0A2H。

PCF8563有16个8位寄存器,所有16个寄存器设计成可寻址的8位并

行寄存器,前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器,内存地址02H〜08H用于时钟计数器(秒~年计数器),地址09H〜0CH

用于报警寄存器(定义报警条件),地址0DH控制CLKOUT管脚的输出频率,地址0EH和0FH分别用于定时器控制寄存器和定时器寄存器。

秒、分钟、小

时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD格式编码。

当一个RTC寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读[9]。

由于单片机内有一个标准的I2C总线接口,这样单片机就可以实时读取

I2C接口上的数据,然后直接送到屏幕显示。

在实际实验中,效果非常好。

I2C总线接口定义要求在SDA和SCL线上各加一个上拉电阻,本系统内

选用电阻阻值为5.1KQ。

在中断引脚上加入一个10KQ的上拉电阻。

并在时

,当系统通电时,二极管因反向电压而截当系统掉电时,二极管导通,由备用电池向时5。

D3

OSCI

VDD

OSCO

CLKOUT

INT

SCL

PCF8563-

VSS

SDA

U3

PCF8563

R15_BT1

10k3V

25P丫1学习器32:

76K

LJl

25P

 

图5时钟电路电路图

在PCF8563芯片中的第3脚为报警中断管脚,当一个或多个报警寄存器写入合法的分钟、小时、日或星期数值且这些数值与当前的分钟、小时、日

或星期数值相等则该管脚产生低电平中断。

但是只有一个低电平中断是不能驱动蜂鸣器发声的,还要有一个让蜂鸣器发

声的方波,这可以由单片机的一个I/O管脚生成。

中断管脚是低电平有效,

方波始终都有。

这样就可以加一个或非门让中断管脚作方波输出的开关。

实际电路中用一片2输入4与非门一一74HC00也可以组成一个或非门,其逻辑电路图如图6。

图674HC00组成或非门逻辑电路图其运算为:

A=WAVEB=ALARM

AgBAcB=A+B

真值表如表2。

表2真值表

ALARM

WAVE

OUTPUT

0

0

1

0

1

0

1

0

0

1

1

0

即中断管脚为高电平时,无论方波输出为高电平还是低电平,最后输出

的都是低电平。

反之,当中断管脚为低电平时,方波输出高电平,则总输出

为低电平;方波输出低电平,则总输出为高电平。

这就实现了闹铃的功能

326键盘及显示模块的设计

在设计方案中,键盘的设计是比较特殊的,也是比较有创新性的。

它看

似和普通的矩阵键盘没什么两样(键盘电路如图7),实际上他用了飞利浦单片

机的一项特殊的功能一一键盘中断。

键盘中断功能主要用于当P0口等于或不等于特定的模式时产生一个中

断。

该功能可用于对键盘的识别。

有3个特殊功能寄存器用于该功能。

键盘中断屏蔽寄存器(KBMASK)

用于定义连接到P0口的使能触发中断的输入管脚。

键盘模式寄存器(KBPATN)用于定义与P0口值相比较的模式。

当键盘中断功能有效且条件匹配时,键盘中断控制寄存器(KBCON)中的键盘中断标志(KBIF)置位。

如果通过置位IEN1寄存器的EKBI位和EA位将中断使能,则会产生一个中断。

键盘中断控制寄存器(KBCON)中的PATN_SEL位用于比较时定义等于或不等于[10]。

显示模块采用金鹏公司的中文字库,支持三种控制接口及串行接口。

所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以操作模块[11]o在本系统中,采用

的是串行接口。

其引脚与单片机的连接对应方式如表3o

表3液晶模块与单片机的连接方式

液晶模块

0CMJ4X8C,该模块采用ST7920芯片,内建

,分别是8位微处理器接口,4位微处理器接口

单片机

功能

K5

P5.0

RST

低电平液晶复位

P5.1

RS

高电平位数据;低电平为指令

P5.2

SID

串行数据端口

P5.3

SCLK

串行时钟端口

3.3本章小结

本章详细介绍了系统的硬件组成及硬件原理,在硬件设计中,比较有特

色的设计为闹铃电子开关的设计和键盘的设计。

其中键盘的设计得益于P89LPC900系列单片机特有的键盘中断功能。

这种功能使得系统的效率以及

键盘的识别效率都大大地提高。

4.软件设计

4.1软件系统结构

在硬件系统已经搭建好的基础上,就可以参照硬件的连接方式来编写软

件代码。

首先要确定系统所要实现的功能和代码执行的方式。

系统所要实现

的功能在前文已经以提过,不再赘述。

代码执行的方式构想为:

开机画面和自检完毕后,进入初始画面。

初始

画面为默认城市的名称和现在时钟。

按菜单键进入系统菜单

,系统菜单中实

现四个功能:

(1)显示任意城市时钟;

(2)手动调整默认城市时钟;

(3)设置闹铃;

(4)显示本地经纬度。

按相应数字键进入相应的功能,

般疋按执行键确认

,按取消键返回<

按上下键确认进行光标移动和翻动城市

系统大致框图如图

8。

4.2主要算法设计

421GPS报文接收程序设计

由于GPS模块输出的所有报文都为ASCII码,而且每一个报文行都以

始,其后紧跟报文行的关键字,最后以*结束本行。

能确定每一个报文行的惟一属性为报文行的关键字,所以报文接收函数就以判断报文行开始是否为

$GPRMC,如果是则往后直到接收到*字符为止的所有数据全部接收,否则抛

弃所有接收数据。

其流程图为图9。

422键盘扫描的程序设计

前文已经提到,飞利浦单片机在P0口上有特殊的键盘中断,可以大大提高系统的效率以及键盘的识别效率。

在本系统中首先将KBPATN=OxFO,KBMASK=OxFO。

然后让单片机在P0口不等于OxFO时产生键盘中断,只有键盘中断产生了,才会执行键盘扫描及处理程序。

其程序如下:

voidkey_judge(void)

{

P0=0xF0;

if(Key_sign)//判断是否有键按下

{

Key_sign=0;//清除按键标志位

ReadKey();

Key_Process();

}

}

voidKEY_INT(void)interrupt7

{

Key_sign=1;//按键标志位置1

KBCON=OxOO;

}

其中KEY_INT函数为键盘中断处理程序。

当有键按下时,该函数将按键

标志位置1,然后就跳出中断函数。

在任何一个需要使用到键盘的函数中,

都只是不断地在查询按键标志位是否为1就可以。

在key_judge函数中可以看

到进入函数是最基本的只是做两件事,把P0口付值为OxFO,然后就是查询按

键标志位Key_sign是否为1。

为零则跳出函数,不去扫描键盘。

反之,才去扫描PO口,去取按键的键值。

这样就大大提高了代码的效率。

假设普通的键

盘扫描程序每执行一次为1ms,则在主程序循环中每循环1OOO次左右就能节

省出1s的时间。

这在提高系统的实时性和时钟的精度是大有好处的。

423菜单的程序设计

菜单是一个系统得以实现多种功能的最基本接口,本系统菜单设计的比

较简洁。

由于菜单只有四项,一屏4行刚好能显示得下,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1