标题:
利用NI FlexRIO开发高速、紧凑型OCT成像系统
[打印本页]
作者:
Bazinga
时间:
2014-1-25 19:40
标题:
利用NI FlexRIO开发高速、紧凑型OCT成像系统
OCT是一种无创性成像技术,按照与相同显微镜类似的分辨率,使组织或者其他物体可视化。OCT越来越受关注,因为它可以提供比其他成像技术 [ 例如磁共振成像(MRI)或者正电子发射断层成像术(PET) ] 更高的分辨率。OCT利用小功率光源和相应的光反射产生图片,这种方法与使用光而不是使用声音的超声类似。在扫频光源(Swept Source)-OCT (SS-OCT)应用中,激光器扫描样本,同时快速数模转换器(ADC)需要数据,并且处理系统产生断层图像。因此,系统必须能够进行高速数据采集、复杂图像处理并且精确控制激光器扫描。另外,系统的数据采集和控制必须紧密同步,以实现优良性能。常规系统
在OCT系统中,获取最终图像需要进行重大处理,包括快速傅里叶变换(FFTs)、内插和直流偏移计算。传统上通过在主机上运行的软件进行处理,需要消耗大量时间并且影响系统的整体成像速度。通常也在软件中调节激光器,进一步加重CPU的负担。在常规系统中,我们认识到进行数据处理所需要的时间使我们仅能够实现10帧/秒的图像显示率,即使系统的其他部分能够更快的运行。
图2表示常规系统配置,它需要通过两个装置来获取图像数据并且控制激光扫描器。因为系统中有两个板卡,所以接线更加复杂。
需要通过快速图像显示率来测量快速移动的物体,例如人体器官或者运动中的物体。在获得数据和显示数据之间也存在延迟。商业现货计算机不能够为我们需要的成像性能提供足够的处理,并且会增加系统成本。所有这些因素带动了开发新系统的需要。
下一代方案
为了对新的架构进行原型制作,我们使用通过NI LabVIEW FPGA模块 的NI FlexRIO FPGA模块。NI LabVIEW FPGA模块是一种图形设计语言,可以无需知道VHDL编码设计FPGA电路。NI FlexRIO 把可互换、可定制的I/O适配器模块与PXI或者PXI Express总线中的用户可编程FPGA模块结合在一起。
对于I/O,我们使用定制的适配器模块,把用于数据采集的高速ADC(100 MS/秒、12位分辨率)与用于激光扫描器控制的数模转换器(DAC)电路(50 kS/秒、12位分辨率)结合在一起。通过使用NI FlexRIO对新系统进行原型制作,我们能够快速获得工作方案并且确定是否需要改动。我们最初使用LabVIEW在主机端开发算法(FFTs、内插和直流偏移)。在验证算法之后,这些算法被移至FPGA上,以加快处理性能。而且,由于I/O从为主机电脑提供PCI Express接口的FPGA后端分离,我们可以快速确定需要的硬件变更。 在证实硬件和固件的运行令人满意后,我们非常有信心地把算法移到了具有相同的规格、且更易部署的PCI Express板卡上。图3表示新的系统配置。
实现更快处理并且减少系统体积
获取数据后,在FPGA中对数据进行处理,并且把数据送回至电脑。在把处理从电脑移至FPGA后,我们发现速度明显加快,并且明显提高了视频显示率。与以前10帧/秒的图像显示率相比,借助新的基于FPGA的系统配置,我们实现了40帧/秒的图像显示率,或者说性能提高了四倍。
我们的系统现在可以更快地显示物体(包括人体器官和其他移动的样品)的图像。而且,新的基于FPGA的系统可以提供实时测量信号处理,通过消除测量和显示之间的延迟,提高显示性能。图4表示成像系统的LabVIEW面板。
在常规系统配置中,我们需要两个装置 – 用于数据采集的数字化仪和用于控制扫描器的D/A 板卡。我们还需要进行额外布线,使装置同步。借助新的平台,我们可以在单一模块中合并数据采集并且控制I/O,并且利用FPGA使这两种功能同步,因此可以更加容易地对系统进行构建、接线和配置。另外,由于不再需要进行额外接线,我们可以节省空间。
由于系统体积减少,我们可以人工搬运整个系统,增加产品在各种地方中的新应用。
结论
如果使用常规系统,由于创建图像需要进行密集计算处理,我们图像显示率会受到限制。借助NI FlexRIO平台并且使用基于FPGA的处理,我们能够把成像速度增加四倍并且明显减少系统体积。
过去,我们需要使用功能强大的计算机进行数据处理;利用FPGA进行处理可以使我们减少对电脑性能的依赖。我们可以降低系统成本并且使用笔记本电脑或者低功率CPU板卡,满足需要体积更小、低成本系统的新市场的需要。另外,借助 LabVIEW FPGA,我们可以在未来对FPGA进行修改或者定制,满足特殊客户需要,节省开发时间和成本。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0