新四季網

一種支持擴展接口的智能密鑰設備的工作方法

2023-10-17 02:03:14 2

一種支持擴展接口的智能密鑰設備的工作方法
【專利摘要】本發明公開了一種支持擴展接口的智能密鑰設備的工作方法,屬於通信【技術領域】。該方法包括:通過擴展接口的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日
【發明者】陸舟, 於華章 申請人:飛天誠信科技股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀