刘 超,李玉惠,李 勃,郑占领
(昆明理工大学信息工程与自动化学院,云南 昆明 650500)
GPS定位系统在全球已得到广泛的应用,市场上与GPS相关的产品多不胜数,但功能单一的GPS定位已经不能满足人们的要求,关于目标定位的产品也朝着多信息的方向发展,即不仅能够得到GPS坐标,还能得到方向、距离和速度等信息[1-3]。在该背景下,如果将GPS模块作为定位基本模块,并融合电子罗盘模块和加速度传感器模块,能测出物体的坐标位置、方位和速度,即可丰富目标定位的信息。笔者研究的系统预留了多个串口,便于系统功能的扩展。
该系统主体为一套基于C8051F120单片机的实验平台,通过预留的接口接入GPS模块、电子罗盘模块和加速度传感器模块。GPS接收模块用来接收目标的地理坐标,电子罗盘提供物体运动方位角,加速度传感器模块提供物体的速度,三者的数据分别经过C8051F120单片机串口、I2C控制以及模数转换处理等一系列过程便能得到物体的相关位置状态信息。
C8051F12x系列器件是完全集成的混合信号片上系统型MCU芯片,具有64个数字I/O引脚(100脚TQFP封装)。其具有高速、流水线结构的8051兼容的CIP-51内核(100 MI/s或50 MI/s)且有全速、非侵入式的在系统调试接口(片内)和真正12位或10位、100 kS/s的 ADC,带PGA和8通道模拟多路开关,内部资源多,存储量大[4]。
具有片内VDD监视器、看门狗定时器和时钟振荡器的C8051F12x和C8051F13x器件是真正能独立工作的片上系统。所有模拟和数字外设均可由用户固件使能/禁止和配置。Flash存储器还具有在线重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。
片内JTAG调试电路允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速和在线调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行。
该系统使用该单片机的串口、I2C接口以及模数转换通道。
该系统采用了IT500模块作为GPS信号采集模块。该模块能输出符合 NEMA0183标准的ASCII码形式的数据信息,因此通过C8051F120单片机的串口即可与该模块通信。默认状态下该模块输出 GPGGA、GPGSA、GPGSV、GPRMC 格式的信息。用户可以通过发送命令控制该模块的输出。在实际应用中一般采用最简格式输出,即GPRMC格式输出。
电子罗盘可以提供目标物的运动方向,该系统选用SCH9003模块进行电子罗盘数据的采集。该模块支持I2C通信协议,在单片机内部可以将端口配置为I2C接口,经过简单的操作即可与该模块进行通信[5-6]。需要注意的是电子罗盘是测水平方向运动的,因此测试时应水平放置。
通过加速度传感器可以采集到目标的加速度,该系统采用ADXL213模块采集加速度数据。通过分析动态加速度,可以分析出设备移动的方式。该模块两个输出分别为X轴和Y轴的加速度信息。将其输出接入到单片机模数转换通道,在单片机内即可得到加速度的数字量。
系统加入可扩展模块主要是为了能根据用户的要求加入其他的传感器。一般情况下,很多传感器是支持串口的,因此该系统采用SP3539芯片将1个串口扩展成了5个串口[7-8],其中1个用于GPS模块,其他4个可以连接其他的传感器,进一步丰富定位信息[9]。
用户界面用于用户对系统的操作,它由液晶显示屏和按键模块组成。按键有向上、向下、确认和取消4种功能键,液晶显示屏初始显示的是菜单界面,菜单界面有多个选项供选择,通过向上、向下按键来选择查看或修改GPS模块、电子罗盘模块和加速度传感器模块信息,按确认键即进入该选中模块信息界面,在该界面中可以看到该模块传回的数据,也可对该模块进行参数设置。
通过按键和液晶屏实现菜单操作的关键是对状态进行控制。通过按键实现画面之间的切换。每次键按下,系统内部会进行一次按键处理,得到键值,再结合当前的显示状态,判断得出下一状态,通过更新状态从而实现画面的切换。
系统中C8051F120单片机有8个I/O口和1个12位的8通道模数转换通道。其中端口0~4可以进行交叉开关配置,即可通过端口配置将普通I/O口配置成UART接口和I2C接口等其他数字接口。如图1所示,该系统选择端口0~4为电子罗盘模块配置I2C接口,为串口扩展模块以及液晶屏配置UART接口,并选择模数转换的2个通道接到加速度传感器上。
图1 系统硬件框图
软件系统的设计对于整个系统来说至关重要。在设计的各个环节既要保证系统能快速响应,又要保证数据能正确无误地处理。分模块进行设计比较能够容易查找软件中存在的问题。首先,对系统进行初始化,主要是完成一些基本的设置,包括系统时钟的设定,端口的配置,串口波特率的设定,定时器的设定以及中断的设定。然后系统进入大循环,在循环里先读取并处理各传感器模块的数据,接着是按键的处理,若有按键按下则显示状态改变,接着便显示由按键处理后设定的状态,显示的状态包含了用户所需的不同信息。系统的软件流程图如图2所示。
图2 系统软件流程图
C8051F120单片机是支持在线调试的,通过Silicon IDE集成开发环境,将程序下载到系统中。在室内,由于GPS信号较弱,系统会提示接收不到GPS信号,其他信息接收正常。在户外,GPS信号接收正常,系统运行良好,通过按键的控制可以在液晶屏上显示出目标的经度、纬度、加速度,以及运动方向,而且数据可以跟着目标的运动更新改变[10]。
该系统采用C8051F120单片机控制GPS模块、电子罗盘模块和加速度传感器模块,并采集这3个模块的数据,将采集的数据处理成用户可读的信息显示出来。该系统提供目标的经度、纬度、加速度以及运动方向,丰富了单个GPS定位信息。通过测试,在室内,该系统能正常显示目标运动方向和目标加速度,GPS坐标则由于GPS信号弱而不能正常显示。在户外,GPS信号接收正常,系统运行良好,通过按键的控制可以在液晶屏上显示出目标的经度、纬度、加速度,以及运动方向,并能对数据进行实时更新,显示了良好的特性。系统中扩展了多个串口,只需对软件稍作更改便可增加其他的传感器,进一步满足用户要求。该系统功能可用于交通监控、车载应急指挥系统等场合。
[1]张勤.INS/GPS/电子罗盘组合导航系统研究[J].计算机测量与控制,2010,18(5):225-227.
[2]林明春,夏桂锁,林玉池,等.电子罗盘在全自动智能陀螺寻北仪中的应用[J].光学精密工程,2007,15(5):719-723.
[3]杨国胜,窦丽华,陈杰,等.多传感器多目标定位与跟踪技术研究[J].火力与指挥控制,2002,27(1):29-32.
[4]束华明,高明煜,王园园.基于单片机控制的汽车前照灯自适应系统[J].电子测量与仪器学报,2008,22(1):318-321.
[5]卢海峰,江朝元,阳小光.基于串口通信的在线监测系统关键技术研究[J].仪器仪表学报,2006,27(3):2043-2044.
[6]钟文,王益.串行端口底层通信机理研究及相应实现[J].计算机工程,2005,31(19):225-227.
[7]杨亦红.采用串口通信的光谱相应测试仪中数据帧的设计[J].光学仪器,2003,25(4):59-63.
[8]汪涛,罗洪平,陶纯匡.RS232串口通信在CCD在线测量中的应用[J].系统工程与电子技术,2005,27(10):1814-1816.
[9]陈正平,刘尧光.C3I系统多传感器的信息融合[J].火力与指挥控制,1998,23(3):47-50.
[10]杨国胜,窦丽华,陈杰,等.炮兵系统多目标定位与跟踪建模[J].北京理工大学学报,2002,11(1):14-17.