在嵌入式系統開發和應用過程中,差異化也許是最有趣的事。每臺設備都有獨特的硬件和軟件架構及其自身的獨特功能。因此,要設計出可滿足如此廣泛要求的軟件開發工具和操作系統就成為一個艱巨挑戰。在嚴峻的經濟條件下,對開發商來說,若因外包使其核心競爭力受損則絕非明智之舉。但作為開發者畢竟更愿意外包那些可以從商業渠道獲得的不具差異化特征的組件(圖1)。![]() 圖1、醫療電子設備設計周期內多達30%的時間花在非差異性工作上。 嵌入式設備市場存在可廣泛涵蓋的某些共同特性。醫療設備和儀器就是其中越來越重要的一個領域。在現代化的醫療機構內,電子技術應用的范圍之廣、數量之多是“觸目驚心”的。醫療設備和系統的范圍從龐大的要占用一整間房的核磁共振成像掃描儀到便攜式和手持儀器、再到如心臟起搏器等植入式設備,應有盡有。上述每種產品都是嵌入式系統。 當設計醫療設備系統時,軟件開發人員必須牢記如下四個主要方面:1)安全。無論設計還要遵從哪些其它標準,安全都是其中最重要的,不可以犧牲安全為代價。2)性能。大多數嵌入式系統都有若干性能標準,但對許多醫療設備來說,其性能可是性命攸關的。3)經濟性。現在全球醫療康護成本都在不斷上升,控制醫療設備開發成本是實現負擔得起的醫療保健的關鍵之一。4)功能。設計任何設備的意義都在于能為用戶提供若干具體功能和用處。本文將重點探討嵌入式軟件、特別是實時操作系統的選擇和實施是如何影響上述四個方面的。 安全 當病人到醫院就診時,他或她所期待的是病患的緩解或治愈而不是受到傷害。時刻牢記病人的安全是醫療機構應盡的職責和義務。這就強制了醫療儀器和系統要遵從一套明確的安全標準。但對嵌入式軟件又有哪些要求? 用法(請用粗宋)。操控醫療設備出錯的代價比操控任何其它設備出錯的代價都高。有不同制造商制造的、工作于不同方式的、許多種不同醫療設備在使用中。這些設備在高壓力環境下使用,常常是由超負荷且疲憊的醫護人員操作的。很難想象一位整天連軸轉的醫生會認真研讀每臺要使用設備的操作手冊。 所以,所有 “智能”醫療設備都要有直觀的用戶界面(UI)就變得至關重要。越來越多的用戶界面是由帶巧妙編排的菜單和多媒體功能的高分辨率圖形顯示器實現的。開發高品質用戶界面軟件并非易事。用戶界面開發包必須帶可用的商業操作系統,以便能以具成本效益的方式為復雜的醫療設備構建具有卓異特性的用戶界面。 可靠性(請用粗宋)。醫療儀器的硬件設計人員會選用高可靠性器部件。同樣,構建可靠的軟件也應使用經過現場驗證、諸如已商品化且應用廣泛并滿足手頭工作要求的操作系統(OS)等組件(如,用實時操作系統而不是臺式機操作系統的衍生版本)。 一臺要經常關電重啟以“復位重置”的醫療設備是不可接受的。在彈出的對話框內給出一個莫名其妙的出錯報告并非一種可接受的方法,應不在設計考慮之內。 驗證(請用粗宋)。在大多數國家,監管機構測試并認證醫療設備是否滿足特定標準。軟件認證是一個復雜且昂貴的過程,通常在系統級實施。因此,購買一款“經過核證的實時操作系統(RTOS)”是不可能的,因為RTOS只是一個完整應用中的一個組成部分。 但根據所選的RTOS,有三個因素可提升獲得認證的幾率。首先是選用一款具有良好設備認證記錄的實時操作系統;其次是RTOS的大小。軟件的認證費用與所含的代碼大小成正比。一個具有高度可擴展性且代碼少的操作系統顯然有利于降低成本。第三,提供源代碼的操作系統將簡化認證過程中的修改操作,并支持對在最終設計中到底包含哪些代碼具有最終控制權。 性能 對許多類型的系統(如臺式電腦)來說,通過簡單地提升CPU性能、加大內存容量就可提升系統性能。但對許多嵌入式系統、特別是絕大多數醫療設備來說,這種做法卻行不通。相反,必須要以性能和功能最恰到好處的CPU以及最少量的內存來實現既定目標。上述要求是通過高效運行構建在“快速”操作系統基礎之上的軟件實現的。 大多數醫療系統是“實時運行”的。但這并不一定意味著它們工作的速度快,而是說它們必須要在特定時間內做出響應,其特點是可預測性或確定性。對事件的反應必須“準時”——不早也不晚。實現可預測性的第一步是使用確定性或真正的實時操作系統。 經濟性 醫療設備和系統市場的競爭非常激烈,最大限度地降低成本至關重要。需考慮的一些成本構成包括: 開發成本(請用粗宋)。醫療設備的研發過程受多種因素的影響。產品上市進度也許是最重要的因素。軟件設計、開發和認證必須要在非常緊迫的期限內完成。重復使用經過驗證的軟件(如實時操作系統)可以加速這一進程。自己開發一款RTOS代價高昂,且需要長期的支持擔當。使用商業操作系統使滿足各種標準變得容易,且還能簡化認證過程、減少認證費用。了解所選用的代碼業已在先前的應用中得到成功認證,對降低開發成本很關鍵。硬件/軟件集成階段往往是最費心費力費時的,在時間段上,它一般處在最終產品發布日和最新的可用原型硬件提供日之間。 制造成本(請用粗宋). 在更小內存上運行的高效軟件加之選用非高端的CPU可降低器件成本、減少所需的元器件數。一個商用實時操作系統在這方面有幫助,且如果其商業模式是靈活的,它就不會對成本產生負面影響。 功能 提供特定的設備功能是應用軟件的根本職責。但是,在有些情況,實現所需的功能會特別費時費力。 設備支持(請用粗宋)。在嵌入式軟件開發中,設備支持是個大挑戰,其后續工作與硬件有更多牽連。此外,能使硬件部件特點相得益彰的軟件編程技巧也至關重要。目前大多數電子產品設計依賴于商用標準外圍器件。對大多數商業操作系統來說,這些設備的驅動軟件是現成的。使用以前已被應用過多次的代碼會使硬件/軟件集成工作簡單得多。 便攜性(請用粗宋)。越來越多的醫療設備要求便攜性。雖然便攜性始于對硬件的要求,但它對軟件產生重大影響。關鍵問題是降低功耗、以最大限度地延長電池壽命。軟件可在以下方面對便攜性有所助益: ![]() 圖2、可擴展性:只有用到的操作系統服務調用才占用內存。 1)減小內存容量。盡量減少軟件的內存占用將減少所需內存量,從而降低功耗。一款商用操作系統很可能是緊湊的且具有高效擴展能力,這樣就可能僅對 用到的代碼實施配置。下圖2演示了一款假設的具有271個服務調用的操作系統以及一個僅使用其中三個調用的應用示例。 2)高效利用CPU。高效軟件可以較低的時鐘頻率令人滿意地運行于CPU之上,時鐘頻率對功耗有巨大影響。高效軟件甚至可工作于較低端的CPU、且仍能實現預期性能。一種高效實時操作系統可確保在正確的時間運行正確的代碼且不會引致任何不菲的開銷。 3)電源管理。若所選的 CPU(或硬件設計)支持主動電源管理,那么操作系統就可以控制這一能力。電源管理支持僅對CPU內正在工作的部分供電,或根據CPU的使用情況動態調整時鐘頻率。 連接性(請用粗宋)。越來越多的醫療儀器和系統正被相互連接起來。有多種連接技術可供選配,尤其是以下兩種技術,既有效用又具挑戰性。 1)USB是當今連接電腦與外設的最通用協議。處理USB協議的軟件非常復雜。驅動不同類型的設備需要類驅動器。由于USB設備既可以是控制器;也可能是外設;而這兩種“身份”又需要不同的協議棧,從而使問題進一步復雜。對醫療設備來說,既可作為主機又可作為功能外設的情況都是可能的。當從可用的USB堆棧中選用一款USB實現時,千萬記得要選用“經過認證的USB”實現方案。 2)無線網絡有各種形態,從諸如藍牙和ZigBee這類的點對點連接,到WiFi這類的對等網絡。采用無線方式進行通信的醫療設備所帶來的好處遠非僅僅是便利性。對醫院來說,去掉了成捆的線纜對整潔環境有好處,還利于規避事故,這在全球范圍內都是真切的關注所在。但無線網絡不能以犧牲安全和保障為代價。為確保安全,以能防范竊聽的方式發送病人數據就變得至關重要。目前已有包括802.11i協議在內的各種加密方式。一些商業實時操作系統供應商提供完整的預集成 WiFi方案。 本文小結 與大多數嵌入式應用一樣,醫療電子設備的開發需要從技術和商業角度考慮一系列問題。包括采用合適的技術、通過認證、將合適產品以合適價格及時推向市場等一系列工作。復用現有成熟技術不過是種常識,而從實時操作系統起步則是明智之舉。 作者:Mentor Graphics公司 嵌入式系統部Colin Walls |