国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于hid協(xié)議的數(shù)據(jù)傳輸方法

      文檔序號:9455643閱讀:2425來源:國知局
      一種基于hid協(xié)議的數(shù)據(jù)傳輸方法
      【技術領域】
      [0001]本發(fā)明涉及通訊控制領域,尤其是無線遙控領域。
      【背景技術】
      [0002]得益于Windows操作系統(tǒng)對HID (Human Interface Devices)協(xié)議的良好支持,目前很多數(shù)據(jù)傳輸方法都基于HID協(xié)議,以免除安裝驅動程序的困擾。但對于移動操作系統(tǒng)例如1S、Android系統(tǒng)而言,盡管HID協(xié)議規(guī)范中定義了多種類型設備,但這些系統(tǒng)原生支持較好的也只有常用的鍵盤或鼠標類型(其中1S系統(tǒng)的HID協(xié)議目前不支持鼠標類型)。因此對于采用移動操作系統(tǒng)的主機例如手機、平板、智能電視、機頂盒等等,在利用HID協(xié)議傳輸數(shù)據(jù)受此限制下,目前實現(xiàn)數(shù)據(jù)傳輸?shù)挠袃煞N方式:1、本身可定義為鍵值或坐標相關類型的應用(例如鍵盤、鼠標、遙控器、手柄等);2、其他HID設備類型數(shù)據(jù),需要修改操作系統(tǒng)底層驅動進行識別。
      [0003]對于上述兩種方式,第I種方式限制了設備的數(shù)據(jù)類型,并且控制鍵碼等內容是明文的,很容易被截取,無法做到安全保密性;而對于第2種,顯然對于第一方原廠而言增加了實現(xiàn)的復雜度,而對于第三方應用軟件開發(fā)商則在開發(fā)相應的驅動程序時需要適配不同版本的操作系統(tǒng),同樣增加了實現(xiàn)難度,總體上都是提高了研發(fā)投入和維護成本。

      【發(fā)明內容】

      [0004]為克服現(xiàn)有技術中的上述幾種實現(xiàn)方式的缺點,本發(fā)明提出了一種基于HID協(xié)議的數(shù)據(jù)處理和加密傳輸方法,將設備聲明為HID鍵盤類型,并采用HID鍵值類型的數(shù)據(jù)傳輸格式,以得到系統(tǒng)原生支持(無需驅動、兼容性好),且傳輸?shù)脑紨?shù)據(jù)可為16bit、24bit甚至更長的數(shù)據(jù)類型,遠大于HID鍵值數(shù)據(jù)只有7bit的復雜度,以滿足更復雜的應用;并且因為采用了鍵值類型的數(shù)據(jù)傳輸格式,也支持傳輸標準鍵值,因此可基于標準鍵盤或遙控器,在其標準按鍵數(shù)據(jù)上擴展增加其他數(shù)據(jù)的傳輸,實現(xiàn)功能更復雜的遙控裝置。
      [0005]本發(fā)明提供了一種基于HID協(xié)議的數(shù)據(jù)傳輸方法,接收端的操作系統(tǒng)能基于HID協(xié)議接收其原生支持的HID設備所發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包包括m+n個字節(jié)的標準數(shù)據(jù)和P個字節(jié)的格式相關數(shù)據(jù);發(fā)送端并不是所述接收端原生支持的HID設備類型,所述方法包括以下步驟:
      [0006]a.所述發(fā)送端利用一加密算法對原始數(shù)據(jù)進行加密;
      [0007]b.所述發(fā)送端對加密后的數(shù)據(jù)生成校驗碼;
      [0008]c.所述發(fā)送端將所述加密后的數(shù)據(jù)和所述校驗碼相組合后的數(shù)據(jù)拆分成m個字
      -K-
      T ;
      [0009]d.所述發(fā)送端將所述m個字節(jié)轉換成所述接收端根據(jù)所述HID協(xié)議能識別的m個字Tl ;
      [0010]e.所述發(fā)送端在所述轉換后的m個字節(jié)的數(shù)據(jù)之前添加符合所述HID協(xié)議的η個字節(jié)的識別數(shù)據(jù),以便所述接收端能區(qū)分接收到的數(shù)據(jù)是來自所述接收端原生支持的HID設備的,還是來自所述發(fā)送端的;
      [0011]f.所述發(fā)送端在所述η個字節(jié)的識別數(shù)據(jù)之前,添加P個字節(jié)的格式相關數(shù)據(jù);
      [0012]g.所述發(fā)送端將所述符合所述HID協(xié)議的m個字節(jié)和所述η個字節(jié)的識別數(shù)據(jù)以及P個字節(jié)的格式相關數(shù)據(jù)封裝成一個完整的符合所述HID協(xié)議的數(shù)據(jù)包,并發(fā)送給所述接收端。
      [0013]所述方法還包括:
      [0014]h.所述接收端接收到步驟g發(fā)出的所述數(shù)據(jù)包;
      [0015]1.所述接收端根據(jù)所述識別數(shù)據(jù)判斷所述數(shù)據(jù)包是其原生支持的HID設備發(fā)送的,還是所述發(fā)送端發(fā)送的;
      [0016]j.若是所述發(fā)送端發(fā)送的,則所述接收端將接收到的所述數(shù)據(jù)包的后m個字節(jié)進行解碼獲得一加密后的數(shù)據(jù)和校驗碼;
      [0017]k.所述接收端利用所述校驗碼對所述加密后的數(shù)據(jù)進行校驗;
      [0018]1.若校驗成功,則對所述加密后的數(shù)據(jù)進行解密,獲得原始數(shù)據(jù)。
      [0019]在一個實施例中,所述HID協(xié)議為HID鍵盤協(xié)議,其中,所述P個字節(jié)的格式相關數(shù)據(jù)包括I個控制鍵字節(jié)和I個保留字節(jié),所述m+n個字節(jié)的標準數(shù)據(jù)為6個標準鍵值,所述m為4、η為2、P為2。
      [0020]在一個實施例中,所述原始數(shù)據(jù)的長度為16bit,所述校驗碼的長度為Sbit ;步驟d中的轉換后的m個字節(jié)為4個符合所述HID鍵盤協(xié)議的標準鍵值,所述識別數(shù)據(jù)為2個字節(jié)的不常用的標準鍵值,所述識別數(shù)據(jù)預先存儲在所述接收端中。
      [0021]在一個實施例中,所述識別數(shù)據(jù)為0x68和0x69。
      [0022]在一個實施例中,步驟f包括將添加一個0x00的控制鍵字節(jié)和一個0x00的保留字Tl O
      [0023]在一個實施例中,步驟d包括:
      [0024]根據(jù)一映射表將所述m個字節(jié)轉換成所述接收端通過所述HID協(xié)議能識別的m個字節(jié),其中,所述映射表存儲于所述發(fā)送端和所述接收端中。
      [0025]在一個實施例中,步驟h和i之間,還包括以下步驟:
      [0026]判斷接收到的數(shù)據(jù)包的后m+n個字節(jié)是否均為非O值,若是,則執(zhí)行步驟i ;若否,則認為所述數(shù)據(jù)包是所述接收端原生支持的HID設備發(fā)送的。
      [0027]在一個實施例中,所述發(fā)送端是具有指紋識別模塊的遠程操控設備。
      [0028]在一個實施例中,所述發(fā)送端是具有手寫輸入模塊的遠程操控設備。
      【附圖說明】
      [0029]本發(fā)明的以上
      【發(fā)明內容】
      以及下面的【具體實施方式】在結合附圖閱讀時會得到更好的理解。需要說明的是,附圖僅作為所請求保護的發(fā)明的示例。在附圖中,相同的附圖標記代表相同或類似的元素。
      [0030]圖1示出根據(jù)本發(fā)明的一實施例的基于HID協(xié)議的數(shù)據(jù)處理和加密傳輸方法;
      [0031]圖2示出根據(jù)本發(fā)明的一實施例的數(shù)據(jù)轉換成HID鍵值的示意圖;
      [0032]圖3示出根據(jù)本發(fā)明的一實施例的發(fā)送端的數(shù)據(jù)處理流程示意圖;以及
      [0033]圖4示出根據(jù)本發(fā)明的一實施例的接收端的數(shù)據(jù)處理流程示意圖。
      【具體實施方式】
      [0034]以下在【具體實施方式】中詳細敘述本發(fā)明的詳細特征以及優(yōu)點,其內容足以使任何本領域技術人員了解本發(fā)明的技術內容并據(jù)以實施,且根據(jù)本說明書所揭露的說明書、權利要求及附圖,本領域技術人員可輕易地理解本發(fā)明相關的目的及優(yōu)點。
      [0035]圖1示出根據(jù)本發(fā)明的一實施例的基于HID協(xié)議的數(shù)據(jù)處理和加密傳輸方法,其中,接收端的操作系統(tǒng)能基于HID協(xié)議接收其原生支持的HID設備所發(fā)送的數(shù)據(jù)包,所述數(shù)據(jù)包包括m+n個字節(jié)的標準數(shù)據(jù)和P個字節(jié)的格式相關數(shù)據(jù);發(fā)送端并不是所述接收端原生支持的HID設備類型。
      [0036]對于發(fā)送端而言,該方法包括以下步驟。
      [0037]步驟101,發(fā)送端利用一加密算法對原始數(shù)據(jù)進行加密。
      [0038]步驟102,所述發(fā)送端對加密后的數(shù)據(jù)生成校驗碼。
      [0039]步驟103,所述發(fā)送端將所述加密后的數(shù)據(jù)和所述校驗碼相組合后的數(shù)據(jù)拆分成m個字節(jié)。
      [0040]步驟104,所述發(fā)送端將所述m個字節(jié)轉換成接收端通過所述HID協(xié)議能識別的m個字節(jié)。
      [0041]步驟105,所述發(fā)送端在所述轉換后的m個字節(jié)的數(shù)據(jù)之前,添加η個字節(jié)的識別數(shù)據(jù),以便所述接收端能區(qū)分接收到的數(shù)據(jù)是來自所述接收端原生支持的HID設備的,還是來自所述發(fā)送端的。在一個實施例中,該η個字節(jié)的識別數(shù)據(jù)可以是不常用的但符合該HID協(xié)議規(guī)范的數(shù)據(jù)。
      [0042]步驟106,所述發(fā)送端在所述η個字節(jié)的識別數(shù)據(jù)之前添加P個字節(jié)的格式相關數(shù)據(jù);
      [0043]步驟107,所述發(fā)送端將所述符合所述HID協(xié)議的m個字節(jié)和所述η個字節(jié)的識別數(shù)據(jù)以及P個字節(jié)的格式相關數(shù)據(jù)封裝成一個完整的符合所述HID協(xié)議的數(shù)據(jù)包,并發(fā)送給所述接收端。
      [0044]對于接收端而言,所述方法包括步驟:
      [0045]步驟108,所述接收端接收到步驟g發(fā)出的所述數(shù)據(jù)包;
      [0046]步驟109,所述接收端根據(jù)所述識別數(shù)據(jù)判斷所述數(shù)據(jù)包是其原生支持的HID設備發(fā)送的,還是所述發(fā)送端發(fā)送的;
      [0047]步驟110,若是所述發(fā)送端發(fā)送的,則所述接收端將接收到的所述數(shù)據(jù)包的后m個字節(jié)進行解碼獲得一加密后的數(shù)據(jù)和校驗碼;
      [0048]步驟111,所述接收端利用所述校驗碼對所述加密后的數(shù)據(jù)進行校驗;
      [0049]步驟112,若校驗成功,則對所述加密后的數(shù)據(jù)進行解密,獲得原始數(shù)據(jù)。
      [0050]為了更清楚地闡明本申請的技術方案,以下以HID鍵盤協(xié)議為例詳細介紹本發(fā)明的主要技術方案。本領域技術人員在閱讀了以下內容后,應了解本發(fā)明的應用不限于HID鍵盤協(xié)議,還可以應用于其他Android或1S系統(tǒng)支持較好的其他HID協(xié)議,例如,游戲手柄協(xié)議或HID鼠標協(xié)議。同時,為了描述方便,下文中提到的“普通按鍵”指的是接收端的操作系統(tǒng)基于HID協(xié)議所原生支持的HID設備的按鍵事件。而“自定義數(shù)據(jù)”指的是本發(fā)明的接收端所發(fā)送并轉換后的數(shù)據(jù)。
      [0051]在一個實施例中,本發(fā)明采用HID協(xié)議規(guī)范中的標準鍵盤設備類型,HID協(xié)議的標準數(shù)據(jù)包為8個字節(jié)(即m+n+p = 8),標準鍵盤設備類型的定義中前2個字節(jié)分別為控制鍵字節(jié)和保留字節(jié)(即P = 2),后6個字節(jié)才是標準鍵值(即m+n = 6),因此為了傳輸較長的數(shù)據(jù),同時又符合標準鍵盤類型的定義,為實現(xiàn)簡單,本方案具體實現(xiàn)時只使用后面6個字節(jié)數(shù)據(jù),前面2個字節(jié)數(shù)據(jù)設為O。
      [0052]同樣,為了符合標準鍵盤類型的定義,本方案的實現(xiàn)方法是發(fā)送端將待傳輸?shù)臄?shù)據(jù)轉換為6個標準鍵碼,然后再傳輸,以便接收端能夠正常解析。
      [0053]由于傳輸時已經將數(shù)據(jù)轉換成標準鍵值,需要將其和鍵盤按鍵的鍵值區(qū)分開來,以便接收端能夠正確區(qū)分是自定義數(shù)據(jù)還是接收端原生支持的HID設備的按鍵,實現(xiàn)方法是將6個鍵值的頭2個字節(jié)(即η = 2)分別定義為兩個極少用到的特殊鍵值作為識別數(shù)據(jù),這樣大幅降低誤判的概率。
      [0054]在HID鍵盤應用中,6個鍵值表示鍵盤同時按下了 6個按鍵,而這種情況在實際應用中出現(xiàn)較少,因此本方案在實現(xiàn)數(shù)據(jù)傳輸時每次都會產生完整的6個鍵值的數(shù)據(jù),以進一步減少接收端在判斷是所接收的數(shù)據(jù)是其原生支持的HID設備發(fā)送的鍵值還是自定義數(shù)據(jù)轉換的鍵值時判斷失誤的概率。
      [0055]6個字節(jié)當中,除了頭2個字節(jié)作為識別數(shù)據(jù)之外,后4個字節(jié)則真正用來保存待傳輸?shù)臄?shù)據(jù)。由于標準鍵值的有效位數(shù)為7個bit,所以4個字節(jié)能使用的也只有28個bit。因此本方案實現(xiàn)的傳輸數(shù)據(jù)長度最長支持28bit。
      [0056]28bit的原始數(shù)據(jù)需要轉換成4個字節(jié)鍵值再傳輸。在一個實施例中,可以通過一預先設計的鍵值映射表來實現(xiàn)這種轉換,以保證映射后的鍵值屬于標準鍵盤范圍。
      [0057]結合應用需求和實現(xiàn)便利性,本方案在實現(xiàn)時采用了 24bit數(shù)據(jù)長度,實現(xiàn)方法為:24bit數(shù)據(jù)分散為4組6bit數(shù)據(jù),分別占4個鍵值字節(jié)當中每個字節(jié)的6個bit有效位。
      [0058]由于24bit數(shù)據(jù)需要轉換成標準鍵值數(shù)據(jù)再傳輸,而對于24bit數(shù)據(jù)本身格式無限制,
      當前第1頁1 2 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1