摘 要:本文介绍了一种以CMOS 图像通道进行图像传输的便携式超声诊断仪控制系统。系统基于 ARM 32 位微处理器和嵌入式Linux 操作系统,完成了诊断图像在CMOS 图像通道中的传输和处理,实现了诊断图像的实时显示和大容量非易失性存储。构建诊断仪不仅功能强大、扩展容易,而且还兼顾了小型化的需求。
1 引言
随着医疗诊断仪器小型化、便携化的进程,高性能32位微处理器正在越来越多地应用于各类小型医疗影像设备中,但是如何利用这些微处理器传送和处理实时图像,却是一个丞待解决的问题。从ARM 7系列开始,ARM处理器就集成了CMOS(Complementary Metal Oxide SemiConductor)图像传感器接口,这为解决上述问题提供了可能。处理器可以通过CMOS图像传感器接口适应不同的CMOS图像传感器。通过CMOS接口,图像数据将被送入到系统的CMOS图像通道中。CMOS图像通道为CMOS图像传感器接口与系统AHB(Advanced High peRFormanceBus)总线之间的连接通路,由CSI (CMOS Sensor Interface)和PRP(Pre-Processor)组成。该通道专门用于高速图像传输,提供了多种图像格式输入和传输方式,并能在通道内进行颜色空间变换、窗体调整等多种操作,是诊断图像以及其他图像应用传输的理想通道。
本文讨论了一种基于32位微处理器ARM9E和嵌入式Linux的便携式超声诊断仪的解决方案。系统以CMOS图像通道为诊断网像的传输通道,将采集的超声图像信息送人系统总线,在嵌入式Ijnux操作系统平台上,实现了诊断图像的实时显示和静态图像的大容量非易失性存储,所实现的诊断系统不仅功能强大、扩展容易,而且还兼顾了小型化的需求。
2 系统构架
本文设计的便携式超声诊断仪系统结构如图l所示。用户通过输入设备向系统输入控制命令,完成超声图像的采集、显示、保存等相关处理。当执行扫描命令时,系统通过串口向以FPGA为核心的超声图像采集模块发送图像采集命令,控制超声探头扫描驱动电路和信号发射接收电路同步动作。接收的超声信号在超声图像采集模块中经放大、模数转换后送人FPGA,完成数字扫描变换(DCS)和插值运算后,得到二维的B超图像信息。将该图像信息进行格式转换后通过ARM芯片CMOS接13送人控制系统,经图像通道传输后,完成在LCD(Liquid Crystal Display)上的实时显示,同时可拔插的大容量SD(Secure Digital Memory Card)卡可对所需的图像进行保存。保存的图像信息可以进行离线处理,比如打印、电影回放、远程浏览等。
3 系统硬件设计
3.1硬件框图
本设计选用以ARM926EJ-S为内核的Freescale i.MX21作为处理器,控制系统的硬件框俐如图2所示,系统是以ARM处理器为核心,外加兼容的硬件外设。超声采集模块完成图像的采集和传入,LCD把传人的图像信息实时的显示出来,通过SD卡把大量的图像数据保存起来以便后期处理。通过外加USB HUB。可将鼠标、键盘、打印机接入系统。本地储存的诊断图像数据可以通过快速以太网控制处理器DM9000送入网口,通过以太网实现远程浏览。
3.2 CMOS图像通道
本控制系统CMOS图像通道框图如图3所示,超声图像数据的传入利用i.MX21芯片的CMOS图像传感器接口来实现。该接口支持的图像数据类型包括RGB565、RGB888、YUV422、YUV444等。不同类型的图像数据在CMOS口经过CSI 8位采样后,封装成32位图像数据送人CSI RxFIFO。CSI RxFIFO中的图像数据根据类型的不同,送显和存储的硬件和软件实现方法也是不同的。
[page]
(1)若类型为RGB565,且图像窗体不需要调整(显示设备单一)。图像数据可以通过DMA通道直接传送到显示缓冲区,如图3中通道①;
(2)若类型为RGB565,且图像窗体需要调整(显示设备多样化),图像数据则需要经过前处理器(PRPl,在PRP中调整图像大小送入显示缓冲区,如图3中通道②;
(3)若类型为YUV422,图像数据则需要经过PRP,在PRP中调整图像大小并转换成合适的颜色空间后送人显示缓冲区,如图3中通道②;
(4)若类型为YUV444、RGB888,图像数据则需通过软件编程实现图像数据的颜色处理和转换后送入PRP调整窗体,最后送入显示缓冲区,如图3中通道③。
本设计为使LCD接口输出的图像兼容QVGA、VGA、SVGA、XGA等尺寸的显示屏,且兼顾图像传输的速率、图像显示的质量,我们使用RGB565格式,选用罔3中通道②。因此需将超声图像采集模块所采集的图像信息构造为RGB565格式,故CMOS接口输入的罔像信息时序图如图4所示。
图中Vsync是场I司步信号,Hsync是水平同步信号,Pixelk是象素数据输入同步信号,D [7:0]为象素数据信号。Vsync和Hsync为低电平时即可开始有效图像数据的输入,Pixelk上升沿的到来则表明进行数据输入,Pixelk的一个周期将完成一个图像数据字节的输入。在传输一帧图像过程中,即Vsync的一个周期内,Hsync会出现H次(H为行数)高电平。在Hsync的一个周期内,Pixelk将出现W*Pixelbytes次(W为列数,Pixelbytes为每象素占用字节数)高电平。而下一个Vsync信号上升沿的到来则表明一帧分辨率为W*H的图像输入过程的结束。
CSI RxFIFO中的图像数据送入PRP进行窗体调整后,通过AHB(Advanced High peRFormance Bus)进入内存,PRP窗体的调整通过设置PRP控制寄存器实现。
3.3图像显示及保存
FrameBuffer是Linux为显示设备提供的一个接口,它是显存抽象后的一种设备.对该设备进行读/写则可直接对显存进行操作。通过驱动程序可为FrameBuffer在文件系统中创建一个设备文件fb0,用户要完成对FrameBuffer的图像输入,只需完成对fb0图像的写入操作。当LCDC(LCD Controller)中的Pixel FIFO为空或者部分为空时,LCDC要求从基于突发传输模式的FrameBuffer中取要显示的图像数据。当LCDC的传输请求被存储控制器中过的总线仲裁器接收并确认后,FrameBuffer中的图像数据将通过专用的DMA通道送入Pixel FIFO,然后经过字节翻转、背景前景图像合成后通过LCDC逻辑接口直接送入LCD显示屏接口。
通过MMC/SD接口可将SD卡接入控制系统,利用驱动程序将SD卡挂载在文件系统中。用户可以编写应用程序将内存中的图像数据保存在SD卡中,也可将SD卡中的图像数据读入到内存中。
4 系统软件设计
本控制系统是基于上述硬件平台和嵌入式Linux操作系统开发设计的。首先在硬件平台上实现嵌入式Linux操作系统内核和文件系统的移植,并实现对外设硬件的底层驱动。应用程序采用模块化设计,其中功能模块设计主要包括GUI(Graphical User Interface)和WebServer程序设计,应用模块主要包括采集模块子程序,LCD显示模块子程序,打印模块子程序,SD卡存储子程序,以太网传输子程序等。本文重点对罔像通道相关程序做出论述。
如图3,设计CSI RxFIFO中的图像数据通过专用总线通道②送人PRP,DMA通道①被内部逻辑控制器关断。因此在CSI和PRP的驱动程序中,CSI和PRP的初始化代码应作如下修改:
CSI初始化:
* (uint32_t *)GPIOB_GIUS &= ~0x3FFC00; //关断DMA通道
*(uint32_t *) CSI_CSICR1 |= 0x2; //图像数据上升沿触发
*(uint32_t *) CSI_CSICR1 |= 0x80; //大端格式
*(uint32_t *) CSI_CSICR1 |= 0x10000000; //PRP使能
PRP初始化:
*(uint32_t *)CRM_PCCR0 |= 0x8008000; //PRP时钟使能
*(uint32_t *)EMMA_PRP_CNTL |=0x10000; //PRP复位
*(uint32_t *)EMMA_PRP_INTRCTRL = 0x00000000; //关中断
*(uint32_t *)EMMA_PRP_SPIX_FMT = 0x2CA00565; //RGB565格式数据输入
*(uint32_t *)EMMA_PRP_SFRM_SIZE = 0x028001E0; //输入图像窗体为640 x 480
*(uint32_t *)EMMA_PRP_DISIZE_CH1=0 x028001E0; //输出图像窗体为640 x 480
*(uint32_t *)EMMA_PRP_DPIX_FMT = 0x2CA00565; //RGB565格式数据输出
*(uint32_t *)EMMA_PRP_DLST_CH1 = 0x00000280; //行步为640
本设计初始安装分辨率为640 x 480的LCD.如上设置初始化后,图像数据将由CSI RxFIFO进入PRP处理。为了使上层用户在不改变设备文件的前提下,直接利用CSI设备文件描述符,采用如下代码将CSI设备文件的虚拟地址映射为PRP输出的物理地址,用户就可以直接从CSI设备文件中读取经PRP处理后的图像数据。
if ((csi_data_buf = (U32 *)__get_free_pages(GFP_KERNEL, 8))) {
prp_buf_phy_addr = virt_to_phys((void *) csi_data_buf);
printk("Buffer start: 0x%08x, PRP addr: 0x%08x\\n", (int) csi_data_buf, (int)prp_buf_phy_addr);
} else {
printk ("ERROR: cannot allocate buffer memory for driver ! \\n");
return -1; }
[page]
通过如上驱动程序的修改,用户就可以编写应用程序实现对PRP处理后的图像数据进行送显和存储。应用程序的程序概图如图5所示:
5 测试结果
本文设计的控制系统经测试,诊断图像实时显示的帧率可以达到20‰,大于便携式B超图像10帧/s的帧率要求.且LCD观察图像画面清晰。采用RGB565格式的标准位图保存诊断图像信息,每张图片的数据大小为:
640 * 480 * (5+6+5)/8=614400 bytes
使用1G的SD卡作为外部存储设备,可以存储1747张诊断图片。完全满足便携式诊断设备的要求和实际诊断情况的需要。
6 结论
本设计采用ARM9E为核心的Freescale i.MX21芯片作为便携式超声诊断仪中央处理器,利用其内置的CMOS图像传感器通道,将超声图像采集模块输入的图像信息实时的显示出来,并根据需要对显示的图像进行保存。经测试,该控制系统工作稳定可靠,满足了常规的诊断需要,具有较高的实用价值。
本文作者创新点:本文采用的专用高速CMOS图像传输通道将超声诊断图像输入控制系统并进行处理。在软硬件都满足需求的基础上给出了详细的设计实现,说设计的系统在诊断图像的显示帧率、显示画面清晰度方面都达到了很好的效果。为同类系统设计、升级和改进打下了良好的基础。
本项目产业化后投入市场,年经济效益可达 1000 万元。
参考文献:
[1] 郑政,计建军,李穗等. 一种新型眼科超声生物显微镜[J].上海理工大学学报,
2005,(06).512-516
[2] 杨柳,郑政,黄云开. 基于嵌入式Linux的便携式超声诊断仪控制系统[J].上海工程技术
大学学报,2007,12(21).361-364
[3] 洪源. 嵌入式系统及其在ARM中的应用[J].微计算机信息,2007,11(2). P27-29
上一篇:英研发新碳基超导物质 可降低磁共振扫描仪成本
下一篇:EIZO推出高亮度医疗成像用彩色液晶显示器
推荐阅读最新更新时间:2024-03-16 11:38
- 热门资源推荐
- 热门放大器推荐
- ARM Cortex-M0权威指南(中文)
- 硅光子设计(从器件到系统)
- 纳机电系统
- 嵌入式C语言自我修养——从芯片、编译器到操作系统 带目录 文字版
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, OpenResty.
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况