日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

USB学习6---Linux Android USB软件架构设计

發布時間:2025/4/16 linux 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USB学习6---Linux Android USB软件架构设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面學習針對高通平臺的HS-USB(HS:high speed高速)堆棧(stack)軟件架構設計和源代碼布局的細節。

?

Android HS-USB堆棧基于下面幾點:

  • Gadget driver framework(gadget驅動架構)支持外設模式(Peripheral mode)
  • 新的gadget驅動架構在android2.0及之后的版本實現。Google剛開始開發一個新的架構叫function framework(只用在android1.6版本)。因為linux內核中的gadget framework不支持復合設備(composite devices)。后來gadget framework添加對了對復合設備的支持,google并對gadget framework做了重大的修改以支持組合開關(composition switch)

  • 兼容EHCI主控制器驅動,以支持host模式。
  • On-The-Go(OTG驅動)。
  • ?

  • USB stack
  • Android HS-USB OTG堆棧基于ID引腳檢測來支持OTG模式,HS-USB OTG core代表HS-USB控制器。

  • OTG driver
  • OTG驅動首先被加載,由它建立(set up)host controller driver(HCD主控制器驅動)和device controller driver(DCD設備控制器驅動)的transceive struct(收發器結構),在OTG注冊了HCD和DCD后,OTG狀態機才生效。
  • 根據連接到A/B USB連接器的Micro-A插頭(ID引腳接地,啟動主模式)或Micro-B插頭(ID引腳懸空,啟動從模式)來啟動對應的控制器驅動(HCD或DCD)。
  • 存取HS-USB OTG控制器寄存器來執行USB操作。
  • USB(主/從)電源管理。
  • USB時鐘管理,比如,時鐘使能、關閉復位等。
  • ?

  • Device controller driver
  • 向下與HS-USB OTG控制器交互
  • 執行斷電操作,比如使能、關閉、入隊、出隊、刷新、停止等等。
  • 執行USB gadget操作,比如VBUS處理、VBUS pull up、遠程喚醒等等。
  • 充電檢測。
  • ?

  • Gadget framework
  • USB設備模式驅動框架(device mode driver)
  • 支持多配制、多接口、符合設備和alternate接口設置,發展的可重用/組合的usb_function(一個描述配置功能的結構體)實例,提供復合和多配置gadget的更簡單設置。
  • 此框架驅動底層實現與硬件無關的USB功能(使用設備控制器驅動的調用),例如,在gadget.h中定義了對象和方法。
  • 對于特定控制器,支持端點在編譯時可配置。
  • 在linux中,大多數gadget驅動(例如串口gadget驅動)有一個連接到linux驅動或框架的上界(upper boundary)
  • 對應usb\gadget下android.c、composite.c。

    u_serial.c - utilities for USB gadget "serial port"/TTY support,u_serial.c的u表示utilities(工具)。

    f_serial.c - generic USB serial function driver,f_serial.c的f表示function。

    ?

  • Function drivers
  • Function驅動包括modem(比如USB 接口的4G網卡),NMEA(美國國家海洋電子協議,比如USB接口的GPS),大容量存儲等。

    對應usb\gadget\function源碼。

    ?

  • Host controller driver(Host控制器驅動)
  • 驅動底層部分和HS-USB OTG控制器交互。
  • 兼容EHCI
  • 使用USB HCD框架注冊Host控制器驅動和使用EHCI包裝器函數(wrapper函數)來支持root hub、管理I/O請求與關聯設備資源、管理底層事務(URB to transfer descriptor queue,例如USB請求塊(Universal Request Block)來傳遞描述符隊列)
  • 對應usb\host代碼。

    ?

  • USB core
  • USB core的實現與底層硬件無關。
  • 對類驅動(class driver)隱藏大多數USB協議相關項。
  • 與USB類驅動的交互。
  • 對應usb\core代碼。

    ?

  • USB PHY driver(物理層協議)
  • 分離PHY具體操作的新層。
  • HCD/DCD/OTG層可以引用多個PHY實例。
  • 對應kernel\msm-3.18\drivers\usb\phy文件夾的源代碼。USB PHY driver應該在OTG driver和OTG core之間,第1張圖我有備注,下面這種圖可以體現出來

  • Class drivers類驅動
  • 類驅動包括大容量存儲、HID、HUB等。對應\kernel\msm-3.18\drivers\usb\class下代碼。

    ?

    ?

    總結

    以上是生活随笔為你收集整理的USB学习6---Linux Android USB软件架构设计的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产激情二区 | 福利网站在线 | 粉嫩小泬无遮挡久久久久久 | 日日操av| 日韩一区二区三区四区五区六区 | 朝鲜一级黄色片 | 美女色av | 国产ts变态重口人妖hd | 精品无码久久久久久久久成人 | 免费三片60分钟 | 91精品国产高潮对白 | 久久一级免费视频 | www.射.com | 免费日本黄色 | www黄色片 | 一区国产在线 | 综合在线播放 | 日日干日日爽 | 少妇性l交大片免潘金莲 | 日日骚网 | 最近的中文字幕在线看视频 | 日韩福利电影在线观看 | 国产21页 | 1000部拍拍拍18勿入免费视频 | 少妇乱淫36部 | 牛牛视频在线观看 | www国产com| 午夜a级片 | 欧美大片aaa | 日韩在线精品 | 午夜羞羞羞 | 国产一区二区三区四区五区在线 | 青青草国产成人99久久 | 91精品国产高清一区二区三密臀 | 伦理自拍 | 日日躁夜夜躁狠狠久久av | 少妇人妻综合久久中文字幕 | 国产91在线免费 | 浮力影院草草 | 中文字幕无人区二 | 精品中文字幕一区二区 | 性人久久久久 | 成人片在线视频 | 成人免费毛片网站 | 中文字幕在线官网 | 亚洲天堂第一页 | 色综合免费 | 色欲一区二区三区精品a片 在线观看黄网站 | 亚洲av无码乱码在线观看富二代 | 亚洲图片 自拍偷拍 | 日韩中文字幕 | 欧美色图一区二区 | 日韩av电影网站 | 黄色日b片| 羞羞漫画在线 | 日韩和欧美的一区二区 | 肉性天堂 | 性高跟丝袜xxxxhd | 日日操视频 | 国产免费自拍视频 | sm乳奴虐乳调教bdsm | www.插插插.com| 麻豆影视国产在线观看 | 日本不卡中文字幕 | 国产成人+综合亚洲+天堂 | 日本在线网址 | 非洲一级黄色片 | 美女脱了裤子让男人桶 | 伊人av网站 | 99久久久无码国产精品性青椒 | 精品美女久久久 | 91欧美激情一区二区三区成人 | 欧美a级成人淫片免费看 | 91小宝寻花一区二区三区 | 久久久久久久久福利 | 青青草国产精品视频 | 欧美在线性 | 亚洲精品久久久中文字幕 | 少妇特黄a一区二区三区 | 极品少妇xxxx精品少妇偷拍 | 日韩视频一区二区三区四区 | 精品久久久久久中文字幕人妻最新 | 中文字幕中出 | 日韩av资源 | 男女网站在线观看 | 色哟哟无码精品一区二区三区 | 久久精品欧美一区二区三区不卡 | 久久黄色视屏 | 中文字幕人成乱码熟女香港 | 自拍偷拍色图 | 精品深夜av无码一区二区老年 | 欧美综合国产 | 欧美亚一区二区三区 | 男男h黄动漫啪啪无遮挡软件 | 亚洲图片在线视频 | 日本在线一区二区三区 | 强迫凌虐淫辱の牝奴在线观看 | 四虎在线免费播放 | 青青草免费公开视频 |