一种支持扩展接口的智能密钥设备的工作方法
【专利摘要】本发明公开了一种支持扩展接口的智能密钥设备的工作方法,属于通信【技术领域】。该方法包括:通过扩展接口的IO1引脚检测耳机通信方式,通过扩展接口的IO3引脚检测蓝牙通信方式,在蓝牙通信方式中使用IO1和IO2引脚与外部蓝牙设备进行数据交互。本发明提供的方法以蓝牙接口通信方式的检测为主流程,在智能密钥设备的工作流程中可以自动识别出USB模式、耳机模式、蓝牙模式三种不同类型的通信方式,增强了智能密钥设备与移动终端之间进行通信的兼容性。
【专利说明】一种支持扩展接口的智能密钥设备的工作方法
【技术领域】
[0001]本发明属于通信【技术领域】,尤其涉及一种支持扩展接口的智能密钥设备的工作方法。
【背景技术】
[0002]随着智能移动终端的普及,智能手机等产品越来越成熟,为了增加移动支付的安全性,智能密钥设备(USB KEY)逐步成为了保证网络支付安全性的主要解决方案。
[0003]目前,USB KEY与终端的连接接口主要是USB接口,而对于移动终端来说,移动终端并没有统一的USB接口,对于不同品牌、不同种类的移动终端,其接口各式各样,从而使得USB KEY的推广受到了阻碍。而通过对目前的移动终端设备的分析可知,这些移动终端均具有耳机接口和蓝牙接口,所以USB KEY与终端之间的传输接口可以采用耳机或蓝牙接口,因此,发明一种可以支持多种通信接口以及在通信过程中可以自动识别接口类型与终端进行通信的USB KEY,成为目前急需解决的技术问题。
【发明内容】
[0004]为解决现有技术中的问题,本发明提出了一种支持扩展接口的USB KEY的工作方法,通过对现有的USB KEY的通信接口进行扩展,实现USB KEY自动识别通信接口类型以及与相应接口类型的终端进行通信的目的。
[0005]本发明采取的技术方案是:一种支持扩展接口的智能密钥设备的工作方法,包括:
[0006]步骤S1:设备上电初始化,设置设备的扩展接口的第一 1引脚属性为输入、第二1和第三1引脚属性为输出,打开USB中断,打开第一 1引脚电平跳变中断,启动定时器;
[0007]步骤S2:置第三1引脚状态为低电平;
[0008]步骤S3:检测是否有中断标识被置位,是则执行步骤S4,否则继续执行步骤S3 ;
[0009]步骤S4:判断中断标识类型,若是USB中断标识,则关闭定时器,关闭第一 1引脚电平跳变中断,复位USB中断标识,进入USB模式;若是第一 1引脚电平跳变中断标识,则关闭USB中断,关闭定时器,复位第一 1引脚电平跳变中断标识,进入耳机模式;若是定时器中断标识则执行步骤S5 ;
[0010]步骤S5:置第三1引脚状态为高电平,设置第三1引脚属性为输入,复位定时器中断标识;
[0011]步骤S6:检测是否有中断标识被置位,是则执行步骤S7,否则执行步骤S8 ;
[0012]步骤S7:判断中断标识类型,若是USB中断标识则关闭定时器,关闭第一 1引脚电平跳变中断,复位USB中断标识,进入USB模式;若是第一 1引脚电平跳变中断则关闭USB中断,关闭定时器,复位第一 1引脚电平跳变中断标识,进入耳机模式;若是定时器中断标识则复位定时器中断标识,然后返回步骤S2 ;
[0013]步骤S8:检测第三1引脚状态是否为低电平,是则执行步骤S9,否则执行步骤S6 ;
[0014]步骤S9:等待接收握手信号;
[0015]步骤SlO:判断是否成功接收到握手信号,是则设置第三1引脚属性为输入,进入蓝牙模式;否则返回步骤S2。
[0016]上述方法中还包括:
[0017]当发生定时器中断时,进入定时器中断,清除硬件中断标志,置位定时器中断标识,退出定时器中断;
[0018]当发生USB中断时,进入USB中断,清除硬件中断标志,置位USB中断标识,退出USB中断;
[0019]当发生第一 1引脚电平跳变中断时,进入第一 1引脚电平跳变中断,清除硬件中断标志,置位第一 1引脚电平跳变中断,退出第一 1引脚电平跳变中断。
[0020]所述判断是否成功接收到握手信号具体为:判断第三1引脚状态为低电平的持续时间是否达到第一预设时长,是则表示成功接收到握手信号,握手成功,否则握手失败。
[0021]所述第三1引脚与蓝牙转接模块连接,所述蓝牙模式的流程包括:
[0022]步骤1:设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送蓝牙设置指令;
[0023]步骤2:设置第三1引脚属性为输入,接收蓝牙转接模块返回响应数据,并判断响应数据正确与否,若正确则执行步骤3,若不正确则结束本流程;
[0024]步骤3:设置第三1引脚属性为输出;
[0025]步骤4:通过第三1引脚向蓝牙转接模块发送蓝牙连接指令;
[0026]步骤5:设置第三1引脚属性为输入,接收蓝牙转接模块返回响应数据,并判断响应数据正确与否,若正确则执行步骤6,若不正确则结束本流程;
[0027]步骤6:等待接收蓝牙转接模块发送数据,当有数据时执行步骤7,当无数据时继续执行本步骤;
[0028]步骤7:判断是否是蓝牙已配对数据,是则执行步骤8,否则返回步骤6 ;
[0029]步骤8:关闭USB中断,关闭第一 1引脚电平跳变中断;
[0030]步骤9:等待接收蓝牙转接模块发送数据;
[0031]当设备通过第三1引脚接收到的数据是第一预设数据时,则执行:通过第一 1和第二 1引脚接收操作指令数据,解析操作指令数据,并执行相应操作,生成指令响应数据;设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送第二预设数据;通过第一 1和第二 1引脚发送所述指令响应数据;通过第三1引脚向蓝牙转接模块发送第三预设数据,然后设置第三1引脚属性为输入继续执行步骤9。
[0032]上述步骤6可以替换为:等待接收蓝牙转接模块发送数据,当有数据时执行步骤7,当无数据时执行以下步骤:
[0033]步骤6-1:判断是否建立了 USB连接,是则执行步骤6-2,否则执行步骤6_3 ;
[0034]步骤6-2:关闭第一 1引脚电平跳变中断,进入USB模式,退出本流程;
[0035]步骤6-3:判断是否超时未配对,是则设置第三1引脚属性为输出,向蓝牙转接模块发送关机指令后等待断电,结束本流程;否则执行步骤6-4 ;
[0036]步骤6-4:判断是否通过按键触发进入了蓝牙优先级管理模式,是则执行步骤6-5,否则返回执行步骤6;
[0037]步骤6-5:通过第三1引脚向蓝牙转接模块发送蓝牙设置指令;
[0038]步骤6-6:设置第三1引脚属性为输入,接收蓝牙转接模块返回响应数据,并判断响应数据正确与否,若正确则执行步骤6-7,若不正确则结束本流程;
[0039]步骤6-7:根据按键触发更新蓝牙MAC列表;
[0040]步骤6-8:通过第一 1和第二 1引脚将更新后的蓝牙MAC列表发送给蓝牙转接模块,然后返回执行步骤3;
[0041]相应的所述步骤3还包括:通过第一 1和第二 1引脚获取蓝牙MAC列表。
[0042]步骤9所述等待接收蓝牙转接模块发送数据可以替换为:进入低功耗,当接收到蓝牙转接模块发送的数据时,设备从低功耗被唤醒。
[0043]所述方法还包括:当设备通过第三1引脚接收到的数据是蓝牙断开指令时,则执行:控制界面显示蓝牙已断开,设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送蓝牙设置指令;通过第一 1和第二 1引脚读取蓝牙MAC列表并保存;关闭显示屏,向蓝牙转接模块发送关机指令后等待断电,结束本流程;
[0044]当设备通过第三1引脚接收到的数据是关机提示指令时,则执行:设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送蓝牙设置指令;通过第一 1和第二1引脚读取蓝牙MAC列表并保存;关闭显示屏,向蓝牙转接模块发送关机指令后等待断电,结束本流程;
[0045]当设备通过第三1引脚接收到的数据是USB插入检测指令时,则执行:控制界面显示充电动画,然后返回执行步骤9 ;
[0046]当设备通过第三1引脚接收到的数据是USB拔出检测指令时,则执行:控制界面停放充电动画,然后执行步骤9 ;
[0047]当设备通过第三1引脚接收到的数据是充电完成指令时,则执行:控制界面显示充电完成,然后执彳丁步骤9。
[0048]所述步骤9之前包括:
[0049]步骤9-1:判断低功耗延时是否到时,是则执行步骤9,否则执行步骤9-2 ;
[0050]步骤9-2:判断是否通过按键触发进入了蓝牙优先级管理模式,是则执行步骤6-5,否则返回执行步骤9-1。
[0051]所述方法中,通过第三1引脚接收蓝牙转接模块发送的数据具体以字符为单位接收数据,每一个字符包含I个起始位和9个数据位。所述以字符为单位接收数据具体包括:
[0052]步骤Al:检测第三1引脚是否为低电平,是则执行步骤A2,否则继续执行本步骤;
[0053]步骤A2:判断第三1引脚的电平是否发生低到高的跳变,是则执行步骤A3,否则继续执行本步骤;
[0054]步骤A3:判断低电平持续时间是否大于起始位时间,是则执行步骤A4,否则返回执行步骤Al ;
[0055]步骤A4:判断是否是第一个低到高的跳变,是则执行步骤A5,否则执行步骤A6 ;
[0056]步骤A5:开始接收当前字符的第一个数据位,开启计时器记录当前数据位的高电平时间,然后执行步骤All ;
[0057]步骤A6:当前数据位的低电平时间结束,关闭计时器并缓存记录到的当前数据位的低电平持续时间,重新开启计时器开始记录下一个数据位的高电平时间;
[0058]步骤A7:判断缓存的当前数据位的高电平持续时间是否大于低电平持续时间,是则执行步骤AS,否则执行步骤A9 ;
[0059]步骤AS:将当前数据位记为1,清缓存,然后执行步骤AlO ;
[0060]步骤A9:将当前数据位记为0,清缓存,然后执行步骤AlO ;
[0061]步骤AlO:判断当前字符的数据位是否接收完成,是则执行步骤A14,否则执行步骤 All ;
[0062]步骤All:判断第三1引脚的电平是否发生高到低的跳变,是则执行步骤A14,否则继续执行本步骤;
[0063]步骤A12:当前数据位的高电平时间结束,关闭计时器并缓存记录到的当前数据位的高电平持续时间,重新开启计时器记录当前数据位的低电平时间;
[0064]步骤A13:判断第三1引脚的电平是否发生低到高的跳变,是则返回执行步骤A4,否则继续执行本步骤;
[0065]步骤A14:存储当前字符的数据位,关闭计时器,然后返回步骤Al。
[0066]所述方法中,通过第三1引脚向蓝牙转接模块发送数据具体为以字符为单位发送数据,每一个字符包含I个起始位和9个数据位。所述以字符为单位发送数据包括:
[0067]步骤B1:判断要发送的当前字符是否是协议头数据,是则将第三1引脚状态置为低电平并持续预设协议头数据传输时间,然后执行步骤B2 ;否则将第三1引脚状态置为低电平并持续第二预设时间,然后执行步骤B2 ;
[0068]步骤B2:判断要发送的当前字符的数据位的值,若为I则控制第三1引脚输出高电平并持续第三预设时间,然后输出低电平并持续第四预设时间,然后执行步骤B3 ;若为O则控制第三1引脚输出高电平并持续第四预设时间,然后输出低电平并持续第三预设时间,然后执行步骤B3;
[0069]步骤B3:判断第三1引脚的状态是否为低电平,是则执行步骤B4,否则退出字符发送流程;
[0070]步骤B4:判断当前字符的数据位是否都发送完成,是则执行步骤B5 ;否则返回执行步骤B2 ;
[0071]步骤B5:判断第三1引脚的状态是否为低电平,是则退出字符发送流程,否则置第三1引脚状态为高电平并持续第一预设时间,然后返回步骤BI。
[0072]本发明达到的有益效果:本发明提出的一种支持扩展接口的USB KEY的工作方法,以蓝牙接口通信方式的检测为主流程,在USB KEY的工作流程中可以自动识别出USB模式、耳机模式、蓝牙模式三种不同通信方式,增强了 USB KEY与移动终端之间进行通信的兼容性。
【专利附图】
【附图说明】
[0073]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0074]图1是本发明提出的一种支持扩展接口的USB KEY的工作方法流程图;
[0075]图1-1是图1所示方法流程进入到第一定时器中断时的操作流程图;
[0076]图1-2是图1所示方法流程进入到第二定时器中断时的操作流程图;
[0077]图1-3是图1所示方法流程进入到USB中断时的操作流程图;
[0078]图1-4是图1所示方法流程进入到1l引脚电平跳变中断时的操作流程图;
[0079]图2-1和图2-2是图1所示方法流程进入到蓝牙模式流程后的具体操作流程图;
[0080]图3是本发明提供的USB KEY通过103引脚接收数据的流程图;
[0081]图4是本发明提供的USB KEY通过103引脚发送数据的流程图;
[0082]图5是本发明提供的USB KEY通过103引脚收发数据的控制流程图;
[0083]图6是本发明提供的USB KEY所采用的扩展接口示意图;
[0084]图7是本发明提供的USB KEY与蓝牙转接模块之间通信数据格式示意图。
【具体实施方式】
[0085]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0086]下面将结合附图对本发明实施例作进一步地详细描述。以下实施例中出现的设备为本发明中提及的智能密钥设备即USB KEY,所述USB KEY包含有主芯片和扩展接口。本发明的实施例及其附图中描述的操作步骤的操作主体为USB KEY,本发明的USB KEY采用的扩展接口可以兼容标准USB接口,标准USB接口是4PIN接口类型,本发明优选采用7PIN的扩展接口,如图6所示,其中的VCC引脚、GND引脚、D+引脚、D-引脚为扩展接口所兼容的标准USB接口的4个通用引脚,101、102和103引脚为扩展接口的扩展引脚,其中通过1l引脚检测耳机通信方式,并且在耳机通信方式中使用耳机接口与外部耳机设备进行数据交互,通过103引脚检测蓝牙通信方式,通过103引脚与外部的蓝牙转接模块进行数据交互,在蓝牙通信方式中使用1l和102引脚与蓝牙转接模块中的蓝牙模块进行数据交互。上述三个1引脚的序号仅为不同引脚的说明,不用作限定各个引脚的唯一功能,例如,也可以是使用1l或102引脚检测蓝牙通信方式。在本发明提供的实施例中,USB KEY的主芯片优选采用Z8D256U芯片,USB KEY主芯片的GP10引脚和GP1012引脚连接扩展接口的的1l引脚,USB KEY主芯片的GP1013引脚连接扩展接口的102引脚,USB KEY主芯片的GP1l引脚连接扩展接口的103引脚,同时该103引脚用于与所述蓝牙转接模块的控制1引脚连接,本发明通过对USB KEY的扩展接口的引脚的功能扩展以达到USB KEY自动识别出当前通信方式类型的目的。
[0087]实施例1
[0088]本实施例提供的一种支持扩展接口的智能密钥设备的工作方法,包括如下步骤:
[0089]步骤S1:设备上电初始化,设置设备的扩展接口的第一 1引脚属性为输入、第二1和第三1引脚属性为输出,打开USB中断,打开第一 1引脚电平跳变中断,启动定时器;
[0090]本实施例中优选的,第一 1引脚、第二 1引脚、第三1引脚用于对应扩展接口的3个扩展1引脚。
[0091]步骤S2:置第三1引脚状态为低电平;
[0092]步骤S3:检测是否有中断标识被置位,是则执行步骤S4,否则继续执行步骤S3 ;
[0093]步骤S4:判断中断标识类型,若是USB中断标识,则关闭定时器,关闭第一 1引脚电平跳变中断,复位USB中断标识,进入USB模式;若是第一 1引脚电平跳变中断标识,则关闭USB中断,关闭定时器,复位第一 1引脚电平跳变中断标识,进入耳机模式;若是定时器中断标识则执行步骤S5 ;
[0094]步骤S5:置第三1引脚状态为高电平,设置第三1引脚属性为输入,复位定时器中断标识;
[0095]步骤S6:检测是否有中断标识被置位,是则执行步骤S7,否则执行步骤S8 ;
[0096]步骤S7:判断中断标识类型,若是USB中断标识则关闭定时器,关闭第一 1引脚电平跳变中断,复位USB中断标识,进入USB模式;若是第一 1引脚电平跳变中断则关闭USB中断,关闭定时器,复位第一 1引脚电平跳变中断标识,进入耳机模式;若是定时器中断标识则复位定时器中断标识,然后返回步骤S2 ;
[0097]步骤S8:检测第三1引脚状态是否为低电平,是则执行步骤S9,否则执行步骤S6 ;
[0098]步骤S9:等待接收握手信号;
[0099]步骤SlO:判断是否成功接收到握手信号,是则设置第三1引脚属性为输入,进入蓝牙模式;否则返回步骤S2。
[0100]在本实施例中步骤S3之前以及步骤S5和S6之间可能发生的中断如下:
[0101]当发生定时器中断时,进入定时器中断,清除硬件中断标志,置位定时器中断标识,退出定时器中断。优选的,在步骤S3之前如果第三1引脚状态为低电平的持续时间达到1ms时会触发定时器中断;在步骤S5与步骤S6之间如果第三1引脚状态为高电平的持续时间超过2s时则会触发定时器中断。
[0102]当发生USB中断时,进入USB中断,清除硬件中断标志,置位USB中断标识,退出USB中断。
[0103]当发生1l引脚电平跳变中断时,进入1l引脚电平跳变中断,清除硬件中断标志,置位1l引脚电平跳变中断,退出1l引脚电平跳变中断。
[0104]进一步的,本实施例还可以采用两个定时器来分别实现步骤S3之间触发的定时器中断,以及步骤S5与步骤S6之间触发的定时器中断。
[0105]实施例2
[0106]在实施例1的基础上,第一 1引脚、第二 1引脚和第三1引脚分别用于对应1l引脚、102引脚和103引脚,定时器中断采用第一定时器和第二定时器实现。如图1所示本发明实施例提出的一种支持扩展接口的USB KEY的工作方法的主流程,包括如下步骤:
[0107]步骤101:设备上电初始化,设置1l引脚属性为输入、102和103引脚属性为输出,打开USB中断,打开1l引脚电平跳变中断,启动第一定时器;
[0108]步骤102:置103引脚状态为低电平;
[0109]本实施例中优选的,预先设置当103引脚状态为低电平的持续时间达到1ms时则触发第一定时器中断。
[0110]步骤103:检测是否有中断标识被置位,是则执行步骤104,否则继续执行步骤103 ;
[0111]具体的,本步骤为设备等待中断发生的步骤。优选的,当有中断发生时,设备内的硬件中断标志会被自动置为1,进入相应中断后,需进行清除该硬件中断标志的操作。
[0112]当发生第一定时器中断时,如图1-1所示,进入第一定时器中断,清除硬件中断标志,置位第一定时器中断标识,退出第一定时器中断。
[0113]当发生USB中断时,如图1-3所示,进入USB中断,清除硬件中断标志,置位USB中断标识,退出USB中断。
[0114]当发生1l引脚电平跳变中断时,如图1-4所示,进入1l引脚电平跳变中断,清除硬件中断标志,置位101引脚电平跳变中断,退出1l引脚电平跳变中断。
[0115]步骤104:判断中断标识类型,若是第一定时器中断标识则执行步骤105,若是USB中断标识则执行步骤116,若是1l引脚电平跳变中断标识则执行步骤117 ;
[0116]步骤105:置103引脚状态为高电平,设置103引脚属性为输入,关闭第一定时器,启动第二定时器,复位第一定时器中断标识;
[0117]本实施例中优选的,预先设置当103引脚状态为高电平的持续时间超过2s时则触发第二定时器中断。
[0118]步骤106:检测是否有中断标识被置位,是则执行步骤107,否则执行步骤111 ;
[0119]步骤107:判断中断标识类型,若是USB中断标识则执行步骤108,若是1l引脚电平跳变中断标识则执行步骤109,若是第二定时器中断标识则执行步骤110 ;
[0120]具体的,本步骤为设备等待中断发生的步骤。优选的,当有中断发生时,设备内的硬件中断标志会被自动置为1,进入相应中断后,需进行清除该硬件中断标志的操作。
[0121]当发生第二定时器中断时,如图1-2所示,进入第二定时器中断,清除硬件中断标志,置位第二定时器中断标识,退出第二定时器中断。
[0122]当发生USB中断时,如图1-3所示,进入USB中断,清除硬件中断标志,置位USB中断标识,退出USB中断。
[0123]当发生1l引脚电平跳变中断时,如图1-4所示,进入1l引脚电平跳变中断,清除硬件中断标志,置位101引脚电平跳变中断,退出1l引脚电平跳变中断。
[0124]步骤108:关闭第二定时器,关闭1l引脚电平跳变中断,复位USB中断标识,进入USB模式,并控制界面提示USB模式;
[0125]具体的本步骤会跳转到USB模式的流程中,即现有的USB KEY通过USB接口进行数据通信的操作流程中。
[0126]步骤109:关闭USB中断,关闭第二定时器,复位1l引脚电平跳变中断标识,进入耳机模式,并控制界面提示耳机模式;
[0127]具体的本步骤会跳转到耳机模式的流程中,即现有的USB KEY使用耳机接口进行数据通信的操作流程中,或可参看现有的耳机KEY的操作流程。
[0128]步骤110:关闭第二定时器,启动第一定时器,复位第二定时器中断标识,然后返回步骤102 ;
[0129]步骤111:检测103引脚状态是否为低电平,是则执行步骤112,否则执行步骤
106 ;
[0130]步骤112:通过103引脚接收握手信号;
[0131]本实施例中具体的,所述103引脚状态为低电平时,其引脚属性为输入,可以接收数据,当接收完成数据时,103引脚的电平被拉高,其引脚属性被自动置为输出。优选的,所述103引脚与蓝牙转接模块连接,设备通过103引脚接收蓝牙转接模块发送的握手信号。
[0132]步骤113:判断是否成功接收到握手信号,是则执行步骤114,否则执行步骤115 ;
[0133]本实施例中具体的:判断103引脚状态为低电平的持续时间是否达到第一预设时长,例如10ms,是则表示成功接收到握手信号,握手成功,否则握手失败。
[0134]步骤114:设置1l和102引脚属性为串口,进入蓝牙模式,并控制界面提示蓝牙模式。
[0135]具体的本步骤会跳转到蓝牙模式的流程中,具体参见图2-1和图2-2所示流程。
[0136]步骤115:关闭第二定时器,启动第一定时器,复位第二定时器中断标识,然后返回步骤102 ;
[0137]步骤116:关闭第一定时器,关闭1l引脚电平跳变中断,复位USB中断标识,进入USB模式,并控制界面提示USB模式。
[0138]具体的本步骤会跳转到USB模式的流程中,即现有的USB KEY通过USB接口进行数据通信的操作流程中。
[0139]步骤117:关闭USB中断,关闭第一定时器,复位1l引脚电平跳变中断标识,进入耳机模式,并控制界面提示耳机模式。
[0140]具体的本步骤会跳转到耳机模式的流程中,即现有的USB KEY通过耳机接口进行数据通信的操作流程中,或可参看现有的耳机KEY的操作流程。
[0141]进一步的,在上述步骤中,当进入USB模式时还包括设置USB模式标志位,当进入耳机模式时还包括设置耳机模式标志位,当进入蓝牙模式时还包括设置蓝牙模式标志位。
[0142]本实施例中上述步骤114所提及的进入蓝牙模式流程如图2-1和图2-2所示流程,具体的,USB KEY执行如下步骤,其中各步骤的操作主体为USB KEY:
[0143]步骤201:通过103引脚向蓝牙转接模块发送蓝牙设置指令;
[0144]本实施例中优选的,USB KEY通过103引脚向蓝牙转接模块发送的数据采用单字节协议数据,这样可以提高通信效率。本步骤还包括:设置103引脚属性为输出。
[0145]本步骤所述蓝牙设置指令具体为OxlA。
[0146]进一步的,USB KEY通过103引脚与蓝牙转接模块之间的数据传输还可以采用扩展协议数据,该数据格式为:1字节的协议头+1字节的数据长度+指令字节和数据+校验字。
[0147]步骤202:等待接收蓝牙转接模块返回响应数据,若收到响应数据则执行步骤205,若超时未收到响应数据则执行步骤203 ;
[0148]具体的,本步骤还包括设置103引脚属性为输入。
[0149]步骤203:判断指令是否已经重发了 3次,是则执行步骤204,否则返回执行步骤201 ;
[0150]本实施例中优选设置指令重发次数为3次,本领域技术人员容易想到的还可以设置为I次或其他取值。
[0151]步骤204:控制界面显示蓝牙初始化失败;结束本流程;
[0152]步骤205:判断响应数据正确与否,若正确则执行步骤206,若不正确则返回执行步骤203 ;
[0153]步骤206:通过1l和102引脚获取蓝牙MAC列表;
[0154]步骤207:通过103引脚向蓝牙转接模块发送蓝牙连接指令;
[0155]本实施例中,本步骤所述蓝牙连接指令具体为0x2A。本步骤还包括设置103引脚属性为输出。
[0156]步骤208:等待接收蓝牙转接模块返回响应数据,若收到响应数据则执行步骤209,若超时未收到响应数据则执行步骤210 ;
[0157]具体的,本步骤还包括设置103引脚属性为输入。
[0158]步骤209:判断响应数据正确与否,若正确则执行步骤212,若不正确则返回执行步骤210 ;
[0159]步骤210:判断指令是否已经重发了 3次,是则执行步骤211,否则返回执行步骤207 ;
[0160]本实施例中优选设置指令重发次数为3次,本领域技术人员容易想到的还可以设置为I次或其他取值。
[0161]步骤211:控制界面显示蓝牙初始化失败;结束本流程;
[0162]步骤212:等待接收蓝牙转接模块发送数据,当有数据时执行步骤225,当无数据时执行步骤213 ;
[0163]步骤213:判断是否建立了 USB连接,是则执行步骤214,否则执行步骤215 ;
[0164]步骤214:关闭1l引脚电平跳变中断,进入USB模式,并控制界面提示USB模式;退出本流程跳转到其他流程。
[0165]具体的本步骤会跳转到USB模式的流程,即现有的USB KEY使用USB接口进行通信的操作流程中。
[0166]步骤215:判断是否超时未配对,是则执行步骤216,否则执行步骤217 ;
[0167]步骤216:控制界面显示超时关机,然后关闭显示屏,向蓝牙转接模块发送关机指令后等待断电;结束本流程。
[0168]本实施例中,本步骤所述关机指令具体为0x3A。本步骤还包括设置103引脚属性为输出。
[0169]步骤217:判断是否通过按键触发进入了蓝牙优先级管理模式,是则执行步骤218,否则返回执行步骤212 ;
[0170]步骤218:通过103引脚向蓝牙转接模块发送蓝牙设置指令;
[0171]步骤219:等待接收蓝牙转接模块返回响应数据,若收到响应数据则执行步骤222,若超时未收到响应数据则执行步骤220 ;
[0172]具体的,本步骤还包括设置103引脚属性为输入。
[0173]步骤220:判断指令是否已经重发了 3次,是则执行步骤221,否则返回执行步骤218 ;
[0174]步骤221:控制界面显示蓝牙初始化失败;结束本流程。
[0175]步骤222:判断响应数据正确与否,若正确则执行步骤223,若不正确则返回执行步骤220 ;
[0176]步骤223:根据按键触发更新蓝牙MAC列表;
[0177]步骤224:通过1l和102引脚将更新后的蓝牙MAC列表发送给蓝牙转接模块,然后返回执行步骤207 ;
[0178]步骤225:判断是否是蓝牙已配对数据,是则执行步骤226,否则返回步骤212 ;
[0179]本实施例中,本步骤所述蓝牙已配对数据具体为0x05。
[0180]步骤226:关闭USB中断,关闭1l引脚电平跳变中断;
[0181]步骤227:控制界面提示已配对建立连接;
[0182]步骤228:判断低功耗延时是否到时,是则执行步骤230,否则执行步骤229 ;
[0183]步骤229:判断是否通过按键触发进入了蓝牙优先级管理模式,是则执行步骤218,否则返回执行步骤228 ;
[0184]步骤230:进入低功耗;
[0185]本实施例中具体的,MCU进入低功耗后,当蓝牙转接模块主动向MCU发送数据时,会将MCU从低功耗状态唤醒,进而执行步骤231。
[0186]步骤231:当MCU被唤醒时,通过103引脚接收蓝牙转接模块发送的数据;
[0187]进一步的,当设备从低功耗被唤醒时还包括,判断当前的模式标志位是否为蓝牙模式标志位,是则执行通过103引脚接收蓝牙转接模块发送的数据;否则根据当前的模式标志位进入到相应模式的处理流程。例如,当前的模式标志位为USB模式标志位则进入USB模式的流程,即现有的USB KEY使用USB接口进行通信的操作流程中。
[0188]进一步的,上述步骤228-231还可以替换为:等待接收蓝牙转接模块发送数据,当通过103引脚接收到数据时执行步骤232。
[0189]步骤232:判断数据类型,若是第一预设数据则执行步骤233,若是蓝牙断开指令则执行步骤237,若是关机提示指令则执行步骤240 ;若是USB插入检测指令则执行步骤241,若是USB拔出检测指令则执行步骤242,若是充电完成指令则执行步骤243。
[0190]本实施例中具体的,当接收到的数据为0x25或0x35时表示第一预设数据,当接收到的数据为0x15时表示蓝牙断开指令,当接收到的数据为0x45时表示关机提示指令,当接收到的数据为0x55时表示USB插入检测指令,当接收到的数据为0x65时表示USB拔出检测指令,当接收到的数据为0x75时表示充电完成指令。
[0191]步骤233:通过1l和102引脚接收操作指令数据,解析操作指令数据,并执行相应操作生成指令响应数据;
[0192]本实施例中具体的,通过1l和102引脚接收来自终端设备的操作指令数据,与终端设备通过蓝牙接口通信。例如接收到的操作指令数据为签名数据,则USBKEY进入签名工作流程,完成签名后生成指令响应数据。
[0193]本步骤具体包括:
[0194]233-1:解析接收到的操作指令数据,根据操作指令数据的前四个字节判断指令类型,若是设置算法和密钥信息指令则执行233-2,若是报文数据哈希指令则执行233-3,若是计算签名指令则执行233-4,若是获取按键信息指令则执行233-5,若是获取签名结果指令则执行233-6 ;
[0195]优选的,如果指令数据的前四个字节是00 22 41 B6,则收到的是设置算法和密钥信息指令;如果指令数据的前四个字节是OO 2A 90 80,则收到的是报文数据哈希指令;如果指令的前四个字节是00 2A 9E 00,则收到的是计算签名指令;如果指令的前四个字节是80 E5 00 00,则收到的是获取按键信息指令;如果指令的前四个字节是80 E3 00 00,则收到的是获取签名结果指令。
[0196]233-2:设置签名算法、哈希算法以及密钥信息,生成操作指令响应,然后执行步骤234 ;
[0197]233-3:对指令数据中的报文数据进行解析得到关键数据并保存,对指令数据中的报文数据进行哈希运算得到哈希结果并保存,生成指令响应数据,然后执行步骤234 ;
[0198]233-4:将保存的关键数据在液晶屏上显示,置位按键等待标识,生成指令响应数据,然后执行步骤234;
[0199]233-5:执行获取按键信息操作,保存获取到的按键信息,生成指令响应数据,然后执行步骤234 ;
[0200]233-6:执行获取签名结果操作,保存签名结果,生成指令响应数据,然后执行步骤234。
[0201]步骤234:通过103引脚向蓝牙转接模块发送第二预设数据;
[0202]具体的,第二预设数据为OxOA。本步骤还包括设置103引脚属性为输出。
[0203]步骤235:通过1l和102引脚发送指令响应数据;
[0204]具体的,本步骤将步骤233生成的指令响应数据通过1l和102发送给终端设备。
[0205]步骤236:通过103引脚向蓝牙转接模块发送第三预设数据;然后返回执行步骤227。
[0206]本实施例中,所述第三预设数据具体为0x5A。本步骤返回执行步骤227之前还包括设置103引脚属性为输入。
[0207]步骤237:控制界面显示蓝牙已断开,通过103引脚向蓝牙转接模块发送蓝牙设置指令;
[0208]具体的,本步骤还包括设置103引脚属性为输出。
[0209]步骤238:通过1l和102读取蓝牙MAC列表并保存;
[0210]步骤239:关闭显示屏,向蓝牙转接模块发送关机指令后等待断电,结束本流程。
[0211]具体的,所述关机指令为0x3A。
[0212]步骤240:通过103引脚向蓝牙转接模块发送蓝牙设置指令;然后执行步骤238。
[0213]具体的,本步骤还包括设置103引脚属性为输出。
[0214]步骤241:控制界面显示充电动画,然后执行步骤227。
[0215]步骤242:控制界面停放充电动画,然后执行步骤227。
[0216]步骤243:控制界面显示充电完成,然后执行步骤227。
[0217]本实施例中,USB KEY通过103引脚接收蓝牙转接模块发送的数据,例如第一预设数据、蓝牙断开指令、关机提示指令、USB插入检测指令、USB拔出检测指令、充电完成指令等,是以字符为单位接收的,每一个字符包含I个起始位和9个数据位,其中用一个低到高的电平跳变表示起始位的达到,9个数据位中的前8位为所述数据内容,9个数据位中的最后一位为校验位。具体的USB KEY以字符为单位接收所述数据过程如图3所示,具体包括:
[0218]步骤al:检测103引脚是否为低电平,是则执行步骤a2,否则继续执行本步骤;
[0219]步骤a2:判断103引脚的电平是否发生低到高的跳变,是则执行步骤a3,否则继续执行本步骤,等待电平跳变;
[0220]步骤a3:判断低电平持续时间是否大于起始位时间,是则执行步骤a4,否则返回执行步骤al ;
[0221]本实施例中优选的,所述起始位时间为1ms,通过本步骤的判断可以过滤掉异常的起始位。具体的,当发生低到高的电平跳变时表示有起始位到来,若在该跳变中低电平持续时间不大于Ims则表示是错误的起始位,返回步骤al,若大于Ims则表示数据的到来执行步骤a4开始接收数据位。
[0222]步骤a4:判断是否是第一个低到高的跳变,是则执行步骤a5,否则执行步骤a6 ;
[0223]本实施例中优选的,在字符的接收过程中,通过设置一个开始标志位来判断是否是第一个低到高的跳变。本实施例中103引脚的电平发生的第一个低到高的跳变表示要接收的当前字符的起始位的到达。
[0224]具体的,在步骤al中还包括将开始标志位置位,本步骤判断为是时还包括将开始标志位复位。
[0225]步骤a5:开始接收当前字符的第一个数据位,开启计时器记录当前数据位的高电平时间,然后执行步骤all ;
[0226]步骤a6:当前数据位的低电平时间结束,关闭计时器并缓存记录到的当前数据位的低电平持续时间,重新开启计时器开始记录下一个数据位的高电平时间;
[0227]步骤a7:判断缓存的当前数据位的高电平持续时间是否大于低电平持续时间,是则执行步骤a8,否则执行步骤a9 ;
[0228]步骤a8:将当前数据位记为1,清缓存,然后执行步骤alO ;
[0229]步骤a9:将当前数据位记为0,清缓存,然后执行步骤alO ;
[0230]本发明提出的实施例中,USB KEY与蓝牙转接模块之间的通信数据的字符结构为:I位起始位(低电平)+8位数据位+1位校验位,其格式如图7所示,其中当高电平持续时间是低电平的2倍时,当前数据位记为I即bitl,当低电平持续时间是高电平的2倍时,当前数据位记为O即bitO。
[0231]步骤alO:判断当前字符的数据位是否接收完成,是则执行步骤al7,否则执行步骤 all ;
[0232]步骤all:判断103引脚的电平是否发生高到低的跳变,是则执行步骤al2,否则执行步骤al5 ;
[0233]步骤al2:当前数据位的高电平时间结束,关闭计时器并缓存记录到的当前数据位的高电平持续时间,重新开启计时器记录当前数据位的低电平时间;
[0234]步骤al3:判断103引脚的电平是否发生低到高的跳变,是则返回执行步骤a4,否则执行步骤al4 ;
[0235]步骤al4:判断等待跳变是否发生超时,是则执行步骤al6,否则执行步骤al3 ;
[0236]步骤al5:判断等待跳变是否发生超时,是则执行步骤al6,否则执行步骤al I ;
[0237]步骤al6:置103引脚状态为低电平并持续第一预设时间,向蓝牙转接模块报告错误并等待重新接收该字符,返回步骤al ;
[0238]本实施例中优选的,第一预设时间为两个数据位的传输时间,例如,一个数据位的传输时间为3ms,则第一预设时间=6msο
[0239]步骤al7:判断数据位的最后一位是否正确,是则执行步骤al8,否则执行步骤al9 ;
[0240]步骤al8:存储当前字符的数据位,关闭计时器,然后返回步骤al ;
[0241]步骤al9:置103引脚状态为低电平并持续第一预设时间,关闭计时器,向蓝牙转接模块报告错误等待重新接收该字符,返回步骤al。
[0242]优选的,本实施例中的所有超时判断可以通过设置定时器的方式实现。
[0243]本实施例中,USB KEY通过103引脚向蓝牙转接模块发送数据,例如第二预设数据、第三预设数据、蓝牙已配对数据、蓝牙设置指令、蓝牙连接指令、关机指令;上述数据由字符组成,每一个字符包含I个起始位和9个数据位,其中用一个电平跳变表示起始位的到达,9个数据位中的最后一位为校验位。具体的USB KEY以字符为单位发送所述数据过程如图4所示,具体包括:
[0244]步骤bl:准备发送字符;
[0245]步骤b2:判断要发送的当前字符是否是协议头数据,是则执行步骤b3,否则执行步骤b4 ;
[0246]步骤b3:将103引脚状态置为低电平并持续预设协议头数据传输时间,然后执行步骤b5 ;
[0247]具体的,预设协议头数据传输时间为10ms。
[0248]步骤b4:将103引脚状态置为低电平并持续第二预设时间,然后执行步骤b5 ;
[0249]本实施例中优选的,第二预设时间等于成功发送一个字符所需时间,例如,成功发送一个数据位所需时间为Ims,则第二预设时间=1ms。
[0250]步骤b5:准备发送当前字符的数据位;
[0251]步骤b6:判断要发送的数据位的值,若为I则执行步骤b7,若为O则执行步骤b8 ;
[0252]步骤b7:控制103引脚输出高电平并持续第三预设时间,然后输出低电平并持续第四预设时间,然后执行步骤b9 ;
[0253]本实施例中优选的,第三预设时间等于第二预设时间的2/3倍,第四预设时间等于第二预设时间的1/3倍,例如,成功发送一个数据位所需时间为3ms,即第二预设时间为3ms,则第三预设时间=2ms,第四预设时间=1ms。
[0254]步骤b8:控制103引脚输出高电平并持续第四预设时间,然后输出低电平并持续第三预设时间,然后执行步骤b9 ;
[0255]步骤b9:判断103引脚的状态是否为低电平,是则执行步骤blO,否则退出字符发送流程,进入字符接收流程;
[0256]步骤blO:判断当前字符的数据位是否都发送完成,是则执行步骤bll ;否则准备发送下一个数据位,返回执行步骤b6 ;
[0257]步骤bll:判断103引脚的状态是否为低电平,是则执行步骤bl3,否则执行步骤bl2 ;
[0258]步骤bl2:当前字符发送成功,将当前字符的重发次数清零,然后执行步骤bl5 ;
[0259]步骤bl3:当前字符发送失败,将当前字符的重发次数加I ;
[0260]步骤bl4:判断当前字符的重发次数是否超过3次,是则退出字符发送流程,结束,否则执行步骤bl5;
[0261]步骤bl5:置103引脚状态为高电平并持续第一预设时间,然后返回步骤bl。
[0262]图5是本发明中USB KEY通过103引脚收发数据的控制流程图,以USB KEY接收蓝牙转接模块发送的控制信息以及USB KEY向蓝牙转接模块发送指令数据为例进行介绍。如图5所示,该流程包括如下步骤:
[0263]步骤301:设备等待通过103引脚接收蓝牙转接模块发送控制信息;
[0264]步骤302:检测103引脚状态是否为高电平,是则执行步骤303,否则执行步骤316 ;
[0265]步骤303:检测指令缓存区中是否有要给蓝牙转接模块发送的指令数据,是则执行步骤304,否则返回步骤301 ;
[0266]步骤304:检测103引脚状态是否为低电平,是则执行步骤305,否则执行步骤306 ;
[0267]步骤305:将当前要发送的指令数据保存到指令缓存区,然后执行步骤316 ;
[0268]步骤306:向蓝牙转接模块发送所述指令数据;
[0269]步骤307:判断重发次数是否大于3次,是则执行步骤314,否则执行步骤308 ;
[0270]步骤308:判断所述指令数据是否发送成功,是则执行步骤309,否则执行步骤315 ;
[0271]步骤309:置103引脚状态为输入,等待接收蓝牙转接模块返回应答信息;
[0272]步骤310:判断是否等待超时,是则执行步骤313,否则执行步骤311 ;
[0273]步骤311:判断所述应答信息是否接收成功,是则执行步骤312,否则执行步骤313 ;
[0274]步骤312:将重发次数的计数清零,清空指令缓存区,然后返回开始进入步骤301 ;
[0275]步骤313:将重发次数的计数加1,然后返回步骤304 ;
[0276]步骤314:将重发次数的计数清零,然后返回开始进入步骤301 ;
[0277]步骤315:将重发次数的计数加1,然后返回开始重新进入步骤301 ;
[0278]步骤316:接收蓝牙转接模块发送的控制信息中的协议头;
[0279]步骤317:判断所述协议头是否是预设值,是则执行步骤318,否则返回步骤301 ;
[0280]具体的,所述预设值为0xF5。
[0281]步骤318:接收所述控制信息中的数据域数据;
[0282]具体的,所述控制信息中的数据域数据由字符组成,每一个字符包含I个起始位和9个数据位,其中数据位的最后一位表示一个校验位。本步骤具体为以字符为单位接收所述数据域数据,具体过程如图3所示流程,在此不再赘述。
[0283]步骤319:判断接收所述数据域数据过程中是否发生等待超时,是则返回步骤301,否则执行步骤320 ;
[0284]具体的,判断所述数据域数据的字符与字符之间的接收时间间隔是否大于预设时间,是则等待超时返回步骤301,否则执行步骤320。
[0285]步骤320:判断所述控制信息是否接收完成,是则执行步骤321,否则返回执行步骤 318 ;
[0286]步骤321:根据控制信息进行相应功能处理,待功能处理完成后准备相应的应答信息;
[0287]例如,接收到的控制信息为配对协议数据,则相应功能处理为控制设备界面显示配对成功已连接,进入低功耗处理,该控制信息无需返回应答信息。
[0288]步骤322:置103引脚状态为输出,向蓝牙转接模块发送应答信息,然后返回开始进入步骤301。
[0289]以上所述的实施例只是本发明较优选的【具体实施方式】,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
【权利要求】
1.一种支持扩展接口的智能密钥设备的工作方法,其特征是,包括: 步骤S1:设备上电初始化,设置设备的扩展接口的第一 1引脚属性为输入、第二 1和第三1引脚属性为输出,打开USB中断,打开第一 1引脚电平跳变中断,启动定时器;步骤S2:置第三1引脚状态为低电平; 步骤S3:检测是否有中断标识被置位,是则执行步骤S4,否则继续执行步骤S3 ; 步骤S4:判断中断标识类型,若是USB中断标识,则关闭定时器,关闭第一 1引脚电平跳变中断,复位USB中断标识,进入USB模式;若是第一 1引脚电平跳变中断标识,则关闭USB中断,关闭定时器,复位第一 1引脚电平跳变中断标识,进入耳机模式;若是定时器中断标识则执行步骤S5 ; 步骤S5:置第三1引脚状态为高电平,设置第三1引脚属性为输入,复位定时器中断标识; 步骤S6:检测是否有中断标识被置位,是则执行步骤S7,否则执行步骤S8 ; 步骤S7:判断中断标识类型,若是USB中断标识则关闭定时器,关闭第一 1引脚电平跳变中断,复位USB中断标识,进入USB模式;若是第一 1引脚电平跳变中断则关闭USB中断,关闭定时器,复位第一 1引脚电平跳变中断标识,进入耳机模式;若是定时器中断标识则复位定时器中断标识,然后返回步骤S2 ; 步骤S8:检测第三1引脚状态是否为低电平,是则执行步骤S9,否则执行步骤S6 ; 步骤S9:等待接收握手信号; 步骤SlO:判断是否成功接收到握手信号,是则设置第三1引脚属性为输入,进入蓝牙模式;否则返回步骤S2。
2.如权利要求1所述的方法,其特征是,所述步骤S3之前包括: 当发生定时器中断时,进入定时器中断,清除硬件中断标志,置位定时器中断标识,退出定时器中断; 当发生USB中断时,进入USB中断,清除硬件中断标志,置位USB中断标识,退出USB中断; 当发生第一 1引脚电平跳变中断时,进入第一 1引脚电平跳变中断,清除硬件中断标志,置位第一 1引脚电平跳变中断,退出第一 1引脚电平跳变中断。
3.如权利要求1所述的方法,其特征是,所述步骤S5与步骤S6之间包括: 当发生定时器中断时,进入定时器中断,清除硬件中断标志,置位定时器中断标识,退出定时器中断; 当发生USB中断时,进入USB中断,清除硬件中断标志,置位USB中断标识,退出USB中断; 当发生第一 1引脚电平跳变中断时,进入第一 1引脚电平跳变中断,清除硬件中断标志,置位第一 1引脚电平跳变中断,退出第一 1引脚电平跳变中断。
4.如权利要求1所述的方法,其特征是,所述判断是否成功接收到握手信号具体为:判断第三1引脚状态为低电平的持续时间是否达到第一预设时长,是则表示成功接收到握手信号,握手成功,否则握手失败。
5.如权利要求1所述的方法,其特征是,所述第三1引脚与蓝牙转接模块连接,所述蓝牙模式的流程包括: 步骤1:设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送蓝牙设置指令; 步骤2:设置第三1引脚属性为输入,接收蓝牙转接模块返回响应数据,并判断响应数据正确与否,若正确则执行步骤3,若不正确则结束本流程; 步骤3:设置第三1引脚属性为输出; 步骤4:通过第三1引脚向蓝牙转接模块发送蓝牙连接指令; 步骤5:设置第三1引脚属性为输入,接收蓝牙转接模块返回响应数据,并判断响应数据正确与否,若正确则执行步骤6,若不正确则结束本流程; 步骤6:等待接收蓝牙转接模块发送数据,当有数据时执行步骤7,当无数据时继续执行本步骤; 步骤7:判断是否是蓝牙已配对数据,是则执行步骤8,否则返回步骤6 ; 步骤8:关闭USB中断,关闭第一 1引脚电平跳变中断; 步骤9:等待接收蓝牙转接模块发送数据; 当设备通过第三1引脚接收到的数据是第一预设数据时,则执行:通过第一 1和第二 1引脚接收操作指令数据,解析操作指令数据,并执行相应操作,生成指令响应数据;设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送第二预设数据;通过第一1和第二 1引脚发送所述指令响应数据;通过第三1引脚向蓝牙转接模块发送第三预设数据,然后设置第三1引脚属性为输入继续执行步骤9。
6.如权利要求5所述的方法,其特征是,所述步骤2之前包括,等待接收蓝牙转接模块返回响应数据,若收到响应数据则执行步骤2,若超时未收到响应数据则判断指令是否已经重发了预设次数,是则结束本流程;否则返回执行步骤I。
7.如权利要求5所述的方法,其特征是,所述步骤5之前包括,等待接收蓝牙转接模块返回响应数据,若收到响应数据则执行步骤5,若超时未收到响应数据则判断指令是否已经重发了预设次数,是则结束本流程;否则返回执行步骤4。
8.如权利要求5所述的方法,其特征是, 所述步骤6可以替换为:等待接收蓝牙转接模块发送数据,当有数据时执行步骤7,当无数据时执行以下步骤: 步骤6-1:判断是否建立了 USB连接,是则执行步骤6-2,否则执行步骤6-3 ; 步骤6-2:关闭第一 1引脚电平跳变中断,进入USB模式,退出本流程; 步骤6-3:判断是否超时未配对,是则设置第三1引脚属性为输出,向蓝牙转接模块发送关机指令后等待断电,结束本流程;否则执行步骤6-4 ; 步骤6-4:判断是否通过按键触发进入了蓝牙优先级管理模式,是则执行步骤6-5,否则返回执行步骤6; 步骤6-5:通过第三1引脚向蓝牙转接模块发送蓝牙设置指令; 步骤6-6:设置第三1引脚属性为输入,接收蓝牙转接模块返回响应数据,并判断响应数据正确与否,若正确则执行步骤6-7,若不正确则结束本流程; 步骤6-7:根据按键触发更新蓝牙MAC列表; 步骤6-8:通过第一 1和第二 1引脚将更新后的蓝牙MAC列表发送给蓝牙转接模块,然后返回执行步骤3; 相应的所述步骤3还包括:通过第一 1和第二 1引脚获取蓝牙MAC列表。
9.如权利要求8所述的方法,其特征是,所述步骤6-6之前包括:等待接收蓝牙转接模块返回响应数据,若收到响应数据则执行步骤6-6,若超时未收到响应数据则判断指令是否已经重发了预设次数,是则结束本流程,否则返回执行步骤6-5。
10.如权利要求8所述的方法,其特征是,步骤9所述等待接收蓝牙转接模块发送数据可以替换为:进入低功耗,当接收到蓝牙转接模块发送的数据时,设备从低功耗被唤醒。
11.如权利要求8或10所述的方法,其特征是,所述方法还包括:当设备通过第三1弓丨脚接收到的数据是蓝牙断开指令时,则执行:控制界面显示蓝牙已断开,设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送蓝牙设置指令;通过第一 1和第二 1引脚读取蓝牙MAC列表并保存;关闭显示屏,向蓝牙转接模块发送关机指令后等待断电,结束本流程; 当设备通过第三1引脚接收到的数据是关机提示指令时,则执行:设置第三1引脚属性为输出,通过第三1引脚向蓝牙转接模块发送蓝牙设置指令;通过第一 1和第二 1引脚读取蓝牙MAC列表并保存;关闭显示屏,向蓝牙转接模块发送关机指令后等待断电,结束本流程; 当设备通过第三1引脚接收到的数据是USB插入检测指令时,则执行:控制界面显示充电动画,然后返回执行步骤9 ; 当设备通过第三1引脚接收到的数据是USB拔出检测指令时,则执行:控制界面停放充电动画,然后执行步骤9; 当设备通过第三1引脚接收到的数据是充电完成指令时,则执行:控制界面显示充电完成,然后执彳了步骤9。
12.如权利要求10所述的方法,其特征是,所述步骤9之前包括: 步骤9-1:判断低功耗延时是否到时,是则执行步骤9,否则执行步骤9-2 ; 步骤9-2:判断是否通过按键触发进入了蓝牙优先级管理模式,是则执行步骤6-5,否则返回执行步骤9-1。
13.如权利要求6或7或9所述的方法,其特征是,所述判断指令是否已经重发了预设次数的判断结果为是时还包括控制界面显示蓝牙初始化失败。
14.如权利要求1所述的方法,其特征是,所述进入USB模式时还包括控制界面提示USB模式,所述进入耳机模式时还包括控制界面提示耳机模式,所述进入蓝牙模式时还包括控制界面提示蓝牙模式。
15.如权利要求10所述的方法,其特征是,所述进入USB模式时还包括设置USB模式标志位,所述进入耳机模式时还包括设置耳机模式标志位,所述进入蓝牙模式时还包括设置蓝牙模式标志位。
16.如权利要求15所述的方法,其特征是,当所述设备从低功耗被唤醒时还包括,判断当前的模式标志位是否为蓝牙模式标志位,是则执行通过第三1引脚接收蓝牙转接模块发送的数据;否则根据当前的模式标志位进入到相应模式的处理流程。
17.如权利要求5所述的方法,其特征是,所述操作指令数据为签名数据,所述执行相应操作为执行签名操作。
18.如权利要求5所述的方法,其特征是,所述方法中,通过第三1引脚接收蓝牙转接模块发送的数据具体以字符为单位接收数据,每一个字符包含I个起始位和9个数据位。
19.如权利要求18所述的方法,其特征是,所述以字符为单位接收数据具体包括: 步骤Al:检测第三1引脚是否为低电平,是则执行步骤A2,否则继续执行本步骤; 步骤A2:判断第三1引脚的电平是否发生低到高的跳变,是则执行步骤A3,否则继续执行本步骤; 步骤A3:判断低电平持续时间是否大于起始位时间,是则执行步骤A4,否则返回执行步骤Al ;步骤A4:判断是否是第一个低到高的跳变,是则执行步骤A5,否则执行步骤A6 ; 步骤A5:开始接收当前字符的第一个数据位,开启计时器记录当前数据位的高电平时间,然后执行步骤Al I ; 步骤A6:当前数据位的低电平时间结束,关闭计时器并缓存记录到的当前数据位的低电平持续时间,重新开启计时器开始记录下一个数据位的高电平时间; 步骤A7:判断缓存的当前数据位的高电平持续时间是否大于低电平持续时间,是则执行步骤AS,否则执行步骤A9 ; 步骤AS:将当前数据位记为1,清缓存,然后执行步骤AlO ; 步骤A9:将当前数据位记为0,清缓存,然后执行步骤AlO ; 步骤AlO:判断当前字符的数据位是否接收完成,是则执行步骤A14,否则执行步骤All ; 步骤All:判断第三1引脚的电平是否发生高到低的跳变,是则执行步骤A14,否则继续执行本步骤; 步骤A12:当前数据位的高电平时间结束,关闭计时器并缓存记录到的当前数据位的高电平持续时间,重新开启计时器记录当前数据位的低电平时间; 步骤A13:判断第三1引脚的电平是否发生低到高的跳变,是则返回执行步骤A4,否则继续执行本步骤; 步骤A14:存储当前字符的数据位,关闭计时器,然后返回步骤Al。
20.如权利要求19所述的方法,其特征是,所述步骤All中所述判断的结果为否时还包括:判断等待跳变是否发生超时,是则置第三1引脚状态为低电平并持续第一预设时间,向蓝牙转接模块报告错误并等待重新接收该字符,返回步骤Al ;否则继续执行步骤AU。
21.如权利要求19所述的方法,其特征是,所述步骤A13中所述判断的结果为否时还包括:判断等待跳变是否发生超时,是则置第三1引脚状态为低电平并持续第一预设时间,向蓝牙转接模块报告错误并等待重新接收该字符,返回步骤Al ;否则继续执行步骤A13。
22.如权利要求19所述的方法,其特征是,所述步骤A14之前还包括:判断数据位的最后一位是否正确,是则执行步骤A14,否则置第三1引脚状态为低电平并持续第一预设时间,关闭计时器,向蓝牙转接模块报告错误等待重新接收该字符,返回步骤Al。
23.如权利要求5所述的方法,其特征是,所述方法中,通过第三1引脚向蓝牙转接模块发送数据具体为以字符为单位发送数据,每一个字符包含I个起始位和9个数据位。
24.如权利要求23所述的方法,其特征是,所述以字符为单位发送数据包括: 步骤B1:判断要发送的当前字符是否是协议头数据,是则将第三1引脚状态置为低电平并持续预设协议头数据传输时间,然后执行步骤B2 ;否则将第三1引脚状态置为低电平并持续第二预设时间,然后执行步骤B2 ; 步骤B2:判断要发送的当前字符的数据位的值,若为I则控制第三1引脚输出高电平并持续第三预设时间,然后输出低电平并持续第四预设时间,然后执行步骤B3 ;若为O则控制第三1引脚输出高电平并持续第四预设时间,然后输出低电平并持续第三预设时间,然后执彳了步骤B3 ; 步骤B3:判断第三1引脚的状态是否为低电平,是则执行步骤B4,否则退出字符发送流程; 步骤B4:判断当前字符的数据位是否都发送完成,是则执行步骤B5 ;否则返回执行步骤B2 ; 步骤B5:判断第三1引脚的状态是否为低电平,是则退出字符发送流程,否则置第三1引脚状态为高电平并持续第一预设时间,然后返回步骤BI。
25.如权利要求24所述的方法,其特征是,所述步骤B5具体为: 步骤B5-1:判断第三1引脚的状态是否为低电平,是则将当前字符的重发次数加1,然后执行步骤B5-2,否则将当前字符的重发次数清零,然后执行步骤B5-2 ; 步骤B5-2:判断当前字符的重发次数是否超过预设次数,是则退出字符发送流程,结束,否则置第三1引脚状态为高电平并持续第一预设时间,然后返回步骤BI。
【文档编号】H04L9/32GK104320254SQ201410513352
【公开日】2015年1月28日 申请日期:2014年9月29日 优先权日:2014年9月29日
【发明者】陆舟, 于华章 申请人:飞天诚信科技股份有限公司