一种兼顾通信速度和功耗的蓝牙通信方法及终端与流程

文档序号:11158227阅读:517来源:国知局
一种兼顾通信速度和功耗的蓝牙通信方法及终端与制造工艺

本发明涉及通信技术领域,尤其涉及一种兼顾通信速度和功耗的蓝牙通信方法及终端。



背景技术:

随着移动电子商务的发展,手机消费渐渐成为人们目前消费的一种主要趋势,越来越多的支付终端(如POS机)使用蓝牙和用户手机进行通信。由于支付终端通常要支持Felica(非接触式智能卡)交易,而Felica交易对支付终端的通信速度有非常严格的要求,随之而来的问题就是POS机和手机之间使用蓝牙通信的速度问题,因此为保证数据传输速度,现有技术中的做法是在支付终端中采用BT Classic标准的蓝牙模块(如蓝牙3.0芯片)来达到规定时间内完成交易通信的目的。

在支付终端中使用蓝牙3.0芯片虽然保证了通信速度,但是使用蓝牙3.0芯片存在高待机功耗的缺陷。由于目前的POS机多采用内置电池方案,因此高待机功耗将导致POS机使用寿命的缩短,而且频繁充电也会影响用户体验。



技术实现要素:

为解决现有技术中存在的问题,本发明提供了一种兼顾通信速度和功耗的蓝牙通信方法及终端。

本发明的技术方案包括一种兼顾通信速度和功耗的终端,该终端包括MCU以及与所述MCU连接的第一蓝牙模块和第二蓝牙模块;

所述MCU,用于给所述第一蓝牙模块和所述第二蓝牙模块上电,所述第一蓝牙模块和所述第二蓝牙模块具有相同的蓝牙名称,所述蓝牙名称中包含有所述第一蓝牙模块的MAC地址信息;

所述第二蓝牙模块,用于打开蓝牙广播,向上位机发送包含蓝牙名称的广播包,并等待蓝牙连接事件;还用于当接收到上位机发来的蓝牙连接事件时,向上位机发起断开连接事件,与上位机断开连接,进入低功耗状态;

所述第一蓝牙模块,用于与上位机建立连接时,实现终端与上位机之间的通信。

上述终端还包括与所述MCU连接的存储器模块,所述存储器模块用于存储所述蓝牙名称;所述MCU,具体用于根据所述存储模块中存储的所述蓝牙名称判断是否需要执行设置蓝牙名称的操作,是则读取所述第一蓝牙模块MAC地址,根据所述第一蓝牙模块MAC地址和终端SN码组成所述蓝牙名称,并设置所述第一蓝牙模块和所述第二蓝牙模块对应的名称为所述蓝牙名称;否则触发所述第二蓝牙模块。

上述第二蓝牙模块,还用于当进入低功耗状态时,将所述蓝牙广播从正常广播状态切换为慢广播状态;当被唤醒时,将所述蓝牙广播从所述慢广播状态切换回正常广播状态。

上述第二蓝牙模块,还用于当等待蓝牙连接事件超时时,进入低功耗状态;所述MCU包括定时器模块,所述定时器模块,具体用于当检测到所述第二蓝牙模块等待蓝牙连接超时时,触发所述MCU给所述第一蓝牙模块下电;所述MCU,还用于当检测到所述第二蓝牙模块被唤醒时,给所述第一蓝牙模块上电。

本发明的技术方案还包括一种兼顾通信速度和功耗的蓝牙通信方法,该方法包括:终端的第一蓝牙模块和第二蓝牙模块上电,所述第二蓝牙模块打开蓝牙广播,向上位机发送包含蓝牙名称的广播包,所述第一蓝牙模块和所述第二蓝牙模块具有相同的蓝牙名称,且所述蓝牙名称中包含有所述第一蓝牙模块的MAC地址信息;

当终端的第二蓝牙模块接收到上位机发来的蓝牙连接事件时,所述第二蓝牙模块向上位机发起断开连接事件,终端的第二蓝牙模块与上位机断开连接,所述第二蓝牙模块进入低功耗状态;

当终端的第一蓝牙模块与上位机建立连接时,终端与上位机进行通信。

上述第二蓝牙模块打开蓝牙广播之前还包括:终端判断是否需要执行设置蓝牙名称的操作,是则终端为所述第一蓝牙模块和所述第二蓝牙模块设置相同的蓝牙名称,否则直接执行所述第二蓝牙模块打开蓝牙广播。

上述终端为所述第一蓝牙模块和所述第二蓝牙模块设置相同的蓝牙名称具体为,终端的MCU读取所述第一蓝牙模块MAC地址,根据所述第一蓝牙模块MAC地址和终端SN码组成蓝牙名称,并设置所述第一蓝牙模块和所述第二蓝牙模块对应的名称为所述蓝牙名称。

上述根据所述第一蓝牙模块MAC地址与终端SN码组成蓝牙名称具体为,将所述终端SN码与所述第一蓝牙模块MAC地址的后六位进行拼接得到所述蓝牙名称。

上述方法中,当终端的第一蓝牙模块与上位机建立连接时,所述第二蓝牙模块处于低功耗状态。

上述第二蓝牙模块进入低功耗状态时,还包括将所述蓝牙广播从正常广播状态切换为慢广播状态;当所述第二蓝牙模块被唤醒时,还包括将所述蓝牙广播从所述慢广播状态切换回正常广播状态。

上述方法还包括当所述第二蓝牙模块等待蓝牙连接事件超时时,所述第一蓝牙模块下电,所述第二蓝牙模块进入低功耗状态;当所述第二蓝牙模块被唤醒时,所述第一蓝牙模块上电并等待与上位机建立连接。

本发明的有益效果如下:通过较低的成本,使得带有Felica交易功能的蓝牙支付终端降低待机功耗,降低充电频率,提高用户体验性。

附图说明

图1是本发明实施例1提供的一种兼顾通信速度和功耗的蓝牙通信方法流程图;

图2是本发明实施例2提供的一种兼顾通信速度和低功耗的蓝牙通信方法流程图;

图3是本发明实施例3提供的一种兼顾通信速度和功耗的终端的组成结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本实施例中提及的终端内包含有MCU芯片(以下简称MCU)和两个蓝牙芯片(以下简称第一蓝牙模块和第二蓝牙模块),优选的,第一蓝牙模块采用BT Classic标准的蓝牙芯片,第二蓝牙模块采用BLE标准的蓝牙芯片。

本实施例基于上述终端实现了一种兼顾通信速度和功耗的蓝牙通信方法,如图1所示,包括以下内容:

步骤101:MCU上电,初始化与第一蓝牙模块连接的IO以及和第二蓝牙模块连接的IO,给第一蓝牙模块和第二蓝牙模块上电;

进一步的,本步骤还包括初始化定时器、实时时钟。

步骤102:MCU读取第一蓝牙模块MAC地址,根据第一蓝牙模块MAC地址和终端SN码组成蓝牙名称,并设置第一蓝牙模块和第二蓝牙模块对应的名称为所述蓝牙名称;

具体的,MCU通过向第一蓝牙模块发送读取指令来读取第一蓝牙模块MAC地址;MCU根据读取的第一蓝牙模块MAC地址与终端SN码组成蓝牙名称,分别向第一蓝牙模块和第二蓝牙模块发送设置指令,将第一蓝牙模块和第二蓝牙模块对应的名称均设置统为所述蓝牙名称。

所述根据第一蓝牙模块MAC地址与终端SN码组成蓝牙名称具体为,将终端SN码与第一蓝牙模块MAC地址的后六位进行拼接得到蓝牙名称。

例如,第一蓝牙模块MAC地址为3481F40A05CF,终端SN码为1234567890,设置所述蓝牙名称为12345678900A05CF。

优选的,步骤102之前还可以包括:MCU判断是否需要执行设置蓝牙名称的操作,是则执行步骤102,否则MCU进入idle状态,第二蓝牙模块进入低功耗,执行步骤112。

本实施例中,所述MCU判断是否需要执行设置蓝牙名称的操作可以通过判断预设标志位是否置位来判断是否需要设置蓝牙名称,若预设标志位置位则不需要为第一蓝牙模块和第二蓝牙模块设置蓝牙名称,否则需要为第一蓝牙模块和第二蓝牙模块设置蓝牙名称,并置位预设标志位。本实施例中,若终端和上位机已建立过一次连接则所述预设标志位为置位,可以省略执行设置蓝牙名称的操作,则步骤101之后MCU进入idle状态,第二蓝牙模块进入低功耗状态,并执行步骤112。

进一步的,终端出厂前已为所述第一蓝牙模块和所述第二蓝牙模块设置了相同的蓝牙名称,在本实施提供的流程中对应的可以省略步骤102,步骤101之后直接执行步骤103。优选的,所述蓝牙名称根据终端SN码与第一蓝牙模块MAC地址的后六位进行拼接得到。

步骤103:MCU初始化各项参数;

具体的,MCU初始化的各项参数包括休眠时间间隔、自动关机时间间隔、版本号、系统语言等。

步骤104:MCU进入idle状态,等待蓝牙连接;若等待蓝牙连接事件超时则执行步骤105,若第二蓝牙模块接收到蓝牙连接事件则执行步骤111;

具体的,MCU进入idle状态(准备就绪状态)之后还包括开启定时器,若定时器的计时达到预设的休眠时间间隔且第二蓝牙模块未接收到蓝牙连接事件,则判断为等待蓝牙连接事件超时执行步骤105。

步骤105:MCU向第二蓝牙模块发送休眠指令;

具体的,休眠指令为:0xaa0x55 0x01 0x00 0x00 0xFE。

步骤106:MCU判断是否收到第二蓝牙模块的响应,是则执行步骤107,否则返回执行步骤105;

具体的,MCU判断是否收到0x55 0xaa 0x01 0x00 0xFE,是则执行步骤107,否则执行步骤105。

步骤107:MCU给第一蓝牙模块下电,MCU和第二蓝牙模块进入低功耗状态;若第二蓝牙模块接收到蓝牙连接事件则执行步骤108,若有按键按下则执行步骤110;

具体的,当MCU与按键模块连接的IO被拉高时表示有按键按下。

进一步的,MCU和第二蓝牙模块进入低功耗状态之后还包括,若定时器计时达到预设的关机时间间隔且未收到蓝牙连接事件或按键触发则终端自动关机。

还可以是,当MCU检测到有按键按下的时长达到关机时长时,终端自动关机。具体的,MCU检测与按键模块连接的IO被拉高的时间达到预设的关机时间间隔时,终端自动关机。

本实施例中,所述第二蓝牙模块进入低功耗状态时,还包括将所述蓝牙广播从正常广播状态切换为慢广播状态;相应的,当所述第二蓝牙模块被唤醒时,还包括将所述蓝牙广播从所述慢广播状态切换回正常广播状态。

步骤108:第二蓝牙模块被唤醒,第二蓝牙模块向上位机发起断开连接事件,与上位机断开连接,并通过拉高与MCU连接的IO唤醒MCU;

步骤109:MCU初始化各项参数,给第一蓝牙模块上电,MCU进入idle状态;然后执行步骤112;

步骤110:MCU被唤醒,MCU初始化各项参数,给第一蓝牙模块上电,并通过拉高与第二蓝牙模块连接的IO唤醒第二蓝牙模块,MCU和第二蓝牙模块进入idle状态;

若第二蓝牙模块接收到蓝牙连接事件则执行步骤111;

步骤111:第二蓝牙模块向上位机发起断开连接事件,与上位机断开连接;

步骤112:第一蓝牙模块接收到蓝牙连接事件,与上位机建立连接,并拉低与MCU连接的IO;

具体的,第一蓝牙模块通过拉低与MCU连接的IO通知MCU当前与第一蓝牙模块与上位机建立了连接。

步骤113:MCU等待通过第一蓝牙模块接收上位机发送的数据,当接收到上位机发送的数据时执行步骤114,当等待数据超时或通信结束时MCU进入idle状态,当达到预设的休眠时间间隔时返回执行步骤107;

具体的,MCU进入idle状态之后还包括设置定时器开始休眠计时,若计时达到预设的休眠时间间隔则返回执行步骤107。

步骤114:MCU对接收到的所述数据进行处理,并通过第一蓝牙模块向上位机发送数据响应,然后返回步骤113;

本步骤具体的,MCU根据接收到的所述数据判断数据类型,根据数据类型执行相应操作,并根据操作结果得到数据响应,通过第一蓝牙模块向上位机发送所述数据响应。

例如,当接收到的所述数据为02 02 03,则所述数据类型为获取卡片类型指令,终端进行寻卡操作,若卡片存在则MCU通过第一蓝牙模块向上位机返回90 00 02,若卡片不存在则MCU通过第一蓝牙模块向上位机返回90 00 00。

当接收到的所述数据为02 04 00 05 03,则所述数据类型为打开卡片指令,终端进行打开卡片操作,若打开卡片成功则MCU通过第一蓝牙模块向上位机返回90 00 02 00 08 06 78 80 78 02 80 56BC,若打开卡片超时则MCU通过第一蓝牙模块向终端返回00 59。

当接收到的所述数据为02 05 02 00 0C 00A4 04 00 07A0 00 00 03 33 01 01,则所述数据类型为选择文件指令,终端通知卡片进行选择文件操作,若选择成功则MCU通过第一蓝牙模块向上位机返回6F3E8407A0000003330101A533500B50424F43204352454449548701019F38189F66049F02069F03069F1A0295055F2A029A039C019F3704BF0C059F4D020B0A9000,若选择失败则MCU通过第一蓝牙模块向上位机返回6E 00。

当接收到的所述数据为02 05 02 00 05 80CA 9F 79 09,则所述数据类型为读取指令,终端读取卡片数据,MCU通过第一蓝牙模块向上位机返回9F79060000000110009000。

当接收到的所述数据为02 06,则终端给卡片下电,MCU通过第一蓝牙模块向上位机返回90 00。

本实施例采用在终端内设计两个独立的蓝牙模块(即第一蓝牙模块和第二蓝牙模块)与MCU相连,其中,第一蓝牙模块优选为蓝牙3.0芯片,第二蓝牙模块优选为蓝牙4.0芯片,第一蓝牙模块用于实现终端正常工作时与上位机的通信,完成Felica交易。第二蓝牙模块用于在终端处于休眠时等待上位机的连接,并在连接后唤醒处于休眠中的终端,然后主动断开与上位机的连接,终端唤醒后,将给第一蓝牙模块上电,并等待通过第一蓝牙模块与上位机进行交互操作。

实施例2

本实施例2通过在终端内设计两个独立的蓝牙芯片(即第一蓝牙模块和第二蓝牙模块)来实现了一种兼顾通信速度和功耗的蓝牙通信方法,如图2所示,两个蓝牙芯片的协同工作方法包括以下内容:

步骤201:第一蓝牙模块和第二蓝牙模块上电,第二蓝牙模块打开蓝牙广播;

具体的,所述第二蓝牙模块打开蓝牙广播,向上位机发送包含蓝牙名称的广播包,所述蓝牙名称中包含有所述第一蓝牙模块的MAC地址信息。上位机收到广播包后解析所述广播包,根据从所述广播包中解析得到的MAC地址与所述第一蓝牙模块建立连接。

步骤202:第二蓝牙模块进入idle状态;

当第二蓝牙模块接收到上位机发来的蓝牙连接事件时,执行步骤203;当第一蓝牙模块接收到上位机发来的蓝牙连接事件时,执行步骤204;当等待蓝牙连接事件超时,执行步骤205;

步骤203:第二蓝牙模块向上位机发起断开连接事件,与上位机断开连接,返回步骤202;

步骤204:第一蓝牙模块与上位机建立连接,进行数据传输,待数据传输结束之后,第一蓝牙模块下电,第二蓝牙模块进入低功耗状态,等待被唤醒,执行步骤206;

步骤205:第一蓝牙模块下电,第二蓝牙模块进入低功耗状态,等待被唤醒;

具体的,当第二蓝牙模块进入低功耗状态时还包括,将蓝牙广播从正常广播状态切换为慢广播状态。

进一步的,第二蓝牙模块进入低功耗状态之后还包括,若第二蓝牙模块在预设的关机时间间隔内未被唤醒则终端自动关机。

步骤206:当第二蓝牙模块被唤醒时,第一蓝牙模块上电,并返回步骤202。

具体的,当第二蓝牙模块被唤醒时还包括,第二蓝牙模块将蓝牙广播从慢广播状态切换回正常广播状态。

本实施例提供的方案的特点在于,在终端内设计两个独立的蓝牙模块(即第一蓝牙模块和第二蓝牙模块),第一蓝牙模块为BT Classic标准,用于实现终端正常工作时与上位机的通信,完成Felica交易。第二蓝牙模块为BLE标准,用于在终端处于休眠时等待上位机的连接,并在连接后唤醒处于休眠中的终端,然后主动断开BLE连接,终端唤醒后,将给第一蓝牙模块上电,并等待通过第一蓝牙模块与上位机进行交互操作。

实施例3

本实施例提供了一种兼顾通信速度和功耗的终端,如图3所示:包括MCU以及与所述MCU连接的第一蓝牙模块和第二蓝牙模块;优选的,所述第一蓝牙模块采用BT Classic标准的蓝牙芯片,例如蓝牙3.0芯片;所述第二蓝牙模块采用BLE标准的蓝牙芯片,例如蓝牙4.0芯片。

所述MCU,用于给所述第一蓝牙模块和所述第二蓝牙模块上电,具体用于通过初始化与所述第一蓝牙模块连接的IO以及与所述第二蓝牙模块连接的IO,给所述第一蓝牙模块和所述第二蓝牙模块上电。

本实施例中的所述第一蓝牙模块和所述第二蓝牙模块具有相同的蓝牙名称,所述蓝牙名称中包含有所述第一蓝牙模块的MAC地址信息。

所述第二蓝牙模块,用于打开蓝牙广播,向上位机发送包含蓝牙名称的广播包,并等待蓝牙连接事件;还用于当接收到上位机发来的蓝牙连接事件时,向上位机发起断开连接事件,与上位机断开连接,进入低功耗状态;

所述第一蓝牙模块,用于与上位机建立连接时,实现终端与上位机之间的通信。还用于与上位机建立连接时拉低与所述MCU连接的IO。

优选的,所述MCU,还用于判断是否需要执行设置蓝牙名称的操作,是则为所述第一蓝牙模块和所述第二蓝牙模块设置相同的蓝牙名称,否则触发第二蓝牙模块。所述终端还包括与所述MCU连接的存储器模块,所述存储器模块用于存储所述蓝牙名称;所述MCU,具体用于根据所述存储模块中存储的所述蓝牙名称判断是否需要执行设置蓝牙名称的操作,是则读取所述第一蓝牙模块MAC地址,根据所述第一蓝牙模块MAC地址和终端SN码组成所述蓝牙名称,并设置所述第一蓝牙模块和所述第二蓝牙模块对应的名称为所述蓝牙名称;否则触发第二蓝牙模块。

本实施例提供的所述第二蓝牙模块,还用于当进入低功耗状态时,将所述蓝牙广播从正常广播状态切换为慢广播状态;当被唤醒时,将所述蓝牙广播从所述慢广播状态切换回正常广播状态。

进一步的,所述第二蓝牙模块,还用于当等待蓝牙连接事件超时时,进入低功耗状态;所述MCU包括定时器模块,所述定时器模块,具体用于当检测到所述第二蓝牙模块等待蓝牙连接超时时,触发所述MCU给所述第一蓝牙模块下电;所述MCU,还用于当检测到所述第二蓝牙模块被唤醒时,给所述第一蓝牙模块上电,还用于当所述定时器模块检测到所述第二蓝牙模块等待蓝牙连接超时时,向所述第二蓝牙模块发送休眠指令;所述第二蓝牙模块,具体用于当收到所述休眠指令时进入低功耗状态。

相应的,所述第二蓝牙模块,具体用于当接收到蓝牙连接事件被唤醒时,通过拉高与所述MCU连接的IO唤醒所述MCU;

所述MCU还包括按键模块,所述MCU,具体用于当通过所述按键模块检测到有按键按下,所述MCU被唤醒;所述MCU,还用于当被唤醒时进行初始化并给所述第一蓝牙模块上电,通过拉高与所述第二蓝牙模块连接的IO唤醒所述第二蓝牙模块。

优选的,所述MCU还包括自动关机模块,所述自动关机模块,用于当所述MCU检测到所述第二蓝牙模块在预设的关机时间间隔内未被唤醒时触发终端自动关机。

或者是,所述MCU还包括自动关机模块和按键模块,所述自动关机模块,用于当所述按键模块的按键时长达到关机时长时,触发终端自动关机。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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