1. 程式人生 > >USB理論學習之二-----基於PC的USB系統

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

一、PC上的USB系統組成部分

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

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

由上圖可知PC上的USB主機包含三個部分:

    • USB主控制器/根Hub
    • 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總線上的位置