您的位置 首页 5G

根据Scrum/Sprint开发流程构建高可靠性医疗电子设备计划

 几乎每个使用手机的人都会有过几次通话中断的经历。虽然这些产品以及其他消费类产品的系统故障或者小毛病会带来不方便,但它们不会造成灾难性的后果。然而,医疗电子设备的一次系统故障就会带来生命威胁.

 简直每个运用手机的人都会有过几回通话中止的阅历。尽管这些产品以及其他消费类产品的体系毛病或许小毛病会带来不方便,但它们不会构成灾难性的成果。可是,医疗电子设备的一次体系毛病就会带来生命要挟,这也是为什么医疗设备,以及这些体系中集成的器材和这些器材中运转的软件有必要通过严厉测验,并契合美国食品药品监督办理局(FDA)的严厉要求。

  为保证咱们的新规划可以发挥抱负牢靠的功用,顺畅通过FDA批阅流程,咱们选用了一种称为“Scrum/Sprint开发流程”的高度结构化的规划办法。此外,通过削减在软件中施行的功用,还可以下降软件犯错的几率。咱们已在赛灵思的FPGA中施行了这些功用。为了可以更充沛地了解这种办法,咱们首先来剖析一下医疗设备的规划流程。

三阶段生命周期

  FDA针对医疗电子产品拟定了严厉的规则、要求和辅导准则,旨在保证社会群众的人身安全。在这些规则中,FDA对医疗设备(图 1)的生命周期拟定了严厉的要求。一般情况下,电子产品公司有必要在如下方面都契合上述规则的要求,其间包括医疗设备的一切元件、零部件或许配件,医疗设备出产进程中选用的任何软件,以及设备制作商质量体系运用的一切软件,如可记载并坚持设备历史记载的程序等。

图1、FDA界说的医疗设备规划整个生命周期图.

  咱们可将医疗设备整个生命周期划分为三个首要阶段。首先是产品整个生命周期的初期阶段(图2),该阶段是一切三个阶段中体系性最差的阶段,期间企业首要侧重于理论与构思方面的研讨和开发。该阶段的继续时长从数星期到数年不等,这与企业预备开发的体系的杂乱程度休戚相关。

图2、在产品整个生命周期的初期阶段运用虚拟仪器和HEI规划办法,可以明晰地了解需求处理的问题。

  产品整个生命周期初期阶段的根本组成部分是数据收集与剖析。一般情况下,研讨人员与产品规划标准小组会运用多种东西来精简流程。在这个阶段,HEI一般会选用美国国家仪器(NI)公司的LabVIEW产品来调整 FPGA的I/O。一旦充沛了解问题,咱们就能规划出处理计划。关于器材开发及原型规划,咱们结合直观的图形编程,重复运用数学与信号处理功用来开发新的算法。然后,通过运用商用套装硬件,咱们对实践国际的数据进行参阅来对算法的功用进行验证。在许多情况下,咱们都能运用NI供给的依据FPGA的原型规划渠道来完结终究器材的试验原型。切当地说,咱们可以将LabVIEWReal-Time模块和FPGA模块同NI CompactRIO结合运用,以便在算法规划和器材原型阶段之间敏捷完结叠代。运用硬件套件进行原型规划,不只可以显着缩短硬件开发与集成时刻,并且还使咱们可以将更多精力会集到交给功用强大、功用牢靠的软件规划中。

图3、软件规划的审阅与验证作业一般是在产品整个生命周期的中期完结。

  可将医疗设备整个生命周期的第二阶段称为产品整个生命周期的中期(参见图3),可以充沛满意所规划的设备在产品化、验证、审阅以及制作等方面的需求。该阶段的重点是拟定精确界说的、明晰载明可量化要求的标准文档。这些标准一经界说,即可在标准文档与实践的施行代码之间树立清晰的映射联系。

图4、传统的“瀑布式”开发流程在进入到下一步前需完结每一阶段的开发。

  在当今错综杂乱的医疗设备商场上,客户有必要加快上市,争先恐后。很多公司纷繁选用传统的“瀑布式”开发法来完结这项作业。“瀑布式”开发法中的规划小组在进入下一步前,需求完结规划流程的每个进程(图4)。瀑布法高度依靠在项目打开之初就具有完好精确的标准。可是,在医疗设备商场,更多的时分需求会跟着产品的开发而不断开展变化。这就需求可以将开展演进也考虑周全的流程。HEI的Scrum/Sprint开发流程便是可充沛处理这一问题的抱负计划。

图5 在“Scrum/Sprint”流程中,发动项目只需求高档体系架构和标准。

  图6——项目小组为循环周期中的每个“Sprint”确认“Sprint待办事项”作业使命,并对其进行扩展和分配。然后,项目小组在日常的”Scrum“会议上评价进程,并消除相关妨碍。小组在每个“Sprint”停止时向客户交给产品功用。

  在Scrum/Sprint流程中,咱们仅要求高档体系架构和标准即可发动项目。咱们将项目细分为4~6个星期长的“Sprint”。在每个 “Sprint”中,咱们可确认咱们认为流程将会要求的一切使命,并将其置于“燃尽”列表(burn-down list)中。图5与图6显现了相关流程图。HEI在全公司范围内运用Scrum/Sprint开发流程,不只将咱们的开发进程加快了30%,并且还使咱们提早数月完结了新产品的施行。表1对瀑布式开发与Scrum/Sprint开发计划进行了比较。

  医疗设备开发的第三阶段,也是终究一个阶段,归于产品整个生命周期的后期(图7)。这个阶段要求的工程规划作业十分少,不过客户反应和商场成功将有助于推进新一代产品的概念构成,这样生命周期又进入新的循环。

  图7—产品生命周期后期作业是将产品推向商场,获取反应,协助确认新一代产品的功用。这样就完结了本周期的作业,并将其带入新的构思阶段。

  选用Scrum/Sprint产品开发流程,再结合运用依据FPGA的套装硬件以及包括从研发到制作进程的高档FPGA软件规划东西,HEI就可以敏捷地开宣布未来产品的衍生技能。咱们发现在很多情况下都可以运用咱们在多种产品开发中选用的通用内核架构。例如,可调整IV与输液泵的泵操控器架构,相同也能用于可操控电机以完结输血办理的其它规划项目中。

为何硬件优于软件

  为了有用地运用这种办法,并进一步加快规划流程,就有必要改动构思规划的办法,即从以软件为中心转变为更多地以硬件为中心。正如人们所意识到的,医疗设备的召回在2008年抵达新高,比2007年上升43%。FDA专家认为,产生召回问题的首要原因有两个:出产中选用的原材料存在缺点;软件开发作业存在问题。企业对原材料质量的办理相对简略一些,不过处理软件的质量问题难度则要大得多。跟着设备软件的代码量敏捷添加,问题只会日益严重。在FDA的顾客健康安全部表明医疗设备规划方要承当很多安全职责后,这个问题尤为杰出。

  在HEI,咱们认为该问题具有一个潜在的处理计划,不过不是进行更多的测验、代码查看和引进更多的流程,相反,咱们仅是尽量少编写软件,将更多的逻辑交给比如赛灵思FPGA这样的硬件元件来履行。让咱们来看看产生软件毛病的常见原因,以及咱们将怎么运用FPGA来处理这些问题。

消除死锁

  大多数现代化设备都需求可以一起处理多个使命,而大多数嵌入式处理器的处理内核依然只要一个。这意味着处理器每次只能履行一个指令。一起,并行处理也好不到那里去,因为他们依然有必要同享主体系CPU。此外,比如通讯驱动器、硬盘和用户接口元件等其他同享资源也会引发死锁——两个或两个以上的处理进程彼此等候对方开释资源。

  因为死锁情况常常有赖于多个进程,并且一般要求事情在次序上呈现同步,因而死锁十分难以仿制和调试。只是进行单元测验很难发现大多数死锁问题。它们往往被代码查看人员、娴熟的体系测验人员所发现,乃至有时靠命运发现。

  相比之下,选用FPGA,彼此独立的进程具有其自己的物理电路体系,因而不存在同享资源。在每个时钟信号报时的时分,组合逻辑不只在每个电路中闭锁,并且还会在独立的寄存器中存储相关值。因为进程不依靠其他资源,因而也不会产生死锁问题。这样您就能更多地信任仿真和单元测验的成果,因为比如资源竞赛这样的不知道要素不再是个问题。

互不兼容的中间件

  在开发嵌入式软件时,您根本上无需从头开始编写每一行代码。有许多东西都可协助固件规划人员提高作业效率,如简略的驱动器、网络协议栈、操作体系、乃至代码生成东西等。尽管这些体系一般都进行过全面的独立测验,但软件仍是会存在缺点。因为东西和库的组合办法多种多样,将组件以全新的办法组合在一起运用的或许性十分大。

  依据此种原因,FDA要求对在医疗设备中运用的一切套装软件,企业有必要依据其详细规划的详细运用情况对软件协议栈进行审验。这是什么意思呢?例如,若咱们正在运用包括定点快速傅立叶改换的信号处理库,并需求检测是否存在特定的频率组分,咱们就无需验证关于一切或许的输入,FFT是否都会回来正确的值。可是,咱们需求验证的是,关于契合标准的一切有用输入,FFT能否回来咱们希望的值。例如,假如咱们只检测人耳能听到的腔调,就没有必要测验输入超越 20KHz以上时回来的值是否正确。

  不过,看上去彼此独立的软件组件并不一定如此。因而,假如咱们将软件协议栈与SPI驱动器结合起来运用,并配以实时操作体系(RTOS),咱们就需求对一切这些组件进行验证才能对FFT充满信心。假如FFT将有用输出传递到SPI驱动器,但 SPI驱动器呈现体系性毛病,那么问题显着不可避免。然后,假如咱们决议调整SPI驱动器,就需求再次验证整个软件协议栈。这十分费事,并且一个存在毛病的组件会连累整个体系的开发进程。依据此原因,在HEI,咱们尽或许多地重复运用经查验具有杰出特性的中间件和RTOS驱动器组合。例如,咱们可运用NI 单板RIO渠道上的中间件驱动器。

  除了依照每种详细运用情况审验软件以外,咱们还需求审验咱们在咱们依据FPGA的规划中运用的一切第三方知识产权(IP)。不过,一旦咱们完结咱们一切运用情况的审验作业,咱们就会毫不怀疑:IP在和其它组件集成后,作业情况会好像预期相同。让咱们再来看看咱们上面举的FFT示例。假如咱们运用FPGA,咱们就可和运用软件相同,获取或许生成FFTIP内核,依据每个运用情况验证其数字的正确性。不过,间发毛病的危险可大幅下降,因为咱们不需求以软件为中心的规划所需求的一切处理器中间件。这样,RTOS及SPI驱动器就不再是其本身IP内核了,因为其作业不会直接影响FFT。别的,假如咱们调整SPI驱动器的施行,咱们就不需求对体系未影响的部分再进行审验。

缓冲器溢出办理

  咱们怎么运用FPGA来削减以软件为中心的体系一般会产生的过错的另一个示例便是缓冲器溢出办理。当程序企图存储超越为其存储分配的存储器结尾的数据时,程序就会重复写入本不应写入的某些相邻数据,这样就会产生缓冲器溢出。这是个很难发觉的缺点,因为在将来任何时分都可拜访被重写的存储器,并且这种情况或许会构成显着的过错,也或许不会。嵌入规划中一种比较常见的缓冲器溢出情况是某种高速通讯构成的,或许来自网络、磁盘或许 A/D转换器。假如通讯中止时刻过长,缓冲器就会溢出,因而咱们需求处理这个问题来避免各种抵触。

  咱们可以以两种办法选用 FPGA来办理缓冲器溢出。在第一种示例中,咱们选用FPGA办理循环传输或许双缓冲传输,这样可卸载实时处理器的负荷。在这种情况下,FPGA可用作协处理器,下降主处理器的中止负载。这是一种通用装备,特别是在高速A/D转换器中。

  在第二种示例中,咱们将FPGA用作维护功用的安全维护层,让针对患者的I/O在抵达处理器之前,先通过FPGA。在这种情况下,您可以为FPGA添加额定的安全逻辑,这样在处理器上的软件溃散时,您可将一切的输出置于已知的安全状态下。FPGA可发挥看门狗的效果,其逻辑可以在软件产生毛病的时分保证对患者的危险下降到最低程度。通过在架构规划中将FPGA引进设备的主信号链,您可以运用这两种办法中的一种或许两种来应对缓冲器溢出,以便在产生情况的时分可以更好地处置。

  事实上,越多地将软、硬件整体体系功用移至FPGA中,就能越快地完结规划流程,并终究越快地完结咱们的规划在客户终究产品上的验证作业。假如咱们能更快地验证咱们规划计划在整体体系上运转的牢靠性,那么咱们的客户就能更快地验证整个终究产品,从而将其交给FDA批阅。这一进程意味着咱们的客户可以显着加快其产品的上市进程,改进患者的日子质量,乃至解救生命。

  假如咱们选用ASIC工艺来施行规划,咱们需求为代工厂出产出硬件等上好几个月。验证ASIC的物理规划、创立掩膜并将规划投产等额定的进程会构成更多犯错和呈现缺点的几率。假如规划在任何这些进程中呈现过错,成果都会导致产品上市时刻被大大延迟。因为已出产出FPGA且通过全面的测验,因而咱们只需关怀咱们的规划和软件,并保证规划可以契合客户的标准要求。全面结合 “Scrum/Sprint”办法、以硬件为中心的构思、运用高度牢靠的东西并在FPGA与AS%&&&&&%中挑选FPGA,咱们便能使客户完结差异化,从而也能为客户的客户,即患者带来改动。


.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/190037.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部