基于ZigBee的心率数据采集与主机的串口通信方法转让专利

申请号 : CN202110555603.8

文献号 : CN113312296B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金继欢侯睿张成俊张俊敏田微刘俊康

申请人 : 中南民族大学武汉纺织大学

摘要 :

本发明公开了基于ZigBee的心率数据采集与主机的串口通信方法,ZigBee终端节点采集心率数据;组成Zigbee数据包发送到ZigBee协调器,封装数据发送帧并发送到主机;判断数据发送帧完整性和正确性;主机根据数据发送帧对数据响应帧进行封装;ZigBee协调器接收到数据响应帧后转发给ZigBee终端节点;ZigBee终端节点接收到数据响应帧后进行解析,按断是否重新发送数据发送帧到ZigBee协调器。本发明实现各个ZigBee终端节点的节点地址的注册、更新、注销等功能。通过数据校验和功能字段实现Zigbee传输和串口传输的数据的正确性控制,对传输失败的数据进行重传处理。

权利要求 :

1.基于ZigBee的心率数据采集与主机的串口通信方法,其特征在于,包括以下步骤:步骤1、ZigBee终端节点采集心率数据;

步骤2、ZigBee终端节点将心率数据、心率数据序号、节点地址信息、以及节点状态组成Zigbee数据包发送到ZigBee协调器,ZigBee协调器根据Zigbee数据包封装数据发送帧,并将数据发送帧发送到主机;

步骤3、主机对接收的数据发送帧进行解析,判断数据发送帧完整性和正确性,根据节点状态判断ZigBee终端节点是否工作正常,根据节点状态判断是否需要对ZigBee终端节点地址进行注册或注销或更新;

步骤4、主机根据数据发送帧对数据响应帧进行封装;

步骤5、ZigBee协调器接收到数据响应帧后转发给ZigBee终端节点;

步骤6、ZigBee终端节点接收到数据响应帧后进行解析,若解析判断对应的数据发送帧接收不正确,则重新发送数据发送帧到ZigBee协调器,所述的步骤2包括以下步骤:

步骤2.1、设置数据发送帧的帧头字段;

步骤2.2、将数据发送帧的帧序号字段设置为当前接收到Zigbee数据包的心率数据序号;

步骤2.3、将数据发送帧的节点地址信息字段设置为Zigbee数据包的节点地址信息;

步骤2.4、如果节点状态为正常工作且能接收心率数据,将数据发送帧中功能字段的内容设置为0x00;

如果节点状态为新加入网络节点,设置数据发送帧的功能字段的内容为0x01;

如果接收心率数据异常,设置数据发送帧的功能字段的内容为0x02;

如果节点状态为网络地址发生变化,设置数据发送帧的功能字段的内容为0x03;

如果节点状态为准备退出网络,设置数据发送帧的功能字段内容为0x04,步骤2.5、ZigBee协调器接收心率数据后,判断心率数据长度,将数据发送帧的数据长度字段设置为心率数据长度,

步骤2.6、在数据发送帧中的心率数据字段中添加测量的心率数据,步骤2.7、将数据发送帧的帧头字段,帧序号字段,节点地址信息字段,功能字段,数据长度字段心率数据字段,以及帧尾字段的内容进行异或计算得到异或值作为数据发送帧中的校验字段的内容,

步骤2.8、设置数据发送帧中的帧尾字段,ZigBee协调器发送数据发送帧至主机。

2.根据权利要求1所述的基于ZigBee的心率数据采集与主机的串口通信方法,其特征在于,所述的步骤3包括以下步骤:步骤3.1、主机接收数据发送帧,并对数据发送帧进行解析;

步骤3.2、主机将接收到的数据发送帧中的帧头字段,帧序号字段,节点地址信息字段,功能字段,数据长度字段,心率数据字段,以及帧尾字段的内容进行异或计算,将通过计算获得的异或值同数据发送帧中的校验字段的内容进行比对,如果比对相同,进入步骤3.3,如果比对结果不同,则进入步骤4;

步骤3.3、当功能字段内容为0x00,设置当前存储的ZigBee终端节点状态为运行良好,当功能字段内容为0x01,主机对当前新加入网络的ZigBee终端节点地址进行注册,当功能字段内容为0x02,主机显示当前进行数据测量的Zigbee终端节点出现异常状态,

当功能字段内容为0x03,主机对当前发送数据的ZigBee终端节点地址进行更新,当功能字段内容为0x04,主机将当前准备退出网络的Zigbee终端节点地址进行注销。

3.根据权利要求2所述的基于ZigBee的心率数据采集与主机的串口通信方法,其特征在于,所述的步骤4包括以下步骤:步骤4.1、主机设置数据响应帧的帧头字段;

步骤4.2、主机设置数据响应帧的帧尾字段;

步骤4.3、主机将数据响应帧的帧序号字段设置为对应的数据发送帧的帧序号字段;

步骤4.4、主机将数据响应帧的节点地址信息字段设置为对应数据发送帧的节点地址信息字段;

步骤4.5、如果主机解析数据发送帧进行校验时未发现异常且对应数据发送帧的功能字段反映不是0x02,将数据响应帧中响应指令字段设置为心率数据接收成功;

如果解析数据发送帧进行校验时发现异常或者对应数据发送帧的功能字段为0x02,将数据响应帧中响应指令字段设置为本次数据接收失败,需要进行数据重传;

步骤4.6、主机将数据响应帧中的帧头字段,帧序号字段,节点地址信息字段,响应指令字段,以及帧尾字段进行异或计算,获得异或值设置于数据响应帧中的校验字段。

说明书 :

基于ZigBee的心率数据采集与主机的串口通信方法

技术领域

[0001] 本发明属于无线通讯技术领域,更具体涉及基于ZigBee的心率数据采集与主机的串口通信方法。

背景技术

[0002] ZigBee技术是一种近距离,低复杂度,低功耗,低速率,低成本的双向无线通信技术,适用于工业,农业,军事,环境,医疗等多种传统领域。
[0003] 传统模式下的医疗检测对病人产生很大不便性,利用无线传感器网络技术,通过相应的人体电信号检测传感器,可以测量出人体体征数据,同时通过无线传输数据技术,医
生可以通过控制主机远程监控病人身体状况,随时查看,随时接受警报信息。
[0004] ZigBee是一种无线连接,可工作在2.4GHz,868MHz和915MHz三个频段上,分别具有最高250kb/s,20kb/s和40kb/s的传输速率,传输距离在10至75m的范围内,同时可以继续增
加范围。
[0005] ZigBee堆栈是在IEEE802.15.4标准基础上建立的,定义了协议的MAC和PHY层,ZigBee设备包括IEEE802.15.4的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK),应用层和
安全服务提供层。
[0006] 串口通信协议设置了ZigBee通过串口与主机完成通信和服务遵循的规则和约定,协议定义了数据单元的使用格式,以及数据单元包含的信息与含义,以及连接方式,信息发
送与接收时序,确保了信息之间的正确交互。
[0007] 但是目前医疗检测中,大多采用蓝牙方案进行数据传输,能量消耗大,距离传输受限,且数据传输不稳定。

发明内容

[0008] 本发明的目的在于解决现有技术中存在的上述问题,提供基于ZigBee的心率数据采集与主机的串口通信方法。
[0009] 本发明的上述目的通过以下技术手段实现:
[0010] 基于ZigBee的心率数据采集与主机的串口通信方法,包括以下步骤:
[0011] 步骤1、ZigBee终端节点采集心率数据;
[0012] 步骤2、ZigBee终端节点将心率数据、心率数据序号、节点地址信息、以及节点状态组成Zigbee数据包发送到ZigBee协调器,ZigBee协调器根据Zigbee数据包封装数据发送
帧,并将数据发送帧发送到主机;
[0013] 步骤3、主机对接收的数据发送帧进行解析,判断数据发送帧完整性和正确性,根据节点状态判断ZigBee终端节点是否工作正常,根据节点状态判断是否需要对ZigBee终端
节点地址进行注册或注销或更新;
[0014] 步骤4、主机根据数据发送帧对数据响应帧进行封装;
[0015] 步骤5、ZigBee协调器接收到数据响应帧后转发给ZigBee终端节点;
[0016] 步骤6、ZigBee终端节点接收到数据响应帧后进行解析,若解析判断对应的数据发送帧接收不正确,则重新发送数据发送帧到ZigBee协调器。
[0017] 如上所述的步骤2包括以下步骤:
[0018] 步骤2.1、设置数据发送帧的帧头字段;
[0019] 步骤2.2、将数据发送帧的帧序号字段设置为当前接收到Zigbee数据包的心率数据序号;
[0020] 步骤2.3、将数据发送帧的节点地址信息字段设置为Zigbee数据包的节点地址信息;
[0021] 步骤2.4、如果节点状态为正常工作且能接收心率数据,将数据发送帧中功能字段的内容设置为0x00;
[0022] 如果节点状态为新加入网络节点,设置数据发送帧的功能字段的内容为0x01;
[0023] 如果接收心率数据异常,设置数据发送帧的功能字段的内容为0x02;
[0024] 如果节点状态为网络地址发生变化,设置数据发送帧的功能字段的内容为0x03;
[0025] 如果节点状态为准备退出网络,设置数据发送帧的功能字段内容为0x04,
[0026] 步骤2.5、ZigBee协调器接收心率数据后,判断心率数据长度,将数据发送帧的数据长度字段设置为心率数据长度,
[0027] 步骤2.6、在数据发送帧中的心率数据字段中添加测量的心率数据,
[0028] 步骤2.7、将数据发送帧的帧头字段,帧序号字段,节点地址信息字段,功能字段,数据长度字段心率数据字段,以及帧尾字段的内容进行异或计算得到异或值作为数据发送
帧中的校验字段的内容,
[0029] 步骤2.8、设置数据发送帧中的帧尾字段,ZigBee协调器发送数据发送帧至主机。
[0030] 如上所述的步骤3包括以下步骤:
[0031] 步骤3.1、主机接收数据发送帧,并对数据发送帧进行解析;
[0032] 步骤3.2、主机将接收到的数据发送帧中的帧头字段,帧序号字段,节点地址信息字段,功能字段,数据长度字段,心率数据字段,以及帧尾字段的内容进行异或计算,将通过
计算获得的异或值同数据发送帧中的校验字段的内容进行比对,如果比对相同,进入步骤
3.3,如果比对结果不同,则进入步骤4;
[0033] 步骤3.3、当功能字段内容为0x00,设置当前存储的ZigBee终端节点状态为运行良好,
[0034] 当功能字段内容为0x01,主机对当前新加入网络的ZigBee终端节点地址进行注册,
[0035] 当功能字段内容为0x02,主机显示当前进行数据测量的Zigbee终端节点出现异常状态,
[0036] 当功能字段内容为0x03,主机对当前发送数据的ZigBee终端节点地址进行更新,
[0037] 当功能字段内容为0x04,主机将当前准备退出网络的Zigbee终端节点地址进行注销。
[0038] 如上所述的步骤4包括以下步骤:
[0039] 步骤4.1、主机设置数据响应帧的帧头字段;
[0040] 步骤4.2、主机设置数据响应帧的帧尾字段;
[0041] 步骤4.3、主机将数据响应帧的帧序号字段设置为对应的数据发送帧的帧序号字段;
[0042] 步骤4.4、主机将数据响应帧的节点地址信息字段设置为对应数据发送帧的节点地址信息字段;
[0043] 步骤4.5、如果主机解析数据发送帧进行校验时未发现异常且对应数据发送帧的功能字段反映不是0x02,将数据响应帧中响应指令字段设置为心率数据接收成功;
[0044] 如果解析数据发送帧进行校验时发现异常或者对应数据发送帧的功能字段为0x02,将数据响应帧中响应指令字段设置为本次数据接收失败,需要进行数据重传;
[0045] 步骤4.6、主机将数据响应帧中的帧头字段,帧序号字段,节点地址信息字段,响应指令字段,以及帧尾字段进行异或计算,获得异或值设置于数据响应帧中的校验字段。
[0046] 本发明相对于现有技术,具有以下优点:
[0047] 1、使用Zigbee作为ZigBee终端节点与ZigBee协调器的通讯方式,减小功耗,且数据传输距离长;
[0048] 2、建立ZigBee终端节点与主机之间的可靠数据传输,进行Zigbee至串口通讯的转换;
[0049] 3、建立自定义串口通讯,除进行可靠的心率数据传输以外,还可以实现主机对各个ZigBee终端节点的管理,实现各个ZigBee终端节点的节点地址的注册、更新、注销等功
能。
[0050] 4、通过数据校验和功能字段实现Zigbee传输和串口传输的数据的正确性控制,对传输失败的数据进行重传处理。

附图说明

[0051] 图1是本次发明中数据发送帧结构图;
[0052] 图2是本次发明中数据响应帧结构图;
[0053] 图3是ZigBee协调器节点的结构示意图;
[0054] 图4是数据发送帧中功能字段的设置示意图;
[0055] 图5是数据响应帧中响应指令字段的设置示意图。

具体实施方式

[0056] 为了便于本领域普通技术人员理解和实施本发明,下面结合实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限
定本发明。
[0057] 本次发明涉及的数据发送帧的结构与定义如图1所示,数据响应帧的结构与定义如图2所示。
[0058] 对于控制主机与ZigBee协调器节点和ZigBee终端节点而言,需要通过对数据发送帧和数据响应帧结构的解析来实现数据的收集和数据的交互。
[0059] 基于ZigBee的心率数据采集与主机的串口通信方法,包括以下步骤:
[0060] 步骤1、ZigBee终端节点周期性测量心率数据;
[0061] 当前ZigBee终端节点周期性测量心率数据,ZigBee终端节点的结构如图3所示。心率传感器测量采用光电容积发,通过测量人体组织在血管搏动时造成透光率不同来进行心
率数据的测量,由光源和电子变换器两部分组成,光源采用对动脉血中氧和血红蛋白有选
择性的一定波长的发光二极管,当光束透过人体外周血管,由于动脉搏动充血容积变化导
致光束的透光率发生变化,此时由光电变换器接收经人体组织反射的光线,转变为电信号
并将其放大和输出模拟电压值。同时ZigBee终端节点将采集到的模拟信号值转为数字信号
计算得到心率数据。
[0062] 步骤2、ZigBee终端节点将采集的心率数据、心率数据序号、节点地址信息、以及节点状态组成Zigbee数据包发送到ZigBee协调器,ZigBee协调器解析Zigbee数据包并解析出
心率数据、心率数据序号、节点地址信息、以及节点状态,并根据接收到的心率数据、心率数
据序号、节点地址信息、以及节点状态封装数据发送帧,并将数据发送帧发送到主机;
[0063] ZigBee终端节点通过Zigbee网络将采集的心率数据、心率数据序号、节点地址信息、以及节点状态组成Zigbee数据包发送至ZigBee协调器。节点地址信息包括物理地址以
及网络地址,在ZigBee网络中,ZigBee协调器的网络地址默认为0000,即所有的ZigBee终端
节点发送的数据的目的地址皆为0000。
[0064] 接收Zigbee数据包的ZigBee协调器进行Zigbee数据包解析,并开始进行数据发送帧的封装,数据发送帧包括帧头字段(SOF),帧序号字段(SN),节点地址信息字段(SA/MA),
功能字段(FC),数据长度字段(LT),心率数据字段(HRDA)、校验字段(BCC)和帧尾字段
(EOF)。
[0065] 步骤2.1、将数据发送帧的帧头字段设置为0x3C,
[0066] 步骤2.2、将数据发送帧的帧序号字段设置为当前接收到Zigbee数据包的心率数据序号。
[0067] 步骤2.3、将数据发送帧的节点地址信息字段设置为Zigbee数据包的节点地址信息。
[0068] 步骤2.4、同时ZigBee协调器通过Zigbee数据包的节点状态以及心率数据判断当前ZigBee终端节点是否运转正常,
[0069] 如果节点状态为正常工作且能接收心率数据,将数据发送帧中功能字段的内容设置为0x00;
[0070] 如果节点状态为新加入网络节点,设置数据发送帧的功能字段的内容为0x01;
[0071] 如果接收心率数据异常,设置数据发送帧的功能字段的内容为0x02;
[0072] 如果节点状态为网络地址发生变化,设置数据发送帧的功能字段的内容为0x03;
[0073] 如果节点状态为准备退出网络,设置数据发送帧的功能字段内容为0x04。
[0074] 步骤2.5、ZigBee协调器接收心率数据后,判断心率数据长度,即心率数据所占数据字节,同时将数据发送帧的数据长度字段设置为心率数据长度。
[0075] 步骤2.6、在数据发送帧中的心率数据字段中添加测量的心率数据,采用十六进制数形式。
[0076] 步骤2.7、将数据发送帧的帧头字段(SOF),帧序号字段(SN),节点地址信息字段(SA/MA),功能字段(FC),数据长度字段(LT),心率数据字段(HRDA),以及帧尾字段(EOF)所
有设置内容进行异或计算,计算得到异或值,这个异或值就是数据发送帧的校验字段的内
容。
[0077] 步骤2.8、在最后将数据发送帧的帧尾字段设置为值0x3E,ZigBee协调器将本次数据发送帧封装完毕,通过串口发送该数据发送帧至主机。
[0078] 步骤3、主机对接收的数据发送帧进行解析,判断数据发送帧完整性和正确性,若数据发送帧完整且正确,则数据接收正确,否则数据接收错误,主机根据数据发送帧的节点
状态,判断ZigBee终端节点是否工作正常,或者对ZigBee终端节点地址进行注册或注销或
更新;
[0079] 步骤3.1、当主机接收从串口获得的数据发送帧,首先进行帧头字段判断,确定数据发送帧的帧头起始位置,然后对帧尾字段进行判断,保证数据发送帧的完整性。保存接收
的完整的数据发送帧至内部数组,开始解析当前数据发送帧。
[0080] 如图4所示,主机通过解析数据发送帧中的功能字段(FC),判断当前测量心率数据的ZigBee终端节点的运行状态,数据发送帧中功能字段(FC)内容以及定义如图4所示。
[0081] 步骤3.2、主机将接收到的数据发送帧中的帧头字段(SOF),帧序号字段(SN),节点地址信息字段(SA/MA),功能字段(FC),数据长度字段(LT),心率数据字段(HRDA),以及帧尾
字段(EOF)的内容进行异或计算,将通过计算获得的异或值同数据发送帧中的校验字段
(BCC)的内容进行比对,如果比对相同表示接收到的数据发送帧正确与完整,无字节丢失现
象,进入步骤3.3,如果比对结果不同,则进入步骤4,。
[0082] 步骤3.3、当功能字段(FC)内容为0x00,设置当前存储的ZigBee终端节点状态为运行良好,
[0083] 当功能字段(FC)内容为0x01,主机对当前新加入网络的ZigBee终端节点地址进行注册,
[0084] 当功能字段(FC)内容为0x02,主机显示当前进行数据测量的Zigbee终端节点出现异常状态,
[0085] 当功能字段(FC)内容为0x03,主机对当前发送数据的ZigBee终端节点地址进行更新。
[0086] 当功能字段(FC)内容为0x04,主机将当前准备退出网络的Zigbee终端节点地址进行注销。
[0087] 步骤4、主机根据数据发送帧对数据响应帧进行封装;
[0088] 数据响应帧包括帧头字段(SOF),帧序号字段(SN),节点地址信息字段(SA),响应指令字段(RI),校验字段(BCC),帧尾字段(EOF)
[0089] 步骤4.1、主机将数据响应帧的帧头字段(SOF)的内容设置为0x3C,表示这是数据响应帧的帧开始部分,
[0090] 步骤4.2、主机将数据响应帧的帧尾字段(EOF)设置为0x3E,表示这是数据响应帧帧结束部分。
[0091] 步骤4.3、主机将数据响应帧的帧序号字段(SN)设置为对应的数据发送帧的帧序号字段。
[0092] 步骤4.4、主机将数据响应帧的节点地址信息字段(SA)设置为对应数据发送帧的节点地址信息字段。
[0093] 步骤4.5、响应指令字段(RI)的设置与含义如图5所示,如果主机解析数据发送帧进行校验时未发现异常且对应数据发送帧的功能字段(FC)反映不是接收心率数据异常,封
装数据响应帧时将数据响应帧中响应指令字段(RI)设置为0x01,表示该心率数据接收成
功,如若解析数据发送帧进行校验时发现异常或者对应数据发送帧的功能字段(FC)反映接
收心率数据异常,即内容为0x02,封装数据响应帧时将数据响应帧中响应指令字段设置为
0x00,表示本次数据接收失败,需要进行数据重传。
[0094] 步骤4.6、将数据响应帧中的帧头字段(SOF)的内容,帧序号字段(SN)的内容,节点地址信息字段(SA)的内容,响应指令字段(RI)的内容,以及帧尾字段(EOF)的内容进行异或
计算,获得异或值,将该异或值设置于数据响应帧中的校验字段(BCC)。
[0095] 步骤5、ZigBee协调器接收到数据响应帧后转发给ZigBee终端节点;
[0096] ZigBee协调器接收本次数据发送帧对应的数据响应帧,通过判断接收数据内容是否同等于0x3C定位本次数据响应帧帧头位置,同时通过判断接收数据内容是否等于0x3E定
位本次数据响应帧帧尾位置。完整接收本次数据响应帧后,ZigBee协调器开始解析节点地
址信息字段(SA),将本数据响应帧通过无线网络发送至节点地址信息字段(SA)对应的
ZigBee终端节点。
[0097] 步骤6、ZigBee终端节点接收到数据响应帧后进行解析,若解析判断对应的数据发送帧接收不正确,则重新发送数据发送帧到ZigBee协调器。
[0098] ZigBee终端节点接收数据响应帧,通过判断接收数据内容是否为0x3C来定位本次数据响应帧的帧头,同时通过判断接收数据内容是否为0x3E来定位本次数据响应帧的帧
尾。完整接收本次数据响应帧后,ZigBee终端节点解析响应指令字段(RI)的内容,判断主机
是否完整接受发送的心率数据,当解析响应指令字段(RI)的内容为0x00,表示主机接收心
率数据失败,此时重新进行数据发送帧的封装与发送,将测量的心率数据进行重传。当解析
内容为0x01,表示主机接收心率数据成功,ZigBee终端节点等待下一周期传感器心率数据
测量结果。
[0099] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替
代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。