freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

usb技術(shù)及其驅(qū)動(dòng)程序開(kāi)發(fā)(doc畢業(yè)設(shè)計(jì)論文)-在線瀏覽

2024-08-08 09:17本頁(yè)面
  

【正文】 表2-1 信號(hào)發(fā)送的標(biāo)準(zhǔn) 總線狀態(tài) 信 號(hào) 電 平 開(kāi)始端的源連接器 (一位時(shí)端) 終端的目標(biāo)連接器 需要條件 接受條件差分的“1”D+Voh(min) DVol(max)(D+)(D)200mv(D+)Vih(min)(D+)(D)200mv差分的“0”DVoh(min)D+Vol(max)(D+)(D+)200mvDVih(min)(D)(D+)200mv單終端“0”(SE0)D+和DVol(max)D+和DVil(max)D+和DVih(min)數(shù)據(jù)J態(tài):高速低速差分的“0”差分的“1”差分的“0”差分的“1”數(shù)據(jù)K態(tài):高速低速差分的“1”差分的“0”差分的“1”差分的“0空閑狀態(tài):高速低速.DVihz(min)D+Vil(max)D+Vihz(min)DVil(max)DVihz(min)D+Vih(min)D+Vihz(min)DVih(min)喚醒狀態(tài)數(shù)據(jù)K狀態(tài)數(shù)據(jù)K狀態(tài)包開(kāi)始(SOP)數(shù)據(jù)線從空閑態(tài)轉(zhuǎn)到K態(tài)包結(jié)束(EOP)SE0近似的為2位時(shí)其后僅接著1位時(shí)的JSE0≥1位時(shí)其后僅接著一位時(shí)的J態(tài)SE0≥1位時(shí)其后僅接著J態(tài)包結(jié)束(EOP)SE0近似地為2位時(shí)其后僅接著1位時(shí)的JSE0≥1位時(shí)其后僅接著一位時(shí)的J態(tài)SE0≥1位時(shí)其后僅接著J態(tài)斷開(kāi)(在下行端口處).連接(在上行端口處).空閑態(tài)持續(xù)時(shí)間大于等于2毫秒復(fù)位D+和D小于Vol(max)的持續(xù)時(shí)間大于等于10毫秒D+和D小于Vil(max)的持續(xù)時(shí)間大于等于10毫秒D+和D小于Vil(max)電壓分布所有USB設(shè)備的缺省電壓為低電壓,當(dāng)設(shè)備要從低電壓變化到高電壓時(shí),則是由軟件來(lái)控制的。 USB支持一定范圍的外設(shè)來(lái)提供電壓來(lái)源和電壓消耗,包括如下的部分。根端口集線器:它是直接與USB主機(jī)控制器相連的,并與其有相同的電源來(lái)源。由電池組提供電壓的系統(tǒng)可以支持一個(gè)或五個(gè)單位負(fù)載。 在電壓升高時(shí),它可以接一個(gè)單位負(fù)載,經(jīng)過(guò)初始設(shè)置后,它可以接五個(gè)單位負(fù)載。它的外部端口只能接一個(gè)單位負(fù)載,當(dāng)集線器處于活動(dòng)或掛起態(tài)時(shí),它必須為這個(gè)端口提供電流。自給電壓集線器:它的任一內(nèi)部功能設(shè)備和下形端口不再?gòu)腣bus上獲得電壓,但當(dāng)它的其余部分電壓下降時(shí),它的USB接口可接一個(gè)單位負(fù)載并從Vbus處獲得電壓,以允許該接口能工作。該種設(shè)備上的所需電壓均來(lái)自Vbus。自給電壓功能設(shè)備,如圖17,當(dāng)它的其余設(shè)備電壓下降時(shí),它可以接一個(gè)單位負(fù)載,并從Vbus上獲取所需電壓,以使USB接口處于活動(dòng)狀態(tài)。 USB的數(shù)據(jù)包格式 USB外設(shè)施不管是實(shí)現(xiàn)什么功能,它總是傳輸?shù)氖菙?shù)據(jù), 數(shù)據(jù)位被發(fā)送到總線的時(shí)候,首先最低有效位(LSb),跟著是下一個(gè)最低有效位,最后是最高有效位(MSb)。同步字段里的最后的2位是同步字段結(jié)束的記號(hào),并且標(biāo)志了包標(biāo)識(shí)符(PID)的開(kāi)始。任何收到包標(biāo)識(shí)符,如果含有失敗的校驗(yàn)字段,或者經(jīng)譯碼得到未定義的值,則該包標(biāo)識(shí)符被認(rèn)為是錯(cuò)誤的,而且包的余項(xiàng)將被忽略。專用(Special)前同步(PRE)1100B主機(jī)發(fā)送的前同步字。地址字段地址字段通過(guò)其地址指定函數(shù),至于是數(shù)據(jù)包的發(fā)出地還是目的地,則取決于標(biāo)記PID的值。地址字段用于輸入,建立和輸出標(biāo)記。圖24 地址字段端口字段如圖25所示,當(dāng)功能部件需要一個(gè)以上的端口時(shí),附加的4位的端口(ENDP)字段提供了更靈活的尋址方式。端口字段只對(duì)輸入,建立和輸出標(biāo)記PID有定義。圖26為多字節(jié)顯示格式,每個(gè)字節(jié)的范圍內(nèi)的數(shù)據(jù)位移出時(shí)都是最低位(LSb)在前。循環(huán)冗余校驗(yàn)(CRC)被用來(lái)在標(biāo)記和數(shù)據(jù)包中保護(hù)所有的非PID字段。PID不在含有CRC的包的CRC校驗(yàn)范圍內(nèi)。有2種類型的數(shù)據(jù)包,根據(jù)不同的PID:DATA0和DATA1來(lái)識(shí)別。圖27 數(shù)據(jù)包格式數(shù)據(jù)必須以整數(shù)的字節(jié)數(shù)發(fā)出。167。在消息通道中傳遞的數(shù)據(jù)具有USB定義的格式,它的數(shù)據(jù)包中包含的數(shù)據(jù)允許具有設(shè)備指定的格式。USB提供了多種數(shù)據(jù)格式,使之盡可能滿足客戶軟件和應(yīng)用軟件的要求。每個(gè)傳輸類型在以下的幾個(gè)傳輸特征上會(huì)有不同:可用性,數(shù)據(jù)包大小、信息流的方向、數(shù)據(jù)傳輸?shù)乃俣取㈠e(cuò)誤處理??刂苽鬏斢糜趥魉涂刂泼睿ㄈ缈蛻糗浖退膽?yīng)用之間的設(shè)置信息、命令信息、狀態(tài)信息)。將狀態(tài)信息從應(yīng)用設(shè)備傳到主機(jī)。一個(gè)設(shè)備也可以有被配置為控制傳輸?shù)钠渌鞒蹋诂F(xiàn)實(shí)中沒(méi)有必要有多個(gè)流程。 在低速設(shè)備中,最大值是8B。一個(gè)包含了少于數(shù)據(jù)字節(jié)數(shù)最大值的事務(wù)表明這是傳輸中最后一個(gè)事務(wù)。信息流的方向 控制傳輸使用的是消息通道上的雙向信息流。 全速傳輸除了要傳輸?shù)臄?shù)據(jù)外,還有一個(gè)45B的數(shù)據(jù)頭。一個(gè)8B的單個(gè)低速控制傳輸使用一個(gè)幀的帶寬的29%,如果總線很忙,則所有的控制傳輸可能不得不共享保留的10%的帶寬。 如果主機(jī)在重試三次后沒(méi)有接收到相應(yīng),那么它通知需要這個(gè)傳輸?shù)能浖?,停止與終端的通信,知道問(wèn)題得到解決。 批量傳輸批量傳輸對(duì)傳輸時(shí)間不嚴(yán)格的數(shù)據(jù)傳輸來(lái)說(shuō)是很有用的。批量傳輸可用于從主機(jī)發(fā)送數(shù)據(jù)到一個(gè)打印機(jī),從一個(gè)掃描儀發(fā)送數(shù)據(jù)到主機(jī),對(duì)一個(gè)磁盤(pán)的讀和寫(xiě)等等??捎眯?只有全速設(shè)備可以使用批量傳輸。一個(gè)批量傳輸能有一個(gè)最大的包的大小值為8,16,32或64B。如果一個(gè)數(shù)據(jù)包單個(gè)包不能發(fā)送,那么主機(jī)控制器會(huì)把這個(gè)傳輸分成多個(gè)事務(wù)。信息流的方向 這種通道總是單方向的,如果要進(jìn)行雙向傳送,必須用兩個(gè)通道。 數(shù)據(jù)傳輸?shù)乃俣?當(dāng)總線是空閑時(shí),批量傳輸可以使用任何類型的最大帶寬(最多95%),它們有一個(gè)很小的頭,因此它是所有傳輸中最快的。出錯(cuò)處理 批量傳輸使用錯(cuò)誤檢測(cè)。如果接到一個(gè)nak交換信息,則主機(jī)也會(huì)重試。 中斷傳輸中斷傳送是為這樣一類設(shè)備設(shè)計(jì)的,它們只傳或收少量數(shù)據(jù),而且并不經(jīng)常進(jìn)行傳送,但它們有一個(gè)確定的服務(wù)周期,對(duì)中斷傳送有以下要求:通道的最大服務(wù)期得到保證;由于錯(cuò)誤而引起的重發(fā)在下一服務(wù)期進(jìn)行??捎眯?低速和全速設(shè)備都可以使用中斷傳輸。一個(gè)全速設(shè)備可以使用從1到64B之間的任何大小的數(shù)據(jù)包。 端點(diǎn)描述信息指明了通道的數(shù)據(jù)流方向。數(shù)據(jù)傳輸?shù)乃俣? 中斷傳輸沒(méi)有保證的傳輸速率,只有事務(wù)之間保證的最大間隔。在實(shí)際中,主機(jī)不可能把19個(gè)傳輸安排在一個(gè)幀中,因此實(shí)際最大速率將小于這個(gè)值。出錯(cuò)處理 如果一個(gè)設(shè)備沒(méi)有返回一個(gè)預(yù)期的交換包,則pc的主機(jī)控制器將最多重試兩次。中斷傳輸可以使用數(shù)據(jù)循環(huán)值來(lái)確保所有的數(shù)據(jù)都被正確無(wú)誤的接收到。在USB環(huán)境下,要求同步傳輸能提供以下幾點(diǎn): 固定的延遲下,確保對(duì)USB帶寬的訪問(wèn);只要數(shù)據(jù)能提供得上,就能保證通道上的恒定數(shù)據(jù)傳送速度;如果由于錯(cuò)誤而造成傳送失敗,并不重傳數(shù)據(jù)。 設(shè)備不需要支持等時(shí)傳輸,但一個(gè)設(shè)備類可能需要支持它。USB規(guī)定的數(shù)據(jù)包的大小 USB并不對(duì)數(shù)據(jù)格式做要求。如果數(shù)據(jù)的數(shù)量一個(gè)單個(gè)包不能發(fā)送,則主機(jī)控制器會(huì)把這個(gè)傳輸分成多個(gè)事務(wù)。 在對(duì)端點(diǎn)的描述中指明了與它相連的通道的數(shù)據(jù)流方向。 一個(gè)等時(shí)傳輸每幀最多可以傳輸1023B,這就留下了31%的帶寬給其他傳輸使用。出錯(cuò)處理 保證大塊數(shù)據(jù)的等時(shí)傳輸?shù)拇鷥r(jià)是失去錯(cuò)誤校正。167。底層是傳送和接收數(shù)據(jù)包的總線接口 驅(qū)動(dòng)程序所要做的就是在這些層上編程滿足Usb外設(shè)的需要。 USB設(shè)備狀態(tài)USB設(shè)備有若干可能的狀態(tài),其中一些對(duì)于USB與主機(jī)(host)來(lái)說(shuō)是外置的,而另外一些對(duì)USB設(shè)備來(lái)說(shuō)是內(nèi)置的,出于本論文的目的,現(xiàn)在主要講外置狀態(tài)。電源來(lái)自外部電源的USB設(shè)備被稱作自給電源式的。而這時(shí)候VBUS已經(jīng)對(duì)設(shè)備產(chǎn)生作用了。缺省狀態(tài) 設(shè)備加電以后,在它從總線接收到復(fù)位信號(hào)之前不應(yīng)對(duì)總線傳輸發(fā)生響應(yīng)。每一設(shè)備在連接或復(fù)位后由主機(jī)分配一個(gè)唯一的地址。從設(shè)備的角度來(lái)看,配置包括一個(gè)將非零值寫(xiě)入設(shè)備配置寄存器的操作。當(dāng)中止時(shí),USB設(shè)備保持本身的內(nèi)部狀態(tài),包括它的地址及配置。表2-1列出了所有的標(biāo)準(zhǔn)請(qǐng)求。一個(gè)ClearFeature( )請(qǐng)求所指的特性如果不能被清除,不存在或指的是不存在的接口或結(jié)點(diǎn)號(hào),會(huì)產(chǎn)生請(qǐng)求錯(cuò)誤。 缺省狀態(tài):當(dāng)設(shè)備處于缺省狀態(tài)時(shí),對(duì)此請(qǐng)求的反應(yīng)無(wú)定義。配置狀態(tài):在此狀態(tài)下,該請(qǐng)求合法。 如果返回0值表明設(shè)備未配置。 缺省狀態(tài):該請(qǐng)求響應(yīng)無(wú)定義。 配置狀態(tài):非0的 配置值被返回。這個(gè)標(biāo)準(zhǔn)請(qǐng)求包括三種描述符:設(shè)備、配置、及字符串。第一個(gè)接口描述符緊跟著配置描述符,隨后是接口的端點(diǎn)的描述符。與類有關(guān)的描述符,或Usb外設(shè)生產(chǎn)廠商定義的描述符跟在標(biāo)準(zhǔn)描述符之后。 缺省狀態(tài):此請(qǐng)求合法。配置狀態(tài):此請(qǐng)求合法。 有些USB設(shè)備的接口配置有互斥的設(shè)置。 如果值或長(zhǎng)度不依上表設(shè)置,設(shè)備響應(yīng)無(wú)定義。 缺省狀態(tài):此狀態(tài)下,設(shè)備對(duì)該請(qǐng)求響應(yīng)無(wú)定義。 配置狀態(tài):此請(qǐng)求合法。 如果值或長(zhǎng)度不是上表中值,或指針在讀取設(shè)備狀態(tài)請(qǐng)求時(shí)非0,則設(shè)備響應(yīng)無(wú)定義。 地址狀態(tài):如果所指的是接口或是一個(gè)非0號(hào)端點(diǎn),設(shè)備響應(yīng)返回請(qǐng)求出錯(cuò)。f、設(shè)置地址(SetAddress ( )) 本請(qǐng)求為主機(jī)指定以后與設(shè)備通信的地址。設(shè)備對(duì)SetAddress(0)的響應(yīng)無(wú)定義。 地址狀態(tài):如果新地址值為0,進(jìn)入缺省態(tài),否則仍留在地址狀態(tài)但使用新地址。g、設(shè)置配置值(SetConfiguration( )) 此請(qǐng)求設(shè)置設(shè)備配置值 值的低字節(jié)指出配置,這個(gè)配置值必須為0或與配置描述符中的一個(gè)配置相一致。值的高字節(jié)保留。 缺省狀態(tài):設(shè)備響應(yīng)無(wú)定義 地址狀態(tài):如果所指的配置為0,設(shè)備停留在地址狀態(tài)。否則,返回請(qǐng)求錯(cuò)誤 配置狀態(tài):如果配置值為0,設(shè)備進(jìn)入地址狀態(tài)。h、設(shè)置描述符(SetDescriptor ( )) 此請(qǐng)求用于更新或添加新的描述符。指針域指出了字符串描述符的語(yǔ)言標(biāo)識(shí),對(duì)于其它描述符來(lái)說(shuō)它為0。 如果設(shè)備不支持該請(qǐng)求則設(shè)備返回一個(gè)請(qǐng)求錯(cuò)誤。 地址狀態(tài):如果設(shè)備支持請(qǐng)求,則為合法。i、設(shè)置特性(SetFeature ( )) 這個(gè)請(qǐng)求用來(lái)設(shè)置或使一個(gè)特性生效。 如果SetFeature ( )指的是一個(gè)不存在的接口或端點(diǎn),設(shè)備返回一個(gè)請(qǐng)求錯(cuò)誤。 地址狀態(tài):合法、除非請(qǐng)求錯(cuò)誤。j、設(shè)置接口(SetInterface ( )) 此請(qǐng)求讓主機(jī)為指定的接口選擇一個(gè)設(shè)置。此請(qǐng)求讓主機(jī)選擇所要的設(shè)置。 缺省狀態(tài):設(shè)備響應(yīng)無(wú)定義。 配置狀態(tài):合法。 如果所指的端點(diǎn)不支持此請(qǐng)求,設(shè)備返回一個(gè)請(qǐng)求錯(cuò)誤。 地址地址:設(shè)備返回請(qǐng)求錯(cuò)誤。除了11種標(biāo)準(zhǔn)請(qǐng)求外,USB允許類和供應(yīng)商也定義他們自己的請(qǐng)求,這里就不在贅述了。硬件設(shè)備可能是打印機(jī),調(diào)制解調(diào)器,鍵盤(pán),視頻顯示器或者任何連接到計(jì)算機(jī)的電子電路。設(shè)備可以是標(biāo)準(zhǔn)類型,也可以不是,也包括自定義的設(shè)備。應(yīng)用程序是用戶運(yùn)行的程序,包括支持自定義硬件的特殊用途的應(yīng)用程序。應(yīng)用程序不需要知道外設(shè)連接端口的物理地址,不需要精確監(jiān)視和控制外設(shè)需要的交換信號(hào)。167。對(duì)于這些外設(shè),Windows包括通用驅(qū)動(dòng),這個(gè)類中的設(shè)備都可以使用。 一些外設(shè)提供接口選擇,選項(xiàng)中可能包括Usb。在這種情況下,minidriver可以在通用驅(qū)動(dòng)和設(shè)備使用的接口之間通信。對(duì)于其他設(shè)備,Windows不支持Usb接口,因此,產(chǎn)品供應(yīng)商必須提供完整的驅(qū)動(dòng)程序。這些驅(qū)動(dòng)以WDM(Windows Driver Model)為主,擴(kuò)展名為sys。WDM驅(qū)動(dòng)可以允許或拒絕應(yīng)用程序訪問(wèn)設(shè)備。把通信分成層是有效的,因?yàn)檫@樣可以使不同的設(shè)備在一些任務(wù)上使用相同的驅(qū)動(dòng)。也可以選擇使得每個(gè)設(shè)備驅(qū)動(dòng)直接與USB硬件通信,這樣就會(huì)出現(xiàn)很多重復(fù)的勞動(dòng)。子系統(tǒng)有幾個(gè)層,每個(gè)層包含一個(gè)或多個(gè)處理一套相關(guān)任務(wù)的驅(qū)動(dòng)。在I/O子系統(tǒng)中的一個(gè)重要要素使USB子系統(tǒng),包括處理所有設(shè)備的USB專門通信的驅(qū)動(dòng)。一般設(shè)備通信是通過(guò)IRP(IO請(qǐng)求包)來(lái)完成的。IO管理器接受到一個(gè)IO請(qǐng)求,即IRP,先初始化,然后把它傳遞到合適的驅(qū)動(dòng)程序棧中的驅(qū)動(dòng)程序。如圖3-1所示。例如IRP_MJ_PNP即插即用IRP有幾個(gè)次功能(如IRP_MN_START_DEVICE)。 表3-1 常用的IRP主功能代碼IRP_MJ_CREATE創(chuàng)建或打開(kāi)設(shè)備文件IRP_MJ_CLOSE關(guān)閉文件IRP_MJ_WRITE寫(xiě)文件IRP_MJ_READ讀文件IRP_MJ_CLEANUP取消文件句柄上的任何等待的IRPIRP_MJ_DEVICE_CONTROL設(shè)備IO控制IRP_MJ_POWER電源管理請(qǐng)求IRP_MJ_PNP即插即用消息IRP_MJ_SHUTDOWN關(guān)閉通知 IRP的固定部分含有IRP的固定屬性,每個(gè)棧單元(一個(gè)IO_STACK_LOCATION)事實(shí)上含有大多數(shù)有關(guān)的IRP參數(shù)。每個(gè)驅(qū)動(dòng)程序從當(dāng)前IRP棧單元得到它的IRP參數(shù)。向下傳遞的參數(shù)必須與正在處理的參數(shù)不同。對(duì)于寫(xiě),IRP首部IO_STACK_LOCATION含有用戶緩沖區(qū)信息。圖3-1 IRP概貌 IRP棧單元含有主要的寫(xiě)參數(shù)。前面已經(jīng)說(shuō)過(guò),如果調(diào)用另一個(gè)驅(qū)動(dòng)程序,必須建立下一個(gè)棧單元。一般我們不這么做。在驅(qū)動(dòng)程序棧中處理IRP 在實(shí)際的操作中,IO棧單元通常不用于更改這些基本的IRP參數(shù),IRP棧單元通常用于允許一個(gè)IRP被設(shè)備棧中的所有驅(qū)動(dòng)程序處理。第一個(gè)IRP到達(dá)最高層的驅(qū)動(dòng)程序1,它使用函數(shù)IoGetCurrentIrpStackLocation()獲得指向當(dāng)前棧單元
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1