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