地平仪是卫星姿态控制系统的关键子系统,其测量精度和可靠性直接关系到卫星姿态是否精确和稳定,在凝视或静态型地平仪中,地球被成像在红外面阵探测器上,因此地球图像的边缘可落在红外面阵探测器的光敏面内。对该图像进行中心定位处理,可提取出卫星的姿态参数,通过调整卫星滚动轴和俯仰轴方向,使固定在卫星上的红外面阵探测器视场中心正好对准地球中心,从而精确定位整个卫星系统的姿态,由于地平圈图像具有远多于通过圆锥扫描方式获得的信息,因而可获得更高的精度,本文利用TI公司的DSP芯片TMS320C6711B(简称C6711)实现了中心定位的相关算法。实践证明,该方法不仅可以满足实时性要求,还可以提高地平仪的测量精度,对提高卫星姿态的精度具有重要意义。
1 实时图象处理系统的硬件构成
本系统以C6711为核心,辅助以现场可编程门阵列FPGA及高速A/D等器件构成实时高速数字图象处理系统。系统硬件框图如图1,该图象处理系统的工作原理是:由CCD采集输出的模拟图像信号,经过高速A/D将模拟信号转换为数字信号,数字图象信号在FPGA控制下,将数据不断输入至双口RAM。每当一帧图像扫描结束时,FPG A提供一个中断标志信号,触发DSP进行数据搬移,将双口RAM中的一帧图像通过C6711的QDMA搬移到SDRAM中。QDMA将数据搬移完后检查图像数据是否有效,如有效则触发DSP执行图象处理程序,否则返回等下一个中断到来,DSP在下次中断到来之前处理完本帧图像,将得出的姿态角信息通过多通道缓冲串口McBSP输出给电脑PC机RS232口并显示,之后又进入中断等待状态,等待中断再次触发QDMA进行数据搬移。
1.1 C6711数字信号处理器
C6711是TI公司的高速浮点DSP芯片,主频为150MHz,最高能达到900MFLOSP的峰值运算能力,C6711由CPU内核、片内外设和存储器三大部分组成,处理单元采用高性能、先进的VelociTI结构,每时钟周期8个功能单元可并行工作,C6711具有特别适合实时图象处理的特点:
(1)先进的VelociTI超常指令字C67XDSP内核;
(2)硬件支持IEEE标准的单精度和双精度浮点指令;
(3)32位外部存储器接口(EMIF),提供与同步、异步存储器的无缝接口;
(4)两级缓存结构,其中:程序缓存32Kbit,数据缓存32Kbit,二级缓存512Kbit;
(5)增强型DMA控制器,共16个独立通道。
1.2 A/D转换
由CCD输出的模拟图像信号,经过高速A/D将模拟信号转换为10位数字图象信号,在FPGA的控制下存入双口SAM存储器,供DSP处理使用。
1.3 电源模块和监控复位电路
C6000系列DSP需要两种电压,分别为CPU内核电压和周边I/O接口电压。C6711需要3.3V和1.8V两种电压,并且要求两种电源满足一定的加电顺序。本系统采用两者同时加电的方式,根据系统的功耗要求,分别采用芯片TPS54316和TPS54314直接产生3.3V和1.8V两种电压,它最大可提供3A的供电电流,电源监控和复位电路采用TI公司的TPS3307-33实现,它可以同时监测三个独立的电压3.3V/5V/1.8V,并且被监测的三个电压有一个低于其门限值时,就可以保证输出有效的RESET信号,使DSP复位,当它们的值都高于门限值时,RESET信号才变为高电平。
1.4 时钟模块和JTAG接口
25MHz的时钟信号经过ICS501倍频后,产生150MHz和100MHz时钟信号,经三态门总线缓冲器74LVTH125输出后得到CPU工作时钟及同步接口所需的工作时钟,C6711的7个JTAG仿真脚TRST、TMS、TDI、TDO、TCK、EMU1和EMU0连接到一个14脚双排插头上,可与仿真器相连,以进行系统调试和程序下载。
1.5 外部存储器设计
C6711访问外部存储器必须通过EMIF。EMIF不仅有很高的数据吞吐率,而且还有很强的接口能力,可以与目前所有类型的存储器直接接口,设计采用三种类型的存储器:Flash ROM、双口RAM和同步动态存储器SDRAM,Flash ROM是现场可擦除、掉电后可保持数据的存储器,用来固化程序和保存掉电后需要保存的数据,双口RAM用来存储一帧图象数据;SDRAM运行速度快,用存放实时运行程序和临时数据,本系统Flash ROM采用SST39V040,且配置在CE1空间,双口RAM采用IDT70V28,且配置在CE2空间,选用HY57V563220作为SDRAM,配置在CE0空间,这样的配置与引导方式相配合。
1.6 输出电路
系统根据输入的图像,由C6711进行处理后得出 的一个卫星姿态角信息,该姿态角信息由C6711输出到PC机的RS-232口,由于通信的信息量少,所以可以利用C6711的多通道缓冲串口McBSP,在不扩展其他硬件的情况下,用实现异步数据传输格式,发送时,发送转换子程序把每一个数据位扩展成16位的UART字,并把这些已转换好的数据块放入发送缓冲区,同时在适当的地方加上起始和终止位(如图2所示),然后EDMA把数据从发送缓冲区传给McBSP,而McBSP帧同步发生器负责连续的移出这些数据[4],接收时,EDMA从McBSP读入已经扩展的数据,并把这些数据写入接收缓冲区,然后再调用压缩子程序把数据转换成原来的字节形式,这种方法的优点是硬件接口简单,只需增加一个CMOS电平与RS232电平的电平转换电路。
2 图象处理算法的实现
中心定位图象处理算法设计以输入图像格式320×240象素,1024灰度级/象素为基础,包括滤波、判断地平圈是否进入视场,边缘检测和精确定中心几个部分。
2.1 滤波
探测器可能存在小于1%的坏单元,其灰度值主要为0或者1023,坏元区范围小于3×3,坏元的存在有可能对边缘 检测带来误差,再加上采集到的图像数据信噪比较低,所以采用二维中位数滤波[5]。其做法是:对于一帧图像,采用从上到下、从左到右的方法,移动3×3的窗口,在每一个位置,将有9个图像像素出现在窗口中,对这9个像素灰度值进行排序,使用快速排序法找到处于正中的象素值,把这个值赋给3×3窗口的中心象素,使用这种方法可以有效滤除区域不大于2×2的突发性干扰,从而提高算法精度。
2.2 判断地平圈是否进入视场
当卫星初始进入轨道时,在地平仪初始状态下可能探测不到地球,这时需启动搜索程序控制卫星偏转以搜索地球。因此,必须对所得的地平圈图像采用逐行扫描的搜索方法以判断地球是否进入视场。
2.3 边缘检测
边缘是提取首先检测图像局部特性的不连续性,然后再将这些不连续的边缘象素连成完备的边界,边缘的特性是沿边缘走向的象素变化平缓,而垂直于边缘方向的象素变化剧烈,这个意义上说,提取边缘的算法就是检测符合边缘特性的边缘象素的数学算子。
由于地球的辐射存在不均匀性,所以地平高度与采用的地平检测方式有关,其差别在于对应不同的地平检测方式,具体的地平高度随地球辐射变化程度不同,本文采用比例门限法检测地平圈。具体算法如下:以粗略地心为起点,以0.5度为间隔取720条射线。考虑到只需扫描地球辐射过渡带,所以每条射线的扫描起点距粗略地心为100个单位,间隔一个单位进行一次采样,由于该采样点的坐标不是整型,所以利用双线性内插得到采样点的灰度值,依次判断采样点,一边记录灰度最大值,一边判断灰度值是否小于最大值的一半,当条件成立时,扫描停止,算法灰度值为最大值的50%所对应的坐标,即地平点坐标,扫完720条射线后,所有的地平点构成一个地平圈。该算法对接近过渡带的点进行双线性内插,提高了程序执行效率,检测出的地平点坐标是浮点数,提高了地平判定精度,有利于减小测量地心的误差。
2.4 精确定中心
精确定中心是算法中最关键的部分,方法的好坏直接影响地心的精度,一般有霍尔变换法、面积积分和三点均值法等,精确定位采用面积积分法,根据微积分理论,对于一个封闭区域D,其重心坐标可用如下公式得到:
式中,x和y代表单元点的坐标,ρ(x,y)代表单元点的密度,D代表整个区域。
当ρ(x,y)=1时,区域的重心和形心重合,S表示区域的面积,为了能够用计算机计算区域的中心位置,必须对上面的公式离散化,离散化后的公式为:
式中,R(θ)表示对应θi~θi+1范围内的幅值变化规律。
3 实验结果
把CCD拍摄到的图象数据送入该系统处理,每处理完一帧图像就会从串口输出一个姿态角信息,表1是四帧图像的处理结果。从表1可以看出算法的精度优于0.1的指标要求,算法处理时间约为0.49秒,满足一秒处理一帧的实时要求。
由高性能数字信号处理器TMS320C6711B和FPGA组成的实时图象处理系统,实现了图像采集、实时数据处理及输出,利用JTAG接口对系统进行在线调试,使系统具有很好的升级性和扩展性,采用DSP处理器,增强了系统的处理能力,提高了系统处理速度,保证了工作的实时性要求,采用贴片器件,既减小了PCB板的尺寸,又增加了系统的可靠性。实践证明,中心定位算法通过对原始图像滤波、判断目标是否进入视场、边缘检测和精确定中心大大地提高了地平仪的测量精度。