图画收集和处理技能在机器视觉和图画剖析等许多范畴运用十分广泛。跟着高速的PCI Express(PCIE)总线的呈现,根据PCIE接口的高速数据收集卡将在数据传输和处理量很大的场合发挥越来越重要的效果。
CamLink相机是指带有Camera Link接口的相机。Camera Link是由数家工业开麦拉及印象卡大厂一起制定出来满意各种视频传输要求的标准接口。这个标准不只能够满意各种高速视频传输的要求,标准了数字摄像机和图画收集卡之间的接口,而且使视频设备供给商在设备开发和保护上的时间和本钱大大削减。Camera Link供给了超高的图画传送速度,而且因为它的高功用、低本钱以及其衔接的便利性,敏捷得到大多摄像头及图画收集卡生产商的支撑。
在一些高端范畴,尤其是机器视觉范畴,对计算机的数据传输和处理才能提出了严峻的检测,当时图画收集卡的开展逐渐向高速安稳传输和高速处理方向开展。PCI Express选用了现在业界盛行的点对点串行衔接办法,比起PCI以及更前期的计算机总线的同享并行架构,每个设备都有自己的专用衔接,不需要向整个总线恳求带宽,而且能够把数据传输率提高到一个很高的频率,到达PCI所不能供给的高带宽。PCI-Express标准从1条通道衔接到32条通道衔接,有十分强的伸缩性,以满意不同体系设备对数据传输带宽不同需求。例如,PCIExpress X1标准支撑双向数据传输,每向数据传输带宽250 MB/s,而33位33 MHz的PCI总线传输带宽仅为133 MB/s。PCI Express X16形式每向数据传输带宽可高达4 GB/s,双向数据传输带宽有8 GB/s之多。所以关于高帧频的CamLink接口相机来说,传统的总线(例如PCI总线接口)现已不能满意实时图画传输的要求。
本体系运用PLX公司的PEX8311作为PCI Express X1接口芯片,体系中选用FPGA芯片完结对整个体系的操控,运用FPGA内部供给的FIFO IP核和外接的两片独立的SDRAM完结了高速图画数据的缓存处理。
1 、体系构成及原理
根据PEX8311的CamLink图画收集体系的硬件结构分为4个模块:CamLink接口模块、FPGA操控模块、SDRAM存储模块、PCI-Express接口模块。图1为体系的原理框图:
体系的作业原理:体系上电后,上位机软件通过驱动程序操控FPGA对CamLink相机进行内部参数装备。装备完结后,CamLink相机输出帧频信号、行频信号、像索时钟信号和视频信号。因为CamLink接口输出的是差分信号,所以通过DS90CR288A芯片将差分转化成单端信号,输入给FPGA。在FPGA内部,通过FIFO对数据进行缓冲,在同步和时钟信号的操控下,FIFO输出的数据存放到SDRAM中。因为在同一时间只能对SDRAM进行读或写操作,所以为了避免数据丢掉,FPGA外接两片SDRAM,在奇帧的时分,向SDRAM1写一帧图画,而从SDRAM2读已保存的偶帧图画,完结图画传输的乒乓操作。运用PEX8311芯片完结PCIE接口,PEX8311由FPGA的逻辑程序对其操控。在上位机编写根据PCIE总线的驱动程序,将图画从SDRAM运用DMA办法读到计算机的内存中,上位机软件完结图画的显现和处理。
2、 PCI-Express接口模块
PCI-Express的接口完结办法许多,在本规划中运用PLX公司的PEX8311芯片通过桥接办法完结。PEX8311作为一种桥接芯片,在PCI Expr-ess总线和Local总线之间传递信息,它能够作为2个总线的主控设备去操控总线,也能够作为两个总线的方针设备去呼应总线。芯片通过内部的操控逻辑模块、内部总线状况机和部分总线状况机模块来一起操控芯片的数据传输。PEX8311的操控逻辑模块包括各种寄存器组,这些寄存器组用来操控数据的传输,记载传输的状况。
PEX8311供给两个串行E2PROM接口,在体系上电后读取装备信息。SPI串行E2PROM是PCI—Express的装备E2PROM。它首要用来操控PCI—Express的功用。
PEX8311供给齐备的PCI—Express从设备支撑,PCI-Express接口部分的信号线能够直接与PCI—Express衔接器(俗称金手指)衔接。其间,REFCLK±是一组差分时钟,它由体系主板供给。2个参阅时钟都要求坚持在正常作业频率100MHz的±300ppm之内。PRSNT1/PRSNT2信号线用于查看附加卡是否刺进衔接器。此次规划中将PRSNT1和PRSNT2相连,这样当接口板刺进到PCI—Express衔接器时就能进行存在检测。PCI-Express接口部分原理图,如图2所示。
3 、体系软件规划
3.1 FPGA逻辑程序
运用Verilog编写FPGA逻辑操控程序,共有5个底层模块和1个顶层模块。每个模块担任不同的功用。顶层模块为PCIE_CAMLINK模块,它通过调用其他模块的功用来完结整个体系的功用;CAMLINK模块用来操控Camera Link接口的读写;DoubleSdcon模块用来操控SDRAM芯片的使能和读写,完结图画的乒乓操作;FIFO模块用来缓冲数据和匹配各芯片的作业速度;C_16450模块进行串行到并行的转化,完结对CamLink相机的操控;PEX8311-LOCAL模块用来操控PCI—Express接口部分的读写,也便是对PEX8311芯片进行操控,对PEX8311的操控是完结PCI—Exp-ress总线的要害。
规划中是通过编写状况机(FSM,Finite State Machine)来对PEX8311的读写进行操控的。图3为PEX8311的单周期读写的Verilog HDL言语时序操控状况机规划。状况0为闲暇状况,如本地总线恳求信号LHOLD被置为1,则转到状况1,不然停留在状况0。状况1为总线坚持状况,在此状况下应将本地总线呼应信号LHOLDA置为1。如ADS信号为0且LW/R为1转到状况2;如ADS信号为0且LW/R和BLAST都为1转到状况3,为单周期读状况。状况2为单周期写状况,在此状况下要置READY信号0,以标明写数据有用,在BLAST为0时转到状况3。状况3为读写完结操作状况,当LHOLD被置为0时,标明PEX8311不再恳求本地总线,转到状况0,当BLAST为0且LHOLD为1时,标明PEX8311还要进行读写数据,则转到状况1持续。
3.2 驱动程序
PCI—E总线与PCI总线在软件层是彻底兼容的,因而PCI—E总线驱动程序的开发进程与PCI设备驱动程序的开发进程是相同的。本规划运用VC++6.0和开发工具包Driver Studio(DS)进行驱动程序的开发。DS能够集成到Visual C++环境中,针对特定的运用生成相应的驱动程序结构,在编程中选用面向目标的编程办法,极大地提高了编程功率。
驱动程序首要完结的功用:1)设备的初始化,找到所要操控的硬件,在驱动程序目标中设置驱动程序分发例程的程序进口点,树立一切驱动程序目标或其他体系资源;2)创立设备目标,运用AddDevice函数创立了一个设备目标,并将其衔接到以PD0为底的设备仓库中;3)中止的呼应与处理,完结对外部硬件中止的呼应并将中止信息传递给运用程序;4)DMA操作,完结DMA的读写操作并在DMA传输完毕后发生DMA中止,通过呼应的DMA中止,将传输的数据发送到外部总线或运用程序。
4 、试验成果
通过编写上位机程序对体系的传输功用进行测验,测验的基本原理是上位机生成一批数据然后从计算机的PCI-Express接口写到PEX8311再写到FIFO,最终写到SDBAM中,然后上位机再从SDRAM中读回方才写入的数据,比较读和写入的数据是否共同就能判别体系的读写是否正确,而且测验数据的传输速率。通过一段时间的测验,体系最大传输速度到达180 MB/s,满意了本体系高速数据的传输要求。
5 、定论
本文规划了根据PCI Express总线的CamLink接口的高速图画收集体系,在完结体系的硬件规划后,编写了FPGA的逻辑操控程序,并开发了驱动程序和上位机运用程序。体系选用PCI Express总线完结硬件电路与计算机之间的高速数据传输。接口芯片选用PLX公司推出的第一款PCI Express桥接芯片PEX8311。试验成果标明,规划的硬件体系满意高速图画传输的要求,而且功用安稳。
责任编辑:gt