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