用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

用μPSD3234A获取MotorolaOncore的GPS信息

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:24:28
【本文由PB创新网为您整理】
摘要:介绍Motorola Oncore接收器和μPSD3234A在嵌入式应用的优势,及μPSD3234A与Motorola Oncore接收器的硬件接口与软件程序设计。

    关键词:Motorola Oncore接收器 μPSD3234A 51内核 GPS信息

引 言

  摩托罗拉公司经过近十年的研究,使全球定位系统(GPS)的产品集成度更高,重量更轻。为了适合嵌入式应用而特殊设计的Oncore接收器,体积小(50.8mm× 82.6mm×16.3mm),平均故障间隔时间(MTBF)高达1 100 000~1 600 000小时,工程师可更快捷地把GPS技术引入OEM(初始设备厂家)的应用中。

1 Motorola Oncore接收器的工作原理

   如图1所示,Oncore接收器有8个并行通道,可同时跟踪8颗卫星。Oncore接收器将天线接收的GPS信号进行下变频处理后,得到的中频信号,经过高速模数转换器转换为数字信号。通道分开器把经过数字化处理的中频信号分解后送入8个并行通道,以进行信号检测、码相关、载波跟踪和滤波。

  经过处理的信号被同步送进定位微处理器单元,这部分电路控制GPS接收器的工作模式和解码,处理卫星数据、测量伪距和伪距增量,以进行位置、速度和时间的计算。Oncore接收器中还有一个能使接收器保持休眠状态的随机存储器,用于保存卫星星历表数据、用户操作参数、历书等信息。当Oncore接收器的电源关闭时,为防止这些信息的丢失,需外接一个+5V的备用电源。为保持实时时钟的时间,也需要外接+5V电源。
javascript:window.open(this.src);" style="cursor:pointer;"/>
  Oncore接收器引脚如图2所示。

  Motorola Oncore接收器有一个TTL串行数据接口。此接口为Oncore接收器和系统控制器间提供主控及数据通道。

2 μPSD3234A介绍

  μPSD3234A是ST公司推出的嵌入40MHz“8032微控制器核”的PSD产品,被称为“真正的片上系统”。有两个独立的Flash存储器,256KB主Flash存储器和32KB辅Flash存储器。当擦除或写某一存储器时,读操作可在另一存储器内进行,支持远程更新的在应用编程。8KB的SRAM为用户的嵌入式实时操作系统,高级语言编程,通信缓冲器和堆栈提供足够的空间。片内集成有丰富的功能部件:通用I/O口、可编程逻辑电路、管理监控、USB接口、I2C接口、4通道8位 ADC、DDC、5通道PWM。片内的8032微控制器核有2个标准异步通信口,3个16位定时/计数器和2个外部中断。和其它Flash PSD系列一样,μPSD3200系列同样可以通过JTAG ISP 接口进行在系统编程。

3 μPSD3234A与Oncore接收器的接口

  μPSD3234A的串口0和Oncore接收器的通信接口,均为TTL电平,可以直接通信。在设计之初,可先利用板载μPSD3234A芯片的开发板DK3200搭建硬件电路。为调试方便,μPSD3234A接收到Motorola Oncore接收器的原始信息。通过μPSD3234A的串口1(经电平转换后)送到PC机的RS-232串口,在PC机显示器上同步显示。提取到的位置、时间等信息直接在LCD液晶上显示。连接在PC机并行口的Flash LINK编程器与DK3200开发板上的JTAG口相连,完成JTAG在系统编程。硬件电路原理框图如图3所示。

4 程序设计

  Motorola Oncore接收器的主串口提供两种数据格式:摩托罗拉二进制格式和NMEA 0183格式。摩托罗拉二进制格式应用于接收器主串口的输入输出,波特率应为9600,无奇偶校验位,1位起始位和1位停止位。所要获取的GPS参数是以@@Ea开头的位置/状态/数据响应信息,以回车换行<CR><LF>结束。其格式为:

@@Eamdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdi

msdimsdimsdimsdimsdsC<CR><LF>。

其含义为:

日期: m 月 1~12

d 日 1~31

yy 年 1980~2079javascript:window.open(this.src);" style="cursor:pointer;"/>

时间: h 小时 0~23

m 分 0~59

s 秒 0~60

位置: aaaa 纬度(mas)

-324 000 000~324 000 000(-90°~ 90°)

oooo 经度(mas)

-648 000 000~648 000 000(-180°~ 180°)

hhhh 椭球高度(cm)

-100 000~1 800 000(-1000.00~18 000.00m)

在所有信息终止的<CR><LF>前的一个字节为校验和,是所有信息字节的“异或”。

程序是在Keil uVision2的环境下设计的。

(1)系统初始化

TMOD=0x20;

PCON=0x80;

SCON=0x50;

// 计算定时初值

value=65536-(36000*125L/(24L*9600));

TH1=value;

TL1=value;

TR1=1; //定时器1为波特率发生器

P3SFS=0x03;

//设置LCD的I/O口模式

PSD8xx_reg.VM=0x80;

//定时器0初始化

timer0_init();

//LCD初始化为8位,2行,5×7点阵,

//不闪烁,光标关闭

lcd_init();

(2)读取Motorola Oncore接收器信息

  先识别判断是否为@@Ea开头,若是,将其后的所有字符信息放入org_data[]数组中,以便后面从中提取所需数据。

while(1) {

while(!RI);

ch=SBUF;

if((RI)&&(ch==0x40)) //识别’a’

{ RI=0;head[0]=ch;

while(!RI);

ch=SBUF;

if((RI)&&(ch==0x40)) //识别第二个’@’

{ RI=0;head[1]=ch;

while(!RI);

ch=SBUF;

if((RI)&&(ch==0x45)) //识别’E’

{ RI=0;head[2]=ch;

while(!RI);

ch=SBUF;

if((RI)&&(ch==0x61)) //识别抋?

{ RI=0;head[3]=ch;

for(k=0;k<=72;k++)

//将后续72个字符放入org_data[]

{ while(!RI);

org_data[k]=SBUF;

RI=0;

}

}

else {RI=0;continue;}

}

else {RI=0;continue;}

}

else {RI=0;continue;}

}

else {RI=0;continue;}

}

(3)从org_data[]数组中提取所需信息
javascript:window.open(this.src);" style="cursor:pointer;"/>
  读取的信息都存

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

相关文章

PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:13,203.13000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号