OTG Host 協議棧簡介

2021-09-25 18:41:00 字數 1631 閱讀 2850

本文主要方便使用者理解 otg 協議棧的關鍵性程式結構及檔案結構。加快使用者前期開發。

本例程模擬主機列舉滑鼠,並將滑鼠移動資訊通過串列埠列印。

本例程模擬主機列舉滑鼠及鍵盤,並將滑鼠及鍵盤輸入通過串列埠列印。

本例程模擬主機列舉u盤,並且測試讀寫資訊是否可行,並通過串列埠列印測試結果。

├─boards

│  └─mt037board

│      └─usb_examples

│          ├─usb_host_hid_mouse

│          ├─usb_host_hid_mouse_keyboard

│          └─usb_host_msd_command

├─cmsis

│  ├─driver

│  │  ├─drivertemplates

│  │  └─include

│  └─include

├─devices

│  └─mm32f103xcxe_o

│      ├─cmsis_drivers

│      ├─drivers

│      ├─hal_lib

│      │  ├─inc

│      │  └─src

│      ├─iar

│      ├─project_template

│      ├─template

│      └─utilities

│          ├─io

│          │  └─swo

│          ├─log

│          └─str

└─middleware

├─mmcau

│  ├─asm-cm0p

│  └─asm-cm4-cm7

└─usb

├─device

├─host

│  └─class

├─include

└─osa

本章列出幾個關鍵性變數的作用,方便使用者理解。

本章介紹host協議棧主要函式,方便使用者理解。

協議棧採用非同步處理的方法,在中斷中,將相關中斷儲存至 khcieventpointer->value。

usb_hosttaskfn 在 main 函式 while(1) 中非同步處理中斷,下圖的 event_(function) 和 _usb_hostkhci(function) 中,function 指代 attach, reset, detach, sof_tok, tok_done。

usb_hostprocessstate() 用於配置整個transfer 的相關資訊,包括起始 setup 包等,對於整個列舉非常重要。

_usb_hostkhcitransferstatemachine函式用於傳送及配置接收包,通過散轉usbhostpointer->trstate,決定整個 tranasfer 的狀態。

在列舉階段,transfer->setupstatus決定控制傳輸的建立過程,資料過程及狀態過程。

_usb_hostkhciatomnonblockingtransaction()用於暫存器使能發包。

資料報傳送及接收完成,token_done 中斷置位後在此函式處理資料。準備下一次資料報。

L1協議棧簡介

l1層或稱物理層,提供物理介質上的位元流傳輸,遵循gsm技術05系列規範,為上層軟體提供服務,且控制邏輯通道到物理通道的對映和安排 無線控制以及tdma幀。基本模組包括 1 l1非同步邏輯 layer1 asynchronous 處理上層軟體的訊息請求,經過l1處理後將結果返回給上層軟體。2 sur...

TCP IP協議棧與OSI模型簡介

osi open system interconnection 七層模型,是國際標準化組織 iso 制定的osi模型,該模型主要是過於複雜,僅僅只是理想模型而已,而網際網路主要運用的是tcp ip協議棧 最早發源於美國國防部 由於osi是被tcp ip淘汰的模型,在當今世界上沒有大規模使用,所以僅供...

1 LwIP協議棧規範翻譯 簡介

在過去幾年中,計算機和計算機支援裝置接之間的互聯到無線網路日趨增加。計算機已經越來越無縫的整合在了日常的裝置且 也在下降。同時,無線網路技術例如藍芽 hni 98 和ieee802.11b wlan big 97 也在新起。這就可以運用到一些極具吸引力方案區域上例如健康管理,安防,運輸,工業處理。小...