在過去十年,特別是在最近幾年,對如何將“重量級”的主流操作系統(OS),如Windows、Windows CE和Linux用于醫療設備,開發人員的興趣顯著提升。推動因素有很多,如今的醫療設備用戶希望醫療設備擁有多個高級接口,并且很多開發人員已經有在臺式電腦和服務器上使用這些操作系統和相關工具的經驗。就在不久前,如果想要選擇一款功能豐富的操作系統,用于嵌入式醫療設備的開發,那么有兩個典型的選項:微軟Windows CE(有時是桌面Windows本身)或Linux(或其它Unix變體)。 在二者中,Windows CE的優勢在于,它是一款完全集成的開發平臺,從設備驅動程序一路到應用程序框架。有些開發人員可能不太喜歡Windows CE,但Windows CE可以一種快速而簡單且難度最小的方式啟動某個項目,這一點幾乎很少有人會反駁。CE同樣存在不足之處:使用需要支付版稅,并且其代碼庫被微軟公司控制。但值得注意的是,后者也會帶來一些好處。 Linux和其它Unix變體具有免費和開放源碼的優勢,但一直以來,若要將它們用于嵌入式設備(尤其是那些配置有高級用戶接口的設備),存在很大障礙。 Linux操作系統原本設計用于臺式機/服務器,且典型分布包含有很多特性(要占用幾兆字節空間和幾個CPU周期),但嵌入式系統根本不需要或者極少用到這些特性。因此,一直以來,若要在Linux操作系統中啟動某個嵌入式新項目,需要多名開發人員花上幾周的時間來創建輕量級(lightweight)軟件映像,帶有所需的功能子集,并且有附加的供嵌入使用的資源。雖然手動搭建Linux映像可以優化事件,但結果仍然沒有被完全優化—有許多用于臺式機的重要代碼不能被削減,并且它們不能高效地利用存儲器、CPU和/或功率。 因此,在過去,要么選擇容易上手的專利系統(Windows CE),或是選擇需要開展大量工作才能啟動的免費和開放的系統(Linux和Linux家族)。 谷歌的Android操作系統進入嵌入領域的時間相對短一些。從根本上講,Android的目的是在Linux操作系統的基礎提供一款功能全面的嵌入式系統框架。總的來講,Android旨在使Linux /免費軟件像Windows CE一樣即開即用、易于使用。 谷歌在2007年11月首次發布Android,當時它被定位成一款針對智能手機的操作系統。Android已經取得明顯成功:在不到三年的時間里,Android已經成為最流行的智能手機操作系統,全球有一半的智能手機使用Android操作系統。每年有10000萬臺Android手機進入市場。 開發人員后來迅速地意識到:除了手機之外,Android在嵌入式應用中也大有用武之地。當前的很多嵌入式設備和手機具有很多相同的屬性:小尺寸液晶顯示屏/觸摸屏、豐富的圖形用戶界面、低功耗處理器、豐富的連接選項(蜂窩、無線、藍牙,等)、電池供電、等等。 因為要考慮可靠性問題,在采用新技術這一塊,醫療設備開發人員一直以來稍稍落后。在等到新技術成熟之后,再將其用于美國FDA監管的設備,這樣做很重要。但是Android操作系統是雜交品種:雖然這項技術相對較新,但是Android是以Linux技術為基礎的,而經過檢驗的Linux技術已經在行業中為人所熟知。 Android是什么? Android是一款完整的操作系統和應用框架,設計用于ARM處理器。 Android在根本上使用的是Linux,但為了將其搭建成一款用于快速開發的完整框架,谷歌從以下多個方面對其進行了升級和擴展: 1. Android內核支持用于實現更高效電源管理的擴展,并對進程之間的通信進行了修改。 2. Android用自己的Bionic替換了Glibc庫。Bionic庫占用的容量小且速度快,并且Bionic庫支持BSD授權而不是GPL授權,從而使用戶不需要GPL授權。 3.包括有嵌入應用程序需要經常用到的多個庫,如WebKit(網頁渲染)、媒體框架、SQLLite和其它庫。 4.有一個硬件抽象層,用于定義硬件驅動程序所需要的接口。 5.機器人運行環境,由Dalvik,優化用于嵌入式應用的Java虛擬機和用于應用程序開發的核心Java API組成。盡管Android的“主導模式”是在Java環境下開發應用程序,但也可以用C和其它語言來編寫應用程序,然后使用本地開發工具包將其編譯成本地ARM代碼。 6. Android應用程序框架,用于實現Java Android應用程序的面向對象的標準結構。 Android是開源的,但設計目標是為了將商業開發人員與GPL更好地分隔開。Linux內核在GPL之下,但Android其余大部分的內容以更為較寬松的Apache授權進行發布,允許其在專有和開源開發中使用。簡單來說,相比標準Linux,Android讓授權變得更加簡單和明了。 谷歌還開發了一套非開源的應用程序,包括Android Market和GPS套件。它們主要被用于手機。 要不要在我的醫療設備中使用Android? 給醫療設備選定操作系統,在很大的程度上和為任何其它設備選擇操作系統是一樣的:我們選擇我們認為能夠將醫療設備的價值在其生命周期內最大化的操作系統。需要考慮的因素包括: 產品能多快上市? 開發成本為多少? 這一選擇將如何影響我們銷售商品的成本? 授權費用為多少? 一旦我們的產品推向市場之后,維持技術性成本需要多少錢? 我們對我們的時間/成本估算有多大的信心? 如果是一個醫療項目,則還要包括以下一個額外的問題: 做這個選擇,是否能得到一款風險能被病人和用戶所接受的設備? 眾所周知,醫療器械和其它大多數設備不同,因為醫療器存在重大風險,特別是病人而言。依據醫療設備對病人的危險程度以及FDA認為合理的監管審查力度,FDA將所有醫療設備劃分為三大類。 I類設備的風險最小,包括像壓舌板、繃帶和基本的手術器械。 II類設備具有中等風險,包括心電圖機、X光機、血液氣體分析器和輸液泵。III類設備的風險最高,包括植入式除顫器 ,人工心臟瓣膜和植入式小腦刺激器。 相比主要針對可靠性而設計的更小型、更方便測試的操作系統,重量級操作系統(如Android)基本上更容易出現故障。這倒不是說重量級操作系統必然經常出故障。對于許多設備而言,每年一次重新啟動來修復軟件鎖定就可以了。因此,所以,考慮到重量級操作系統所具有的用戶界面更好、上市速度更快以及其它優點,偶爾重新啟動帶來的不便可以被原諒。但是,對于植入式除顫器來說,每年重新啟動一次可能是不行的。 依據通常的經驗,Android和與之類似的操作系統適用于I類和II類設備,而III類設備通常需要使用具有高可靠性的更小型的操作系統。當然,每臺設備的情況不同。不論是開發何種醫療設備,我們都要充分考慮和了解與操作系統相伴隨的風險。 一個用于獲得“兩全其美”的方法是將處理任務分成兩部分:用一個采用高可靠操作系統的處理器來執行核心功能,用一個采用重量級OS的處理器來處理沒那么重要的任務。輸液泵就是一個例子,一個采用高可靠性操作系統的處理器在輸液過程中控制電機,而另一個運行Android的處理器則運行GUI、通信,等等。請注意,用到兩個處理器的解決方案并不是一個立竿見影的靈丹妙藥。需要充分考慮和詳細規劃。要確保醫療設備的安全性和可測試性。 用戶眾多的優勢 如果你所設計的嵌入式設備選擇使用Android,那么有成千上萬部手機所運行的Android堆棧和你的嵌入式設備所運行的Android堆棧,在本質是相同的。有大量的用戶在查找Android操作系統的漏洞,同時有龐大的開發社區致力于修復這些漏洞。盡管Android的可靠性不如輕量級專用操作系統,但和從零開始開發Linux堆棧相比,Android是一款經過徹底調試的系統。此外,目前有超過10萬款支持Android的應用程序,其中有很多程序可以簡化和加速開發過程。這就是說,Android開發并不是很復雜,有龐大的開發人員群支持Android。 對于那些對軟件可靠性要求不高,且價格可以支持所需硬件的醫療設備,Android具有很強的競爭力。它在功能、資源需求和生產力之間做了很好的平衡,并且具有以規模龐大且繁榮的Linux產業鏈為基礎的額外優勢。 |