基于S3C44B0X和M12模块的GPS接收终端

发布者:omega34最新更新时间:2011-12-09 关键字:S3C44B0X  M12模块  GPS接收终端 手机看文章 扫描二维码
随时随地手机看文章

1 引言
    GPS (全球定位系统)是为海上、陆地和空中各种运输工具和移动设备的导航和定位而开发的,具有高精度、全天候、全球性和点间无需通视等优点,使测量技术发生了质的飞跃。GPS技术引入我国后,特别是美国取消SA政策后的这几年发展十分迅速。目前,GPS已被广泛应用在工程测量、地理测绘、交通运输和军事等诸多领域,取得了明显的社会和经济效益,发展前景十分广阔。
    在GPS的行业应用中,数据接收终端是最基本的设备。目前的数据接收终端具有智能化和可扩展性不断增强的发展趋势,表现为内嵌的MCU功能越来越强大,接口越来越丰富。本文介绍一种以目前比较流行的基于ARM7架构的嵌入式处理器S3C44B0X和Motorola的M12模块的GPS数据接收终端的设计。

2 终端的硬件设计
    终端由S3C44B0X 和M12模块及一些外围器件组成,系统的硬件结构如图1所示。
    S3C44B0X具有2个功能完整的串口(UART),其I/O操作电压范围为3.0~3.6 V,M12模块提供一个用于输入控制信息和输出定位与状态信息串口,其I/O电平符合TTL电平范围,为0~3 V,因此,可以将S3C44B0X的I/O输出高电平设置成3 V,把S3C44B0X 和M12的RxD、TxD和GND直接连接,进行异步串行数据交换。由于S3C44B0X内部存储空间非常有限,需要外扩存储器件,这里扩展了一片FLASH和一片SDRAM 存储器。此外,键盘和显示器被挂接在S3C44B0X上面,以提供人机交互的功能。
 
图1 系统硬件结构框图
2.1 S3C44B0X 与存储器的接口设计
    S3C44B0X自身不具有ROM,因此必须外接ROM来存储掉电后仍需要保存的代码和数据。本系统采用SST39VF160闪速存储器(FLASH Memory)作为系统的ROM,此器件具有非易使性,可轻易擦写。该器件容量为1 MB×16,与S3C44B0X接口如图2所示。
 
图2 S3C44B0X与SST39VF160接口图
    由于本终端采用SST39VF160作为程序存储器(内含处理器的启动代码),所以SST39VF160映射在处理器的Bank0区域内。因此,他的片选端与处理器的nGCS0相连。
    为了提高程序运行的速度和效率,系统还扩展了SDRAM 作为程序数据暂存空间。SDRAM器件的型号为IS42S16400,其存储空间组织方式为1 MB×16×4 Bank,共64 Mb,数据总线宽度为16,其与S3C44B0X的接口如图3所示。
 
图3 S3C44B0X 与IS42S16400接口图[page]


2.2 S3C44B0X与LCD的接口设计
    本系统采用了G35_II LCD套件作为显示器,G35_II的液晶屏尺寸为3.5英寸,分辨率为320×240,颜色为16灰度。S3C44B0X内部含有一个LCD驱动控制器,能自动产生LCD 驱动控制所需的控制信号,因此S3C44B0X可以与诸如黑白灰度、STN型彩色等LCD屏直接接口,而不需要另外加LCD控制器。在这种接口方式下,LCD显示缓冲区映射在系统的存储器空间上,程序只需将象素点内容写入存储器对应地址就可以实现对应LCD屏上象素点颜色的显示。本终端采用S3C44B0X的PC口和PD口作为LCD驱动接口,使用4位象素灰度模式查找表和8位单扫描方式进行显示。本终端的显示器以显示数据发送接收情况和数据流量信息为主。

3 S3C44B0X与M12模块的接口程序设计
    接收终端使用S3C44B0X的COM0口向M12模块发出控制指令和接收定位信息。M12模块支持Motorola二进制格式和NMEA0183格式两种的数据输出模式。在Motorola二进制模式下,M12以9600 b/s的速率输出数据和接收指令;在NMEA0183,M12以4800 b/s的速率输出数据和接收指令。默认状态下,M12模块工作在Motorola二进制模式下。为了获取更高的数据传输速度,本研究使用M12模块默认的工作模式,即Motorola二进制模式。在该模式下,串行数据传输格式为:8位数据位,1位停止位,无奇偶校验和硬件流控制。
    S3C44B0X以通过向M12发送AT指令的方式对其进行控制。根据Motorola GPS Products-Oncore User'sGuide所列举的内容,Motorola的AT I/O指令一共有69条,其中M12模块所支持的指令有51条。利用这些指令可以很方便的对M12模块进行日期时问设定、自定义坐标设定和定位信息读取等操作。在接收终端中,只需要读取M12模块的定位信息,因此程序中只用到51条指令中的1条指令:
@@EqmC
    该指令用于控制M12模块输出定位信息。其中“@@”是I/O指令的前缀;“Eq”是指令的关键字;“m”是M12模块输出(响应)信息模式选择,其数值可以是0~255之间的整数,当“m”为0时,响应信息只输出一次,当“m”为1时,响应信息每秒钟输出一次,当“m”为2时,响应信息每2 s输出一次,如此类推,当“m”为255时,响应信息每255 s输出一次;“C”是指令的校验和(Checksum)数据;“”是回车符;“”是换行符。为了便于采集定位数据,将“m”的数值设置为0,使M12模块每接收一次指令就回复一次定位数据。
    M12模块在默认状态下只能接受以Motorola二进制形式输入的指令。所谓的Motorola二进制形式是指将指令的前缀、关键字和后缀(回车和换行)变换成相应的ASCII码后,加上模式“m”与校验和“C”组合成的二进制指令代码。本研究中所用到的“@@EqmC”指令格式转换如下:
Message format:@@EqmC
Hexadecimal:40 40 45 71 00 34 0D 0A
    其中,校验和“C”是指“E”、“q”和“m”三个的校验和,即0x45、0x71和0x00之间的校验和(将0x45和0x71按位异或的结果再和0x00进行按位异或),结果为0x34。输入指令时,只需要按照9600 b/s、8位数据位、1位停止位、无奇偶校验和硬件流控制的串口格式,将0x40、0x40、0x45、0x71、0x00、0x34、0x0D和0x0A八个数从M12模块的串口连续输入进去即可,M12模块在接收到其可识别的指令之后会在1 s之内做出响应。
    在接收和识别指令“@@EqmC”之后,M12模块在接收到正常的GPS卫星信号时会以相同的串口数据格式和速率输出以下格式的定位信息:
@@Eq,mm,dd,YY,hh,mm,ss,dd,mm.mmmm,n,ddd,
mm.mmmm,w,shhhh.h,sss.s,h,m,t,dd.d,nn,rrrr,aa,CC
    该信息是按照ASCII码的形式输出的,每段信息均以逗号相隔。根据Motorola GPS Products-Oncore User'sGuide对于该信息的解释,该信息按照所描述的内容可以拆分成7大部分,其拆分示意格式如下:
@@Eq,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>
    其中,第1部分信息为日期信息。“mm”是指月,数值为01~12;“dd”是指日,数值为01~31;“yy”是指年,数值为98~18。
    第2部分信息是UTC(Universal Coordinated Time)时间信息。其中,“hh”为时,数值为00~23;“mh”为分,数值为00~59;“s”是秒,数值为00~60。
    第3部分信息是纬度信息。其中,“dd”是度,数值为00~90;“mm.mmmm”是分,数值为00.0000~59.9999;n为方向,他有两个取值,一是“N”,代表北纬,二是“S”代表南纬。
    第4部分信息是经度信息。其中,“ddd”是度,数值为000~180;“mm.mmmm”是分,数值为00.0000~59.9999;w为方向,他有两个取值,一是“w”,代表西经,二是“E”代表东经。
    第5部分信息是海拔高度。其中,“s”是符号,有“+”和“-”两个取值;“hhhh.h”是以米为单位的高度数据。海拔高度信息的数值范围为:-1000.0~+18000.0。
    第6部分信息是速度信息。其中“sss.s”是以节为单位的速度数据,其数值为000.0~999.9;“hhh.h”为以度为单位前进方位角数据,其数值为000.0~359.9。

[page]

    第7部分是接收终端的状态信息。其中,“m”是定位工作模式信息,取值为0或1,0代表单机模式(Autonomous),1代表差分模式(Differentia1);“t”是定位类型信息,取值为0~3,0代表无定位,1代表2D定位,2代表3D定位,3代表广播模式;“dd.d”是几何因子信息,取值为00.0~99.9;“nn”使用中的卫星数目,数值为00~37;“rrrr”为参考站识别码,数值为0000~1023;“aa”以秒为单位的差分数据时间,数值为00~60;“CC”为校验和。
    GPS接收终端只需要M12模块提供经纬度位置,所以需要通过程序提取上述的7大部分信息中第3和第4部分信息。S3C44B0X与M12模块接口的COM0初始化代码如下:
UFCON0=0x0;
UMCON0=0x0;
ULCON0=0x3;
UCON0= 0x245;
UBRDIV0= ((int)(Fclk/(16 * 9600))-1);
    S3C44B0X与M12的接口程序流程如图4所示。S3C44B0X首先请求M12模块输出定位数据(向M12模块发出指令“@@EqmC”),然后等待M12模块回送数据。当M12模块回送数据时,S3C44B0X首先做出判断,确认其收到的是预期的定位信息,然后将定位信息(经纬度数据)截取下来,整理成可供显示数据信息后在LCD上显示经纬度数据,最后将串口的接收缓冲区清空,以免下次接收信息时出错。由于M12模块在1 s之内只能响应一条指令,所以接收终端的数据信息最快1 s更新一次。
 
图4 S3C44B0X与M12的接口程序流程图

4 结语
    本文讲述了一个基于S3C44B0X和M12模块的GPS数据接收终端的设计。通过在华南农业大学工程学院土槽实验室的GPS基准点(坐标为:东经113°20.538 541',北纬23°09.581 834')的静态定位实验测定(持续进行了约50 min,采集到3125组经纬度数据,静态定位数据分布如图5所示),M12模块的单击静态定位精度为<7.81m,符合其用户手册上所标的无SA政策下<25m的精度范围。接收终端运行稳定,定位信息每1 s更新一次,可作为对精度要求不高的民用地理定位。
 
图5 系统静态定位值散布图

 

关键字:S3C44B0X  M12模块  GPS接收终端 引用地址:基于S3C44B0X和M12模块的GPS接收终端

上一篇:汽车电子电磁干扰(EMI)及其影响
下一篇:基于SOPC技能的车辆电子后视镜系统设计

推荐阅读最新更新时间:2024-05-02 21:46

关于三星S3C44B0X目标板的uClinux Bootloader
uClinux是为控制领域设计的嵌入式Linux操作系统,它沿袭了主流Linux的大部分特性,并进行了一定幅度的裁减。其设计主要针对没有内存管理单元(MMU)的微处理器,例如基于ARM7TDMI内核的S3C44B0X。 嵌入式Linux系统通常由三部份组成:Bootloader、Kernel和File System。其中Bootloader是在系统启动之后、Kernel运行之前所执行的第一段代码,其任务是为调用Kernel准备必要的软硬件环境。由此可见,Bootloader是非常依赖于硬件和操作系统的。所谓依赖于硬件,是指Bootloader的实现与处理器体系架构和板级硬件资源密切相关;所谓依赖于操作系统,是指不同操
[单片机]
德承新开发M12 X-型 CMI模块 优化轨道交通的传输效能
2021年9月28日─强固型嵌入式电脑品牌─德承,推出为满足轨道交通应用环境新开发的CMI模块 (CMI-XM12LAN01)。德承深知在轨道交通领域中安全议题一直是重中之重,对于环境的「监控」、「实时传递讯息」就显得关键且必须。此款CMI模块适用于德承旗下两大产品线:强固型嵌入式电脑(DIAMOND)的DS、DI、DX系列以及嵌入式GPU电脑(GOLD)的GM、GP系列,不仅安装简易又方便,将有助于稳定传输监控数据,及时把关轨道交通中的列车、闸门等区域安全。 服务器等级传输模块 展现高度稳定性 全新CMI模块:CMI-XM12LAN01,采用Intel®服务器等级i210 Gigabit以太网控制芯片,支持J
[物联网]
德承新开发<font color='red'>M12</font> X-型 CMI<font color='red'>模块</font> 优化轨道交通的传输效能
基于32位高速处理器S3C44B0X实现水表智能抄表系统的设计
1 水表智能抄表系统简介 目前,自来水表都是机械式的,而且多数自来水表都装在户内,这给水表抄表员带来了很大的麻烦。当抄表员抄表时,必须挨家挨户用肉眼读取水表的读数,然后登记在随身携带的小本子上。回去以后,还要由专门的电脑输入员把水表读数输入到计算机中的数据库里,计算出本月的用水量,再打印出本月各用户应交的水费。这一过程不但工作量大,而且很容易出错。现在得理上海电子有限公司开发出了智能水表,对机械水表中的指针转过的圈数进行计数,通过串口 RS422 发送水表读数。这给自来水表的智能抄表系统奠定了基础。 自来水表的智能抄表系统框图如图1所示。 用户的机械式水表改装成智能水表后,连接到装在楼底下的汇集器上。汇集器每隔一定的时间(
[单片机]
基于32位高速处理器<font color='red'>S3C44B0X</font>实现水表智能抄表系统的设计
采用ARM7网络型汽车防盗系统的设计方案
引言     随着人们生活水平的提高,汽车已逐步进入家庭, 但日益猖獗的汽车盗窃案件也呈上升趋势,如何有效防止汽车被盗是车主们最关心的问题。近年来,科学技术飞速发展,结合各种新技术的新型汽车防盗装备相继出现。随着通信技术的发展, 无线远程通信技术也被应用于汽车领域中。基于S3C44B0X网络型汽车防盗控制系统是采用ARM 7微处理器构造的嵌入式系统,结合了传统防盗技术和新型的GPRS无线通信技术,实现已有防盗器现有各种功能的基础上,开发了远程控制功能,提高了防盗系统的安全性、灵活性和可靠性。 1 系统设计 1 .1 系统特点和功能     在对各类汽车防盗系统的特点进行分析后,设计了基于S3C44B0X网络型汽车
[嵌入式]
基于S3C44B0X的嵌入式Socket通信实现
嵌入式系统是"控制、监视或者辅助装置、机器和设备运行的装置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能,对可靠性、成本、体积、功耗有严格要求的专用计算机系统。   本文给出一种适合于中/
[单片机]
基于<font color='red'>S3C44B0X</font>的嵌入式Socket通信实现
基于S3C44B0X的心电血压监测仪USB接口设计
摘 要:本文介绍了一种应用于家用心电血压监测仪与计算机进行高速数据传输的接口方案,采用ARM内核控制器与USB专用控制芯片,实现了心电、血压数据的快速无失真传输,重点阐述了S3C44B0X与USB控制芯片USBN9603的硬件连接和USB固件设计,以及上位机WDM驱动程序的开发思路和方法。 关键词:USB接口;ARM微控制器; 远程医疗;心电监测 引言 家用心电血压监测系统由采集记录设备和上位机电子病历管理系统组成,因此,需要解决数据传输方式问题。传统的通信接口采用简单的RS-232串行UART ,这种方式速度慢且适用性差,而USB转串口芯片的传输性能不能得到根本改善。USB总线接口则具有速度快、易于扩展、支持热插拔、使用
[应用]
μCOS-Ⅱ在ARM系列单片机S3C44B0x上的移植
引 言 目前,嵌入式系统在工业控制、家用电器、移动通信、PDA等各种领域得到了越来越广泛的应用。由于用户对嵌入式产品的性能要求越来越高,程序设计也变得越来越复杂,这就需要一个通用的嵌入式实时操作系统来对其进行管理和控制。对移植了操作系统的嵌入式系统进行设计和开发,可以大大减小程序员的负担,对于不同的应用可以按照相同的步骤来完成系统的设计。 μC/OS-Ⅱ是一种简单高效、源代码公开的嵌入式实时操作系统,具有良好的可扩展性和可移植性,被广泛的应用到各种嵌人式处理器上。μCOS-Ⅱ操作系统拥有可固化,可裁剪,可剥夺性的实时内核,可同时管理64个系统任务。利用移植μCOS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品的
[单片机]
μCOS-Ⅱ在ARM系列单片机<font color='red'>S3C44B0x</font>上的移植
基于ARM的多通道专业MP3播放器设计
1 引 言   随着微电子技术的飞速发展,嵌入式产品以其自然的人机交互界面和丰富的多媒体处理能力迅速得以推广,并取得了巨大成功 。 目前,在多媒体音频领域中,MP3播放器占据了绝对的主导地位。但现有的MP3播放器驱动能力非常有限,只适合个人使用,不能满足大型公共场所在不同区域播放不同背景音乐的多通道播放需要。基于以上分析,本文设计了一种基于S3C44B0X芯片的μClinux环境下的多通道专业MP3播放器。   2 系统功能分析与结构设计   多通道专业MP3播放器是专为满足公共语音广播市场的需求而设计的,其主要功能包括: (1)音频解码和播放功能; (2)通过USB接口与大容量外部存储设备
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved