以硬件為中心的設(shè)計(jì)方案構(gòu)建高可靠性醫(yī)療電子設(shè)備概要_第1頁(yè)
以硬件為中心的設(shè)計(jì)方案構(gòu)建高可靠性醫(yī)療電子設(shè)備概要_第2頁(yè)
以硬件為中心的設(shè)計(jì)方案構(gòu)建高可靠性醫(yī)療電子設(shè)備概要_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余10頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、以硬件為中心的設(shè)計(jì)方案構(gòu)建高可靠性醫(yī)療電子設(shè)備作者:Chuck Russo 來(lái)源:電子工程專輯§ ©過(guò)幾次通話中斷的經(jīng)歷。雖然這些產(chǎn)品以及其他消費(fèi)類產(chǎn)品的系統(tǒng) 故障或者小毛病會(huì)帶來(lái)不方便,但它們不會(huì)造成災(zāi)難性的后果。然 而,醫(yī)療電子設(shè)備的一次系統(tǒng)故障就會(huì)帶來(lái)生命威脅,這也是為什 么醫(yī)療設(shè)備,以及這些系統(tǒng)中集成的器件和這些器件中運(yùn)行的軟件 必須通過(guò)嚴(yán)格測(cè)試,并符合美國(guó)食品藥品監(jiān)督管理局(FDA)的嚴(yán)格要 求。為確保我們的新設(shè)計(jì)能夠發(fā)揮理想可靠的性能,順利通過(guò)FDA的審 批流程,我們采用了一種稱為“Scrum/Sprint開(kāi)發(fā)流程”的高度結(jié)構(gòu)化 的設(shè)計(jì)方法。此外,通過(guò)減少在軟件

2、中實(shí)施的功能,還能夠降低軟 件出錯(cuò)的幾率。我們已在賽靈思的 FPGA中實(shí)施了這些功能。為了 能夠更充分地理解這種方法,我們首先來(lái)分析一下醫(yī)療設(shè)備的設(shè)計(jì) 流程。三階段生命周期FDA針對(duì)醫(yī)療電子產(chǎn)品制定了嚴(yán)格的規(guī)定、要求和指導(dǎo)原則,旨在 確保社會(huì)大眾的人身安全。在這些規(guī)定中,F(xiàn)DA對(duì)醫(yī)療設(shè)備(圖1) 的生命周期制定了嚴(yán)格的要求。一般情況下,電子產(chǎn)品公司必須在 如下方面都符合上述規(guī)定的要求,其中包括醫(yī)療設(shè)備的所有元件、 零部件或者配件,醫(yī)療設(shè)備生產(chǎn)過(guò)程中采用的任何軟件,以及設(shè)備 制造商質(zhì)量系統(tǒng)使用的所有軟件,如可記錄并保持設(shè)備歷史記錄的 程序等。圖1、FDA定義的醫(yī)療設(shè)備設(shè)計(jì)整個(gè)生命周期圖我們可將醫(yī)

3、療設(shè)備整個(gè)生命周期劃分為三個(gè)主要階段。首先是產(chǎn)品整個(gè)生命周期的初期階段(圖2),該階段是所有三個(gè)階段中系統(tǒng)性最差的階段,期間企業(yè)主要側(cè)重于理論與構(gòu)思方面的研究和開(kāi)發(fā)。該階段的持續(xù)時(shí)長(zhǎng)從數(shù)星期到數(shù)年不等,這與企業(yè)準(zhǔn)備開(kāi)發(fā)的系統(tǒng)的復(fù)雜程度息息相關(guān)圖2、在產(chǎn)品整個(gè)生命周期的初期階段應(yīng)用虛擬儀器和HEI設(shè)計(jì)方法,可以清晰地理解需要解決的問(wèn)題產(chǎn)品整個(gè)生命周期初期階段的基本組成部分是數(shù)據(jù)采集與分析。通 常情況下,研究人員與產(chǎn)品設(shè)計(jì)規(guī)范小組會(huì)使用多種工具來(lái)精簡(jiǎn)流 程。在這個(gè)階段,HEI通常會(huì)采用美國(guó)國(guó)家儀器(NI)公司的LabVIEW 產(chǎn)品來(lái)調(diào)整FPGA的I/O。一旦充分理解問(wèn)題,我們就能設(shè)計(jì)出解決 方案。

4、對(duì)于器件開(kāi)發(fā)及原型設(shè)計(jì),我們結(jié)合直觀的圖形編程,重復(fù) 使用數(shù)學(xué)與信號(hào)處理功能來(lái)開(kāi)發(fā)新的算法。然后,通過(guò)使用商用套 裝硬件,我們對(duì)現(xiàn)實(shí)世界的數(shù)據(jù)進(jìn)行參考來(lái)對(duì)算法的性能進(jìn)行驗(yàn)證。 在許多情況下,我們都能使用NI提供的基于FPGA的原型設(shè)計(jì)平臺(tái) 來(lái)實(shí)現(xiàn)最終器件的實(shí)驗(yàn)原型。確切地說(shuō),我們能夠?qū)abVIEWReal-Time 模塊和 FPGA 模塊同 NI CompactRIO 結(jié)合使 用,以便在算法設(shè)計(jì)和器件原型階段之間迅速實(shí)現(xiàn)疊代。使用硬件 套件進(jìn)行原型設(shè)計(jì),不僅能夠顯著縮短硬件開(kāi)發(fā)與集成時(shí)間,而且 還使我們能夠?qū)⒏嗑械浇桓豆δ軓?qiáng)大、性能可靠的軟件設(shè) 計(jì)中??蓪⑨t(yī)療設(shè)備整個(gè)生命周期的第二階

5、段稱為產(chǎn)品整個(gè)生命周期的中 期(參見(jiàn)圖3),能夠充分滿足所設(shè)計(jì)的設(shè)備在產(chǎn)品化、驗(yàn)證、審核 以及制造等方面的需求。該階段的重點(diǎn)是制定準(zhǔn)確定義的、清晰載 明可量化要求的規(guī)范文檔。這些規(guī)范一經(jīng)定義,即可在規(guī)范文檔與 實(shí)際的實(shí)施代碼之間建立明確的映射關(guān)系。圖3、軟件設(shè)計(jì)的審核與驗(yàn)證工作通常是在產(chǎn)品整個(gè)生命周期的中期 完成在當(dāng)今錯(cuò)綜復(fù)雜的醫(yī)療設(shè)備市場(chǎng)上,客戶必須加速上市,捷足先登。 眾多公司紛紛采用傳統(tǒng)的 瀑布式”開(kāi)發(fā)法來(lái)完成這項(xiàng)工作。瀑布式開(kāi)發(fā)法中的設(shè)計(jì)小組在進(jìn)入下一步前,需要完成設(shè)計(jì)流程的每個(gè)步 驟(圖4)。瀑布法高度依賴在項(xiàng)目展開(kāi)之初就擁有完整準(zhǔn)確的規(guī)范。 但是,在醫(yī)療設(shè)備市場(chǎng),更多的時(shí)候需求會(huì)隨

6、著產(chǎn)品的開(kāi)發(fā)而不斷 發(fā)展變化。這就需要能夠?qū)l(fā)展演進(jìn)也考慮周全的流程。HEI的Scrum/Sprint開(kāi)發(fā)流程就是可充分解決這一問(wèn)題的理想方案。圖4、傳統(tǒng)的瀑布式”開(kāi)發(fā)流程在進(jìn)入到下一步前需完成每一階段的開(kāi)發(fā)驗(yàn)證Scrum/Sprint開(kāi)崔流程構(gòu)建和集成定義需采和"Burn'down" 列表鳳險(xiǎn)分祈設(shè)計(jì)圖5在“Scrum/Sprint流程中,啟動(dòng)項(xiàng)目只需要高級(jí)系統(tǒng)架構(gòu)和規(guī)范在Scrum/Sprint流程中,我們僅要求高級(jí)系統(tǒng)架構(gòu)和規(guī)范即可啟動(dòng) 項(xiàng)目。我們將項(xiàng)目細(xì)分為46個(gè)星期長(zhǎng)的“ Spri nt。'在每個(gè)“ Spri nt 中,我們可確定我們認(rèn)為流程將會(huì)要

7、求的所有任務(wù),并將其置于燃盡'列表(burn-down list)中。圖5與圖6顯示了相關(guān)流程圖。HEI在全公司范圍內(nèi)使用Scrum/Sprint開(kāi)發(fā)流程,不僅將我們的開(kāi)發(fā)進(jìn)程 加快了 30%,而且還使我們提前數(shù)月完成了新產(chǎn)品的實(shí)施。表1對(duì)瀑布式開(kāi)發(fā)與Scrum/Sprint開(kāi)發(fā)方案進(jìn)行了比較。24 HoursDaHy Scrum MeetingProduct Backtogas Priortied by Product OwnerBacklog Tasks Expanded by TeamDemonstrableNew FunctionalitySprint BacklogSprin

8、t Backlog圖6項(xiàng)目小組為循環(huán)周期中的每個(gè)“Sprin確定“Sprin待辦事項(xiàng)”工作任務(wù),并對(duì)其進(jìn)行擴(kuò)展和分配。然后,項(xiàng)目小組在日常的” Scrum會(huì)議上評(píng)估進(jìn)程,并消除相關(guān)障礙。小組在每個(gè)“Sprint終止時(shí)向客戶交付產(chǎn)品功能&rua/9priaiWtitrFdQSE cintimi伽甑Htm of SKjidrom 聖ihY«s豈to印一 imfh med dimgeMeANeu proNftd iiheirconid( requme«i愉Sliori ipeTitilrydEs¥»sHeOrril fh»-r*-tvirkg

9、lHi Ji r«lvt*dTyped血山J T/h弓eju即ffw m 血曲b” 吟陽(yáng)日曰Jkh" iwlf點(diǎn)山 耶卿曲 M dr?皿典醫(yī)療設(shè)備開(kāi)發(fā)的第三階段,也是最后一個(gè)階段,屬于產(chǎn)品整個(gè)生命 周期的后期(圖7)。這個(gè)階段要求的工程設(shè)計(jì)工作非常少,不過(guò)客 戶反饋和市場(chǎng)成功將有助于推動(dòng)新一代產(chǎn)品的概念形成,這樣生命 周期又進(jìn)入新的循環(huán)。圖7產(chǎn)品生命周期后期工作是將產(chǎn)品推向市場(chǎng), 獲取反饋,幫助確定新一代產(chǎn)品的功能。這樣就完成了本周期的工作,并將其帶入新 的構(gòu)思階段。采用 Scrum/Sprint 產(chǎn)品開(kāi)發(fā)流程, 再結(jié)合使用基于 FPGA 的套裝硬 件以及涵蓋從研發(fā)到制造過(guò)

10、程的高級(jí) FPGA 軟件設(shè)計(jì)工具, HEI 就 能夠迅速地開(kāi)發(fā)出未來(lái)產(chǎn)品的衍生技術(shù)。我們發(fā)現(xiàn)在眾多情況下都 可以使用我們?cè)诙喾N產(chǎn)品開(kāi)發(fā)中采用的通用內(nèi)核架構(gòu)。例如,可調(diào) 整 IV 與輸液泵的泵控制器架構(gòu),同樣也能用于可控制電機(jī)以實(shí)現(xiàn)輸 血管理的其它設(shè)計(jì)項(xiàng)目中。為何硬件優(yōu)于軟件為了有效地使用這種方法,并進(jìn)一步加快設(shè)計(jì)流程,就必須改變構(gòu) 思設(shè)計(jì)的方式,即從以軟件為中心轉(zhuǎn)變?yōu)楦嗟匾杂布橹行?。?如人們所意識(shí)到的,醫(yī)療設(shè)備的召回在 2008 年達(dá)到新高,比 2007 年上升43%。FDA專家認(rèn)為,發(fā)生召回問(wèn)題的主要原因有兩個(gè):生 產(chǎn)中采用的原材料存在缺陷;軟件開(kāi)發(fā)工作存在問(wèn)題。企業(yè)對(duì)原材 料質(zhì)量的管

11、理相對(duì)容易一些,不過(guò)解決軟件的質(zhì)量問(wèn)題難度則要大 得多。隨著設(shè)備軟件的代碼量迅速增加, 問(wèn)題只會(huì)日益嚴(yán)重。 在 FDA 的消費(fèi)者健康安全部表示醫(yī)療設(shè)備設(shè)計(jì)方要承擔(dān)眾多安全責(zé)任后, 這個(gè)問(wèn)題尤為突出。在 HEI ,我們認(rèn)為該問(wèn)題具有一個(gè)潛在的解決方案,不過(guò)不是進(jìn)行 更多的測(cè)試、代碼檢查和引入更多的流程,相反,我們僅是盡量少 編寫軟件,將更多的邏輯交給諸如賽靈思 FPGA 這樣的硬件元件來(lái) 執(zhí)行。讓我們來(lái)看看發(fā)生軟件故障的常見(jiàn)原因,以及我們將如何使 用 FPGA 來(lái)解決這些問(wèn)題。消除死鎖大多數(shù)現(xiàn)代化設(shè)備都需要能夠同時(shí)處理多個(gè)任務(wù),而大多數(shù)嵌入式 處理器的處理內(nèi)核仍然只有一個(gè)。這意味著處理器每次只能

12、執(zhí)行一 個(gè)指令。同時(shí),并行處理也好不到那里去,因?yàn)樗麄內(nèi)匀槐仨毠蚕?主系統(tǒng) CPU 。此外,諸如通信驅(qū)動(dòng)器、硬盤和用戶接口元件等其他 共享資源也會(huì)引發(fā)死鎖 兩個(gè)或兩個(gè)以上的處理進(jìn)程相互等待對(duì) 方釋放資源。由于死鎖狀況經(jīng)常有賴于多個(gè)進(jìn)程,并且通常要求事件在順序上出 現(xiàn)同步,因而死鎖非常難以復(fù)制和調(diào)試。僅僅進(jìn)行單元測(cè)試很難發(fā) 現(xiàn)大多數(shù)死鎖問(wèn)題。它們往往被代碼檢查人員、熟練的系統(tǒng)測(cè)試人 員所發(fā)現(xiàn),甚至有時(shí)靠運(yùn)氣發(fā)現(xiàn)。相比之下,采用 FPGA ,相互獨(dú)立的進(jìn)程擁有其自己的物理電路系 統(tǒng),因而不存在共享資源。在每個(gè)時(shí)鐘信號(hào)報(bào)時(shí)的時(shí)候,組合邏輯 不僅在每個(gè)電路中閉鎖,而且還會(huì)在獨(dú)立的寄存器中存儲(chǔ)相關(guān)值。

13、由于進(jìn)程不依賴其他資源,因而也不會(huì)發(fā)生死鎖問(wèn)題。這樣您就能 更多地相信仿真和單元測(cè)試的結(jié)果,因?yàn)橹T如資源競(jìng)爭(zhēng)這樣的未知 因素不再是個(gè)問(wèn)題。互不兼容的中間件在開(kāi)發(fā)嵌入式軟件時(shí),您基本上無(wú)需從頭開(kāi)始編寫每一行代碼。有 許多工具都可幫助固件設(shè)計(jì)人員提升工作效率,如簡(jiǎn)單的驅(qū)動(dòng)器、 網(wǎng)絡(luò)協(xié)議棧、操作系統(tǒng)、乃至代碼生成工具等。雖然這些系統(tǒng)通常 都進(jìn)行過(guò)全面的獨(dú)立測(cè)試,但軟件還是會(huì)存在缺陷。由于工具和庫(kù) 的組合方式多種多樣,將組件以全新的方式組合在一起使用的可能 性非常大。基于此種原因, FDA 要求對(duì)在醫(yī)療設(shè)備中使用的所有套裝軟件,企 業(yè)必須根據(jù)其具體設(shè)計(jì)的具體使用情況對(duì)軟件協(xié)議棧進(jìn)行審驗(yàn)。這 是什么意思

14、呢?例如,若我們正在使用包含定點(diǎn)快速傅立葉變換的 信號(hào)處理庫(kù),并需要檢測(cè)是否存在特定的頻率組分,我們就無(wú)需驗(yàn) 證對(duì)于所有可能的輸入, FFT 是否都會(huì)返回正確的值。但是,我們 需要驗(yàn)證的是,對(duì)于符合規(guī)范的所有有效輸入, FFT 能否返回我們 期望的值。例如,如果我們只檢測(cè)人耳能聽(tīng)到的音調(diào),就沒(méi)有必要 測(cè)試輸入超過(guò) 20KHz 以上時(shí)返回的值是否正確。不過(guò),看上去相互獨(dú)立的軟件組件并不一定如此。因此,如果我們 將軟件協(xié)議棧與 SPI 驅(qū)動(dòng)器結(jié)合起來(lái)使用,并配以實(shí)時(shí)操作系統(tǒng) (RTOS) ,我們就需要對(duì)所有這些組件進(jìn)行驗(yàn)證才能對(duì) FFT 充滿信 心。如果 FFT 將有效輸出傳遞到 SPI 驅(qū)動(dòng)器,

15、但 SPI 驅(qū)動(dòng)器出現(xiàn)系 統(tǒng)性故障,那么問(wèn)題顯然不可避免。然后,如果我們決定調(diào)整 SPI 驅(qū)動(dòng)器,就需要再次驗(yàn)證整個(gè)軟件協(xié)議棧。這非常麻煩,而且一個(gè) 存在故障的組件會(huì)拖累整個(gè)系統(tǒng)的開(kāi)發(fā)進(jìn)程?;诖嗽?,在HEI,我們盡可能多地重復(fù)利用經(jīng)檢驗(yàn)具備良好特性的中間件和 RTOS 驅(qū) 動(dòng)器組合。例如,我們可使用 NI單板RIO平臺(tái)上的中間件驅(qū)動(dòng)器。除了按照每種具體使用情況審驗(yàn)軟件以外,我們還需要審驗(yàn)我們?cè)谖覀兓贔PGA的設(shè)計(jì)中使用的所有第三方知識(shí)產(chǎn)權(quán)(IP)。不過(guò),一 旦我們完成我們所有使用情況的審驗(yàn)工作,我們就會(huì)深信不疑: IP 在和其它組件集成后,工作情況會(huì)如同預(yù)期一樣。讓我們?cè)賮?lái)看看 我們上面

16、舉的FFT示例。如果我們使用FPGA,我們就可和使用軟 件一樣,獲取或者生成 FFTIP 內(nèi)核,根據(jù)每個(gè)使用情況驗(yàn)證其數(shù)字 的正確性。不過(guò),間發(fā)故障的風(fēng)險(xiǎn)可大幅降低,因?yàn)槲覀儾恍枰?軟件為中心的設(shè)計(jì)所需要的所有處理器中間件。 這樣, RTOS 及 SPI 驅(qū)動(dòng)器就不再是其自身 IP 內(nèi)核了,因?yàn)槠涔ぷ鞑粫?huì)直接影響 FFT。 另外,如果我們調(diào)整 SPI 驅(qū)動(dòng)器的實(shí)施,我們就不需要對(duì)系統(tǒng)未影 響的部分再進(jìn)行審驗(yàn)。緩沖器溢出管理我們?nèi)绾问褂?FPGA 來(lái)減少以軟件為中心的系統(tǒng)通常會(huì)產(chǎn)生的錯(cuò)誤 的另一個(gè)示例就是緩沖器溢出管理。當(dāng)程序試圖存儲(chǔ)超過(guò)為其存儲(chǔ) 分配的存儲(chǔ)器末端的數(shù)據(jù)時(shí),程序就會(huì)重復(fù)寫入本不

17、該寫入的某些 相鄰數(shù)據(jù),這樣就會(huì)產(chǎn)生緩沖器溢出。這是個(gè)很難察覺(jué)的缺陷,因 為在將來(lái)任何時(shí)候都可訪問(wèn)被重寫的存儲(chǔ)器,而且這種情況可能會(huì) 造成明顯的錯(cuò)誤,也可能不會(huì)。嵌入設(shè)計(jì)中一種比較常見(jiàn)的緩沖器 溢出情況是某種高速通信造成的,或許來(lái)自網(wǎng)絡(luò)、磁盤或者 A/D 轉(zhuǎn) 換器。如果通信中斷時(shí)間過(guò)長(zhǎng),緩沖器就會(huì)溢出,因此我們需要解 決這個(gè)問(wèn)題來(lái)防止各種沖突。我們可以以兩種方式采用 FPGA 來(lái)管理緩沖器溢出。在第一種示例 中,我們采用 FPGA 管理循環(huán)傳輸或者雙緩沖傳輸,這樣可卸載實(shí) 時(shí)處理器的負(fù)荷。在這種情況下, FPGA 可用作協(xié)處理器,降低主 處理器的中斷負(fù)載。這是一種通用配置,特別是在高速 A/D

18、 轉(zhuǎn)換器 中。在第二種示例中,我們將 FPGA 用作保護(hù)功能的安全保護(hù)層,讓針 對(duì)病人的 I/O 在到達(dá)處理器之前, 先通過(guò) FPGA 。在這種情況下, 您 可以為 FPGA 增加額外的安全邏輯, 這樣在處理器上的軟件崩潰時(shí), 您可將所有的輸出置于已知的安全狀態(tài)下。 FPGA 可發(fā)揮看門狗的 作用,其邏輯可以在軟件發(fā)生故障的時(shí)候保證對(duì)病人的風(fēng)險(xiǎn)降低到 最低程度。通過(guò)在架構(gòu)設(shè)計(jì)中將 FPGA 引入設(shè)備的主信號(hào)鏈,您可 以使用這兩種方法中的一種或者兩種來(lái)應(yīng)對(duì)緩沖器溢出,以便在發(fā) 生狀況的時(shí)候能夠更好地處置。事實(shí)上,越多地將軟、硬件總體系統(tǒng)功能移至 FPGA 中,就能越快 地完成設(shè)計(jì)流程,并最終越快地完成我們的設(shè)計(jì)在客戶最終產(chǎn)品上 的驗(yàn)證工作。如果我們能更快地驗(yàn)證我們?cè)O(shè)計(jì)方案在總體系統(tǒng)上運(yùn) 行的可靠性,那么我們的客戶就能更快地驗(yàn)證整個(gè)最終產(chǎn)品,進(jìn)而 將其交付 FDA 審批。這一過(guò)程意味著我們的客戶能夠顯著加速其產(chǎn) 品的上市進(jìn)程,改善患者的生活質(zhì)量,甚至拯

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論