基于光缆的深海摄像系统的设计与实现*
2012-07-03刘敬彪琚汝强盛庆华
刘敬彪,琚汝强,盛庆华
(杭州电子科技大学 电子信息学院,浙江 杭州310018)
随着陆地资源日益匮乏,许多国家加快了对海洋资源的勘探和开发。我国虽是一个海洋大国,但在这方面起步较晚,相关经验及配套技术都比较缺乏。目前,国内大部分的水下摄像系统都是基于铠装同轴电缆,受限于电缆的带宽和传输特性,当传输2路及以上视频图像时,所传输的视频信号必须经过压缩编码,而复原后的视频质量严重下降,无法满足视频监控的要求。在国外,发达国家均采用铠装光缆(光纤具有纤频带宽、传输容量大、距离远等优点)作为通信介质,而电缆一般情况下仅作为动力传输缆。
本文设计和实现的基于光缆的摄像系统,实现了4路视频信号和2路RS232数据的传输,很好地满足了“海洋六号”船在海洋资源勘探和开发过程中对可视化及现场数据的需求。
1 系统工作原理
基于光缆的深海摄像系统的整体结构框图如图1所示。系统分为水上的甲板通信机和水下耐压仓两个部分,两者通过铠装光缆相连,并由甲板电源供电。铠装光缆内有3根动力缆用于传输电源动力,1根光缆(含有4根光纤)用于传输视频数据、传感器上行数据及下行命令信号。视频及数据传输系统由甲板光纤通信模块和水下光纤通信模块组成,分别是视频图像的接收端和发送端。由于海洋环境的特殊性,本系统还带有水下照明灯和高度计等设备。
甲板工控机的上位机控制界面发出的设备控制命令,通过串口传给甲板光纤通信模块,然后经过光缆传至水下光纤通信模块,最后到达设备控制板。命令经解析后,控制相应的继电器实现水下设备的打开与关闭。当摄像机和高度计被打开后,摄像机的视频数据会直接传到水下光纤通信模块,而高度计和供电电压值等数据在设备控制板内被封装成数据帧后,再传给水下光纤通信模块。视频和被封装的数据以时分复用的方式,通过光缆传到工控机,并显示在上位机控制界面上。当开启视频监控功能时,工控机就开始存储视频;停止监控后,就可以回放所存储的视频。
2 系统硬件
系统的硬件设计主要包括两个部分:甲板光纤通信模块、水下光纤通信模块和水下控制设备系统。水下摄像机、照明灯和高度计等设备都是性能较好的产品。
2.1 甲板光纤通信模块和水下光纤通信模块
由甲板光纤通信模块和水下光纤通信模块组成的视频及数据传输系统不同于陆地上经常使用的光端机。陆地上使用的光端机一般只传输视频信号和控制命令,而本系统中,水下光纤通信模块除了传输视频信号,还要传输2路传感器信号,以获取勘探现场的数据。
甲板光纤通信模块和水下光纤通信模块的结构框图如图2所示。所选用的可编程器件是Xilinx公司型号为XC95288XL的CPLD芯片。CPLD包含有:288个宏单元,6 400个逻辑门,PQFP封装,168个可用引脚,6 ns的pinto-pin逻辑延迟,最高工作频率可达208 MHz,是一款3.3 V电压供电、高性能、低功耗、用于通信和运算的CPLD[1]。
水下光纤通信模块有4路视频采集电路,使用的视频采集 ADC为 AD9280,它是一款 8 bit、CMOS模数转换器,工作频率最高可达 32 MHz,工作电压范围在 2.7 V~5.5 V之间,完全可以满足本系统的要求。此外,AD9280性价比高。甲板光纤通信模块使用的视频恢复DAC为DAC908E,它是一款低功耗电流输出型8 bit并行高速数模转换器,最大转换速率高达165 MS/s,单端供电电压为3 V或5 V。非常适用于复合视频等方面。
并串和串并转换芯片的数据远距离传输作用非常重要。并串转换芯片将从CPLD得到的数据转换成高速串行的数据流,以满足传输过程对数据速率的要求。而串并转换芯片则是用来将串行的数据流还原成原来的并行数据,然后交给CPLD处理。本系统中使用的串并和并串转换芯片分别为SN65LV1023A和SN65LV1224B,它们是10 bit的串行解串器,工作频率为 10 MHz~66 MHz。SN65LV1224B芯片可以还原出嵌在高速串行数据流中的时钟,该时钟用于两模块之间的数据同步。此外,SN65LV1224B还有一个同步提示管脚,当模块两边的时钟同步后,它会输出低电平[2]。
光电转换模块把电信号转换成光信号转换后,视频和数据才能通过光缆进行传输。根据带宽及传输距离的要求,选用了奥雷光电公司的光电转换模块ATRB2023-ST和ATR-B2024-ST,是非平衡光电转换器件,工作电压为5 V,视频信号带宽为1.25 Gb/s,控制命令速率为84 Mb/s,传输距离可达20 km。
晶振的频率为54 MHz,经过CPLD 4分频后,作为ADC和DAC的工作频率。
2.2 水下设备控制系统
水下设备控制系统主要完成控制设备的打开与关闭、采集供电电压值等。本系统选用的MCU芯片是C8051F020,它具有丰富的片内资源,如64个数字I/O引脚,内嵌 12 bit、100 KS/s的 8通道 ADC,2个 12 bit的DAC,片内看门狗定时器等。因此,C8051F020能够满足控制系统的需要,并且为以后的扩展留有很大的空间。
在本系统中,C8051F020通过 I/O控制继电器,进而控制设备的打开与关闭;利用内嵌的ADC采集供电电压。
3 系统软件设计
整个系统的软件设计包括视频及数据传输系统、水下设备控制系统和上位机控制界面的程序设计三个部分。
3.1 视频及数据传输系统程序设计[3-4]
该系统主要完成视频和数据的采集、处理及传输等。基于Verilog HDL,采用自上而下的设计方法对可编程器件CPLD进行编程。程序包括1个顶层文件和3个模块,这3个模块分别为:8b/10b编解码模块、曼彻斯特编解码模块和串口接收和发送数据模块。
(1)8b/10b编解码模块。由于选用的光电转换模块是非平衡的,所以发送给转换模块的数据流必须在CPLD中经过8b/10b平衡编码后,才能保证高速、长距离传输的稳定性。该模块将输入的8 bit数据按照一定的规则编码成10 bit,然后传给光电转换模块。8b/10b编解码模块用来处理视频和传感器数据。
(2)曼彻斯特编解码模块。控制命令的传输通道速率可达84 Mb/s。同样,为了保证控制命令高速、长距离传输的稳定性,需要对其进行平衡编码。曼彻斯特编码模块将“0”编为“01”,“1”编为“10”,消除直流分量,从而使控制命令具有良好的抗干扰性能。
(3)串口接收和发送数据模块。水下光纤通信模块中的串口数据接收模块接收从C8051F020传来的数据,然后采用分时复用的方法,与视频数据一起发送到甲板上的光纤通信模块;甲板上的光纤通信模块得到数据后,分别送入相应视频和数据端口。
顶层文件主要完成数据分时复用的控制。当甲板光纤通信模块和水下光纤通信模块同步后,水下光纤通信模块一直发送视频数据;当串口接收数据模块收到传感器数据时,在适当的时候发送传感器数据。程序设计的过程中特别要注意以下两个方面:(1)控制部分应该用有限状态机来编写;(2)串并转换芯片SN65LV1224B的工作时钟由本模块的晶振提供,甲板光纤通信模块则使用由SN65LV1224B恢复出来的时钟作为工作时钟,以保证两模块的同步。
3.2 水下设备控制系统程序设计
水下设备控制系统接收水下光纤通信模块传来的控制命令,通过解析控制命令来控制相应设备的打开与关闭。此外,还要采集供电电压值、读取传感器数据,并将得到的数据打包成数据帧,传给水下光纤通信模块。
3.3 上位机控制界面程序设计[5]
上位机控制界面采用C#开发,开发环境是Visual Studio 2008,整体上可分为5个区域:(1)菜单栏:包括系统配置和其他辅助控制;(2)监视参数区:显示系统运行过程中必要的监视参数;(3)双路视频显示区;(4)水下设备控制区:在系统运行时,对视频及其他设备进行控制;(5)状态栏:显示最新接收的数据帧、系统时间及使用校准文件的状态。
本文设计并实现了一套基于光缆的深海摄像系统,系统已在实验室及南海的海试中获得了成功,在整个海试及后续深海作业的过程中,运行稳定。相对于国外的同类产品,本系统成本较低,性价比高,具有光缆的科考船都可配备本系统。
[1]Xilinx Inc.XC95288XL high performance CPLD[EB/OL].(2007-04-03)[2011-09-15].http://www.xilinx.com/support/documentation/xc9500xl.htm.
[2]TI Inc.10 MHz To 66 MHz,10:1 LVDS serializer/deserializer.[EB/OL].(2009-12-07)[2011-09-15].http://www.ti.com/product/sn65lv1023a.
[3]陈曦,邱志成,张鹏,等.基于 Verilog HDL的通信系统设计[M].北京:中国水利水电出版社,2009.
[4]刘福奇,刘波.Verilog HDL应用程序设计实例精讲[M].北京:电子工业出版社,2009.
[5]NAGEL C,EVJEN B,GLYNN J著.C#高级编程(第 6版)[M].李铭译.北京:清华大学出版社,2008.