USB理論學習之二 基於PC的USB系統

2021-09-08 01:19:57 字數 1362 閱讀 3970

一、pc上的usb系統組成部分

硬體:完成物理上的介面和實體功能

軟體:與作業系統配合管理硬體,完成資料流傳輸

由上圖可知pc上的usb主機包含三個部分:

1).usb主控制器/根hub

a.pc硬體,由usb主控制器晶元、usb hub控制器晶元、usb埠連線件及控制器外圍電路等組成;

b.usb主控制器

提供收發物理層

根據usb傳輸機制實現自動管理各個端點的儲存與資料交換

提供與外圍控制cpu的介面電路(在pc中usb主控制器是通過pci匯流排和cpu進行通訊)

c.根hub

提供物理介面

一般的usb主控制器提供了根hub。並且通過d+和d-兩個資料線提供埠連線點

d.讀資料過程:

usb主控制器收到pc軟體和驅動程式發來了讀事務要求,將此要求發給根hub;

根hub確定目標裝置存在並且連線正常;

通過usb的資料管道傳送讀事務請求給目標usb裝置;

目標usb裝置在準確收到讀事務請求後準備好資料,傳送給根hub;

usb主控制器將來自裝置的序列資料轉換為並行資料,通過pci匯流排傳送到pc系統的記憶體緩衝區,供驅動程式和軟體使用;

e.寫過程與讀過程類似,資料方向相反,但是讀寫都是由主機發起

2).usb系統軟體

a.主要指pc上作業系統提供的一系列軟體和驅動程式,主要由usb核心驅動程式和usb主控制器驅動程式組成;

b.usb核心驅動程式被**在作業系統中,解釋usb類裝置驅動程式發來的一系列命令,劃分為一系列的usb事務,然後發給usb主控制器驅動程式,通過usb主控制器驅動程式間接與usb主控制器硬體打交道;

c.usb主控制器驅動程式負責最底層的驅動任務,控制和管理硬體底層,負責將usb事務傳送給usb主控制器晶元,最終將資料序列傳送到電纜上;

d.一般usb主控制器驅動程式和usb核心驅動程式由支援usb的作業系統提供,而usb裝置類驅動程式由使用者自己開發以實現特定的usb傳輸特點

3).使用者軟體和usb裝置類驅動程式

a.usb裝置類驅動程式也叫usb使用者驅動程式,把使用者要求的usb命令傳送給usb主控制器硬體,初始化記憶體緩衝區,用於儲存usb通訊中的資料;

b.目前windows作業系統對於hid和mass storage類裝置的支援比較完善,直接提供了usb裝置類驅動程式;

c.使用者軟體,指使用者與usb系統之間的一種介面,完成使用者對於usb的控制,以及實時地進行一些資料的互動,在使用者需要通過usb來進行資料傳輸並且完成一些特殊處理而作業系統無法勝任時需要開發使用者軟體

二、usb在pci匯流排上的位置

USB學習之二 USB PHY

usb phy負責最底層的訊號轉換,作用類似於網口的phy。有兩種介面,一種是ulpi,一種是utmi。前者pin少,後者pin多,所以如果用ulpi,phy一般外部另接 用utmi,pin多,一般內建。phy內建或者外接要看晶元資料。powerpc的p2010,晶元資料裡面定義是ulpi,需要外接...

USB學習之二 USB匯流排驅動程式

usb匯流排驅動程式的作用 1.識別usb裝置 1.1 分配位址 1.2 並告訴usb裝置 set address 1.3 發出命令獲取描述符 描述符的資訊可以在include linux usb ch9.h看到 2.查詢並安裝對應的裝置驅動程式 3.提供usb讀寫函式 將乙個usb裝置接到開發板上...

USB學習系列之二 USB裝置的插入檢測機制

1.usb的插入檢測機制 usb埠的d 和d 均用乙個15k的電阻接地,當無裝置接入時,均處於低電平 在裝置端在d 表示高速裝置或者全速裝置 或者d 表示低速裝置 接了乙個1.5k的上拉電阻到 3.3v,一旦將裝置接入,usb埠的d 或者d 其中乙個被拉高為3v,系統識別到外部裝置接入。注意 高速裝...