蓝牙转接装置及其工作方法与流程

文档序号:12542884阅读:340来源:国知局
蓝牙转接装置及其工作方法与流程
本发明属于通信设备领域,尤其涉及一种蓝牙转接装置及其工作方法。

背景技术:
随着移动设备如智能手机等产品的普及,为了增加移动支付的安全性,智能密钥设备(USBKEY)逐步成为了保证网络支付安全性的主要解决方案。目前,USBKEY与移动设备的主要通信方式是通过USB接口连接通信,但是对于移动设备来说,并没有统一的USB接口,例如对于不同品牌、不同种类的手机,其接口各式各样,从而使得USBKEY的推广受到了阻碍。而通过对目前的移动设备的分析可知,这些移动设备均具有蓝牙模块,所以作为USBKEY的生产厂商,发明一种可以实现USBKEY与移动设备通过蓝牙连接进行通信的装置及方法,成为目前急需解决的技术问题。

技术实现要素:
为了解决现有技术中存在的问题,本发明提出了一种蓝牙转接装置及其工作方法。本发明提出的技术方案如下:一种蓝牙转接装置,包括主控芯片、电源管理模块、蓝牙模块、第一USB接口模块和第二USB接口模块;所述主控芯片与所述电源管理模块、所述蓝牙模块、所述第一USB接口模块、所述第二USB接口模块连接,用于检测所述电源管理模块的充电状态、电量状态和按键状态;用于检测所述蓝牙模块的蓝牙连接状态和蓝牙发送准备状态;用于检测所述第一USB接口模块与主机的连接状态,用于通过所述第二USB接口模块与USBKEY进行通信;所述蓝牙模块与所述主控芯片、所述电源管理模块和所述第二USB接口模块连接,用于提供蓝牙通信接口;所述第一USB接口模块与所述电源管理模块、所述第二USB接口模块连接,用于为装置提供一个与主机连接的接口,用于实现装置的第二USB接口模块与主机之间的连通;所述第二USB接口模块与所述主控芯片、所述蓝牙模块和所述电源管理模块连接,用于实现所述主控芯片与USBKEY之间的通信,用于实现所述蓝牙模块与USBKEY之间的通信;所述电源管理模块与所述主控芯片、所述蓝牙模块、所述第一USB接口模块和所述第二USB接口模块连接,用于为所述装置供电。上述蓝牙转接装置的工作方法通过所述主控芯片实现,所述主控芯片初始化后,执行以下操作:步骤S1:判断所述第一USB接口模块是否与主机连接,是则执行步骤S3,否则执行步骤S2;步骤S2:控制所述电源管理模块供电维持开机,执行步骤S3;步骤S3:初始化所述蓝牙模块;步骤S4:判断是否通过所述第二USB接口模块与USBKEY进行通信,是则执行步骤S5,否则执行步骤S7;步骤S5:判断是否收到握手信号,是则与所述USBKEY进行握手操作,待握手操作完成后执行步骤S4,否则执行步骤S6;步骤S6:判断是否置有握手标志,是则与所述USBKEY进行通信操作,待通信操作完成后执行步骤S4,否则直接返回步骤S4;步骤S7:判断是否置有握手标志,是则执行步骤S8,否则返回步骤S4;步骤S8:读取各个检测IO的电平,判断是否与其各自对应标志的状态匹配,若USB检测IO的电平与USB已插入标志的状态不匹配,则检测第一USB接口模块与主机的连接状态并更新USB已插入标志后返回步骤S4;若充电检测IO的电平与充电完成标志的状态不匹配,则检测所述电源管理模块的充电状态并更新充电完成标志后返回步骤S4;若蓝牙连接检测IO的电平与蓝牙连接标志的状态不匹配,则检测所述蓝牙模块的蓝牙连接状态并更新蓝牙连接标志后返回步骤S4,若蓝牙发送准备检测IO的电平与蓝牙发送准备标志的状态不匹配,则检测所述蓝牙模块的蓝牙发送准备状态并更新蓝牙发送准备标志后返回步骤S4;若按键检测IO的电平与允许处理按键标志的状态不匹配,则检测所述电源管理模块的按键状态并更新允许处理按键标志后返回步骤S4;若均匹配则执行步骤S9;步骤S9:判断是否置有需要电量检测标志,是则检测所述电源管理模块的电量状态并更新当前电量状态后返回步骤S4,否则直接返回步骤S4。本发明达到的技术效果是:通过本发明提供的蓝牙转接装置及其工作方法,可以实现对现有的USBKEY外部接口的扩展,无需对现有的USBKEY设备做出在其内部增加蓝牙模块的改进,结合本发明提供的方案就可以实现USBKEY与移动设备通过蓝牙连接方式进行通信。附图说明图1是本发明实施例1提供的蓝牙转接装置的结构示意图;图2是本发明实施例1提供的蓝牙转接装置的部分组成模块连接示意图;图3是本发明实施例2提供的蓝牙转接装置的工作方法流程图;图4是图3所示进入握手流程的流程图;图5是图3所示进入通信流程的流程图;图6是图3所示进入USB检测流程的流程图;图7是图3所示进入充电检测流程的流程图;图8是图3所示进入蓝牙连接检测流程的流程图;图9是图3所示进入蓝牙发送准备检测流程的流程图;图10是图3所示进入按键检测流程的流程图;图11是图3所示进入电量检测流程的流程图;图12是本发明实施例2提供的蓝牙转接装置进入定时器中断处理的流程图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1本实施例提供了一种蓝牙转接装置,如图1所示,该装置包括:主控芯片100、电源管理模块200、蓝牙模块300、第一USB接口模块400和第二USB接口模块500,在实际应用中,该装置可以通过第一USB接口模块400与主机连接,可以通过第二USB接口模块500与USBKEY连接,可以通过蓝牙模块300与移动设备蓝牙连接。进一步的,当与主机连接时主要用于通过主机为装置供电,当与USBKEY和移动设备连接时主要用于通过装置实现USBKEY与移动设备进行蓝牙数据通信。其中,电源管理模块200通过主控芯片100的VCC引脚、AN0引脚、PA1引脚、PA4引脚和PB7引脚与主控芯片100连接,蓝牙模块300通过主控芯片100的PA6引脚、PA7引脚、PB4引脚、PB5引脚和PB6引脚与主控芯片100连接,第一USB接口模块400通过主控芯片100的PA3引脚与主控芯片连接,第二接口模块500通过主控芯片100的PA5引脚与主控芯片100连接,另外,第一USB接口模块400与第二USB接口模块500相连,第二USB接口模块500与蓝牙模块300相连,电源管理模块200与第一USB接口模块400相连,电源管理模块200还与蓝牙模块300、第二USB接口模块400连接。上述各个组成部分的主要功能如下:主控芯片100,用于检测所述电源管理模块200的充电状态、电量状态和按键状态;用于检测所述蓝牙模块300的蓝牙连接状态和蓝牙发送准备状态;用于检测所述第一USB接口模块400与主机的连接状态,用于通过所述第二USB接口模块500与USBKEY进行通信。上述用于检测所述电源管理模块200的充电状态的具体实现方式为:根据充电检测IO即PA4引脚的电平的变化执行充电检测流程,具体的当PA4引脚为高电平时表示充电已完成状态;上述用于检测所述电源管理模块200的电量状态的具体实现方式为:通过AN0引脚采集电源管理模块200的电量,并通过执行电量检测流程获取当前的电量状态;上述用于检测所述电源管理模块200的按键状态的具体实现方式为:根据按键检测IO即PA1引脚的电平的变化执行按键检测流程;具体的所述PA1引脚与电源管理模块200中包含的按键相连,当检测到PA1引脚高电平持续时间达到2秒时为长按键关机;上述用于检测所述蓝牙模块300的蓝牙连接状态和蓝牙发送准备状态的具体实现方式为:根据蓝牙连接检测IO即PA6引脚的电平的变化执行蓝牙连接检测流程以及根据蓝牙发送准备检测IO即PA7引脚的电平的变化执行蓝牙发送准备检测流程;用于通过控制PB4引脚和PB6引脚的电平的变化控制蓝牙模块300进入设置模式或链接模式;用于通过控制PB5引脚的电平的变化控制蓝牙模块300准备接收数据或结束接收数据。上述用于检测所述第一USB接口模块400与主机的连接状态的具体实现方式为:根据USB检测IO即PA3引脚的电平的变化执行USB检测流程,具体的当检测到PA3引脚为高电平时则装置的第一USB接口模块400与主机连接;上述用于通过所述第二USB接口模块500与USBKEY进行通信的具体实现方式为:根据USB通信检测IO即PA5引脚的电平的变化执行通过第二USB接口模块500与USBKEY的通信流程和握手流程;电源管理模块200,用于为装置供电,具体的当装置为USB插入开机时,所述电源管理模块200用于从第一USB接口模块400获取电能为装置供电,所述电源管理模块200还包含有按键和电池,当装置为按键开机时,所述电源管理模块200受主控芯片100控制用电池为装置供电,即主控芯片100还用于通过控制PB7引脚的电平的变化控制使用电源管理模块200中包含的电池为装置供电;进一步的,当所述装置为USB插入开机时,所述电源管理模块200可以用从第一USB接口模块400获取的电能给电池进行充电。优选的,所述电源管理模块200可以为所述装置提供3.6V—4.2V的电压。蓝牙模块300,用于为USBKEY与移动设备进行蓝牙通信时提供蓝牙通信接口;第一USB接口模块400,用于为装置提供一个与主机连接的USB接口,用于在装置通过第一USB接口模块400与主机连接时将从主机获取的电能传递给电源管理模块200;用于实现装置的第二USB接口模块500与主机之间的连通;第二USB接口模块500,用于实现装置的主控芯片100与USBKEY之间的通信,用于实现装置的蓝牙模块300与USBKEY之间的通信;本实施例中,所述第一USB接口模块400主要采用标准5PIN的USB接口,第二USB接口模块500主要采用7PIN的USB扩展接口,具体如图2所示,所述7PIN的USB扩展接口的VCC引脚、GND引脚、D+引脚、D-引脚为扩展接口所兼容的标准USB接口的4个通用引脚,IO1、IO2和IO3引脚为扩展引脚。如图2所示,5PIN的USB接口通过VCC引脚经过电阻R1和R2接地,主控芯片100的PA3引脚连接在电阻R1与R2之间,该VCC引脚还与电源管理模块200连接,5PIN的USB接口与7PIN的USB扩展接口之间通过D+和D-引脚连接,7PIN的USB扩展接口的IO1引脚和IO2引脚与蓝牙模块300连接,IO3引脚与主控芯片100的PA5引脚连接。实施例2本实施例提供了一种蓝牙转接装置的工作方法,该方法基于实施例1提供的装置实现,所述方法主要通过所述装置的主控芯片实现,所述主控芯片初始化后,执行以下操作:步骤S1:判断所述第一USB接口模块是否与主机连接,是则执行步骤S3,否则执行步骤S2;步骤S2:控制所述电源管理模块供电维持开机;步骤S3:初始化所述蓝牙模块;步骤S4:判断是否通过所述第二USB接口模块与USBKEY进行通信,是则执行步骤S5,否则执行步骤S7;步骤S5:判断是否收到握手信号,是则与所述USBKEY进行握手,待握手操作完成后执行步骤S4,否则执行步骤S6;步骤S6:判断是否置有握手标志,是则与所述USBKEY进行通信,待通信操作完成后执行步骤S4,否则直接返回步骤S4;步骤S7:判断是否置有握手标志,是则执行步骤S8,否则返回步骤S4;步骤S8:读取各个检测IO的电平,判断是否与其各自对应标志的状态匹配,若USB检测IO的电平与USB已插入标志的状态不匹配,则检测第一USB接口模块与主机的连接状态并更新USB已插入标志后返回步骤S4;若充电检测IO的电平与充电完成标志的状态不匹配,则检测所述电源管理模块的充电状态并更新充电完成标志后返回步骤S4;若蓝牙连接检测IO的电平与蓝牙连接标志的状态不匹配,则检测所述蓝牙模块的蓝牙连接状态并更新蓝牙连接标志后返回步骤S4,若蓝牙发送准备检测IO的电平与蓝牙发送准备标志的状态不匹配,则检测所述蓝牙模块的蓝牙发送准备状态并更新蓝牙发送准备标志后返回步骤S4;若按键检测IO的电平与允许处理按键标志的状态不匹配,则检测所述电源管理模块的按键状态并更新允许处理按键标志后返回步骤S4;若均匹配则执行步骤S9;步骤S9:判断是否置有需要电量检测标志,是则检测所述电源管理模块的电量状态并更新当前电量状态后返回步骤S4,否则直接返回步骤S4。本实施例提供的上述方法主要由主控芯片(MCU)对各个模块的控制实现,具体实现方式如图3所示,该方法的流程如下:步骤1:MCU初始化;具体的包括,MCU初始化各个IO引脚的属性为输入或输出,初始化定时器中断触发时间间隔为8ms。本实施例中所述MCU即是实施例1中所述主控芯片,所述初始化主要包括初始化MCU的AN0引脚、PA1引脚、PA3引脚、PA4引脚、PA6引脚和PA7引脚的属性为输入,初始化MCU的PB4引脚、PB5引脚、PB6引脚和PB7引脚的属性为输出。进一步的,当定时器中断被触发时,进入如图12所示定时器中断处理流程,具体包括:步骤901:将通信空闲计时加1;步骤902:判断通信空闲计时是否大于第二预设时长,是则执行步骤903,否则执行步骤904;优选的,第二预设时长为16ms。步骤903:置需要电量检测标志,清通信空闲计时,执行步骤904;本步骤可以具体为置需要电量检测标志=1,将通信空闲计时清零。步骤904:判断是否有接收关机指令超时标志,是则执行步骤905,否则执行步骤907;步骤905:将关机计时加1;步骤906:判断关机计时是否大于第三预设时长,是则关机,否则执行步骤907;优选的,第三预设时长为2s。步骤907:将系统空闲计时加1;步骤908:判断系统计时是否大于第四预设时长,是则关机,否则结束。优选的,第四预设时长为3分钟。本实施例中涉及的上述通信空闲计时、系统空闲计时、关机计时在装置开机时的默认值均为0,在进入定时器中断触发流程中会有更新。步骤2:读取USB检测IO的电平;本实施例中具体的,读取MCU的USB检测IO即PA3引脚的电平。步骤3:判断是否为USB插入开机,是则执行步骤5,否则执行步骤4;本实施例中具体的,判断PA3引脚的电平是否为高电平,是则为USB插入开机,执行步骤5,否则不是USB插入开机,执行步骤4;所述USB插入开机是通过装置的第一USB接口模块与主机连接实现的开机方式。步骤4:MCU控制电源管理模块用电池供电维持开机;本实施例中具体的,通过控制MCU的PB7引脚输出高电平控制电源管理模块的电池为装置供电维持开机。步骤5:初始化蓝牙模块;步骤6:检测USB通信IO的电平是否为低,是则执行步骤7,否则执行步骤9;本实施例中具体的,检测MCU的PA5引脚的电平是否是低电平,是则执行步骤7,否则执行步骤9;步骤7:判断低电平时间是否超过第一预设时长,是则进入如图4所示握手流程,待流程结束后返回执行步骤6,否则执行步骤8;本实施例中优选的,第一预设时长为6ms。所述握手流程如图4所示,具体包括:步骤101:读取USB通信IO的电平;具体的,读取MCU的PA5引脚的电平。步骤102:判断读取的电平是否为高,是则执行步骤103,否则返回执行步骤101;步骤103:清所有已置标志;具体的,将所有已置位的标志复位。步骤104:向USBKEY发送握手字节;具体的,通过控制PA5引脚的电平变化形成握手字节,通过第二USB接口模块向USBKEY发送所述握手字节。MCU与USBKEY之间的通信数据包括握手字节采用单字节数据。例如,所述握手字节为0xA0。步骤105:判断握手字节是否发送成功,是则执行步骤106,否则执行步骤107;具体的,判断MCU的PA5引脚的电平是否为低,是则表示发送失败执行步骤107,否则发送成功执行步骤106。步骤106:置握手标志,结束。本步骤可以具体为设置握手标志=1。步骤107:清握手标志,结束。所述清握手标志是指将握手标志复位,具体为设置握手标志=0。步骤8:判断是否置有握手标志,是则进入如图5所示通信流程,待通信流程结束后返回执行步骤6,否则直接返回步骤6;本步骤所述判断是否置有握手标志可以具体为判断握手标志是否等于1。本步骤具体的,所述通信流程如图5所示,具体包括:步骤201:读取USB通信IO的电平,判断读取的电平是否为低,是则执行步骤202,否则结束;具体的,读取MCU的PA5引脚的电平并判断是否为低,是则执行步骤202,否则结束。步骤202:接收通信数据并校验,判断成功与否,是则执行步骤203,否则结束;本实施例中,蓝牙转接装置与USBKEY之间的通信数据由字符组成,每一个字符包含1个起始位和9个数据位,其中用一个电平跳变表示起始位的到达,9个数据位中的前八位即一个字节为通信数据字节,最后一位为校验位。步骤203:清通信空闲计时,清系统空闲计时;具体的,将通信空闲计时清零,将系统空闲计时清零。步骤204:判断通信数据类型,若是蓝牙通信指令则执行步骤205,若是蓝牙通信结束指令则执行步骤206,若是设置模式指令则执行步骤207,若是链接模式指令则执行步骤208,若是获取版本指令则执行步骤210,若是关机指令则关机,若是其他则执行步骤211;例如,若收到的通信数据的数据字节为0x0A则是蓝牙通信指令,若收到的通信数据的数据字节为0x5A则是蓝牙通信结束指令,若收到的通信数据的数据字节为0x1A则是设置模式指令,若收到的通信数据的数据字节为0x2A则是链接模式指令,若收到的通信数据的数据字节为0x4A则是获取版本指令,若收到的通信数据的数据字节为0x3A则是关机指令。步骤205:控制蓝牙模块准备接收数据,然后执行步骤209;具体的,通过控制MCU的PB5引脚输出低电平控制蓝牙模块准备接收数据。步骤206:控制蓝牙模块结束数据接收,然后执行步骤209;具体的,通过控制MCU的PB5引脚输出高电平控制蓝牙模块结束数据接收。步骤207:控制蓝牙模块进入设置模式,然后执行步骤209;具体的,通过控制MCU的PB6引脚输出低电平、PB4引脚输出高低高的电平变化控制蓝牙模块进入设置模式。步骤208:控制蓝牙模块进入链接模式,然后执行步骤209;具体的,通过控制MCU的PB6引脚输出高电平、PB4引脚输出高低高的电平变化控制蓝牙模块进入链接模式。步骤209:向USBKEY返回成功应答,结束。步骤210:向USBKEY返回转接器版本信息,结束。步骤211:向USBKEY返回数据无效指令,结束。本实施例中提及的向USBKEY返回的信息均是通过控制PA5引脚的电平变化通过第二USB接口模块发送给USBKEY的。步骤9:判断是否置有握手标志,是则执行步骤10,否则返回步骤6;具体为判断握手标志是否等于1,是则执行步骤10,否则返回步骤6。步骤10:读取各个检测IO的电平,判断是否与其各自对应标志的状态匹配,若USB检测IO的电平与USB已插入标志的状态不匹配,则进入如图6所示USB检测流程,待流程结束后返回步骤6;若充电检测IO的电平与充电完成标志的状态不匹配,则进入如图7所示充电检测流程,待流程结束后返回步骤6;若蓝牙连接检测IO的电平与蓝牙连接标志的状态不匹配,则进入如图8所示蓝牙连接检测流程,待流程结束后返回步骤6,若蓝牙发送准备检测IO的电平与蓝牙发送准备标志的状态不匹配,则进入如图9所示蓝牙发送准备检测流程,待流程结束后返回步骤6;若按键检测IO的电平与允许处理按键标志的状态不匹配,则进入如图10所示按键检测流程,待流程结束后返回步骤6;若均匹配则执行步骤11;本步骤具体的,USB检测IO为高电平与置USB已插入标志匹配,USB检测IO为低电平与清USB已插入标志匹配;充电检测IO为高电平与置充电完成标志匹配,充电检测IO为低电平与清充电完成标志匹配;蓝牙连接检测IO为低电平与置蓝牙连接标志匹配,蓝牙连接检测IO为高电平与清蓝牙连接标志匹配;蓝牙发送准备检测IO为高电平与置蓝牙发送准备标志匹配,蓝牙发送准备检测IO为低电平与清蓝牙发送准备标志匹配;按键检测IO为低电平与置允许处理按键标志匹配,按键检测IO为高电平与清允许处理按键标志匹配。本实施例中优选的,当判断出现多个检测IO与其对应的标志的状态不匹配时,按照预设优先级顺序进入相应流程进行处理,例如,各个流程的优先级从高到低依次为:USB检测流程、充电检测流程、蓝牙连接检测流程、蓝牙发送准备检测流程、按键检测流程。本步骤具体的,所述USB检测流程如图6所示,具体包括:步骤301:判断USB检测IO的电平是否为高,是则执行步骤302,否则执行步骤308;具体的,判断PA3引脚电平是否为高,是则执行步骤302,否则执行步骤308。步骤302:清通信空闲计时,清系统空闲计时;具体为:将通信空闲计时清零,将系统空闲计时清零。步骤303:判断是否置有USB已插入标志,是则结束,否则执行步骤304;具体的判断USB已插入标志是否为1,是则结束,否则执行步骤304。步骤304:置USB已插入标志;本步骤可以具体为将所述USB已插入标志置位,例如,置USB已插入标志=1。步骤305:判断蓝牙是否已连接,是则执行步骤307,否则执行步骤306;具体的,判断蓝牙连接标志是否置位,是则蓝牙已连接执行步骤307,否则蓝牙未连接执行步骤306。步骤306:控制电源管理模块的电池停止向装置供电,然后执行步骤307;具体的,通过控制MCU的PB7引脚输出低电平控制电源管理模块的电池停止供电。步骤307:向USBKEY发送USB已插入信息,结束。步骤308:判断是否置有USB已插入标志,是则执行步骤309,否则结束;具体的判断USB已插入标志是否为1,是则执行步骤309,否则结束。步骤309:清USB已插入标志;本步骤可以具体为将所述USB已插入标志复位,例如,置USB已插入标志=0。步骤310:向USBKEY发送USB已拔出信息;步骤311:置需要电量检测标志,清电量状态,结束。本步骤可以具体为将所述需要电量检测标志置位,例如,置需要电量检测标志=1,所述初始化电量状态具体为将电量状态初始化为默认值。所述清电量状态具体为将当前的电量状态值清为0。所述充电检测流程如图7所示,具体包括:步骤401:判断USB是否已插入,是则执行步骤402,否则结束;具体的,判断USB已插入标志是否置位,是则执行步骤402,否则结束。步骤402:判断充电检测IO的电平是否为高,是则执行步骤403,否则执行步骤404;具体的,判断MCU的充电检测IO即PA4引脚的电平是否为高,是则执行步骤403,否则执行步骤404。步骤403:判断是否置有充电完成标志,是则结束,否则执行步骤405;具体为判断充电完成标志是否为1,是则结束,否则执行步骤405。步骤404:清充电完成标志,结束。本步骤可以具体为将所述充电完成标志复位,例如,置充电完成标志=0。步骤405:置充电完成标志,向USBKEY发送充电完成信息,结束。本步骤可以具体为为将所述充电完成标志置位,例如,置充电完成标志=1。所述蓝牙连接检测流程如图8所示,具体包括:步骤501:判断蓝牙连接检测IO的电平是否为高,是则执行步骤502,否则执行步骤504;具体的,判断MCU的蓝牙连接检测IO引脚即PA6引脚的电平是否为高,是则执行步骤502,否则执行步骤504。步骤502:判断是否置有蓝牙连接标志,是则执行步骤503,否则结束;具体为判断蓝牙连接标志是否为1,是则执行步骤503,否则结束。步骤503:清蓝牙连接标志,向USBKEY发送蓝牙断开连接信息,结束。本步骤可以具体为将所述蓝牙连接标志复位,例如,置蓝牙连接标志=0。步骤504:判断是否置有蓝牙连接标志,是则结束,否则执行步骤505;步骤505:置蓝牙连接标志,向USBKEY发送蓝牙连接信息,结束。本步骤可以具体为将所述蓝牙连接标志置位,例如,置蓝牙连接标志=1。所述蓝牙发送准备检测流程如图9所示,具体包括:步骤601:判断蓝牙是否已连接,是则执行步骤602,否则结束;具体的,判断蓝牙连接标志是为1,是则蓝牙已连接执行步骤602,否则蓝牙未连接,结束。步骤602:判断蓝牙发送准备检测IO的电平是否为高,是则执行步骤603,否则执行步骤604;具体的,判断MCU的蓝牙准备发送检测IO引脚即PA7引脚的电平是否为高,是则执行步骤603,否则执行步骤604。步骤603:判断是否置有蓝牙发送准备标志,是则结束,否则执行步骤605;具体为判断蓝牙发送准备标志是否为1,是则结束,否则执行步骤605。步骤604:清蓝牙发送准备标志,结束。本步骤可以具体为将所述蓝牙发送准备标志复位,例如,置蓝牙发送准备标志=0。步骤605:置蓝牙发送准备标志,准备好要发送的蓝牙数据,清通信空闲计时,结束。本步骤可以具体为将所述蓝牙发送准备标志置位,例如,置蓝牙发送准备标志=1。所述按键检测流程如图10所示,具体包括:步骤701:判断USB是否已插入,是则结束,否则执行步骤702;具体的,判断USB已插入标志是否置位,是则结束,否则执行步骤702。步骤702:判断是否有按键,是则执行步骤703,否则执行步骤704;具体的,判断按键检测IO引脚即引脚PA1的电平是否为高电平,是则有按键执行步骤703,否则执行步骤704。步骤703:判断是否是长按键,是则执行步骤705,否则结束;具体的,判断PA1引脚高电平持续时间是否达到2秒,是则为长按键执行步骤705,否则结束。步骤704:置允许处理按键标志,结束;本步骤可以具体为将所述允许处理按键标志置位,例如,置允许处理按键标志=1。步骤705:判断是否置有允许处理按键标志,是则执行步骤706,否则结束;步骤706:清允许处理按键标志,向USBKEY发送关机申请;本步骤可以具体为将所述允许处理按键标志复位,例如,置允许处理按键标志=0。步骤707:判断关机申请是否发送成功,是则结束,否则执行步骤708;步骤708:置接收关机指令超时标志,结束。本步骤可以具体为将所述关机指令超时标志置位,例如,置关机指令超时标志=1。步骤11:判断是否置有需要电量检测标志,是则进入如图11所示电量检测流程,待流程结束后返回步骤6,否则直接返回步骤6。本步骤具体的,所述电量检测流程如图11所示,具体包括:步骤801:判断是否置有USB已插入标志,是则结束,否则执行步骤802;步骤802:配置ADC,设置采集次数,启动ADC;本实施例中,模数转换模块(ADC)为MCU的一个集成功能模块,用于采集模拟信号,并对其进行转换,得到转换值即数字信号。优选的,设置采集次数cnt0=8。本步骤还包括:选通MCU的AN0引脚用于采集信号。步骤803:采集模拟信号,并进行模数转换;具体的,通过MCU的AN0引脚采集模拟信号。步骤804:判断是否转换完成,是则执行步骤805,否则继续执行步骤804;步骤805:保存转换值,更新采集次数;本实施例中优选的,更新采集次数cnt0=cnt0-1。步骤806:判断采集次数是否达到预设值,是则执行步骤807,否则返回执行步骤803;本实施例中优选的,所述预设值取值为0。步骤807:根据转换值计算出采集平均值Vol;本实施例中优选的,Vol=4096/转换值*1.25。步骤808:判断Vol是否小于100%电量阈值,是则执行步骤812,否则执行步骤809;优选的,100%电量阈值=255。优选的,当电源管理模块的电池为装置供电电压为4.2V时MCU通过AN0采集到模拟信号并转换和计算出的Vol为255。步骤809:判断当前电量状态volstate是否为100%,是则结束,否则执行步骤810;具体的,判断当前电量状态值是否为4,是则结束,否则执行步骤810。步骤810:向USBKEY发送电量100%信息;步骤811:设置当前电量状态volstate为100%,结束。具体的,置当前电量状态值=4。步骤812:判断Vol是否小于75%电量阈值,是则执行步骤816,否则执行步骤813;步骤813:判断当前电量状态volstate是否为75%,是则结束,否则执行步骤814;具体的,判断当前电量状态值是否为3,是则结束,否则执行步骤814。步骤814:向USBKEY发送电量75%信息;步骤815:设置当前电量状态volstate为75%,结束。具体的,置当前电量状态值=3。步骤816:判断Vol是否小于50%电量阈值,是则执行步骤820,否则执行步骤817;步骤817:判断当前电量状态volstate是否为50%,是则结束,否则执行步骤818;步骤818:向USBKEY发送电量50%信息;步骤819:设置当前电量状态volstate为50%,结束。具体的,置当前电量状态值=2。步骤820:判断Vol是否小于25%电量阈值,是则执行步骤824,否则执行步骤821;步骤821:判断当前电量状态volstate是否为25%,是则结束,否则执行步骤822;步骤822:向USBKEY发送电量25%信息;步骤823:设置当前电量状态volstate为25%,结束。具体的,置当前电量状态值=1。步骤824:电量过低,关机。上述步骤807-步骤824还可以用以下步骤替换:步骤807':根据转换值计算出采集平均值Vol;步骤808':判断Vol是否小于原始采样值,是则执行步骤809',否则设置当前电量状态为100%并向USBKEY发送电量100%信息,结束;具体的,所述原始采样值在MCU初始化时被初始化为电量阈值,优选的所述电量阈值等于255。步骤809':用Vol更新所述原始采样值;步骤810':将Vol与预设电量阈值范围进行比较,若Vol位于第一预设范围内,则设置当前电量状态为75%并向USBKEY发送电量75%信息,结束;若Vol位于第二预设范围内,则设置当前电量状态为50%并向USBKEY发送电量50%信息,结束;若Vol位于第三预设范围内,则设置当前电量状态为25%并向USBKEY发送电量25%信息,结束;若Vol位于第四预设范围内,则关机。本实施例中具体的,所述第一预设范围为75%电量阈值≤Vol<100%电量阈值,所述第二预设范围为50%电量阈值≤Vol<75%电量阈值,所述第三预设范围为25%电量阈值≤Vol<50%电量阈值,所述第四预设范围为0≤Vol<25%电量阈值,优选所述电量阈值等于255。进一步的,与上述电量检测流程替换方法相对应的,在USB检测流程中,所述步骤311替换为:置需要电量检测标志,清电量状态,初始化原始采样值为电量阈值。具体为:置需要电量检测标志=1,清电量状态的值为0,初始化原始采样值=255。以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1