本發(fā)明涉及電子技術領域,尤其涉及一種低功耗建立藍牙連接的方法及藍牙安全設備。
背景技術:
隨著移動支付技術的快速發(fā)展,在移動支付的技術含量以及移動支付安全設備便攜性方面的要求越來越高?,F有技術中,為提高便攜性,移動支付安全設備的體積越做越小,但是體積小隨之帶來的就是電池容量不夠的問題,目前藍牙安全設備是常用的一種移動支付安全設備。現有技術中,在藍牙安全設備與上位機建立藍牙連接過程中,藍牙安全設備一直處于工作模式,藍牙安全設備的時鐘一直處于高速運行模式,導致藍牙安全設備的待機時長過短,用戶體驗不佳。
技術實現要素:
本發(fā)明為解決上述現有技術中存在的技術問題提供一種低功耗建立藍牙連接的方法及藍牙安全設備。
一方面,本發(fā)明提供的一種低功耗建立藍牙連接的方法適用于包括安全模塊和藍牙模塊的藍牙安全設備,方法具體包括安全模塊執(zhí)行的步驟和藍牙模塊執(zhí)行的步驟。
藍牙安全設備的藍牙模塊執(zhí)行的步驟包括:
步驟H1:所述藍牙模塊等待接收開機事件;
步驟H2:所述藍牙模塊接收到開機事件時,設置自身的狀態(tài)為工作模式;
步驟H3:所述藍牙模塊判斷是否在第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件,是則執(zhí)行步驟H4;否則執(zhí)行步驟H7;
步驟H4:所述藍牙模塊組織連接指令,喚醒安全模塊;
步驟H5:所述藍牙模塊在第四預設時間之后將所述連接指令發(fā)送給所述安全模塊;
步驟H6:所述藍牙模塊等待接收連接指令的應答,當在第五預設時間之內接收到來自所述安全模塊的連接指令的應答時,向所述上位機返回成功狀態(tài),設置自身的狀態(tài)為低功耗待機模式,成功建立藍牙連接;
步驟H7:所述藍牙模塊設置關機模式,返回步驟H1;
藍牙安全設備的安全模塊執(zhí)行的步驟包括:
步驟S1:所述安全模塊等待被所述藍牙模塊喚醒,當被所述藍牙模塊喚醒時,設置自身的狀態(tài)為工作模式;
步驟S2:所述安全模塊等待接收來自所述藍牙模塊的連接指令,當在第七預設時間內接收到所述連接指令時,組織連接指令的應答,并將所述連接指令的應答返回所述藍牙模塊,設置自身的狀態(tài)為低功耗待機模式。
可選地,本發(fā)明上述方法還包括:在所述步驟H6中,所述藍牙模塊在第五預設時間之內沒有接收到來自所述安全模塊的連接指令的應答時,向所述上位機返回失敗狀態(tài),設置自身狀態(tài)為低功耗待機模式,執(zhí)行步驟H8;
步驟H8:所述藍牙模塊如果在第十預設時間內被上位機喚醒,則設置自身狀態(tài)為工作模式,返回步驟H3;如果在第十預設時間內沒有被上位機喚醒時,執(zhí)行所述步驟H7。
具體地,所述步驟H6具體包括:
步驟H61:所述藍牙模塊判斷是否接收到連接指令的應答,是則向所述上位機返回成功狀態(tài),設置自身的狀態(tài)為低功耗待機模式;否則執(zhí)行步驟H62;
步驟H62:所述藍牙模塊判斷從第一次向所述安全模塊發(fā)送所述連接指令到當前時間是否超過所述第五預設時間,是則向所述上位機返回失敗狀態(tài),設置自身的狀態(tài)為低功耗待機模式,執(zhí)行步驟H8;否則執(zhí)行步驟H63;
步驟H63:所述藍牙模塊重新向所述安全模塊發(fā)送所述連接指令,返回步驟H61。
可選地,本發(fā)明上述方法的步驟H4中,所述藍牙模塊喚醒所述安全模塊,具體為:所述藍牙模塊拉高與所述安全模塊連接的第二控制管腳的電平。
可選地,本發(fā)明上述方法的步驟H2中,所述藍牙模塊設置自身的狀態(tài)為工作模式,具體為:所述藍牙模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化;相應地,所述步驟H7中,所述藍牙模塊設置關機模式,具體為:所述藍牙模塊執(zhí)行關機操作;所述步驟S1中,所述安全模塊設置自身的狀態(tài)為工作模式,具體為:所述安全模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化。
可選地,上述方法的步驟H2中,所述藍牙模塊設置自身的狀態(tài)為工作模式,具體為:所述藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;相應地,所述步驟H7中,所述藍牙模塊設置關機模式,具體為:所述藍牙模塊設置自身的狀態(tài)為深度睡眠模式;所述步驟S1中,所述安全模塊設置自身的狀態(tài)為工作模式,具體為:所述安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;所述步驟S2中,還包括:所述安全模塊在第七預設時間內沒有接收到所述連接指令時,設置自身的狀態(tài)為深度睡眠模式。
可選地,本發(fā)明上述方法的步驟H2中,所述藍牙模塊設置自身的狀態(tài)為工作模式,具體為:所述藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;相應地,所述步驟H7中,所述藍牙模塊設置關機模式,具體為:所述藍牙模塊喚醒所述安全模塊,向所述安全模塊發(fā)送關機指令,接收到來自所述安全模塊的關機指令應答時,設置自身的狀態(tài)為深度睡眠模式;所述步驟S1中,所述安全模塊設置自身的狀態(tài)為工作模式,具體為:所述安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;所述步驟S2中,還包括:所述安全模塊在第七預設時間內沒有接收到所述連接指令時,設置自身的狀態(tài)為低功耗待機模式;所述步驟S2之后,還包括:所述安全模塊被所述藍牙模塊喚醒,接收到所述藍牙模塊的關機指令時,向所述藍牙模塊返回所述關機指令應答,設置自身的狀態(tài)為深度睡眠模式。
可選地,本發(fā)明上述方法中,所述步驟H3具體包括:
步驟H31:所述藍牙模塊判斷是否監(jiān)聽到來自所述上位機的藍牙連接事件,是則執(zhí)行步驟H4,否則執(zhí)行步驟H32;
步驟H32:所述藍牙模塊判斷從接收到開機事件到當前時間是否超過所述第三預設時間,是則執(zhí)行步驟H7,否則執(zhí)行步驟H33;
步驟H33:所述藍牙模塊設置自身的狀態(tài)為低功耗待機模式,被上位機喚醒時,設置自身的狀態(tài)為工作模式,返回步驟H31。
可選地,本發(fā)明上述方法中,所述步驟H2之后、所述步驟H3之前,還包括:
步驟H01:所述藍牙模塊喚醒所述安全模塊,判斷在第一預設時間內是否收到所述安全模塊被喚醒的通知,是則執(zhí)行步驟H02;否則執(zhí)行所述步驟H7;
步驟H02:所述藍牙模塊向所述安全模塊發(fā)送預設的通信確認數據;
步驟H03:所述藍牙模塊判斷在第二預設時間之內是否收到所述安全模塊確認通信的通知,是則執(zhí)行所述步驟H3;否則執(zhí)行所述步驟H7;
相應地,所述步驟S1之前,還包括:
步驟S01:所述安全模塊被所述藍牙模塊喚醒時,通知所述藍牙模塊自身被喚醒,設置自身的狀態(tài)為工作模式;
步驟S02:所述安全模塊等待接收通信確認數據,在設置自身的狀態(tài)為工作模式之后的第六預設時間內接收到所述預設的通信確認數據時,通知所述藍牙模塊確認通信,設置自身的狀態(tài)為低功耗待機模式,執(zhí)行所述步驟S1。
具體地,所述步驟H3具體包括:
步驟H31:所述藍牙模塊判斷是否監(jiān)聽到來自所述上位機的藍牙連接事件,是則執(zhí)行步驟H4,否則執(zhí)行步驟H32;
步驟H32:所述藍牙模塊判斷從判斷收到所述安全模塊確認通信的通知到當前時間是否超過所述第三預設時間,是則執(zhí)行步驟H7,否則執(zhí)行步驟H33;
步驟H33:所述藍牙模塊設置自身的狀態(tài)為低功耗待機模式,被上位機喚醒時,設置自身的狀態(tài)為工作模式,返回步驟H31。
所述步驟H3具體包括:
步驟H31:所述藍牙模塊判斷是否監(jiān)聽到來自所述上位機的藍牙連接事件,是則執(zhí)行步驟H4,否則執(zhí)行步驟H32;
步驟H32:所述藍牙模塊判斷從判斷收到所述安全模塊確認通信的通知到當前時間是否超過所述第三預設時間,是則執(zhí)行步驟H7,否則執(zhí)行步驟H33;
步驟H33:所述藍牙模塊設置自身的狀態(tài)為低功耗待機模式,被上位機喚醒時,設置自身的狀態(tài)為工作模式,返回步驟H31。
具體地,所述步驟H2中,所述藍牙模塊設置自身的狀態(tài)為工作模式,具體為:所述藍牙模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化;相應地,所述步驟H7中,所述藍牙模塊設置關機模式,具體為:所述藍牙模塊執(zhí)行關機操作;所述步驟S01中,所述安全模塊設置自身的狀態(tài)為工作模式,具體為:所述安全模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化。
或者,具體地,所述步驟H2中,所述藍牙模塊設置自身的狀態(tài)為工作模式,具體為:所述藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;相應地,所述步驟H7中,所述藍牙模塊設置關機模式,具體為:所述藍牙模塊設置自身的狀態(tài)為深度睡眠模式;所述步驟S01中,所述安全模塊設置自身狀態(tài)為工作模式,具體為:所述安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;所述步驟S02中,還包括:所述安全模塊在設置自身的狀態(tài)為工作模式之后的第六預設時間內沒有接收到所述預設的通信確認數據時,設置自身的狀態(tài)為深度睡眠模式。進一步地,所述步驟S2中還可以包括:所述安全模塊在第七預設時間內沒有接收到所述連接指令時,設置自身的狀態(tài)為深度睡眠模式。
具體地,所述步驟H01中,所述藍牙模塊喚醒所述安全模塊,具體為:所述藍牙模塊拉高與所述安全模塊連接的第二控制管腳的電平;相應地,所述步驟H4中,所述藍牙模塊喚醒所述安全模塊,具體為:所述藍牙模塊拉低與所述安全模塊連接的第一控制管腳的電平。
具體地,所述步驟S1中,所述安全模塊設置自身的狀態(tài)為工作模式,具體為:所述安全模塊將自身時鐘設置為高速時鐘模式。
具體地,所述步驟H01中,所述藍牙模塊判斷在第一預設時間內是否收到所述安全模塊被喚醒的通知,具體為:所述藍牙模塊判斷在第一預設時間內與所述安全模塊連接的第一控制管腳的電平是否為低,是則執(zhí)行步驟H02;否則執(zhí)行所述步驟H7;相應地,所述步驟S01中,所述安全模塊通知所述藍牙模塊自身被喚醒,具體為:所述安全模塊拉低與所述藍牙模塊連接的第一控制管腳的電平。
具體地,所述步驟H03具體為:所述藍牙模塊判斷在第二預設時間之內與所述安全模塊連接的第一控制管腳的電平是否被拉高,是則執(zhí)行所述步驟H3;否則執(zhí)行所述步驟H7;相應地,所述步驟S02中,所述安全模塊通知所述藍牙模塊確認通信,具體為:所述安全模塊拉高與所述藍牙模塊連接的所述第一控制管腳的電平。
可選地,本發(fā)明上述方法的步驟H4中,所述藍牙模塊組織連接指令之前,還包括:所述藍牙模塊生成隨機數,并對所述隨機數進行保存;相應地,所述藍牙模塊組織連接指令,具體為:所述藍牙模塊根據所述隨機數組織所述連接指令;所述步驟H6中,所述藍牙模塊向所述上位機返回成功狀態(tài),設置自身狀態(tài)為低功耗待機模式之后、成功建立藍牙連接之前,還包括:所述藍牙模塊接收來自所述上位機的操作事件,設置自身的狀態(tài)為工作模式,當所述操作事件中包括隨機數,并且所述操作事件中的隨機數與自身保存的隨機數相同時,向所述上位機返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式,成功建立藍牙連接;所述步驟S2中所述安全模塊在第七預設時間內接收到所述連接指令時,還包括:所述安全模塊從所述連接指令中獲取所述隨機數,并顯示所述隨機數。
本發(fā)明上述方法中,所述安全模塊設置自身的狀態(tài)為深度睡眠模式,具體為:所述安全模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。
本發(fā)明上述方法中,所述藍牙模塊設置自身的狀態(tài)為深度睡眠模式,具體為:所述藍牙模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。
本發(fā)明上述方法中,所述安全模塊設置自身的狀態(tài)為低功耗待機模式,具體包括:
步驟a1:所述安全模塊將自身的時鐘設置為低速時鐘模式、關閉自身的無關模塊以及與自身連接的外圍設備;
步驟a2:所述安全模塊將自身的芯片設置為睡眠模式。
本發(fā)明上述方法中,所述藍牙模塊設置自身的狀態(tài)為低功耗待機模式,具體為:所述藍牙模塊關閉與自身連接的外圍設備和/或關閉自身的無關模塊。進一步地,所述藍牙模塊設置自身的狀態(tài)為低功耗待機模式時,還包括:所述藍牙模塊將自身的時鐘設置為低速時鐘模式,將自身的芯片設置為睡眠模式。
另一方面,本發(fā)明提供的一種藍牙安全設備,包括藍牙模塊和安全模塊,所述藍牙模塊包括:
第一等待接收模塊,用于等待接收開機事件;
第一設置模塊,用于當所述第一等待接收模塊接收到開機事件時,設置所述藍牙模塊的狀態(tài)為工作模式;
第一判斷模塊,用于判斷是否在所述第一設置模塊設置所述藍牙模塊的狀態(tài)為工作模式之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
第一組織模塊,用于當所述第一判斷模塊判斷結果為是時,組織連接指令;
第一喚醒模塊,用于所述第一判斷模塊判斷結果為是之后或者所述第一組織模塊組織所述連接指令之后,喚醒所述安全模塊;
第一發(fā)送模塊,用于所述第一喚醒模塊喚醒所述安全模塊的第四預設時間之后,將所述第一組織模塊組織的所述連接指令發(fā)送給所述安全模塊;
第二等待接收模塊,用于等待接收連接指令的應答;
所述第一發(fā)送模塊,還用于當所述第二等待接收模塊在所述第一喚醒模塊喚醒所述安全模塊的第五預設時間之內接收到來自所述安全模塊的連接指令的應答時,向所述上位機返回成功狀態(tài);
第二設置模塊,用于所述第一發(fā)送模塊向所述上位機返回成功狀態(tài)之后,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
關機設置模塊,用于當所述第一判斷模塊判斷結果為否時,設置關機模式;
所述第一等待接收模塊,還用于當所述關機設置模塊設置關機模式之后,等待接收開機事件;
所述安全模塊包括:
第一等待喚醒模塊,用于等待被所述藍牙模塊喚醒;
第三設置模塊,用于當所述第一等待喚醒模塊被所述藍牙模塊喚醒時,設置所述安全模塊的狀態(tài)為工作模式;
第三等待接收模塊,用于等待接收來自所述藍牙模塊的連接指令;
第二組織模塊,用于當所述第三等待接收模塊在所述第三設置模塊設置所述安全模塊的狀態(tài)為工作模式之后的第七預設時間內接收到所述連接指令時,組織連接指令的應答;
第二發(fā)送模塊,用于將所述第二組織模塊組織的所述連接指令的應答返回所述藍牙模塊;
第四設置模塊,用于所述第二發(fā)送模塊將所述連接指令的應答返回所述藍牙模塊之后,設置所述安全模塊的狀態(tài)為低功耗待機模式。
具體地,所述第一喚醒模塊,具體用于所述第一判斷模塊判斷結果為是之后或者所述第一組織模塊組織所述連接指令之后,拉高所述藍牙模塊與所述安全模塊連接的第二控制管腳的電平。
具體地,所述第一設置模塊,具體用于當所述第一等待接收模塊接收到開機事件時給所述藍牙模塊上電,將所述藍牙模塊的時鐘設置為高速時鐘模式,并對所述藍牙模塊的硬件設備進行初始化;相應地,所述關機設置模塊,具體用于當所述第一判斷模塊的判斷結果為否時,執(zhí)行關機操作;所述第三設置模塊,具體用于所述第一等待喚醒模塊被所述藍牙模塊喚醒時給所述安全模塊上電,將所述安全模塊的時鐘設置為高速時鐘模式,并對所述安全模塊的硬件設備進行初始化。
具體地,所述第一設置模塊,還可以具體用于當所述第一等待接收模塊接收到開機事件時,給所述藍牙模塊的芯片主核上電,將所述藍牙模塊的時鐘設置為高速時鐘模式;相應地,所述關機設置模塊,還可以具體用于當所述第一判斷模塊的判斷結果為否時,設置所述藍牙模塊的狀態(tài)為深度睡眠模式;所述第三設置模塊,還可以具體用于當所述第一等待喚醒模塊被所述藍牙模塊喚醒時,給所述安全模塊的芯片主核上電,將所述安全模塊的時鐘設置為高速時鐘模式;對應地,所述安全模塊在包括第一等待喚醒模塊、第三設置模塊、第三等待接收模塊、第二組織模塊、第二發(fā)送模塊和第四設置模塊的基礎上還包括:深度睡眠模式設置模塊,用于當所述第三等待接收模塊在所述第三設置模塊設置所述安全模塊的狀態(tài)為工作模式之后的第七預設時間內沒有接收到所述連接指令時,設置所述安全模塊的狀態(tài)為深度睡眠模式。
具體地,所述第一設置模塊,還可以具體用于當所述第一等待接收模塊接收到開機事件時,給所述藍牙模塊的芯片主核上電,將所述藍牙模塊的時鐘設置為高速時鐘模式;
相應地,所述第一喚醒模塊,還用于當所述第一判斷模塊的判斷結果為否時,喚醒所述安全模塊;
所述第一發(fā)送模塊,還用于當所述第一判斷模塊的判斷結果為否、并且所述第一喚醒模塊喚醒所述安全模塊時,向所述安全模塊發(fā)送關機指令;
所述第二等待接收模塊,還用于等待接收來自所述安全模塊的關機指令應答;
所述關機設置模塊,還具體用于所述第一發(fā)送模塊向所述安全模塊發(fā)送關機指令之后,所述第二等待接收模塊接收到來自所述安全模塊的關機指令應答時,設置所述藍牙模塊的狀態(tài)為深度睡眠模式;
所述第三設置模塊,具體用于所述第一等待喚醒模塊被所述藍牙模塊喚醒時,給所述安全模塊的芯片主核上電,將所述安全模塊的時鐘設置為高速時鐘模式;
所述第四設置模塊,還用于所述第三等待接收模塊在第七預設時間內沒有接收到所述連接指令時,設置所述安全模塊的狀態(tài)為低功耗待機模式;
對應地,所述安全模塊在包括第一等待喚醒模塊、第三設置模塊、第三等待接收模塊、第二組織模塊、第二發(fā)送模塊和第四設置模塊的基礎上,還包括第二等待喚醒模塊、第五等待接收模塊和深度睡眠模式設置模塊;
所述第二等待喚醒模塊,用于所述第四設置模塊設置所述安全模塊的狀態(tài)為低功耗待機模式之后,等待被所述藍牙模塊喚醒;
所述第五等待接收模塊,用于所述第二等待喚醒模塊被所述藍牙模塊喚醒時,等待接收所述藍牙模塊的關機指令;
所述第二發(fā)送模塊,還可以用于所述第五等待接收模塊接收到所述藍牙模塊的關機指令時,向所述藍牙模塊返回所述關機指令應答;
所述深度睡眠模式設置模塊,用于所述第二發(fā)送模塊向所述藍牙模塊返回所述關機指令應答之后,設置所述安全模塊的狀態(tài)為深度睡眠模式。
具體地,所述第一判斷模塊可以具體包括監(jiān)聽判斷子模塊、超時判斷子模塊、第一設置子模塊;
所述監(jiān)聽判斷子模塊,用于當所述第一設置模塊設置所述藍牙模塊的狀態(tài)為工作模式之后,判斷是否監(jiān)聽到來自所述上位機的藍牙連接事件;
相應地,所述第一組織模塊,具體用于當所述監(jiān)聽判斷子模塊判斷結果為監(jiān)聽到來自所述上位機的藍牙連接事件時,組織連接指令;
所述超時判斷子模塊,用于當所述監(jiān)聽判斷子模塊判斷結果為沒有監(jiān)聽到來自所述上位機的藍牙連接事件時,判斷從所述第一設置模塊設置所述藍牙模塊的狀態(tài)為工作模式到當前時間是否超過第三預設時間;
所述關機設置模塊,具體用于當所述超時判斷子模塊判斷結果為是時,設置關機模式;
所述第二設置模塊,還用于當所述超時判斷子模塊判斷結果為否時,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
所述第一設置子模塊,用于當所述超時判斷子模塊判斷結果為否時,并且所述第二設置模塊設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后等待被上位機喚醒,當所述藍牙模塊被上位機喚醒時,設置所述藍牙模塊的狀態(tài)為工作模式;
所述監(jiān)聽判斷子模塊,還用于所述第一設置子模塊設置所述藍牙模塊的狀態(tài)為工作模式之后,判斷是否監(jiān)聽到來自所述上位機的藍牙連接事件。
可選地,本發(fā)明上述藍牙安全設備中,所述藍牙模塊在包括第一等待接收模塊、第一設置模塊、第一判斷模塊、第一組織模塊、第一喚醒模塊、第一發(fā)送模塊、第二等待接收模塊、第二設置模塊和關機設置模塊的基礎上,還包括第三等待喚醒模塊和第六設置模塊;
所述第一發(fā)送模塊,還用于當所述第二等待接收模塊在所述第一喚醒模塊喚醒所述安全模塊的第五預設時間之內沒有接收到來自所述安全模塊的連接指令的應答時,向所述上位機返回失敗狀態(tài);
相應地,所述第二設置模塊,還用于所述第一發(fā)送模塊向所述上位機返回失敗狀態(tài)之后,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
所述第三等待喚醒模塊,用于等待被上位機喚醒;
所述第六設置模塊,用于所述第二設置模塊設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后,所述第三等待喚醒模塊在第十預設時間內被上位機喚醒時,設置所述藍牙模塊的狀態(tài)為工作模式;
所述第一判斷模塊,還用于所述第三等待喚醒模塊被上位機喚醒時,判斷是否在所述第一設置模塊設置所述藍牙模塊的狀態(tài)為工作模式之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
所述關機設置模塊,還用于所述第二設置模塊設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后,所述第三等待喚醒模塊在第十預設時間內沒有被上位機喚醒時,設置關機模式。
具體地,所述第二等待接收模塊包括接收判斷子模塊和判斷超時子模塊;
所述接收判斷子模塊,用于所述第一發(fā)送模塊將所述第一組織模塊組織的所述連接指令發(fā)送給所述安全模塊之后,判斷是否接收到連接指令的應答;
所述第一發(fā)送模塊,具體用于所述接收判斷子模塊判斷接收到連接指令的應答時,向所述上位機返回成功狀態(tài);
所述第二設置模塊,具體用于所述接收判斷子模塊判斷接收到連接指令的應答,并且所述第一發(fā)送模塊向所述上位機返回成功狀態(tài)之后,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
所述判斷超時子模塊,用于所述接收判斷子模塊的判斷結果為沒有接收到連接指令的應答時,判斷從所述第一發(fā)送模塊第一次向所述安全模塊發(fā)送連接指令到當前時間是否超過第五預設時間;
所述第一發(fā)送模塊,還用于所述判斷超時子模塊判斷結果為是時,向所述上位機返回失敗狀態(tài);
所述第二設置模塊,還用于所述第一發(fā)送模塊向所述上位機返回失敗狀態(tài)之后,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
所述第六設置模塊,具體用于所述第一發(fā)送模塊向所述上位機返回失敗狀態(tài),并且所述第二設置模塊設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后,當所述第三等待喚醒模塊在第十預設時間內被上位機喚醒時,設置所述藍牙模塊的狀態(tài)為工作模式;
所述第一發(fā)送模塊,還用于所述判斷超時子模塊判斷結果為否時,重新向所述安全模塊發(fā)送所述連接指令;
所述接收判斷子模塊,還用于所述第一發(fā)送模塊重新向所述安全模塊發(fā)送所述連接指令之后,判斷是否接收到連接指令的應答。
可選地,本發(fā)明上述藍牙安全設備中,所述藍牙模塊在包括第一等待接收模塊、第一設置模塊、第一判斷模塊、第一組織模塊、第一喚醒模塊、第一發(fā)送模塊、第二等待接收模塊、第二設置模塊和關機設置模塊的基礎上,還包括第二喚醒模塊、第二判斷模塊、第三發(fā)送模塊和第三判斷模塊;
所述第二喚醒模塊,用于所述第一設置模塊設置所述藍牙模塊的狀態(tài)為工作模式之后,喚醒所述安全模塊;
所述第二判斷模塊,用于判斷在所述第二喚醒模塊喚醒所述安全模塊之后的第一預設時間內是否收到所述安全模塊被喚醒的通知;
相應地,所述關機設置模塊,還用于當所述第二判斷模塊的判斷結果為否時,設置關機模式;
所述第三發(fā)送模塊,用于所述第二判斷模塊的判斷結果為是時,向所述安全模塊發(fā)送預設的通信確認數據;
所述第三判斷模塊,用于判斷在所述第三發(fā)送模塊向所述安全模塊發(fā)送預設的通信確認數據之后的第二預設時間之內是否收到所述安全模塊確認通信的通知;
所述第一判斷模塊,具體用于判斷是否在所述第三判斷模塊的判斷結果為是之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
所述關機設置模塊,還用于當所述第三判斷模塊的判斷結果為否時,設置關機模式;
相應地,所述安全模塊在包括第一等待喚醒模塊、第三設置模塊、第三等待接收模塊、第二組織模塊、第二發(fā)送模塊和第四設置模塊的基礎上,還包括第二等待喚醒模塊、第一通知模塊、第五設置模塊、第四等待接收模塊和第二通知模塊;
所述第二等待喚醒模塊,用于等待被所述藍牙模塊喚醒;
所述第一通知模塊,用于所述第二等待喚醒模塊被所述藍牙模塊喚醒時,通知所述藍牙模塊所述安全模塊被喚醒;
所述第五設置模塊,用于所述第二等待喚醒模塊被所述藍牙模塊喚醒時,設置所述安全模塊的狀態(tài)為工作模式;
所述第四等待接收模塊,用于等待接收通信確認數據;
所述第二通知模塊,用于所述第五設置模塊設置所述安全模塊的狀態(tài)為工作模式之后的第六預設時間內所述第四等待接收模塊接收到所述預設的通信確認數據時,通知所述藍牙模塊確認通信;
所述第四設置模塊,還用于所述第二通知模塊通知所述藍牙模塊確認通信之后,設置所述安全模塊的狀態(tài)為低功耗待機模式;
所述第一等待喚醒模塊,具體用于所述第二通知模塊通知所述藍牙模塊確認通信,并且所述第四設置模塊設置所述安全模塊的狀態(tài)為低功耗待機模式之后,等待被所述藍牙模塊喚醒。
具體地,所述第一判斷模塊包括監(jiān)聽判斷子模塊、超時判斷子模塊、第一設置子模塊;
所述監(jiān)聽判斷子模塊,用于所述第三判斷模塊判斷結果為是時,判斷是否監(jiān)聽到來自所述上位機的藍牙連接事件;
相應地,所述第一組織模塊,具體用于當所述監(jiān)聽判斷子模塊判斷結果為監(jiān)聽到來自所述上位機的藍牙連接事件時,組織連接指令;
超時判斷子模塊,用于當所述監(jiān)聽判斷子模塊判斷結果為沒有監(jiān)聽到來自所述上位機的藍牙連接事件時,判斷從所述第三判斷模塊判斷結果為是到當前時間是否超過第三預設時間;
所述關機設置模塊,具體用于當所述超時判斷子模塊判斷結果為是時,設置關機模式;
所述第二設置模塊,還用于當所述超時判斷子模塊判斷結果為否時,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
所述第一設置子模塊,用于當所述超時判斷子模塊判斷結果為否時,并且所述第二設置模塊設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后等待被上位機喚醒,當被上位機喚醒時,設置所述藍牙模塊的狀態(tài)為工作模式;
所述監(jiān)聽判斷子模塊,還用于所述第一設置子模塊設置所述藍牙模塊的狀態(tài)為工作模式之后,判斷是否監(jiān)聽到來自上位機的藍牙連接事件。
具體地,所述第一設置模塊,可以具體用于給所述藍牙模塊上電,將所述藍牙模塊的時鐘設置為高速時鐘模式,并對所述藍牙模塊的硬件設備進行初始化;相應地,所述關機設置模塊,具體用于執(zhí)行關機操作;所述第五設置模塊,具體用于給所述安全模塊上電,將所述安全模塊的時鐘設置為高速時鐘模式,并對所述安全模塊的硬件設備進行初始化。
或者,所述第一設置模塊,還可以具體用于給所述藍牙模塊的芯片主核上電,將所述藍牙模塊的時鐘設置為高速時鐘模式;相應地,所述關機設置模塊,還可以具體用于設置所述藍牙模塊的狀態(tài)為深度睡眠模式;所述第五設置模塊,還可以具體用于給所述安全模塊的芯片主核上電,將所述安全模塊的時鐘設置為高速時鐘模式;對應地,所述安全模塊在包括第二等待喚醒模塊、第一通知模塊、第五設置模塊、第四等待接收模塊和第二通知模塊的基礎上,還包括:深度睡眠模式設置模塊,用于所述第五設置模塊設置所述安全模塊的狀態(tài)為工作模式之后的第六預設時間內,所述第四等待接收模塊沒有接收到所述預設的通信確認數據時,設置所述安全模塊的狀態(tài)為深度睡眠模式。
具體地,所述第二喚醒模塊,具體用于所述第一設置模塊設置所述藍牙模塊的狀態(tài)為工作模式之后,拉高所述藍牙模塊與所述安全模塊連接的第二控制管腳的電平;相應地,所述第一喚醒模塊,具體用于所述第一判斷模塊判斷結果為是之后或者所述第一組織模塊組織所述連接指令之后,拉低所述藍牙模塊與所述安全模塊連接的第一控制管腳的電平。
具體地,所述第三設置模塊,具體用于當所述第一等待喚醒模塊被所述藍牙模塊喚醒時,將所述安全模塊的時鐘設置為高速時鐘模式。
具體地,所述第二判斷模塊,具體用于判斷在所述第二喚醒模塊喚醒所述安全模塊之后的第一預設時間內所述藍牙模塊與所述安全模塊連接的第一控制管腳的電平是否為低;相應地,所述第三發(fā)送模塊,具體用于所述第二判斷模塊判斷的結果為是時,向所述安全模塊發(fā)送預設的通信確認數據;所述關機設置模塊,具體用于所述第二判斷模塊判斷的結果為否時,設置關機模式;所述第一通知模塊,具體用于所述第二等待喚醒模塊被所述藍牙模塊喚醒時,拉低所述安全模塊與所述藍牙模塊連接的第一控制管腳的電平。
具體地,所述第三判斷模塊,具體用于判斷在所述第三發(fā)送模塊向所述安全模塊發(fā)送預設的通信確認數據之后的第二預設時間之內所述藍牙模塊與所述安全模塊連接的第一控制管腳的電平是否被拉高;
相應地,所述第一判斷模塊,具體用于判斷是否在所述第三判斷模塊判斷結果為所述藍牙模塊與所述安全模塊連接的第一控制管腳的電平被拉高之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
所述關機設置模塊,具體用于當所述第三判斷模塊判斷結果為否時,設置關機模式;
所述第二通知模塊,具體用于所述第五設置模塊設置所述安全模塊的狀態(tài)為工作模式之后的第六預設時間內所述第四等待接收模塊接收到所述預設的通信確認數據時,拉高所述安全模塊與所述藍牙模塊連接的所述第一控制管腳的電平。
可選地,本實施例上述藍牙安全設備中,所述藍牙模塊在包括第一等待接收模塊、第一設置模塊、第一判斷模塊、第一組織模塊、第一喚醒模塊、第一發(fā)送模塊、第二等待接收模塊、第二設置模塊和關機設置模塊的基礎上,或者所述藍牙模塊在包括第二喚醒模塊、第二判斷模塊、第三發(fā)送模塊和第三判斷模塊的基礎上,還包括生成模塊、保存模塊、第一接收模塊;
所述生成模塊,用于生成隨機數;
相應地,所述保存模塊,用于保存所述生成模塊生成的所述隨機數;
所述第一組織模塊,具體用于根據所述生成模塊生成的所述隨機數組織所述連接指令;
所述第一接收模塊,用于等待接收來自所述上位機的操作事件;
所述第六設置模塊,用于所述第一發(fā)送模塊向所述上位機返回成功狀態(tài),并且所述第二設置模塊設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后,所述第一接收模塊接收到來自所述上位機的操作事件時,設置所述藍牙模塊的狀態(tài)為工作模式;
所述第一發(fā)送模塊,還用于當所述第一接收模塊接收的所述操作事件中包括隨機數,并且所述操作事件中的隨機數與所述保存模塊保存的隨機數相同時,向所述上位機返回成功的狀態(tài)應答;
所述第二設置模塊,還用于所述第一發(fā)送模塊向所述上位機返回成功的狀態(tài)應答之后,設置所述藍牙模塊的狀態(tài)為低功耗待機模式;
所述安全模塊在包括第一等待喚醒模塊、第三設置模塊、第三等待接收模塊、第二組織模塊、第二發(fā)送模塊和第四設置模塊的基礎上,或者在包括第二等待喚醒模塊、第一通知模塊、第五設置模塊、第四等待接收模塊和第二通知模塊的基礎上,還包括:顯示模塊,用于從所述第三等待接收模塊接收的所述連接指令中獲取所述隨機數,并顯示所述隨機數。
本發(fā)明中,上述深度睡眠模式設置模塊,具體用于將所述安全模塊的芯片主核下電,關閉所述安全模塊中的無關模塊,保持所述安全模塊中的喚醒模塊有電,并關閉與所述安全模塊連接的外圍設備。
本發(fā)明中,上述關機設置模塊,具體用于將所述藍牙模塊的芯片主核下電,關閉所述藍牙模塊中的無關模塊,保持所述藍牙模塊中的喚醒模塊有電,并關閉與所述藍牙模塊連接的外圍設備。
具體地,所述第四設置模塊,具體用于將所述安全模塊的時鐘設置為低速時鐘模式、關閉與所述安全模塊連接的外圍設備和所述安全模塊中的無關模塊,將所述安全模塊的芯片設置為睡眠模式。
具體地,所述第二設置模塊,具體用于關閉與所述藍牙模塊連接的外圍設備和/或關閉所述藍牙模塊中的無關模塊。進一步地,所述第二設置模塊還用于將所述藍牙模塊的時鐘設置為低速時鐘模式、將所述藍牙模塊的芯片設置為睡眠模式。
本發(fā)明中,上位機為與藍牙安全設備建立藍牙連接的設備,如支持藍牙功能的電腦或移動終端。
本發(fā)明與現有技術相比的有益效果是:藍牙安全設備與上位機建立藍牙連接過程中,藍牙安全設備中的藍牙模塊執(zhí)行完相應操作之后立即設為低功耗待機模式或者關機模式,藍牙安全設備中的安全模塊執(zhí)行完相應操作之后立即設為低功耗待機模式,如此可以有效節(jié)省電源,延長藍牙安全設備的待機時長,用戶體驗較好。
附圖說明
圖1所示為本發(fā)明實施例1中一種低功耗建立藍牙連接的方法中藍牙模塊操作方法的流程圖;
圖2所示為本發(fā)明實施例1中一種低功耗建立藍牙連接的方法中安全模塊操作方法的流程圖;
圖3所示為本發(fā)明實施例2中一種低功耗建立藍牙連接的方法中藍牙模塊操作方法的流程圖;
圖4所示為本發(fā)明實施例2中一種低功耗建立藍牙連接的方法中安全模塊操作方法的流程圖;
圖5所示為本發(fā)明實施例3中一種藍牙安全設備的模塊組成框圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
實施例1
本實施例提供一種低功耗建立藍牙連接的方法,適用于包括安全模塊和藍牙模塊的藍牙安全設備,方法具體包括安全模塊的操作方法和藍牙模塊的操作方法。
如圖1所示,藍牙安全設備的藍牙模塊的操作方法包括:
步驟H1:藍牙模塊等待接收開機事件。
具體地,藍牙模塊等待接收開機事件時處于關機模式或者深度睡眠模式。
步驟H2:藍牙模塊接收到開機事件時,設置自身的狀態(tài)為工作模式。
本實施例中,當用戶按下藍牙安全設備的開機按鍵之后,藍牙模塊接收到開機事件。
步驟H3:藍牙模塊判斷是否在第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件,是則執(zhí)行步驟H4;否則執(zhí)行步驟H7;
具體地,步驟H3具體包括:
步驟H31:藍牙模塊判斷是否監(jiān)聽到來自上位機的藍牙連接事件,是則執(zhí)行步驟H4,否則執(zhí)行步驟H32;
步驟H32:藍牙模塊判斷從接收到開機事件到當前時間是否超過第三預設時間,是則執(zhí)行步驟H7,否則執(zhí)行步驟H33;例如,第三預設時間為30秒。
步驟H33:藍牙模塊設置自身的狀態(tài)為低功耗待機模式,被上位機喚醒時,設置自身的狀態(tài)為工作模式,返回步驟H31。
具體地,步驟H33中,藍牙模塊設置自身的狀態(tài)為低功耗待機模式,具體為:藍牙模塊關閉與自身連接的外圍設備和/或自身的無關模塊。例如,藍牙模塊開啟與自身連接的顯示模塊和/或開啟自身的通信模塊。進一步具體地,藍牙模塊設置自身的狀態(tài)為低功耗待機模式時,還包括:藍牙模塊將自身時鐘設置為低速時鐘模式,并將自身的芯片設置為睡眠模式。例如,藍牙模塊將自身的時鐘頻率設置為0.7MHz。
可選地,步驟H3中藍牙模塊等待被上位機喚醒時,還可以包括:藍牙模塊判斷從判斷收到安全模塊確認通信的通知到當前時間是否超過第三預設時間,是則執(zhí)行步驟H7,否則繼續(xù)等待并判斷。
具體地,步驟H33中,藍牙模塊設置自身的狀態(tài)為工作模式,具體為:藍牙模塊開啟與自身連接的外圍設備和/或自身的無關模塊。例如,藍牙模塊開啟與自身連接的顯示模塊和/或開啟自身的通信模塊。進一步具體地,藍牙模塊設置自身的狀態(tài)為工作模式時,還包括:藍牙模塊將自身的時鐘設置為高速時鐘模式。例如,藍牙模塊將自身的時鐘頻率設置為2.5MHz。
步驟H4:藍牙模塊組織連接指令,喚醒安全模塊;
具體地,藍牙模塊喚醒安全模塊,具體為:藍牙模塊拉高與安全模塊連接的第二控制管腳的電平。
本實施例中,藍牙模塊的第二控制管腳通過WakeUp交互線與安全模塊連接。
可選地,本實施例中,還包括:藍牙模塊通過拉高第二控制管腳的電平喚醒安全模塊之后,在預定時間內將第二控制管腳的電平拉低;例如,藍牙模塊在拉高第二控制管腳的電平10ms后,將第二控制管腳的電平拉低。
步驟H5:藍牙模塊在第四預設時間之后將連接指令發(fā)送給安全模塊;
步驟H6:藍牙模塊等待接收連接指令的應答,當在第五預設時間之內接收到來自安全模塊的連接指令的應答時,向上位機返回成功狀態(tài),設置自身的狀態(tài)為低功耗待機模式,成功建立藍牙連接;
步驟H7:藍牙模塊設置關機模式,返回步驟H1;
如圖2所示,藍牙安全設備的安全模塊的操作方法包括:
步驟S1:安全模塊等待被藍牙模塊喚醒,當被藍牙模塊喚醒時,設置自身的狀態(tài)為工作模式;
具體地,步驟S1中安全模塊等待被藍牙模塊喚醒時,處于深度睡眠模式或關機模式。
步驟S2:安全模塊等待接收來自藍牙模塊的連接指令,當在第七預設時間內接收到連接指令時,組織連接指令的應答,并將連接指令的應答返回藍牙模塊,設置自身的狀態(tài)為低功耗待機模式。
可選地,本實施例上述方法還包括:在步驟H6中,藍牙模塊在第五預設時間之內沒有接收到來自安全模塊的連接指令的應答時,向上位機返回失敗狀態(tài),設置自身狀態(tài)為低功耗待機模式,執(zhí)行步驟H8;
步驟H8:藍牙模塊如果在第十預設時間內被上位機喚醒,則設置自身狀態(tài)為工作模式,返回上述步驟H3;如果在第十預設時間內沒有被上位機喚醒時,執(zhí)行上述步驟H7。
具體地,步驟H6具體包括:
步驟H61:藍牙模塊判斷是否接收到連接指令的應答,是則向上位機返回成功狀態(tài),設置自身的狀態(tài)為低功耗待機模式;否則執(zhí)行步驟H62;
步驟H62:藍牙模塊判斷從第一次向安全模塊發(fā)送連接指令到當前時間是否超過第五預設時間,是則向上位機返回失敗狀態(tài),設置自身的狀態(tài)為低功耗待機模式,執(zhí)行步驟H8;否則執(zhí)行步驟H63;
步驟H63:藍牙模塊重新向安全模塊發(fā)送連接指令,返回步驟H61。
可選地,本實施例上述方法的步驟H2中,藍牙模塊設置自身的狀態(tài)為工作模式,具體為:藍牙模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化;例如,藍牙模塊對自身的硬件設備進行初始化具體為:藍牙模塊對自身的電容等電路器件進行初始化。
相應地,上述步驟H7中,藍牙模塊設置關機模式,具體為:藍牙模塊執(zhí)行關機操作;
相應地,上述步驟S1中,安全模塊設置自身的狀態(tài)為工作模式,具體為:安全模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化。例如,安全模塊對自身的硬件設備進行初始化具體為:安全模塊對自身的電容等電路器件進行初始化。
或者,本實施例上述方法的步驟H2中,藍牙模塊設置自身的狀態(tài)為工作模式,還可以具體為:藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;
相應地,上述步驟H7中,藍牙模塊設置關機模式,還可以具體為:藍牙模塊設置自身的狀態(tài)為深度睡眠模式;
相應地,上述步驟S1中,安全模塊設置自身的狀態(tài)為工作模式,具體為:安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;
相應地,上述步驟S2中,還包括:安全模塊在第七預設時間內沒有接收到連接指令時,設置自身的狀態(tài)為深度睡眠模式。
或者,本實施例上述方法的步驟H2中,藍牙模塊設置自身的狀態(tài)為工作模式,還可以具體為:藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;
相應地,上述步驟H7中,藍牙模塊設置關機模式,具體為:藍牙模塊喚醒安全模塊,向安全模塊發(fā)送關機指令,接收到來自安全模塊的關機指令應答時,設置自身的狀態(tài)為深度睡眠模式;
相應地,上述步驟S1中,安全模塊設置自身的狀態(tài)為工作模式,具體為:安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;
相應地,上述步驟S2中,還包括:安全模塊在第七預設時間內沒有接收到連接指令時,設置自身的狀態(tài)為低功耗待機模式;
相應地,上述步驟S2之后,還包括:安全模塊被藍牙模塊喚醒,接收到藍牙模塊的關機指令時,向藍牙模塊返回關機指令應答,設置自身的狀態(tài)為深度睡眠模式。
具體地,本實施例中,上述安全模塊設置自身的狀態(tài)為深度睡眠模式,具體為:安全模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與安全模塊連接的外圍設備。例如,安全模塊關閉與其連接的外圍耗電設備包括顯示模塊;安全模塊關閉的自身的無關模塊包括算法模塊、通訊模塊(如SPI/UART/I2C/USB)、存儲模塊。
具體地,本實施例中,上述藍牙模塊設置自身的狀態(tài)為深度睡眠模式,具體為:藍牙模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。例如,藍牙模塊關閉與其連接的外圍耗電設備包括顯示模塊;藍牙模塊關閉自身的無關模塊包括通訊模塊(如SPI/UART/I2C)。
具體地,本實施例中,上述安全模塊設置自身的狀態(tài)為低功耗待機模式,具體包括:
步驟a1:安全模塊將自身的時鐘設置為低速時鐘模式、關閉自身的無關模塊以及與自身連接的外圍設備;
步驟a2:安全模塊將安全芯片設置為睡眠模式。
具體地,本實施例中,上述藍牙模塊設置自身的狀態(tài)為低功耗待機模式,具體為:藍牙模塊關閉與自身連接的外圍設備和/或關閉自身的無關模塊。進一步具體地,藍牙模塊設置自身的狀態(tài)為低功耗待機模式時,還具體包括:藍牙模塊將自身的時鐘設置為低速時鐘模式,將自身的芯片設置為睡眠模式。
可選地,本實施例上述方法的步驟H4中,藍牙模塊組織連接指令之前,還包括:藍牙模塊生成隨機數,并對隨機數進行保存;
相應地,上述藍牙模塊組織連接指令,具體為:藍牙模塊根據隨機數組織連接指令;
相應地,上述步驟H6中,藍牙模塊向上位機返回成功狀態(tài),設置自身狀態(tài)為低功耗待機模式之后,成功建立藍牙連接之前,還包括:藍牙模塊接收來自上位機的操作事件,設置自身的狀態(tài)為工作模式,當操作事件中包括隨機數,并且操作事件中的隨機數與自身保存的隨機數相同時,向上位機返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式,成功建立藍牙連接;其中,藍牙模塊設置自身的狀態(tài)為工作模式具體為:藍牙模塊開啟自身的無關模塊和/或開啟與自身連接的外圍設備;進一步地,本步驟中藍牙模塊設置自身的狀態(tài)為工作模式具體為時,還包括:藍牙模塊將自身的時鐘設置為高速時鐘模式。
相應地,上述步驟S2中,安全模塊在第七預設時間內接收到連接指令時,還包括:安全模塊從連接指令中獲取隨機數,并顯示隨機數。
進一步地,上述方法中還包括:當步驟H6中藍牙模塊在預設時間內沒有接收到來自上位機的操作事件時,藍牙模塊向上位機返回超時應答,設置關機模式。
進一步地,上述方法中還包括:當藍牙模塊接收到操作事件,操作事件中不包括隨機數,或者操作事件中的隨機數與自身保存的隨機數不同時,藍牙模塊向上位機返回失敗的應答,設置關機模式。
可選地,本實施例上述方法中,上述步驟S2中,安全模塊在第七預設時間內接收到連接指令時,還包括:安全模塊生成并顯示隨機數,并對隨機數進行保存;
相應地,上述步驟H6中,藍牙模塊向上位機返回成功狀態(tài),設置自身狀態(tài)為低功耗待機模式之后、成功建立藍牙連接之前,還包括:
步驟H9:藍牙模塊接收來自上位機的操作事件,設置自身的狀態(tài)為工作模式,喚醒安全模塊,并將操作事件發(fā)送給安全模塊;
步驟H10:藍牙模塊判斷在第十一預設時間內是否接收到來自安全模塊成功的狀態(tài)應答,是則向上位機返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式;否則,當在第十一預設時間內接收到來自安全模塊失敗的狀態(tài)應答時,向上位機返回失敗的狀態(tài)應答,設置關機模式,執(zhí)行步驟H1,當在第十一預設時間內沒有接收來自安全模塊的狀態(tài)應答時,向上位機返回失敗狀態(tài),設置關機模式,執(zhí)行步驟H1;
相應地,上述步驟S2之后還包括:
步驟S3:安全模塊被藍牙模塊喚醒時,設置自身狀態(tài)為工作模式,判斷在第十二預設時間內是否接收到來自藍牙模塊的操作事件,在第十二預設時間內接收到來自藍牙模塊的操作事件,當操作事件中包括隨機數,并且操作事件中的隨機數與自身保存的隨機數相同時,向藍牙模塊返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式,當操作事件中包括隨機數,并且操作事件中的隨機數與自身保存的隨機數不相同時,或者操作事件中不包括隨機數時,向藍牙模塊返回失敗的狀態(tài)應答。本步驟中,安全模塊設置自身的狀態(tài)為工作模式,可以具體為:安全模塊設置自身的時鐘為高速時鐘模式,開啟自身的無關模塊和/或與自身連接的外圍設備。
具體地,步驟H10中藍牙模塊設置關機模式,具體為:藍牙模塊執(zhí)行關機操作。步驟S3中安全模塊向藍牙模塊返回失敗的狀態(tài)應答或者安全模塊在第十二預設時間內接收到來自藍牙模塊的操作事件時,當藍牙模塊執(zhí)行關機操作之后,安全模塊斷電,執(zhí)行步驟S1。
具體地,步驟H10中藍牙模塊設置關機模式,具體為:藍牙模塊設置自身的狀態(tài)為深度睡眠模式;相應地,上述步驟S3中安全模塊向藍牙模塊返回失敗的狀態(tài)應答之后,還包括:安全模塊設置自身狀態(tài)為深度睡眠模式,執(zhí)行步驟S1。
本實施例中,步驟S3中還包括,當安全模塊在第十二預設時間內沒有接收到來自藍牙模塊的操作事件時,設置自身狀態(tài)為深度睡眠模式,執(zhí)行步驟S1。
本發(fā)明中,當安全模塊由低功耗待機模式設置為工作模式時,安全模塊設置自身狀態(tài)為工作模式具體為:安全模塊將自身的時鐘設置為高速時鐘模式;進一步地,安全模塊還可以開啟自身的無關模塊和/或與自身連接的外圍設備。
本發(fā)明中,當藍牙模塊由低功耗待機模式設置為工作模式時,藍牙模塊設置自身狀態(tài)為工作模式具體為:藍牙模塊開啟自身的無關模塊和/或與自身連接的外圍設備;進一步地,藍牙模塊的時鐘為低速時鐘模式時,還可以將自身的時鐘設置為高速時鐘模式。
本發(fā)明中,藍牙模塊和安全模塊設置自身狀態(tài)為低功耗待機模式時將自身的芯片設置為睡眠模式,同時將自身的時鐘切換為低速時鐘模式,可以進一步降低功耗。如果只切換自身的時鐘頻率,不將自身的芯片設置為睡眠模式,芯片會繼續(xù)執(zhí)行工作程序,當將芯片設置為睡眠模式之后,芯片停止執(zhí)行工作程序。
本實施例中,藍牙安全設備的外圍設備包括顯示模塊,但不限于顯示模塊,上述顯示模塊與安全模塊連接,但不限于此連接方式。例如,顯示模塊可以與安全模塊和/或藍牙模塊連接。
需要說明的是,本發(fā)明中安全模塊可以具體為一個安全芯片以及與安全芯片連接的外圍電路,無關模塊(如通信模塊、存儲模塊、算法模塊)集成在安全芯片中;安全模塊也可以包括安全芯片、無關模塊以及與安全芯片連接的外圍電路,其中無關模塊可以集成在安全芯片中,也可以是與安全芯片連接的獨立結構,例如,無關模塊中的通信模塊集成在安全芯片中,無關模塊中的算法模塊為與安全芯片連接的獨立結構。本發(fā)明中,對安全模塊與安全芯片連接的外圍電路的設計方式不做具體限定。
本實發(fā)明中藍牙模塊可以具體為一個藍牙芯片以及與藍牙芯片連接的外圍電路,無關模塊(如通信模塊)集成在藍牙芯片中;藍牙模塊也可以包括藍牙芯片、無關模塊以及與藍牙芯片連接的外圍電路,其中無關模塊可以集成在藍牙芯片中,也可以是與藍牙芯片連接的獨立結構,例如,無關模塊中的通信模塊集成在藍牙芯片中,無關模塊也可以為與藍牙芯片連接的獨立結構。本發(fā)明中,對藍牙模塊中與藍牙芯片連接的外圍電路不做具體限定。
本發(fā)明中,藍牙模塊的芯片和藍牙芯片屬于同一個概念,上述安全模塊的芯片和安全芯片屬于同一個概念。
本實施例與現有技術相比的有益效果是:藍牙安全設備與上位機建立藍牙連接過程中,藍牙安全設備中的藍牙模塊執(zhí)行完相應操作之后立即設為低功耗待機模式或者關機模式,藍牙安全設備中的安全模塊執(zhí)行完相應操作之后立即設為低功耗待機模式,如此可以有效節(jié)省電能,延長藍牙安全設備的待機時長,用戶體驗較好。
實施例2
本發(fā)明提供一種低功耗建立藍牙連接的方法,適用于包括安全模塊和藍牙模塊的藍牙安全設備,方法具體包括安全模塊的操作方法和藍牙模塊的操作方法。
如圖3所示,安全模塊的操作方法包括:
步驟101:安全模塊等待被藍牙模塊喚醒。
具體地,步驟101中安全模塊等待被藍牙模塊喚醒時,處于深度睡眠模式或關機狀態(tài)。
步驟102:安全模塊被藍牙模塊喚醒時,通知藍牙模塊自身被喚醒,設置自身的狀態(tài)為工作模式。
具體地,安全模塊通知藍牙模塊自身被喚醒,具體為:安全模塊拉低與藍牙模塊連接的第一控制管腳的電平。
需要說明的是,在本實施例中,藍牙模塊與安全模塊之間通過兩條控制線和兩條數據線連接,兩條控制線為Wakeup交互線和combus控制線。安全模塊的第一控制管腳通過combus控制線與藍牙模塊連接,藍牙模塊的第二控制管腳通過WakeUp交互線與安全模塊連接。
具體地,當藍牙模塊拉高第二控制管腳的電平之后,安全模塊自動拉低第一控制管腳的電平。
具體地,步驟102中安全模塊設置自身的狀態(tài)為工作模式具體為:安全模塊將自身的時鐘設置為高速時鐘模式。例如,安全模塊將自身的時鐘設置為高速時鐘模式之前的時鐘處于關閉狀態(tài),安全模塊將自身的時鐘設置為高速時鐘模式之后的時鐘頻率為2.5MHz。
需要說明的是,在本實施例中,安全模塊與藍牙模塊連接的兩條數據線為收數線和發(fā)數線,其中,收數線為安全模塊接收數據的數據線,發(fā)數線為安全模塊發(fā)送數據的數據線,藍牙模塊和安全模塊通過數據線傳遞數據。
步驟103:安全模塊等待接收通信確認數據,在設置自身的狀態(tài)為工作模式之后的第六預設時間內接收到預設的通信確認數據時,通知藍牙模塊確認通信,設置自身的狀態(tài)為低功耗待機模式。
具體地,安全模塊通知藍牙模塊確認通信,具體為:安全模塊拉高與藍牙模塊連接的第一控制管腳的電平。
進一步具體地,步驟103中具體包括:
步驟1031:安全模塊判斷是否接收到數據,是則執(zhí)行步驟1033;否則執(zhí)行步驟1032;
具體地,安全模塊判斷寄存器的狀態(tài)是否置位,是則執(zhí)行步驟1033,否則執(zhí)行步驟1032。例如,寄存器的狀態(tài)置位后為1,寄存器的狀態(tài)未置位時為0。
步驟1032:安全模塊判斷是否超時,如判斷結果為沒有超時則執(zhí)行步驟1031;
具體地,安全模塊判斷是否超時,具體為:安全模塊判斷將自身狀態(tài)設置為工作模式之后到當前時間是否超過第六預設時間,如果判斷結果為沒有超過第六預設時間則執(zhí)行步驟1031;例如,第六預設時間為30毫秒。
步驟1033:安全模塊判斷接收的數據是否為預設的通信確認數據,是則拉高與藍牙模塊連接的第一控制管腳的電平,設置自身的狀態(tài)為低功耗待機模式,執(zhí)行步驟104;否則返回步驟1031。例如,安全模塊判斷接收的數據是否為預設的通信確認數據,具體為:安全模塊判斷接收的數據是否為0x55,是則為通信確認數據,否則不是通信確認數據。
可選地,本實施例步驟103中還包括,安全模塊在設置自身的狀態(tài)為工作模式之后的第六預設時間內沒有接收到預設的通信確認數據時,設置自身的狀態(tài)為深度睡眠模式,或者當藍牙模塊執(zhí)行關機操作時,安全模塊斷電。具體地,上述步驟1032中,如果判斷結果為超時,安全模塊設置自身的狀態(tài)為深度睡眠模式,或者當藍牙模塊執(zhí)行關機操作時,安全模塊斷電。
步驟104:安全模塊等待被藍牙模塊喚醒,當被藍牙模塊喚醒時,設置自身的狀態(tài)為工作模式。
步驟105:安全模塊等待接收來自藍牙模塊的連接指令,當在第七預設時間內接收到連接指令時,組織連接指令的應答,并將連接指令的應答返回藍牙模塊,設置自身的狀態(tài)為低功耗待機模式。
本實施例步驟105中,安全模塊設置自身狀態(tài)為低功耗待機模式之后,等待被藍牙模塊喚醒,通過藍牙模塊實現安全模塊與上位機的通信,當安全模塊被藍牙模塊喚醒時,設置自身狀態(tài)為工作模式,接收來自藍牙模塊的數據,例如,接收簽名指令的數據、修改PIN碼指令的數據、取按鍵狀態(tài)指令的數據。
可選地,步驟105中還包括:當在第七預設時間內沒有接收到連接指令時,安全模塊設置自身狀態(tài)為深度睡眠模式,執(zhí)行步驟101;或者當藍牙模塊執(zhí)行關機操作時斷電,執(zhí)行步驟101。
具體地,步驟105具體包括:
步驟1051:安全模塊判斷是否接收到數據,是則執(zhí)行步驟1053,否則執(zhí)行步驟1052;
步驟1052:安全模塊判斷是否超時,是則設置自身狀態(tài)為深度睡眠模式,執(zhí)行步驟101;或者當藍牙模塊執(zhí)行關機操作時斷電,執(zhí)行步驟101;否則執(zhí)行步驟1053;
具體地,步驟1052具體為:安全模塊判斷將自身狀態(tài)設置為工作模式之后到當前時間是否超過第七預設時間,是則設置自身狀態(tài)為深度睡眠模式,執(zhí)行步驟101;或者當藍牙模塊執(zhí)行關機操作時斷電,執(zhí)行步驟101;否則執(zhí)行步驟1053;例如,第七預設時間為30毫秒。
步驟1053:安全模塊判斷接收到的數據是否為連接指令,是則組織連接指令的應答,并將連接指令的應答返回藍牙模塊,設置自身的狀態(tài)為低功耗待機模式;否則返回步驟1051。
如圖4所示,藍牙模塊的操作方法包括:
步驟201:藍牙模塊等待接收開機事件。
具體地,藍牙模塊等待接收開機事件時處于關機狀態(tài)或者深度睡眠模式。
步驟202:藍牙模塊接收到開機事件時,設置自身的狀態(tài)為工作模式,喚醒安全模塊。
具體地,當用戶按下藍牙安全設備的開機按鍵之后,藍牙模塊接收到開機事件。
具體地,步驟202中,藍牙模塊喚醒安全模塊,具體為:藍牙模塊拉高與安全模塊連接的第二控制管腳的電平。
本實施例中,藍牙模塊的第二控制管腳通過WakeUp交互線與安全模塊連接。
可選地,本實施例中,藍牙模塊通過拉高第二控制管腳的電平喚醒安全模塊之后,還包括:藍牙模塊在預定時間內將第二控制管腳的電平拉低;例如,藍牙模塊在拉高第二控制管腳的電平10ms后,將第二控制管腳的電平拉低。
步驟203:藍牙模塊判斷在第一預設時間內是否收到安全模塊被喚醒的通知,是則執(zhí)行步驟204,否則執(zhí)行步驟211。
具體地,藍牙模塊判斷在第一預設時間內是否收到安全模塊被喚醒的通知,具體為:藍牙模塊判斷在第一預設時間內與安全模塊連接的第一控制管腳的電平是否為低,是則執(zhí)行步驟204,否則執(zhí)行步驟211。
本實施例中,藍牙模塊的第一控制管腳通過combus控制線與安全模塊連接。
進一步具體地,步驟203具體包括:
步驟2031:藍牙模塊判斷與安全模塊連接的第一控制管腳的電平是否為低,是則執(zhí)行步驟204,否則執(zhí)行步驟2032;
步驟2032:藍牙模塊判斷是否超時,是則執(zhí)行步驟211,否則執(zhí)行步驟2031。
具體地,步驟2032具體為:藍牙模塊判斷從設置自身的狀態(tài)為工作模式到當前時間是否超過第一預設時間,是則執(zhí)行步驟211,否則執(zhí)行步驟2031;例如,第一預設時間為30毫秒。
優(yōu)選地,步驟202之后、步驟2031之前,還包括:藍牙模塊等待第一子預設時間。例如,第一子預設時間為10毫秒。
步驟204:藍牙模塊向安全模塊發(fā)送預設的通信確認數據。
具體地,步驟204具體為:藍牙模塊組織預設的通信確認數據,并將預設的通信確認數據發(fā)送給藍牙模塊。例如,藍牙模塊向安全模塊發(fā)送組織的預設的通信確認數據為0x55。
步驟205:藍牙模塊判斷在第二預設時間之內是否收到安全模塊確認通信的通知,是則執(zhí)行步驟206,否則執(zhí)行步驟211。
具體地,步驟205具體為:藍牙模塊判斷在第二預設時間之內與安全模塊連接的第一控制管腳的電平是否被拉高,是則執(zhí)行步驟206,否則執(zhí)行步驟211。
可選地,步驟205具體包括:
步驟2051:藍牙模塊判斷與安全模塊連接的第一控制管腳的電平是否被拉高,是則執(zhí)行步驟206,否則執(zhí)行步驟2052;
步驟2052:藍牙模塊判斷是否超時,是則執(zhí)行步驟211,否則執(zhí)行步驟2051。
具體地,藍牙模塊判斷從向安全模塊發(fā)送預設的通信確認數據到當前時間是否超過第二預設時間,是則執(zhí)行步驟211,否則執(zhí)行步驟2051;例如,第二預設時間為30毫秒。
優(yōu)選地,步驟204之后、步驟2051之前,還包括:藍牙模塊等待第二子預設時間。例如,第二子預設時間為10毫秒。
可選地,步驟205還可以具體包括:
步驟205-1:藍牙模塊等待第二子預設時間,判斷與安全模塊連接的第一控制管腳的電平是否被拉高,是則執(zhí)行步驟206,否則執(zhí)行步驟205-2;例如,第二子預設時間為10毫秒。
步驟205-2:藍牙模塊判斷是否超時,是則執(zhí)行步驟211,否則執(zhí)行步驟205-3。
具體地,步驟205-2具體為:藍牙模塊判斷從第一次向安全模塊發(fā)送預設的通信確認數據到當前時間是否超過第二預設時間,是則執(zhí)行步驟211,否則執(zhí)行步驟205-3;例如,第二預設時間為30毫秒。
步驟205-3:藍牙模塊重新向安全模塊發(fā)送預設的通信確認數據,執(zhí)行步驟205-1。
步驟206:藍牙模塊判斷是否在第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件,是則執(zhí)行步驟207,否則執(zhí)行步驟211。
本實施例中,藍牙模塊判斷是否監(jiān)聽到藍牙連接事件,具體為,當上位機向藍牙模塊發(fā)送連接請求時,藍牙模塊監(jiān)聽到藍牙連接事件。
具體地,步驟206具體包括:
步驟2061:藍牙模塊判斷是否監(jiān)聽到來自上位機的藍牙連接事件,是則執(zhí)行步驟207,否則執(zhí)行步驟2062;
步驟2062:藍牙模塊判斷從判斷收到安全模塊確認通信的通知到當前時間是否超過第三預設時間,是則執(zhí)行步驟211,否則執(zhí)行步驟2063。
進一步具體地,步驟2062,具體為:藍牙模塊判斷從與安全模塊連接的第一控制管腳的電平最近一次被拉高到當前時間是否超過第三預設時間,是則執(zhí)行步驟211,否則執(zhí)行步驟2063;例如,第三預設時間為30毫秒。
步驟2063:藍牙模塊設置自身的狀態(tài)為低功耗待機模式,被上位機喚醒時,設置自身的狀態(tài)為工作模式,執(zhí)行步驟2061。
可選地,步驟2063中藍牙模塊等待被上位機喚醒時,還可以包括:藍牙模塊判斷從判斷收到安全模塊確認通信的通知到當前時間是否超過第三預設時間,是則執(zhí)行步驟211,否則繼續(xù)等待并判斷。
具體地,步驟2063中,藍牙模塊設置自身的狀態(tài)為低功耗待機模式,具體為:藍牙模塊關閉與自身連接的外圍設備和/或自身的無關模塊。例如,藍牙模塊開啟與自身連接的顯示模塊和/或開啟自身的通信模塊。進一步具體地,藍牙模塊設置自身的狀態(tài)為低功耗待機模式時,還包括:藍牙模塊將自身時鐘設置為低速時鐘模式,并將自身的芯片設置為睡眠模式。例如,藍牙模塊將自身的時鐘頻率設置為0.7MHz。
具體地,步驟2063中,藍牙模塊設置自身的狀態(tài)為工作模式,具體為:藍牙模塊開啟與自身連接的外圍設備和/或自身的無關模塊。例如,藍牙模塊開啟與自身連接的顯示模塊和/或開啟自身的通信模塊。進一步具體地,藍牙模塊設置自身的狀態(tài)為工作模式時,還包括:藍牙模塊將自身的時鐘設置為高速時鐘模式。例如,藍牙模塊將自身的時鐘頻率設置為2.5MHz。
步驟207:藍牙模塊組織連接指令,喚醒安全模塊。
步驟207中,藍牙模塊喚醒安全模塊,具體為:藍牙模塊拉低與安全模塊連接的第一控制管腳的電平。本實施例中,藍牙模塊的第一控制管腳通過combus控制線與安全模塊連接。
可選地,本實施例步驟207中,藍牙模塊通過拉低與安全模塊連接的第一控制管腳的電平喚醒安全模塊之后,在預定時間內將第一控制管腳的電平拉高;例如,藍牙模塊在拉高第一控制管腳的電平10ms后,將第一控制管腳的電平拉高。
步驟208:藍牙模塊在第四預設時間之后將連接指令發(fā)送給安全模塊,在第五預設時間之內接收到連接指令的應答時,執(zhí)行步驟209;在第五預設時間之內沒有接收到連接指令的應答時,執(zhí)行步驟210。
具體地,步驟208具體包括:
步驟2081:藍牙模塊在第四預設時間之后將連接指令發(fā)送給安全模塊;例如,第四預設時間為10毫秒。
步驟2082:藍牙模塊在第五子預設時間之后判斷是否接收到連接指令的應答,是則執(zhí)行步驟209,否則執(zhí)行步驟2083;例如,第五子預設時間為10毫秒。
步驟2083:藍牙模塊判斷從第一次向安全模塊發(fā)送連接指令到當前時間是否超過第五預設時間,是則執(zhí)行步驟210;否則重新向安全模塊發(fā)送連接指令,執(zhí)行步驟2082。例如,第五預設時間為30毫秒。
或者,步驟208還可以具體包括:
步驟208-1:藍牙模塊在第四預設時間之后將連接指令發(fā)送給安全模塊;例如,第四預設時間為10毫秒。
步驟208-2:藍牙模塊判斷是否接收到連接指令的應答,是則執(zhí)行步驟209,否則執(zhí)行步驟208-3;
步驟208-3:藍牙模塊判斷從向安全模塊發(fā)送連接指令到當前時間是否超過第五預設時間,是則執(zhí)行步驟210;否則執(zhí)行步驟208-2。例如,第五預設時間為30毫秒。
優(yōu)選的,步驟208-1之后、步驟208-2之前,還包括:藍牙模塊等待第五子預設時間。例如,第五子預設時間為10毫秒。
步驟209:藍牙模塊向上位機返回成功狀態(tài),設置自身狀態(tài)為低功耗待機模式,成功建立藍牙連接。本步驟中藍牙模塊設置自身狀態(tài)為低功耗待機模式具體參考上述步驟2063,在此不再贅述。
本實施例中,上述步驟209中成功建立藍牙連接之后,藍牙模塊等待接收來自上位機的數據,實現安全模塊與上位機的通信。
步驟210:藍牙模塊向上位機返回失敗狀態(tài),設置自身的狀態(tài)為低功耗待機模式,在第十預設時間內被上位機喚醒時,設置自身的狀態(tài)為工作模式,執(zhí)行步驟206;在第十預設時間內沒有被上位機喚醒時,執(zhí)行步驟211。本步驟中藍牙模塊設置自身狀態(tài)為低功耗待機模式以及設置自身狀態(tài)為工作模式具體參考上述步驟2063,在此不再贅述。
步驟211:藍牙模塊設置關機模式,執(zhí)行步驟201。
可選地,上述步驟210中,藍牙模塊在第十預設時間內沒有被上位機喚醒時,執(zhí)行步驟211之前,還包括:藍牙模塊設置自身的狀態(tài)為工作模式。相應地,步驟211具體為:藍牙模塊設置自身狀態(tài)為工作模式之后,設置關機模式。
可選地,上述步驟202中,藍牙模塊設置自身的狀態(tài)為工作模式,具體為:藍牙模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化。例如,藍牙模塊將自身的時鐘設置為高速時鐘模式,具體為:藍牙模塊將自身的時鐘頻率設置為2.5MHz;例如,藍牙模塊對自身的硬件設備進行初始化具體為:藍牙模塊對自身的電容等電路器件進行初始化。相應地,上述步驟211具體為:藍牙模塊執(zhí)行關機操作;藍牙模塊執(zhí)行關機操作時,藍牙模塊將藍牙安全設備的電源關閉。
相應地,上述步驟102中,安全模塊設置自身的狀態(tài)為工作模式,具體為:安全模塊上電,將自身的時鐘設置為高速時鐘模式,并對自身的硬件設備進行初始化。例如,安全模塊將時鐘設置為高速時鐘模式,具體為:安全模塊將自身的時鐘頻率設置為2.5MHz。例如,安全模塊對自身的硬件設備進行初始化具體為:安全模塊對自身的電容等電路器件進行初始化。
可選地,上述步驟202中,藍牙模塊設置自身的狀態(tài)為工作模式,具體為:藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;
相應地,上述步驟211具體為:藍牙模塊設置自身的狀態(tài)為深度睡眠模式。具體地,藍牙模塊設置自身的狀態(tài)為深度睡眠模式,具體為:藍牙模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。例如,藍牙模塊關閉與自身連接的外圍耗電設備包括顯示模塊;藍牙模塊關閉自身的無關模塊包括通訊模塊(如SPI/UART/I2C)。
本實施例中,當藍牙模塊由深度睡眠模式設置自身的狀態(tài)為工作模式時只對藍牙模塊的芯片主核上電,無需對藍牙模塊的電路器件進行初始化,提高了開機速度。例如,藍牙模塊無需對電路器進行初始化,以電容為例,藍牙模塊由深度睡眠模式轉換為工作模式時,藍牙模塊不用對電容進行充電。
相應地,上述步驟102中,安全模塊設置自身的狀態(tài)為工作模式,具體為:安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式。
相應地,上述步驟103中還包括:安全模塊在設置自身狀態(tài)為工作模式之后的第六預設時間內沒有接收到預設的通信確認數據時,設置自身的狀態(tài)為深度睡眠模式。具體地,安全模塊設置自身的狀態(tài)為深度睡眠模式,具體為:安全模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。例如,安全模塊關閉與自身連接的外圍耗電設備包括顯示模塊;安全模塊關閉的無關模塊包括算法模塊、通訊模塊(如SPI/UART/I2C)、存儲模塊。
進一步可選地,上述步驟105中,還包括:安全模塊在第七預設時間內沒有接收到連接指令時,設置自身的狀態(tài)為深度睡眠模式。
可選地,上述步驟105中,還包括:安全模塊在第七預設時間內沒有接收到連接指令時,設置自身的狀態(tài)為低功耗待機模式,被藍牙模塊喚醒并接收到藍牙模塊的關機指令時,向藍牙模塊返回關機指令應答,設置自身的狀態(tài)為深度睡眠模式。
相應地,上述步驟211具體為:藍牙模塊喚醒安全模塊,向安全模塊發(fā)送關機指令,接收到來自安全模塊的關機指令應答時,設置自身的狀態(tài)為深度睡眠模式;具體地,藍牙模塊設置自身的狀態(tài)為深度睡眠模式,具體為:藍牙模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。例如,藍牙模塊關閉與自身連接的外圍耗電設備包括顯示模塊;藍牙模塊關閉自身的無關模塊包括通訊模塊(如SPI/UART/I2C)。
相應地,上述步驟202中,藍牙模塊設置自身的狀態(tài)為工作模式,具體為:藍牙模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式;
相應地,上述步驟102中,安全模塊設置自身的狀態(tài)為工作模式,具體為:安全模塊給自身的芯片主核上電,將自身的時鐘設置為高速時鐘模式。
進一步地,上述步驟103中還包括:安全模塊在設置自身狀態(tài)為工作模式之后的第六預設時間內沒有接收到預設的通信確認數據時,設置自身的狀態(tài)為深度睡眠模式。具體地,安全模塊設置自身的狀態(tài)為深度睡眠模式,具體為:安全模塊將自身的芯片主核下電,關閉自身的無關模塊,保持自身的喚醒模塊有電,并關閉與自身連接的外圍設備。例如,安全模塊關閉與自身連接的外圍耗電設備包括顯示模塊;安全模塊關閉的無關模塊包括算法模塊、通訊模塊(如SPI/UART/I2C)、存儲模塊。
可選地,上述步驟207中,藍牙模塊組織連接指令之前,還包括:藍牙模塊生成隨機數,并對隨機數進行保存;
相應地,步驟207中,藍牙模塊組織連接指令,具體為:藍牙模塊根據生成的隨機數組織連接指令;
例如,藍牙模塊生成的隨機數為00000000,根據隨機數組織的連接指令為6B04 00 00 00 00 01 01;其中,第一個字節(jié)6B為指令頭;第二字節(jié)04表示隨機數的長度為4個字節(jié);第三個字節(jié)至第六個字節(jié)為隨機數00 00 00 00;第七個字節(jié)為指令序號,01代表第一條指令;第八個字節(jié)01代表連接指令。
相應地,上述步驟209中藍牙模塊設置自身狀態(tài)為低功耗待機模式之后、成功建立藍牙連接之前,還包括:藍牙模塊接收來自上位機的操作事件,設置自身的狀態(tài)為工作模式,當操作事件中包括隨機數,并且操作事件中的隨機數與自身保存的隨機數相同時,向上位機返回成功的狀態(tài)應答,設置自身的狀態(tài)為低功耗待機模式,成功建立藍牙連接。
相應地,上述步驟103中安全模塊在第七預設時間內接收到連接指令時,還包括:安全模塊從連接指令中獲取隨機數,并顯示隨機數。
可選地,上述步驟105中,安全模塊在第七預設時間內接收到連接指令時,還包括:安全模塊生成并顯示隨機數,并對隨機數進行保存;
相應地,上述步驟209中,藍牙模塊向上位機返回成功狀態(tài),設置自身狀態(tài)為低功耗待機模式之后、成功建立藍牙連接之前,還包括:
步驟L1:藍牙模塊接收來自上位機的操作事件,設置自身狀態(tài)為工作模式,喚醒安全模塊,并將操作事件在第八預設時間之后發(fā)送給安全模塊;本步驟中,藍牙模塊設置自身狀態(tài)為工作模式與步驟2063相同,在此不再贅述。
步驟L2:藍牙模塊判斷在第十一預設時間內是否接收到成功的狀態(tài)應答,是則向上位機返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式,成功建立藍牙連接;否則,當在第十一預設時間內接收到失敗的狀態(tài)應答時,向上位機返回失敗的狀態(tài)應答,執(zhí)行步驟211,當在第十一預設時間內沒有接收來自安全模塊的狀態(tài)應答時,向上位機返回失敗狀態(tài),執(zhí)行步驟211;本步驟中,藍牙模塊設置自身狀態(tài)為低功耗待機模式與步驟2063相同,在此不再贅述。
相應地,上述步驟105之后還包括:
步驟N1:安全模塊被藍牙模塊喚醒時,設置自身狀態(tài)為工作模式,判斷在第十二預設時間內是否接收到來自藍牙模塊的操作事件,在第十二預設時間內接收到來自藍牙模塊的操作事件,當操作事件中包括隨機數,并且操作事件中的隨機數與自身保存的隨機數相同時,向藍牙模塊返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式,當操作事件中包括隨機數,并且操作事件中的隨機數與自身保存的隨機數不相同時,或者操作事件中不包括隨機數時,向藍牙模塊返回失敗的狀態(tài)應答。本步驟中,安全模塊設置自身狀態(tài)為工作模式,具體為安全模塊將自身的時鐘設置為高速時鐘模式;進一步地,安全模塊設置自身狀態(tài)為工作模式時,還可以開啟自身的無關模塊和/或與自身連接的外圍設備。
具體地,步驟211中藍牙模塊設置關機模式,具體為:藍牙模塊執(zhí)行關機操作;相應地,步驟N1中安全模塊向藍牙模塊返回失敗的狀態(tài)應答之后,當藍牙模塊執(zhí)行關機操作之后,安全模塊也斷電,執(zhí)行步驟101。
具體地,步驟211中藍牙模塊設置關機模式,具體為:藍牙模塊設置自身的狀態(tài)為深度睡眠模式;相應地,上述步驟N1中安全模塊向藍牙模塊返回失敗的狀態(tài)應答之后,還包括:安全模塊設置自身狀態(tài)為深度睡眠模式,執(zhí)行步驟101。
本實施例步驟209中,藍牙模塊向上位機返回成功狀態(tài)之后,上位機彈出一個隨機數輸入框,當用戶在預設時間內在上位機的隨機數輸入框中輸入安全模塊顯示的隨機數并確認提交之后,藍牙模塊接收到來自上位機的確認事件和隨機數并觸發(fā)驗證隨機數事件;當用戶按上位機的取消按鍵時,藍牙模塊接收到取消事件并觸發(fā)驗證隨機數事件;當用戶在預設時間內沒有按取消鍵也沒有按確認鍵時,藍牙模塊接收到超時事件并觸發(fā)驗證隨機數事件。
具體地,上述步驟L1具體為:藍牙模塊接收來自上位機的操作事件,設置自身狀態(tài)為工作模式,根據操作事件觸發(fā)驗證隨機數事件生成驗證狀態(tài),根據驗證狀態(tài)組織驗證狀態(tài)指令,喚醒安全模塊,并將驗證狀態(tài)指令在第八預設時間之后發(fā)送給安全模塊。
進一步具體地,上述藍牙模塊根據操作事件觸發(fā)驗證隨機數事件生成驗證狀態(tài),根據驗證狀態(tài)組織驗證狀態(tài)指令,具體包括:
步驟a11:藍牙模塊判斷接收的操作事件,當接收的操作事件為確認事件時,執(zhí)行步驟a12;操作事件為取消事件時,執(zhí)行步驟a13;操作事件為超時事件時,執(zhí)行步驟a14;
步驟a12:藍牙模塊觸發(fā)驗證隨機數事件,當操作事件中包括隨機數時,生成成功的驗證狀態(tài),并根據成功的驗證狀態(tài)和隨機數組織驗證狀態(tài)指令;當操作事件中不包括隨機數時生成失敗的驗證狀態(tài),并根據失敗的驗證狀態(tài)組織驗證狀態(tài)指令;
步驟a13:藍牙模塊觸發(fā)驗證隨機數事件,生成取消的驗證狀態(tài),根據取消的驗證狀態(tài)組織驗證狀態(tài)指令;
步驟a14:藍牙模塊觸發(fā)驗證隨機數事件,生成超時的驗證狀態(tài),根據超時的驗證狀態(tài)組織驗證狀態(tài)指令。
例如,藍牙模塊根據成功的驗證狀態(tài)組織驗證狀態(tài)指令時,組織的驗證指令為6B0100000000020200(第九字節(jié)為00,第三至第六字節(jié)為隨機數);當驗證狀態(tài)為成功時,驗證狀態(tài)指令的第九字節(jié)為00;當驗證狀態(tài)為取消時,驗證狀態(tài)指令的第九字節(jié)為01;當驗證狀態(tài)為失敗時,驗證狀態(tài)指令的第九字節(jié)為02;當驗證狀態(tài)為超時時,驗證狀態(tài)指令的第九字節(jié)為03。
相應地,上述步驟N1具體為:安全模塊被藍牙模塊喚醒時,設置自身狀態(tài)為工作模式,判斷在第十二預設時間內是否接收到來自藍牙模塊的驗證狀態(tài)指令,在第十二預設時間內接收到來自藍牙模塊的驗證狀態(tài)指令,當驗證狀態(tài)指令中包括隨機數,并且驗證狀態(tài)指令中的隨機數與自身保存的隨機數相同時,向藍牙模塊返回成功的狀態(tài)應答,設置自身狀態(tài)為低功耗待機模式,當驗證狀態(tài)指令中包括隨機數,并且驗證狀態(tài)指令中的隨機數與自身保存的隨機數不相同,或者操作事件中不包括隨機數時,向藍牙模塊返回失敗的狀態(tài)應答。進一步地,步驟N1中還包括:安全模塊判斷驗證狀態(tài)指令中的驗證狀態(tài)是否為成功,例如,當驗證狀態(tài)指令中第九字節(jié)為00時,驗證狀態(tài)為成功;當驗證狀態(tài)指令中的第九字節(jié)為01、或02、或03時,驗證狀態(tài)為失敗。
本實施例中,上述藍牙模塊設置自身的狀態(tài)為低功耗待機模式,具體為:藍牙模塊關閉與自身連接的外圍設備和/或關閉自身的無關模塊;
進一步地,藍牙模塊設置自身的狀態(tài)為低功耗待機模式時,還包括:藍牙模塊將時鐘設置為低速時鐘模式,將自身的芯片設置為睡眠模式。例如,藍牙模塊將時鐘頻率由2.5MHz切換為0.07MHz(工作模式的時鐘頻率為2.5MHz,低功耗待機模式的時鐘頻率為0.07MHz);藍牙模塊關閉與自身連接的顯示模塊等外圍耗電設備。
本發(fā)明中,安全模塊處于關機狀態(tài)時,安全模塊下電,被藍牙模塊喚醒時,首先要上電(具體地,安全模塊上電具體為藍牙通過LDO或者MOS管給安全模塊供電),將時鐘設置為高速時鐘模式,并對自身的硬件進行初始化;
安全模塊處于深度睡眠模式時,安全模塊中的安全芯片的主核下電,與安全模塊連接的外圍設備關閉,同時安全模塊中的無關模塊(如通訊模塊、算法模塊、存儲模塊)關閉,只有喚醒模塊有電,被藍牙模塊喚醒后,安全模塊通過喚醒模塊喚醒,對自身的芯片主核上電,設置時鐘為高速時鐘模式;
安全模塊處于低功耗待機模塊時,安全模塊只關閉功耗較大的外圍設備,安全芯片有電,自身的時鐘為低速時鐘模式,并且安全模塊的芯片設置為睡眠模式,被藍牙模塊喚醒時,將時鐘設置為高速時鐘模式。
本實施例中,藍牙模塊處于關機狀態(tài)時,藍牙模塊下電,接收到開機事件時,藍牙芯片上電(具體地,藍牙模塊接收到開機事件具體為:用戶按下藍牙安全設備的開機按鍵后,觸發(fā)開機事件),將自身的時鐘設置為高速時鐘模式,對自身的硬件進行初始化;
藍牙模塊處于深度睡眠模式時,藍牙模塊中的芯片主核下電,與藍牙模塊連接的外圍設備關閉,同時藍牙模塊中的無關模塊(如通訊模塊SPI/UART/I2C)關閉,只有喚醒模塊有電,接收到開機事件時,通過喚醒模塊喚醒,對藍牙芯片的主核上電,設置時鐘為高速時鐘模式;
藍牙模塊處于低功耗待機模塊時,藍牙模塊只關閉功耗較大的外圍設備,藍牙芯片有電,藍牙模塊的時鐘可以設置為為低速時鐘模式,并且藍牙芯片處于睡眠模式,被上位機喚醒時,將時鐘設置為高速時鐘模式。
本發(fā)明中,藍牙模塊和安全模塊設置自身狀態(tài)為低功耗待機模式時將自身的芯片設置為睡眠模式,同時將自身的時鐘設置為低速時鐘模式,可以進一步降低功耗。如果只將自身的時鐘設置為低速時鐘模式,不將芯片設置為睡眠模式,芯片會繼續(xù)執(zhí)行工作程序,當將芯片設置為睡眠模式之后,芯片停止執(zhí)行工作程序。
本實施例中,藍牙安全設備的外圍設備包括顯示模塊,但不限于顯示模塊,上述顯示模塊與安全模塊連接,但不限于此連接方式。例如,顯示模塊可以與安全模塊和/或藍牙模塊連接。
需要說明的是,本發(fā)明中安全模塊可以具體為一個安全芯片以及與安全芯片連接的外圍電路,無關模塊(如通信模塊、存儲模塊、算法模塊)集成在安全芯片中;安全模塊也可以包括安全芯片、無關模塊以及與安全芯片連接的外圍電路,其中無關模塊可以集成在安全芯片中,也可以是與安全芯片連接的獨立結構,例如,無關模塊中的通信模塊集成在安全芯片中,無關模塊中的算法模塊為與安全芯片連接的獨立結構。本發(fā)明中,對安全模塊與安全芯片連接的外圍電路的設計方式不做具體限定。
本實發(fā)明中藍牙模塊可以具體為一個藍牙芯片以及與藍牙芯片連接的外圍電路,無關模塊(如通信模塊)集成在藍牙芯片中;藍牙模塊也可以包括藍牙芯片、無關模塊以及與藍牙芯片連接的外圍電路,其中無關模塊可以集成在藍牙芯片中,也可以是與藍牙芯片連接的獨立結構,例如,無關模塊中的通信模塊集成在藍牙芯片中,通信模塊也可以為與藍牙芯片連接獨立結構。本發(fā)明中,對藍牙模塊中與藍牙芯片連接的外圍電路不做具體限定。
本發(fā)明中,藍牙芯片和藍牙模塊的芯片屬于同一個概念,安全芯片和安全模塊的芯片屬于同一個概念。
本發(fā)明中所涉及的UART、SPI、I2C、USB分別為UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器),SPI(Serial Peripheral Interface,串行外設接口),I2C(Inter-Integrated Circuit,內部集成電路),USB(Universal Serial Bus,通用串行總線)。
本實施例與現有技術相比的有益效果是:藍牙安全設備與上位機建立藍牙連接過程中,藍牙安全設備中的藍牙模塊執(zhí)行完相應操作之后立即設為低功耗待機模式或者關機模式,藍牙安全設備中的安全模塊執(zhí)行完相應操作之后立即設為低功耗待機模式,如此可以有效節(jié)省電源,延長藍牙安全設備的待機時長,用戶體驗較好。
實施例3
本實施例提供一種藍牙安全設備,如圖5所示,包括藍牙模塊1和安全模塊2,藍牙模塊1包括:
第一等待接收模塊11,用于等待接收開機事件;
第一設置模塊12,用于當第一等待接收模塊11接收到開機事件時,設置藍牙模塊1的狀態(tài)為工作模式;
第一判斷模塊13,用于判斷是否在第一設置模塊12設置藍牙模塊1的狀態(tài)為工作模式之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
第一組織模塊14,用于當第一判斷模塊13判斷結果為是時,組織連接指令;
第一喚醒模塊15,用于第一判斷模塊13判斷結果為是之后或者第一組織模塊14組織連接指令之后,喚醒安全模塊;
第一發(fā)送模塊17,用于第一喚醒模塊15喚醒安全模塊的第四預設時間之后,將第一組織模塊14組織的連接指令發(fā)送給安全模塊;
第二等待接收模塊16,用于等待接收連接指令的應答;
第一發(fā)送模塊17,還用于當第二等待接收模塊16在第一喚醒模塊15喚醒安全模塊2的第五預設時間之內接收到來自安全模塊2的連接指令的應答時,向上位機返回成功狀態(tài);
第二設置模塊18,用于第一發(fā)送模塊17向上位機返回成功狀態(tài)之后,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
關機設置模塊19,用于當第一判斷模塊13判斷結果為否時,設置關機模式;
第一等待接收模塊11,還用于當關機設置模塊19設置關機模式之后,等待接收開機事件;
安全模塊2包括:
第一等待喚醒模塊21,用于等待被藍牙模塊1喚醒;
第三設置模塊22,用于當第一等待喚醒模塊21被藍牙模塊喚醒時,設置安全模塊的狀態(tài)為工作模式;
第三等待接收模塊23,用于等待接收來自藍牙模塊1的連接指令;
第二組織模塊24,用于當第三等待接收模塊23在第三設置模塊22設置安全模塊2的狀態(tài)為工作模式之后的第七預設時間內接收到連接指令時,組織連接指令的應答;
第二發(fā)送模塊25,用于將第二組織模塊24組織的連接指令的應答返回藍牙模塊1;
第四設置模塊26,用于第二發(fā)送模塊25將連接指令的應答返回藍牙模塊1之后,設置安全模塊2的狀態(tài)為低功耗待機模式。
具體地,本實施例上述藍牙安全設備中,第一判斷模塊13包括監(jiān)聽判斷子模塊、超時判斷子模塊、第一設置子模塊;
監(jiān)聽判斷子模塊,用于當第一設置模塊12設置藍牙模塊1的狀態(tài)為工作模式之后,判斷是否監(jiān)聽到來自上位機的藍牙連接事件;
相應地,第一組織模塊14,具體用于當監(jiān)聽判斷子模塊判斷結果為監(jiān)聽到來自上位機的藍牙連接事件時,組織連接指令;
超時判斷子模塊,用于當監(jiān)聽判斷子模塊判斷結果為沒有監(jiān)聽到來自上位機的藍牙連接事件時,判斷從第一設置模塊12設置藍牙模塊1的狀態(tài)為工作模式到當前時間是否超過第三預設時間;
關機設置模塊19,具體用于當超時判斷子模塊判斷結果為是時,設置關機模式;
第二設置模塊18,還用于當超時判斷子模塊判斷結果為否時,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
第一設置子模塊,用于超時判斷子模塊判斷結果為否時,并且第二設置模塊18設置藍牙模塊1的狀態(tài)為低功耗待機模式之后等待被上位機喚醒,當藍牙模塊1被上位機喚醒時,設置藍牙模塊1的狀態(tài)為工作模式;
監(jiān)聽判斷子模塊,還用于第一設置子模塊設置藍牙模塊1的狀態(tài)為工作模式之后,判斷是否監(jiān)聽到來自上位機的藍牙連接事件。
具體地,本實施例上述藍牙安全設備中,第一喚醒模塊15,具體用于第一判斷模塊13判斷結果為是之后或者第一組織模塊14組織連接指令之后,拉高藍牙模塊1與安全模塊2連接的第二控制管腳的電平。
具體地,本實施例上述藍牙安全設備中,第一設置模塊12,具體用于當第一等待接收模塊11接收到開機事件時給藍牙模塊上電,將藍牙模塊1的時鐘設置為高速時鐘模式,并對藍牙模塊1的硬件設備進行初始化;
相應地,關機設置模塊19,具體用于當第一判斷模塊13的判斷結果為否時,執(zhí)行關機操作;
第三設置模塊22,具體用于第一等待喚醒模塊21被藍牙模塊1喚醒時給安全模塊上電,將安全模塊2的時鐘設置為高速時鐘模式,并對安全模塊2的硬件設備進行初始化。
或者,第一設置模塊12,還可以具體用于當第一等待接收模塊11接收到開機事件時,給藍牙模塊1的芯片主核上電,將藍牙模塊1的時鐘設置為高速時鐘模式;
相應地,關機設置模塊19,具體用于當第一判斷模塊13的判斷結果為否時,設置藍牙模塊1的狀態(tài)為深度睡眠模式;
第三設置模塊22,具體用于當第一等待喚醒模塊21被藍牙模塊1喚醒時,給安全模塊2的安全模塊的芯片主核上電,將安全模塊2的時鐘設置為高速時鐘模式;
相應地,安全模塊2還包括:
深度睡眠模式設置模塊,用于當第三等待接收模塊23在第三設置模塊22設置安全模塊2的狀態(tài)為工作模式之后的第七預設時間內沒有接收到連接指令時,設置安全模塊2的狀態(tài)為深度睡眠模式。
或者,第一設置模塊12,還可以具體用于當第一等待接收模塊11接收到開機事件時,給藍牙模塊1的藍牙模塊的芯片主核上電,將藍牙模塊1的時鐘設置為高速時鐘模式;
相應地,第一喚醒模塊15,還用于當第一判斷模塊13的判斷結果為否時,喚醒安全模塊2;
第一發(fā)送模塊17,還用于當第一判斷模塊13的判斷結果為否、并且第一喚醒模塊15喚醒安全模塊2時,向安全模塊2發(fā)送關機指令;
第二等待接收模塊16,還用于等待接收來自安全模塊2的關機指令應答;
關機設置模塊19,具體用于第一發(fā)送模塊17向安全模塊2發(fā)送關機指令之后,第二等待接收模塊16接收到來自安全模塊2的關機指令應答時,設置藍牙模塊1的狀態(tài)為深度睡眠模式;
第三設置模塊22,具體用于第一等待喚醒模塊21被藍牙模塊1喚醒時,給安全模塊2的芯片主核上電,將安全模塊2的時鐘設置為高速時鐘模式;
第四設置模塊26,還用于第三等待接收模塊23在第七預設時間內沒有接收到連接指令時,設置安全模塊2的狀態(tài)為低功耗待機模式;
安全模塊2還包括第二等待喚醒模塊、第五等待接收模塊和深度睡眠模式設置模塊;
第二等待喚醒模塊,用于第四設置模塊26設置安全模塊2的狀態(tài)為低功耗待機模式之后,等待被藍牙模塊1喚醒;
第五等待接收模塊,用于第二等待喚醒模塊被藍牙模塊1喚醒時,等待接收藍牙模塊1的關機指令;
第二發(fā)送模塊25,還用于第五等待接收模塊接收到藍牙模塊1的關機指令時,向藍牙模塊1返回關機指令應答;
深度睡眠模式設置模塊,用于第二發(fā)送模塊25向藍牙模塊1返回關機指令應答之后,設置安全模塊2的狀態(tài)為深度睡眠模式。
可選地,本實施例上述藍牙安全設備中,藍牙模塊1在包括第一等待接收模塊11、第一設置模塊12、第一判斷模塊13、第一組織模塊14、第一喚醒模塊15、第一發(fā)送模塊17、第二等待接收模塊16、第二設置模塊18和關機設置模塊19的基礎上,還包括第三等待喚醒模塊和第六設置模塊;
第一發(fā)送模塊17,還用于當第二等待接收模塊16在第一喚醒模塊15喚醒安全模塊2的第五預設時間之內沒有接收到來自安全模塊2的連接指令的應答時,向上位機返回失敗狀態(tài);
第二設置模塊18,還用于第一發(fā)送模塊17向上位機返回失敗狀態(tài)之后,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
第三等待喚醒模塊,用于等待被上位機喚醒;
第六設置模塊,用于第二設置模塊18設置藍牙模塊1的狀態(tài)為低功耗待機模式之后,第三等待喚醒模塊在第十預設時間內被上位機喚醒時,設置藍牙模塊1的狀態(tài)為工作模式;
第一判斷模塊13,還用于第三等待喚醒模塊在第十預設時間內被上位機喚醒時,判斷是否在第六設置模塊設置藍牙模塊1的狀態(tài)為工作模式之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
關機設置模塊19,還用于第二設置模塊18設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后,第三等待喚醒模塊在第十預設時間內沒有被上位機喚醒時,設置關機模式。
具體地,第二等待接收模塊16包括接收判斷子模塊和判斷超時子模塊;
接收判斷子模塊,用于第一發(fā)送模塊17將所述第一組織模塊14組織的所述連接指令發(fā)送給所述安全模塊之后,判斷是否接收到連接指令的應答;
相應地,第一發(fā)送模塊17,具體用于接收判斷子模塊判斷接收到連接指令的應答時,向上位機返回成功狀態(tài);
第二設置模塊18,具體用于接收判斷子模塊判斷接收到連接指令的應答,并且第一發(fā)送模塊17向上位機返回成功狀態(tài)之后,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
判斷超時子模塊,用于接收判斷子模塊的判斷結果為沒有接收到連接指令的應答時,判斷從第一發(fā)送模塊17第一次向安全模塊2發(fā)送連接指令到當前時間是否超過第五預設時間;
第一發(fā)送模塊17,還用于判斷超時子模塊判斷結果為是時,向上位機返回失敗狀態(tài);
第二設置模塊18,還用于第一發(fā)送模塊17向上位機返回失敗狀態(tài)之后,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
第六設置模塊,具體用于所述第一發(fā)送模塊17向所述上位機返回失敗狀態(tài),并且所述第二設置模塊18設置所述藍牙模塊的狀態(tài)為低功耗待機模式之后,當所述第三等待喚醒模塊在第十預設時間內被上位機喚醒時,設置所述藍牙模塊的狀態(tài)為工作模式
第一發(fā)送模塊17,還用于判斷超時子模塊判斷結果為否時,重新向安全模塊2發(fā)送連接指令;
接收判斷子模塊,還用于第一發(fā)送模塊17重新向安全模塊2發(fā)送連接指令之后,判斷是否接收到連接指令的應答。
可選地,本實施例上述藍牙安全設備中,藍牙模塊1在包括第一等待接收模塊11、第一設置模塊12、第一判斷模塊13、第一組織模塊14、第一喚醒模塊15、第一發(fā)送模塊17、第二等待接收模塊16、第二設置模塊18和關機設置模塊19的基礎上,還包括第二喚醒模塊、第二判斷模塊、第三發(fā)送模塊和第三判斷模塊;
第二喚醒模塊,用于第一設置模塊12設置藍牙模塊1的狀態(tài)為工作模式之后,喚醒安全模塊2;
第二判斷模塊,用于判斷在第二喚醒模塊喚醒安全模塊2之后的第一預設時間內是否收到安全模塊2被喚醒的通知;
相應地,關機設置模塊19,還用于當第二判斷模塊的判斷結果為否時,設置關機模式;
第三發(fā)送模塊,用于第二判斷模塊的判斷結果為是時,向安全模塊2發(fā)送預設的通信確認數據;
第三判斷模塊,用于判斷在第三發(fā)送模塊向安全模塊2發(fā)送預設的通信確認數據之后的第二預設時間之內是否收到安全模塊2確認通信的通知;
第一判斷模塊13,具體用于判斷是否在第三判斷模塊的判斷結果為是之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
關機設置模塊19,還用于當第三判斷模塊的判斷結果為否時,設置關機模式;
相應地,安全模塊2在包括第一等待喚醒模塊21、第三設置模塊22、第三等待接收模塊23、第二組織模塊24、第二發(fā)送模塊25和第四設置模塊26的基礎上,還包括第二等待喚醒模塊、第一通知模塊、第五設置模塊、第四等待接收模塊和第二通知模塊;
第二等待喚醒模塊,用于等待被藍牙模塊1喚醒;
第一通知模塊,用于第二等待喚醒模塊被藍牙模塊1喚醒時,通知藍牙模塊1安全模塊2被喚醒;
第五設置模塊,用于第二等待喚醒模塊被藍牙模塊1喚醒時,設置安全模塊2的狀態(tài)為工作模式;
第四等待接收模塊,用于等待接收通信確認數據;
第二通知模塊,用于第五設置模塊設置安全模塊2的狀態(tài)為工作模式之后的第六預設時間內第四等待接收模塊接收到預設的通信確認數據時,通知藍牙模塊1確認通信;
第四設置模塊26,還用于第二通知模塊通知藍牙模塊1確認通信之后,設置安全模塊2的狀態(tài)為低功耗待機模式;
第一等待喚醒模塊21,具體用于第二通知模塊通知藍牙模塊1確認通信,并且第四設置模塊26設置安全模塊2的狀態(tài)為低功耗待機模式之后,等待被藍牙模塊1喚醒。
具體地,第一判斷模塊13包括監(jiān)聽判斷子模塊、超時判斷子模塊、第一設置子模塊;
監(jiān)聽判斷子模塊,用于第三判斷模塊判斷結果為是時,判斷是否監(jiān)聽到來自上位機的藍牙連接事件;
相應地,第一組織模塊14,具體用于當監(jiān)聽判斷子模塊判斷結果為監(jiān)聽到來自上位機的藍牙連接事件時,組織連接指令;
超時判斷子模塊,用于當監(jiān)聽判斷子模塊判斷結果為沒有監(jiān)聽到來自上位機的藍牙連接事件時,判斷從第三判斷模塊判斷結果為是到當前時間是否超過第三預設時間;
關機設置模塊19,具體用于當超時判斷子模塊判斷結果為是時,設置關機模式;
第二設置模塊18,還用于當超時判斷子模塊判斷結果為否時,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
第一設置子模塊,用于當超時判斷子模塊判斷結果為否時,并且第二設置模塊18設置藍牙模塊1的狀態(tài)為低功耗待機模式之后等待被上位機喚醒,當被上位機喚醒時,設置藍牙模塊1的狀態(tài)為工作模式;
監(jiān)聽判斷子模塊,還用于第一設置子模塊設置藍牙模塊1的狀態(tài)為工作模式之后,判斷是否監(jiān)聽到來自上位機的藍牙連接事件。
具體地,第一設置模塊12,具體用于給藍牙模塊1上電,將藍牙模塊1的時鐘設置為高速時鐘模式,并對藍牙模塊1的硬件設備進行初始化;
相應地,關機設置模塊19,具體用于執(zhí)行關機操作;
第五設置模塊,具體用于給安全模塊上電,將安全模塊2的時鐘設置為高速時鐘模式,并對安全模塊2的硬件設備進行初始化。
或者,第一設置模塊12,還可以具體用于給藍牙模塊1的藍牙模塊的芯片主核上電,將藍牙模塊1的時鐘設置為高速時鐘模式;
相應地,關機設置模塊19,具體用于設置藍牙模塊1的狀態(tài)為深度睡眠模式;
第五設置模塊,具體用于給安全模塊2的安全模塊的芯片主核上電,將安全模塊2的時鐘設置為高速時鐘模式;
相應地,安全模塊2在包括第二等待喚醒模塊、第一通知模塊、第五設置模塊、第四等待接收模塊和第二通知模塊的基礎上,還包括:
深度睡眠模式設置模塊,用于第五設置模塊設置安全模塊2的狀態(tài)為工作模式之后的第六預設時間內,第四等待接收模塊沒有接收到預設的通信確認數據時,設置安全模塊2的狀態(tài)為深度睡眠模式。
具體地,第二喚醒模塊,具體用于第一設置模塊12設置藍牙模塊1的狀態(tài)為工作模式之后,拉高藍牙模塊1與安全模塊2連接的第二控制管腳的電平;
相應地,第一喚醒模塊15,具體用于第一判斷模塊13判斷結果為是之后或者第一組織模塊14組織連接指令之后,拉低藍牙模塊1與安全模塊2連接的第一控制管腳的電平。
具體地,第三設置模塊22,具體用于當第一等待喚醒模塊21被藍牙模塊1喚醒時,將安全模塊2的時鐘設置為高速時鐘模式。
具體地,第二判斷模塊,具體用于判斷在第二喚醒模塊喚醒安全模塊2之后的第一預設時間內藍牙模塊1與安全模塊2連接的第一控制管腳的電平是否為低;
相應地,第三發(fā)送模塊,具體用于第二判斷模塊判斷的結果為是時,向安全模塊2發(fā)送預設的通信確認數據;
關機設置模塊19,具體用于第二判斷模塊判斷的結果為否時,設置關機模式;
第一通知模塊,具體用于第二等待喚醒模塊被藍牙模塊1喚醒時,拉低安全模塊2與藍牙模塊1連接的第一控制管腳的電平。
具體地,第三判斷模塊,具體用于判斷在第三發(fā)送模塊向安全模塊2發(fā)送預設的通信確認數據之后的第二預設時間之內藍牙模塊1與安全模塊2連接的第一控制管腳的電平是否被拉高;
相應地,第一判斷模塊13,具體用于判斷是否在第三判斷模塊判斷結果為藍牙模塊1與安全模塊2連接的第一控制管腳的電平被拉高之后的第三預設時間之內監(jiān)聽到來自上位機的藍牙連接事件;
關機設置模塊19,具體用于當第三判斷模塊判斷結果為否時,設置關機模式;
第二通知模塊,具體用于第五設置模塊設置安全模塊2的狀態(tài)為工作模式之后的第六預設時間內第四等待接收模塊接收到預設的通信確認數據時,拉高安全模塊2與藍牙模塊1連接的第一控制管腳的電平。
可選地,本實施例上述藍牙安全設備中,藍牙模塊1在包括第一等待接收模塊11、第一設置模塊12、第一判斷模塊13、第一組織模塊14、第一喚醒模塊15、第一發(fā)送模塊17、第二等待接收模塊16、第二設置模塊18和關機設置模塊19的基礎上,或者藍牙模塊在包括的第二喚醒模塊、第二判斷模塊、第三發(fā)送模塊和第三判斷模塊基礎上,還包括生成模塊、保存模塊、第一接收模塊和第六設置模塊;
生成模塊,用于生成隨機數;
保存模塊,用于保存生成模塊生成的隨機數;
相應地,第一組織模塊14,具體用于根據生成模塊生成的隨機數組織連接指令;
第一接收模塊,用于等待接收來自上位機的操作事件;
第六設置模塊,用于第一發(fā)送模塊17向上位機返回成功狀態(tài),并且第二設置模塊18設置藍牙模塊1的狀態(tài)為低功耗待機模式之后,第一接收模塊接收到來自上位機的操作事件時,設置藍牙模塊1的狀態(tài)為工作模式;
第一發(fā)送模塊17,還用于當第一接收模塊接收的操作事件中包括隨機數,并且操作事件中的隨機數與保存模塊保存的隨機數相同時,向上位機返回成功的狀態(tài)應答;
第二設置模塊18,還用于第一發(fā)送模塊17向上位機返回成功的狀態(tài)應答之后,設置藍牙模塊1的狀態(tài)為低功耗待機模式;
相應地,上述安全模塊2還包括:
顯示模塊,用于從第三等待接收模塊23接收的連接指令中獲取隨機數,并顯示隨機數。
本實施例上述藍牙安全設備中,深度睡眠模式設置模塊,具體用于將安全模塊的芯片主核下電,關閉安全模塊2中的無關模塊,保持安全模塊中的喚醒模塊有電,并關閉與安全模塊2連接的外圍設備。
本實施例上述藍牙安全設備中,關機設置模塊19,具體用于將藍牙模塊的芯片主核下電,關閉藍牙模塊1中的無關模塊,保持藍牙模塊的喚醒模塊有電,并關閉與藍牙模塊1連接的外圍設備。
本實施例上述藍牙安全設備中,第四設置模塊26,具體用于將安全模塊2的時鐘設置為低速時鐘模式、關閉與安全模塊2連接的外圍設備和安全模塊2中的無關模塊,將安全模塊2的安全芯片設置為睡眠模式。
本實施例上述藍牙安全設備中,第二設置模塊18,具體用于關閉與所述藍牙模塊連接的外圍設備和/或關閉所述藍牙模塊中的無關模塊。進一步地,第二設置模塊還用于將所述藍牙模塊的時鐘設置為低速時鐘模式、將所述藍牙模塊的芯片設置為睡眠模式。
本實施例與現有技術相比的有益效果是:藍牙安全設備與上位機建立藍牙連接過程中,藍牙安全設備中的藍牙模塊執(zhí)行完相應操作之后立即設為低功耗待機模式或者關機模式,藍牙安全設備中的安全模塊執(zhí)行完相應操作之后立即設為低功耗待機模式,如此可以有效節(jié)省電源,延長藍牙安全設備的待機時長,用戶體驗較好。
以上,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。