基于ARM9的便携式内窥镜系统设计与实现

发布者:光子梦境最新更新时间:2011-05-26 关键字:ARM9  便携式内窥镜 手机看文章 扫描二维码
随时随地手机看文章

    1921年,以色列人George S.Crampton在美国加利福尼亚研制出世界上第一台工业内窥镜,用来检测蒸汽涡轮转子的内部裂缝。从此,内窥技术逐渐被工业界所重视,并得到不断发展。1990年以来,工业内窥镜经历了第一代硬杆式、第二代软管式和第三代电子镜式的逐步发展过程,内窥技术也逐步发展成为一门崭新的科学技术,成为远距离可视监测RVI(Remote Visual Inspection)技术。

    目前,工业内窥镜广泛应用于工业制造和维修领域。它延长了人眼的距离,拓宽了人类观察的视野,可以在不拆除或不破坏机器设备的前提下清晰准确地观察内部人眼无法到达的位置,实现机器设备或零件内部的无损检测,尽可能节省维修时间,这在武器装备外场检修应用中相当重要。为了实现内窥镜系统的小型化和便携性,本文设计实现了一种基于ARM9的便携式內窥镜系统。
1 ARM嵌入式系统及其摄像头接口

    嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。通常由嵌入式CPU、外围硬件设备、嵌入式操作系统及应用程序四部分组成,用于实现对其他设备的控制、监视或管理等功能。该系统是将先进的计算机技术、半导体技术和电子技术结合后应用到各个具体行业的产物。IP 级、芯片级和模块级是嵌入式系统的三种主要的体系结构形式。其中,模块级的形式就是把已成熟的X86处理器构成的计算机系统模块嵌入到应用系统中, 充分利用目前常用的PC架构的通用性和便利性。

    SAMSUNG S3C2440嵌入式微处理器的内核采用ARM公司的ARM920T处理器核。它是目前世界上主频最快的嵌入式移动CPU之一,内核电压为1.3V,采用16/32位ARM920T RISC核心,提供的接口支持数码摄像头、TFT/STN液晶屏、USB、HOST/DEVICE、SD/MMC/SDIO存储卡以及触摸屏等。

    S3C2440嵌入式微处理器的摄像头接口(CAMIF)支持ITU-RBT.601/656 YCbCr8比特标准的图像数据输入,最大可采样4 096×4 096像素的图像。摄像头接口可以有两种模式与DMA控制器进行数据传输:一种是P端口模式,把从摄像头接口采样到的图像数据转为RGB数据,并在DMA控制下传输到SDRAM(一般这种模式用来提供图像预览功能);另一种是C端口模式,把图像数据按照YCbCr4:2:0或4:2:2的格式传输到SDRAM(这种模式主要为MPEG4、H.263等编码器提供图像数据的输入)。上述两种工作模式都允许设置一个剪辑窗口,只有进入这个窗口的图像数据才能够传输到SDRAM。摄像头工作模块如图1所示。

 


2 基于ARM9的便携式内窥镜系统设计
2.1 总体框架设计
  工业内窥镜系统主要包括CMOS(CCD)传感器、传导纤维、导光束、光源、电源和监视器等,结构如图2所示。由于监视器和冷光源体积及其对电源的要求导致了整个系统体积大、不便携带,且不能将图像按要求保存,不便于后期缺陷信号处理。基于ARM9的便携式内窥镜系统在工业内窥镜检测系统的基础上,引入嵌入式系统,充分发挥嵌入式系统体积小、输入电压低、触摸屏显示、利用编程可以实现图像处理和存储的优点,很好地满足了检测系统对微型化、易携带的要求。其结构如图3所示。

 


2.2 便携式内窥镜系统组成
  该系统装置分为照明系统、CMOS 摄像头、嵌入式系统三部分。所设计的传感器探头结构如图4所示。

 


2.2.1 照明系统
  一般内窥镜均采用独立冷光源,并由光纤把光线传至检查位置上。为达到较好的照明效果,对光源和光纤的要求都很高。由于基于ARM9嵌入式系统及对体积的要求,不能再按照以前采用独立冷光源。在便携式内窥镜系统设计过程中,巧妙应用一种功率较低的高亮度发光二极管(LED)进行照明,以解决光源问题。该高亮度发光二极管工作电压3.3V,光色白色,亮度很强,与电位器相连,实现亮度可调,端部上下各固定一只,保证视场内光照均匀。试验证明完全可行。
2.2.2 CMOS摄像头
  便携式内窥镜系统所采用的摄像头为OmniVision公司生产的OV7660。该类型CMOS sensor目前广泛应用于便携式手持设备。其特点是:灵敏度高,低电压工作,标准串行摄像头控制总线(SCCB)控制,可输出窗口尺寸可调的UXGA/SVGA/VGA/QVGA等不同像素的图像、且图像格式可以是原始RGB/RGB(4:2:2)/YUV(4:2:2)/YCbCr(4:2:2),图像处理可编程等。
  嵌入式开发没有通用的驱动程序。具体针对OV7660,需要进行相应驱动设计。对摄像头进行驱动程序设计,除了实现设备的注册注销外, 按照功能还应分为实现摄像头打开模块、摄像头控制模块(初始化在该模块中实现)和摄像头关闭模块。在WinCE系统启动的过程中即调用摄像头驱动程序,实现摄像头与2440摄像头接口参数设置及一系列初始化。下面就驱动的各个模块做具体介绍。
  (1)摄像头打开模块
  在应用程序中,通过调用CreateFile()打开CIS1口。
  hCam=CreateFile(TEXT(“CIS1:”),GENERIC_WRITE |
  GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
  if(hCam==INVALID_HANDLE_VALUE)
  {
  AfxMessageBox(L”无法打开!”);
  }
  else
  {
  AfxMessageBox(L”摄像头已打开!”);
  }[page]

  (2)摄像头控制模块
    调用Cam_Init()实现摄像头接口以及摄像头模块的初始化,为本驱动程序的主要部分。在正确执行这个函数后,摄像头就可以正常工作,开始采集数据。
    摄像头接口的初始化包括五个方面:①设置寄存器CIGCTRL软件重启;②设置寄存器CISRCFMT确定输入源格式;③设置寄存器CIWDOFST溢出标识位复位并使能窗口偏移;④设置寄存器CIGCTRL,反转CAMVSYNC极性与摄像头保持一致;⑤设置YCBCR开始地址寄存器。
  Cam_Init()函数如下:
  BOOL Cam_Init()
{
     CamGpioInit();//camera IO初始化
     CAM_IF_Reset();//camera接口初始化
     CamClockOn(TRUE);//设置camera时钟
     Camera_Module_Reset();//camera模块重启
     Camera_Initialize();//通过I2C总线设置
              //camera模块的寄存器
    s2440IOP->rGPGCON &=~(0x3<<24);
     s2440IOP->rGPGCON |=(0x1<<24);
if(image_size==1)
{
    CamInit(QCIF_XSIZE,QCIF_YSIZE,QCIF_XSIZE,
      QCIF_YSIZE,0,0,COPIFRAMEBUFFER_B,
      COPIFRAMEBUFFER_A);
            //设置输出图像格式、起始位置
  }
  else
  {
    CamInit(CIF_XSIZE,CIF_YSIZE,QCIF_XSIZE,
    QCIF_YSIZE,0,0,COPIFRAMEBUFFER_B,
    COPIFRAMEBUFFER_A);
  }
  RETAILMSG(1,(_T(“CamInit().. donern”)));
  return TRUE;
}
  在摄像头驱动设计中,对OV7660寄存器组的设置至关重要。通过函数void Wr_CamIIC(U32 slvAddr,U32 addr,U8 data)对OV7660寄存器组进行写操作,其中slvAddr为OV公司的SCCB总线写地址(默认值为0x42),addr为寄存器偏移地址,data为设置值。具体参数设置请参考OmniVision公司提供的OV7660 Setting文献。
2.2.3 嵌入式系统模块
  嵌入式系统模块预装系统为Windows CE.net 4.2,驱动程序形式为流接口驱动,基本框架是dll动态链接库,使用Embedded Visual C++ 4.0或者Platform Builder 4.2编译。推荐使用EVC(Embedded Visual C++),因为EVC速度比较快。在便携式内窥镜系统中该模块主要功能为接收camera图像信号,并通过触摸屏同步显示图像。为实现该功能,要利用EVC编程,通过USB同步下载至嵌入式系统,实现对视频图像信号的处理,主要包括图像处理去噪、特征提取、缺陷尺寸估计、腐蚀缺陷成像等。其结构示意图如图5。

 


3 试验验证
  用本系统装置检测零件内部孔径为φ5.2mm的孔,在孔的边缘有一微小裂纹。图6为图像信号在采集到嵌入式系统后未经过图像处理的视频截图,图7为采集到嵌入式系统后经过图像处理的视频截图。

 

  由图7可见,处理后的图像清晰,裂纹明显,较好地实现了原定目标。试验证明该系统完全可以用于仪器装备内表面微小缺陷的检测判定。
  本文主要针对目前通用工业内窥镜存在的体积大、重量重、不便于外场检测的缺点,在基于ARM9嵌入式系统的基础上,设计实现了便携式内窥镜系统。系统在检测零件上做了试验,结果表明该装置系统在彻底解决通用工业内窥镜缺点的基础上,还具有高清晰、高保真的特点,完全可以用于仪器装备内表面微小缺陷的检测判定。

 

 

关键字:ARM9  便携式内窥镜 引用地址:基于ARM9的便携式内窥镜系统设计与实现

上一篇:英特尔携Tri-Gate技术向ARM发出挑战
下一篇:基于ARM的2M测试系统

推荐阅读最新更新时间:2024-03-16 12:36

ARM9与ARM7的比较及优化
目前越来越多的嵌入式系统设计开始采用ARM9处理器。理解ARM9与ARM7的差别,以及如何针对ARM9进行系统优化,成为了一个令人关注的话题。本文通过对ARM9处理器的特点介绍,介绍针对ARM9处理器进行系统优化的一些有效方法。     随着更多应用在嵌入式系统中的实现,嵌入式系统设计向着更高级、更复杂的方向发展。作为32位结构体系中的翘楚,ARM在各种应用领域里得到了极其广泛的应用,成为目前国内电子设计领域里面的焦点之一(2005年一项针对国内嵌入式系统开发者的调查表明,有63%的工程师把ARM作为32位CPU的首选)。过去几年里,绝大部分ARM系统都是基于ARM7处理器,最近一年里,基于ARM9处理器的产品越来越多,研
[单片机]
<font color='red'>ARM9</font>与ARM7的比较及优化
一种基于ARM9的彩色TFT-LCD模块设计及实现
1 引 言 TFT-LCD因其厚度薄且画面质量优异,可以实现信息的高速度、高亮度及高对比度显示,已广泛应用于图像显示系统中。虽然TFT-LCD具有良好的显示性能,但TFT-LCD的驱动信号非常复杂,同时外围的控制单元需要处理的数据量非常大,以一个分辨率为640×480的彩色TFT-LCD为例,显示一幅彩色图像就需要处理900kbyte的数据量,这对于传统的单片机等处理器显得无能为力。由于图像数据量大,目前图像大都采用压缩后再存储,其中JPEG (Joint PhotographicExperts Group)格式的压缩图像应用最为广泛。 为了解决图像等大容量数据在TFT-LCD显示屏上的应用,本文提出了一种基于ARM9处理
[单片机]
一种基于<font color='red'>ARM9</font>的彩色TFT-LCD模块设计及实现
ARM9的SPI
实验前须知: SPI的原理: 注: CLK传输时钟 MISO主机输入从机输出 MOSI主机输出从机输入 CS片选信号,由于SPI控制器可以外接多个SPI设备,所以这个用于选中SPI设备。 SPI的操作流程大体如下图所示: 实验的目的: 用s3c2440的SPI控制器操作SPI总线上的两个设备,分别是OLED和FLASH 实验的源程序: 07th_spi_i2c_adc_mini2440_tq2440_spi_controller.rar 实验的问题总结: 1 我们主要分析一下s3c2440_spi.c这个文件 /*************************************s3c2440_spi.c*****
[单片机]
<font color='red'>ARM9</font>的SPI
Windows CE下操作GPIO的方法(以ARM9 S3C2410为例)
GPIO 是ARM芯片最基本的输入输出通道,在ADS下操作就是一个单片机工作,直接读写其寄存器。在ARM9平台上,Windows CE系统将GPIO的实地址(例如2410的GPIO的基地址为0x56000000)映射到虚拟地址空间(GPIO对应为0xB1600000),这 样,通过对这段虚拟地址空间的操作,就能够完成对GPIO或者其他片内资源的控制、输入输出工作。 要操作一个平台的GPIO,在其对应BSP中按照基地址,找到虚拟地址,并且找到方便操作这个地址的数据结构就可以了,关键函数就是 VirtualAlloc和VirtualCopy。并且CE的方便之处就是用户态的应用程序仍然可以使用这两个函数来访问所有这些虚拟空间,对于不太复
[嵌入式]
基于ARM9的指纹识别门禁系统
指纹门禁系统是基于生物特征识别技术的一项高科技安全设施,近年来在国内外得到了广泛的应用,并已成为现代化建筑智能化的标志之一。对于一些核心机密部门,如重要机关、科研实验室、档案馆、民航机场等场所,指纹门禁系统可以提供高效、智能、便捷的授权控制。由于指纹具有携带方便、人人各异、终生不变的特点,因此利用指纹识别作为身份认证的手段,与传统的钥匙、密码相比,大大提高了安全性与可信性。 该系统基于ARM9芯片Samsung S3C2440AL,以Veridicom公司指纹采集芯片FPS200作为硬件平台,以嵌入式Linux为软件平台。在该研究领域中,基于PC平台的识别系统一直是研究的重点,本文实现的基于ARM平台的系统具有轻便,易安装,成
[单片机]
基于<font color='red'>ARM9</font>的指纹识别门禁系统
基于ARM9核的AT91RM9200微处理器的短消息监控系统的设计与实现
本文介绍了GSM无线模块在嵌入式系统的应用,系统采用基于ARM9核的AT91RM9200 微处理器 ,GSM无线模块采用华为MG323无线模块,在嵌入式Linux系统下,通过ARM与MG323进行控制通信,实现了短消息模块的软件功能。该系统支持FDU短信模式及中文短信。 无线监控已成为工业控制中安全生产、及时收集重要数据必不可少的部分,利用现代化的信息技术手段,建设安全生产监督管理网络系统,才能将安全生产和安全监督管理工作做好,随着通讯技术的发展,移动通信覆盖的不断扩大,基于GSM网络的无线监控系统已广泛应用于工业控制、电力监控、智能楼宇和数据传输等方面,加上GSM网络具有前期投资少、不受地域限制、通信实时性高等优点使得它
[单片机]
基于<font color='red'>ARM9</font>核的AT91RM9200微处理器的短消息监控系统的设计与实现
ARM9时钟体系结构
本文主要介绍AT91RM9200以及S3C2440处理器的时钟体系结构。 0 概要 处理器的时钟源都是外部晶振振荡器产生的,有12MHz也有18MHz的(当然通常情况下外部还会挂接一个数百KHz的晶振,它是RTC所需),但无论是何种都不可能满足ARM核的数百兆赫兹的工作频率(关于各种ARM核的工作频率见附0)。因此需要通过芯片内部的锁相环电路产生更高的工作频率,产生的工作频率再经过分频或者倍频分别供给处理器核以及外设使用。整体框架如下图所示。 图处理器时钟架构 注:上图之所以将USB单独列出是因为总结的两个处理器(S3C2440以及9200)都有独立提供USB的时钟,至于具体的原因以及与外围控制器中USB
[单片机]
<font color='red'>ARM9</font>时钟体系结构
arm9(TQ2440)移植小结---环境搭建
从拿到板子开始移植至今已有一个月了,现在回头小结一下,以备后用吧。 第一阶段:搭建环境(vmware + redhat linux 9) 1.安装虚拟机没有什么问题。下面是在虚拟机上安装linux的过程: 虚拟机的设置按照默认也差不多了,内存给了256M,硬盘给了8G,从后面的使用来看, 硬盘还是越大越好,这个东东随时间的增长越来越大。 linux安装完成后就开始安装虚拟机工具(vmware Tools),这个东西安装的很不顺利, 具体方法前面一篇转载的已经说得很完整了,但是至今有个问题没有解决----安装并没有完全成功。 从效果来看,一个是分
[单片机]
<font color='red'>arm9</font>(TQ2440)移植小结---环境搭建
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved