tft每日頭條

 > 生活

 > hci 的立體構型

hci 的立體構型

生活 更新时间:2024-07-02 04:44:19
  1. 概述

hci 的立體構型(XHCI原理概述)1

Base Address Register

位于配置空間bar0(Offset 0x10)。這個BAR地址是指向xHCI寄存器接口基地址

MMIO Space

是基于MMIO bar0的寄存器空間,所有的寄存器的offset是相對于BAR0

Host Memory

是存放xHCI各種傳輸所需要的數據結構,這部分空間位于系統内存,有xHCI驅動負責分配,管理

Transfer Ring

是一個環形隊列,由傳輸描述符TD組成。TD是一個數據結構,用來定義和描述xHC和USB 設備之間傳輸的數據Buffer。TD是由一個活多個TRB(Transfer Request Block)組成。TRB是由xHCI驅動創建,對于xHC來說每個TRB都是隻讀的

Command Ring

是一個環形隊列,由一個一個的命令TRB組成。每個命令TRB是用來存放由xHC執行的命令。這些命令是用來傳給xHC或者USB設備。命令TRB也是由xHCI驅動構建,對于xHC隻讀。Command Ring系統内存位置信息是透過Command Ring Control Register(CRCR)告知xHC

Event Ring

是一個由Event TRB組成的環形隊列。Event TRB由xHC構建,對于xHCI驅動隻讀。事件TRB用來反饋xHC執行Transfer Ring/Command Ring時的結果信息。Event Ring系統内存位置是透過Event Ring Segment Table Base Address告知xHC

Device Context

Device Context是由xHC管理,用來告知xHCI驅動軟件USB設備的配置,狀态等各種信息。當xHCI驅動枚舉USB設備時,如果有USB設備接入,xHCI驅動會在系統内存分配一個Device Context數據結構,并且初始化此數據結構為0,之後xHCI驅動會透過Address Device Command将此數據結構的控制器移交給xHC管理維護。因此這個數據結構在此後對于xHCI驅動來說是隻讀的。我們都知道USB傳輸是透過USB設備的endpoint,因此Device Context包含31個Endpoint context結構體。由上圖可知xHC執行的Transfer Ring的位置信息就是在Device Contex中的Endpoint context中。那麼Device Context在系統内存中的位置又是如何告知xHC呢,所有的Device Context地址信息會以Device Base Address Array形式透過Device Context Base Address Register(DCBAAP)告知xHC

Door Bell

門鈴是用來告知xHC有End point有命令或者數據傳輸需要執行。Door Bell Array是一個由256個寄存器組成的數組,每個Door Bell寄存器對應一個USB設備

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved