基于FPGA的以太网光谱数据传输系统
2011-03-26申晓燕胡炳樑
申晓燕,胡炳樑
(1.中国科学院西安光学精密机械研究所光谱成像技术实验室,陕西西安710119;2.中国科学院研究生院,北京100049)
多光谱成像仪获得的图片信息既包括空间信息又包括不同谱段的光谱信息,它能够同时反映物体表面的形状特征和物质组成。本文中提到的自适应多光谱成像仪根据所采用的Hadamard变换阶数的不同,对同一目标物成像产生的数据量不同,阶数越高,光谱信息越多,数据量也越大。由于板上数据存储空间有限且需要连续不断地进行拍摄记录,所以需要高速数据传输系统将光谱数据传出[1]。通常采用的高速数据传输系统有USB、Camera link、以太网和IEEE 1394等[2-5],USB2.0的最大传输速率480 Mb/s,几乎每台计算机上都配置了USB接口,但其最大传输距离只有5 m,如果超过这个距离则数据传输不稳定。在66 MHz的工作频率上Camera link的最大传输速率为680 Mb/s,其传输距离也只有10 m,而且由于其接口本身的机械尺寸很大,其在微嵌入式系统中并不常用。IEEE1394a的最大传输速率为400 Mb/s,但是其应用非常的少,几乎没有PC机集成了IEEE 1394接口;且它使用时占用大量资源,需要高速的CPU;节点之间的传输距离也只有4.5 m,虽然能够使用中继器,其最大传输距离也只有72 m。以太网已经能够实现千兆,甚至万兆的传输速率,网络成熟,传输距离可以达到100 m,且能够通过交换机达到更远的距离[6];接口是普通的RJ45接口,价格低廉,即插即用,所以本文采用百兆以太网。
1 自适应多光谱成像仪系统
此自适应多光谱成像仪采用Hadamard变换,它是一种n·n阶矩阵方程[7],是由0和1作为阵列元素构造的n阶循环编码模板,用来代替常规光谱仪的入射狭缝或出射狭缝。将反射光栅出来的光谱信息进行循环编码,得到能量增强的混合光谱图像,在地检设备接收到以后,将混合光谱信息进行解码,得到n幅对应不同谱段的光谱图,这样就得到了既有一维光谱信息又有二维空间信息的光谱图像。本系统中Hadamard编码模板是用数字微镜器件(Digital Micro-mirror Device,DMD)实现的,它通过数字电压信号控制微镜片偏转实现光路的选通和关闭,以此实现对光信号的编码。本系统选用的是德州仪器的专利产品编码矩阵对应的0,1编码模板下载到DMD器件,通过DMD控制电路控制DMD的镜片偏转,来实现哈达码编码。
本系统中自适应多光谱成像仪由两大部分组成:光谱仪主体和信号处理器。光谱仪主体包括:前置镜、准直镜、反射光栅、会聚镜、数字微镜阵列、成像电路;信号处理器包括:数据处理和分发系统、电源系统等。系统组成示意图如图1所示。
图1 自适应多光谱成像仪完整系统框图Fig.1 Integrated system block diagram of adaptive spectral imager
在此自适应多光谱成像仪的光学系统中,主要是DMD代替常规狭缝实现了Hadamard编码,将目标物成像在线阵CMOS探测器上,经过数据采集系统将目标物成像信息经LVDS传送到信号处理电路。经过压缩编码等处理后将图像通过以太网数据传输系统传送到PC机上,进行观察和评估。
2 以太网传输系统
本系统实现的是100 Mb/s的以太网,图2是以太网数据传输系统总体实现结构图,它包括总线接口,存储模块,收发控制模块和MII接口[8]。它通过PLB总线与上层MicroBlaze Processor连接,通过MII接口与物理层芯片DP83865连接,实现以太网功能。
图2 总体结构设计图Fig.2 Design diagram of overall structure of Ethernet
总线接口:连接层和主机的接口,本文层与Processor的连接使用的是PLB4.6总线接口,实现百兆的以太网。在EDK10.1中,MicroBlaze软核的OPB总线被PLB总线代替,plbv46_slave_single也可以被优化成节省FPGA资源,减小延时的点到点连接的设计。
发送控制模块:控制以太帧的封装,自动添加前导码,定界符,不满足最小包长要求的时候自动填充,完成CRC校验等发送功能。
接收控制模块:控制以太帧的接收,自动去除前导码,定界符,校验CRC验证码看是否在传输过程中发生错误。
双向memory:发送和接收数据的存储介质,状态信息寄存器。将要发送或者接收无误的信息存储在双向memory中,发送数据经过发送控制模块添加前导码、定界符、自动填充信息、CRC校验,送往TX Bus FIFO,以nibble格式经MII口传送给PHY层。接收数据是经过接收控制模块验证的正确的接收信息,它将被送往MAC上层进行处理。另外接收和发送的状态信息也存储在此memory中,有固定的存储位置,通过改写这些状态来控制数据的收发。
Pong memory:是接收和发送的第2片缓存,用来和上面的双向memory交替使用,以提高传输的速率。其功能和双向memory基本一致,除了个别的状态信息由双向memory单独控制。
MII接口:媒体无关接口,连接MAC层和PHY层,它能够屏蔽PHY层的差异,实现MAC与不同的PHY层相连接。
2.1 发送过程
以太网发送控制模块包括发送状态机模块,计数器模块,CRC校验模块如图3所示。其中计数器模块包括帧长计数器、重发计数器、IPG计数器和延迟计数器。发送状态机通过在不同的状态之间切换控制整个发送过程的完成,如图4是发送状态机的状态图。CRC校验模块通过计算产生32 bit的校验码,完成要发送数据的校验。自动生成前导码和定界符模块是在发送信号有效的时候产生前导码和定界符自动地嵌入到要发送的数据的前面,达到同步和指示有效信号来临的作用。帧长计数器对发送的数据帧进行长度计算,当不满46 Bytes时转到填充状态对数据帧进行填充以达到最小帧的要求。IPG计数器是帧间隔计数器,在每一帧传输完成之后都要等待一个帧间隔的时间才能进行下一帧的传输,IPG的设计是96 bits信号传输所使用的时间,这里100 Mb/s的以太网需等待0.96 μs[9]。重发计数器是冲突发生次数的计数,冲突发生次数越多等待的时间越长,这个等待时间是由二进制指数退避算法产生的,最大的重发次数是16次,当超过这个值之后,此帧将被丢弃不再重发。延迟计数器是冲突发生后二进制指数退避算法根据重发次数产生的重发等待时间[10]。
2.2 接收过程
图3 发送控制模块Fig.3 Send control module
图4 发送状态机Fig.4 Send state machine
以太网接收控制模块包括接收状态机模块,CRC校验模块,地址检测模块以及自动去除前导码、定界符和pad模块,如图5所示。CRC校验模块对接收的数据进行32 bits的CRC校验,与接收的CRC校验码进行对比,一致则证明传输过程中没有发生错误,不一致则说明有错误发生,将错误信息送往上层,由上层决定发送重发信号还是丢弃。自动去除前导码、定界符、pad模块在接收过程中取出前导码、定界符、pad信息,将剩余的有用数据存储在接收缓存中。接收状态机是接收控制模块的重点部分,它控制完成整个接收过程,图6是接收状态机图,它通过在不同的状态之间进行转换来完成接收。地址检测模块检测接收到的目的地址,若为本机MAC地址或者是广播地址则继续接收数据,若不是则放弃后续数据的接收。接收帧长计数器对接收的数据帧长度进行计数,如果接收到的数据帧的长度没有超过最小帧的要求,认为是帧的碎片,丢弃。如果超过最大帧的限制,则在传输过程中发生错误,也丢弃。
图5 接收控制模块Fig.5 Receive control module
图6 接收状态机Fig.6 Receive state machine
3 实验结果与分析
图7是chipscope捕获的波形图,首先接收到的是前导码7 Bytes的“10101010”然后是1 Byte的“10101011”然后是目的地址{0x00,0x1E,0xC9,0x5C,0x04,0x71},地址传输的时候是先传Byte的低4位后传Byte的高4位,所以我们看到的是“1110”和“0001”即“1E”。传输结果和发送数据一致,说明从MAC到PHY传输正确。
图7 Chipscope捕捉波形图Fig.7 Waveform captured by chipscope
计算机上抓包工具Etherpeek捕获的以太帧,最下面的数据栏中接收到的数据和程序中发送的数据包完全一致。
实验发现计算机上抓获的以太网数据帧和发送的数据包一致,此以太网系统可行且可靠。光谱图像大小是610×288,每个点是8 bits,每秒传输25帧,需要总的带宽约为34 M,开发的百兆以太网完全满足实验要求。将以太网系统应用在多光谱成像仪上能够满足要求。将以太网系统编译完成后显示的FPGA内部资源利用率仅为20%的slices,3%的DSP48As,17%的外部IOBs。说明基于FPGA开发的以太网占用少量的片上资源就能够实现传输系统,可以和其他系统一起利用FPGA的片内资源,使用一块FPGA控制多个功能系统,使整体系统能够占用更少的空间,简化设计。图8是工作图片。
图8 工作图片Fig.8 Working picture
4 结论
通过对实验结果的分析,说明整个系统的可行性和以太网传输的正确性。本文实现的多光谱成像仪,采用DMD实现7阶哈达玛编码,在进行目标物探测的时候因为光谱范围的限制存在一定的误差。由于采用的是7阶哈达玛编码,所以编码阶数较低,光谱分辨率低,对细微的光谱差异分辨不出来。后期我们采用了15阶哈达玛编码,成像较之7阶编码有明显的优势。以太网技术发展十分成熟,主要的发展方向是在嵌入式中的应用,其简单的原理,高速的传输速率,传输距离远,分布式采集数据集中处理的优势使得它能够很好地满足很多地检设备的要求。后期的发展方向主要是更高速度的以太网技术在嵌入式系统中的实现,可以配合高光谱成像仪和超光谱成像仪的海量数据的传输。
[1]马冬梅,高伟,王欣峰.基于PCI总线的成像光谱数据传输系统的设计[J].微计算机信息,2005,21(8-2):1.
MA Dong-mei,GAO Wei,WANG Xin-feng.The development of interference imaging spectrum data transmission card based on PCI bus[J].MI,2005,21(8-2):1.
[2]蒋薇薇,黄志文.IEEE1394火线技术与USB串行接口的比较[J].微机发展,2003,13(3):1-2.
JIANG Wei-wei,HUANG Zhi-wen.The comparison of IEEE 1394 and USB[J].Microcomputer Development,2003,13(3):1-2.
[3]胡云.对IEEE1394总线技术的研究[J].科学技术与工程,2007,7(3):2-3.
HU Yun.Research on IEEE 1394 bus technique[J].Science Technology and Engineering,2007,7(3):2-3.
[4]陈启美,王刚,丁传锁,等.USB技术概况[J].电力自动化设备,
CHEN Qi-mei,WANG Gang,DING Chuan-suo,et al.An introduction to USB technology[J].Electric Power Automation Equipment,2001,21(2):1.
[5]赵贵海.基于DSP的嵌入式系统中千兆数据传输的关键技术研究[D].天津:天津理工大学研究生部,2008.
[6]李倩,邢维波,刘书明,等.实时信号处理系统千兆以太网接口设计[J].航空兵器,2009(6):2.
LI Qian,XING Wei-bo,LIU Shu-ming,et al.Design of gigabit ethernet interface for real-time signal processing system[J].Aero Weaponry,2009(6):2.
[7]Goldstein N,Cvijin P V.DMD-based adaptive spectral imagers for hyperspectral imagery and direct detection of spectral signatures[J].Proc.of SPIE,2009(7210):1.
[8]赵智勇,邹文胜.基于FPGA的以太网接口数据采集器设计与实现[J].舰船电子工程,2009,29(6):2.
ZHAO Zhi-yong,ZOU Wen-sheng.Design and implementation of data acquisition by ethernet based on FPGA[J].Ship Electronic Engineering,2009,29(6):2.
[9]李文芝,刘天华.基于FPGA的10/100/1 000 M三态以太网卡设计[J].沈阳师范大学学报:自然科学版,2010,28(1):1.
LI Wen-zhi,LIU Tian-hua.Design of 10/100/1 000 MTri-mode Ethernet NIC based on FPGA[J].Journal of Shenyang Normal University:National Science,2010,28(1):1.
[10]张博,张琨.基于FPGA的以太网MAC控制器的设计[J].科技情报开发与经济,2009,19(27):1-2.
ZHANG Bo,ZHANG Kun.The design of Ethernet MAC controller based on FPGA[J].SCI-TECH Information Development&Economy,2009,19(27):1-2.