CameraLink接口的高速电子存储系统设计*
2012-11-23
(1.海军驻郑州地区军事代表室 郑州 450047)(2.中国电子科技集团公司第二十七研究所 郑州 450047)
1 引言
随着图像传感器制造工艺的不断提高,数字摄相机的分辨率和帧频也不断提高、这使得数字摄相机输出的数据率也随之提高,数字摄相机和图像采集设备之间的通信速率变得非常重要。
在某项目中,前端数字相机分辨率为1024×1024 像素,帧频高达120帧/秒,8/10/12 位Base CameraLink 输出,要求将数字相机的图像采集下来并进行存储,并具备网络读取数据的接口。由此,可以计算出如果摄相机输出为12位的话,其数据将达到1.44Gbps,对存储设备的数据通信速率、存储容量和管理都提出了较高的要求;针对上述要求,笔者设计了基于Nand Flash电子存储芯片的大容量电子存储系统,该存储系统存储容量达到3.84TB,具有与数字摄像机相连的Base CameraLink通讯接口,同时,具有摄像机视频数据的管理功能,并具有网络接口,以FTP 服务器的方式,提供视频数据文件的下载。
2 存储系统总体设计构思
如图1所示,高速电子存储系统由Base CameraLink高速接口、控制单元、存储阵列单元组成。
高速电子存储系统的Base CameraLink高速接口提供与数字摄像机的高速数据通道,同时完成高速数据的降速分配;读取/控制单元是高速电子存储系统的管理核心,完成存储数据的读取/合成、存储阵列控制以及FTP 网络服务功能;存储阵列单元是由10块存储板组成,单个存储板设计容量为384GB,高速电子存储系统总存储容量达到10×384GB =3.84TB的大小。
图1 高速电子存储系统的组成
3 Base CameraLink高速接口[8]
CameraLink协议是一个工业高速串口数据和连接协议,它是各公司达成的一种协议,由美国自动化工业协会AIA 制定、修改和发布,其目的是简化图像采集接口,方便高速图像传感器和采集系统的链接。
CameraLink接口有三种配置方式,即基本(Base)配置、中档(Medium)配置、全速(Full)配置;主要是解决数据传输量的问题,这为不同速度的相机提供了合适的配置和连接方式;其中,基本(Base)配置的有效数据带宽(时钟75MHz时),可达1.8Gbps,完全可以满足系统使用数字摄相机最大1.44Gbps数据量的需要,由此,高速电子存储系统与摄相机连接的数据接口采用Base CameraLink的形式。
CameraLink接口是基于LVDS(Low Voltage Differential Signaling,低电压差分信号)标准,在设计高速接口时,需要进行LVDS 电平和LVTTL 电平信号的转换。系统中,电平信号的转换采用 NI 公司的DS90CR288A、DS90LV031A 和DS90LV019来实现;其中,DS90CR288A芯片完成视频信号的转换,该芯片接收4 对差分信号和1对差分时钟信号,转换后输出28位数据和1路时钟信号,直接输出到FPGA 中;DS90LV031A芯片完成FPGA 输出到摄相机的CC1~CC4 共4 组控制信号的电平转换;DS90LV019芯片完成摄像机的异步串行通讯接口的电平转换。
高速电子存储阵列中Base CameraLink 高速接口的FPGA 芯片完成控制采集时序、数据1∶10减速/分配的功能,把1.44Gbps的高速数据按照图像帧顺序依次进行抽取,平均分为10组后,分别写入到10片双口RAM 中,由存储单元的0~9号存储板读取后进行存储。系统中,FPGA芯片的选取综合考虑了速度、I/O 管脚数量、片内数据存储容量等综合因素,采用了ALTERA 公司的CycloneⅡ系列芯片EP2C35;该芯片拥有35000个逻辑单元、672个引脚、475个用户自定义I/O 接口、35个嵌入式乘法器和4个锁相环,是一款集成度极高和功能强大的FPGA 芯片[2]。高达1.44Gbps的高速数据经FPGA 减速/分组后,速率变为144Mbps,通过FPGA 写入到对应的双口RAM 中;双口RAM 是实现在系统间交换数据的一种简便有效的方法,并且可以避免在大数据量下可能造成数据处理时间延长、实时性差、甚至出现数据拥塞的现象;双口RAM 选用IDT 公司的64K×16b双口芯片IDT70V28,在这里,选用较大容量的双口RAM 芯片,可以有效简化FPGA 和存储单元DSP芯片之间的写入/读取时序的设计复杂度。高速电子存储阵列的Base CameraLink 高速接口的设计原理如图2所示。
图2 高速接口设计原理图
4 存储阵列单元
高速电子存储系统的存储阵列单元的设计思路是以Nand Flash芯片作为存储介质,通过高性能DSP和大规模FPGA 完成Nand Flash芯片的读写时序的控制,从而构成单个的存储板,再由10块相同的存储板共同组成存储阵列单元。单块存储板的结构框图如图3所示。
图3 存储板结构框图
存储阵列单元的Nand Flash芯片是其核心,每块存储板上共有96片Nand Flash存储芯片分组互联而成构成,Nand Flash 芯 片 采 用Samsung 公 司 的K9WBG08UIM 芯片,容量为4GB,数据宽度为8位,每页大小为4KB,可以实现单块存储板384GB的存储容量[3]。
图4 K9WBG08UIM 芯片页写入时序
单块存储板上的96片Nand Flash芯片每4片分为一组,共分为24 组,同组的4 片芯片并联成32 为的数据宽度,这样做一是可以有效提高Nand Flash 芯片写入的带宽,解决Nand Flash芯片写入/读取速度较慢的问题,二是可以与DSP控制芯片的32 位数据宽度相匹配,提高数据的读写效率。
由图4可以看出,Nand Flash芯片的tWC最小为25ns,tADL最小为75ns,tWB为100ns,tPROG典型时间为200μs,芯片写入按照页进行操作,典型的持续写入速率为5MB/s,4片并行写入的速率为20MB/s(160Mbit/s),满足144Mbps数据源的速率要求。
存储板上的Nand Flash芯片的访问控制接口采用了两片ALTERA 公司的CycloneⅡ系列芯片EP2C35 来实现,Nand Flash芯片采用4个一组,共用一套EP2C35的I/O 引脚驱动,以保证足够的驱动能力,避免因I/O 引脚上负载过大而造成无法工作;在必要时,两片FPGA 芯片还可以采用乒乓结构操作,同时进行数据的写入,把存储板设计的写入带宽提高一倍,使整个存储系统的数据写入带宽达到3.2Gbps。
存储板的数据收发通过DSP 来实现,这里选用的是ADI公司的ADSP-BF533处理器芯片,ADSP-BF533是较为常用的一款嵌入式多媒体处理器,拥有运算速度高达600MHz的DSP内核,采用ADI与Intel共同开发的MSA体系结构两个16位乘法器和两个40位ALU,专门的视频处理硬件单元和视频处理指令,丰富的DMA 通道,内嵌大容量高速SDRAM,支持动态电源管理[4]。
存储板在执行存储操作时,BF533 将从双口RAM 中的数据读取出来,并将数据缓存到SDRAM 中,再通过FPGA 按照Nand Flash芯片的写入时序,完成存储数据的写入存储。在执行读取操作时,BF533则通过FPGA 向Nand Flash芯片发送读操作指令,以读取指定区域的数据并缓存到SDRAM 存储器中,然后通过输入/输出总线(PPI)发送到存储/读取控制单元。
5 读取/控制单元
高速电子存储系统的存储阵列的读取/控制单元完成阵列内存储数据的读取/合成、存储阵列内数据的文件管理功能以及FTP网络服务功能。设计时考虑到芯片选用的系列性,读取/控制单元采用ADSP-BF537处理器为单元的核心,基于Blackfin处理器的BF537处理器具有接口丰富(集成有100MB网络接口),性能优良等特点,并具有强大的多媒体数据处理能力[5]。ADI公司DSP 处理器的集成开发环境Visual DSP++中嵌入了实时操作系统内核VDK,适合于多任务多线程的嵌入式操作;此外,还提供了一个用于Blackfin系列嵌入式处理器的LwIP协议栈端口,利用它可以快速建立一个嵌入式网络连接应用。
图5给出了BF537通过网络芯片LAN8187实现网络通信和利用处理器自身的PPI接口和串行通信接口实现与存储板之间的通信和管理。
图5 BF537与存储板的通信接口图
ADI公司的Blackfin系列DSP处理之间的通信,最简单的方式是采用DSP芯片自带的PPI接口完成;PPI接口的全称为 并行外围接 口(Parallel peripheral Inter-face),是数据高速传输专用的半双工双向通道,该接口包括16位的数据传输线、3个同步信号和一个时钟信号;速度可以达到66MB/s。
通过PPI接口,高速电子存储系统实现了读取/控制单元对存储板存储数据的读取,这里设计中需要面对的难点是需要实现读取/控制单元1片BF537处理器与存储板的10片BF533的PPI通信,设计中采用分时复用的方法,访问控制接口由1 片ALTERA 公司的CycloneⅡ系列芯片EP2C35来实现,为了保证分时复用时的数据传输的稳定性,PPI通讯接口设置成单工模式,其时钟信号和同步信号由BF537来统一设定。读取控制信息通过SPORTs串口通信口来实现,同样是通过EP2C35 完成BF537 的SPORTs串口分时复用控制。BF537芯片内部集成了一个以太网的MAC 接口,通过外部扩展以太网物理层接口LAN8187后,可以实现高速电子存储系统的100/10Mb网络接口。
6 数据管理
高速电子存储系统的存储深度达3.84TB,而前端摄像机的图像数据是以数据形式存储的,因此,构建一个适合管理Nand Flash存储器的文件系统。由于Nand Flash存储器的擦除次数是有限的(一般是1百万次),如采用普通的FAT 文件系统,则会出现存储FAT 系统FAT 表和FRT表的区域过度擦写而引起失效导致文件系统崩溃的情况;由此,需要通过改进FAT 表和FRT 表的存储方式,延长存储器的使用寿命,提高系统存储的稳定性。
改进设计的FAT 文件系统把FAT 表和FRT 表作为可移动的数据放在某一个区块内,在Flash的系统信息区中记录着FAT 表的首地址,并用指针指向它。每次FAT表存储的位置发生变化时,只需将新位置的首地址添加到系统信息区的空白区域中,再调整指针的指向。这样避免了FAT 表和FRT 表始终在一个区块中反复擦写,导致该区块被过度使用,缩短存储器的寿命。
高速电子存储系统改进的FAT 文件系统包括文件创建、打开等操作函数,用于满足基本的文件管理操作,可以完成如删除、拷贝、剪切、下载、阵列格式化等管理功能,这些操作功能可以通过网络接口实现。
7 FTP服务
高速电子存储系统可以作为一个FTP的服务器,把所存储的摄像机视频数据以文件的形式提供给需要的用户下载使用。FTP(File Transfer Protocol)作为internet上最早提供的服务之一,至今仍然被广泛使用,FTP是实现文件传输服务的最主要的规范。
FTP协议则采用两个TCP连接来实现文件的传输,这两个TCP连接一个用来完成文件传输的控制命令的传输,另外一个用来实现文件的传输;然而,有些嵌入式系统的开发环境并不支持FTP协议(如本文所使用的ADSP的集成开发环境Visual DSP++),在此情况下,只能按照FTP协议的约定,利用已有的LwIP 堆栈中的一些基础函数来构建一个适用于BF537嵌入式处理器的FTP服务器。
设计FTP服务器时,可以根据不同的需求,选择不同的FTP服务器模式。因为FTP服务器模式决定着设计结构,而不同的设计结构又很大程度地影响着FTP服务器的性能。FTP服务器的模式主要有循环服务器和并发服务器。
循环服务器只适应于最简单的应用协议,采用客户轮流等待的工作方式;高速电子存储系统考虑到嵌入式处理器硬件芯片本身的特点,即在文件下载时,BF537与存储板的通信只能通过同一套PPI总线进行数据传输,因此,设计的FTP服务器的方式是一次只接受一个用户的下载请求;采用循环服务器模式。
8 结语
CameraLink接口的高速电子存储系统的设计,成功解决了普通存储阵列使用时摄像机接口的设计问题,具有高速、体积小、重量轻、抗冲击、振动性能好的特点,可以实现较为恶劣环境下的应用,如果能提高数据管理和网络通讯能力,将具有良好的使用前景。
[1]陈锋.Blackfin系列DSP原理与系统设计[M].北京:电子工业出版社,2004.
[2]Cyclone Device Handbook[EB].Altera Corporation,2003Cyclone系列芯片手册[EB].Altera公司,2003.
[3]K9XXG08XXM Flash Memory[EB].SUMSUNG ELECTRONICS,2007.3K9XXG08XXM 系列Flash存储器[EB].三星电子,2003.
[4]ADSP-BF533Blakfin Processor Hardware Reference[EB].Analog Devices.Inc 2006.7ADSP-BF533Blakfin处理器硬件参考手册[EB].ADI公司,2006,7.
[5]ADSP-BF537Blakfin Processor Hardware Reference[EB].Analog Devices.Inc 2005.1(ADSP-BF537Blakfin 处理器硬件参考手册[EB].ADI公司,2005,1.
[6]李宁,汪骏发.基于Camera Link的高速数据采集系统[J].红外,2005,26(7):31-37.
[7]任泰明.TCP/IP协议与网络编程[M].西安:西安电子科技大学出版社,2004.
[8]沈鸽,王美娇,嵇晓强.基于CameraLink的视频图像采集与传输系统[J].微计算机信息,2011(8):108-109.
[9]陈伟,宋燕星.基于LVDS技术的高速数字图像传输系统[J].电子测量技术,2008(11):172-174.
[10]黄晓敏.LVDS驱动器电路设计及硬件实现[D].武汉:华中科技大学,2004.
[11]杨夷梅,杨玉军.一种基于LDC混沌理论与RSA 的图像传输算法[J].计算机与数字工程,2009,37(2).
[12]王丽华,何利娟,田文英.浅析FTP工作原理及应用技术[J].石家庄职业技术学院学报,2007(8):28-29.