基于SoPC的GPS信息接收系统设计

2010-08-08 00:52杨新华李润春
网络安全与数据管理 2010年11期
关键词:字符接收机串口

杨新华,李润春

(兰州理工大学 电气工程与信息工程学院,甘肃 兰州 730050)

全球定位系统GPS(Global Positioning System)是以卫星为基础的全球无线电导航定位系统[1]。它具有高精度、高效率、全天候、抗干扰、隐蔽性强、多功能、操作方便等特点,能够为用户提供精确的位置、速度、时间等信息。

随着科技的发展,以GPS定位技术为主的定位导航监控技术得到了高速的发展,并在众多行业中得到了广泛应用,如交通、航海、安全等领域。与此同时用户对GPS接收系统的设计提出了更高的要求,传统信号处理实现技术已经难以满足系统实时性、灵活性、便携性、可扩展性以及低功耗的苛刻要求。

可编程的片上系统SoPC(System onProgrammable Chip)是现代计算机辅助设计技术、EDA技术和大规模集成电路技术高度发展的产物[2],将处理器、存储器、I/O接口、硬件协处理器和普通的用户逻辑等系统设计需要的功能模块集成到一片FPGA芯片内部,实现MCU、DSP和FPGA的完美结合。Altera公司开发的Nios II是32位、可嵌入在FPGA芯片中的软核处理器,其突出优点是可编程性和易操作性,其灵活性、可裁减、低成本、高性能的特点具有很强的竞争力,广泛地应用于通信、工业控制、计算机相关产品和消费类电子领域等,已几乎成为嵌入式软核处理器的标准。

1 GPS定位原理

GPS定位的基本原理是以高速运动的卫星瞬间位置作为已知的起算数据,采用测量学的空间测距定位方法,确定待测点的位置。实际上,GPS接收机在仅接收到3颗卫星有效信号的情况下只能确定二维坐标(即经度和纬度),只有收到4颗或4颗以上的有效GPS卫星信号时,才能完成包含高度的3D定位。原因在于:在理想情况下,接收机对于GPS信息的接收不存在时间延迟的问题。根据3颗卫星的位置以及信号传输的距离,可以列出以下3个方程式:

式中 x、y、z 为待测点(接收机)坐标,di(i=1,2,3)表示卫星i到接收机之间的距离,该数据由信号传输的时间(理想化情况)与信号的速度(光速)进行乘积计算得出。根据以上3个方程式即可解出待测点的三维坐标。

然而事实上,GPS接收机对于GPS信号的接收过程存在延迟的问题,当GPS信号由卫星发送到接收机时,接收机需要一定时间的反应过程,这段时间称为延迟时间。在延迟时间较长的情况下,由上面方程组求得的结果就会与待测点坐标相差较大。这时需要再引入1颗卫星进行定位,列出如下所示的4个方程式:

其中t0表示延迟时间,为未知量。在考虑延迟时间的情况下,根据以上4个方程式,即可算出待测点的三维坐标。

2 GPS数据定位格式

GPS模块输出的定位信息遵从NMEA-0183通信标准,该标准输出的数据采用ASCII码,其内容包含了纬度、经度、高度、速度、日期、时间、航向及卫星状况信息。 语句 有 6种 , 包括 GGA、GLL、GSA、GSV、RMC 和VTG。对于不同的用途,选用的语句记录也不同,由于嵌入式系统的使用者只关心日期和时间、角度、速度等信息,所以本设计选用RMC记录语句作为接收系统的定位数据格式进行分析处理。1条$GPRMC语句包括13个记录:语句标识头、世界时间、定位状态、纬度、纬度方位、经度、经度方位、地面速度、地面路线、日期、磁偏角、校验和结束标记,共占用70个字节(其中包括用于分割记录所使用的11个逗号)。例如:

$GPRMC,121530.998,A,4000.016 2,N,11619.547 6,E,0.00,240.81,160 102,*3B

3 GPS接收系统

GPS接收系统完成的主要任务是接收由外部GPS设备发送来的GPS数据包,并对数据包进行处理。根据各种不同的GPS通信语句提取出其中所需要的定位信息,如经纬度、时间、日期、速度、方向角等。由于GPS定位信息比较少,GPS设备多采用RS-232串口来实现计算机或开发板的接口。不同的GPS设备,其操作方式不尽相同。RS-232作为接口的设备,其发送的数据信息均为文本的字符串形式。且遵循NEMA-0183通信标准。根据GPS定位的数据格式,可以将GPS信息的处理过程简化为文本字符串的解析过程。

GPS设备处于工作状态时,会源源不断地把从卫星接收并计算出的GPS导航定位信息通过串口发送到主机中。主机接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一串文本字节流信息,这些信息在分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转换成实际意义的、可供高层决策使用并显示在输出设备上的定位信息数据。同其他通信协议类似,对GPS进行信息提取必须首先明确其帧结构,从而完成对各定位信息的提取。GPS定位信息数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不同,主要有“$GPGGA”、“$GPGSA”、”$GPGSV”及“$GPRMC”等。 这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识的结束。对于通常情况。嵌入式系统设计所关心的定位数据如经纬度、速度、时间等均可以从“$GPRMC”帧中获取得到,因此,本设计只对该类型的数据帧进行分析处理。“$GPRMC”帧的结构及各字段的含义如下:

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh

其中<1>当前位置的格林尼治时间,格式为hhmmss;<2>状态显示,用A或V表示,即当天线视野上方的卫星个数少于3颗A为有效的位置、V为非有效接收警告;<3>纬度,格式为 ddmm.mmmm;<4>南北半球,用 N 或 S表示,N为北半球、S为南半球;<5>纬度, 格式为dddmm.mmmm;<6>东西半球,用 E或 W 表示,E为东半球、W 为西半球;<7>地面导航的速度,范围为 0.0 m/s~999.9 m/s;<8>方位角,范围为 000.0°~359.9°;<9>日期,格式为 ddmmyy;<10>地磁变化,范围为 000.0°~180.0°;<11>地磁变化方向,用 E或 W 表示。

4 硬件设计

图1 系统原理框图

根据SoPC嵌入式系统的典型结构结合具体情况,设计系统[3]如图1所示。其中,Nios II是核心处理器,即为CPU。LCD控制器、UART IP、SDRAM 控制 器、JTAG-UART、SRAM 控 制 器 、Timer、Avalon TRISTAGE BRIDG 为 片 内 外 设 ,Avalon Switch Fabric为总线,负责各个模块的连接和通信,LCD屏、SDRAM、SRAM、CFI-Flash、GPS模块为片外外设。 由于本系统针对具有串口通信接口的GPS模块,所以只要添加UART IP核就可以完成数据传输。该系统在SoPC Builder软件里很容易搭建,如图2所示。

图2 GPS信息接收系统的SOPC结构

系统采用的硬件平台是Altera公司的DE2-70开发板,FPGA芯片是 Cyclone II Ep2c70f896,该芯片具有68 416个逻辑单元 (LE)、622个用户 I/O引脚、250个M4K RAM块、1 152 000个 RAM位总数、150个嵌入式乘法器和4个锁相环[3],集成度高、功能强大,完全满足嵌入式系统设计需要。

5 软件设计

Nios II IDE是Nios II系列嵌入式处理器的基本软件开发工具,开发任务包括编辑、编译和调试程序。目前,Nios II软件开发任务是在HAL(Hardware Abstraction Layer)的基础上进行的[4]。HAL系统库是一个轻量级的运行环境,Nios II HAL系统库提供了一个基于ANSIC C库的C运行环境,具有硬件通信设备驱动程序。软件设计包括:LCD控制器的字符驱动程序、GPS数据接收程序、GPS信息处理程序和GPS定位信息显示程序。由于GPS接收程序的主要功能是将GPS模块以串口的形式发出数据,其重点是数据的分析处理和显示。

5.1 TFT-LCD字符显示设计

本系统选用LCD作为输出设备,用来显示从GPS模块接收来的相关定位信息。在此,选用点阵字库的创建方法,创建了一个 8×12的ASCII码字库和一个 14×14的汉字小字库,设计了相应的字符显示程序,并且在单个字符的基础上开发字符串显示程序。以8×12的ASCII字符显示为例,具体设计方法:使用工具Zimo21来提取8×12点阵的ASCII码信息。设置参数“横向取模”和“字节倒序”,使用该软件提取字符A的信息,共有12个字节数据,依此类推,共有 75个字模,将所有的字模保持到一个二维数组(Font08ASCII[][12])中,组成字库。这样,当应用程序将一个字符显示在LCD屏幕的(x,y)坐标点时,具体流程为:

首先,获取当前需要显示字符在字库中的存放位置,ASCII码字符在字库地址的计算公式如下:

其中,EN_CHAR_HEIGHT常量在设计中表示ASCII码字符的高度。在使用上述计算公式得到所要显示字符的字模存储地址之后,可使用驱动程序中的像素点着色函数将点阵数据写入缓存中。字符串的流程如图3所示。

图3 字符串显示流程图

5.2 GPS信息处理设计

根据接收系统的数据帧结构,处理缓存数据时通过搜寻ASCII码“$”来判断是否是帧头。在对帧头的类别进行识别后,通过对所经历的逗号个数的计数来判断当前正在处理的是哪一种定位导航参数,并作出相应的处理。对缓存的数据进行分析,具体流程如图4所示。

为了验证本系统对GPS定位信息接收的正确与否,可以使用串口调试助手发送GPS字符串数据观察LCD,屏幕上将显示出与字符串数据相匹配的定位信息。

本文在“FPGA+SoPC”平台上设计了 GPS信息接收系统,该系统以串口作为GPS接收模块的接口,并通过LCD显示屏的使用实现了GPS信息的输出显示。最后通过调试软件对实际应用进行了模拟,试验证明了具有较强的实用性,为嵌入式系统添加GPS信息接收模块提供了一种新方法。

图4 GPS信息处理流程图

[1]王刚,张潋.基于FPGA的SOPC嵌入式系统设计与典型实例[M].北京:电子工业出版社,2009.

[2]李颖宏,赵俊桃.基于SoPC的嵌入式语音处理系统的设计与实现[J].现代电子技术,2009(2):33-34.

[3]李英兰.Nios II嵌入式软核SOPC设计原理及应用[M].北京:北京航空航天大学出版社,2006.

[4]孙凯,程世恒.Nios II系统开发设计与应用实例[M].北京:北京航空航天大学出版社,2007.

猜你喜欢
字符接收机串口
浅谈AB PLC串口跟RFID传感器的通讯应用
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
一种宽带低功耗四合一接收机设计
一种面向ADS-B的RNSS/RDSS双模接收机设计
数字接收机故障维修与维护
基于多接收机的圆周SAR欺骗干扰方法
数字电源内部数据传输的串口通信方法实现