老古开发网首页
导航:老古开发网首页文章索引文章分类嵌入式系统→[用μPSD3234A获取Motorola Oncore的GPS信息]
| -文章搜索 - 最新文章 - |

用μPSD3234A获取Motorola Oncore的GPS信息

发布时间:2006年9月11日 点击次数:1305
来源:   作者:华东交通大学 张永贤
 

摘要 介绍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个并行通道,以进行信号检测、码相关、载波跟踪和滤波。


图1  Oncore接收器功能方块图

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

  Oncore接收器引脚如图2所示。


图2  Oncore接收器引脚示意图

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

  Oncore接收器的通信接口定义如表1所列。

表1

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所示。


图3  硬件电路框图

4  程序设计

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

@@EamdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdimsdimsdimsdimsdimsdsC<CR><LF>。
  其含义为:
  日期:m 月 1~12
     d 日 1~31
     yy 年 1980~2079
  时间: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[]数组中提取所需信息

  读取的信息都存放在org_data[]数组中,根据@@Ea的格式内容即可定位所需信息的位置。数组中所存放的是二进制数,为了能显示还需将其转换为ASCII码的形式,因此还提供了以下4个函数来实现此功能,分别是:hextobcdtoascii_two(unsigned int hexs_two,unsigned char num_two)、hextobcdtoascii_four(unsigned int hexs_four,unsigned char num_four)、hextobcdtoascii_nine(unsigned long int hexs_nine,unsigned char num_nine)和init_msgbuff(unsigned char *dataptr, unsigned char *buffptr),其中前3个分别是实现将二进制数转换成两位、四位和九位的ASCII码形式,最后一个函数是实现将代码段中的字符串存入数据存储区内,用以实现将字符串显示在液晶显示器上。

  程序运行后,在液晶上显示的结果为:

  DATE: ?1-01-2004
  TIME 07:m50:s10
  LATITU: 0028?44 ?//经度为28°44′,因为表示度的小圆圈不好显示,所以用问号?表示度。
  LONGIT: 0115?51 ?//纬度为115°51′
  HIGH:  0145 ft ?//高度为145英尺

结语

  在需要实时、准确地获取空间位置和时间信息的场合,如环境监测与保护工程、交通调度等,该设计可嵌入到此类远程移动监控系统中。

参考文献

1  北京卫信杰科技发展有限公司. GT/UT ONCORE 用户手册
2  武汉力源信息技术服务有限公司. μPSD3200系列设计指南
3  郑金吾, 朱兴昌. GPS接收机与PC机串行通信技术的开发与应用. 测控技术,2000(8)
4  STMicroelectronics. Design Guide μPSD3200 Family

张永贤  讲师,主要从事自动控制应用与研究。


欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
基于W78E54B单片机电话计费器的设计
简介:
引言 公用电话计费器是日常生活中比较常见的。目前的电话计费器不能较好地适应电信系统的折价时间,本计费器采用人工手动计费器,可随时满足折价时间的改变。同时该计费器记录准确,并可以存储200条话费记录;可以通过电话机重新设置时间、区号、费率等,同时可以人工手动实现半价和全价转换;功耗低,体积小,成本低。 系统设计 该系统由W78E54B单片机、摘机检测电路、DTMF解码电路、键盘、LED显示器组成,原理框图如图1所示。 其中W78E54B单片机主要完成话费的计算、存储等功能。摘机检测电路完成对系统的摘机、振铃、通话、挂机等状态的检测。DTMF双音多频电路......

数字签名算法SHA-1的FPGA高速实现
基于PXI的手机测试系统
C8051F的超大容量Flash存储器扩展
Motorola微处理器的bootloader分析与应用
用Matlab产生Max + plusII的仿真输入信号
用MSP430单片机实现微波成像系统的扫描控制与数据采集
基于PSTN的家用电器远程控制系统
用VHDL语言在CPLD上实现串行通信
PCI-1711数据采集卡及其应用
 
下一个:[嵌入式系统]端接未使用的低电压差分信号总线输入
简介:
低电压差分信号(LVDS)是EIA/TIA-644标准中定义的总线技术。这种技术的特点是通过使用差分信号有较低的电压摆幅,从而具备Gbps数据速率的能力。这种技术相对单端技术的优势包括消除差分线路上传输的两个平衡信号的电磁干扰,加强了抗噪声能力。但是,当并非所有的LVDS输入都使用的时候,我们必须注意,因为浮接输入端可能会引入噪声从而导致数据错误。所以当LVDS输入端不使用的时候需要进行合适的端接。 图1为不使用的LVDS输入端端接方案举例。 不使用的LVDS输入端将使用差分信号端间摆幅大于200mV的差......
 

上一个:[新闻热点]苏州IC产业年增50%

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:否 执行时间:16毫秒