您现在的位置是:主页 > 医疗电子 >


基于嵌入式的骨科手术在3D打印图像控制系统的硬件设计

2020-02-24 20:31医疗电子 人已围观

简介骨折多由严重创伤和高能量损伤所致,近年来发生率明显呈增长趋势[1]。内固定,手术创伤度对骨折手术尤其重要,除了预防并发症外,复位内固定质量与创伤程度对治疗骨折极其关键...

  骨折多由严重创伤和高能量损伤所致,近年来发生率明显呈增长趋势[1]。内固定,手术创伤度对骨折手术尤其重要,除了预防并发症外,复位内固定质量与创伤程度对治疗骨折极其关键[2]。大多数骨科临床研究表明,平面显示的二维图像不能完全给人直观、立体的感觉, 影响医患双方沟通,医生不易解释手术方案,不利于构建和谐医患关系[3]。为使手术更精准、安全,本研究将 3D 打印技术用于打印骨骼以及骨骼修复体的基于嵌入式的 FDM 型 3D 打印图像控制系统,主要研发了系统的图像控制模块的 framebuffer 的驱动程序,完成了framebuffer 的驱动程序设计,在治疗时,能够利用 3D 技术打印出患者的骨骼实物模型,根据骨骼模型对植入导板进行精确塑形,再将塑形后的骨导板移植到骨骼中进行骨骼的修复。
  
  1 3D 打印图像控制系统中图像的传输与显示
  
  嵌入式系统传输图像数据信息,需要通过 Linux 系统下的帧缓冲(framebuffer)结构控制器来实现。因此 framebuffer 的相关知识对于本系统的实验十分重要,本研究主要完成 framebuffer 的驱动程序设计,完成控制系统中图像的传输与显示。
  
  工作原理如图 1。
  图 1 framebuffer 工作原理图
  图 1 framebuffer 工作原理图
  
  1.1 嵌入式系统 framebuffer 设计
  
  1.1.1 FDM 3D 打印图像传输系统 framebuffer 总体控制设计
  
  本系统所使用的芯片为 Atmega 2560-16AU(AVR 核心处理器 8 位 16MHz,256KB  Flash),集成了很多的外部设备来配合完成芯片控制功能,在 linux 系统下的源代码中的 linux/platform_device.h 头文件中定义了 platform_device 数据结构来管理描述这些外部设备。在系统启动时,就可以将所有芯片的平台设备加载,结构体形如下:
  
  struct platform_device Atm2560_device_fb = {
  
  .name = "Atm2560-fb", //设备名
  
  .id = -1, //同种多个设备的编号
  
  .num_resources = ARRAY_SIZE(Atm2560_fb_resource),//资源数
  
  .resource = Atm2560_fb_resource,//资源结构体数组首地址
  
  .dev.dma_mask = &Atm2560_device_fb.dev.coherent_dma_mask,
  
  .dev.coherent_dma_mask = 0xffffffffUL,
  
  };
  
  1.1.2 FDM 3D 打印图像传输系统 framebuffer 驱动结构设计
  
  帧缓冲作为用户与硬件之间的中间层,起到电脑显卡的作用,应 用程序对帧缓冲的操作即可看作是对显存的操作。framebuffer 启动后,需要我们对其  linux/drivers/videos/下的其的驱动程序进行部分编写,驱动程序是应用程序与外部设备之间的操作的接口,对应我们所 使用的 Atmega 2560-16AU(AVR 核心处理器 8 位 16MHz,256KB Flash)芯片,才能实现具体的图像显示功能。framebuffer 设备驱动包括在如下两个内核文件中:
  
  (1)linux/include/linux/fb.h
  
  (2)linux/drivers/video/fbmem.c
  
  fb.h 中主要包括了 framebuffer 驱动程序中占主要地位的数据结构。而 fbmen.c 则是既为上层的应用程序提供操作 framebuffer 设备的函数接口,让基本操作与硬件设备无关,又为底层的硬件设备提供 了相应的操作接口,但这些操作也不由 fbmen.c 完成,而是由系统使用的芯片处理器来决定的,本文中,我们由 Atm2560fb.c 来实现这些操作,需要根据不同的 LCD 控制器来实现相关的接口。图 2 为framebuffer 设备驱动结构。
  图 2 framebuffer 驱动结构
  图 2 framebuffer 驱动结构
  
  1.1.3 FDM 3D 打印图像传输系统 framebuffer 驱动程序设计
  
  1.1.2 中完成 framebuffer 驱动程序的设计,才能使其正常工作, 让图片正确的显示。驱动程序与开发所使用的的硬件设备相关。所以, 驱动程序分为了两层:标准驱动和非标准驱动。
  
  由图 2 可以看出,标准驱动主要为应用程序提供操作接口[4],主要操作在 fbmem.c 的 file_operations 结构里,而底层驱动则是framebuffer 驱动程序真正需要完成的功能,需要进行相应程序的编写,来实现真正的图片显示。 本系统中帧缓冲驱动主要在drivers/video/Atm2560/Atm2560fb.c 中 ,驱动的全部信息在Atm2560fb_info_t 中。
  
  framebuffer 的驱动程序就需要编写 Atm2560fb.c 文件,主要包括以下几个内容:
  
  (1)初始化 fb_info 中成员函数。
  
  底层驱动需要与设备驱动实现绑定,这一过程就是在底层 驱动的加载的过程中完成的, 为了实现与方便绑定, 每一个platform_device 都定义了一个 platform_driver。
  
  2 系统测试
  
  本文采用黑龙江拓盟科技有限公司的 TMKJ -ET 系列 FDM 3D 打印机进行图像控制系统的操作实验,将骨手术患者术前 CT 扫描数据导入三维建模软件中生成三维骨结构,如图 3 所示。图 4 对术前骨手术患者骨骼进行复位后图像还原对比,得到修复后的骨骼三维图, 利用 3D 打印机将术后骨三维模型打印成型,并对打印的模型进行骨导板复原手术,最后,将精准的骨导板植入到患者骨骼中,完成骨手术的固定复原。
  图 3 骨手术前及术后 CT 图
  图 3 骨手术前及术后 CT 图
  图 4 骨手术前三维重建以及术后三维重建图
  图 4 骨手术前三维重建以及术后三维重建图
  
  通过手术证明,FDM 3D 打印图像控制系统运行速度快,交互性高,性能稳定,可以精确打印骨科手术患者的三维骨模型,保证了骨 科手术安全性和可靠性,使基于嵌入式的 FDM 型 3D 打印图像控制系统更好服务于广大骨科疾病患者。
  
  3 结束语
  
  在本研究中,3D 打印技术已经用于打印骨骼及骨骼修复体等。在治疗时,能够利用 3D 技术打印出患者的骨骼实物模型,根据骨骼模型对植入导板进行精确塑形,再将塑形后的导板移植到骨手术中进行骨骼的修复。以往的 3D 打印图像控制系统集成复杂,界面交互感差且效率低。本研究系统的图像控制模块的 framebuffer 的驱动程序, 完成了 framebuffer 的驱动程序设计,通过系统测试结果表明,该图像控制系统运行操作简单,效率高且性能稳定,可以精确打印骨科手术患者的三维骨模型,保证了医生能够进行精准的骨科手术。

Tags:

标签云