新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > USB開發步驟之標準篇

        USB開發步驟之標準篇

        作者: 時間:2012-04-18 來源:網絡 收藏
        楨(frame),每楨通常是1ms時間長。每個 設備每楨只能傳送一個同步的傳送包。在完成了系統的配置信息和連接之后,的host就會對不同的傳送點和傳送方式做一個統籌安排,用來適應整個的 的帶寬。通常情況下,同步方式和中斷方式的傳送會占據整個帶寬的90%,剩下的就安排給控制方式傳送數據。

        的低層結構
        USB設備
        USB的設備可以接在PC上的任意的USB接口上。而使用HUB還可以擴展使更多的 USB設備連接到系統中,USB的HUB有一個上行的端口(到host),有多個的下行端口(連接其它的設備),從而可以使整個的系統可以擴展的連接 127個外設,其中HUB也酸外設。對于USB系統來說,USB的host永遠是PC邊,所有的其他連接到host都稱為設備,在設備與設備之間是無法實 現直線通信的,只有通過host的管理與調節才能夠實現數據的互相傳送.在系統中,通常會有一個根HUB,這個HUB一般有兩個下行的端口。
        一個PC可以擁有一個或多個的USB host控制器。一般有兩種類型的控制器:UHCI(USB host控制器接口),OHCI(開放的host控制器接口)。Windows的USB類驅動程序對于每一種的控制器類型都有一種miniclass驅動程序來支持。

        USB的物理信號
        USB的電纜有四根線,兩根傳送的是5V的電源,有一些直接和電源HUB相連的設備可 以直接利用它來供電。另外的兩根是數據線,數據線是單工的,在整個的一個系統中的數據速率是一定的,要么是高速,要么是低速,沒有一個可以中間變速的設備 來實現數據碼流的變速.在這一點上,USB和1394有明顯的差別。
        USB的總線可以在不使用的時候被掛起,這樣一來就可以節約能源。
        在有些時候的總線還有可能擋機(stall),比如說象數據傳送的時候突然被打斷,這個時候通過host的重新配置可以實現總線的重新工作。

        低層協議
        USB的物理協議規定了大多數的在總線上的數據格式,通常一個全速的數據楨可以最多有的1500bytes,而對于低速的楨最多有187bytes。
        楨通常是用來分配帶寬給不同的數據傳送方式。同時由于楨結構的規律性,楨的這種特性也可以用來做同步信號來使用。
        一個最小的USB的數據塊叫做包(packet),包包括同步信號,包標識(packet ID),CRC和傳送的數據。Packet ID共有以下十種:

        token OUT IN SOF SETUP
        data DATA0 DATA1
        handshake ACK NAK STALL
        special PRE

        Transactions(數據交換)
        一個transaction是在host和設備(device)之間的不連續相互數據 交換,通常由host開始交換,交換的開始是由Token的包開始的,接下來是雙方向上的數據包,在數據包傳送完之后,就會由設備(device)返回一 個握手(handshake)包。USB系統通過IN,OUT,和SETUP的包來指定USB地址和endpoint(最多是128個,0通常被用來用做 缺省的傳送配置信息的),并且這些被指定的設備必須通過上面形式的包來回應這種形式的指定。每個SETUP的包包含8個byte的數據,數據用來指示傳送 的數據類型。對于DATA數據包來說,設置兩種類型的數據包是為了能夠在傳送數據的時候做到更加的精確。ACK handshake的包用來指示數據傳送的正確性,而STALL handshake則表示數據包在傳送的過程中出了故障,并且請示host重新發數據或者清除這次傳送。PRE格式的包主要是用在在一個USB的系統中如 果存在不同速率的設備的時候,將不同于總線速度的設備中就會回應一個PRE的包從而會忽略該設備。
        各種不同類型的包的大小是不同的,DATA的數據包最大是1023bytes.

        Start of Frame(SOF)
        SOF是host用來指示frame的開頭的。SOF的包包括11個bit的楨序號,從0到0X7FF(i.e. USBD_ISO_START_FRAME_RANGE-1),SOF對于所有的高速設備來說是有效的。

        Power
        每個設備可以從總線上獲得100mA的電流,如果特殊的向系統申請,最多可以獲得500mA的電流,在掛機的狀態下,電流只有500uA.

        驅動程序的安裝步驟
        Windows用設備描述字或者接口描述字來了解到底是什么樣的設備被接入到系統。 Windows初始化的Hardware ID中有設備提供商的ID域(IDVendor,IDProduct,和BCDDevice)。如果你沒有向系統提供一個INF文件的話,系統就會自動選 擇提供一個兼容ID(可能不是工作得很好,就像你買了一個Rockswell的Modem,而你使用標準Modem的驅動程序,你的Modem可能會工作 的有很多的毛病,也可能跑得飛快,電腦的事情,什么都可能發生,就像中國足球........我在九四年就發誓不再為中國足球惱火,可是俺前不久還是罵了 一下那個叫章魚鱗的小伙子,怎么就.......好歹還是一孩子,就原諒一回吧,哎!)

        USB的新特性
        共享性 一個物理設備可以使用許多不同的pipe
        實時性 可以實現和一個設備之間有效的實時通信
        動態性 可以實現接口間的動態切換
        聯合性 不同的而又有相近的特性的接口可以聯合起來,
        多能性 各個不同的接口可以使用不同的供電模式
        自動性 缺省的pipe的使用使基系統的建立和配置變得自動并且快速

        以上幾個方面只是簡要的介紹了一下USB的標準的一些情況,介紹得非常非常之淺,還有 象USB的host在系統中的唯一性和device的帶寬分布,以及hub,和USB的電氣特性等等,以及網絡分層結構等方面我就不贅述了,在標準里面有 詳細的敘述。鄙人僅致力于用中文給大家一個比較淺顯的介紹,希望不會給大家不正確的引導。(諸位大蝦倘要做USB設備,當閱讀美利堅合眾國之原版文章。切 記,切記!不瞞大家,朕亦十分反感大不列顛國之文字,一日,吾弟問朕,國人何以皆學洋文,朕曰寡人如何得知,料想倘念好洋文,就有機會去誑洋人錢財。)

        本來想單獨開一個USB2.0的頁,可是敲中文實在是太麻煩,再加上現在的 USB2.0只是一個DEMO的期間,USB2.0的器件更是沒有,關于USB2.0沒有什



        關鍵詞: USB 開發步驟 標準篇

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵石县| 秦安县| 赣榆县| 定日县| 通城县| 正宁县| 浦东新区| 阳山县| 乌兰浩特市| 临沧市| 商南县| 都兰县| 新宾| 原平市| 南涧| 柯坪县| 平山县| 娄烦县| 宜君县| 恩施市| 饶阳县| 北京市| 曲靖市| 祁门县| 广宗县| 灵宝市| 辽源市| 古蔺县| 安吉县| 尼木县| 兰溪市| 宾川县| 岳西县| 老河口市| 冀州市| 东港市| 巴东县| 东莞市| 浦北县| 荔浦县| 共和县|