USB技術(shù)入門
USB的即插即用
USB一個(gè)主要優(yōu)點(diǎn)就是支持設(shè)備的熱插拔,用戶不需要關(guān)閉電源就可以接上和使用USB設(shè)備。USB集線器驅(qū)動(dòng)程序枚舉設(shè)備,并通知系統(tǒng)設(shè)備就緒。USB設(shè)備使用描述符來識(shí)別設(shè)備和其使用的協(xié)議。串口號(hào)產(chǎn)生PP用的ID,端口地址指明設(shè)備連接的端口和集線器。若設(shè)備不提供串口號(hào),則USB使用設(shè)備端口地址。
當(dāng)一個(gè)新設(shè)備被USB集線器檢測(cè)到,馬上通知主系統(tǒng),系統(tǒng)軟件就查詢?cè)撛O(shè)備,自動(dòng)確定所需設(shè)備驅(qū)動(dòng)器軟件和總線帶寬,然后對(duì)它進(jìn)行配置。系統(tǒng)軟件裝載了合適的驅(qū)動(dòng)器軟件,用戶馬上就可以使用新設(shè)備。
三、USB編程
USB編程主要是指USB驅(qū)動(dòng)程序編程和USB客戶軟件編程。
USB驅(qū)動(dòng)程序接口
Windows 98通過允許USB設(shè)備驅(qū)動(dòng)程序棧通訊支持USB.在USB驅(qū)動(dòng)程序和USB驅(qū)動(dòng)程序棧之間是USB驅(qū)動(dòng)程序接口(USBDI)。在Windows 98中,這種通訊是在WDM結(jié)構(gòu)中實(shí)現(xiàn)的。
Usbhub.sys是USB集線器驅(qū)動(dòng)程序。當(dāng)Usbd.sys枚舉每個(gè)USB主機(jī)控制器中的根結(jié)點(diǎn)集線器時(shí)被加載。
Usbd.sys是類USB驅(qū)動(dòng)程序。
Uhcd.sys(通用主機(jī)控制驅(qū)動(dòng)程序)以及Ohcd.sys(開放主機(jī)控制驅(qū)動(dòng)程序)是USB主機(jī)控制器驅(qū)動(dòng)程序。
另外,Hidclass.sys(WDM輸入類驅(qū)動(dòng)程序)接受和發(fā)送到小驅(qū)動(dòng)程序的HID報(bào)告。Hidusb.sys通過USB接受和發(fā)送HID報(bào)告。當(dāng)檢測(cè)到USB總線時(shí),PCI枚舉器加載USB棧驅(qū)動(dòng)程序部分,并加載至少一個(gè)核心組件。
USB 驅(qū)動(dòng)程序和USB客戶程序
USB 驅(qū)動(dòng)程序編寫是和硬件相關(guān)聯(lián)的。在器件方面,適合產(chǎn)品開發(fā)的系列芯片有Intel公司的8X930系列(基于MCS-51微處理器的內(nèi)核結(jié)構(gòu))和8X931系列(基于MCS-251微處理器的內(nèi)核結(jié)構(gòu))、National Semiconductor公司的 USBN9602等。Intel公司和第三方提供了一個(gè)完整的硬件和軟件開發(fā)工具,Keil、IAR、PLC和Tasking等公司提供了具有ANSI C交叉編譯器、匯編器、連接器/定位器、調(diào)試器和仿真器的軟件開發(fā)工具。AMI、Phoenix Technologics和 systemSoft等公司提供了設(shè)備驅(qū)動(dòng)器和外圍微控制程序(firmware)。
針對(duì)選用的USB控制器,從第三方得到所需的軟件,包括匯編器或編譯器、連接器/定位器和調(diào)試器等,用它們實(shí)現(xiàn)USB設(shè)備驅(qū)動(dòng)器。對(duì)USB 驅(qū)動(dòng)程序編譯成功后進(jìn)行連接/定位,用調(diào)試器調(diào)試后加載在目標(biāo)系統(tǒng)中。
雖然USB的物理和邏輯拓?fù)浞从沉丝偩€的共享特性,客戶軟件(CSW)只處理它感興趣的USB功能接口。USB功能的客戶軟件必須用USB軟件編程接口來處理各種功能,而不是像其它總線那樣通過地址或I/O訪問直接處理它們的功能。在這個(gè)過程中,客戶軟件獨(dú)立于連接在USB上的其它設(shè)備。這使設(shè)備和客戶軟件的設(shè)計(jì)者將精力集中于軟硬件間相互作用的設(shè)計(jì)細(xì)節(jié)。
USB的客戶程序?qū)嶋H上是對(duì)客戶端設(shè)備映像的操作,這些映像由USBD或HCD產(chǎn)生。在98ddk中,存在著一組叫做USBD Interface (USBDI)函數(shù)的API函數(shù)集。該函數(shù)集包括了傳輸函數(shù),管道(Pipe)函數(shù),設(shè)備配置函數(shù)及其它函數(shù)。應(yīng)用這些函數(shù)可編寫支持任何USB兼容設(shè)備的USB驅(qū)動(dòng)程序和客戶程序。其中,管道(Pipe)是USB設(shè)備驅(qū)動(dòng)程序建立的邏輯通信信道。
四、結(jié)論
USB為個(gè)人計(jì)算機(jī)(PC)外圍設(shè)備輸入輸出提供了新的接口標(biāo)準(zhǔn)。它使得設(shè)備具有了熱插拔、即插即用、自動(dòng)配置的能力,并標(biāo)準(zhǔn)化了設(shè)備連接。USB的級(jí)聯(lián)星型拓?fù)浣Y(jié)構(gòu)大大擴(kuò)充了外設(shè)數(shù)量,使增加、使用外設(shè)更加便捷、快速。新提出的USB2.0標(biāo)準(zhǔn)更是將數(shù)據(jù)傳輸速率提高到了一個(gè)新的高度,因而擁有美好的應(yīng)用前景。
評(píng)論