25MHz时钟信号经过ICS501倍频后,产生150MHz和100MHz时钟信号,经三态门总线缓冲器74LVTH125输出后得到CPU工作时钟及同步接口所需的工作时钟。C6711的7个JTAG仿真脚
、TMS、TDI、TDO、TCK、EMU1和EMU0连接到一个14脚双排插头上,可与仿真器相连,以进行系统调试和程序下载。
1.5 外部存储器设计
C6711访问外部存储器必须通过EMIF。EMIF不仅有很高的数据吞吐率,而且还有很强的接口能力,可以与目前所有类型的存储器直接接口。设计采用三种类型的存储器:FLASH ROM、双口RAM和同步动态存储器SDRAM。Flash ROM 是现场可擦除、掉电后可保持数据的存储器,用来固化程序和保存掉电后需要保存的数据;双口RAM用来存储一帧图像数据;SDRAM运行速度快,用来存放实时运行程序和临时数据。本系统Flash ROM采用SST39VF040,且配置在CE1空间。双口RAM采用IDT70V28,且配置在CE2空间。选用HY57V653220作为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条射线后,所有的地平点构成一个地平圈。该算法对接近过渡带的点进行双线性内插,提高了程序执行效率。检测出的地平点坐标是浮点数,提高了地平判定精度,有利于减小测量地心的误差。