DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2445|回复: 1
打印 上一主题 下一主题

[待整理] GPS信号中断时惯导芯片的位置信息感知系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-30 07:36:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  摘要: 基于惯性导航芯片ADIS16003,在GPS信号中断的情况下,详细设计和验证了模拟GPS系统,实现了移动物体当前GPS信息的推算。系统采用 FPGA驱动ADIS16003的SPI接口,依靠惯导原理获取移动物体实时加速度,并以外部中断方式通知DSP从EMIF接口读取。DSP利用信号中断前的有效GPS信息,通过相关位置检测算法,计算出GPS经纬度信息,由HPI接口上报高层,保证了移动物体全天候位置感知能力,已在某大型通信系统中得到应用。
  关键词: FPGA;SPI;ADIS16003;惯性导航;EMIF

  Location Acquisition During GPS Signal Interruption Based on Inertial Navigation Chip
Wu Zhen, Song Maozhong(Institute of Electronic and Information Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 210016,China)
Abstract: A simulation GPS system is designed and verified based on ADIS16003 for projecting GPS information of mobile objects in the case of GPS signal interruption. Depending on inertial navigation, accelerations are acquired from SPI interface driven by FPGA and then transfer to EMIF interface of DSP by way of interruption. Using former effective GPS information, data is processed into GPS latitude and longitude information through relevant software location detection algorithm and handed over to mobile objects from HPI interface immediately, in order that location detection is available all the time. The simulation GPS has been used in communication systems.
Key words: FPGA; SPI; ADIS16003; inertial navigation; EMIF
  引言
  当今社会,GPS卫星定位系统早已广泛应用于人们的社会生活中,如交通工具导航、个人定位服务等。但在某些情况下,由于物体遮蔽、散射等原因,我们无法实时接收到GPS卫星信号(比如列车进入隧道)。所以有必要研究在GPS信息缺失的情况下,如何通过一定的算法产生模拟GPS信息,从而实现全天候的无缝位置感知。这在某些对位置信息敏感的场合中就显得非常急迫和重要。
  1 惯导芯片简介
  ADIS16003是ADI公司的一款低成本、低功耗,具有SPI接口的双轴加速度计,属MEMS传感器件[1]。它可以测量动态和静态加速度并以数字量输出,测量范围最小可以达到±1.7 g,同时还集成了温度传感器,可用于惯性导航、振动检测和稳定性测试等场合中。
  SPI是串行外围设备接口,是Motorola公司首先在其 MC68HCXX系列处理器上定义的。目前已广泛应用在EEPROM、Flash、实时时钟、A/D转换器以及数字信号处理器和数字信号解码器之间,是一种高速的全双工同步通信总线。SPI通信只需要4根线,分别为SDI(数据输入)、SDO(数据输出)、SCK(时钟)和CS(片选)。通信是通过数据交换的方式完成的。SPI接口使用串行通信协议,由SCK提供时钟脉冲,SDI、SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取,完成一位数据传输。数据输入也使用同样的原理。
   ADIS16003的SPI接口通信时序及控制寄存器配置如图1、图2所示。其中,常用控制字为00000100和00001100,分别表示以正常模式采集X轴和Y轴双轴轴向加速度。



图1 ADIS16003 SPI接口通信时序



图2 芯片控制寄存器配置


2 系统工作原理及主要控制信号说明
  本文研究了如何在移动端 GPS信息缺失的情况下,使用SPI协议建立FPGA与惯导芯片ADIS16003之间的通信,从而获取移动物体当前的加速度。DSP将通过EMIF接口读取此加速度,并根据之前有效的GPS信息推算出当前的概略GPS信息(经纬度、速度和时间等)。
2.1 工作原理
  FPGA驱动 ADIS16003惯导芯片工作包括初始启动和正常启动两种模式。
(1) 初始启动模式
  FPGA上电复位时自启动ADIS16003 芯片,配置ADIS16003控制寄存器,并读取芯片测得的双轴轴向加速度初始值,存储到EMIF接口的0x068~0x069地址空间供DSP读取,用作误差校正之用(此模式工作在移动端处于静止状态时,且此模式仅由DSP读取1次)。
(2) 正常启动模式
  初始启动模式完成之后,FPGA将自动转入数据采集阶段,源源不断地通过SPI接口从ADIS16003芯片中采集双轴轴向瞬时加速度,以备DSP使用[23]。加速度每秒采集8次,每隔0.125 s采集一次。每秒都将得到8组结果,分别为ax0ay0、ax1ay1、ay2ay2、ax3ay3、ax4ay4、ax5ay5、ax6ay6和 ax7ay7,存储于FGPA内部的8个中间寄存器单元reg0~reg7(非EMIF接口,每个输出结果为12×2位,存储于32位的寄存器组中),并随着时间的推移不断地刷新。这么做的目的是确保这8个寄存器组中始终保存有最近1 s的移动物体加速度信息,以保证加速度信息的准确性和有效性。当CPU通过GPS接收天线检测到GPS信息丢失时,CPU通过PCI接口给FPGA配入 spi_cmd_val信号(高电平有效),同时通过HPI接口给DSP写入信息丢失前2 s的GPS信息(包括经纬度、速度和时间),作为定位基点。FPGA检测到spi_cmd_val信号有效后,立即将中间寄存器单元reg0~reg7中存储的瞬时加速度送入EMIF接口的0x060~0x067地址单元(32位),同时拉高int_spi_done信号,产生外部中断INT0(拉低 DSP的INT0引脚)通知DSP从EMIF接口读取加速度信息,并通过后续软件算法进行信号处理,转化为移动端经纬度信息。再通过DSP的HPI接口上报给CPU,从而使高层获取移动端当前GPS信息,即完成了GPS位置信息的模拟。加速度存储格式如表1所列。其中包括初始和瞬时加速度值,共占用32位 EMIF接口10个地址单元。
表1 加速度存储格式



2.2 主要控制信号说明
①  spi_cmd_data:ADIS16003芯片控制字(寄存器),8位,FPGA配入。
②  spi_cmd_val:GPS信号缺失时ADIS16003启动信号,CPU发出,脉冲触发。
③  spi_cmd_val_reg:ADIS16003启动信号寄存器,及时存储触发脉冲,持续一个时钟后清0。
④  spi_data_i:ADIS16003串行输出信号,包括双轴轴向加速度,每个spi_clk时钟下降沿输出一位,16个时钟周期完成一次运算。
⑤  spi_cs:SPI片选信号,低电平有效。
⑥  spi_clk:SPI通信时钟信号,由主时钟分频得到,此处进行32分频。
⑦  spi_data_o:ADIS16003控制字输入信号,8位串行输出,spi_clk时钟上升沿动作。
⑧  spi_rdata:ADIS16003运算结果,12位,每个spi_clk下降沿输出一位,采取移位拼接方式(向左移),在第16个时钟下降沿输出一次完整的采集结果(每次采集至少需要16个时钟周期)。
⑨ spi_state:SPI工作状态信号,0为IDLE,1为BUSY,2为DONE,采用有限状态机进行设计。
⑩ spi_wr_cnt_o、spi_wr_cnt_i:十六进制计数器,时钟上升沿和下降沿分别计数[4]。
  整个系统工作流程如图3所示。



图3 系统工作流程


2.3 DSP后续软件处理流程
  DSP后续软件处理流程如图4所示。 DSP在CCS 3.3软件环境下计算完成。此处的基点(basepoint)是指最接近GPS信号消失前的具有有效GPS信息的移动物体位置,即GPS消失前2 s的移动端GPS信息(每秒测量1次)。角度计算是指DSP将距离信息转换为GPS经纬度信息。



图4 DSP后续软件处理流程


3 程序实现及功能仿真
3.1 芯片资源
  本系统采用的 FPGA芯片为Cyclone III系列的EP3C120F80C7器件,DSP芯片为TMS320VC5510[5],惯导芯片采用ADIS16003。各芯片接口和主要信号流向示意图如图5所示,包括PCI、SPI、EMIF和HPI等主要外设接口。



图5 各芯片接口和主要信号流向示意图


3.2软件功能仿真
  本系统的底层SPI通信部分使用 FPGA进行驱动,采用Verilog HDL语言编写程序,并在Quartus 10.1集成环境下进行功能仿真验证[67],如图6所示。结果显示,数据采集符合设计逻辑,当所有数据采集完成一次之后立即送出中断信号触发DSP读取。
4 测试结果



图6 Quartus 10.1仿真结果



图7 SignalTap加速度在线采集实测波形


  利用SignalTap II Logic Analyzer在线逻辑分析仪进行板上硬件实际调试,图7为SignalTap加速度在线采集实测波形。测试结果显示数据采集和处理符合芯片时序要求;FPGA与DSP的EMIF接口配合良好,经过后续DSP软件算法处理后能成功推算出移动物体当前的GPS信息,及时上报CPU(每秒1 s)。其中SPI总线通信时钟为1.4 MHz。经过测试,系统完全能够达到设计要求,已在某大型通信系统中得到应用。
结语
  通过本系统的设计和调试过程可以看出,使用FPGA作为物理层驱动具有SPI接口的数字芯片是简单而有效的一种数字设计方案,可以较容易地满足芯片的时序要求。通过与EMIF接口的配合还可以很好地利用DSP芯片完成众多嵌入式系统的设计。
参考文献
[1] Analog Device. ADIS16003 Datasheet,2005.
[2] 孙彪.基于ADIS16355 MEMS芯片的惯性测量组件系统设计[J].电子设计工程,2010(1):8990.
[3] 汤霞清,晏昌平,刘培.MEMS传感器ADIS16350接口转换的设计与实现[J].现代电子技术,2010(18):145147.
[4] 孙世国,陈帅,陈倩,等.基于FPGA的SPI 4.2 接口设计[J].微计算机信息,2009,25(2):189190.
[5] Texas Instruments. TMS320VC5510/5510A 产品数据手册[OL].[201105].http://www.ti.com.
[6] 祁晓磊,蔡学良,孙德玮.用Verilog HDL进行FPGA设计的原则与方法[J].电子测试,2008(3):6771.
[7] 王金明.数字系统设计与Verilog HDL[M].3版.北京:电子工业出版社,2010.
武震(硕士研究生),主要研究方向为数字通信;宋茂忠(教授),主要研究方向为调制技术、通信跟踪系统、卫星导航、无线定位。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 15:49 , 耗时 0.124892 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表