- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于FPGA的多路CameraLink数据的WDM光传输
一、系统总体介绍
本系统是基于FPGA的多路CameraLink数据的单光纤传输设计,由于FPGA的开发成本低廉,升级方便所以成为该系统设计的选择。
图像光纤传输系统主要由并转串系统和串转并系统组成,系统组成的框图如图1.1所示。
并转串系统将两台CCD的并行图像数据转换为串行光信号,经光纤传输后发给串转并系统,串转并系统将光信号再恢复成两台CCD的并行图像数据。光纤上传输的图像数据速率在1.4G-2.8G内可调。
图1.1系统组成的框图
二、系统工作原理和组成
基于成本和实现难度的考虑,主要的工作原理是采用电路并串变换+光波分复用(WDM)的方式实现超大容量数据合成,完成数据通过一根光纤传输的功能。也就是先将每一组Camera link 数据进行并串变化,形成一路串行信号,之后通过WDM技术将各路串行信号的各个波长通过光路合成到一根光纤当中,经过传输后(主要是经过光纤),在接收端还原成各个波长,经过处理后恢复出原始信号。
系统基本组成如下图所示。两个可以full配置的CCD摄像头分别通过两条26芯标准电缆将图像数据传给本系统。每个Camera Link数据组X、Y和Z分别通过接口进入系统,并完成并串转换、电光转换、合波等,最后统一到一根光纤。经过光纤传输后,再由接收部分经过分波器、光电转换、串并变换和输出接口后,恢复为同从CCD接收到的原始数据完全相同的格式,再通过四条26芯标准电缆将数据输出给下级处理设备。
图2.1 系统组成框图
三、实现方案
3.1总体思路
图3.1 系统方案框图
系统采用电路串并变换+光波分复用(WDM)的方式实现超大容量数据合成的方式,完成数据通过一根光纤传输。系统的构成如图3.1所示。
系统分为发送部分单元和接收部分单元。发送部分单元和接受部分单元又各分为高速部分模块和低速部分模块两部分。高速部分模块独立完成数据的串化、解串化工作;低速部分模块完成相关数据和控制信号的处理。
发送部分单元高速电路完成六路Camera link 总线(两个CCD full配置的数据量)的串化,把每一路camera link 总线的数据串化后,送入激光器变成光信号,再用波分复用的形式通过一根光纤传送出去。发送部分总体框图如图3.2所示。
图3.2 发送总体框图
接收部分单元高速电路完成六路camera link 总线 (两个 CCD full配置的数据量)的解串工作,首先通过波分解复用系统分出每一路camera link 总线的数据,然后再把每一路串化的camera link 数据解串,恢复成标准的并行信号。接收部分总体框图如图3.3所示。
图3.3 接收总体框图
在系统地评估产品的复杂性和可靠性的需求后,我们决定选用Xilinx Spartan3E系列产品作为FPGA核心模块的首选器件。Xilinx 3E系列产品价格较低,功能全面,是世界上畅销的 FPGA。
3.2发送部分单元
发送部分单元高速电路完成六路Camera link 总线(两个CCD full配置的数据量)的串化,把每一路camera link总线的数据串化后,送入激光器变成光信号,再用波分复用的形式通过一根光纤传送出去,发送单元电路模块整体框图如图3.4所示。
图3.4 发送单元电路模块整体框图
发送单元包含如下几个模块,如图3.5所示:
发送单元数据接收模块:完成正确接收来自Camera link 协议转化器的数据的功能;
发送单元数据处理模块:完成发送数据的核心处理功能;
发送单元数据发送模块:完成正确将合成的数据以和Serdes匹配的形式发送到serdes的功能;
发送单元并串转化器控制模块:完成对并串转化器的OAM功能;
发送单元时钟处理模块:实用内部的时钟部件完成时钟的相应处理,比如分频、倍频、相位调整等;
发送单元时钟处理器控制模块:完成对时钟处理器的OAM的功能;
发送单元OAM模块:和上层控制管理器配合,完成发送系统的OAM工作。
图3.5 发送单元模块划分
下面详细介绍发送部分单元模块具体功能及实现:
发送单元数据接收模块完成数据的正确接收、判决和缓冲的功能。模块内部逻辑框图如图3.6所示。包括输入数据高速采样模块、数据校验判决模块、数据缓冲模块、数据接收模块控制模块、数据接收模块对内接口模块、异常处理模块和时钟分模块。
图3.6 发送单元数据接收模块内部逻辑框图
数据缓冲模块:对数据校验判决模块产生的数据进行缓冲,提高数据的可靠性和系统的安全性,出现溢出或者空闲的时候上报相关信息给数据接收模块控制模块便于OAM。
异常处理模块:提供不可预测的异常处理,比如复位等,以提高系统的可靠性和稳定性。
时钟分模块:提供本模块需要的时钟。异常处理模块不需要时钟;数据接收模块对内接口模块时钟为OAM模块工作时钟;数据接收模块控制模块为异步,不需要时钟;输入数据高速采集模块和数据校验判决模块采用线路时钟的3倍频或者6倍频时钟;数据缓冲模块采用线路时钟的频率。
发送单元数据处理模块完成核心的数据产生的功能。模块内部逻辑框图如图3.7所示。包括插入信号发生器、数据合成模块、发送数据生成模块、数据加扰模块、数据处理模块控制模块、数据处理模块对内接口模块、时钟分模块和异常处理模块。
图3.7 发送单元数据处理模块内部逻辑框图
插入信号发生器:产生定帧信号,2bit定帧信号产生的原理和方式需要和OAM模块合作完成。
数据合成模块:把28位数据信号和相应的2bit定帧信号合并,成为30bit的帧结构。
发送数据生成模块:根据camera link 总线的时钟频率判定是否对数据进行double处理,处理后的数据为真正的发送数据。
数据加扰模块:该模块主要完成加扰过程,保证发送数据中有充足的时钟信息。
控制模块:完成对模块内部各个分模块的监测和管理,并通过数据处理模块对内接口模块和OAM模块进行相关的数据交流,接受OAM模块的管理。
时钟分模块:为内部各个分模块提供时钟。
异常处理模块:提供不可预测的异常处理,比如复位等,以提高系统的可靠性和稳定性。
发送单元数据发送模块
发送单元数据发送模块完成数据缓冲、高速数据串化和高速数据发送的功能。模块内部逻辑框图如图3.8所示。包括数据缓冲模块、高速数据串化模块、高速数据发送模块、数据发送模块控制模块、数据发送模块对内接口模块、异常处理模块、时钟分模块
图3.8 发送单元数据发送模块内部逻辑框图
数据缓冲模块:对来自数据处理模块产生的数据进行缓冲,提高数据的可靠性和系统的安全性;出现溢出或者空闲的时候上报相关信息给数据发送模块控制模块便于OAM。
高速数据串化模块:用时钟分模块提供的高速时钟(为线路时钟速率的3倍或者6倍)对数据进行串化,得到原始数据的3倍或者6倍的串行数据流。
控制模块:接收来自发送单元数据发送模块的相关信息,通过数据发送模块对内接口模块和OAM模块进行交互,完成OAM模块对本模块的管理。
发送单元时钟处理模块
发送单元时钟处理模块完成FPGA内部时钟产生和分析。模块内部逻辑框图如3.9所示。包括本地时钟接收模块、线路时钟接收模块、时钟比较模块、时钟倍频模块、各模块相应时钟处理模块、控制模块和对内接口模块。
图3.9 发送单元时钟处理模块内部逻辑框图
本地时钟接收模块:接收来自本地的时钟,本时钟作为OAM 模块、时钟处理器控制模块、并串/串并转化器控制模块的工作基准时钟。以上三个模块的工作时钟由三个模块内部的时钟分模块处理得到。
线路时钟接收模块:接收来自时钟处理器的时钟,本时钟经处理后作为数据流方向上相关模块的工作时钟。
时钟倍频模块,系统主时钟发生器:产生系统的主工作时钟,产生重要模块的工作时钟。
控制模块:接收时钟比较模块和主时钟模块发生器产生的上报信息,对信息进行整理并对这两个模块进行相关的自动控制;对需要OAM模块管理的信息上报到OAM模块,接受OAM模块的管理。
发送单元并串/串并转化器控制模块
按照串并/并串转化器的管理需求,设计并串/串并转化器的控制管理模块。本模块完成并串、串并转化器的初始化配置,并通过内部接口和OAM模块进行通信和交流,由OAM模块进行串并、并串转化器的设置更改。模块内部逻辑框图如图3.10所示。包括控制器核心处理模块外部数据总线读写时序成型模块、时钟分模块、初始化配置模块、对内接口模块 和异常处理模块。
图3.10 发送单元并串/串并转化器控制模块内部逻辑框图
以下是各个分模块的具体介绍。
控制器核心处理模块:完成对并串、串并转化器的核心控制工作,包括对转化器的关键数据的监控、关键设置的确认等工作,是模块的核心子模块。
初始化配置模块:保存串并、并串转化器初始化数据,此数据为默认正常工作的数据,不可更改,如果需要更改则上电配置完成后由OAM模块发起经由核心控制模块对转化器进行操作。
异常处理模块:监测模块内部的异常信息,上报核心处理模块的同时进行必要的操作,保证模块的稳定和安全。
发送单元时钟处理器控制模块
按照时钟处理器的管理需求,设计时钟处理器的控制管理模块,本模块完成时钟处理器初始化配置,并通过内部接口和OAM模块进行通信和交流,由OAM模块进行时钟处理器的设置更改。模块内部逻辑框图如图3.11所示。包括控制器核心处理模块、IIC数据总线读写时序成型模块、时钟分模块、初始化配置模块、对内接口模块、异常处理模块。
图3.11 发送单元时钟处理器控制模块内部逻辑框图
控制器核心处理模块:完成对时钟处理器的核心控制工作,包括对时钟处理器的关键数据的监控、关键设置的确认等工作,是模块的核心子模块。
IIC数据总线读写时序成型模块:负责对时钟处理器的读写操作,要求模块完全满足IIC数据总线时序的要求,能准确完成读写操作,并增加相应的防误操作功能,确保读写的正确性。
初始化配置模块:保存时钟处理器初始化数据,此数据为默认正常工作的数据,不可更改,如果需要更改则上电配置完成后由OAM模块发起,经由核心控制模块对时钟处理器进行操作。
发送单元OAM模块
本模块通过内部接口和发送接收模块其他系统模块进行通信和交流,对其他模块进行控制和管理;同时,本模块通过OAM模块对外接口模块和外部的上层管理控制平台相连,接受外部上层管理控制平台的指令,完成相应的操作并上报相关的信息,这部分设计还需要进行沟通确认后才能正常开始设计。模块内部逻辑框图如图3.12。包括对外接口数据收发模块、 对外接口数据缓冲模块、数据分析综合模块、对内接口模块、时钟分模块、异常处理模块。
图3.12 发送单元OAM模块内部逻辑框图
以下是各个分模块的具体介绍。
对外接口数据收发模块:完成串口时序的成型,正确完成串口的读写操作,保证读写操作的正确性。。
对外接口数据缓冲模块:缓冲来自串口的信息,在内部处理速度比较慢的情况下仍能保证不丢失指令。
数据分析综合模块:对上层管理平台的命令进行解析,分析命令的动作和需要处理的方式,将复杂命令分解为需要哪几个模块完成什么样的操作,下发给各个实体操作模块。同时对各个实体模块上报的信息进行综合和管理,编制成符合上层管理平台需要的回复后回复给上层管理控制平台。
3.3 接收部分单元
图3.13 接收单元电路模块整体框图
接收部分单元完成六路camera link 总线 (两个 CCD full配置的数据量)的解串工作,先通过波分解复用系统分出每一路camera link 总线的数据,然后再把每一路串化的camera link 数据解串,恢复成标准的并行信号。图3.13是接收单元整体功能框图:
接收单元包含如下几个模块,如图3.14:
接收单元数据接收模块:完成正确接收来自serdes的数据的功能;
接收单元数据处理模块:完成数据的核心处理功能;
接收单元数据发送模块:完成正确将分析出来的数据发送到Camera link协议转化器的功能;
接收单元串并转化器控制模块:完成对串并转化器的OAM功能;
接收单元时钟处理模块:实用内部的时钟部件完成时钟的相应处理,比如分频、倍频、相位调整等;
接收单元时钟处理器控制模块:完成对时钟处理器的OAM的功能;
接收单元OAM模块:和上层控制管理器的配合,完成发送系统的OAM工作。
图3.14 接收单元模块划分
下面详细介绍接收部分单元模块具体功能及实现:
接收单元数据发送模块
接收单元数据发送模块完成数据的缓冲、对齐处理并发送给camera link 协议转化器的功能。模块内部逻辑框图如图3.15。包括数据缓冲模块、数据对齐模块、输出数据模块、数据发送模块控制模块、数据发送模块对内接口模块、异常处理模块和时钟分模块
图3.15接收单元数据发送模块内部逻辑框图
数据缓冲模块:对发送单元数据处理模块产生的数据进行缓冲,提高数据的可靠性和系统的安全性;出现溢出或者空闲的时候上报相关信息给数据发送模块控制模块便于OAM。
数据对齐模块:对数据进行对齐操作,并进行相关的处理,保证发送出去的数据满足camera link 的规范要求。
输出数据模块:进行时序调整,将数据发送到camera link 协议转化器。
控制模块:接收来自接收单元数据发送模块的相关信息,通过数据发送模块对内接口模块和OAM模块进行交互,完成OAM模块对本模块的管理。
对内接口模块:完成数据发送模块控制模块和接收单元OAM模块之间的通信和数据交流。
异常处理模块:提供不可预测的异常处理,比如复位等,以提高系统的可靠性和稳定性。
时钟分模块:提供本模块需要的时钟。
接收单元数据处理模块
接收单元数据处理模块完成核心的数据接收的功能。模块内部逻辑框图如图3.16所示。包括数据解扰模块、数据分析模块、数据插入信号分离模块、插入信号分析器、数据处理模块控制模块、数据处理模块对内接口模块、时钟分模块、异常处理模块。
图3.16接收单元数据处理模块内部逻辑框图
以下是各个分模块的具体介绍。
数据解扰模块:该模块主要完成解扰过程,保证正确提取数据。
数据分析模块:完成30bit的帧结构的定帧操作,并正确确定出28bit数据信号和相应的定帧信号,并判定数据是否经过double处理。工作状态可以由数据处理模块控制模块进行相关的设置和监测。
数据插入信号分离模块:正确分离出数据和插入信号。根据是否对数据进行double处理判定camera link 总线的时钟频率,处理后的数据为真正的接收数据。
插入信号分析器:分析对端插入的数据,提取相关的信息,并上报到控制模块。
接收单元数据接收模块
接收模块数据接收模块完成串行数据高速接收、高速串化数据的并化处理、数据缓冲的功能。模块内部逻辑框图如图3.17所示。包括高速数据接收模块、高速数据并化模块、数据缓冲模块、数据接收模块控制模块、数据接收模块对内接口模块、异常处理模块和时钟分模块。
图3.17接收单元数据接收模块内部逻辑框图
以下是各个分模块的具体介绍。
高速数据接收模块:以和Serdes 相匹配的形式接收来自serdes的高速数据。
高速数据并化模块:完成高速数据的串并转化功能。
数据缓冲模块:对接收数据进行缓冲,提高数据的可靠性和系统的安全性。出现溢出或者空闲的时候上报相关信息给数据接收模块控制模块便于OAM。
接收单元时钟处理模块
接收单元时钟处理模块和发送单元采用相同的方案。可参见发送单元。
接收单元并串/串并转化器控制模块
接收单元并串/串并转化器控制模块和发送单元采用相同的方案。可参见发送单元。
接收单元时钟处理器控制模块
接收单元时钟处理器控制模块和发送单元采用相同的方案。可参见发送单元。
接收单元OAM模块
接收单元OAM模块和发送单元采用相同的方案。可参见发送单元。
3.4 发送、接收单元并串/串并转化器模块
根据系统的设计需求,可以用一款通用串行器及解串器组成高速并串、串并模块。串行/解串器芯片组数据串行速度最高速度应高于Camera link的最高的2.38Gbps速率,以保证CCD在最高速率下可以使用;串行/解串器芯片组数据串行速度下限应低于Camera link的最低的560Mbps速率,以保证CCD在最低速率下可以使用。并且解串器不需要本地的时钟,完全在串行码流中提取时钟。通常芯片在满足最高速度要求的情况下,在满足最低速率需求方面存在问题,无法满足camera link 的最低560Mbps的要求,则需要对速率较低的camera link 数据进行倍速调整,以达到串化/解串芯片组能够支持的速率,这也是该系统设计中设计难点之一。
3.5 OAM接口模块
OAM接口模块采用422/232兼容的接口模块,设计相对简单。OAM模块具体的功能设计已经在之前核心模块中有详细描述,这里不赘述。
四、发送板及接收板实物图
图4.1 发送板实物图
图4.2 接收板实物图