因此應(yīng)用時該24bit數(shù)據(jù)可以為加密數(shù)據(jù)。加密方法可根據(jù)實際需求進行選擇。
[0059]此外,依據(jù)應(yīng)用需求,本方案支持帶校驗碼的方式,即16bit原始數(shù)據(jù)加上Sbit的校驗碼組成24bit數(shù)據(jù),然后再轉(zhuǎn)換成4個鍵值字節(jié)進行傳輸。校驗碼除了可以增強某些自定義無線通信方式的糾錯能力,還可以進一步降低接收端判斷是普通按鍵事件還是自定義數(shù)據(jù)傳輸?shù)母怕省?br>[0060]對于接收端而言,由于接收到的是標(biāo)準(zhǔn)鍵盤的鍵值,幾乎所有操作系統(tǒng)原生支持,無需安裝或修改驅(qū)動程序,所以系統(tǒng)自動產(chǎn)生標(biāo)準(zhǔn)鍵盤事件,并將相應(yīng)的消息發(fā)給已運行的應(yīng)用軟件,由應(yīng)用軟件直接處理。
[0061]接收端上用于接受數(shù)據(jù)的應(yīng)用軟件運行后,接收到系統(tǒng)的鍵盤消息后,對消息中的鍵值進行分析,判斷是普通的按鍵還是自定義的數(shù)據(jù),然后做相應(yīng)的處理即可。
[0062]上述實現(xiàn)方案基于的是系統(tǒng)操作系統(tǒng)支持最廣泛的HID鍵盤協(xié)議,事實上如果針對特定系統(tǒng),例如Android系統(tǒng),也可以基于其支持較好的HID游戲手柄協(xié)議或HID鼠標(biāo)協(xié)議,實現(xiàn)方式類同,本發(fā)明不再詳細說明。
[0063]下面結(jié)合圖2、圖3、圖4對上述示例進行進一步地闡述。
[0064]如圖2和圖3所示,發(fā)送端的數(shù)據(jù)處理流程如下。
[0065]發(fā)送端將數(shù)據(jù)進行加密后傳輸給接收端,每次傳輸?shù)臄?shù)據(jù)為16bit長度。
[0066]步驟301:對待傳輸?shù)?6bit原始數(shù)據(jù)D16’進行加密,得到D16。
[0067]步驟302:對D16生成8bit校驗碼D8
[0068]步驟303:將D16和D8組合得到24bit數(shù)據(jù)D24,其中D8為D24的高8位,D16為D24的低16位。
[0069]步驟304:將D24拆分成4個字節(jié),D60、D61、D62、D63,每個字節(jié)當(dāng)中占6bit有效位。
[0070]步驟305:進行鍵碼轉(zhuǎn)換,將D60、D61、D62、D63分別轉(zhuǎn)換為HID協(xié)議數(shù)據(jù)包中的后四個字節(jié):D4、D5、D6、D7。
[0071]步驟306:準(zhǔn)備HID數(shù)據(jù)包的前四個字節(jié):D0、D1、D2、D3,其中DO和Dl設(shè)為0x00,表示無控制鍵,D2和D3則設(shè)為不常用的0x68和0x69鍵值。
[0072]步驟307:將DO?D7組合成8個字節(jié)的HID數(shù)據(jù)包,進行發(fā)送,模擬鍵盤按鍵按下的動作。
[0073]步驟308:再將DO?D7全部設(shè)為0x00,組合成8個字節(jié)的HID數(shù)據(jù)包,進行發(fā)送,以模擬鍵盤按鍵彈起的動作。
[0074]至此,完成一次數(shù)據(jù)的傳輸。
[0075]如圖4所示,數(shù)據(jù)接收端的處理流程如下:
[0076]步驟401:接收到HID鍵盤類型數(shù)據(jù)包,該數(shù)據(jù)包內(nèi)8個字節(jié)分別為DO?D7。
[0077]步驟402:判斷D2?D7這6個字節(jié)是否均為非O值。若是,則執(zhí)行步驟403 ;若否,則執(zhí)行步驟409。這個步驟的意義在于,6個均為非O的鍵值表示鍵盤同時按下了 6個按鍵,而這種情況在實際應(yīng)用中出現(xiàn)較少,因此本方案在實現(xiàn)數(shù)據(jù)傳輸時每次都會產(chǎn)生完整的6個鍵值的數(shù)據(jù),以進一步減少接收端在判斷所接收的數(shù)據(jù)是其原生支持的HID設(shè)備發(fā)送的還是自定義數(shù)據(jù)轉(zhuǎn)換的鍵值時判斷失誤的概率。
[0078]步驟403:判斷DO和Dl是否均為O且D2、D3是否等于0x68和0x69。若是,則執(zhí)行步驟404 ;若否,則執(zhí)行步驟409。其中,DO和Dl均為O表示沒有控制鍵被按下。
[0079]步驟404:將D4?D7進行鍵碼逆轉(zhuǎn)換,得到D60、D61、D62、D63四個字節(jié)。
[0080]步驟405:將D60?D63四個字節(jié)重組得到24bit的數(shù)據(jù)D24。
[0081]步驟406:取D24的高8位D8和低16位D16。
[0082]步驟407:用D8對D16進行數(shù)據(jù)校驗,若校驗成功,則執(zhí)行步驟408 ;若否,則執(zhí)行步驟409。
[0083]步驟408:對D16進行解密,得到原始數(shù)據(jù)D16’。至此,數(shù)據(jù)接收解析完成。
[0084]步驟409:進行普通按鍵事件處理。
[0085]下面對本發(fā)明的技術(shù)方案的應(yīng)用以及優(yōu)點做示例性介紹。本領(lǐng)域技術(shù)人員應(yīng)該了解,下文只是針對本發(fā)明的應(yīng)用的若干示例性介紹,本發(fā)明的應(yīng)用并不限于此。
[0086]應(yīng)用一:
[0087]某遙控器廠商針對市面上采用Android系統(tǒng)的智能電視開發(fā)了一款遙控器,并針對電視端則開發(fā)了相應(yīng)的App,該App可接收所述遙控器的控制數(shù)據(jù)。該遙控器具有標(biāo)準(zhǔn)的鍵盤功能,可用于實現(xiàn)普通的文字輸入功能,并且還具有一塊手寫板,用于漢字手寫輸入。該遙控器采用了藍牙4.0無線通信方式,并采用了 HID鍵盤協(xié)議,因此電視內(nèi)建的Android系統(tǒng)可以直接識別并連接該遙控器。遙控器在使用時,如果是通過其標(biāo)準(zhǔn)鍵盤按鍵輸入,則是將按鍵的鍵值直接發(fā)送給電視端;如果是通過手寫板的漢字手寫輸入,則將識別得到的16bit漢字內(nèi)碼,采用本發(fā)明的技術(shù)方案轉(zhuǎn)換成標(biāo)準(zhǔn)鍵值發(fā)送給電視端。電視端的App在收到遙控器發(fā)來的鍵值信息時,同樣采用本發(fā)明的技術(shù)方案,進行相應(yīng)的判斷,即可識別出是普通按鍵輸入還是手寫輸入的漢字。
[0088]目前市面上其他手寫遙控器,需要不斷輸入手寫的坐標(biāo)信息,通信時間長,不僅數(shù)據(jù)傳輸?shù)姆€(wěn)定性較差,而且由于傳輸數(shù)據(jù)量大,對于遙控器的功耗也是是不小的負擔(dān)。相比之下,采用本發(fā)明的該遙控器,實現(xiàn)簡單,傳輸數(shù)據(jù)量小,傳輸穩(wěn)定性好,功耗也相應(yīng)較小。
[0089]應(yīng)用二:
[0090]某游戲廠商針對市面上采用Android系統(tǒng)的智能電視開發(fā)了一款游戲平臺App,并針對該游戲平臺App開發(fā)了相應(yīng)的游戲外設(shè)裝置。該裝置具有除了支持游戲平臺App當(dāng)中的各種游戲之外,還具有指紋識別模塊,用于配合游戲平臺內(nèi)建的支付功能。該裝置采用本發(fā)明提供的技術(shù)方案,數(shù)據(jù)傳輸基于的是HID鍵盤協(xié)議,游戲操控的按鍵控制信息通過標(biāo)準(zhǔn)鍵碼傳給電視端,而當(dāng)需要用支付功能時,則將指紋識別的數(shù)據(jù)加密后轉(zhuǎn)換成標(biāo)準(zhǔn)鍵值類型發(fā)給電視端。電視端的游戲平臺App同樣采用本發(fā)明的技術(shù)方案,進行相應(yīng)的判斷,做出相應(yīng)的處理。
[0091]顯然,采用本發(fā)明的數(shù)據(jù)傳輸方法,實現(xiàn)簡單,并且很方便在傳統(tǒng)設(shè)備的功能基礎(chǔ)上進行擴展。
[0092]這里采用的術(shù)語和表述方式只是用于描述,本發(fā)明并不應(yīng)局限于這些術(shù)語和表述。使用這些術(shù)語和表述并不意味著排除任何示意和描述(或其中部分)的等效特征,應(yīng)認(rèn)識到可能存在的各種修改也應(yīng)包含在權(quán)利要求范圍內(nèi)。其他修改、變化和替換也可能存在。相應(yīng)的,權(quán)利要求應(yīng)視為覆蓋所有這些等效物。
[0093]同樣,需要指出的是,雖然本發(fā)明已參照當(dāng)前的具體實施例來描述,但是本技術(shù)領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)認(rèn)識到,以上的實施例僅是用來說明本發(fā)明,在沒有脫離本發(fā)明精神的情況下還可做出各種等效的變化或替換,因此,只要在本發(fā)明的實質(zhì)精神范圍內(nèi)對上述實施例的變化、變型都將落在本申請的權(quán)利要求書的范圍內(nèi)。
【主權(quán)項】
1.一種基于HID協(xié)議的數(shù)據(jù)傳輸方法,其特征在于,接收端的操作系統(tǒng)能基于HID協(xié)議接收其原生支持的HID設(shè)備所發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包包括m+n個字節(jié)的標(biāo)準(zhǔn)數(shù)據(jù)和P個字節(jié)的格式相關(guān)數(shù)據(jù);發(fā)送端并不是所述接收端原生支持的HID設(shè)備類型,所述方法包括: a.所述發(fā)送端利用一加密算法對原始數(shù)據(jù)進行加密; b.所述發(fā)送端對加密后的數(shù)據(jù)生成校驗碼; c.所述發(fā)送端將所述加密后的數(shù)據(jù)和所述校驗碼相組合后的數(shù)據(jù)拆分成m個字節(jié); d.所述發(fā)送端將所述m個字節(jié)轉(zhuǎn)換成所述接收端根據(jù)所述HID協(xié)議能識別的m個字-K-T ; e.所述發(fā)送端在所述轉(zhuǎn)換后的m個字節(jié)的數(shù)據(jù)之前添加符合所述HID協(xié)議的η個字節(jié)的識別數(shù)據(jù),以便所述接收端能區(qū)分接收到的數(shù)據(jù)是來自所述接收端原生支持的HID設(shè)備的,還是來自所述發(fā)送端的; f.所述發(fā)送端在所述η個字節(jié)的識別數(shù)據(jù)之前添加P個字節(jié)的格式相關(guān)數(shù)據(jù); g.所述發(fā)送端將所述符合所述HID協(xié)議的m個字節(jié)和所述η個字節(jié)的識別數(shù)據(jù)以及P個字節(jié)的格式相關(guān)數(shù)據(jù)封裝成一個完整的符合所述HID協(xié)議的數(shù)據(jù)包,并發(fā)送給所述接收端。2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: h.所述接收端接收到步驟g發(fā)出的所述數(shù)據(jù)包; 1.所述接收端根據(jù)所述識別數(shù)據(jù)判斷所述數(shù)據(jù)包是其原生支持的HID設(shè)備發(fā)送的,還是所述發(fā)送端發(fā)送的; j.若是所述發(fā)送端發(fā)送的,則所述接收端將接收到的所述數(shù)據(jù)包的后m個字節(jié)進行解碼獲得一加密后的數(shù)據(jù)和校驗碼; k.所述接收端利用所述校驗碼對所述加密后的數(shù)據(jù)進行校驗; 1.若校驗成功,則所述接收端對所述加密后的數(shù)據(jù)進行解密,獲得原始數(shù)據(jù)。3.如權(quán)利要求1所述的方法,其特征在于,所述HID協(xié)議為HID鍵盤協(xié)議,其中,所述P個字節(jié)的格式相關(guān)數(shù)據(jù)包括I個控制鍵字節(jié)和I個保留字節(jié),所述m+n個字節(jié)的標(biāo)準(zhǔn)數(shù)據(jù)為6個標(biāo)準(zhǔn)鍵值,所述m為4、η為2、P為2。4.如權(quán)利要求3所述的方法,其特征在于,所述原始數(shù)據(jù)的長度為16bit,所述校驗碼的長度為8bit ;步驟d中的轉(zhuǎn)換后的m個字節(jié)為4個符合所述HID鍵盤協(xié)議的標(biāo)準(zhǔn)鍵值,所述識別數(shù)據(jù)為2個字節(jié)的不常用的標(biāo)準(zhǔn)鍵值,所述識別數(shù)據(jù)預(yù)先存儲在所述接收端中。5.如權(quán)利要求4所述的方法,其特征在于,所述識別數(shù)據(jù)為0x68和0x69。6.如權(quán)利要求3所述的方法,其特征在于,步驟f包括將添加一個0x00的控制鍵字節(jié)和一個0x00的保留字節(jié)。7.如權(quán)利要求1所述的方法,其特征在于,步驟d包括: 根據(jù)一映射表將所述m個字節(jié)轉(zhuǎn)換成所述接收端通過所述HID協(xié)議能識別的m個字節(jié),其中,所述映射表存儲于所述發(fā)送端和所述接收端中。8.如權(quán)利要求2所述的方法,其特征在于,步驟h和i之間,還包括以下步驟: 判斷接收到的數(shù)據(jù)包的后m+n個字節(jié)是否均為非O值,若是,則執(zhí)行步驟i ;若否,則認(rèn)為所述數(shù)據(jù)包是所述接收端原生支持的HID設(shè)備發(fā)送的。9.如權(quán)利要求1所述的方法,其特征在于,所述發(fā)送端是具有指紋識別模塊的遠程操控設(shè)備D10.如權(quán)利要求1所述的方法,其特征在于,所述發(fā)送端是具有手寫輸入模塊的遠程操控設(shè)備D
【專利摘要】本發(fā)明提供了一種基于HID協(xié)議的數(shù)據(jù)傳輸方法,其中,發(fā)送端并不是所述接收端原生支持的HID設(shè)備類型,所述方法包括:利用一加密算法對原始數(shù)據(jù)進行加密;對加密后的數(shù)據(jù)生成校驗碼;將加密后的數(shù)據(jù)和校驗碼相組合后的數(shù)據(jù)拆分成m個字節(jié);將m個字節(jié)轉(zhuǎn)換成接收端根據(jù)所述HID協(xié)議能識別的m個字節(jié);在所述轉(zhuǎn)換后的m個字節(jié)的數(shù)據(jù)之前添加符合HID協(xié)議的n個字節(jié)的識別數(shù)據(jù),以便接收端能區(qū)分接收到的數(shù)據(jù)是來自接收端原生支持的HID設(shè)備的,還是來自發(fā)送端的;在所述n個字節(jié)的識別數(shù)據(jù)之前添加p個字節(jié)的格式相關(guān)數(shù)據(jù);將所述m個字節(jié)和所述n個字節(jié)的識別數(shù)據(jù)以及p個字節(jié)的格式相關(guān)數(shù)據(jù)封裝成一個完整的符合HID協(xié)議的數(shù)據(jù)包,并發(fā)送給接收端。
【IPC分類】H04L29/06, H04L1/00
【公開號】CN105207747
【申請?zhí)枴緾N201510646679
【發(fā)明人】張欽
【申請人】中穎電子股份有限公司
【公開日】2015年12月30日
【申請日】2015年10月8日