基于Zigbee和串口的通用传感器收发方法
【专利摘要】本发明提供一种基于Zigbee和串口的通用传感器收发方法,采用Zigbee传输机制,在没有通信设施基础的情况下,Zigbee通过自组织网络,通过多跳传输,将传感器数据发送到Sink节点;包括数据采集过程、数据发送过程、控制管理过程;相对于传统的单点采集传感器数据,该方法能够支持多种传感器,具有自组织网络、电源管理、稳定性好、无需依赖既有的通信网络、支持网络管理、数据截取等特点,可广泛应用于远程医疗,野外作战,突发灾害,军事训练,个人保健以及其他没有通信设施支持的监测场景中。
【专利说明】基于Zigbee和串口的通用传感器收发方法
【技术领域】
[0001]本发明涉及一种基于Zigbee和串口的通用传感器收发方法,属于无线传感器网络领域。
【背景技术】
[0002]目前传感器的使用越来越普遍,各行各业都是用到了传感器来采集必要的数据,以帮助工作、生产、远程健康监护、现代医疗等。特别是在没有通信设施的情况下,收发模块发送传感器数据的准确和及时显得尤为重要。
[0003]现代传感器种类越来越丰富,收发模块的通用性也是必不可少的。远程健康监护、野战、煤矿等环境下,固定的收发模块必须能够同时兼容多种传感器的收发。但目前收发模块未能实现各类传感器的通用性,这使得上述环境中各类传感器的采集数据的收发存在着较大的不便。
[0004]在某些特定的情况下,电量的使用也将是无线传感器网络重要的一环,如煤矿安全、野战、土壤监测、气体监测等环境下不能更换电池,而且也必须要保证长时间的对传感器供电,以保证才传感器的实用性。因此,该问题也是在传感器进行采集、收发数据时予以考虑并解决的问题。
【发明内容】
[0005]本发明的目的是提供一种基于Zigbee和串口的通用传感器收发方法,在没有通信设施基础的情况下,能够采集多种支持串口通信的传感器数据,解决现有技术中存在的上述问题。
[0006]以各种环境下多点协同采集传感器数据为应用背景,本发明设计了一种基于Zigbee和串口的通用传感器收发模块。相对于传统的单点采集传感器数据,本发明设计了基于Zigbee多跳自组织网络的通用传感器收发模块,支持多种传感器。Zigbee网络有效的将多跳数据协同发送到Sink节点,Sink节点收到数据后,直接发送到电脑的数据库,上层软件将根据数据库数据进行分析。此方法具有自组织网络、电源管理、稳定性好、无需依赖既有的通信网络、支持网络管理、数据截取等特点,可广泛应用于远程医疗,野外作战,突发灾害,军事训练,个人保健以及其他没有通信设施支持的监测场景中。
[0007]本发明的技术解决方案是:
[0008]一种基于Zigbee和串口的通用传感器收发方法,采用Zigbee传输机制,Zigbee通过自组织网络,通过多跳传输,将传感器数据发送到Sink节点;包括数据采集过程、数据发送过程、控制管理过程;
[0009]数据采集过程:传感器采集数据后,将采集数据以数组形式发送给处理器;
[0010]数据发送过程:处理器将传感器编号赋值到存放采集数据的数组中,处理器对接收到的采集数据进行处理后,Zigbee子模块经过多跳网络转发至Sink节点,Sink节点收到数据后再发送到服务器处理;
[0011]控制管理过程=Zigbee子模块对接收到Sink节点发送来的命令数据进行存储,并将该数据发送给处理器,处理器接收后,依据命令表及相应的函数进行执行Sink发来的命令,处理器将执行后的结果按照数据发送步骤进行发回。
[0012]进一步地,数据采集过程具体为:
[0013]S101、接通电源,处理器和传感器均启动工作;
[0014]S102、处理器通过串口 O发送启动命令Oxaa Oxyy Oxzz到传感器,在通过串口 O发送一个字节数据的时候led灯组的Iedl会亮灭一次;
[0015]S103、传感器接受到命令后,采集数据并且发送到处理器串口 I ;
[0016]S104、传感器建立一个数组a[n],处理器每收到传感器的一个数据都会产生一次中断,收到的收据依次放到a[l]到a[n_l],在通过串口 O接收一个字节数据的时候led灯组的led2会亮灭一次;
[0017]S105、设立一个标志flag,并且赋置为假;如果所有接受数据n_l次,将flag设置为真;
[0018]S106、每产生一次中断,接收一次数据,处理器都开始检查flag标志是否为真,如果为真,则数据不进行丢弃,否则丢弃数组中的数据。
[0019]进一步地,在步骤S103中,采集数据并且发送到Msp430F149处理器串口 I是通过Msp430F149处理器的RXBUFl来不断的接受数据,每接收一次数据,都会产生一次中断,中断内将数据依次存储在a[l]到a[n_l]中。
[0020]进一步地,数据发送过程具体为:
[0021]S201、处理器开始检查数组a中的数据,如果a[2]到a[n_l]数据均为0,认为是无效数据,直接丢弃;
[0022]S202、数组a数据有效的情况下,将传感器编号赋值到a[0]中;
[0023]S203、处理器通过BL1551电源管理子模块中使得Zigbee子模块供电,这时Zigbee子模块正常工作;
[0024]S204、串口 O与Zigbee子模块相连,处理器使能自己的串口 0,使Zigbee子模块与处理器进行通信;
[0025]S205、通用传感器收发模块开始依次产生中断发送数组a,每次发送一个字节的数据,在通过串口 I发送一个字节数据的时候led灯组的led3会亮灭一次;
[0026]S206, Zigbee子模块依次从处理器收到数据,通过自组织网络发送到Sink节点;
[0027]S207、设立一个标志flagl,并且赋值为假。当发送数据η次后,将fIagl赋值为真;
[0028]S208、每发送一次数据,通用传感器收发模块均开始检查flag标志,如果为真,则通过BL1551电源管理子模块关闭Zigbee的电源,否则重新进行传送。
[0029]进一步地,在步骤S201中,处理器开始检查数组a中的数据时,判断为无效数据,是通过在传感器数据设定时,如果出现错误,就全部传O数据。
[0030]进一步地,在步骤S204中,处理器使能自己的串口 O是通过设置处理器的P35 口为0x10的方式来设置为串口通信方式,使处理器与Zigbee子模块进行正常通信。
[0031]进一步地,控制管理过程具体为:
[0032]S401、处理器以设定频率对Zigbee子模块进行供电,Zigbee子模块接收Sink节点发来数据;
[0033]S402、Zigbee子模块对接收到Sink节点发送来的数据进行存储;
[0034]S403、将存储下来的数据依次发送到串口,在通过串口 I发送一个字节数据的时候led灯组的led4会亮灭一次;
[0035]S404、处理器串口 I产生中断,依次将数据取回到设定好的数组b中;
[0036]S405、处理器检查数组b[0]中的数据是否与本节点的节点号相同,若不相同则丢弃不进行处理,否则跳转到命令表;
[0037]S406、处理器根据命令表及相应的函数进行执行Sink发来的命令;
[0038]S407、处理器将执行后的结果按照发送步骤进行发回。
[0039]进一步地,在步骤S406中,处理器在收到Sink节点数据并确认是发送给自己时,将会与事先存储在内存中的数据进行比对,比对成功后会立即根据索引跳转到相应的函数执行。
[0040]进一步地,还包括电源管理过程:处理器控制Zigbee子模块接通或关闭电源;采用纽扣电池供电,使用Msp430F149低功耗处理器,并且加上BL1551电源管理芯片对电源进行动态管理,有效的控制电量的消耗。
[0041]电源管理过程具体为:
[0042]S301、Zigbee子模块的Vcc引脚接在BL1551电源管理子模块上,BL1551电源管理子模块接在处理器上Px引脚上;
[0043]S302、在通用传感器收发模块接通电源之后,处理器对Px引脚发出高电平,这样Zigbee子模块将接通电源;
[0044]S303、处理器对Px引脚发出低电平,这样Zigbee子模块将关闭电源。
[0045]本发明的有益效果是:在没有通信设施基础的情况下,该方法能够采集多种支持串口通信的传感器数据。通过Zigbee网络将数据传送到Sink节点,具有动态自组织网络,降低了模块之间的耦合性,有效的增强了网络的健壮性。并且提供电源管理模块,有效控制模块电源的消耗,为模块长时间的工作提供了有效的保证。
【专利附图】
【附图说明】
[0046]图1是实施例中通用传感器收发模块的结构说明图;
[0047]图2是实施例中的局域网络图;
[0048]图3是是传感器发送的数据格式的说明示意图;
[0049]图4是实施例中数据采集过程的流程示意图;
[0050]图5是数组a的数据格式的说明示意图;
[0051]图6是实施例中数据发送过程的流程示意图;
[0052]图7是实施例中电源管理过程的流程示意图;
[0053]图8是通用传感器收发模块中Msp430F149处理器与BL1551电源管理子模块和Zigbee子模块之间的连接图;
[0054]图9是实施例中控制管理过程的流程示意图;
[0055]图10是实施例中模块Msp430F149处理器对Zigbee模块供电的时序图;
[0056]图11是实施例中数组b的数据格式的说明示意图;
[0057]图12是实施例中命令表的说明示意图。
【具体实施方式】
[0058]下面结合附图详细说明本发明的优选实施例。
[0059]实施例方法采用Zigbee传输机制,在没有通信设施基础的情况下,Zigbee通过自组织网络,通过多跳传输,将传感器数据发送到Sink节点。实施例方法,相对于传统收发模块,通用传感器收发模块之间具有动态组网的特点。每个节点既是相互独立的,又是相互联系的。某一个或多个节点由于电量耗尽或者异常都不会影响到其它节点的工作,同时增加节点也同样不会影响到系统的正常工作,这既增加了系统的灵活性,也增加了系统的健壮性。
[0060]实施例提供了基于串口通信标准的收发方法,只要传感器支持串口数据收发就能够在本模块上面工作。本方法中的通用传感器收发模块不仅可以在复杂环境的情况下工作,也可以在没有任何通信设施的情况下工作,这就确保了本发明通用传感器收发模块能够使用的范围较广,能够适应大部分情况下的工作。
[0061]实施例方法中假设传感器有体温传感器、脉搏传感器、二氧化碳传感器这三种传感器。在缺乏通信设施的环境下,假设有sink节点A,四个通用传感器收发模块B、C、D、E ;通用传感器收发模块结构见附图1,局域网络图见附图2,传感器发送的数据格式见附图3。
[0062]数据采集流程如图4所示,步骤如下:
[0063]S101、按下电源开关,模块接通电源,通用传感器收发模块中Msp430F149处理器和传感器均启动工作。
[0064]S102、通用传感器收发模块中Msp430F149处理器通过串口 O发送启动命令OxfOOxcOOxbO到传感器,再通过串口 O发送一个字节数据的时候,led灯组的Iedl会亮灭一次。
[0065]S103、传感器接受到命令后,采集数据并且发送到模块Msp430F149处理器串口 I。
[0066]S104、传感器建立一个数组a[4],模块Msp430F149处理器每收到传感器的一个数据都会产生一次中断,收到的收据依次放到a[l]到a[3],a数组的数据格式见附图5,在通过串口 O接收一个字节数据的时候led灯组的led2会亮灭一次。
[0067]S105、设立一个标志flag,并且赋置为假。如果接收数据3次,将flag设置为真。
[0068]S106、每产生一次中断,接收一次数据,通用传感器收发模块中Msp430F149处理器都开始检查flag标志是否为真,如果为真,则数据不进行丢弃,否则丢弃数组中的数据。
[0069]数据发送流程如图6所示,步骤如下:
[0070]S201、通用传感器收发模块中Msp430F149处理器开始检查数组a中的数据,如果a[2]到a[3]数据均为0,可认为是无效数据,直接丢弃。
[0071]S202、数组a数据有效的情况下,将传感器编号赋值到a[0]中。
[0072]S203、通用传感器收发模块中Msp430F149处理器通过BL1551电源管理子模块使得Zigbee子模块供电,这时Zigbee子模块就可以正常的进行工作。
[0073]S204、串口 O与Zigbee子模块相连,通用传感器收发模块中Msp430F149处理器使能自己的串口 O,这样Zigbee子模块就可以与通用传感器收发模块中Msp430F149处理器进行通信。
[0074]S205、模块开始依次产生中断发送数组a,每次发送一个字节的数据,在通过串口I发送一个字节数据的时候led灯组的led3会亮灭一次。
[0075]S206,Zigbee子模块依次从通用传感器收发模块中Msp430F149处理器收到数据,通过自组织网络发送到Sink节点。
[0076]S207、设立一个标志flagl,并且赋值为假。当发送数据η次后,将flagl赋值为真。
[0077]S208、每发送一次数据,模块均开始检查flag标志,如果为真,则通过BL1551电源管理子模块关闭Zigbee的电源,否则重新进行传送。
[0078]电源管理流程如图7所示,步骤如下:
[0079]S301、Zigbee子模块的Vcc引脚接在BL1551电源管理子模块上,而BL1551电源管理子模块接在通用传感器收发模块中Msp430F149处理器上P31引脚上,连接图见附图8。
[0080]S302、在通用传感器收发模块接通电源之后,通用传感器收发模块中Msp430F149处理器可以对P31引脚发出高电平,这样Zigbee子模块就将接通电源。
[0081]S303、通用传感器收发模块中Msp430F149处理器可以对P31引脚发出低电平,这样Zigbee子模块就将关闭电源。
[0082]控制管理流程如图9所示,步骤如下:
[0083]S401、通用传感器收发模块中Msp430F149处理器以0.1秒频率对Zigbee子模块进行供电,Zigbee子模块供电时间图见附图10,这样Zigbee子模块就可以有接收Sink节点发来数据的能力。
[0084]S402、当Zigbee子模块接收到Sink节点发送的来的数据,立即先存储下来。
[0085]S403、将存储下来的数据依次发送到串口,在通过串口 I发送一个字节数据的时候led灯组的led4会亮灭一次。
[0086]S404、通用传感器收发模块中Msp430F149处理器串口 I产生中断,依次将数据取回到设定好的数组b中,数组b数据格式见附图11。
[0087]S405、通用传感器收发模块中Msp430F149处理器检查数组b [O]中的数据是否与本节点的节点号相同,若不相同则丢弃不进行处理,否则跳转到命令表,命令表见附图12。
[0088]S406、通用传感器收发模块中Msp430F149处理器根据命令表及相应的函数进行执行Sink发来的命令。
[0089]S407、通用传感器收发模块中Msp430F149处理器将执行后的结果按照发送步骤进行发回。
【权利要求】
1.一种基于Zigbee和串口的通用传感器收发方法,其特征在于,米用Zigbee传输机制,Zigbee通过自组织网络,通过多跳传输,将传感器数据发送到Sink节点;包括数据采集过程、数据发送过程、控制管理过程; 数据采集过程:传感器采集数据后,将采集数据以数组形式发送给处理器; 数据发送过程:处理器将传感器编号赋值到存放采集数据的数组中,处理器对接收到的采集数据进行处理后,Zigbee子模块经过多跳网络转发至Sink节点,Sink节点收到数据后再发送到服务器处理; 控制管理过程=Zigbee子模块对接收到Sink节点发送来的命令数据进行存储,并将该数据发送给处理器,处理器接收后,依据命令表及相应的函数进行执行Sink发来的命令,处理器将执行后的结果按照数据发送步骤进行发回。
2.如权利要求1所述的基于Zigbee和串口的通用传感器收发方法,其特征在于,数据采集过程具体为: . 5101、接通电源,处理器和传感器均启动工作; . 5102、处理器通过串口O发送启动命令Oxaa Oxyy Oxzz到传感器,在通过串口 O发送一个字节数据的时候led灯组的Iedl会亮灭一次; . 5103、传感器接受到命令后,采集数据并且发送到处理器串口I ; . 5104、传感器建立一个数组a[n],处理器每收到传感器的一个数据都会产生一次中断,收到的收据依次放到a[l]到a[n_l],在通过串口 O接收一个字节数据的时候led灯组的led2会亮灭一次; .5105、设立一个标志flag,并且赋置为假;如果所有接受数据η-1次,将flag设置为真; .5106、每产生一次中断,接收一次数据,处理器都开始检查flag标志是否为真,如果为真,则数据不进行丢弃,否则丢弃数组中的数据。
3.如权利要求2所述的基于Zigbee和串口的通用传感器收发方法,其特征在于:在步骤S103中,采集数据并且发送到Msp430F149处理器串口 I是通过Msp430F149处理器的RXBUFl来不断的接受数据,每接收一次数据,都会产生一次中断,中断内将数据依次存储在a [I]到 a[n-l]中。
4.如权利要求2所述一种基于Zigbee和串口的通用传感器收发方法,其特征在于,数据发送过程具体为: . 5201、处理器开始检查数组a中的数据,如果a[2]到a[n_l]数据均为0,认为是无效数据,直接丢弃; . 5202、数组a数据有效的情况下,将传感器编号赋值到a[0]中; . 5203、处理器通过BL1551电源管理子模块中使得Zigbee子模块供电,这时Zigbee子模块正常工作; .5204、串口O与Zigbee子模块相连,处理器使能自己的串口 0,使Zigbee子模块与处理器进行通信; . 5205、通用传感器收发模块开始依次产生中断发送数组a,每次发送一个字节的数据,在通过串口 I发送一个字节数据的时候led灯组的led3会亮灭一次; . 5206、Zigbee子模块依次从处理器收到数据,通过自组织网络发送到Sink节点; .5207、设立一个标志flagl,并且赋值为假。当发送数据η次后,将flagl赋值为真; . 5208、每发送一次数据,通用传感器收发模块均开始检查flag标志,如果为真,则通过BL1551电源管理子模块关闭Zigbee的电源,否则重新进行传送。
5.如权利要求4所述一种基于Zigbee和串口的通用传感器收发方法,其特征在于:在步骤S201中,处理器开始检查数组a中的数据时,判断为无效数据,是通过在传感器数据设定时,如果出现错误,就全部传O数据。
6.如权利要求4所述一种基于Zigbee和串口的通用传感器收发方法,其特征在于:在步骤S204中,处理器使能自己的串口 O是通过设置处理器的P35 口为OxlO的方式来设置为串口通信方式,使处理器与Zigbee子模块进行正常通信。
7.如权利要求1-6任一项所述一种基于Zigbee和串口的通用传感器收发方法,其特征在于,控制管理过程具体为: . 5401、处理器以设定频率对Zigbee子模块进行供电,Zigbee子模块接收Sink节点发来数据; .5402、Zigbee子模块对接收到Sink节点发送来的数据进行存储; . 5403、将存储下来的数据依次发送到串口,在通过串口I发送一个字节数据的时候led灯组的led4会亮灭一次;. . 5404、处理器串口I产生中断,依次将数据取回到设定好的数组b中; .5405、处理器检查数组b[0]中的数据是否与本节点的节点号相同,若不相同则丢弃不进行处理,否则跳转到命令表; . 5406、处理器根据命令表及相应的函数进行执行Sink发来的命令; . 5407、处理器将执行后的结果按照发送步骤进行发回。
8.如权利要求7所述一种基于Zigbee和串口的通用传感器收发方法,其特征在于:在步骤S406中,处理器在收到Sink节点数据并确认是发送给自己时,将会与事先存储在内存中的数据进行比对,比对成功后会立即根据索引跳转到相应的函数执行。
9.如权利要求1所述一种基于Zigbee和串口的通用传感器收发方法,其特征在于,还包括电源管理过程:处理器控制Zigbee子模块接通或关闭电源;电源管理过程具体为: . 5301、Zigbee子模块的Vcc引脚接在BL1551电源管理子模块上,BL1551电源管理子模块接在处理器上Px引脚上; .5302、在通用传感器收发模块接通电源之后,处理器对Px引脚发出高电平,这样Zigbee子模块将接通电源; .5303、处理器对Px引脚发出低电平,这样Zigbee子模块将关闭电源。
【文档编号】G08C17/02GK104318740SQ201410547252
【公开日】2015年1月28日 申请日期:2014年10月15日 优先权日:2014年10月15日
【发明者】徐佳, 杨文峻, 徐小龙, 蒋凌云, 李千目, 王赓, 王震 申请人:南京邮电大学