乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      usb中斷傳輸原理

       宇宙之彬 2019-04-19

      2018年09月14日 14:15:47 

         這段時間學習LPC11Uxx系列的USB-HID,研究官方的USB庫文件和HID文件發(fā)現(xiàn)對于hiduser里面的GetReport和SetReport只在端點0的響應函數(shù)中有調用,采用USB抓包工具 Bus Hound發(fā)送指令時也可發(fā)現(xiàn),如果選擇HID-Compliant Device,只能發(fā)送控制類的指令,而對于實際的數(shù)據(jù)傳輸需要另外配置端點進行傳輸。

         USB 的傳輸事務類型可在端點描述符中配置,不同的端點可以配置成不同類型的傳輸事務,但端點0默認是控制傳輸,上電連接USB即可啟用,不需要配置。

         HID設備類一般配置數(shù)據(jù)傳輸端點為中斷傳輸,由于USB不支持硬件中斷,所以USB的中斷傳輸實際上是主機在一定的時間不斷地主動輪詢設備檢查其是否有數(shù)據(jù)需要傳輸,對此有3個重要參數(shù)需要在端點描述符中進行配置:

      • 傳輸類型

      • 輪詢時間間隔

      • 每次傳輸?shù)淖畲髷?shù)據(jù)包大小

      /* Endpoint, HID Interrupt In */USB_ENDPOINT_DESC_SIZE,            /* bLength */USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */HID_EP_IN,                         /* bEndpointAddress */USB_ENDPOINT_TYPE_INTERRUPT,       /* bmAttributes */WBVAL(0x0040),                     /* wMaxPacketSize */0x20,          /* 16ms */          /* bInterval (輪詢時間間隔)*//* Endpoint, HID Interrupt Out */USB_ENDPOINT_DESC_SIZE,            /* bLength */USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */HID_EP_OUT,                        /* bEndpointAddress */USB_ENDPOINT_TYPE_INTERRUPT,       /* bmAttributes(傳輸類型) */WBVAL(0x0040),                     /* wMaxPacketSize(傳輸數(shù)據(jù)包的最大大?。?nbsp;*/0x20,          /* 16ms */          /* bInterval */0                                  /* bLength */

      USB中斷傳輸事務流程圖

       對于IN事務,每次輪詢時間間隔內,主機主動發(fā)送IN令牌(包括設備地址和端點號),然后切換到接收數(shù)據(jù)狀態(tài),等待設備發(fā)送數(shù)據(jù),如果設備有數(shù)據(jù)要返回,則把一個數(shù)據(jù)包放到總線上。

      對于OUT事務,當主機發(fā)送數(shù)據(jù)時,USB設備會進入中斷函數(shù),根據(jù)地址和端點號信息調用相應的端點響應事件函數(shù),從而進行相關的處理。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多