监护仪的通信方法及系统与流程

文档序号:17567831发布日期:2019-05-03 19:01阅读:584来源:国知局
监护仪的通信方法及系统与流程

本发明涉及医疗设备通信技术领域,特别是涉及一种监护仪的通信方法及系统。



背景技术:

监护仪是一种以测量和控制病人生理参数,并可与已知设定值进行比较,如果出现超标可发出警报的装置或系统。监护仪内部包括多种内部模块,各内部模块之间都有自己的通信协议来进行通信。然而,传统的监护仪所采用的通信协议中,存在以下各种问题:

(1)传送的数据仅包含医疗参数数据本身,而不包括一些辅助性的数据,不能保证数据接收的有效性,这会使得数据可靠性降低。(2)医疗参数数据以固定的字长发送,当数据量少于字长时,仍然按照固定字长(不够长的补上空格字符)发送,会使发送方和接收方的MCU多通信一些没用的字节,从而导致通信的效率不高,增加MCU的负担和功耗,响应速度变慢;而当需要发送更多的内容或数据量时,发送方又不得不分段来发送,或者把原本协议固定的字长再加长,或者调整协议,这样接收方对数据进行处理过程的工作量就大增,显得更麻烦。

总体来说,传统的通信协议运用起来不能实现高可靠性、高效率和低功耗的通信。



技术实现要素:

基于此,有必要提供一种能实现高效率通信的监护仪的通信方法及实现系统。

一种监护仪的通信方法,用于控制所述监护仪的内部模块之间的通信,包括如下步骤:

收发双方约定功能标识所对应的功能指令;

作为数据发送方的内部模块根据所要发送的功能指令生成相应的功能标识、与所述功能指令对应的数据;

将所述功能标识和数据封装为数据包并发送;

作为数据接收方的内部模块在接收到所述数据包后,从数据包中解析出功能指令和对应的数据,根据所述功能指令和数据执行相应的功能。

在其中一个实施例中,作为数据发送方的内部模块还在数据包中加入校验位,用于校验接收的数据是否正确。

在其中一个实施例中,作为数据发送方的内部模块还在数据包中加入包头和包尾,分别位于数据包的第一个字节和最后一个字节,用于标识所述数据包的头部和尾部。

在其中一个实施例中,作为数据发送方的内部模块还在数据包中加入帧长度,用于指明该数据包的长度。

在其中一个实施例中,所述作为数据接收方的内部模块在接收到所述数据包后,从数据包中解析出功能指令和对应的数据,根据所述功能指令和数据执行相应的功能的步骤具体为:

作为数据接收方的内部模块识别所述数据包的包头,接收并存储数据包数据;

检测已接收到字节数是否等于所述帧长度的数值,若是,接收最后一个字节并检测其是否为所述包尾;

判断接收的所述校验位的数值是否正确,若是,从数据包中解析出功能指令和对应的数据并根据所述功能指令和数据执行相应功能。

在其中一个实施例中,所述校验位的数值为数据包中除所述包头、包尾及校验位本身以外的其他字节的数值和。

在其中一个实施例中,作为数据发送方的内部模块根据所要发送的功能指令生成的与所述功能指令对应的数据存放在数据包的数据位中,所述数据位包括一个以上字节。

一种监护仪的通信系统,用于实现所述监护仪的内部模块之间的通信,包括:

定义模块,用于实现收发双方约定功能标识所对应的功能指令;

数据生成模块,用于根据所述功能指令生成相应的功能标识、与所述功能指令对应的数据;

发送模块,用于将所述功能标识和数据封装为数据包并发送;

接收模块,用于在接收到所述数据包后,从数据包中解析出功能指令和对应的数据,根据所述功能指令和数据执行相应的功能。

在其中一个实施例中,所述发送模块还在数据包中加入用于校验接收的数据是否正确的校验位、用于标识所述数据包的头部的包头、用于标识所述数据包的尾部的包尾及用于指明该数据包的长度的帧长度。

在其中一个实施例中,所述接收模块包括:

识别与接收单元,用于识别所述数据包的包头,接收并存储数据包数据;

第一检测单元,用于检测已接收到的字节数是否等于帧长度的数值,若是,通过所述识别与接收单元接收最后一个字节;

第二检测模块,用于检测接收到的最后一个字节是否为所述包尾;

判断单元,用于判断接收的所述校验位的数值是否正确;

执行单元,用于从数据包中解析出功能指令和对应的数据并根据所述功能指令和数据执行相应功能。

上述监护仪的通信方法及系统,将所述功能标识和数据封装为数据包进行发送,所述数据包的数据是根据所要发送的功能指令生成后再发送的,而不是以固定的字长发送的,这样就不会出现数据量少于或多于字长的情况,提高了MCU的效率。

附图说明

图1为一实施例中监护仪的通信方法流程图;

图2为一实施例中数据包结构示意图;

图3为图1所示实施例中作为数据接收方的内部模块接收数据包的方法流程图;

图4为另一实施例中数据包结构示意图;

图5为一实施例中监护仪的通信系统模块图。

具体实施方式

一种监护仪的通信方法,用于控制所述监护仪的内部模块之间的通信。具体请参照图1,为一实施例中监护仪的通信方法流程图。

该方法包括如下步骤:

步骤S110:收发双方约定功能标识所对应的功能指令。

步骤S120:作为数据发送方的内部模块根据所要发送的功能指令生成相应的功能标识、与所述功能指令对应的数据。

步骤S130:将所述功能标识和数据封装为数据包并发送。

在本实施例中,作为数据发送方的内部模块还在数据包中加入校验位、包头、包尾以及帧长度。

请结合图2,为一实施例中数据包结构示意图。

该数据包结构包括以下字节:包头110、帧长度120、功能标识130、校验位140及包尾150。

包头110用于标识数据包的头部。数据发送过程中,发送数据包的第一个字节为包头110,接收过程,识别到包头110时才开始接收数据,否则不接收,以免数据接收错位。

可以理解,如果是监护仪的多个内部模块通信,则不同内部模块对应不同包头,以便于识别是发送到哪个内部模块的数据包。这样可以很容易实现多个内部模块之间的相互通信。

具体地,各个内部模块都设置有不同的包头,以实现多个内部模块在总线上通信。当有内部模块在总线发送数据时,其他作为接收方的内部模块只有在检测到自己的包头才接收数据包,否则不接收。发送数据的过程中,如果想更改数据发送的对象,只需把包头改为相应内部模块的包头即可,相应内部模块便可在总线识别自己的包头并接收数据,其他不是接收方的内部模块因为识别不到自己的包头而不接收数据。

帧长度120用于指明该数据包的长度。在本实施例中,数据包的第二个字节为帧长度120,接收过程,接收到第二字节为帧长度120,之后根据帧长度120的数值来接收该数据包的字节数,以免接收一些无用的数据。

功能标识130用于提供对应的功能指令。数据包的第三个字节为根据所要发送的功能指令生成的功能标识130,接收完一个数据包并校验正确后,根据该数据包的功能标识130和数据执行相应的功能。

校验位140用于校验一个数据包接收后是否正确。发送过程,数据包自动生成位于倒数第二个字节的校验位140。接收过程,接收完一个数据包后,根据该数据包的倒数第二个字节的校验位140来校验该数据包是否接收正确。如果校验不正确,则放弃该数据包。

校验位140的数值为所述数据包中除所包头110、校验位140、包尾150之外的其他字节的数值和。在本实施例中,校验位140的数据等于帧长度120和功能标识130两个字节的数值相加所得的和。

包尾150用于标识数据包的尾部。发送数据包的最后一个字节为包尾150,用于说明该数据包的结束。接收过程,按字长完成接收数据后,最后一个字节为包尾150,一个数据包才算接收完整。

本实施例中的数据包结构主要是针对作为数据发送方的内部模块根据所要发送的功能指令时没有生成对应数据的情况。如果生成了与所述功能指令对应的数据,则可以在数据包中增加数据位来存放数据。

进一步地,在本实施例中,包头110和包尾150统一采用十六进制表示。可以理解,在其他实施例中,包头110和包尾150还可以采用其他进制表示。

步骤S140:作为数据接收方的内部模块在接收到所述数据包后,从数据包中解析出功能指令和对应的数据,根据所述功能指令和数据执行相应的功能。

请结合图3,为图1所示实施例中作为数据接收方的内部模块接收数据包的方法流程图。该方法包括:

步骤S210:作为数据接收方的内部模块识别所述数据包的包头,接收并存储数据包数据。

在本实施例中,每个数据包的包头110对应监护仪中唯一一个内部模块。接收过程,接收方只有在识别到包头110为对应自己的包头时才开始接收数据包数据,否则不接收,以免数据接收错位。

步骤S220:检测已接收到的字节数是否等于所述帧长度的数值,若是,执行步骤S230。

在本实施例中,接收到的数据包的第二字节为帧长度120,之后根据帧长度120的数值来确定接收该数据包的字节数,以免接收一些无用数据。然后根据帧长度120确定接收的最后一个字节。

步骤S230:接收最后一个字节并检测其是否为包尾150,若是,执行步骤S150,若否,返回执行步骤S210。

只有检测到最后一个字节为包尾150时才算完成一个数据包的接收,否则就放弃已接收的数据,重新识别数据包的包头110。

步骤S240:判断接收的所述校验位的数值是否正确,若是,执行步骤S250,若否,返回执行步骤S210。

在本实施例中,校验位140的数值为所述数据包结构中除包头110、校验位140、包尾150之外的其他字节的数值和,即为帧长度120与功能标识130的数值和。

具体地,在发送过程中如果自动生成的校验位为6,而帧长度120与功能标识130的数值和(如果有数据位,则为帧长度120、功能标识130以及所述数据位的数值和)也等于6,说明校验位140的数值是正确的,则执行步骤S250。相反,如果计算的数值和不等6,则说明校验位140的数值是不正确的,那么需要放弃该数据包的数据并返回到步骤S210。

步骤S250:从数据包中解析出功能指令和对应的数据并根据所述功能标识和数据执行相应功能。

请参照图4,为另一实施例中数据包结构示意图。

该数据包结构包括排布的以下字节:包头210、帧长度220、功能标识230、数据位240、校验位250及包尾260。

其中,包头210、帧长度220、功能标识230校验位250及包尾260的功能请参照图1中实施例的描述,这里不再赘述。

需要指出,校验位250的数值为所述数据包结构中包头210、校验和250及包尾260之外的其他字节的数值和。因此,在本实施例中,校验位250的数据等于帧长度220、功能标识230及数据位240三个字节的数值相加所得的和。

数据位240用于存放作为数据发送方的内部模块根据所要发送的功能指令生成的与所述功能指令对应的数据。如果某一功能指令在通信过程中生成了对应的数据,则紧接着在功能标识230后面增加存放数据的数据位240。在本实施例中,数据位240为1个字节,可以理解,在其他实施例中,还可以根据功能的需要,增加数据位的长度。当数据包结构具有两个以上字节数据位时,校验位250则位于最后1个字节的数据位的后面。

进一步地,在本实施例中,包头210和包尾260统一采用十六进制表示。可以理解,在其他实施例中,包头210和包尾260还可以采用其他进制表示。

最后,还提供一种监护仪的通信系统,用于实现所述监护仪的内部模块之间的通信。

请参照图5,为一实施例中监护仪的通信系统模块图,用于实现所述监护仪的内部模块之间的通信,该系统包括:

定义模块310,用于实现收发双方约定功能标识所对应的功能指令。

数据生成模块320,用于根据所要发送的功能指令生成相应的功能标识、与所述功能指令对应的数据。

发送模块330,用于将所述功能标识和数据封装为数据包并发送。

在本实施例中,发送模块330在发送数据时,还在数据包中加入了用于校验接收的数据是否正确的校验位、用于标识所述数据包的头部的包头、用于标识所述数据包的尾部的包尾及用于指明该数据包的长度的帧长度。可以理解,在其他实施例中,还可以在所述数据包加入数据位,所述数据位用于存放通信过程中产生的数据。

接收模块340,用于在接收到所述数据包后,从数据包中解析出功能指令和对应的数据,根据所述功能指令和数据执行相应的功能。

在本实施例中,接收模块340包括:

识别与接收单元,用于识别所述数据包的包头,接收并存储数据包数据。

第一检测单元,用于检测已接收到字节数是否等于帧长度的数值,若是,通过所述识别与接收单元接收最后一个字节。

第二检测单元,用于检测接收的最后一个字节是否为所述包尾。

判断单元,用于判断接收的所述校验位的数值是否正确。

在本实施例中,所述校验位的数值为所述数据包中除所述包头、校验位、包尾之外的其他字节的数值和。

执行单元,用于从数据包中解析出功能指令和对应的数据并根据所述功能指令和数据执行相应功能。

上述监护仪的通信方法及系统,将所述功能标识和数据封装为数据包进行发送,这样传送的数据不仅包含医疗参数数据本身,还可以加入一些辅助性的数据,从而可以保证数据接收的可靠性,同时,所述数据包的数据是根据所要发送的功能指令生成后再发送的,而不是以固定的字长发送的,这样就不会出现数据量少于或多于字长的情况,提高了MCU的效率并降低了其功耗。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1