基于DSP的嵌入式显微图像处理系统的设计
时间:06-28
来源:电子技术应用 作者:张怀柱 尹传历 宋建中 乔 双
点击:
显微图像处理是数字图像处理的一个重要研究领域,随着其技术的不断发展,已经在材料、生物、医学等领域得到了广泛应用。目前的显微图像处理通常利用图像采集系统将显微图像采集到计算机中再进行图像处理,这样,虽然运算速度高,但体积庞大、不便于携带,有一定的局限性。因此,采用数字图像处理技术和DSP技术实现颗粒显微图像的高效、快速、全面的统计与测量,具有重要的实用价值和广阔的应用前景。
本文提出并设计了一种基于DSP和FPGA的嵌入式显微图像采集处理系统,如图1所示。其中,图像采集与处理装置是整个系统的关键部件,它以DSP和FPGA为核心,DSP作为中央处理器负责图像滤波、阈值分割及目标的数目、直径及面积等统计处理,通过FPGA完成各种接口逻辑和时序匹配,并配以大容量存储器用于图像的存储。DSP芯片体积小,运算速度快,使用灵活方便;FPGA具有在系统可编程和控制逻辑实现灵活的特点。因此,既能够满足处理的快速性,又能满足小型化便于携带的要求。
1 系统硬件平台设计
基于视频图像处理的显微图像处理系统的性能,在很大程度上依赖于其硬件处理单元的结构和性能。本系统所采用的硬件结构主要由5大模块组成:DSP核心处理单元、视频图像采集与存储模块、字符与图形迭加单元、通讯与用户交互接口模块、电源模块。系统电路框图如图2所示。
图2 嵌入式显微图像处理系统硬件结构框图
系统的工作过程为:系统上电后,DSP执行BOOTLOAD程序,将用户程序代码从外部Flash load到内部程序存储器,并执行A/D、字符迭加等初始化操作。视频采集与转换模块将CCD摄像机输出的模拟视频信号转换为数字图像数据并存储在RAM中,在一场图像采集完毕后,由场同步信号通过FPGA以中断方式通知DSP,DSP从RAM中读取图像,并负责完成图像滤波、分割、测量等各种处理算法,将测量结果通过字符图形迭加单元显示在监视器屏幕上,也可以根据需要由通讯接口模块传送给主机。各种接口逻辑与时序控制通过在FPGA器件内部编程实现。
模拟视频信号分为两路:一路经A/D转换为数字图像信号,另一路则与视频叠加芯片MAX442和字符叠加芯片μD6453进行图形和字符的叠加显示。这里采用Philips公司的SAA7111A作为视频A/D解码芯片,它将CCD摄像机输出的模拟视频信号转换为数字图像数据,并在FPGA的控制下存储在RAM中,同时产生行同步信号HS、场同步信号VS、奇偶场标志信号RTS0以及像素时钟信号LLC2。MAX442是一个双通道视频信号放大器,增益带宽高达140MHz。μPD6453为NEC公司生产的用于视频设备中的字符发生芯片。待显示的字符和图形与CCD摄像机输出的原始图像一起叠加显示在监视器屏幕上。
在图像采集过程中,视频解码芯片SAA7111A按像素逐点输出4:2:2的YUV格式的数字图像数据。该格式中,每帧图像的分辨率为720×576,即每行有720个像素点,每帧576行,由于一帧图像是由奇、偶两场图像组成的,因此每场图像有288行。为了处理方便,每场采集的图像大小为512×256,即每行采集512个像素,每场(奇场或偶场)采集256行,通过在FPGA中编程实现像素延时和行延时,选择每行中间的512个像素和每场中间的256行。
2 软件设计
传统的DSP程序多采用单线程顺序结构实现,其实时性较差,资源利用率低,在高速、实时的图像处理领域中难以满足实际要求。CCS(Code Composer Studio)是一个完整的DSP集成开发环境,不仅集成了常规的开发工具,如源程序编辑器、代码生成工具(编译、链接器)以及调试环境,还提供了DSP/BIOS开发工具。DSP/BIOS是一个简易的嵌入式操作系统,它本身仅占用极少的CPU资源,而且是可裁剪的,能大大方便用户编写多任务应用程序,增强对代码执行效率的监控,提高程序的可读性,方便用户应用程序的编写,缩短软件开发周期。
2.1 软件程序框图
本文在DSP/BIOS的基础上,设计开发了显微图像处理系统的DSP应用程序。使用混合语言编程,用C语言设计程序中对运行时间影响不大的模块,用汇编语言设计严格要求实时性的核心算法。在这里,程序采用模块化设计,各个功能模块相互独立,程序框图如图3所示。该程序主要由1个主程序初始化模块、3个硬件中断HWI处理模块、1个软件中断SWI处理模块和4个任务模块TSK构成。
本文提出并设计了一种基于DSP和FPGA的嵌入式显微图像采集处理系统,如图1所示。其中,图像采集与处理装置是整个系统的关键部件,它以DSP和FPGA为核心,DSP作为中央处理器负责图像滤波、阈值分割及目标的数目、直径及面积等统计处理,通过FPGA完成各种接口逻辑和时序匹配,并配以大容量存储器用于图像的存储。DSP芯片体积小,运算速度快,使用灵活方便;FPGA具有在系统可编程和控制逻辑实现灵活的特点。因此,既能够满足处理的快速性,又能满足小型化便于携带的要求。
1 系统硬件平台设计
基于视频图像处理的显微图像处理系统的性能,在很大程度上依赖于其硬件处理单元的结构和性能。本系统所采用的硬件结构主要由5大模块组成:DSP核心处理单元、视频图像采集与存储模块、字符与图形迭加单元、通讯与用户交互接口模块、电源模块。系统电路框图如图2所示。
图2 嵌入式显微图像处理系统硬件结构框图
系统的工作过程为:系统上电后,DSP执行BOOTLOAD程序,将用户程序代码从外部Flash load到内部程序存储器,并执行A/D、字符迭加等初始化操作。视频采集与转换模块将CCD摄像机输出的模拟视频信号转换为数字图像数据并存储在RAM中,在一场图像采集完毕后,由场同步信号通过FPGA以中断方式通知DSP,DSP从RAM中读取图像,并负责完成图像滤波、分割、测量等各种处理算法,将测量结果通过字符图形迭加单元显示在监视器屏幕上,也可以根据需要由通讯接口模块传送给主机。各种接口逻辑与时序控制通过在FPGA器件内部编程实现。
模拟视频信号分为两路:一路经A/D转换为数字图像信号,另一路则与视频叠加芯片MAX442和字符叠加芯片μD6453进行图形和字符的叠加显示。这里采用Philips公司的SAA7111A作为视频A/D解码芯片,它将CCD摄像机输出的模拟视频信号转换为数字图像数据,并在FPGA的控制下存储在RAM中,同时产生行同步信号HS、场同步信号VS、奇偶场标志信号RTS0以及像素时钟信号LLC2。MAX442是一个双通道视频信号放大器,增益带宽高达140MHz。μPD6453为NEC公司生产的用于视频设备中的字符发生芯片。待显示的字符和图形与CCD摄像机输出的原始图像一起叠加显示在监视器屏幕上。
在图像采集过程中,视频解码芯片SAA7111A按像素逐点输出4:2:2的YUV格式的数字图像数据。该格式中,每帧图像的分辨率为720×576,即每行有720个像素点,每帧576行,由于一帧图像是由奇、偶两场图像组成的,因此每场图像有288行。为了处理方便,每场采集的图像大小为512×256,即每行采集512个像素,每场(奇场或偶场)采集256行,通过在FPGA中编程实现像素延时和行延时,选择每行中间的512个像素和每场中间的256行。
2 软件设计
传统的DSP程序多采用单线程顺序结构实现,其实时性较差,资源利用率低,在高速、实时的图像处理领域中难以满足实际要求。CCS(Code Composer Studio)是一个完整的DSP集成开发环境,不仅集成了常规的开发工具,如源程序编辑器、代码生成工具(编译、链接器)以及调试环境,还提供了DSP/BIOS开发工具。DSP/BIOS是一个简易的嵌入式操作系统,它本身仅占用极少的CPU资源,而且是可裁剪的,能大大方便用户编写多任务应用程序,增强对代码执行效率的监控,提高程序的可读性,方便用户应用程序的编写,缩短软件开发周期。
2.1 软件程序框图
本文在DSP/BIOS的基础上,设计开发了显微图像处理系统的DSP应用程序。使用混合语言编程,用C语言设计程序中对运行时间影响不大的模块,用汇编语言设计严格要求实时性的核心算法。在这里,程序采用模块化设计,各个功能模块相互独立,程序框图如图3所示。该程序主要由1个主程序初始化模块、3个硬件中断HWI处理模块、1个软件中断SWI处理模块和4个任务模块TSK构成。
当系统复位后,DSP执行Bootload引导程序,并将程序入口点设置到c_int00处,DSP/BIOS应用程序从该处开始运行,执行过程为:首先调用DSP/BIOS初
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)