0 引言
LFMCW(线性调频连续波)雷达是一种通过对连续波进行频率调制来获得距离与速度信息的雷达。因其具有发射功率低,距离分辨力高、不存在距离盲区等优点越来越多地应用于船舶导航中。显示系统作为雷达直接面对操作者的部分,其成像的好坏直接影响到操作的判断。同时对于集成度越来越高的综合船舶电子系统,单一传感器的数据内容往往要提供给多个显示单元,以便利用冗余信息进行数据融合提高判断的可靠性。为此,本文提出了一种三维优化查找表算法,很好地解决了雷达成像中的重点和漏点问题,同时利用组播机制完成了多屏显示以及在综合船桥系统中的拓展。
1 系统的网络结构
本系统并没有采用如SPI等传统的总线传输作为雷达扫描单元和显示单元之间的通信机制,而是利用了标准的以太网传输通信。考虑到相关的拓展,没有选择简单的单播机制而选择了组播。
1.1 组播
组播是一种一点到多点(或多点到多点)的通信方式,即多个接收者同时接受一个数据源发送的相同信息。组播通信中使用的是D类IP地址,其范围在224.0.0.1~239.255.255.255 之间。由于传输层上的TCP协议不支持组播,所以下面设定的显控报文都采用了UDP协议。
1.2 系统的结构及实现
显示系统网络结构如图1所示,236.6.7.8、236.6.7.9、236.6.7.10等就是组播地址,它们可以看成雷达扫描单元和显示单元之间的通道,每个组播组都有其专属的功能[1]。系统一上电,各单元都会根据IGMPV3协议发出加入相应组播组的通知,其部分代码如下:
#define MCAST_REC_ADDR"236.6.7.8"
#define MCAST_FD_ADDR"236.6.7.9"
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = inet_addr(MCAST_REC _ADDR);
mreq.imr_multiaddr.s_addr = inet_addr(MCAST_FD _ADDR);
……
系统通过这些通道以UDP数据包作为载体传递信息。236.6.7.10为控制信息通道,传递开关、扫描速度、增益、雨雪杂波抑制等控制信息;236.6.7.9是反馈信息通道,主要是显示单元接收确认信息;236.6.7.8是数据内容通道,传输大量的雷达图像信息。
1.3 报文格式
系统自定义了相关报文格式,其内容如表1所示。
以海杂波为例,控制报文中C1是控制命令字,06是内部配置寄存器的编号,19 是状态值(19在界面的显示值是19/256×100);考虑到单向通信机制的不可靠本文引入了反馈机制,控制报文发出时系统参数不会立刻改变,而是等待接收到反馈报文,C4 是反馈命令字,19是当前海杂波抑制值;数据报文中0100000000200002是数据的帧头,其中20(32d)是含有扫描线的数量,例子里73 0B是扫描线的编号,1D07是扫描线的角度信息。
2 数据处理
从组播地址236.6.7.8接收到的雷达图像数据是极坐标形式,由表1可以看到其表示的是扫描线上每个点的灰度值,角度值由1D07(1821d)/2 048×360算得,但是极坐标数据无法直接显示还必须经过坐标转换,这就是图1中的中间件部分所完成的工作,也是整个显示系统的关键组成部分。
2.1 基本坐标转换方式比较
直接转换方法如下:
式中,?兹为极坐标角度,r为半径,x为直角坐标中的横坐标,y为纵坐标。直接运用公式计算看似简单但不可避免地带来重点和漏点等问题,这是因为直角坐标和极坐标之间的映射不是一一对应的。由于极坐标在直角坐标系中呈放射状分布,导致近端多个极坐标映射到一个直角坐标点的情况,这就是重点;而在圆心远端的直角坐标点会出现没有极坐标映射的情况,这是漏点[2]。重点会造成数据冗余,漏点会影响成像。
计数法是根据直角坐标都是整数,且相邻点的变化量只有0、1,可以进行进位信息存储,此法同样只能减少存储空间,无法解决漏点问题[3]。查找表法预先存储了每一个极坐标对应的直角坐标,直接寻址操作,此法使转换效率大大提升,但所需存储空间大且不能避免漏点[4]。
2.2 三维优化查找表算法
比较了上述算法并综合考虑了硬件资源开销,提出一种以极坐标为地址,直角坐标为数据的三维优化查找表算法,既解决了坐标转换开销大,显示卡顿问题,也对重点和漏点问题进行了有效解决,最后利用对称性减少了预先存储的数据量[5]。
根据查找表的定义,重点在表中的反映形式为不同的地址拥有同样的内容。如有N个地址对应数据相同,为了消除重点可将其中N-1个地址的数据编辑为0,保留唯一的一个地址的数据。实际采用的消除方式是保留其中地址最小的内容,其余地址内容设为0。这样就确保了表中所存直角坐标的唯一性。
补漏的思路是利用其邻近非漏点的灰度值。采用三维查找表的目的也就是希望将转换坐标点附近的漏点位置标记出来,利用已知的灰度值对其进行插值。而建立这种查找表的第一步就是找出漏点。由式(1)建立起一个所有转换直角坐标的数组{(x,y)},通过下面公式:
将结果数组与上面得到的结果数组相比较就得到了漏点数组{(x′,y′)}。
第二步是给这些漏点去找到其附近的非漏点,好进行补漏的过程。本系统在极坐标直接转换得到的直角坐标数组{(xi,yi)}中任选一点再遍历漏点数组{(x′,y′)}由式(3):
得数组{(xij′,yij′)},并用(xi,yi)横坐标和纵坐标分别减去数组{(xij′,yij′)}中对应的元素得到差值(xi-xi1′,yi-yi1′)(xi-xi2′,yi-yi2′)…(xi-xij′,yi-yij′),再用一个2j×k bit的数add的每k bit分别表示差值,遍历直角坐标数组将所有得到的(x,y,add)i保存为查找表文件。考虑到角度量化值N为2 048,扫描半径M为384,实际系统在数据之后另外加上2位的补漏标志位。00表示该坐标附近无漏点,01表示坐标(x,y+1)为漏点(当前坐标为(x,y)),10表示(x+1,y)为漏点,基本完成成像要求。
优化后的查找表算法解决了重点、漏点等问题但需耗费16 MB的存储空间,而实际上通过对称性优化只需在查找表中存储0°~45°的数值就可以完成数据的转换。系统在处理数据过程中进行两次转换,由表1知每根线都有各自的编号n,收到数据包时先提取出编号进行判断,然后用下面公式进行转换,将其区域的扫描数据映射到0°~45°区域:
当最终输出到显存时,还需要再次转换成扫描线上
像素点对应屏幕上的真实坐标,其转换公式如下:
系统的算法流程如图2所示。
3 组播的优势及系统扩展
随着现代船只电子系统的集成化越来越高,多传感器复合显示的需求也越来越大,雷达数据往往也要提供给多个显示单元。考虑到雷达扫描一周产生大约1 MB的数据量以及24 r/min或者36 r/min的扫描速度,系统如果自己先进行数据复制再传输显然是困难的,而组播的特点刚好是加入同一组播组的成员都可以接收到发向这个组播地址的数据,例如多个显示单元只要都加入了系统中236.6.7.8组播组都可以接收并显示雷达图像数据,轻松实现多屏显示。
而对于最近兴起的综合船桥系统,其显示系统结构如图3所示,显示单元可以分别作为ECDIS、Radar(有两部S-Band 和 X-Band)以及Conning(船舶综合数据显示系统)进行工作,又可以切换S-Band雷达和X-Band雷达信息进行交换显示,同时当单一显示器出现故障时可以利用其他显示单元备用显示。其复合显示的基础就是组播机制,显示系统通过加入的组播组实现相关的显示,对于GPS、AIS通过标准串口输出的数据也可以通过转换器封装成UDP报文发送到组播地址。所以,基于组播的雷达可以很好地融入综合船桥系统中,实现扩展。
4 实验与测试
系统利用QT完成了界面设计并接收坐标转换后的雷达图像数据绘制出来[6],这里硬件采用了Xilinx公司推出的XC6SLX100T-2FG676C FPGA芯片以及TI公司的DAVINCI DM3730芯片,并外挂了DDR3芯片来存储查找表,所用存储空间为1.97 MB,其实验效果如图4所示。
图4中,上两幅图分别是未对边界进行设置,且没有进行补点算法下漏点的显示状态以及加上边界约束,注释掉刻度层后的显示效果图,可以清楚地观察到算法的效果;而下两幅图是两台显示器和一个扫描单元同时连接到一台路由器的LAN口,实现多屏显示的效果图,其中左下图的显示系统工作在Linux环境下,而右下图的显示系统工作在Windows环境下。
5 结论
系统基于组播机制实现了多屏显示以及综合船桥系统中的显示切换,并优化了一种三维查找表算法,很好地解决了雷达成像过程中的重点和漏点问题。同时也解决了在进行大量数据转换的过程中,由于硬件资源的限制而造成的卡顿现象。在硬件平台上的实际测试效果良好。