骨折多由嚴重創傷和高能量損傷所致,近年來發生率明顯呈增長趨勢。內固定,手術創傷度對骨折手術尤其重要,除了預防并發癥外,復位內固定質量與創傷程度對治療骨折極其關鍵。大多數骨科臨床研究表明,平面顯示的二維圖像不能完全給人直觀、立體的感覺, 影響醫患雙方溝通,醫生不易解釋手術方案,不利于構建和諧醫患關系。為使手術更精準、安全,本研究將3D 打印技術用于打印骨骼以及骨骼修復體的基于嵌入式的 FDM 型 3D 打印圖像控制系統,主要研發了系統的圖像控制模塊的 framebuffer 的驅動程序,完成了framebuffer 的驅動程序設計,在治療時,能夠利用 3D 技術打印出患者的骨骼實物模型,根據骨骼模型對植入導板進行精確塑形,再將塑形后的骨導板移植到骨骼中進行骨骼的修復。
1 3D 打印圖像控制系統中圖像的傳輸與顯示
嵌入式系統傳輸圖像數據信息,需要通過 Linux 系統下的幀緩沖(framebuffer)結構控制器來實現。因此 framebuffer 的相關知識對于本系統的實驗十分重要,本研究主要完成 framebuffer 的驅動程序設計,完成控制系統中圖像的傳輸與顯示。
工作原理如圖 1。
圖 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 驅動結構
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 圖
圖 4 骨手術前三維重建以及術后三維重建圖
通過手術證明,FDM 3D 打印圖像控制系統運行速度快,交互性高,性能穩定,可以精確打印骨科手術患者的三維骨模型,保證了骨 科手術安全性和可靠性,使基于嵌入式的 FDM 型 3D 打印圖像控制系統更好服務于廣大骨科疾病患者。
3 結束語
在本研究中,3D 打印技術已經用于打印骨骼及骨骼修復體等。在治療時,能夠利用 3D 技術打印出患者的骨骼實物模型,根據骨骼模型對植入導板進行精確塑形,再將塑形后的導板移植到骨手術中進行骨骼的修復。以往的 3D 打印圖像控制系統集成復雜,界面交互感差且效率低。本研究系統的圖像控制模塊的 framebuffer 的驅動程序, 完成了 framebuffer 的驅動程序設計,通過系統測試結果表明,該圖像控制系統運行操作簡單,效率高且性能穩定,可以精確打印骨科手術患者的三維骨模型,保證了醫生能夠進行精準的骨科手術。
評論
查看更多