当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:文章设计了一种基于FPGA的CCD图像数据采集卡。以FPGA作为图像数据采集卡的核心,通过LVDS传输技术,异步FIFO,异步块RAM,SRAM缓存乒乓操作等技术,在PCI核的基础上实现了Initiator下的DMA传输;并基于VxWorks

摘要:文章设计了一种基于FPGACCD图像数据采集卡。以FPGA作为图像数据采集卡的核心,通过LVDS传输技术,异步FIFO,异步块RAM,SRAM缓存乒乓操作等技术,在PCI核的基础上实现了Initiator下的DMA传输;并基于VxWorks平台编写PCI图像采集卡的驱动程序。经测试和验证,PCI图像采集卡稳定可靠,能够实现数据流为60Mb/s的CCD系统图像数据的高速传输。
关键词:图像采集;PCI总线;FIFO;DMA传输;VxWorks

0 引言
    CCD是一种高性能光电转换式图像传感器。由于其几何精度高、稳定性好、噪声小,广泛用于遥感遥测,天文测量等领域。现实中许多利用单片机作为控制核心,并配备其他一些外围电路实现CCD的数据采集,这种方式速度慢、集成度低。
    由于CCD相机的精度和分辨率的不断提高,以及对CCD成像系统本身可靠性要求的不断提高,对数据采集系统采集速度、可靠性,以及易用性提出了更高的要求。本文设计的基于FPGA的PCI数据采集及回放系统,系统设计以Xilinx的FPGA为核心,以LVDS芯片传输过来的CCD数据为源头,运用成熟的PCI总线传输技术,实现了高速数据采集的功能。在VxWorks平台下编写了相应的驱动程序。经测试和验证,该系统稳定可靠,传输速率高,满足应用的要求。

1 系统的总体结构以及原理
    整个系统由模拟前端和采集后端组成,如图1所示。前端主要由CCD镜头,CCD传感器、垂直驱动器、A/D转换器、FPGA、电源管理电路以及高速串行总线接口LVDS组成。CCD镜头把光线聚焦在CCD传感器的感光面上,CCD传感器完成光信号到电信号的转换。在驱动器的控制下完成像素电荷的转移,输出模拟信号,再经过A/D转换芯片把模拟信号转换成数字信号,经LVDS输出到后端。


    采集后端的硬件主要由LVDS芯片、用作缓存图像数据的SRAM芯片、电源管理模块、FPGA组成。FPGA是整个后端采集模块的核心模块,FP GA不仅要完成数据的采集、组织、传输,还要根据PCI规范配置成标准的PCI设备,进行数据与主机之前的传送。由于数据传输要求60Mb/s的速度,所以简单的单次传输不能满足系统的整体需求。FPGA必须能支持DMA方式的数据传送。为了使PCI图像采集卡有更大的通用性,在修改最小的驱动代码的情况下跨平台地使用,须把FPGA配置成能作为主动发起DMA请求的PCI设备,从而屏蔽不同的桥芯片之间的差异。
    本文主要关注采集后端,即PCI图像采集卡的硬件、逻辑、以及软件的设计与实现。

2 PCI图像采集卡回放系统硬件设计
    为了提高数据传输的可靠性,降低串扰、辐射等在高速传输数据中常见的问题,PCI图像采集卡采用INDS(低压差分信号技术)进行图像数据的接收和控制数据的发送。在实际应用中,我们选择了国家半导体的DS92LV16芯片作为接收和发送数据芯片。功能框图如图2所示。


    该芯片利用内部时钟把16位的并行数据转换成LVDS数据进行传输;同时可以把LVDS数据转换成16位并行数据供芯片或者可编程逻辑器件进行处理。该芯片最大传输速率可达2.56Gbps;单一的3.3V供电即可使用;较低的EMI;发送端和接收端有单独的时钟和省电管脚。
    采用Xilinx公司的一片XC4VLX25-11FF668I可编程逻辑芯片,FPGA被配置成PCI接口。LX25逻辑单元可达24192个,最大分布式RAM是168 k,最大块RAM可达1296kb,并且有8个DCM供编程人员使用,LX25功耗较低,易于使用。选择FLASH芯片为XCF08P。
    需要外部存储器对图像处理中的大量数据进行缓存,要求存储器存取速度快、读取时间短、实时性匹配强。选择CYPRESS公司的SRAMCY7 C1470BV33的SRAM作为数据缓存芯片。CY7C1470BV33的速度可以达到250MHz,满足系统时钟频率要求。

3 FPGA逻辑设计
3.1 总体设计
    逻辑的整体设计如图3所示,当图像数据进入FPGA后,通过异步FIFO进行异步时钟域的转换。在第一个缓冲周期通过数据流选择电路将图像数据缓存到SRAM1中;在第二个缓冲周期,通过数据流选择电路将图像数据缓存到SRAM2中,同时将SRAM1中的数据经后端FIFO、PCI接口发送给主机。在第三个缓冲周期内再次通过输入数据流选择电路,把图像数据缓存到SRAM1中,同时将SRAM2中的数据经后端FIFO、PCI接口发送给主机,如此循环。由于乒乓操作的FPGA逻辑实现比较简单,这里不再赘述。下面主要来设计PCI接口的逻辑。


3.2 PCI接口的设计
    PCI图像采集卡的接口设计非常重要。由于PCI总线规范复杂,设计复杂,为了加快开发周期,采用Xilinx提供的PCI core来完成PCI总线控制器的设计。PCI控制器核logic core的内部框图如图4所示。


    PCI控制核主要完成用户设备和PCI总线之间的数据传输。PCI核可工作在Target传输模式和Initiator传输模式。每种传输模式又可以分单次传输和突发传输。由于单次传输速度达不到要求,我们选择突发传输模式以便提高传输速度。
    Target模式下的突发传输模式相对Initiator下的突发传输模式的控制逻辑简单,但是考虑到PCI图像采集卡的可移植性,故采用Initia tor突发传输模式。在Initiator突发传输模式下,PCI图像采集卡主动向桥芯片申请PCI总线控制权,并主动传送数据;在Target模式下,必须用软件对桥芯片进行配置,也就是说PCI图像采集卡作为一个PCI从设备等待桥芯片的配置、数据读取等。所以采用Initiator下的突发传输模式逻辑控制复杂,但是移植性好。
3.3 PCI图像采集卡地址空间配置
    PCI的地址空间可分为三种,分别是PCI配置空间、PCI I/O空间和PCI内存空间。
    我们需要对PCI核进行配置。
    Xilinx提供的PCI核提供了BAR0、BAR1、BAR2三个地址空间。这三个地址空间可以配置成内存地址空间或I/O地址空间。为了PCI图像采集卡在不同桥芯片下和不同的操作系统下工作。我们把所有的地址空间都配置成了内存空间,因为不是所有处理器都支持I/O操作。在我们的设计中,使用了BAR0和BAR1两个地址空间,配置成了内存空间,并全部配置成可以预取模式。以配制BAR0为例说明配置方法。
   
3.4 地址指针的设计
    对于Initiator下的突发模式传输,因为从设备可以在任何时刻结束数据的传输,应用程序必须始终对地址进行跟踪,以便在Initiator再次发起传输时能得到正确的地址进行重新传送。
    我们在设计的时候用了一个32bit的寄存器对地址进行跟踪,其中低2位始终为0,高30位用来保存数据。利用M_DATA_VLD信号来控制地址的增加。当M_ADDR_N有效的时候把地址输送到地址总线上。

3.5 Initiator突发数据传输状态机的实现
    状态机用来控制突发模式的读写时序。整个状态机由六个状态组成,分别是IDLES、REOS、WRITES、READS、RSTS、OOPS。下面分对这六
个状态的功能进行描述。
    IDLES:状态机处于空闲状态,状态机等待用户发起读或者写请求。
    REOS:用户发起了传送请求。当是读请求时,状态机进入READS状态。当是写请求时,状态机进入WRITES状态。
    READS:状态机一直处于数据读取状态直到传输完成,或者在传输过程中发生了不可恢复的错误。当数据正常传输完成时,状态机会跳到OOPS_S状态;当发生致命错误时,状态机会处于RSTS。
    WRITES:状态WRITES和READS基本类似。不同的是数据传输方向不同。
    RSTS:当状态机处于RSTS时说明整个系统发生了不可恢复的错误,必须重新复位让软硬件。
    OOPS:当状态机处于OOPS状态,如果需要对前端的FIFO进行回滚操作,状态机就一直处于OOPS。如果前端FIFO检测传输完成信号,完成则进入IDLES状态,否则进入申请总线状态REQS。
3.6 异步存储器的实现
    由于PCI读存储器的时钟频率和数据宽度与收发器写存储器的时钟频率和数据宽度不一致,所以要设计在两个异步时钟之间传输数据的接口电路。Xilinx自带的FIFO IP核是一种解决方案。但是由于异步FIFO没有Initiator突发数据传输下的需要的back_up信号,所以利用Xilinx自带的块RAM作为数据宽度可以控制的存储器。

4 VxWorks下驱动软件的编写
    VxWorks是一种高可靠、微内核、可裁剪的实时嵌入式操作系统,由于它具有高效的实时任务调度、中断管理等优点,成为了航空、航天、医疗、通信等领域首选的实时操作系统。PCI图像采集卡的驱动就是基于VxWorks实时操作系统进行开发的。
4.1 PCI设备驱动开发
    每个PCI设备都有一容量为256字节并具有特定结构的地址空间,前64个字节包含PCI接口的信息,也成为PCI配置头。其余的192个字节可以由板卡的设计自己定义。为了让VxWorks支持PCI驱动,需要对BSP中的sysLib.c文件进行修改,使得系统支持初始化配置支持库和中断支持库,以提供对PCI设备配置空间的访问租PCI中断复用功能的支持。
    设备驱动程序初始化PCI图像采集卡的流程一般如下:根据PCI设备的厂商ID和设备ID号来找到PCI设备的总线号、设备号和功能号;根据总线号、设备号和功能号来映射PCI设备的地址空间;并且配置中断线性寄存器;最后使能PCI内存空间。其他寄存器要根据具体应用来配置。
4.2 数据采集方式
    由于前端数据量很大,所以简单的单次传输不能满足系统的整体需求。必须用DMA方式进行传送。通知数据可以读取通常有两种模式,查询模式和中断模式。由于查询模式要大量消耗CPU资源,所以采用DMA结合中断模式进行数据采集。
    对数据的采集使用乒乓操作。当写满一片SRAM中就发中断给CPU,通知数据已经准备好,这个时候驱动程序就开始读取数据,同时前端数据继续写入另一片SRAM,写满后再次发送中断。如此反复,直到PCI图像采集卡接收到应用程序的停止传送数据命令。
4.3 中断的运用和管理
    在VxWorks中,中断的响应速度非常快。经测量,在我们的系统中PCI图像采集卡从发出中断到进入中断处理函数的时间为7 μs。通过函数intConnect把中断处理函数和中断向量挂接起来。
    在VxWorks中,中断服务程序拥有独立于各种任务的程序上下文,所以中断服务程序不能执行需要任务上下文的函数。

5 结果验证
    我们对整个系统进行了验证,CCD成像系统把采集的图像数据经变化,如加上校验和传送给PCI图像采集卡。用逻辑分析仪对PCI的一些关键信号进行了测量。如图5所示。


    从图中不难看出,PCI图像采集卡一直处于数据传输状态,经测试,传输速度完全满足系统的要求。在应用程序中对图像数据进行了存盘,并计算校验和,发现校验和正确。

6 结论
    本文设计的PCI图像采集卡以FPGA为核心,在PCI核的基础上用逻辑实现了PCI图像采集卡Initiator下的突发模式传输,从而实现了视频数据的高速传输。为了传输的稳定性和可靠性,使用低压差分信号技术进行图像数据的接收和控制数据的发送。最后在VxWorks平台上实现了PCI图像采集模块的驱动编写。经过测试,图像数据传输稳定可靠,传输速率也能满足系统的整体需求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业...

关键字: FPGA 核心板 开发板

智能驾驶技术快速迭代,ADAS环视系统作为车辆周边环境感知的核心模块,对图像传感器的性能提出了严苛要求。其中,噪声抑制能力直接影响系统在低光照、强干扰等极端场景下的可靠性。本文从技术原理、工程实践及未来趋势三个维度,对比...

关键字: CMOS CCD

在现代电子系统中,现场可编程门阵列(FPGA)凭借其开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点,被广泛应用于各种产品领域。从通信设备到工业控制,从汽车电子到航空航天,FPGA 的身影无处不在。为了充分发挥...

关键字: 可编程门阵列 FPGA 数字电源

2025年8月4日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Altera®的Agilex™ 3 FPGA C系列开发套件。此开...

关键字: FPGA 边缘计算 嵌入式应用

内窥镜泛指经自然腔道或人工孔道进入体内,并对体内器官或结构进行直接观察和对疾病进行诊断的医疗设备,一般由光学镜头、冷光源、光导纤维、图像传感器以及机械装置等构成。文章介绍了一款基于两片图像传感器和FPGA组成的微型3D内...

关键字: 微创 3D内窥镜 OV6946 FPGA

运用单片机和FPGA芯片作为主控制器件 , 单片机接收从PC机上传过来的显示内容和显示控制命令 , 通过命令解释和数据转换 , 生成LED显示屏所需要的数据信号和同步的控制信号— 数据、时钟、行同步和面同步 。FPGA芯...

关键字: 单片机 FPGA LED显示屏

在异构计算系统中,ARM与FPGA的协同工作已成为高性能计算的关键架构。本文基于FSPI(Fast Serial Peripheral Interface)四线模式,在150MHz时钟频率下实现10.5MB/s的可靠数据...

关键字: ARM FPGA FSPI

在全球FPGA市场被Xilinx(AMD)与Intel垄断的格局下,国产FPGA厂商高云半导体通过构建自主IP核生态与智能时序约束引擎,走出差异化高端化路径。本文深入解析高云半导体FPGA工具链的两大核心技术——全栈IP...

关键字: FPGA 高云半导体

2025年6月12日,由安路科技主办的2025 FPGA技术沙龙在南京正式召开,深圳市米尔电子有限公司(简称:米尔电子)作为国产FPGA的代表企业出席此次活动。米尔电子发表演讲,并展出米尔基于安路飞龙派的核心板和解决方案...

关键字: FPGA 核心板 开发板

高 I/O、低功耗及先进的安全功能,适用于成本敏感型边缘应用

关键字: FPGA I/O 机器视觉
关闭