用于传感器节点的总线式支持热插拔的传感分开方法技术

技术编号:9796297 阅读:211 留言:0更新日期:2014-03-22 03:03
本发明专利技术涉及一种用于传感器节点的总线式支持热插拔的传感分开方法,将通信模块和传感器模块从硬件上分开,硬件上基于USART接口,设计实现该接口的热插拔功能。本发明专利技术设计了智能传感器协议,传感器模块本地存储了一些自身的相关信息,通信模块可以根据协议制定的相关命令接口获得这些信息并收集传感器模块采集的数据,实现通信模块与传感器模块之间的数据传输。智能传感器总线接口上可以挂载多个传感器模块,总线接口不仅提供通信模块与传感器模块的通信链路,并且提供传感器模块的电源供电。在通信模块带电工作的情况下可以随时从总线上卸载传感器模块,也可以挂载新的传感器模块到总线上,实现传感器模块的热插拔功能。

【技术实现步骤摘要】
用于传感器节点的总线式支持热插拔的传感分开方法
本专利技术涉及一种总线式的支持热插拔的传感分开方法,用于硬件上分开的数据传输模块和传感器模块的通信,属于智能传感器

技术介绍
目前,在智能传感器领域,基于总线式的智能传感器标准只有IEEE1451.3标准,该标准定义了一个数字接口,用于连接多个分散的传感器,并且具有不同频谱特性的设备能够共处于一条总线上,该标准利用展频技术,在一根信号电缆上实现数据同步采集、通信和对连接在变送器总线上的电子设备供电。该标准规定了底层特殊的基于协议的硬件接口,这将使设计复杂度大大提高,成本增加,设计开发难度加大。并且国内在智能传感器领域尚未有标准出台。
技术实现思路
为了解决上述国际标准协议中的缺陷,降低开发难度,减少开发成本,本专利技术提出一种基于总线式的支持热插拔的传感分开方法,其包括一套智能传感器协议,该智能传感器协议规定了传感器模块与通信模块的数据通信方式及差错检验方式;底层硬件接口是目前常用的UART总线接口,这样硬件接口简单通用,便于开发人员设计。本专利技术所采用的技术方案是:在硬件接口上,采用串行通信接口UART。智能传感器协议规定了三种数据帧格式,即请求PDU(协议数据单元)规定的数据格式(请求帧)、正确响应PDU规定的数据格式(正确响应帧)、异常响应PDU规定的数据格式(异常响应帧),规定了六种命令接口,提出了各种命令接口的通信流程及错误检测机制。通信过程中数据采用CRC校验方式,保证通信的可靠性。智能传感器协议设计了六种命令接口,即:传感器模块申请加入总线命令、通信模块获取传感器模块相关信息命令、通信模块获取传感器模块采集的数据命令、通信模块配置传感器模块命令、传感器模块突发上传数据命令及通信模块唤醒传感器模块命令。以上每种命令均有相应的请求帧、正确响应帧和异常响应帧;请求帧由命令发起方发送,命令接收方接收判断;正确响应帧和异常响应帧由命令接收方发送,命令发起方接收判断。所述传感器模块申请加入总线命令、传感器模块突发上传数据命令,发起方是传感器模块,命令接收方是通信模块;所述通信模块获取传感器模块相关信息命令、通信模块获取传感器模块采集的数据命令、通信模块配置传感器模块命令、通信模块唤醒传感器模块命令,发起方是通信模块,命令接收方是传感器模块;命令发起方发送相应的命令请求帧,命令接收方收到请求帧后,发送与请求命令相对应的响应数据帧:在通信过程中如果没有出现错误异常,则命令接收方将向命令发起方发送正确响应帧,如果出现错误异常,命令接收方将向命令发起方发送异常响应帧;命令发起方接收到异常响应帧后将会根据通信错误类型做相应处理。通信协议的数据帧包括:传感器类别域、GUID域、功能域、数据域和校验域,其中GUID表示传感器模块全球唯一ID号;当通信出现错误时,被请求方会反馈异常响应,并且返回的数据帧中包含异常代码,指示出错的原因。所述传感器模块申请加入总线命令具体如下,其中RJB表示申请加入总线:在通信模块端:通信模块接收到传感器模块的RJB请求命令,对请求的数据帧继续相关位域的判断,首先检查数据帧的CRC校验是否正确,如果不正确,则直接结束通信过程,如果正确,判断功能码是否正确,如果不是RJB命令码,则直接结束通信过程,如果功能码正确,通信模块将处理RJB请求,通信模块将为传感器模块分配一个总线上唯一的地址,如果地址分配错误,则通信模块将发送异常码为0x04的异常响应帧给传感器模块,表面总线上传感器模块已经满了,不能再挂载传感器模块,如果地址分配成功,通信模块将发送正确响应帧给传感器模块;在传感器模块端:传感器模块接收到通信模块的RJB响应帧后,对响应帧的相关域进行判断,首先检查数据帧的CRC校验是否正确,如果不正确,则直接结束通信过程,准备发送下一次RJB命令;如果正确,判断GUID是否正确,如果GUID和自己的ID号不符,则直接结束通信过程,准备发送下一次RJB命令;如果GUID正确,判断功能码是否是RJB,如果是,则表明通信模块收到了RJB请求,表明自己已经成功加入总线;如果功能码是RJB+0x80,则表明总线上的传感器模块已经满,传感器模块将结束请求过程。所述通信模块获取传感器模块相关信息命令具体如下,其中GNI表示获取传感器模块相关信息,GUID表示传感器模块全球唯一ID号:在通信模块端:通信模块收到GNI响应帧后,首先检查CRC校验域,如果不正确,则通信模块发送异常码为0x03的异常响应帧给传感器模块,如果正确则检查GUID域,检查是否与要获取的传感器模块的GUID相同,若不同,则通信模块发送异常码为0x01的异常响应帧给传感器模块,若相同,则继续检查功能码是否正确,即为GNI,若不正确,则通信模块发送异常码为0x02的异常响应帧给传感器模块,若功能码正确,通信模块则存储传感器模块发来的传感器相关信息;在传感器模块端:传感器模块收到GNI命令请求后,首先检查CRC校验域,如果不正确,则结束通信过程,如果正确则检查GUID域,检查是否与自己的ID号相同,若不同,则结束通信过程,若相同,则继续检查功能码是否正确,即为GNI,若为GNI+0x80,则传感器模块根据异常码进行相应的处理并开启错误重传机制,若功能码正确,传感器模块则处理通信模块的GNI请求,从flash中读取传感器相关信息并作为GNI正确响应帧的数据体发送给通信模块。所述通信模块获取传感器模块采集的数据命令具体如下,其中SAR表示获取传感器模块采集的数据信息,GUID表示传感器模块全球唯一ID号:在通信模块端:通信模块收到RSAR响应帧后,首先检查CRC校验域,如果不正确,则通信模块发送异常码为0x03的异常响应帧给传感器模块,如果正确则检查GUID域,检查是否与要获取的传感器模块的GUID相同,若不同,则通信模块发送异常码为0x01的异常响应帧给传感器模块,若相同,则继续检查功能码是否正确,即为RSAR,若不正确,则通信模块发送异常码为0x02的异常响应帧给传感器模块,若功能码正确,通信模块则存储传感器模块发来的传感器相关信息;在传感器模块端:传感器模块收到RSAR命令请求后,首先检查CRC校验域,如果不正确,则结束通信过程,如果正确则检查GUID域,检查是否与自己的ID号相同,若不同,则结束通信过程,若相同,则继续检查功能码是否正确,即为RSAR,若为RSAR+0x80,则传感器模块根据异常码进行相应的处理并开启错误重传机制,若功能码正确,传感器模块则处理通信模块的RSAR请求,将采集的数据作为RSAR正确响应帧的数据体发送给通信模块。所述通信模块配置传感器模块命令具体如下,其中CSM表示配置传感器模块,GUID表示传感器模块全球唯一ID号:在通信模块端:通信模块收到CSM响应帧后,首先检查CRC校验域,如果不正确,则通信模块发送异常码为0x03的异常响应帧给传感器模块,如果正确则检查GUID域,检查是否与要获取的传感器模块的GUID相同,若不同,则通信模块发送异常码为0x01的异常响应帧给传感器模块,若相同,则继续检查功能码是否正确,即为CSM,若不正确,则通信模块发送异常码为0x02的异常响应帧给传感器模块,若功能码正确,通信模块则存储传感器模块发来的传感器相关信息;在传感器本文档来自技高网...
用于传感器节点的总线式支持热插拔的传感分开方法

【技术保护点】
用于传感器节点的总线式支持热插拔的传感分开方法,其特征是,采用三种数据帧格式,即请求帧、正确响应帧、异常响应帧,以及六种命令接口,即传感器模块申请加入总线命令、通信模块获取传感器模块相关信息命令、通信模块获取传感器模块采集的数据命令、通信模块配置传感器模块命令、传感器模块突发上传数据命令及通信模块唤醒传感器模块命令;以上每种命令均有相应的请求帧、正确响应帧和异常响应帧;请求帧由命令发起方发送,命令接收方接收判断;正确响应帧和异常响应帧由命令接收方发送,命令发起方接收判断;所述传感器模块申请加入总线命令、传感器模块突发上传数据命令,发起方是传感器模块,命令接收方是通信模块;所述通信模块获取传感器模块相关信息命令、通信模块获取传感器模块采集的数据命令、通信模块配置传感器模块命令、通信模块唤醒传感器模块命令,发起方是通信模块,命令接收方是传感器模块;命令发起方发送相应的命令请求帧,命令接收方收到请求帧后,发送与请求命令相对应的响应数据帧:在通信过程中如果没有出现错误异常,则命令接收方将向命令发起方发送正确响应帧,如果出现错误异常,命令接收方将向命令发起方发送异常响应帧;命令发起方接收到异常响应帧后将会根据通信错误类型做相应处理。...

【技术特征摘要】
1.用于传感器节点的总线式支持热插拔的传感分开方法,其特征是,采用三种数据帧格式,即请求帧、正确响应帧、异常响应帧,以及六种命令接口,即传感器模块申请加入总线命令、通信模块获取传感器模块相关信息命令、通信模块获取传感器模块采集的数据命令、通信模块配置传感器模块命令、传感器模块突发上传数据命令及通信模块唤醒传感器模块命令;以上每种命令均有相应的请求帧、正确响应帧和异常响应帧;请求帧由命令发起方发送,命令接收方接收判断;正确响应帧和异常响应帧由命令接收方发送,命令发起方接收判断;所述传感器模块申请加入总线命令、传感器模块突发上传数据命令,发起方是传感器模块,命令接收方是通信模块;所述通信模块获取传感器模块相关信息命令、通信模块获取传感器模块采集的数据命令、通信模块配置传感器模块命令、通信模块唤醒传感器模块命令,发起方是通信模块,命令接收方是传感器模块;命令发起方发送相应的命令请求帧,命令接收方收到请求帧后,发送与请求命令相对应的响应数据帧:在通信过程中如果没有出现错误异常,则命令接收方将向命令发起方发送正确响应帧,如果出现错误异常,命令接收方将向命令发起方发送异常响应帧;命令发起方接收到异常响应帧后将会根据通信错误类型做相应处理;同时有多个传感器模块要求加入总线时,若一个传感器模块在规定的超时时间内没有收到正确的响应,传感器模块会结束此次过程,然后在过一段时间后继续下一次申请过程;这个时间的选取是通过选取一个随机数,利用这个随机数乘以一个基准时间,得到开启下一次申请过程所需要的时间;在此时间之后开启新的申请过程,直到申请成功。2.如权利要求1所述用于传感器节点的总线式支持热插拔的传感分开方法,其特征是,通信过程中数据采用CRC校验方式。3.如权利要求1或2所述用于传感器节点的总线式支持热插拔的传感分开方法,其特征是,通信协议的数据帧包括:传感器类别域、GUID域、功能域、数据域和校验域,其中GUID表示传感器模块全球唯一ID号;当通信出现错误时,被请求方会反馈异常响应,并且返回的数据帧中包含异常代码,指示出错的原因。4.如权利要求3所述用于传感器节点的总线式支持热插拔的传感分开方法,其特征是,所述传感器模块申请加入总线命令具体如下,其中RJB表示申请加入总线:在通信模块端:通信模块接收到传感器模块的RJB请求命令,对请求的数据帧继续相关位域的判断,首先检查数据帧的CRC校验是否正确,如果不正确,则直接结束通信过程,如果正确,判断功能码是否正确,如果不是RJB命令码,则直接结束通信过程,如果功能码正确,通信模块将处理RJB请求,通信模块将为传感器模块分配一个总线上唯一的地址,如果地址分配错误,则通信模块将发送异常码为0x04的异常响应帧给传感器模块,表明总线上传感器模块已经满了,不能再挂载传感器模块,如果地址分配成功,通信模块将发送正确响应帧给传感器模块;在传感器模块端:传感器模块接收到通信模块的RJB响应帧后,对响应帧的相关域进行判断,首先检查数据帧的CRC校验是否正确,如果不正确,则直接结束通信过程,准备发送下一次RJB命令;如果正确,判断GUID是否正确,如果GUID和自己的ID号不符,则直接结束通信过程,准备发送下一次RJB命令;如果GUID正确,判断功能码是否是RJB,如果是,则表明通信模块收到了RJB请求,表明自己已经成功加入总线;如果功能码是RJB+0x80,则表明总线上的传感器模块已经满,传感器模块将结束请求过程。5.如权利要求3所述用于传感器节点的总线式支持热插拔的传感分开方法,其特征是,所述通信模块获取传感器模块相关信息命令具体如下,其中GNI表示获取传感器模块相关信息,GUID表示传感器模块全球唯一ID号:在通信模块端:通信模块收到GNI响应帧后,首先检查CRC校验域,如果不正确,则通信模块发送异常码为0x03的异常响应帧给传感器模块,如果正确则检查GUID域,检查是否与要获取的传感器模块的GUID相同,若不同,则通信模块发送异常码为0x01的异常响应帧给传感器模块,若相同,则继续检查功能码是否正确,即为GNI,若不正确,则通信模块发送异常码为0x02的异常响应帧给传感器模块,若功能码正确,通信模块则存储传感器模块发来的传感器相关信息;在传感器模块端:传感器模块收到GNI命令请求后,首先检查CRC校验域,如果不正确,则结束通信过程,如果正确则检查GUI...

【专利技术属性】
技术研发人员:毛续飞韩建康叶胜东
申请(专利权)人:无锡清华信息科学与技术国家实验室物联网技术中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1