基于DSP实时定位系统在地平仪中的应用
摘 要:为解决地平仪装置中对目标的实时中心定位问题,设计了一套以TMS320C6713 DSP芯片为核心的实时定位图像处理系统。文中对整个系统的构成和设计进行了描述,并给出了中心定位算法和实验结果,证明该系统完全可以完成中心定位算法的实时处理。
关键词:TMS320C6713;地平仪;边缘检测;中心定位
1 引言 地平仪是卫星姿态控制系统的关键子系统之一,主要有光学系统、辐射探测器和电子部件等组成。它的测量精度和可靠性直接关系到卫星姿态是否精确和稳定。在凝视或静态型地平仪中,地球是被成像在红外面阵探测器上的,因此地球图像的边缘可落在红外面阵探测器的光敏面内,对该图像进行中心定位处理,可提取出卫星的姿态参数,通过调整卫星滚动轴和俯仰轴方向,使固定在卫星上的红外面阵探测器视场中心正好对准地球中心,从而精确定位整个卫星系统的姿态。由于地平圈图像本身具有远多于通过圆锥扫描方式获得的信息,因而可获得更高的精度。本文设计了利用美国TI公司的DSP芯片TMS320C6713(以下简称C6713)来实现中心定位的相关算法,实践证明该方法不仅可以满足实时性的要求,而且可以提高地平仪的测量精度,对于提高卫星姿态的精度具有重要意义。
2 系统的硬件设计 本系统采用了以C6713为核心,辅助以现场可编程门阵列FPGA以及高速的A/D等器件构成了实时的高速数字图像处理系统。系统的具体框图如图1。该实时定位系统的工作原理是:由CCD采集输出的模拟图像信号,经过高速A/D将模拟信号转换为数字信号。数字图像信号在FPGA控制下,将数据不断输入至双口RAM。每当一帧图像扫描结束时,FPGA提供一个中断标志信号,触发C6713进行数据搬移,将双口RAM中的一帧图像通过C6713的QDMA搬移到SDRAM中。QDMA将数据搬移完后检查图像数据是否有效,如有效则触发C6713执行中心定位算法程序,否则返回等待下一个中断到来。C6713在下次中断到来之前处理完本帧图像后,将得到的卫星姿态角信息通过多通道缓冲串口(McBSP)输出给外设的串口并显示出来,之后又进入中断等待状态,等待中断再次触发QDMA进行数据搬移。
图1 实时定位系统硬件框图
2.1 C6713 数字信号处理器 C6713是TI公司的高速浮点DSP芯片,主频为200MHz,其单指令执行周期仅5ns,具有强大的浮点运算能力。由CPU内核、片内外设和存储器三大部分组成。处理单元采用高性能、先进的VelociTITM结构,每时钟周期八个功能单元可并行工作,特别适合实时图像处理。
2.2 A/D变换 由CCD输出的模拟图像信号,经过高速A/D将模拟信号转换为10bit数字图像信号,在FPGA的控制下存入双口RAM存储器中,供DSP处理使用。
2.3 时钟模块和JTAG接口 25MHz时钟信号经过倍频后,产生100MHz和200MHz时钟信号,经三态门总线缓冲器74LVTH125输出后得到的CPU工作时钟及同步接口所需的工作时钟。C6713的7个JTAG 仿真脚 、TMS、TDI、TDO、TCK、EMU1和EMU0连接到一个l4脚双排插头上,可与仿真器相连,以便进行系统调试和程序下载。
2.4 电源模块和监控复位电路 C6000系列DSP需要两种电压,分别为CPU内核电压和周边I/O 接口电压。C6713需要3.3V和1.2V两种电压,并且要求两种供电源满足一定的加电顺序,本系统采用两者同时加电的方式。根据系统的功耗要求,分别采用芯片TPS54316和TPS54312直接产生3.3V和1.2V两种电压,它最大可提供3 A的供电电流。电源监控和复位电路是采用TI公司的TPS3307-33来实现,它可以同时监测三个独立的电压5V/3.3V/1.2V,并且被监测的三个电压有一个低于其门限值时,就可以保证输出有效的复位信号,使DSP复位。
2.5 外部存储器设计 C6713访问外部存储器必须通过EMIF,EMIF 具有很强的接口能力,不仅具有很高的数据吞吐率,而且可以与目前几乎所有类型的存储器直接接口。设计采用三种类型的存储器:FLASH ROM、双口RAM和同步动态存储器SDRAM。FLASH ROM 是现场可擦除、掉电后可保持数据的存储器,用来固化程序和保存掉电后需要保存的数据;双口RAM用来存储一帧图像数据;SDRAM运行速度快,用来存放实时运行程序和临时数据。本系统FLASH ROM采用SST39VF040,且配置在CE1 空间。双口RAM采用IDT70V28,且配置在CE2 空间。选用HY57V653220作为SDRAM,配置在CE0空间,这样的配置同引导方式相配合。
2.6 输出电路 系统根据输入的图像,由C6713进行处理后得出一个卫星姿态角信息,该姿态角信息由C6713输出到外设的RS-232口,由于通信的信息量少,所以可以利用C6713的多通道缓冲串口McBSP,在不扩展其它硬件的情况下,用软件实现异步数据传输格式。发送时,发送转换子程序把每一个数据位扩展成16位的UART字,并把这些已转换好的数据块放入发送缓冲区,同时在适当的地方加上起始位和终止位,如下图2所示,然后EDMA把数据从发送缓冲区传给McBSP,而McBSP帧同步发生器负责连续地移出这些数据;接收时,EDMA从McBSP读入已经扩展过的数据,并把这些数据写入接收缓冲区,然后再调用压缩子程序把数据转换成原来的字节形式。这种方法的优点在于硬件接口简单,只需增加一个CMOS电平和RS232电平之间电平转换电路。
图2 发送缓冲区数据块的处理方式
3 图像处理算法的设计 中心定位图像处理算法设计是以输入图像格式320×240象素,1024灰度级/象素为基础,包括滤波、判断地平圈是否进入视场、边缘检测和精确定中心几个部分。 3.1 滤波 探测器有可能存在小于1%的坏单元,其灰度值主要表现为0或1023,坏元区范围小于3×3,坏元的存在有可能会对边缘检测带来误差,再加上采集到的图像数据信噪比较低的特点,所以采用二维中位数滤波。其做法是:对于一帧图像,采用从上到下、从左到右的方法,移动3×3的窗口,在每一个位置,将有九个图像象素出现在窗口中,对这九个象素灰度值进行排序,使用快速排序法找到处于正中的象素值,把这个值赋给3×3窗口的中心象素。使用这种方法可以有效滤除区域不大于2×2的突发性干扰,从而提高算法精度。 3.2 判断地平圈是否进入视场 当卫星初始进入轨道时,在地平仪初始状态下可能探测不到地球。这时需启动搜索程序控制卫星偏转以搜索地球。因此,首先必须对所得的地平圈图像进行初步处理以判断地球是否进入视场,算法采用逐行扫描的搜索方法。 3.3 边缘检测 边缘提取首先检测图像局部特性的不连续性,然后再将这些不连续的边缘象素连成完备的边界。边缘的特性是沿边缘走向的象素变化平缓,而垂直于边缘方向的象素变化剧烈,所以,从这个意义上说,提取边缘的算法就是检测符合边缘特性的边缘象素的数学算子。 由于地球的辐射不均匀性,地平高度与采用的地平检测方式有关。其差别在于对应不同的地平检测方式,具体的地平高度随地球辐射变化程度不同。算法采用比例门限法检测地平圈。具体算法如下:以粗略地心为起点,以0.5度为间隔取720条射线。考虑到只需扫描地球辐射过渡带,所以每条射线的扫描起点距粗略地心为100个单位,间隔一个单位进行一次采样,由于该采样点的坐标不是整型,所以利用双线性内插得到采样点的灰度值,依次判断采样点,一边记录灰度最大值,一边判断该灰度值是否小于最大值的一半。当条件成立时,扫描停止,算出灰度值为最大值的50%所对应的坐标,即地平点坐标。扫完720条射线后,所有的地平点构成一个地平圈。该算法对接近过渡带的点进行双线性内插,提高了程序执行效率。检测出的地平点坐标是浮点数,提高了地平判定精度,有利于减少测量精确地心的误差。 3.4精确定中心 精确定中心是算法中最关键的部分,它采用方法的好坏直接影响地心的精度。一般的方法有:霍夫变换法、面积积分和三点均值法等,精确定位采用面积积分法。根据微积分理论,对于一个封闭区域 D,计算其重心坐标可用如下公式:
式中,X和Y代表单元点的坐标, S表示区域的面积, 表示对应 范围内的幅值变化规律。
4 实验结果 把CCD拍摄到的图像数据送入该系统进行处理,每处理完一帧图像就会从串口输出一个姿态角信息,表1是四帧图像的处理结果,可以看出算法的精度优于0.1的指标要求,算法处理时间约为0.36秒,满足一秒处理一帧的实时要求。
表1 四帧图像的处理结果
图像文件名 | 图像参考中心 | 算法处理后得出的中心 | 纵向 | 横向 | 纵向 | 横向 | pic-1 | 123.90 | 119.90 | 123.8926 | 119.895 | pic-2 | 123.92 | 119.92 | 123.9148 | 119.9151 | pic-3 | 123.94 | 119.94 | 123.935 | 119.935 | pic-4 | 123.96 | 119.96 | 123.9543 | 119.9562 |
5 结束语 由高性能数字信号处理器TMS320C6713和FPGA组成的实时图像处理系统,实现了图像采集、实时数据处理以及输出,利用JTAG接口对系统进行在线调试,使系统具有很好的升级性能和扩展性能。采用DSP处理器工作,大大增强了系统的处理能力,可以提高系统处理速度,保证工作的实时性要求。本文作者创新点是用高速DSP芯片来实现地平仪中信息处理的相关算法,克服了以前用一般电路来实现而很难满足实时性的缺点,这对于提高地平仪的测量精度具有决定性意义。
|