介绍了TMS320C6701芯片的主要功能特点及内部结构,建立了以DSP为核心的星敏感器信息处理电路系统,并在此系统中成功实现了快速的全天球星图识别。实验结果表明,在不降低星图识别率的条件下,该算法在本系统中的运行速度为0.47s,比基于RISC的星敏感器数据处理单元的速度提高近一倍。
星敏感器是天文导航系统的主要设备,它是集光学、机械、电子、实时图像处理技术于一体的仪器。它通过图像传感器获取星体的图像信息,然后对图像信息进行实时处理,处理过程包括星体质心定位、星图识别匹配、快速跟踪和精确姿态求解,最后输出当前空间飞行器的姿态信息。
美国加州理工大学的JPL实验室是最早从事星敏感器的开发研制工作的,为减小星敏感器硬件电路的功耗,其运算电路系统主要由RISC芯片构成,用以实现星体定位及星图识别算法等。目前星敏感器实时工作的瓶颈在于怎样提高速度。由于星图识别算法占整体星敏感器数据处理的大部分时间,因此需要在软件上应用识别率高同时算法简单的星图识别程序,同时硬件结构上采用更为先进的技术。星图识别程序包括了三角函数的计算,矩阵的转换等乘法执行指令,乘法执行速度越快就代表着识别程序能够在更短的时间内完成。DSP的专用硬件乘法器可以大大的提高运算的速度。本文正是以星敏感器的这一需求为出发点,采用了频率高、处理速度快的浮点DSP芯片TMS320C6701作为星敏感器的核心处理器,实现了以径向和环向分布为特征的星图识别算法。
1 电路系统设计
用于星图识别算法的星敏感器DSP系统以C6701为核心,在其外围加上存储器模块、JTAG接口模块、RS232串口模块、FIFO接口模块、电源模块等,实现计算、通讯等功能。系统总体框图如图1所示。
图 1 DSP星敏感器系统框图
1.1 TMS320C6701的内部结构
在星敏感器系统中,我们采用TMS320C6701作为主要处理部件。C6701是TI公司推出的TMS320C6000系列中的一款支持浮点运算的高速DSP 芯片,它采用超长指令字(VLIW) 体系结构。在CPU时钟频率为167MHz时,其运算能力最高为1336 MIPS,浮点运算能力最高为1 G FLOPS。它有4个相互独立的可编程DMA通道,可独立于CPU进行工作,以CPU时钟速率进行数据吞吐。
1.2 外部存储器
DSP硬件系统外部存储器包括满足大容量数据缓存需求的同步动态RAM,以及存储所有系统软件保证系统脱离PC机独立工作的FLASH芯片。
1.2.2 EMIF与SDRAM的接口
C6701片内有64kBytes的数据存储器和64kBytes的程序存储器,而用于星图识别的程序需要66kBytes的存储空间,全天球星库需要962kBytes的存储空间,C6701的片内存储器不能满足星敏感器的需要,因此电路系统扩展了大容量的SDRAM以存放星库以及程序。
基于以上需求,采用1片MT48LC4M32B2 –1 Meg x 32 x 4banks SDRAM映射到CE0外部存储空间。MICRON的MT48LC4M32B2-7是86-pin TSOP(400 mil)的CMOS同步DRAM,最高工作频率(处理速度)为143Mhz(7ns)。DRAM设备始终时钟控制在CPU时钟速率的一半,即当CPU芯片以OSC4运行时,SDRAM以66.67Mhz(15ns)运行。
1.2.2 EMIF与FLASH的接口
在基于C6701的应用程序的开发中,程序代码或数据表是要保存在FLASH或其它非易失存储器中,以保证掉电时代码仍在,程序在加电复位后自动运行。C6701的EMIF通过异步接口可以支持8位、16位和32位FLASH配置。要实现TI TMS320C6201/ C6701的外部ROM自举,“8/16bit ROM/FLASH存储器”必须配置在CE1空间。本系统使用的Flash芯片AT49BV1614A是一种存储量1M16或2M8的闪速存储器,存取时间70ns,能够电擦除,并能在大多数标准的微处理器总线上通过特殊的编码命令序列编程。
1.3 扩展接口
系统还嵌入了FIFO扩展接口以及串口通讯模块。通过FIFO接口与FPGA连接,获得数据进入DSP进行处理。通过RS232接收发送器,方便的实现DSP与计算机的串行通讯,将全天球星图识别计算结果传回PC机显示。
1.3.1 串行接口
TMS320C6701的多通道缓冲串口McBSP是同步串口,而计算机的串行口RS232是异步串口,中间就要考虑到同步串口转异步接口,以及电平转换的问题。将McBSP转换成UART,再进行电平转换,就可以与RS232直接进行通信。
MAX3111E是一个集成SPI/微细线兼容接口的UART和15kv放电保护RS232收发器为一体的芯片。使McBSP工作在SPI模式下, MAX3111E来完成McBSP和RS232之间的通信。
1.3.2 FIFO接口
通过C6701的外部存储器接口实现高速外部先入先出(FIFO)存储器与DSP的接口,来保证外部设备FPGA传输数据到DSP进行处理。
2 系统软件设计
星图识别算法的程序是用C语言实现的,主要有星图识别程序,以及一些辅助程序。基于所用的TMS320C6701芯片,我们编写了一些硬件驱动程序,例如FLASH烧写及BOOTLOADER程序等。
2.1 星图识别算法
本文采用了基于径向和环向分布特征的全天球星图识别方法。它的基本思想为:利用径向分布特征作为初始匹配,利用环向分布特征进行精确匹配。
图 2 径向分布特征
以主星S为中心,如图所示将圆周等分成8份,计算其他伴星在圆周上的分布,组成一个8位的向量V(<11000100>)。将V作循环移位,找出V所组成的数(十进制)的最大值,将这个最大值作为S的环向分布特征。如图所示V移位后仍然保持不变,则环向特征向量 =11000100=196。
图 3 环向分布特征
事先构造全天球导航星库的模式库。使用时获得星图后,计算该星图中某颗星的模式,通过比较导航星库中的星模式,找到最匹配的星,完成全天球星图识别的过程,从而确定飞行器的位置。DSP经过串口模块,将计算结果传递给PC机显示,可以比较DSP与PC机的处理结果。
2.2 BOOT过程的实现
TMS320C6701器件可以设置成三种自举方式,分别为(1)无自举;(2)ROM自举;(3)主机自举。
系统加电后,RESET信号为低,芯片复位。在RESET信号上升沿处,锁存BOOTMODE[4:0]信号,借以决定芯片的存储器映射方式、地址0处的存储器类型以及复位后芯片的自举模式,复位结束后,芯片从存储器的0地址开始执行指令。TMS320C6701芯片有专门的BOOTMODE[4:0]管脚决定芯片的各种设置。本系统中BOOTMODE[4:0]管脚设置成[10101],芯片在复位后自动将位于外部CE1空间ROM中的程序通过DMA搬入地址0处,传输完成后,CPU退出复位状态,开始执行地址0处的指令,程序启动。
3 实验结果
本文以星敏感器的视场FOV为1212的视场、敏感星等为6等为例,编程测试以上提到的算法。
测试结果表明,基于DSP的硬件系统以及基于RISC的硬件系统的识别结果及识别率一致。DSP系统平均识别时间约为0.47s,RISC系统平均识别时间约为0.805s,大大提高了星敏感器的实时性。
4 结论
本文首先介绍了星敏感器运算及控制的核心——DSP处理器的结构及特点,然后利用高速浮点芯片TMS320C6701搭建硬件系统,完成了基于DSP的星敏感器运算电路系统。接着分析了以径向和环向分布为特征的快速星图识别算法和BOOT过程实现的软件程序。最后仿真验证表明,该系统可以很好的完成星图识别任务,同时系统平均识别时间达到为0.47s,处理速度相比RISC数据处理单元提高了近一倍
责任编辑:gt
-
电源
+关注
关注
184文章
17455浏览量
249000 -
传感器
+关注
关注
2545文章
50384浏览量
750653 -
芯片
+关注
关注
452文章
50117浏览量
420326
发布评论请先 登录
相关推荐
评论