日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
通用串行總線(USB)原理及接口設(shè)計
通用串行總線(USB)原理及接口設(shè)計
 更新時間:2008-8-4 4:52:37  點擊數(shù):27
【字體: 字體顏色

    data DATA0 DATA1

    handshake ACK NAK STALL

    special PRE

    在USB2.0中又增加了幾種類型的包以滿足高速傳輸?shù)男枰。其中data類型增加了DATA2和MDATA,handshake類型增加了NYET,special類型則增加了ERR,SPLIT,PING,Reserved。

    事務(wù)是在主機(jī)和設(shè)備之間不連續(xù)地數(shù)據(jù)交換。一個事務(wù)通常由主機(jī)開始,一般分三個階段,第一階段發(fā)送token包,第二階段發(fā)送是data包(可以向上也可以向下),在數(shù)據(jù)包傳送完之后,就會由設(shè)備返回一個handshake包。

    當(dāng)客戶端程序通過一個USB管道發(fā)送或接收數(shù)據(jù)時,它首先會調(diào)用Win32API,API會發(fā)送一個IRP到USB設(shè)備驅(qū)動程序。USB設(shè)備驅(qū)動程序的任務(wù)就是把客戶端的請求通過一個管道發(fā)送到外設(shè)合適的端點。為了實現(xiàn)這個任務(wù),USB設(shè)備驅(qū)動程序會遞交請求給總線驅(qū)動程序,總線驅(qū)動程序可以把這些請求轉(zhuǎn)變成事務(wù),然后將這些事務(wù)組合成幀在總線上傳輸。

1.6 USB帶寬分析舉例

    在USB1.1標(biāo)準(zhǔn)中將其有效的帶寬分成幀,每幀通常是1ms長。但由于USB2.0的傳輸速率可高達(dá)480Mbps,因此在USB2.0增加了一種微幀,它只有原來幀的1/8,這使得在傳輸數(shù)據(jù)時使用更小的緩沖。在完成了系統(tǒng)的配置信息和連接之后,USB的主機(jī)就會對不同的端點和傳輸方式做一個統(tǒng)籌安排,用來適應(yīng)它的帶寬。對全速和低速的端點,系統(tǒng)為等時和中斷方式的傳輸保留整個帶寬的90%,即占每個幀時間的90%,剩下的就安排給控制方式傳送數(shù)據(jù)。在USB2.0中,對于高速的端點,則為等時和中斷方式的傳輸保留每個微幀的80%。

    以等時傳輸為例,在某個配置中作為一個等時傳輸管道的端點,定義了它能傳輸?shù)臄?shù)據(jù)有效負(fù)載的長度。USB系統(tǒng)軟件用這個長度限制去保證足夠的總線時間使每幀的內(nèi)容能容納最多的數(shù)據(jù)有效負(fù)載。如果有足夠的總線時間,配置才會建立。每個等時管道的數(shù)據(jù)有效負(fù)載可以是1,2,4,...,512,1023字節(jié)。

    例如,當(dāng)數(shù)據(jù)包最大有效負(fù)載為512個字節(jié)時,一個全速幀(1500字節(jié))最多可以傳輸2個這樣的包。除去協(xié)議開銷的18個字節(jié),剩余458個字節(jié)可以用于其他事務(wù)的傳輸。因此每幀有效字節(jié)數(shù)為2個包的字節(jié)即1024字節(jié),因此最大帶寬為1.024Mbyte/s,每個包的有效字節(jié)占整個幀的35%。同樣可推算,數(shù)據(jù)有效負(fù)載長度為64、128或256時其最大帶寬值最大,為1.28Mbyte/s。

    在USB2.0高速工作方式下,每個等時管道的數(shù)據(jù)有效負(fù)載可以是1,2,4,...,2048,3072字節(jié)。當(dāng)數(shù)據(jù)有效負(fù)載長度為1024時其最大帶寬值最大,為5.7344Mbyte/s,每個包的有效字節(jié)占整個微幀的14%。

2 Windows USB驅(qū)動程序接口

    USB的驅(qū)動程序和以往的直接跟硬件打交道的Win95的VxD(Virtual DeviceDriver)驅(qū)動程序不同,它屬于WDM(Windows DriverModel)類型的,Win98、Win2000等操作系統(tǒng)均支持該類型的驅(qū)動程序。WDM首先定義了一個基本的核心驅(qū)動程序模型,處理所有類型的數(shù)據(jù),使驅(qū)動程序模型的內(nèi)核實現(xiàn)更加的固定。WDM驅(qū)動程序還是一種分層的程序結(jié)構(gòu),可以看做是WindowsNT驅(qū)動程序的改進(jìn),WDM驅(qū)動程序支持即插即用、電源管理和WMI(Windows ManagementInstrumentation)特性。Win98和Win2000提供了一系列的系統(tǒng)驅(qū)動程序,它們具有為許多標(biāo)準(zhǔn)類型設(shè)備服務(wù)所需的所有基本功能。

    USB的WDM驅(qū)動程序接口框圖如圖4所示。

    Windows提供了USB的系統(tǒng)類驅(qū)動程序,它處理USB上的所有底層通信,這樣其他驅(qū)動程序就有了一個定義好的接口可以使用。USBHub.sys是USB集線器的驅(qū)動程序。USBD.sys是USB類驅(qū)動程序,它使用圖4中UHCD.sys或OpenHCI.sys分別驅(qū)動兩種類型的控制器UHCI(USB Host Controller Driver),OHCI(Open Host ControllerInterface)。當(dāng)PCI枚舉器發(fā)現(xiàn)USB主機(jī)控制器后,就會裝入相關(guān)的驅(qū)動程序。

    通常一些設(shè)備都需要開發(fā)者寫一個核模式的驅(qū)動程序來使硬件正常工作。在核模式下驅(qū)動程序通過IRP(I/O Request Packet)來組織和操作一些由其他部分發(fā)過來的要求和命令。而IRP又是通過URB(USB Request Blocks)來實現(xiàn)的。但對于一些HID(Human Interface Device)的USB設(shè)備,象鍵盤、鼠標(biāo)和游戲操縱桿之類的設(shè)備可以被操作系統(tǒng)自動識別并且支持,開發(fā)者不需要再另寫驅(qū)動程序。

3 USB接口10M以太網(wǎng)卡的實現(xiàn)

3.1 選擇器件

    目前市場上USB的接口產(chǎn)品有兩種,一種是集成了USB接口的單片機(jī),另一種是不帶單片機(jī)的USB接口芯片。由于前者需要專用的開發(fā)機(jī)故開發(fā)成本較高,本文將介紹一種使用廉價USB接口芯片USBN9602(NS公司)加高速的51單片機(jī)實現(xiàn)10M以太網(wǎng)卡的方案。

    在做設(shè)計之前一定要計算好外設(shè)所要求的帶寬和USB的速度是否匹配。一個USB以太網(wǎng)卡應(yīng)該包括USB通信接口(USBN9602)、8051單片機(jī)以及IEEE802.3的MAC層和物理層。USBN9602在全速工作方式下可以達(dá)到12Mbit/s,采用USBN9602基本可以滿足10M以太網(wǎng)的帶寬需求。為達(dá)到較高的傳輸速率,USBN9602還應(yīng)該用DMA方式與單片機(jī)通信。電路框圖如圖5所示。

3.2 設(shè)計單片機(jī)控制程序

    對于單片機(jī)控制程序,目前沒有任何廠商提供自動生成微碼(firmware)的工具。USB單片機(jī)控制程序通常由三部分組成,第一、初始化單片機(jī)和所有的外圍電路(包括USBN9602);第二、主循環(huán)部分,其任務(wù)是可以中斷;第三、中斷句柄,其任務(wù)是對時間敏感的,必須馬上執(zhí)行。

3.3 開發(fā)USB網(wǎng)卡驅(qū)動程序

    開發(fā)USB設(shè)備驅(qū)動程序通常采用WindowsDDK來實現(xiàn),但現(xiàn)在有許多第三方軟件廠商提供了各種各樣的生成工具,象Compuware的Driver Works,BlueWaters的DriverWizard等軟件能夠方便地生成高質(zhì)量的USB的驅(qū)動程序。沒有DDK或WDM基礎(chǔ)的開發(fā)人員可使用KRFTech公司的開發(fā)軟件WinDriver,它的最新版本4.32已經(jīng)支持USB驅(qū)動程序的開發(fā)。最后的驅(qū)動程序調(diào)試工作可以使用Compuware的Softice或Microsoft的Windows Debugger來進(jìn)行。

    Windows下的網(wǎng)卡驅(qū)動程序需符合NDIS規(guī)范(Network Driver Interface Specification)。網(wǎng)絡(luò)驅(qū)動程序不直接調(diào)用操作系統(tǒng)的例程,而是通過NDIS進(jìn)行系統(tǒng)調(diào)用,NDIS還根據(jù)需要調(diào)用了驅(qū)動程序提供的例程,共同完成網(wǎng)卡的功能。

    USB網(wǎng)卡驅(qū)動程序可分為NDIS中間介質(zhì)小端口驅(qū)動程序和USB驅(qū)動程序兩部分,然后將兩部分驅(qū)動程序動態(tài)連接。如果USB設(shè)備未連接和被禁止,使USB驅(qū)動不可用,那么NDIS驅(qū)動會返回一個NOT_AVAILABLE的狀態(tài)。這種實現(xiàn)方法可以保證用戶不必重新安裝NDIS或重啟就可以連接或拔掉USB設(shè)備。

4 小結(jié)與展望

    目前Win98、Win2000和WinCE均支持USB設(shè)備,USB并且已經(jīng)得到了一個由450家技術(shù)公司組成的技術(shù)聯(lián)盟的支持,今后新PC都會裝有USB端口。APPLE公司更是推出了完全采用USB技術(shù)實現(xiàn)計算機(jī)與外設(shè)連接的新型計算機(jī)iMAC系列。市場上也已經(jīng)出現(xiàn)了越來越多的支持USB的外設(shè),用戶將從中享受到對外設(shè)選擇范圍更廣和與外設(shè)數(shù)據(jù)交換速度更快的好處。據(jù)Dataquest公司統(tǒng)計結(jié)果顯示,2000年全球?qū)鄢鼋眱|臺USB設(shè)備。

    USB2.0已經(jīng)于2000年4月27日正式發(fā)布。USB2.0將向下兼容,使用與1.1版相同的電纜、連接器、軟件接口、拓?fù)浣Y(jié)構(gòu)。對普通用戶來說,在使用時不會覺得有什么改變,但是USB2.0將可以達(dá)到480Mbps的高速,用戶將從2.0所提供的更高速的外設(shè)中受益。預(yù)計2000年第四季度USB2.0的外圍設(shè)備將試生產(chǎn),2001年將投入商業(yè)生產(chǎn),USB2.0使USB具有了更好的應(yīng)用前景。



  • 上一篇: DSP芯片與觸摸屏的接口控制
  • 下一篇: 具有串行接口的I/O擴(kuò)展器EM83010及其應(yīng)用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1