骨折多由嚴重創(chuàng)傷和高能量損傷所致,近年來發(fā)生率明顯呈增長趨勢。內(nèi)固定,手術(shù)創(chuàng)傷度對骨折手術(shù)尤其重要,除了預(yù)防并發(fā)癥外,復位內(nèi)固定質(zhì)量與創(chuàng)傷程度對治療骨折極其關(guān)鍵。大多數(shù)骨科臨床研究表明,平面顯示的二維圖像不能完全給人直觀、立體的感覺, 影響醫(yī)患雙方溝通,醫(yī)生不易解釋手術(shù)方案,不利于構(gòu)建和諧醫(yī)患關(guān)系。為使手術(shù)更精準、安全,本研究將3D 打印技術(shù)用于打印骨骼以及骨骼修復體的基于嵌入式的 FDM 型 3D 打印圖像控制系統(tǒng),主要研發(fā)了系統(tǒng)的圖像控制模塊的 framebuffer 的驅(qū)動程序,完成了framebuffer 的驅(qū)動程序設(shè)計,在治療時,能夠利用 3D 技術(shù)打印出患者的骨骼實物模型,根據(jù)骨骼模型對植入導板進行精確塑形,再將塑形后的骨導板移植到骨骼中進行骨骼的修復。
1 3D 打印圖像控制系統(tǒng)中圖像的傳輸與顯示
嵌入式系統(tǒng)傳輸圖像數(shù)據(jù)信息,需要通過 Linux 系統(tǒng)下的幀緩沖(framebuffer)結(jié)構(gòu)控制器來實現(xiàn)。因此 framebuffer 的相關(guān)知識對于本系統(tǒng)的實驗十分重要,本研究主要完成 framebuffer 的驅(qū)動程序設(shè)計,完成控制系統(tǒng)中圖像的傳輸與顯示。
工作原理如圖 1。
圖 1 framebuffer 工作原理圖
1.1 嵌入式系統(tǒng) framebuffer 設(shè)計
1.1.1 FDM 3D 打印圖像傳輸系統(tǒng) framebuffer 總體控制設(shè)計
本系統(tǒng)所使用的芯片為 Atmega 2560-16AU(AVR 核心處理器 8 位 16MHz,256KB Flash),集成了很多的外部設(shè)備來配合完成芯片控制功能,在 linux 系統(tǒng)下的源代碼中的 linux/platform_device.h 頭文件中定義了 platform_device 數(shù)據(jù)結(jié)構(gòu)來管理描述這些外部設(shè)備。在系統(tǒng)啟動時,就可以將所有芯片的平臺設(shè)備加載,結(jié)構(gòu)體形如下:
struct platform_device Atm2560_device_fb = {
.name = “Atm2560-fb”, //設(shè)備名
.id = -1, //同種多個設(shè)備的編號
.num_resources = ARRAY_SIZE(Atm2560_fb_resource),//資源數(shù)量
.resource = Atm2560_fb_resource,//資源結(jié)構(gòu)體數(shù)組首地址
.dev.dma_mask = &Atm2560_device_fb.dev.coherent_dma_mask,
.dev.coherent_dma_mask = 0xffffffffUL,
};
1.1.2 FDM 3D 打印圖像傳輸系統(tǒng) framebuffer 驅(qū)動結(jié)構(gòu)設(shè)計
幀緩沖作為用戶與硬件之間的中間層,起到電腦顯卡的作用,應(yīng) 用程序?qū)彌_的操作即可看作是對顯存的操作。framebuffer 啟動后,需要我們對其 linux/drivers/videos/下的其的驅(qū)動程序進行部分編寫,驅(qū)動程序是應(yīng)用程序與外部設(shè)備之間的操作的接口,對應(yīng)我們所 使用的 Atmega 2560-16AU(AVR 核心處理器 8 位 16MHz,256KB Flash)芯片,才能實現(xiàn)具體的圖像顯示功能。framebuffer 設(shè)備驅(qū)動包括在如下兩個內(nèi)核文件中:
(1)linux/include/linux/fb.h
(2)linux/drivers/video/fbmem.c
fb.h 中主要包括了 framebuffer 驅(qū)動程序中占主要地位的數(shù)據(jù)結(jié)構(gòu)。而 fbmen.c 則是既為上層的應(yīng)用程序提供操作 framebuffer 設(shè)備的函數(shù)接口,讓基本操作與硬件設(shè)備無關(guān),又為底層的硬件設(shè)備提供 了相應(yīng)的操作接口,但這些操作也不由 fbmen.c 完成,而是由系統(tǒng)使用的芯片處理器來決定的,本文中,我們由 Atm2560fb.c 來實現(xiàn)這些操作,需要根據(jù)不同的 LCD 控制器來實現(xiàn)相關(guān)的接口。圖 2 為framebuffer 設(shè)備驅(qū)動結(jié)構(gòu)。
圖 2 framebuffer 驅(qū)動結(jié)構(gòu)
1.1.3 FDM 3D 打印圖像傳輸系統(tǒng) framebuffer 驅(qū)動程序設(shè)計
1.1.2 中完成 framebuffer 驅(qū)動程序的設(shè)計,才能使其正常工作, 讓圖片正確的顯示。驅(qū)動程序與開發(fā)所使用的的硬件設(shè)備相關(guān)。所以, 驅(qū)動程序分為了兩層:標準驅(qū)動和非標準驅(qū)動。
由圖 2 可以看出,標準驅(qū)動主要為應(yīng)用程序提供操作接口[4],主要操作在 fbmem.c 的 file_operations 結(jié)構(gòu)里,而底層驅(qū)動則是framebuffer 驅(qū)動程序真正需要完成的功能,需要進行相應(yīng)程序的編寫,來實現(xiàn)真正的圖片顯示。 本系統(tǒng)中幀緩沖驅(qū)動主要在drivers/video/Atm2560/Atm2560fb.c 中 ,驅(qū)動的全部信息在Atm2560fb_info_t 中。
framebuffer 的驅(qū)動程序就需要編寫 Atm2560fb.c 文件,主要包括以下幾個內(nèi)容:
(1)初始化 fb_info 中成員函數(shù)。
底層驅(qū)動需要與設(shè)備驅(qū)動實現(xiàn)綁定,這一過程就是在底層 驅(qū)動的加載的過程中完成的, 為了實現(xiàn)與方便綁定, 每一個platform_device 都定義了一個 platform_driver。
2 系統(tǒng)測試
本文采用黑龍江拓盟科技有限公司的 TMKJ -ET 系列 FDM 3D 打印機進行圖像控制系統(tǒng)的操作實驗,將骨手術(shù)患者術(shù)前 CT 掃描數(shù)據(jù)導入三維建模軟件中生成三維骨結(jié)構(gòu),如圖 3 所示。圖 4 對術(shù)前骨手術(shù)患者骨骼進行復位后圖像還原對比,得到修復后的骨骼三維圖, 利用 3D 打印機將術(shù)后骨三維模型打印成型,并對打印的模型進行骨導板復原手術(shù),最后,將精準的骨導板植入到患者骨骼中,完成骨手術(shù)的固定復原。
圖 3 骨手術(shù)前及術(shù)后 CT 圖
圖 4 骨手術(shù)前三維重建以及術(shù)后三維重建圖
通過手術(shù)證明,F(xiàn)DM 3D 打印圖像控制系統(tǒng)運行速度快,交互性高,性能穩(wěn)定,可以精確打印骨科手術(shù)患者的三維骨模型,保證了骨 科手術(shù)安全性和可靠性,使基于嵌入式的 FDM 型 3D 打印圖像控制系統(tǒng)更好服務(wù)于廣大骨科疾病患者。
3 結(jié)束語
在本研究中,3D 打印技術(shù)已經(jīng)用于打印骨骼及骨骼修復體等。在治療時,能夠利用 3D 技術(shù)打印出患者的骨骼實物模型,根據(jù)骨骼模型對植入導板進行精確塑形,再將塑形后的導板移植到骨手術(shù)中進行骨骼的修復。以往的 3D 打印圖像控制系統(tǒng)集成復雜,界面交互感差且效率低。本研究系統(tǒng)的圖像控制模塊的 framebuffer 的驅(qū)動程序, 完成了 framebuffer 的驅(qū)動程序設(shè)計,通過系統(tǒng)測試結(jié)果表明,該圖像控制系統(tǒng)運行操作簡單,效率高且性能穩(wěn)定,可以精確打印骨科手術(shù)患者的三維骨模型,保證了醫(yī)生能夠進行精準的骨科手術(shù)。
評論
查看更多