安全關鍵型軟件和 SoC – 對于下一代醫療設備,直線和狹窄的路徑是什么?
嵌入式開發人員在開發醫療嵌入式設備時面臨著多個決策,從選擇最佳系統軟件以獲得最佳應用性能,到了解軟件操作系統與目標硬件之間的交互和限制。軟件工程師應該使用小型微內核、實時操作系統 (RTOS) 還是通用操作系統 (GPOS),如安卓或 Linux?其他考慮因素包括系統的物理尺寸,以滿足便攜性和功能要求,包括更快的性能、功耗、數據保護和顯示(用戶界面)技術。影響嵌入式軟件選擇的FDA認證和行業標準也參與其中。
現代醫療設備正在以創紀錄的速度發展。從供患者在家中使用的便攜式無線設備到醫療專業人員在設施中使用的更大更復雜的設備,毫無疑問,我們處于開發新方法以增強患者和醫療專業人員能力的最前沿。我們如何確保控制這些設備的系統軟件完全按計劃運行,幾乎沒有傷害患者的風險?
問題的核心:操作系統
通常,操作系統 (OS) 管理醫療嵌入式設備。操作系統可以從一些有進取心的軟件程序員內部構建的簡單“滾動自己的”到來自已建立的供應商的更復雜的操作系統。GPOS(如 Linux 或 Android)為應用程序開發建立了一個功能豐富的平臺,但有時消耗的內存比必要的要多。RTOS也是現代醫療設備的不錯選擇,特別是當特定的系統要求需要確定性的搶占式內核和較小的內存占用量時。在混合中的某個地方,您的應用程序和硬件有一個理想的候選者。有一件事是肯定的:在選擇操作系統之前,請確切地知道應用程序的意圖和您計劃使用的硬件。
設備將如何使用?
在開發嵌入式系統時,將風險降至最低的一種方法是首先考慮其用例 - 不僅要考慮最終用戶將如何與它交互,還要考慮如何設計,開發和測試它。該設備將主要由醫療保健提供者使用,由家中的患者使用,還是兩者兼而有之?
設備是否具有通信模式或純粹是獨立的?根據其通信需求,您可能會發現首選操作系統包含許多您需要的模式,或者您可能更喜歡其他操作系統,在這種情況下,您必須通過通信堆棧和/或驅動程序進行移植才能獲得正確的通信軟件組合。
是否確定了任何實時需求?對于某些設備,不需要實時行為。如果延遲 100 毫秒處理中斷,則結果可能會延遲 100 毫秒,但這不會導致失敗。但是,如果它是參與眼科手術的激光,如果激光不能在精確的時間打開和關閉,這可能會產生災難性的影響。如果激光具有眼動追蹤引導,則即使在存在眼球運動的情況下,激光也必須以預定義的模式同步移動。
也許該設備是關鍵設備,因此對成本的敏感性最小。相反,手持式且銷售量達到數百萬的設備對成本具有很高的敏感性。這些類型的考慮因素將直接影響最小化 BOM 的需求,這反過來又可能導致最小化內存,從而最大限度地減少有效構建完整應用程序所需的內存。
一切都與硬件有關
定義用例后,就該找到合適的硬件了。醫療系統可以非常小,8位微控制器的時鐘頻率低于25 MHz,并且僅使用8K的內存。更復雜的設計可以包括功能豐富的SoC,時鐘頻率為數百MHz和兆字節的內存。系統范圍包括具有專用處理器或DSP的混合系統,以及包含眾多多核芯片的系統。
最適合您的設計的因素來自用例和對您希望系統如何表現的期望。
多核是必要的嗎?
對于選擇多核的兩個主要原因 - 純處理性能和低功耗管理 - 第三個原因可以添加,即兩者的結合。
如果您擔心低功耗,您可能希望使用多核SoC,因為它可以在較低的時鐘頻率下利用所有可用內核,而不是以更高的頻率為主處理器計時。當不需要時,它可以關閉額外的內核以節省功率。
雖然功耗和性能都是使用多核的好理由,但問題更多的是關于找到分配CPU的最佳方式。使用對稱硬件,您可以在所有可用內核上使用單個操作系統作為對稱多核處理 (SMP) 的一種類型。大多數 GPOS 和某些 RTOS 都具有此功能。然而,使用SMP可能會使跨內核的調度復雜化,因為由于一個內核中的緩存未命中而導致的實時命中可能導致另一個內核中的緩存刷新,這總是導致系統中的延遲。自旋鎖等功能是所有支持 SMP 的操作系統所共有的。如果使用不當,自旋鎖可能會損害系統性能,因為一個內核會停滯一段時間,等待另一個內核上的資源被釋放。
構建系統的另一種方法(即使使用對稱硬件)是應用非對稱多核處理(AMP)技術。這種方法涉及兩個或多個獨立的操作系統,使用硬件(如一系列 FIFO)或通過共享內存通過某種類型的通信通道進行交互。有一個標準使應用程序開發通過多核關聯(稱為多核通信 API (MCAPI))進行可移植。
當硬件和軟件世界發生碰撞時
考慮這樣一種情況:與 Windows 主機具有 USB 連接的醫療設備通常遵循 USB 規范,但是當 SoC 的所有部分被激活時,硬件間歇性地開始發出規范之外的信號,使得主機在會話過程中關閉端口,從而在最不合時宜的時間(在患者數據收集期間)導致故障。由于結果丟失,患者提前24小時為原始程序做了特殊準備,必須準備重新測試。
造成港口關閉的根本原因有兩個。首先,軟件假設USB控制器不會出現故障。其次,系統架構沒有為在會話過程中拔下設備的情況進行規劃。如果系統考慮了這些用例中的任何一個,系統就會在本地存儲數據,從而允許在重新建立會話后進行傳輸,從而最大限度地降低患者可能重新測試的風險。
該應用程序依靠USB控制器的完美操作來防止數據丟失。如果應用程序已分解為多個部分,則可能會避免數據丟失。在數據收集和數據傳輸不相互關聯的架構中,即使鏈路斷開,數據仍存儲在設備中,因此當它恢復時,它可以從中斷的地方繼續,而不會丟失任何數據。在傳輸到主機之前,在后臺對緩沖區進行寫入是避免在這種情況下丟失數據的一種方法。
如果使用軟件變通辦法來檢測 USB 總線掛起,則該變通辦法可以將 SoC 引腳從 USB 模式中取出,并使其成為 GPIO 引腳,以便主機可以檢測到重置條件并強制重新枚舉設備。然后,USB 軟件將重新提交緩沖區,并且傳輸將恢復。最終結果是數據不會丟失,只是在解決方法發生時延遲。
可移植性注意事項
操作系統管理系統的硬件和軟件資源。最基本的管理是記憶和時間。但是,操作系統的責任在哪里停止,應用程序的責任從哪里開始呢?雖然應用程序可以內置設備驅動程序并直接與硬件通信,但隨著設備的發展和使用更新的硬件,移植到新硬件成為一項挑戰。因此,建議系統中的大多數(如果不是全部)設備由操作系統管理,以確保將來的可移植性。
法規和患者隱私
對便攜性的需求包括用于連接的 GSM 無線電或 802.11 無線接口等無線設備。其他包括藍牙和ZigBee,這些鏈接也必須是安全的,并提供患者隱私。即使在設備本身中,也必須只有有權看病人的醫生才能真正看到病人的數據。禁止未經授權的訪問也是任何設備的關鍵要求。記錄是否安全,即使對于在設備上工作的技術人員也是如此?是否有任何模式使此數據不安全?真正的健康保險流通與責任法案 (HIPPA) 合規性是確保信息安全至關重要?;颊哂涗洈祿靸炔康陌踩砸彩侨绱?。
結論
醫療設備是一種特殊的品種,它將以某種方式觸及我們所有人。在設計這些系統時,我們需要格外小心,以確保設備能夠實現其預期功能。使用 RTOS 或 GPOS 來滿足確定性、大小、啟動時間、功耗優化和可用中間件的廣度要求是否有意義?最后,為了最大限度地降低風險,我們需要確保遵守HIPA和FDA的所有法規。
審核編輯:郭婷
-
嵌入式
+關注
關注
5089文章
19168瀏覽量
306739 -
soc
+關注
關注
38文章
4193瀏覽量
218715 -
操作系統
+關注
關注
37文章
6874瀏覽量
123563
發布評論請先 登錄
相關推薦
評論