基于千兆网接口的星敏感器图像显示与存储

2015-03-21 10:01魏仲慧王方雨
液晶与显示 2015年1期
关键词:线程解码以太网

张 磊,何 昕,魏仲慧,王方雨

(中国科学院 长春光学精密机械与物理研究所,吉林 长春130033)

1 引 言

星敏感器是一种以恒星为参考系的天文导航装置,是迄今为止最精密且漂移最小的姿态测量部件[1-2]。由于星敏感器在使用时可以为载体直接提供高精度的空间姿态测量信息,其外部接口通常只需包括电源接口、通信接口两类。电源接口用以提供星敏感器正常工作的电源,通信接口用以实现星敏感器与系统的数据通信。而图像作为最直观、具体的信息载体,虽然在使用时因传输信道带宽的限制或无需事后处理,将其封闭,但在地面功能测试或观星试验中,可以看到实时星空图像,将图像下载存储后可以用来考察星图处理及识别算法,另一方面,在环境试验中可以用来监视实时图像,了解设备的状态,因此,图像是地面检测环节中重要的监测和验证手段。

为适应航天产品对重量、功耗和体积的要求,星敏感器均采用嵌入式的设计方案,集成化程度越来越高,在图像接口方面,为满足小型化和电磁兼容等要求,不会使用标准的图像接口,取而代之的是尺寸小、密封性较好的航天连接器。而在图像传输协议上,则会采用广泛应用的CameraLink图像协议。这就对地面检测设备中的图像采集、存储提出了较高的要求,通常需要配备较笨重的台式机箱与专用的PCI图像采集卡,成本较高,便携性极差。随着科学技术的进步,千兆网,即千兆以太网,逐渐成为包括笔记本在内的计算机的标准配置,采用千兆以太网传输星敏感器图像具有传输带宽高、传输距离远和性价比高的特点,而且对地面检测设备的要求也大大降低。

本文基于上述思想,从模块化的角度出发,采用千兆网控制器AX88180 芯片、物理层收发器M88E1111芯片以及Windows网络套接字,设计了千兆网图像采集传输系统。实验证明,采用该千兆网图像采集系统,能很好地完成对星敏感器图像的采集、显示与存储。

2 系统设计

千兆以太网采集、传输星敏感器图像的方案如图1所示。星敏感器产生的数字图像经千兆网图像采集、传输系统采集编码后,以网络数据流的形式输出,在计算机端无需特别的接口卡或昂贵且复杂的图像采集卡,只需一块普通的千兆网卡就可以从外部图像源接收实时的非压缩图像,千兆带宽满足了绝大多数星敏感器图像传输应用的要求,同时这也降低了对图像采集计算机的配置要求,使用便携式笔记本电脑即可完成图像的采集、显示与存储。

采用千兆网传输图像首先解决图像源接口协议转换的问题,星敏感器图像以CameraLink 协议 传 输,CameraLink 是NI 公 司 基 于Channel Link技术发展而来的,而Channel Link以LVDS规范为基础。CameraLink信号以7∶1的方式串行化为4条LVDS数据流,CameraLink接收器接收4路LVDS数据信号和1路LVDS时钟信号,将数据流转换为28位的CMOS/TTL并行数据,5对线传输28路信号。

图1 千兆网图像采集、传输方案Fig.1 Scheme of image acquisition and transmission over Gigabit Ethernet

其次,在网络传输方面,底层采用千兆网MAC控制器和PHY 收发器件实现网络数据的传输。在网络协议方面,为保证通讯协议的兼容性和网络传输效率,在传输层选择UDP协议,同时,考虑UDP协议是一种不可靠的传输层协议,在应用层还要再设计图像传输协议以保证图像网络传输的可靠性。

本设计中星敏感器图像的分辨率是1 024×1 024,数据更新率10 Hz,像素量化位数14bit,则数据量140 Mb/s,而千兆网的数据传输能力标称1Gb/s,远远超过数据源的带宽,所以采用千兆网采集星敏感器图像完全满足需求。

2.1 关键元器件介绍

2.1.1 千兆网控制器AX88180

AX88180是台湾ASIX 公司推出的全球第一款高性能低成本的Non-PCI千兆以太网控制器,符合IEEE802.3/IEEE 802.3u/IEEE 802.3ab协议,适用于多种需要高速接入网络的嵌入式系统。

AX88180内 置10/100/1 000 Mb/s以 太 网媒体存取控制器(MAC),与PHY 之间采用RGMII接口;内置主机接口控制器,可以与16/32位主机方便连接,寻址方式与SRAM 相同;内置40 KB SRAM 网络封包缓存器,其中32KB 用于从PHY 接收数据包,8KB 用于主机发送数据包到PHY,可以用高效方式进行封包的存储、检索与修改;内置256字节的配置寄存器,用于主机控制和参数设置;内置EEPROM 接口;内置IP/TCP/UDP校验和,可大大减小微控制器的运算负载,改善传输反应时间。图2是AX88180的内部结构框图[3]。

图2 AX88180内部结构框图Fig.2 Structure of AX88180

2.1.2 物理层收发器M88E1111

Marvell M88E1111是一款千兆以太网收发器物理层芯片,采用标准的CMOS工艺制造,支持1000BASE-T、100BASE-TX、10BASE-T 应用,支持自动协商功能(Auto-Negotiation),支持传输介质自动检测(Auto-Media Detect),支持网络收发线对的自动检测和交叉(MDI/MDIX Crossover),可以在五类非屏蔽双绞线上进行数据的收发。

M88E1111内部组成如图3 所示,它包括了千兆以太网物理层PCS、PMA、PMD 子层的所有功能。其发送端集成一个多功能的D/A 转换器,可以支持4DPAM5、MLT3和曼彻斯特编码,分别支持1000BASE-T、100BASE-TX 和10BASET 的链路编码,其中在100BASE-X 应用中,在进行链路编码之前还要经过4B/5B 编码。接收端集成一个高速A/D 转换器以125 MHz的频率采样输入信号,首先采用回声消除、近端串扰抑制等多种手段提升信号质量,再经过接收PCS层解码后交付给MAC层[4]。

图3 M88E1111内部功能框图Fig.3 Structure of M88E1111

2.2 硬件设计

基于千兆网的星敏感器图像采集系统硬件架构图如图1所示,由解码芯片、FPGA、SRAM、网络MAC芯片、PHY 芯片及RJ45接口组成。系统采用Xilinx 系列的XC2V3000FPGA 芯片作为主控制器,控制千兆网络芯片的初始化、星敏感器图像数据采集以及网络数据的组帧发送。选择DS90CR288 作为CameraLink 图像解码芯片、AX88180和M88E1111作为网络驱动控制芯片,MAC芯片AX88180负责将标准的组帧的网络数据包传送给PHY 芯片88E1111,完成图像数据的发送。

系统上电后,先初始化网络芯片AX88180和M88E1111,完成寄存器的配置[5];当有星敏感器图像输入时,先由DS90CR288芯片解码;解码的图像经FPGA 控制在两片SRAM 间进行乒乓缓存,同时,FPGA 取出将要发送的数据,组帧后写入MAC芯片的缓存中,在FPGA 的控制下PHY芯片将图像数据通过RJ45接口发送到网络上。

2.2.1 图像解码

前端接口是CameraLink 图像采集部分,完成对星敏感器输出图像的解码。如图4 所示是CameraLink接口Base模式的数字图像信号的时序关系图。根据CameraLink 接口协议,一帧数字图像由场同步信号、行同步信号、像元时钟和多位图像数据组成,各信号均在像元时钟的上升沿是数据稳定时期。

图4中的信号由TI公司的DS90CR288 解码芯片进行图像数据、行、场、时钟的LVDS 和TTL通道之间的转换,将CameraLink 接口中5对LVDS信号解码、转换到包括图像数据、行、场信号在内的28位TTL信号。

图4 Cameralink格式时序图Fig.4 Timing sequence of CameraLink data

2.2.2 网络芯片互连

千兆网进行数据传输是由千兆网的MAC 芯片与PHY 芯片之间交互实现的,其关键在于芯片间的接口互连,如图5 所示为FPGA、AX88180、M88E1111 与RJ45 接 口 的 连 接 关系图。

AX88180支持16/32位的类SRAM 主机接口,并支持与主机的同步及异步工作方式。本设计中选择FPGA 作为主机,为AX88180提供64 K 空间,其中0000H-7FFFH 供数据接收使用,8000H-FBFFH 供发送数据使用,另外,由于FPGA 具有充足的引脚,为了实现较高的数据传输速率,选择32位的接口和异步操作的工作方式。AX88180与FPGA 之间的连线主要是读、写及地址、数据总线,接口共包括片选信号CSN、写信号WEN、读信号OEN、16位地址总线HA、32位数据总线HD,以及硬件复位信号RESET、MAC 中断信号INTN[3]。

M88E1111与AX88180 之间通过简化后的RGMII接口连接,它通过数据引脚和控制信号的复用将GMII 接口的引脚数减少到12 个。M88E1111与AX88180 间接口主要包括发送数据TXD、发送时钟TXCX、发送使能TXEN、接收数据RXD、接收时钟RXCX、接收使能RXDV、参考时钟信号CLK125以及PHY 中断信号PHYINTN 等。

M88E1111包含有大量的管理寄存器,提供了通过MDC和MDIO 引脚访问PHY 内部寄存器的功能,MDC 是管理数据时钟输入,MDIO 是一个与MDC 保持同步的可读可写的双向接口,FPGA 通过MDC/MDIO 管理接口访问PHY 并进行串行配置[4]。

MDI是PHY 芯片与物理介质的接口,与RJ45连接。

图5 接口的连接关系图Fig.5 Interface connective relation

2.3 软件设计

当图像数据到达计算机网卡时,操作系统要将其解包交给上层应用软件,由应用软件负责图像重组、显示并记录在硬盘中。应用软件采用多线程的设计实现并行处理,一是可以避免因功能模块相互等待导致的数据丢失,二是可以避免软件在执行显示或存储时长时间占用CPU 导致软件无法及时响应用户的界面操作。在网络协议的使用上,为了提高网络的传输效率,本设计在传输层选择UDP 协议传输图像,在应用层设计图像协议来保证图像最终传输的可靠性与完整性,UDP是IP之上的最小服务,在IP数据报的基础上添加的首部最小,仅8个字节长,所携带的有效数据就相对较多,而且UDP 不必建立和释放连接,减少了开销和时延,提高了传输效率[6]。

主线程启动后,根据需要创建图像网络接收、显示及存储3个线程,多个线程并发地运行在同一进程中,共同使用进程中的所有地址空间、全局变量和系统资源,线程间使用事件对象(Event)进行同步。

网络通讯采用异步事件通知的WSAEventSelect模型,允许应用软件在套接字Socket上接收基于事件的网络通知,该模型经由事件对象句柄通知[7]。部分网络初始化的代码如下,首先,初始化一个网络套接字,为网络接收事件创建一个事件对象,然后调用WSAEventSelect函数将网络事件和事件对象关联起来,启动网络数据接收线程。

当有网络数据到达时,异步模型中指定的事件FD_READ 发生,与其关联的事件对象hRead-Event被置位,等待事件对象的函数就会执行,调用WSAEnumNetworkEvents函数获取底层发生的网络事件,网络接收线程接收数据,当接收完一幅完整帧图像时,触发图像存储、显示线程工作。

网络接收的数据为图像的原始数据,没有文件头以解析图像的分辨率及位数,可通过软件界面设置该图像属性,调用StretchBlt或BitBlt函数即可显示图像。因图像显示大部分时候用来监视,所以显示线程优先级较低,可以根据需要采用隔帧显示。

通过笔记本电脑进行观星试验,图6所示为应用软件在设置好图像分辨率、显示方式及存储标志后,实时采集并显示的猎户座附近的星图,实时检测的帧频为10帧/秒。

图6 实时星图采集显示界面Fig.6 Star image acquisition and display

4 结 论

本文以千兆网为传输通道,进行了软、硬件的设计开发,完成星敏感器图像的显示与存储,降低了对地面检测设备的要求,也大大提高了地检设备的便携性。

由于千兆网的传输带宽远高于所需传输的图像数据量,用Socket即可满足使用需求,如果存在数据量较大的情况,可以从以下两方面加以改进:在网络数据接收方面,采用Wincap类库捕获来自网络的图像数据包,有效地减少丢包;在图像数据存储方面,采用双缓存结合写大文件的方式减少对磁盘的寻址及指针操作,从而有效地降低图像数据丢帧的概率。

[1] 郝志航,王家琪.CCD 星跟踪器[J].光学精密工程,1991(6):73-78.Hao Z H,Wang J Q.CCD star tracker[J].Optics and Precision Engineering,1991(6):73-78.(in Chinese)

[2] 张少迪,王延杰,孙宏海.三角剖分以及径向基函数神经网络在星图识别中的应用[J].光学精密工程,2012,20(2):395-402.Zhang S D,Wang Y J,Sun H H.Application of triangulation and RBF neural network to star pattern recognition[J].Optics and Precision Engineering,2012,20(2):395-402.(in Chinese)

[3] ASIX.AX88180Datasheet[EB/OL].http://www.asix.com.tw,2007.

[4] MARVELL.M88E1111Datasheet[EB/OL].http://www.marvell.com,2004.

[5] ASIX.AX88180Software Program Guide[EB/OL].http://www.asix.com.tw,2008.

[6] 谢希仁.计算机网络[M].北京:电子工业出版社,2003.Xie X R.Computer Network[M].Beijing:Publishing House of Electronics Industry,2003.(in Chinese)

[7] 王艳平,张越.Windows网络与通信程序设计[M].北京:人民邮电出版社,2006.Wang Y P,Zhang Y.Design of Network communication program for Windows[M].BeiJing:Posts &Telecommunications Press,2006.(in Chinese)

猜你喜欢
线程解码以太网
《解码万吨站》
基于C#线程实验探究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于国产化环境的线程池模型研究与实现
解码eUCP2.0
线程池调度对服务器性能影响的研究*
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用