蓝牙信息发送及接收方法技术

技术编号:15193894 阅读:236 留言:0更新日期:2017-04-20 15:11
本发明专利技术涉及一种蓝牙信息发送及接收方法,针对现有技术的蓝牙数据传输安全性无法保障以及效率低等缺陷,本发明专利技术蓝牙信息发送方法,用于以SPP协议通信的蓝牙主机端,包括以下步骤:S1:获取数据并以先进先出机制缓存待发送数据;S2:根据待发送数据长度,对缓冲的待发送数据进行分包或组包操作,得到至少一个数据包;S3:通过已建立的蓝牙链路发送所述数据包。蓝牙信息接收方法,用于以SPP协议通信的蓝牙从机端,包括以下步骤:S4:通过已建立的蓝牙链路接收所述数据包;S5:读取并以先进先出机制缓存所述数据包内的数据;S6:将缓存得到的所述数据分段发送到存储器。

【技术实现步骤摘要】

本专利技术涉及无线通信领域,更具体地说,涉及一种蓝牙信息发送及接收方法。
技术介绍
蓝牙技术是一种无线数据与数字通信的开放性规范。蓝牙芯片因其具有体积小、功耗低的特点,能够方便的地集成到大多数数字设备中实现一台设备与多台设备的相互连接,使得各种信息化设备能实现资源共享。蓝牙技术可以用于移动设备、个人数据处理、耳机、打印设备、数码相机、输入设备以及无线网络接入等多种领域。随着蓝牙技术的应用领域日益扩大,支持蓝牙连接的蓝牙设备种类也日益增多。蓝牙技术中的SPP透传模式适合于各种近距离无线数据传输,可以实现点到点或者点到多点的全透明数据传输。SPP透传模式的特点是在数据传输过程中不对数据做任何处理;由于蓝牙传输数据的信号受工作环境的影响较大,尤其是在通讯范围的临界点处,时常发生传输中断、数据误码和丢码等情况,因此蓝牙技术中的SPP透传模式无法保证数据传输的安全性;采用SPP透传模式可以实现一台蓝牙设备与多台蓝牙设备连接的组网系统,由于同一时间内只有一个通信信道提供一对一的数据传输,信道切换也存在延时,因此组网内的蓝牙数据传输的效率和实时性将大大受到影响。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的蓝牙数据传输安全性无法保障以及效率低等缺陷,提供一种蓝牙信息发送及接收方法。本专利技术解决其技术问题所采用的技术方案是:一种蓝牙信息发送方法,用于以SPP协议通信的蓝牙主机端,包括以下步骤:S1:获取数据并以先进先出机制缓存待发送数据;S2:根据待发送数据长度,对缓冲的待发送数据进行分包或组包操作,得到至少一个数据包;S3:通过已建立的蓝牙链路发送所述数据包。优选地,所述步骤S1中的待发送数据缓存在主机FIFO中;当所述主机FIFO已满时,停止获取数据,防止主机FIFO溢出。优选地,所述步骤S2包括:S21:判断缓存的每一个数据的长度是否大于分包阈值,若是则执行步骤S22,否则执行步骤S23;S22:将数据长度大于或等于分包阈值的数据进行分包操作,得到至少两个长度小于分包阈值的数据包;S23:将多个数据长度小于分包阈值的数据进行组包操作,得到一个长度小于分包阈值的数据包。优选地,所述步骤S3包括:S31:通过蓝牙链路接收从机端发送的询问包;S32:判断是否需要发送数据,若是则发送相应数据包,否则发送空数据包。本专利技术还提供一种蓝牙信息接收方法,用于以SPP协议与多个上述蓝牙主机端通信的从机端,包括以下步骤:S4:通过已建立的蓝牙链路接收所述数据包;S5:读取并以先进先出机制缓存所述数据包内的数据;S6:将缓存得到的所述数据分段发送到存储器。优选地,所述步骤S4包括:S41:通过蓝牙链路向主机端发送询问包;S42:接收主机端发送的数据包;S43:向主机端发送确认包。优选地,所述步骤S4还包括:S40:以轮询方式通过不同信道与所述多个蓝牙主机端通信。优选地,所述步骤S42还包括:S421:判断是否接收到数据包,若是则执行步骤S422,否则执行步骤S423;S422:切换信道,轮询另一个蓝牙主机端,重复执行步骤S41~S43;S423:通过第一定时器判断等待接收数据包的时间是否超过等待阈值,若是则执行步骤S425,否则执行步骤S424;S424:对接收得到的所述数据包进行校验以实现通信的安全性,校验通过则执行所述步骤S5,否则执行其他相应命令;S425:向所述主机端,重新发送所述询问包,重复执行步骤S42~S43。若向一个主机端重新发送所述询问包的次数达到重发次数阈值,则结束此次数据接收,不再发送该询问包。优选地,若确认包丢失,则在下次与该主机端的通信过程中进行补确认。优选地,所述步骤S40还包括:采用第二定时器实现轮询过程中的信道切换延时,以保证信号稳定;当执行完毕所述步骤S5后,从机端切换信道,在切换信道延时过程中,执行所述步骤S6。本专利技术的蓝牙信息发送方法中,将待发送的数据以先进先出机制进行缓存,根据待发送数据的长度,对缓冲的待发送数据进行分包或组包操作得到至少一个数据包,并通过蓝牙链路协议进行交互发送。避免了SPP透传模式中不对传输数据做任何处理导致的数据传输中断、误码和丢码等安全性无法保障的情况。本专利技术的蓝牙信息接收方法中,通过蓝牙链路协议进行交互接收到数据包后读取接收的数据包中的目标数据,并以先进先出机制缓存数据包内的数据,将缓存得到的数据分段发送至存储器,通过调整数据分段的长度可防止从机FIFO的溢出,保证了数据接收的完整性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术蓝牙信息发送方法的流程图;图2是组包示意图;图3是分包示意图;图4是本专利技术蓝牙信息接收方法的流程图;图5是主机端与从机端信息交互示意图;图6是从机端以中断函数接收数据包的流程图;图7是从机端多个主机端的轮询通信的示意图;图8是从机端信道切换及写存储器流程图;图9是数据组包、分包与分段示意图;图10是对确认包进行补确认的示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。如图1所示,本专利技术的蓝牙信息发送方法,用于以SPP协议通信的蓝牙主机端,包括以下步骤:S1:获取数据并以先进先出机制缓存待发送数据;S2:根据待发送数据长度,对缓冲的待发送数据进行分包或组包操作,得到至少一个数据包;S3:通过已建立的蓝牙链路发送数据包。主机端为设置成SPP主模式的设备,其获取数据的方式可以为通过接口接收外部设备发送的数据,也可以是通过主机端内部的传感器采集数据。如图9所示,主机端将获取到的数据缓存在内部FIFO中。进一步地,当主机FIFO已满时,停止获取数据,以防止主机FIFO溢出。进一步地,步骤S2包括:S21:判断缓存的每一个数据的长度是否大于分包阈值,若是则执行步骤S22,否则执行步骤S23;S22:将数据长度大于或等于分包阈值的数据进行分包操作,得到至少两个长度小于分包阈值的数据包;S23:将多个数据长度小于分包阈值的数据进行组包操作,得到一个长度小于分包阈值的数据包。具体地,如图2所示,如果多个数据的长度都比较小,单独发送这些数据将造成极大浪费,本专利技术将上述短数据进行组包操作得到一个数据包,该数据包格式为:数据的长度(Length)+数据包标识(Flag)+ID序号+多个目标数据(Data)+校验信息(CRC)+包结束标志(EOF)。如图3所示,如果一个数据的长度很长,以现有信息传输方法发送,如果在通讯范围的临界点处,极易发生传输中断、数据误码和丢码的情况。本专利技术将一个长数据进行分包操作得到至少两个长度小于分包阈值的数据包。每一个数据包格式为:数据的长度(Length)+数据包标识(Flag)+ID序号+目标数据(Data)+校验信息(CRC)+包结束标志(EOF)。具体地,由于蓝牙模块的限制,包的长度不能大于150byte。本专利技术的分包阈值为150byte,如果多个短数据的长度之和小于150byte,则将多个短数据组包成一个接近150byte的数据包,如果一个长数据大于150byte,则将该数据分包得到至少两个小于150byte的分包。可以理解的,可根据实际需要对分包阈值进行调整,不限于本专利技术的150byte。下表为数据包标识(Flag)的本文档来自技高网...
蓝牙信息发送及接收方法

【技术保护点】
一种蓝牙信息发送方法,用于以SPP协议通信的蓝牙主机端,其特征在于,包括以下步骤:S1:获取数据并以先进先出机制缓存待发送数据;S2:根据待发送数据长度,对缓冲的待发送数据进行分包或组包操作,得到至少一个数据包;S3:通过已建立的蓝牙链路发送所述数据包。

【技术特征摘要】
1.一种蓝牙信息发送方法,用于以SPP协议通信的蓝牙主机端,其特征在于,包括以下步骤:S1:获取数据并以先进先出机制缓存待发送数据;S2:根据待发送数据长度,对缓冲的待发送数据进行分包或组包操作,得到至少一个数据包;S3:通过已建立的蓝牙链路发送所述数据包。2.根据权利要求1所述的蓝牙信息发送方法,其特征在于,所述步骤S1中的待发送数据缓存在主机FIFO中;当所述主机FIFO已满时,停止获取数据,防止主机FIFO溢出。3.根据权利要求1所述的蓝牙信息发送方法,其特征在于,所述步骤S2包括:S21:判断缓存的每一个数据的长度是否大于分包阈值,若是则执行步骤S22,否则执行步骤S23;S22:将数据长度大于或等于分包阈值的数据进行分包操作,得到至少两个长度小于分包阈值的数据包;S23:将多个数据长度小于分包阈值的数据进行组包操作,得到一个长度小于分包阈值的数据包。4.根据权利要求1所述的蓝牙信息发送方法,其特征在于,所述步骤S3包括:S31:通过蓝牙链路接收从机端发送的询问包;S32:判断是否需要发送数据,若是则发送相应数据包,否则发送空数据包。5.一种蓝牙信息接收方法,用于以SPP协议与多个如权利要求1所述的蓝牙主机端通信的从机端,其特征在于,包括以下步骤:S4:通过已建立的蓝牙链路接收所述数据包;S5:读取并以先进先出机制缓存所述数据包内的数据;S6:将缓存得到的所述数据分段发送到存储器。6.根据权利要求5...

【专利技术属性】
技术研发人员:林嘉顺张紫锋许文焕
申请(专利权)人:深圳市民德电子科技股份有限公司
类型:发明
国别省市:广东;44

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

1