医疗器械(含体外诊断)硬件架构及核心板选型方案
来源:小桔灯网
作者:沧海一豆
1. 卷首语
医疗设备的设计是一个系统性的工作,在产品设计的第一个阶段,首先要思考和定义好产品的系统架构。
产品的系统架构从整体上讲,是指产品设计所涉及的各个专业之间的结合方式以及协同工作的方案。 从专业上来讲,又可以分解为硬件架构、软件架构、机械架构(结构)等。产品的设计过程实际上就是将整体的设计需求分解到每个专业,再对每个专业进行架构定义,最后根据定义好的架构进行实际的产品设计。
因此每一位设计者应该在设计初期就要投入足够的时间对整体的或者各自专业的架构方案进行深入的思考和充分的评估。一个良好的架构能够在后期规避很多产品开发上的问题和减少“挖坑”的风险。不少项目的失败往往都是因为架构设计存在漏洞,从而导致方案推到重来,甚至最终成了“不治之症”,而一个成熟的设计者需要同时从技术上和经济学上规避风险,才能实现产品开发的成功。任何一方面的缺失都会导致产品失败,对于市场而言,一个产品是否成功只关乎结果,过程并不重要。
在这里,我们不打算从产品的整体架构开始讲述,因为整体架构涉及到的领域和知识太广了,而目前很多关于产品设计的资料、教材(特别是大学的教材)往往上来就讲述宏观的理论和概念,对于如何落地操作却缺少实际性的讲解和案例(这个似乎是很多教材的通病),导致阅读者越读越迷糊,而社会上能够用到的实操知识往往只能从工作中花费大量时间来积累,遗憾的是,很多道理实际上只需要简单的一句话就能够让设计者明白。
因此我们反复考虑了很久,决定从产品的硬件架构开始讲述,因为一个产品的设计往往是从硬件和机械开始的,而硬件又是设计中与系统架构关系最密切的专业,同时为了让知识能够通俗易懂,我们将对硬件架构中最关键的核心板的选型进行详细的讲解,从一位参与和主持过多款医疗设备研发和管理的工程师的角度来和我们的读者交流一下设计的思路,开发经验、心得体会以及风险规避的一些方法,希望能够为刚进入社会的设计师提供一些参考 ,也希望能够就此和广大有经验的工程师进行交流和切磋,如有不当之处,欢迎大家指正。
2. 硬件架构
什么是硬件架构?硬件架构包括那些内容?我们首先要回答这两个问题。
什么是硬件?硬件我们理解为:具备各种功能的芯片、具有一定功能的设备、各种类型的传感器以及电子元件的组合。在这些元器件中,各种具有运算能力和编程功能的微处理芯片是核心。概括的说,我们认为,一个产品的硬件架构可以理解为以下四个层次的内容:
(1) 组成产品硬件的微处理芯片的数量和功能;
(2) 各微处理芯片所负责控制和处理的设备、传感器等电子元器件的数量和种类;
(3) 各微处理芯片之间的通信方式和协作关系;
(4) 产品的系统供电方案。
由此可见,硬件架构包含了对微处理芯片数量和类型的定义;各微处理芯片所控制和处理的设备、传感器以及电子元器件等的数量、种类和方法;各微处理芯片之间的通信和协作关系;系统供电方案。
为了让内容更加通俗易懂,我们以一个案例来进行说明。如下图1所示是一款医用呼吸机的硬件架构图案例,分析这个产品的硬件架构,我们先了解一下设备的微处理芯片以及芯片各自的职责。
图 1 医用呼吸机硬件架构图
从上面我们可以看到,这个硬件架构包含两块微处理芯片,作为主控平台的M1808-1GF4GLI-T和作为驱动控制的M1052-16F128AWI-T,我们姑且分别称之为主控芯片和驱动芯片。在这个硬件架构中,主控芯片主要承担了人机交互和对外接口的角色,它控制的元器件包括显示屏、以太网、WIFI、蓝牙、照相机以及USB等,因此主控芯片的选型要考虑芯片具备的功能和接口,案例中的这个主控芯片从厂家的选型资料中可以看到,这是一款面向AI人工智能平台及产品开发者,定位于深度学习平台和独立的人工智能(AI)加速器,是一款具备人工智能编程及深度学习能力的AIoT平台。尽管它的功能和接口完全可以满足呼吸机的功能要求,而且还具备强大的运算能力和图像识别功能等,但从经济学的角度上看,这款芯片的功能在呼吸机产品上的应用是有所冗余了,除非设计者在产品的整体功能以及未来功能的扩展上有其他考虑,那么这个芯片的选型合理性则另当别论。
驱动芯片M1052-16F128AWI-T主要承担了电机控制、传感器控制等功能,从厂家的选型资料可以看到,这是一款主频最高可达528MHz,集成了SDRAM、NAND Flash、SPI Flash、硬件看门狗,除了保留传统的UART、I2C、SPI、CAN、Ethernet、USB和SDIO等通讯接口的之外,还额外集成了WiFi、Zigbee、LoRa、NFC等无线通讯模块,实现了处理器性能、控制与通讯、有线与无线的嵌入式硬件跨界。这款芯片功能很强大,在某些产品中甚至可以作为主控芯片使用,但在这个案例的硬件架构中,该芯片有部分功能与主控芯片重复了,从技术角度来看,这款芯片完全可以满足设计需求,但从经济学角度讲,我个人觉得就不那么划算了。
接下来我们了解一下芯片之间的关系,由于这个设计中只涉及两片微处理芯片,因此他们之间的协作关系很简单,主控芯片和驱动芯片之间一般通过串口进行通信并通过协议实现上下位机之间的指令收发,这是一种比较典型方式。上位机(主控芯片)负责应用软件的运行和外界交互,下位机(驱动芯片)负责较为底层的驱动和控制,一般采用嵌入式的开发平台。
最后,我们看一下系统的电源供电方案,设备可以采用220V交流转直流供电或者电池直接供电,一般交流转直流的电压或者电池电压较高,因此通过降压芯片MP9943来获得主控芯片所需要的驱动电压。另外,由于电调模块需要较高的输入电流,因此通过AC-DC/电池给它直接供电使用。
从上面的案例,我们回顾一下前面对硬件架构的定义,并且把这个案例的硬件架构再提炼概括一下,那么该款医用呼吸机的硬件架构如下:
(1) 硬件架构包含微处理芯片2片,作为主控平台的M1808-1GF4GLI-T和作为驱动控制的M1052-16F128AWI-T,M1808-1GF4GLI-T承担了人机交互和对外接口等上位机功能的角色,M1052-16F128AWI-T承担了电机控制、传感器控制等下位机功能的角色;
(2) 微处理芯片的所控制的电子元器件的情况为:M1808-1GF4GLI-T控制显示触摸屏、WIFI模块、蓝牙模块、摄像头模块等;M1052-16F128AWI-T控制血氧探头、流量传感器以及压力传感器等;
(3) 微处理芯片的通信关系为:M1808-1GF4GLI-T与M1052-16F128AWI-T之间通过串口协议进行通信,M1808-1GF4GLI-T接收来自于显示触摸屏的用户操作指令、WIFI信号、蓝牙信号以及摄像头信号等,并向M1052-16F128AWI-T下发相应的指令,由M1052-16F128AWI-T控制气泵、电磁阀等元器件进行工作,同时M1052-16F128AWI-T也接收其控制的血样探头、流量传感器以及压力传感器的信号,并通过串口将采集到的参数发送给M1808-1GF4GLI-T进行处理,并在显示屏上显示参数结果;
(4) 系统供电方案:采用AC-DC或者电池供电方式,并通过MP9943整流降压开关变换器将12V/24V电压转化为3.3V,供给M1808-1GF4GLI-T使用,作为M1808-1GF4GLI-T的工作电压。
3. 核心板选型
刚才我们已经对硬件的架构做了一个初步的说明,那么在实际设计过程中,硬件架构中的芯片选型具体应该如何落实?设计上的有那些因素需要考虑和那些风险点需要规避?设计过程有那些经验和思路可以参考?下面我们就过往的设计案例做一些初步的论述和探讨。
医疗设备的设计过程本质上是一个技术满足、法规符合、风险管控以及经济考虑的过程,因此我们认为,可以通过图2的逻辑思路对设计进行分析和分解。
图 2 核心板选型和验证思路
如图2所示,核心板选型的我们建议从两个维度进行评估:技术层面和行政层面。
“
3.1
技术层面
技术层面涉及的因素比较多,根据不同设计者的经验和习惯以及产品的种类,都不完全相同,很难把全部因素都列举,这里我们只对一些比较关键以及经验性的因素进行总结:
技术性考虑因素包括但不限于以下因素:
1. 性能参数(频率、内存、硬盘、功耗等);
2. 操作系统(linux/AWorksOS/Android等)以及关键开发软件(特别需要注意平台软件能够支持的版本:例如QT开发版本);
3. 接口类型及数量(显示触摸屏接口、串口、网口、USB、数据采集接口、总线接口、IO口等);
4. 其他特别功能(例如摄像头、PWM、无线、音频、图像处理等);
5. 供电电压;
6. EMC和安规;
7. 封装;
8. 散热;
9. 板卡表观设计能力。
在性能参数里面,芯片的频率、内存、硬盘的选型参数需求是比较常见的,基本大家都能够理解这些参数和设计的关系,但有些参数可能因为没有考虑周全或者经验的问题,容易被忽略,在这里重点讲述一下:
1. 功耗:
有时候设计者可能会忽略功耗的问题,所选择的芯片功耗比较大,导致产品的性能存在硬伤。那什么情况下需要考虑芯片功耗的问题?例如在设计使用电池供电的手持式设备的时候,设备的续航能力是一个关键的参数,影响用户体验,那么芯片的功耗就成为设计需要考虑的关键因素,我们需要充分考虑芯片,尤其是核心板、外设、电机等等的功耗,而且一定要在设计前计算一下电池容量和功耗的关系,为了达到所需要的续航时间,需要选择多大容量的电池,而且为了防止出现续航能力不足的风险,在早期选型的时候最好是在满足功能、性能的前提下尽量选择功耗较低的核心板和元器件,让设计保留足够的冗余。
2. 开发软件:
很多开发人员在选择核心板的时候,可能会忽略厂家提前移植的软件类型以及版本,但是这里需要和读者分享的经验和提醒的一个事情是,软件工程师在开发应用软件的时候,往往会使用版本较高的软件,比如QT,工程师可能会使用5.12以上的版本,但是有些核心板的厂家的产品因为产品的历史原因或者主要客户对象的需求,有可能只移植了较低版本的QT软件,而当工程师花费大量时间在PC上开发好软件后,要移植到核心板上时才发现,由于核心板所支持的软件版本过低,导致已经开发的功能在核心板上无法运行,如果要解决这个问题,一般要通过修改已经开发的应用软件或者移植新版本的QT到核心板,两种情况都带来延误进度的风险。由于在Linux系统下移植软件不像在Windows下那么简单,因此提前确认厂家预先移植好的软件类型以及能够支持的软件版本对于产品的后续开发就十分重要了。
3. 表观设计能力:
关于核心板的表观设计能力,我们理解为板卡的PCB外观、走线、布局和EMC措施等。核心板的厂家市面上非常多,到底怎么选择?在没有真正用过之前,单从厂家的介绍资料,是很难判断的。这个时候,我们也可以考虑通过分析核心板的一些表面特征来进行判断厂家对于自己产品的投入度和用心情况。核心板本质也是PCB板卡,好的PCB板设计都有一些通性。比如从表面元器件的排布是否整齐有序、比如PCB的走线看起来是否比较条理舒服、元器件的布局是否以模块的形式分布合理、是否有加屏蔽罩以提高EMC性能的措施等等,我们可以从这些表面的迹象来判断核心板的质量。以下是一款I.MX 6ULL的核心板,从表观设计上看,是比较好的。
“
3.2
行政层面
除了技术层面的考虑,选型核心板也需要考虑行政层面的问题。事实上,由于经验或者习惯问题,不少开发者没有对行政层面的选型方法和关键要素形成系统的概念和思路。行政层面涉及的因素比较多,根据不同设计者的经验和习惯以及产品的种类,都不完全相同,很难把全部因素都列举,这里我们只对一些比较关键以及经验性的因素进行总结:
行政层面考虑因素包括但不限于以下因素:
1. 厂商供应能力(周期、供货稳定性);
2. 厂商支持度(技术支持能力和配合度);
3. 厂商行业口碑;
4. 厂商品牌和主打领域;
5. 厂商设计案例和经验(是否应用过类似产品);
6. 成本(性价比)。
在这些因素里面,成本、厂商供应能力、品牌和主打领域的考虑是比较常见的,基本大家都能够理解这些因素对于开发和量产的影响,但有些因素可能因为没有考虑周全或者经验的问题,容易被忽略,在这里重点讲述一下:
1. 厂商支持度:
不少设计者可能会认为,厂商支持度和企业规模直接关系,直接选择大品牌和大规模的厂家就可以了,就可以很稳妥的保证得到良好的服务和支持。遗憾的是,实际情况可能是厂家的支持力度其实是和开发者所在公司的规模/品牌直接相关,就是俗语说的“优质的客户才能享受优质的服务”。而对于一些中小规模、初创型企业,或者一些产品开发周期很长,短期内还实现不了量产的厂家而言,选择一个能够从长远考虑合作,懂得培养客户的厂家就非常重要了,这可能会关乎到项目的成败。至于如何选择一个合适的厂家,方法也有很多,比如可以在选型初期通过对厂家提出一些核心板开发的要求来观察厂家反馈和配合的积极程度;或者通过与厂家咨询产品所能提供资料的详细程度;通过对核心板的相关外设(比如显示屏、WIFI等)的前期驱动调试时厂家在软件上的支持程度;通过对核心板软件版本的提供程度或者升级的支持力度。通过以上这些方法,可以从一定程度上判断厂商的支持力度。
2. 厂商设计案例和经验:
厂商的设计案例和经验对于提高一个项目的成功率是非常重要的。因为类似的项目往往在设计需求、设计难点上也非常接近,使用成熟的核心板方案以及厂家的研发资源可以规避很多风险,提高产品研发的效率和成功率。一个成熟的设计者应该懂得利用所有优势资源和参考成功的经验,以确保产品开发的成功率。因为对于市场而言,一个产品是否成功只关乎结果,过程并不重要。
4. 总结
最后,我们对前面所描述的内容进行总结,以便于读者进行理解也希望读者能够为我们的内容提出更多的建议:
1. 硬件架构:
2. 核心板选型:
3. 研发思路:
通信协议:SPI协议的组成和四种工作模式
SPI协议最早是由摩托罗拉公司提出的一种串行外围设备通信接口,是一种高速全双工 的通信总线。它被广泛地使用在很多种产品中,比如ADC模块、LCD显示屏、存储器等设备中,包括一些需要与MCU之间有较高通讯速率要求的场合中,应用也是很广泛的。
那SPI协议到底是一种什么样的协议呢?它有什么特点?别急,一步一步来分析。
1、SPI 的硬件层
首先,SPI本质上是一种数据的通信协议,按照某些规定的协议规则进行数据的传输,完成数据的收发。
SPI通信上采用的是主从模式的通信方式,它支持一主一从、一主多从,但是不支持多主机模式。
注:主从模式指的是主机和从机之间的通信。
常见的一主多从的连接方式如下:
SPI器件的一主多从连接示意图
1.1、SPI接口的信号线
SPI协议接口总共有四根信号线,分别为SCLK、MOSI、MISO、NSS,它们的作用分别如下:
SCLK:时钟信号线。由主机产生并控制。
MOSI:主机数据输出,从机数据输入。(主出从入)
MISO:主机数据输入,从机数据输出。(主入从出)
NSS:从机片选使能信号线。该信号由主机进行控制。在一主对多从的模式下,每一个从机都需要一个NSS,用于主机选择和那个从机进行通信(一般为低电平有效)。当一个SPI设备需要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主设备。
可知,MISO和MOSI是数据流的方向,指明了数据是从主机到从机,还是从机到主机;SCLK是时钟信号,用于数据发送过程中同步数据传输的;NSS是片选信号,用于在一主多从的通信时选择和哪个从机通信。
1.2、SPI 通信常见的连接方式
下面列举了一些SPI通信的连接方式,如下:
(1)SPI 通信配置为全双工的连接方式:
注:这种连接方式允许主从机之间互相进行通信,时钟均由主机产生。
(2)单工模式 —— 主机接收,从机发送
注:这种模式下由主机产生时钟SCK,主机只能收到从机上报的数据,不能向从机下发数据。
(3)单工模式 —— 主机发送,从机接收
注:这种模式下由主机产生时钟SCK,主机只能向从机下发数据,不能接收从机上报的数据。常见的应用有带SPI接口的LCD显示屏。
(4)双向通信的连接方式
2、SPI 的通信协议
上面说了SPI的硬件组成和一些常用的连接方式,下面分析一下SPI的协议层面的组成。
SPI 协议定义了通信的起始信号、停止信号、数据有效性、时钟同步等。它的通讯时序如下:
SPI通信时序图
这是一个主机的通信时序,信号线 NSS、SCK、MOSI 都是由主机控制,MISO 是由从机进行控制。其中 MOSI 和 MISO 上的数据仅在 NSS 为低时才有效,并且每个SCK 时钟周期只交换一位数据。
他的每一部分组成分别如下:
(1)起始信号
SPI通信时序图中的①为通信的起始信号,由主机控制NSS从高电平到低电平,从而选择要进行通信的从机,再通过主机产生时钟信号SCK,启动一次数据的传输 。如下图:
(2)停止信号
SPI通信时序图中的⑥为通信的起始信号,由主机控制NSS从低电平到高电平,从而结束一次数据的传输 。如下图:
(3)数据有效性
SPI 在 SCK 时钟的同步下进行数据的准备和采样,如通信时序图的②③④⑤所示。在 NSS 为低的情况时,在 SCK 的上升沿时 MISO 和 MOSI 进行数据准备,SCK 的下降沿时读取 MISO 和 MOSI 上的数据。 在 NSS 为高时,MISO 和MOSI 上的数据无效。
(4)时钟的同步
SPI 的数据传输是需要 SCK 时钟信号严格同步的,每一个 SCK 周期只传输一位数据 ,这一个周期里要完成数据的准备和采样,且数据的输入和输出是同时进行的。如下图:
SPI中数据是MSB(高位) 先行或 LSB(低位)先行,在协议中是没有硬性规定,只需通信双方保持统一即可。
注意:SPI 一次数据传输可以是 8 位或 16 位为单位,每次传输的单位数不受限制。
3、SPI 的通信速率
关于SPI 的通信速率摩托罗拉公司并没有给出明确的标准和定义的。有一种说法:SPI的最大时钟频率一般是系统时钟频率的一半,意思即是SPI的速率是跟CPU有关系的,传输的速度受限于CPU处理SPI数据的能力,理论上讲CPU处理数据的速度越快,SPI的通信也可以相应的变快。
4、SPI 的工作模式
上面简单介绍了SPI的硬件组成和协议的基本组成,大致是了解了SPI的组成和通信方式,还有一个很重要的特性是需要清楚的,那就是SPI的工作模式。
SPI 一共有四种工作模式。这四种模式是通过 “时钟极性 CPOL” 和 “时钟相位 CPHA” 的电平来实现和区分的。如下:
1)CPOL=0 时,SCK 引脚在空闲状态保持低电平;
2)CPOL=1 时,SCK 引脚在空闲状态保持高电平;
3)CPHA=0 时,SCK 时钟的第一个边沿进行采样;
4)CPHA =1 时,SCK 时钟的第二个边沿进行采样。
这四种模式的形成如下:
(1)时钟相位CPHA =1 ,数据在SCK 时钟的第二个边沿采样。时序图如下:
从上图中可以看出,当时钟相位CPHA=1时,数据在SCK的第二个边沿开始采样。当时钟极性CPLO=1时,SCK在空闲时保持在高电平状态;反之,当时钟极性CPLO=0时,SCK在空闲时保持在低电平状态。
(2)时钟相位CPHA =0 ,数据在SCK 时钟的第一个边沿采样。时序图如下:
从上图中可以看出,当时钟相位CPHA=0时,数据在SCK的第一个边沿开始采样。当时钟极性CPLO=1时,SCK在空闲时保持在高电平状态;反之,当时钟极性CPLO=0时,SCK在空闲时保持在低电平状态。
总结:
SPI的四种工作模式,它们之间的不同之处就在于:
1)总线空闲时 SCK 的电平状态。(高电平还是低电平)
2)数据开始采样的时刻。(SCK的第一个边沿还是第二个边沿)
作者简介:
本人95后技术男,从事嵌入式软件开发,专注于技术成长和技术分享。目标是每天进一步一点点,通过技术改变自己的生活,创造自己的美好未来!如果你也对嵌入式感兴趣,欢迎关注我呀!
声明:
本文作者:嵌入式之入坑笔记
文章版权归作者所有,转载请注明出处!
相关问答
spi 是什么意思?一、SPI是英文SoftwareProcessImprovement的缩写,中文意思是软件过程的改进。它是CMM(还有其他能力模型)中的一个重要概念,CMM模型的目的就是要改进一个组织...
两款芯片 硬件 都支持 SPI 通信,如何实现两芯片之间的数据通信...两款芯片既然都支持SPI通信,那这两款芯片之间就通过SPI即可实现数据通信。SPI是一种串行外设接口,可以实现高速、全双工通信,主要用在近距离通信中,如芯片之间...
HSPI和 spi 的区别是什么?图中这是一个ESP8266的开发板,可以查阅ESP8266芯片手册里有介绍。ESP8266EX有1个通⽤从机/主机SPI和1个通⽤从机HSPI。所有接⼝的功能均由硬件实现。下...
SPI 总线的通讯协议是什么?SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备...
IIC和 SPI 有什么区别?1.IIC为半双工,SPI为全双工2.IIC有应答机制,SPI无应答机制3.IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址(硬件资源占用多,节约...
IIC和 SPI 有什么区别?它采用双线制,即SDA和SCL线,可以传输多个设备的数据,但是速度较慢,最高只能达到400Kbps。而SPI是另一种串行通信接口,通常用于连接微控制器和各种外设,如显...
单片机为什么要用模拟 SPI ?一个方面是自身的不好用,设置麻烦,另一个是通信方式和被控的器件时序不兼容,还一个原因就是自带的可能专用IO被其他功能占用了,或是已经使用在别的SPI器件上...
在嵌入式开发中,怎么开发 SPI IIC的驱动程序?SPI和IIC都是比较常用的短距离通讯方式,主要用在PCB板间或者芯片之间实现近距离通信。比如AT24C02就是通过IIC和单片机实现数据通信的,BMP280即可以通过IIC又可...
SPI 怎么和SDA进行数据通讯?SDA和SCL是IIC/I2C中用到的两个线,一根是数据线,一根是时钟线。SPI也是一种通讯方式,一般为三线或者四线制。IIC和SPI都是非常常用的近距离通讯总线,一般芯片...
单片机 SPI 编程?1.定义三个gpio:p0-sclk,p1-sdi,p2-sdo;p0用于模拟spi的clock,p1用于接收数据,p2用于f发送数据;硬件上单片机A的p0接单片机B的p0,A的p1接B的p2,...