GPS定位信息显示器的设计.docx
《GPS定位信息显示器的设计.docx》由会员分享,可在线阅读,更多相关《GPS定位信息显示器的设计.docx(65页珍藏版)》请在冰豆网上搜索。
GPS定位信息显示器的设计
第6章GPS定位信息显示器的设计
6.1功能要求
本设计要求利用单片机、液晶显示器、GPS的OEM板设计开发一种简易GPS定位信息显示器。
要求能显示经纬度、时间、水平面高度等实时信息。
6.2方案论证
本设计主要从三个方面来分析论证:
1、GPS处理模块的选择;2、显示器的选择;3、微处理器的选择。
6.2.1GPS模块的选择
GPS模块主要有以下几个性能指标:
1、卫星轨迹:
全球有24颗GPS卫星沿六条轨道绕地球运行(每四一组),GPS接收模块就是靠接收这些卫星来进行定位。
但一般在地球的同一边不会超过12颗卫星,所以一般选择可以跟踪12颗卫星以下的器件,但所能跟踪的卫星数越多性能越好。
大多数GPS接收器可以追踪8~12颗卫星。
计算LAT/LONG(2维)坐标至少需要3颗卫星,4颗卫星可以计算3维坐标。
2、并行通道:
一般消费类GPS设备有2~5条并行通道接收卫星信号。
因为最多可能有12卫星是可见的(平均值是8颗),GPS接收器必须按顺序访问每一颗卫星来获取每颗卫星的信息。
市面上的GPS接收器大多数是12并行通道型的,这允许它们连续追踪每一颗卫星的信息,12通道接收器的优点包括快速冷启动和初始化卫星的信息,而且在森林地区可以有更好的接收效果。
一般12通道接收器不需要外置天线,除非你是在封闭的空间中,如船舱、车厢中。
3、定位时间:
这是指重启GPS接收器时,它确定现在位置所需的时间。
对于12通道接收器,如果你在最后一次定位位置的附近,冷启动时的定位时间一般为3~5分钟,热启动时为15~30秒,而对于2通道接收器,冷启动时大多超过15分钟,热启动时为2~5分钟。
4、定位精度:
在SA没有开启的情况下,普通GPS接收器的水平位置定位精度在5m~10m左右。
5、DGPS功能:
为了将SA和大气层折射带来的影响降为最低,有一种叫做DGPS发送机的设备。
它是一个固定的GPS接收器(在GPS模块使用现场100km~200km的半径内设置)接收卫星的信号,它确切地知道理论上卫星信号传送到的精确时间是多少,然后将它与实际传送时间相比较,然后计算出“差”,这十分接近于SA和大气层折射的影响,它将这个差值发送出去,其他GPS接收器就可以利用它得到一个更精确的位置读数(5m~10m或者更少的误差)。
许多GPS设备提供商在一些地区设置了DGPS发送机,供它的客户免费使用,只要客户所购买的GPS接收器有DGPS功能。
6、信号干扰:
要获得一个很好的定位信号,GPS接收器需要至少可以接收3~5颗卫星。
如果在峡谷中或者两边高楼林立的街道上,或者在茂密的丛林里,可能不能接收到足够的卫星,从而无法定位或者只能得到二维坐标。
同样,如果在一个建筑里面,也可能无法更新位置,一些GPS接收器有单独的天线可以贴在挡风玻璃上,或者一个外置天线可以放在车顶上,这有助于接收器收到更多的卫星信号。
7、其他的物理指标(如大小、重量)
本设计采用的是GARMIN公司被广泛应用的GPS25LP型GPSOEM接收板。
GARMIN公司作为全球最大的GPSOEM板的供应商,其生产的GPS25LP型GPSOEM板具有以下主要性能指标:
1、并行12通道接收;
2、重捕时间<2S,热启动时间15S,冷启动时间45S,自动搜索时间90S;
3、定位精度:
差分(DGPS)情况下<5M,非差分15M;
4、提供外接天线以帮助接收。
5、体积小,功耗低,采用5V供电。
6.2.2显示器的选择
一般嵌入式系统可供选择的显示器有:
1、VFD显示器:
VFD显示器是由电子管发展过来的一种显示器件。
它是真空二极管或三极管的一种改型。
二极管的改型称为静态VFD,三极管的改型称为动态VFD。
静态VFD含有二个基本电极:
阴极(灯丝)和阳极。
动态比静态多一极:
栅极。
所有极在高真空条件下封装于玻璃壳内。
由阴极发射的电子在正向电位的作用下加速到达栅极和阳极(静态VFD直接到达阳极),并碰撞激活在阳极上的荧光粉图案使其发光。
所需的亮度图形显示可以由控制栅极和阳极(静态VFD仅控阳极)正电位或负电位而实现。
VFD显示器具有高清晰度、高亮度、宽视角、反应速度快、从红色到蓝色多种色彩等特点,显示效果好。
当使用CIG(集成芯片玻璃)技术时,可集成VFD的驱动电路;可靠且使用寿命长等特点。
但它需要5.5-6.3V的灯丝电压;150-450mA的灯丝电流;12-36V的阳极加速电压;15-36V的栅极电压。
不考虑阳极和栅极电流,单灯丝功耗就达825mW,功耗相对来说较大,不适合在移动设备上使用。
另外它需要多组电压不同的供电电压,使用不方便。
2、LED显示器:
LED显示器是由LED发光二极管发展过来的一种显示器件。
它是LED发光二极管的改型。
一般分为LED数码管显示器和LED点阵显示器。
它具有高亮度、宽视角、反应速度快、可靠性高、使用寿命长等特点。
但LED数码管只能显示数字和极少数几个英文字符,显示单调。
而LED点阵虽然能显示各种信息,但它的体积较大,在市场上能买到的最小的8*8点阵都有3CM×3CM,适合于广告牌等需要大面积显示的地方,不适合移动设备。
况且动态扫描有可能同时被点亮,此时按每段10mA电流来算也有80mA,如同时点亮段数更多则电流更大。
3、LCD液晶显示器:
LCD液晶显示器是利用光的偏振现象来显示的。
一般也分为数字型LCD(同LED数码管显示器,只能显示数字和极少数几个英文字符),和点阵型LCD。
前者用于只需显示简单字符的地方,如时钟等。
后者能显示各种复杂的图形和自定义的字符。
因此应用比较广泛。
LCD液晶器具有本身不发光、靠反射或者透射其他光源、功耗小、可靠性高、寿命长(工业级>100000小时,民用级>50000小时)、体积小、电源简单等特点,非常适合于嵌入式系统、移动设备、掌上设备的使用。
本设计采用点阵型LCD液晶显示器CGM-12232。
具有122*32点阵,不仅可以显示数字,还可以显示中文、英文甚至图片等,体积只有61mm*19mm*5.7mm,功耗更低仅5V*2.5mA=12.5mW(不开背光)。
6.2.3CPU的选择
一般GPS导航器都是GPS配合矢量电子地图来进行导航和航线记录。
这些设备CPU的运算量和需要储存的数据量都很大,一般都使用X86、ARM等32位CPU。
考虑到本设计只需显示经纬度和时间等简单的信息,决定选择Atmel的AT89C51单片机作为主控制器。
6.3系统硬件电路的设计
图6.1
为GPS定位信息显示器系统设计原理框图。
图6.1系统硬件原理框图
系统硬件电路主要由GPS-OEM接收板、液晶显示器、AT89C51单片机、键盘、RS-232电平转换、单片机上电复位、电源等部分组成。
GPS-OEM板发送的串行数据经RS-232(CMOS/TTL电平转换)电路送至单片机串行口,经处理后通过键盘选择要显示的信息,送至LCD液晶显示器。
LCD液晶显示器为定时更新,更新周期约为1S。
上电复位电路为单片机上电提供上电复位。
电源电路为各个电路提供稳定的+5V电源。
GPSOEM板的设置用预留的RS-232口,在计算机上用GARMIN公司提供的软件(GARMINSensor/SmartAntennaSoftware)来进行设置。
6.3.1电源电路的设计
电源电路采用两种供电方式:
1、机内变压器供电;2、机外外接电源供电,具体如图6.2。
两种供电方式可以任选一种,在机内自动切换。
机外外接供电采用傻瓜式接口,无需辨认直流电正负极,可任意接入8-15V的交流或直流电压。
机内变压器输入220V交流电压,输出7V交流电压。
经过全桥式整流桥输出大约9V的脉动电压,经过470U的滤波电容,得到平稳的直流电压。
此电压再经过三端稳压器7805稳压输出稳定的+5V电压。
外接供电口输入的电源也经过机内另一组全桥式整流桥,再经过滤波,稳压,然后输出。
输入口的整流桥堆实现了傻瓜式接口。
当输入直流电源的时候无论怎么接由D1、D4,或者D2,D3中的一组完成极性转换。
如果输入的是交流电源则由D1-D4组成的全桥完成整流。
图6.2电源电路原理图
6.3.2AT89C51单片机系统
系统电路的主芯片采用美国ATMEL公司的AT89C51FLASH单片机,它与MCS-51系统产品兼容,具有4K字节可重编程Flash存储器,5V±20%的电源使用电压、128×8位的内部RAM,两个16位定时器/计数器,6个中断源,以及低功耗空闲和掉电方式等一系列的功能。
AT89C51单片机的电源、复位、晶振振荡电路如图6.3所示。
图6.3AT89C51单片机的电源、复位、晶振振荡电路图
复位电路。
单片机上电时,当振荡器正在运行时,只要持续给出RST引脚两个机器周期的高电平便可完成系统复位。
外部复位电路是为内部复位电路提供两个机器周期以上的高电平而设计的。
系统采用上电自动复位,上电瞬间电容器上的电压不能突变,RST上的电压是VCC和电容器上电压之差,因而RST电压大小与VCC相同。
随着充电的进行,电容器上电压不断上升,RST电压就随着下降,RST脚上只要保持10mS以上高电平系统就有效复位。
电容C可取10-33uF,电阻R可取1.2-10kΩ。
系统设计中C取10uF,电阻R取10kΩ,充电时间常数为10×10-6×10×103=100mS。
晶振振荡电路。
XTAL1脚和XTAL2脚分别构成片内振荡器的反相放大器的输入和输出端,外接石英晶体或陶瓷振荡器以及补偿电容C1、C2构成并联谐振电路。
当外接石英晶体时,电容C1、C2选30PF±10PF;当外接陶瓷振荡器时,电容C1、C2选47PF±10PF。
AT89C51系统中晶振可在0-24MHZ选择。
外接电容C1、C2的大小会影响振荡器频率的高低、振荡频率的稳定度、起振时间及温度稳定性。
在设计电路板时,晶振和电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠工作。
在系统设计中为保证串行通信波特率的误差选择了11.0592MHZ的标准石英晶振,电容C1、C2为20PF。
6.3.3键盘设计
键盘电路如图6.4所示。
图6.4键盘原理图
本键盘为最简单的点式键盘,由单片机I/O进行扫描。
一般来说,键盘按键多数采用行列式(如图6.5)。
因为在按键数量多时行列式键盘在占用相同数量I/O口时能设置的按键较点式键盘多。
而在按键少时还不如点式键盘来得简单方便。
本设计只设置2个按键,用来进行显示信息的翻页。
图6.5典型的4*4行列式键盘图
6.3.4单片机和GPSOEM板接口电路
GARMINGPS25LP型GPS-OEM板输出引脚功能如图6.6。
图6.6GPSOEM板输出引脚图
Pin1:
串行口2的数据输出端。
Pin2:
串行口2的数据输入端。
Pin3:
秒脉冲输出端,精度
uS。
Pin4:
串行口1的数据输出端。
Pin5:
串行口1的数据输入端。
Pin6:
掉电模式控制端。
Pin7:
外部备用电源输入端。
Pin8:
GND接地端。
Pin9:
Vin电源输入端。
Pin10:
同Pin9,电源输入端,内部同Pin9相连。
Pin11:
空脚NC。
Pin12:
NMEA(美国海洋电子协会)0183,Ver1.5格式语句输出端。
由于使用的是LVS版本GPS25LP型GPS-OEM板,所以串行口1,串行口2和NMEA口使用的都是RS-232电平。
如果使用的是LVC版本的GPS25LP型GPS-OEM板则端口是CMOS/TTL电平。
在本系统中将串行2用作计算机作GPS-OEM板设置用,本机显示GPS信息从NMEA口送出。
电路如图6.7。
图6.7GPS-OEM板接口电路
由于GPS-OEM送出的是RS-232电平,计算机串行通信用的也是RS-232电平,单片机使用的是COMS/TTL电平,因此GPS–OEM板和计算机通信可以直接用串行线相连,而和单片机接口必须进行RS-232电平和COMS/TTL电平的转换。
RS-232是异步串行通信中应用最早的,也是最广泛的标准串行总线之一。
它原是基于公用电话网的一种串行通信标准,推荐电缆的最长长度为15M(50英尺)。
它的逻辑电平以公共地为对称,其逻辑“0”电平规定在+3~+25V之间,逻辑“1”电平则在-3~-25V之间,因而它要使用正负极性的双电源。
主要电气参数见表6.1。
而且传统的COMS/TTL电平,逻辑电平是以地为标准不对称设置,其逻辑“0”电平规定为<0.7V,逻辑“1”电平则规定>3.2V。
因此两者之间逻辑电平不兼容,所以两者通信时必须进行电平转换。
表6.1RS-232标准的主要电气参数表
项目
参数指标
带3-7KΩf负载时驱动器输出电平
逻辑0为+3~+25V,逻辑1为-3~-25V
不带负载时驱动器输出电平
-25~+25V
驱动器通断时的输出阻抗
>300Ω
输出短路电流
<0.5A
驱动器转换速率
<30V/us
接收器输入阻抗
3-7KΩ
接收器输入电压
-25-+25V
输入开路时接收器的输出逻辑
1
输入经300Ω接地时接收器的输出逻辑
1
+3V输入时接收器的输出逻辑电平
0
-3V输入时接收器的输出逻辑电平
1
最大负载电容
2500PF
不能识别的过渡区
-3-+3V
以前RS-232和COMS/TTL电平转换常用MC1488和MC1489。
MC1488实质上的由3个与非门和1个反向器组成,通过他们可以将4路COMS/TTL电平转换为RS-232电平,它需要
V或者
V双路电源,适用于数据发送。
MC1489实质上是4个带控制门的反相器,其控制端通常接一滤波电容到地,使用单一+5V电源,适用与数据接收。
图6.8MAX232接线图
由于MC1488和MC1489是单一功能的发送/接收器,所以在双向数据传输中各端都需要同时使用两个器件,此外由必须同时使用正负两组电源,因而在很多场合下使用显得不方便,以被淘汰。
为此推出了只用单一电压且具有发送/接收双重功能的电路。
这种器件内部集成一个电荷泵和一个电压变换器,它能将+5V或者更低的电压变换成RS-232所需的
V以上的电压。
这类芯片最典型的就是MAXIM的MAX232芯片如图6.8,它内部电荷泵电路先将+5V提升到+10V,然后在用电压反转电路将+10V变成-10V,这样就得到了RS-232所需的
V的电压了。
本设计单片机只需接收从GPSOEM板发送过来的数据,而无需向GPSOEM板发送数据。
也就是只需将RS-232电平转换为COMS/TTL电平,而无需将COMS/TTL电平转换为RS-232电平。
通过对RS-232电平和COMS/TTL电平(表6.2)分析,决定采用单个三极管来进行转换,而不用MAX232等专用RS-232-COMS/TTL电平转换器。
具体接线如图6.9。
表6.2RS-232电平和COMS/TTL电平逻辑电平对比表
RS-232电平
COMS/TTL电平
逻辑“0”
+3~+25V
<0.7V
逻辑“1”
-3~-25V
>3.2V
图6.9RS-232电平COMS/TTL电平转换图
当RS-232IN端输入RS-232逻辑电平“0”,也就是输入+3~+25V时,三极管正向导通。
此时TTLOUT端输出的是三极管的饱和压降。
此电压约0.1-0.2V,符合COMS/TTL电平<0.7V的要求。
当RS-232IN端输入RS-232逻辑电平“1”,也就是输入-3~-25V时,三极管截至。
此时TTLOUT端输出的是电源电压+5V。
符合COMS/TTL电平>3.2V要求。
6.3.5单片机和液晶显示器接口电路
液晶驱动IC(SED1520F0A)基本特性:
1、具有低功耗、供电电压范围宽等特点。
2、具有16common和61segment输出,并可外接驱动IC扩展驱动。
3、具有2560位显示RAM(DDRAM),即80×8×4位
4、具有与68系列或80系列相适配的MPU接口功能,并有专用的指令集,可完成文本显示或图形显示的功能设置。
工作参数:
1、逻辑工作电压(VDD-VSS):
2.4~6.0V
2、LCD驱动电压(Vdd-Vlcd):
3.0~13.5V
3、工作温度(Ta):
0~55℃(常温)/-20~70℃(宽温)
4、保存温度(Tstg):
-10~70℃
电气特性(测试条件Ta=25,Vdd=5.0±0.25V):
1、输入高电平(Vih):
3.5V(min)
2、输入低电平(Vil):
0.55V(max)
3、输出高电平(Voh):
3.75V(min)
4、输出低电平(Vol):
1.0V(max)
5、工作电流:
2.0mA(max)
液晶显示器CGM-12232的引脚功能如图6.10所示。
图6.10液晶显示器CGM-12232的引脚功能图
Pin1:
VDD正电源输入。
Pin2:
GND地。
Pin3:
LCD驱动电压,调对比度。
Pin4:
接口时序选择。
Pin5:
芯片1使能信号,高电平有效。
Pin6:
芯片2使能信号,高电平有效。
Pin7:
读/写控制端,高电平读,低电平写。
Pin8:
数据/指令选择端,高电平为数据,低电平为指令。
Pin9-Pin16:
液晶并行数据。
Pin17:
背光LED阳极。
Pin18:
背光LED阴极。
图6.11单片机和液晶显示器接口电路图
单片机和液晶显示器接口电路图如图6.11。
CGM-12232的Pin9-Pin16接单片机P2口来进行数据传输,Pin5-Pin83根控制线接P0口。
由于P0口内部没有上拉电阻不能输出高电平因此在P0口上接了一个10K排阻RP9作为P0口的上拉电阻。
LCD液晶显示器的背光LED灯采用三极管驱动控制。
在CGM-12232的说明文档里,Pin3脚VLCD需通过电阻在VDD和GND之间分压得到,而实验中发现通过分压后液晶显示很暗,直接将其接地相对于通过分压使用液晶显示器明显好转。
因此这里将其直接接地。
6.4系统程序的设计
系统软件采用C语言编写,C编译器为KeilC517.10版本,文本编辑环境和编译环境为MedWin。
6.4.1系统软件设计原理
系统软件运行总体设计流程如下:
系统初始化,显示开机画面,串行中断接收GPS-OEM板的“$GPGGA”语句,每当正确收到“$GPGGA”语句一次就更新一次显示,键盘可以选择显示的GPS信息。
主程序流程图如图6.12。
图6.12系统主程序设计流程图
6.4.2LCD液晶显示器程序
(1)CGM-12232型LCD液晶显示器原理
CGM-12232型LCD液晶显示器采用两片SED1520F0A驱动芯片,LCD液晶显示程序即是对两片SED1520F0A的驱动程序。
SED1520F0A属行列驱动及控制合一的小规模液晶显示驱动芯片,电路简单,经济实用,内含振荡器,只须外接振荡电阻即可工作(已经接在板上)。
一个SED1520F0A显示控制器能控制80×16点阵液晶的显示,其显示RAM共16行,分2页,每页8行,每一页的数据寄存器分别对应液晶屏幕上的8行点。
当设置了页地址和列地址后就确定了显示RAM中的唯一单元。
屏幕上的每一列对应一个显示RAM的字节内容,且每列最下面一位为MSB,最上面一位为LSB,即该RAM单元字节数据由低位到高位的各个数据位对应于显示屏上某一列的由高到低的8个数据位。
对显示RAM的一个字节单元赋值就是对当前列的8行(一页)像素点是否显示进行控制。
CGM-12232液晶显示器与微处理器的接口如表6.3。
表6.3CGM-12232液晶显示器的引脚定义表
序 号
符 号
状 态
功 能 说 明
1
Vcc
-
逻辑电源正
2
GND
-
逻辑电源地
3
VLCD
-
液晶显示驱动电源
4
RES
-
接口时序类型选择
5
CS1
输入
主工作方式IC使能信号
6
CS2
输入
从工作方式IC使能信号
7
R/W
输入
读/写选择信号
8
A0
输入
寄存器选择信号
9~16
DB0~DB7
三态
数据总线
17
LEDA
-
背光灯正电源
18
LEDK
-
背光灯负电源
DB0~DB7:
数据总线。
A0:
数据/指令选择信号。
A0=1表示出现在数据总线上的是数据;A0=0,表示出现在数据总线上的是指令或读出的状态。
RES:
接口时序类型选择。
RES=0为Intel8080时序(图6.13,表6.4),操作信号是RD和WR;RES=1为M6800时序(图6.14,表6.5),其操作信号是CS和R/W。
RD(CS):
在Intel8080时序时为读,低电平有效;在M6800时序时为使能信号,是个正脉冲,在低电平时为写操作,在高电平时为读操作。
WR(R/W):
在Intel8080时序时为写,低电平有效;在M6800时序时为读、写选择信号,R/W=1为读,R/W=0为写。
图6.13与Intel8088系列MCU接口读写操作时序图
表6.4与80系列MCU接口时序参数表(VDD=5.0±10%,Ta=-20~+75℃)
名称
符号
最小值
最大值
单位
地址建立时间
Taw8
20
ns
地址保持时间
Tah8
10
ns
/RW,/WR周期
Tcyc8
1000
ns
/RW,/WR脉冲宽度
Tcc
200
ns
数据建立时间
Tds8
80
ns
写数据保持时间
Tdh8
10
ns
读存取时间
Tacc8
90
ns
读数据保持时间
Tch8
10
60
ns
图6.14与M6800系列MCU接口读写操作时序图
表6.5与M6800系列MPU接口时序参数表(VDD=5.0±10%,Ta=-20~+75℃)
名称
符号
最小值
最大值
单位
地址建立时间
Taw6
20
ns
地址保持时间
Tah6
10
ns
系统时钟周期
Tcycs
1000
ns
E脉冲宽度
读
Tew
100
ns
写
80
ns
数据建立时间
Tds6
80
ns
写数据保持时间
Tdh6
10
ns
存取时间
Tacc6
90
ns
读数据保持时间
Tch6
10
60
ns
SED1520F0A液晶显示驱动器有13条指令。
表6.6所列的以与M6800系列MPU接口为例(RES=1)而总结出的指令。
表6.6SED1520F0A指令集
指令名称
控制信号
控 制 代 码
R/W
A0
D7
D6
D5
D4
D3
D2
D1
D0
显示开/关指令
0
0
1
0
1
0
1
1
1
I/O
显示起始行设置
0
0
1
1
0
显示起行(0~31)
设置页地址
0
0
1
0
1
1
1
0
页地址(0~