医用电子内镜嵌入式视频采集控制系统设计与实现

来源:网络

点击:928

A+ A-

所属频道:新闻中心

关键词: 医用电子,内镜视频采集,FPGA,乒乓操作,NAND FLASH

      摘要:介绍了一套基于视频编解码芯片、闪存以及FPGA的医用电子内镜实时图像采集控制系统。文中给出了整套系统的硬件方案及其设计框图并介绍了乒乓操作的原理及系统的FPGA程序实现方法。经测试表明系统的性能稳定易于维护成本低廉、性价比较高,在医用内窥镜领域有较好的应用前景。

      随着内窥镜外科、微创外科技术的迅猛发展,医用电子内窥镜已经成为当前应用非常广泛的一种医疗仪器。目前,国产医用电子内镜一般采用视频卡采集,然后在微机中进行处理,有信号损失大、图像效果差、数据容易丢失、处理时间较慢、设备繁多和成本高等缺陷。采用嵌人式视频控制处理技术,可以借助数字化技术对信号进行处理,信号损失少、图像效果好、配置灵活、维护方便,而且大大降低了成本。

      本文采用视频编解码芯片SRAM, NAND FLASH与现场可编程门阵列FPGA (Field Programmable Gate Array)设计了一套医用内镜嵌人式图像采集控制系统。其中,视频解码芯片可以从视频信号中自动获取行、场同步信号并完成A/D转换,而视频编码芯片则可自动对数字信号进行D/A转换,输出模拟信号。SRAM用于对视频流进行乒乓操作,起缓冲作用,而FLASH则用于对个别图像进行存储,适时进行回放。使用FPGA/CPLD开发数字电路,可大大增加电路的集成度、减小PCB体积小、增强系统功能、降低投资和缩短开发周期,且具有可反复编程修改、开发工具智能化和电路设计灵活等特点。随着电子工艺的不断改进,低成本的FPGA/CPLD器件已成为当今硬件开发设计的首选方式之一。因此,本设计具有小体积、低成本、高可靠性和易于再开发等优点。

      1.系统工作原理及设计方案

      视频采集的系统框图如图1所示。系统上电后,单片机(MCU)通过I2C总线对视频编解码芯片初始化。初始化成功后,视频解码芯片开始工作,将通过CCD摄像头采集到的模拟视频信号转换成720x576的YUV4:2:2数字信号,然后输人FPGA。FPGA一方面作为SRAM的地址发生器,将数据输人到SRAM;另一方面还产生SRAM的读写控制信号,用两片SRAM以乒乓操作方式工作,使每片保存一场图像。与此同时,FPGA又将SRAM中的数据传人视频编码芯片中。由于采用了乒乓操作,因此保证了视频流的流畅性,而视频编码芯片则对从FPGA输人进来的数字信号进行编码处理,从而将数字信号还原成模拟视频信号,传人显示器进行显示。

      通过外部按键,可对FPGA发送的图像进行冻结、存储、删除、回放以及分屏回放等处理。一旦得到外部按键信号,FPGA将会按照NAND FLASH的读写协议,在产生SRAM地址信号和读写控制信号的同时,自动产生FLASH读写控制信号,并向FLASH发送相关的读写命令以及地址信息,从而将数据从SRAM搬移至FLASH中(存储)或者从FLASH中搬移至SRAM(回放)。而当FLASH中数据不再需要时,可通过FPGA发送删除命令,直接对FLASH的指定位置进行擦除操作,从而避免了存储空间的不足。其各部分硬件选择和设计如下:

    医用电子内镜嵌入式视频采集控制系统设计与实现

      图1系统结构图

      Fig. 1 System structure diagram

      视频解码芯片采用CONEXANT公司的Bt835KRF,对输人信号进行A/D转换,并提供同步信号与数字信号。视频编码芯片采用CONEXANT公司的型号为Bt860产品,根据解码器提供的同步信号和数据,在输出端完成D/A转换。FPGA采用ALTERA公司Cyclone系列的EP1C6Q240C8芯片。该芯片采用0.13um工艺技术,全铜SRAM工艺,具有5980个逻辑单元,支持近12万门的设计,内嵌RAM共有92160bits,包含2个锁相环电路,包含34个差分通道,最大用户I/O数有185个,可满足设计要求。

      图像缓存模块采用的SRAM芯片是美国IDT公司生产的IDT71V424。它是采用高性能和可靠性的CMOS工艺生产的高速静态存储器,其单片存储容量为512Kx8 Bit,恰好可以存放一帧图像的数据,且具有高速的访问时间(10或12 ns),足够用来保证视频流传输过程中的实时性。其内部完全由静态异步电路构成,无需输入时钟信号,也不必对芯片进行刷新,即可直接对无用数据进行覆盖。

      图像存储模块采用SAMSUNG公司生产的NAND FLASH,型号为K9F5608UOD,容量为264M。NAND结构的FLASH是SAMSUNG公司推出并着力开发的新一代数据存储器件,电源电压为1.7-3.6V,体积小,功耗低,容量最大可达1GB,按页进行读写,按块擦除,通过I/O口分时复用作为命令壮也址墩据。

      2.系统的FPGA设计与实现

      2.1乒乓缓存控制原理

      乒乓操作是一个常常应用于数据流控制的处理技巧,典型的操作方法如图2所示。输人数据流通过输入数据选择单元(在本采集系统中,FPGA内部逻辑结
    构完成此数据选择功能),等时地将数据流分配到数据缓冲区SRAM A和SRAM B中。在第一个缓冲周期,也就是第一场的时间,将输人的数据流缓存到SRAM A;在第二场的时间,通过输人数据选择单元的切换,将输人的数据流缓存到SRAM B。与此同时,将SRAM A中缓存的第一周期数据(第一场图像数据),通过输出数据选择单元的选择,送到数据流处理模块(视频流编码芯片BT860)处理。在第三个缓冲周期,通过输人数据选择单元的再次切换,将输人的数据流缓存到SRAM A中,与此同时将SRAM B中缓存的第二周期数据(第二场图像数据)通过输出数据选择单元的切换,送到数据流处理模块运算处理。如此循环运行,周而复始。

    医用电子内镜嵌入式视频采集控制系统设计与实现

      图2乒乓操作原理图

      Fig. 2 Ping-pong operation schemantic diagram

      乒乓操作的最大特点是通过输人数据选择单元和输出数据选择单元,按节拍、相互配合地切换,将经过缓冲的数据流不停顿地送到数据流运算处理模块进行运算及处理。把乒乓操作模块当作一个整体,此模块两端的输人数据流与输出数据流均是连续不断的,没有任何停顿,因此非常适合进行流水线式处理,完成数据的无缝缓冲与处理。

      2.2 FLAS日内部结构

      由图3所示可知,该器件由2K个块(block)组成,每个块有32页,每页有512+16字节,总容量为256+8M。其中,528字节分成A, B, C, 3个区(如图4所示)。对每一页的寻址需要通过I/O口将地址分成三次发送,其中第二、三次发送的是行(页)地址(A9-A24),指明寻址到某一页;而第一次发送的则是列地址(AO-A7),指明寻址到指定页中某一字节。

    医用电子内镜嵌入式视频采集控制系统设计与实现  

    医用电子内镜嵌入式视频采集控制系统设计与实现

      图4起始指针与区域关系对照表

      Fig. 4 Relationship between pointer and region

      由图4可以看出,OOH, O1H和SOH只是选区指针。选定区的内部寻址是由第一个列地址完成的,AO-A7可以最大寻址256字节。由于OOh、O1h和5Oh这三个命令信号中包含着片地址信息,因此我们把他们称为FLASH的地址A8。

      2.3 FPGA的逻辑控制

      在本系统中,主要通过VHDL语言对FPGA的逻辑控制进行了两部分的设休一部分是数据缓存部分,也即SRAM,另一部分则是数据的存储部分一FLASH,这两部分在下面着重介绍。

      2.3.1数据缓存部分(SRAM)

      在视频采集过程中,必先将数据存储至SRAM进行缓冲,并在采样的同时产生地址。FPGA的读写控制模块需要同时给出两组地址线,两组输人、输出数据总线以及读、写、片选等控制SRAM的控制信号线,其中一组用以控制SRAM A,另一组则控制SRAM B,以便将解码出来的数字信号通过数据信号总线交替地送给SRAM A DATA与SRAM B DATA。为了解决共用总线时的竞争冒险问题,还要适当地控制数据信号与SRAM A DATA, SRAM B DATA的通断。可以用奇偶场信号来控制SRAM A和SRAM B的选择控制。而对SRAM的读写控制,则依靠读写控制信号SRAM WE来完成。实际上,SRAM的数据线也有两组,其工作方式和地址线一样。为了给FPGA以充足的时间来读取SRAM中的数据,还要控制每场图像存人不同的SRAM,从而使得两片SRAM以乒乓方式交替工作。

      本设计采用VHDL对FPGA进行逻辑实现,程序中的乒乓控制部分仿真图如图5所示。

    医用电子内镜嵌入式视频采集控制系统设计与实现

      图5乒乓操作仿真图

      Fig.S Ping-pong Operation Simulation

      其中bt835_ field是解码芯片BT835的场同步信号,当它低时,我们看到SRAM A的输出信号sram_oel为低,而写人信号sram wel为高,8位数据线sram_diol则呈高阻态,这代表此时SRAM A正执行读取操作,将前锁存的奇场信号输出至编码器BT860。而此时的SRAM B则恰恰相反,它的输出信号sram_ oe2为高,而写人信号sram_ wet为低,这说明它正在执行写人操作,将输人端的信号进行锁存。因此,我们可以看到在它的8位数据线sram_ dio址的数据与输人端的bt835_ dat吐的数据完全一致。而当bt835_ field为高时,则两块SRAM互换职责,由此奇偶交替,完成乒乓操作。

      2.3.2数据存储部分(FLASH)

      当发现有用数据,需要将有用数据存储至FLASH或者通过FLASH进行回放时,FPGA不仅要产生SRAM的地址以及读写控制信号,还需按照FLASH真值表(表1)的要求,产生FLASH读写控制信号FLASH_WE和FLASH_ RE,以及命令锁存信号FLASH_ CLE和地址锁存信号FLASH_ ALE,并根据具体需要,产生不同的操作指令以及相对应的地址信息,从而使得FLASH按照要求进行擦除、存储以及读取等操作。

      表1 K9F5608UOD真值表

      Tab. 1 K9F5608UOD Truth-table

    医用电子内镜嵌入式视频采集控制系统设计与实现

      本设计用QuartusII 7.2对FLASH各功能单元进行仿真,并用SignalTapII对实际工作情况进行信号采集,采集所得结果如图6所示。

    医用电子内镜嵌入式视频采集控制系统设计与实现

      (c). Display operation

      图6 FLASH各功能单元仿真

      Fig. 6 Flash Function Simulation

      每当flash_cle处在高电平时flash we产生一布生升沿,则将此时8位数据线flash_io上的信号作为命令信气由图6所示,擦除的命令信号为60 h,存储则为80 h。而进行读取操作时,00h, Olh, 50h皆可,具体选用情况取决于初始地址位于A, B, C中的哪个区,详见图4所示。

      当发送完操作命令信号后,若是执行存储或读取操作,则需要将24位地址(AO-A7, A9-A24)从低到高每次8位的形式分三次发送,此时flash_ale置高位,flash_we共需产生三个匕升沿,每产生一个上升沿,则将flash_io上采集到的信号作为地址信号发送。而由于擦除操作是以块为单位进行,在擦除时只需发送块地址,即A9-A24共16位地址即可,因此在地址命令发送阶段,flash we只需产生两个上升沿即可。地址发送完毕后,需再拉低flash_ale和拉高flash_cle,发送一个命令信号DOh。

      3.结果

      本设计最终实物如图7中所示,其中,(a)为整个医用电子内镜系统图,包括内窥镜(信号源)、显示器以及信号采集控制系统(本文设计核心);(b)为本设计整体外观图;(c)为本设计详细实物图。

      本设计于2009年4月与上海医用光学仪器厂生产的医用电子内镜成功配套,极好的还原了电子内镜所采集的图像信号,实现了对视频信号.的PAL制式兼容,可输出Video, S-Video信号;图像可由操作者控制,实现动态、静态(冻结)的切换;红绿蓝色彩分离单独可调;图像的亮度和对比度亦单独可调;可保存最多40幅图像(720 x 480);在显示设备上可以全屏显示,也可分屏显示(一次回放4幅图像,即图中所示)等多项功能。以上功能均通过上海医用光学厂质检部门检测,检测结果合格。

    医用电子内镜嵌入式视频采集控制系统设计与实现

      4.结束语

      本文设计了一套基于视频编解码芯片、静态随机存储器、闪存与FPGA的医用电子内镜嵌人式图像采集控制系统。利用解码芯片BT835将模拟信号转换为数字信号,并由FPGA进行逻辑控制,将采集的图像进行存储和回放等操作。其硬件结构简单,稳定性高,易于维护,成本低廉,具有很强的实时性、实用性和可移植性,可用于各类图像采集系统。

    (审核编辑: 智汇张瑜)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。