1. usb介面問題!
Pocketec公司開發的DUSE就為我們提供了在DOS下對USB存儲設備(USB硬碟、軟碟機、光碟機)的支持,不過它目前還 不支持較常見的USB ThumbDrive(即U盤)。若要在DOS下驅動USB的U盤,請使用Motto Hairu驅動程序。另外,如果想在純DOS下使用其它USB設備,如USB滑鼠、USB列印機等,則可以使用其它的USB驅動程序,如USB_Link 中的OHCI/UHCI,以及USB4DOS等,均可在本站的「驅動程序」中找到相應的鏈接,並可在「DOS使用中的常見問題解答(FAQ)」中看到一些 DOS下使用USB設備的信息。
DUSE是DOS下的USB存儲設備的驅動程序,目前的最新版本為4.2,是今年剛推出的。它的用法很簡單,可在CONFIG.SYS中載入,也可以用它 自帶的DUSELDR.COM程序來實現在DOS命令行下(包括批處理文件中)的載入。例如在CONFIG.SYS中加上一行:DEVICE=C:\ DOS\DUSE.EXE或在DOS命令行下執行DUSELDR C:\DOS\DUSE.EXE均可。
如果要載入的是USB光碟機,除載入DUSE驅動程序外,還需運行光碟機擴展驅動程序,通常可以使用DOS自帶的MSCDEX.EXE。DUSE的默認光碟機設備名是USBCDROM,在DOS命令行下可以像下面這樣運行MSCDEX.EXE:
MSCDEX /D:USBCDROM /K
如果要更好地使用和控制DUSE,可以使用它提供的參數,DUSE的運行參數如下表:
(說明:以下為它的4.2版的參數,其最新4.4版又增加了EMUIRQ、UBNU、DDWAIT等參數。[]中表示可以省略的,以VER[BOSE]為例,VERBOSE是參數的完整寫法,而VER則是簡寫,即[]中的BOSE可以省略。)
1: VER[BOSE][=x], 允許顯示狀態信息。x的合法值是0、1和2。0表示不顯示信息,1表示顯示文本消息,2表示採用彈出式窗口顯示信息。默認值為0,如果輸入了VERBOSE參數但未設定x的值的話,默認值為2。
2: WAI[T]=x, 設置顯示彈出式窗口到關閉此窗口的時間(以秒來計算)。x的合法值為0到255之間,默認值為3。只有當VERBOSE的值為2的時候此參數才有效。
3: DRI[VES]=x, 設置允許的USB驅動器的數目。X取值從0到3。如果設置為0的話表示禁止USB驅動器的支持。默認值為1。
4: NOD[RIVES], 禁止對USB驅動器的支持。此參數將覆蓋DRIVES參數設置。
5: NOC[DROM], 禁止對USB CD-ROM光碟機的支持。
6: MEM[POOL]=x, 設置分配附加的內存的大小。DUSE會根據USB控制器的數目、傳輸的速度等來進行計算,確定最佳分配內存的大小。而設置此參數將由用戶決定內存分配的大小,x值的單位為KB,合法值在0到128之間。
7: XFER[SIZE]=x, 設置允許的最大傳輸緩沖區,x值單位為KB來。增加傳輸緩沖區將增強傳輸性能,但也需要佔用更多的內存。默認值為16。
8: SEC[TORSIZE]=x, 設置USB驅動器的扇區大小。x的值用位元組來表示。合法值為512,1024或2048,默認為512。
9: APM[STATE]=x, 設置APM(高級電源管理)功能已啟用的USB設備中APM的級別。增加此級別將增加設備的性能,但會增加電源的損耗。下面列出了合法的APM的狀態x值:
* 最大性能 FEh
* 無掛起功能時中間的電源管理級別 81h-FDh
* 無掛起功能時最小電源損耗 80h
* 帶掛起功能時中間的電源管理級別 02h-7Fh
* 帶掛起功能時最小電源損耗 01h
x的默認值為0x7F。
10: INT[13], 啟用硬碟的INT13功能支持. 此功能對一些磁碟工具(如FDISK)提供支持。
11: DMA[SAFE], 分配在數據傳輸中使用的DMA安全緩沖區。在運行一些需要從擴展內存中分配的緩沖的應用程序時此參數是必須指定的。
12: NOU[HCI], 防止初始化UHCI USB控制器。
13: NOO[HCI], 防止初始化OHCI USB控制器。
14: NOE[HCI], 防止初始化EHCI USB控制器。
15: UHCN=x, 指定DUSE初始化的UHCI控制器的最大數目為x。
16: OHCN=x, 指定DUSE初始化的OHCI控制器的最大數目為x。
17: EHCN=x, 指定DUSE初始化的EHCI控制器的最大數目為x。
18: LATE[INIT], 啟用「延時初始化」的功能. 當使用此功能時,驅動程序在DOS啟動階段從CONFIG.SYS文件中載入,但是直到在DOS命令中使用INIT參數運行DUSE時才會正式啟用USB 設備,典型是在AUTOEXEC.BAT文件的結尾。可看下面的「延時初始化」和「將DUSE當作應用程序來運行」的部分。
19: EBAR=x, 指定EHCI BAR(基地址寄存器)將被分配到內存中的地址。x的值必須是四位的16進制數字並帶上前綴0x,例如要將EHCI BAR的地址置為0xE000,那麼正確的命令行選項就是EBAR=0xE000。合法的地址區域在0xA000到0xF400之間。
20: OBAR=x, 指定OHCI BAR將被分配到內存中的地址。上面對EBAR的描述可應用於OBAR。
21: UBAR=x, 指定UHCI BAR將被分配到內存中的地址。上面對EBAR的描述可應用於UBAR,不過它的合法的地址區域在0x0400到0xF400之間。
22: CDW[AIT][=x], 指示DUSE的初始化要等到第一個USB CD-ROM光碟機的盤符被分配,或在x秒鍾之內不要結束。x的合法值在0到30之間。x=0是一個特殊值,它表示DUSE將一直等到第一個USB CD-ROM光碟機的盤符被分配或用戶按下鍵盤上的ESC鍵。如果沒有指定x的值的話,默認為x=0。
23: CDD[EVICE]=<設備名>, 指定USB CD-ROM光碟機的設備名。默認設備名是USBCDROM。
24: VFLOP[PY], 初始化時建立一個啟動軟盤的虛擬映像。
以下是使用一個命令行參數的例子。可參考此行把DUSE加入到CONFIG.SYS文件中:
DEVICE=C:\DUSE\DUSE.EXE VERBOSE DRIVES=2 XFER=8 SEC=2048 NOCD
此例子設置:
* 顯示彈出式狀態窗口
* 支持兩個USB驅動器
* 將最大傳輸緩沖區大小設為8K
* 將默認扇區大小設為2048位元組
* 禁止對USB CD-ROM光碟機提供支持
* 關於「延時初始化」的功能
當在CONFIG.SYS中以LATE[INIT]參數來運行DUSE(例如使用DEVICE=DUSE.EXE LATE)時,要真正使用USB設備還需進行一次真正的初始化。真正的初始化的方法是在DOS命令行下(包括批處理文件中)使用DUSE INIT命令。
* 關於「將DUSE當作應用程序來運行」的功能
將DUSE當作應用程序來在DOS命令行下運行時,DUSE只支持INIT參數。此參數在上面的「延時初始化」以後於DOS命令行上載入,使得DUSE真正初始化USB設備,以真正使用USB設備。
華軍下載地址
http://nj.onlinedown.net/soft/19261.htm
2. 如何通過USB介面訪問com2介面
數據接收存儲技術革新是信號採集處理領域內的一個重要課題。利用這種技術,可以把信號的實時採集和精確處理在時間上分為兩個階段,有利於獲得令人更滿意的處理結果。在無線數傳接收設備中應用數據接收存儲方法時,除了要滿足數據傳輸速率和差錯控制方面的要求外,還需要考慮如何使設備易於攜帶、介面簡單、使用方便。
傳統外設介面技術不但數據傳輸速率較低,獨佔中斷、I/O地址、DMA通道等計算機系統關鍵資源,容易造成資源沖突問題,而且使用時繁雜的安裝配置手續也給終端用戶帶來了諸多不便。近年來,USB介面技術迅速發展,新型計算機紛紛對其提供支持。USB2.0是USB技術發展的最新成果,利用USB2.0介面技術開發計算機外設,不但可以借用其差錯控制機制[1][6]減輕開發人員的負擔、獲得高速數據傳輸能力(480Mb/s),而且可以實現便捷的機箱外即插即用特性,方便終端用戶的使用。
1 無線數傳接設備總體構成
無線數傳接收設備是某靶場測量系統的一個重要組成部分。如圖1所示,該設備由遙測接收機利用天線接收經過調制的無線電波信號,解調後形成傳輸速率為4Mb/s的RS-422電平差分串列數據流。以幀同步字打頭的有效數據幀周期性地出現在這些串列數據中。數據轉存系統從中提取出有效的數據幀,並在幀同步字後插入利用GPS接收機生成的本地時間信息,用於記錄該幀數據被接收到的時間,然後送給主機硬體保存。
在無線數傳接收設備中,數據轉存系統是實現數據接收存儲的關鍵子系統。下面將詳細介紹該系統的硬體實現及工作過程。
2 數據轉存系統基本構成及硬體實現
數據轉存系統主要由FPGA模塊、DSP模塊、USB2.0介面晶元構成,各個模塊之間的相互關系如圖2所示示。圖中,4Mb/s的串列數據輸入信號SDI已由RS-422差分電平轉換為CMOS電平。為突出重點,不太重要的信號連線未在圖中繪出。下面分別介紹這幾個模塊的主要功能。
2.1 FPGA模塊實現及春功能
FPGA模塊在Altera公司ACEX系列的EP1K30TI144-2晶元中實現。其中主要的功能子模塊有:位同步邏輯、幀同步邏輯、授時時鍾和解碼邏輯。位同步邏輯主要由數字鎖相環構成,用於從串列數據輸入信號SDI中恢復出位時鍾信號。幀同步邏輯從位同步邏輯的輸出信號提取幀同步脈沖。兩者為DSP利用其同步串列口接收串列數據作好准備。這樣,利用一對差分信號線就可以接收同步串列數據,簡化了印製電路板的外部介面。授時時鍾在DSP和GSP接收機的協助下生成精度為0.1ms的授時信息。解碼邏輯用於實現系統互聯。
2.2 DSP模塊實現及其功能
DSP模塊是數據轉存系統的主控模塊,在T1公司16位定點DSP晶元TMS320F206[4]中實現。在DSP的外部數據空間還配置了32KX16的高速SRAM,可以緩存80餘幀數據,用於提高系統的差錯控制能力。DSP利用同步串列口接收FPGA送來的同步串列數據,利用非同步串口接收GPS接收機送來時間信息(用於初始化FPGA授時時鍾),利用外部匯流排介面訪問FPGA授時時鍾、外部SRAM、ISP1581的片內寄存器。可以看出DSP模塊主要用於完成數據幀的接收、重組以及轉存調度等任務。
ISP1581晶元是PHILIPS公司推出的高速USB2.0設備控制器,實現了USB2.0/1.1物理層、協議層,完全符合USB2.0規范,即支持高速(480Mb/s)操作,又支持全速(12Mb/s)操作。ISP1581沒有內嵌微處理器,但對微處理器操作了靈活的介面。在上電時,通過配置BUS——CONF、DAO、MODE1、MODE0、DA1引腳電平可以適應絕大多數的微處理器介面類型。例如,通過BUS_CONF/DA0引腳,匯流排配置可以選擇普通處理器模塊(Generic Phocessor mode)中分割匯流排模式(Split Bus Mode);在普通處理器模式下,通過MODE0/DA1引腳可以選擇讀寫選通為8051風格或者Motorola風格。
在數據轉存系統中,ISP1581用於處理主機的高速數據傳輸。它工作在普通處理器介面模式下,採用8051風格的讀寫選通信號,由DSP晶元TMS320F206控制。兩者在選定工作方式下的信號連線如圖3所示,圖中未畫出的信號引腳可以懸空,供電引腳的連接方式在參考資料[2]第46頁有簡明描述。在FPGA解碼邏輯的作用下,ISP1581的片內寄存器被映射在DSP的片外數據空間中。DSP通過8位地址線選擇要訪問的寄存器,在讀寫選通信號的控制下,利用16位數據線與選定的寄存器交換數據。在訪問ISP1581單位元組寄存器時,數據匯流排高位元組內容無關緊要。ISP1581通過中斷引腳INT向DSP報告發生的匯流排事件,利用D+、D-引腳完成與主機的數據交換。
3 數據轉存系統的工作過程
系統加電後,當FPGA配置過程結束時,如果有串列數據輸入,位同步邏輯和幀同步邏輯便啟動同步過程。同時,DSP片內FLASH中復位中斷服務程序c_int0()[4]被立即執行,在建立好C語言的工作環境下,它會調用主函數main()。在main()中,需要安排好一系列有先後順序的初始化工作。其中,ISP1581的初始化過程比較復雜,需要考慮設備採用的供電方式(這里為自供電[6]方式)、插接主機和系統上電的先後次序,並需要與USB匯流排枚舉[1][6]過程相結合。
在FPGA中的位同步邏輯和幀同步邏輯均進入同步狀態,且DSP主控模塊配合主機完成初始化任務後,即可啟動數據的傳輸過程。下面介紹一下ISP1581的初始化過程及DSP控制的數據幀的接收機轉存流程。
3.1 ISP1581的初始化
在初始化過程中,首先需要設置影響ISP1581自身工作方式的一些寄存器,然後與主機端USB系統配合進行,應答來自主機端的設備請求。當數據轉存系統板作為USB 2.0設備通過連接器連到主機USB根集線器上的一個埠時,主機便可檢測到這一連接,接著給該埠加電,檢測設備並激活該埠,向USB設備發送復位信號。設備收到這一復位信號後,即進入預設狀態,此後就能夠通過預設通信通道響應主機端送來的設備請求。主機通過描述符請求(GET_DESCRIPTOR)獲得設備端的詳細信息,通過設置地址請求(SET_ADDRESS)設置設備地址,通過設置配置請求(SET_CONFIGURATION)選定合適的設備配置。在設備成功響應了這些設備請求之後,就可以與主機通信了。
在響應主機請求的過程中,DSP需要配置ISP1581的端點以實現不同類型的傳輸通道。根據數據傳輸速率的要求,除了預設的控制通道外,系統中實現了一個批傳輸(bulk)[1]類型的輸入通道。這樣,ISP1581就可以像FIFO一樣方便地從數據轉存系統向主機傳輸數據,而且具有差錯控制能力,簡化了設備端軟體設計的復雜性。
3.2 數據幀的接收轉存過程
系統正常工作時,需要與主機端程序相互配合。主要端需要開發者實現的程序包括設備驅動程序和應用程序。在Windows 2000操作系統下,USB設備驅動程序為WDM模型的驅動程序,開發環境DriverStudio為WDM型驅動程序提供了框架結構,使得驅動開發變得非常容易(參見參考文獻[5]第八、九、十章)。驅動程序接收應用程序的請求,利用USB匯流排驅動程序(US-BD)和主機控制器驅動程序(HCD)通過主機控制器安排USB匯流排事務,設備端則根據這些事務調度相應的數據幀的傳輸。關於主機埠如何安排匯流排事務可以查閱參考文獻[1]。以下著重介紹設備端數據的調度過程。
數據幀的接收轉存過程主要由DSP負責,DSP在外部SRAM中建立了一個數據幀的隊列,如圖4所示。系統主要工作在中斷驅動模式下,與同步串列口相關的中斷服務程序負責建立隊列的尾部,對應於ISP1581中斷引腳INT的中斷服務程序負責建立隊列的頭部。
當以幀同步字打頭的一幀數據以串列位流的形式到來時,FPGA產生的幀同步脈沖可以直接啟動DSP同步串列口接收數據,該同步脈沖同時以中斷方式通知DSP為一幀數據的接收做好准備。DSP接到通知後,首先檢查外部SRAM中是否有足夠的空間容納一幀數據。如果沒有空間,則丟棄當前數據幀(根據設計,這種情況是很少見的);如果有空間,則為當前數據幀保留足夠的空間。接著在幀起始位置填寫幀步字,讀取授時時鍾的當前值並填寫在幀同步字後。這樣,一個新的數據幀(圖4中數據幀F_N)就建立了,但是並沒有加入到隊列中,而是要等待來自同步串列口的後繼數據嵌入該幀中後再加入到隊列中。
同步串列口的接收緩沖區在接收到若干字(由初始化時的設置決定)後,會向DSP提出中斷請求。在中斷服務程序中,DSP讀取接收緩沖區中的內容,並將其填入上述新開辟的幀F_N中。在一幀數據接收完畢後,就將該幀添加到隊列的尾部,表示該幀數據已經准備好(圖4中數據幀F_R),可以通過ISP1581送給主機硬體保存。
DSP在查詢到隊列中有已經准備好的數據幀存在時,就設置ISP1581的端點索引寄存器(Endpoint Index Register)使其指向初始化時配置的批傳輸輸入端點,然後將隊列首幀數據通過ISP1581的數據埠寄存器(Data Port Register)填寫在端點緩沖區中。在端點緩沖區被填滿後,它就自動生效。在不能填滿端點緩沖區的情況下,可以通過設置控制功能寄存器(Control Function Register)的VENDP位[2]強制該端點緩沖區生效。端點緩沖區生效後,在USB匯流排上下一IN令牌到來時,該端點緩沖區中的數據就通過USB匯流排傳輸到主機中。主機成功接收到數據後,會給ISP1581以ACK應答。能夠通過INT引腳報告給DSP,DSP就可以繼續往端點中填寫該幀其餘數據。
在隊列首幀數據被成功轉移到主機後,DSP就丟棄首幀數據。如果隊列在還有數據幀,則將次首幀作為首幀,繼續前述傳輸過程;如果沒有要傳輸的數據幀,則為隊列首幀指針Head_Ptr賦空值(NULL),等待新的數據幀的到來。
USB2.0是計算機外設介面技術發展的最新成功,具有廣闊的應用前景。本文介紹了PHILIPS公司USB2.0介面晶元ISP1581在無線數據接收設備中的應用。高性能、便攜化的無線數據傳接收設備。其在靶場實彈試驗中受到了用戶的好評。
PC機的RS-232C串列口是使用最多的介面之一。因此,4串口、8串口等以增加串口數量為目的的ISA匯流排卡產品大量問世。一般串口應用只是使用了RXD和TXD兩條傳輸線和地線所構成的串口的最基本的應用條件,而本文介紹一個利用PC機的RS-232串口加上若干電路來實現多串口需求的介面電路。
1.PC機串口的RTS和DTR及擴展電路
RTS和DTR是PC機中8250晶元的MODEM控制寄存器的兩個輸出引角D1和D0位,口地址為COM1的是3FCH,口地址為COM2的是2FCH。我們可以利用對MODEM控制寄存器3FCH或2FCH的寫操作對其進行控制。從而利用該操作和擴展電路實現對TXD和RXD進行多線擴展,圖1是其擴展電路。
在圖1所示的PC機串口擴展電路中,74LS161是二進制計數器,1腳是清0端,2腳是計數端,計數脈沖為負脈沖信號,4051是八選一雙向數字/模擬電子開關電路,其中一片用於正向輸出,一片用於反向輸出。該擴展電路工作原理是通過控制PC機串口的DTR輸出的高低電平來形成74LS161的P2腳計數端的負脈沖信號,使161的輸出端P14(QA)、P13(QB)、P12(QC)、P11(QD)腳依次在0000到1111十六個狀態中變化,本電路僅使用了QA、QB、QC三個輸出來形成對4051的ABC控制,最終使得4051(1)的輸入端TXD依次通過與TX1~TX8導通而得到輸出信號,4051(2)的輸出端RXD與RX1~RX8依次導通形成輸入信號。由於RXD和TXD的導通是一一對應的,因此串口通信就可以依次通過與多達8個帶有三線基本串口的外部設備進行通信傳輸以實現數據傳送。PC機端的電平轉換電路是將RS232電平轉換為TTL電平,外設端的電平轉換電路是將TTL電平轉換為RS232電平。由於這種轉換有許多電路可以實現,因而,這里不再介紹。
2.電路使用程序
對PC機串口COM1的編程如下:
……
… ;對COM1口的波特率等設置;
MOV DX,3FCH
MOV AL,XXXXXX01B
OUT DX,AL;D1生成RTS負脈沖,對74LS161輸出端清0
MOV AL,XXXXXX11B;
OUT DX,AL ;4051的RX1和TX1導通
CALL COM ;調用通信子程序,與第一個外部設備通信;
MOV CX,7 ;設置循環計數器;
NEXT:MOV DX ,3FCH
MOV AL,XXXXXX10B
OUT DX ,AL ;D0位生成DTR的負脈沖,形成161的P2腳計數脈沖
MOV AL,XXXXXX11B
OUT DX,AL ;RX2和TX2導通
CALL COM ;調用通信子程序,與第二個外部設備通信
LOOP NEXT ;循環與另外6個外部設備通信
…
… ;通信子程序略
3.使用說明
由於該擴展的多路介面在通信時共用一個子程序,因此在與某一路導通時,系統只能與這一路的外部設備進行通信聯絡。
如果工作現場需要立即和某一路通信,則需要對3FCH的D1位執行兩個寫操作並在RTS腳形成負脈沖,以對7416I清0後,再連接執行若干次對DTR的兩次寫操作。例如想對第4路外設通信,則需要執行完成對74LS161清0後,再連續三次對3FCH的D0位進行兩個寫操作以形成DTR腳的負脈沖,然後即可調用通信子程序。
如需使用PC機的COM2串口,只需將程序中的3F8H~3FDH全部換成2F8H~2FDH即可。
如果使用十六選一雙向數字/模擬電子開關電路,可將74LS161的QA、QB、QC、QD四個輸出端接至電子開關的四個控制端A、B、C、D,這樣就可以達到一個PC機的RS232口與16個帶有串口的外設的數據通信
3. 攝像頭通過usb口與PC通信,是將幀緩存在緩沖區中然後解壓縮播放么具體的全部通信流程和介面都是什麼
現在市場上銷售的攝像頭都是數字攝像頭,它將攝像單元和視頻捕捉單元集成在一起,通過微機上的USB介面,可以實現即插即用,那麼它是依靠怎樣的原理來實現的呢?所謂視頻傳輸就是將圖片一張張傳到屏幕,由於傳輸速度很快,所以可以讓大家看到連續動態的畫面,就像放電影一樣。一般當畫面的傳輸數量達到每秒24幀時,畫面就有了連續性。在進行這種圖片的傳輸時,必須將圖片進行壓縮,一般壓縮方式有如H.261、JPEG、MPEG等,否則傳輸所需的帶寬會變得很大。大家用RealPlayer不知是否留意,當播放電影的時候,在播放器的下方會有一個傳輸速度250kbps、400kbps、1000kbps…畫面的質量越高,這個速度也就越大。而攝像頭進行視頻傳輸也是這個原理,如果將攝像頭的解析度調到640480,捕捉到的圖片每張大小約為50kb左右,每秒30幀,那麼攝像頭傳輸視頻所需的速度為5030/s=1500kbps= 1.5Mbps。而在實際生活中,人們一般用於網路視頻聊天時的解析度為320240甚至更低,傳輸的幀數為每秒24幀。換言之,此時視頻傳輸速率將不到300kbps,人們就可以進行較為流暢的視頻傳輸聊天。如果採用更高的壓縮視頻方式,如MPEG-1等等,可以將傳輸速率降低到200kbps不到。這個就是一般視頻聊天時,攝像頭所需的網路傳輸速度。 寬頻網路: 視頻壓縮上已經可以滿足應用的標准
,但視頻聊天的實現,還需要互聯網條件的認可。一般來說,在國內我們可以通過以下幾種方式上網: 可以看出,除了56K Modem,ISDN以外,一般的寬頻網路都可以滿足用戶進行視頻傳輸的需求。而根據不同上網方式給用戶提供的帶寬,還可以自己調節攝像頭傳輸畫面的質量,如
解析度、真彩色級別、畫面捕捉傳輸速度等等。比如,當帶寬達到2Mbps時,我們就可以採用解析度為640480,每秒30幀來進行視頻聊天,這時不論是畫面的質量還是流暢性都是相當高的,如同兩個人面對面交流一樣。
再簡單一點,通過網路底層協議,在你們兩台電腦之間建立一個連接用來傳輸數據,通過對方的攝象頭把雙方的視頻信號採集後轉化成數據通過建立的連接傳給對方,再在對方處轉化成視頻信號放給你看,so。。。
4. 電腦上所謂的埠是什麼啊,怎麼查看自己的埠是多少
電腦「埠」為英文port的義譯,可以認為是計算機與外界通訊交流的出口。其中硬體領域的埠又稱介面,如:USB埠、串列埠等。軟體領域的埠指網路中面向連接服務和無連接服務的通信協議埠,是一種抽象的軟體結構,包括一些數據結構和I/O(基本輸入輸出)緩沖區。
埠可分為3大類:
1、公認埠(Well Known Ports):從0到1023,它們緊密綁定於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:80埠實際上總是HTTP通訊。
2、注冊埠(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些埠,這些埠同樣用於許多其它目的。例如:許多系統處理動態埠從1024左右開始。
3、動態私有(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些埠。實際上,機器通常從1024起分配動態埠。但也有例外:SUN的RPC埠從32768開始。
(4)電腦usb埠緩沖區擴展閱讀
埠在入侵中的作用
有人曾經把伺服器比作房子,而把埠比作通向不同房間(服務)的門,如果不考慮細節的話,這是一個不錯的比喻。入侵者要佔領這間房子,勢必要破門而入(物理入侵另說),那麼對於入侵者來說,了解房子開了幾扇門,都是什麼樣的門,門後面有什麼東西就顯得至關重要。
入侵者通常會用掃描器對目標主機的埠進行掃描,以確定哪些埠是開放的,從開放的埠,入侵者可以知道目標主機大致提供了哪些服務,進而猜測可能存在的漏洞,因此對埠的掃描可以幫助我們更好的了解目標主機,而對於管理員,掃描本機的開放埠也是做好安全防範的第一步。
5. 如何定義STM32 USB HID設備緩沖區地址請求幫助
USB HID報告及報告描述符簡介相關討論:
在USB中,USB HOST是通過各種描述符來識別設備的,有設備描述符,
配置描述符,介面描述符,端點描述符,字元串描述符,報告描述符等等。
USB報告描述符(Report Descriptor)是HID設備中的一個描述符,它是比較
復雜的一個描述符。
USB HID設備是通過報告來給傳送數據的,報告有輸入報告和輸出報告。
輸入報告是USB設備發送給主機的,例如USB滑鼠將滑鼠移動和滑鼠點擊等
信息返回給電腦,鍵盤將按鍵數據數據返回給電腦等;輸出報告是主機發送
給USB設備的,例如鍵盤上的數字鍵盤鎖定燈和大寫字母鎖定燈等。報告是
一個數據包,裡麵包含的是所要傳送的數據。輸入報告是通過中斷輸入端點
輸入的,而輸出報告有點區別,當沒有中斷輸出端點時,可以通過控制輸出
端點0發送,當有中斷輸出端點時,通過中斷輸出端點發出。
而報告描述符,是描述一個報告以及報告裡面的數據是用來干什麼用的。
通過它,USB HOST可以分析出報告裡面的數據所表示的意思。它通過控制輸入
端點0返回,主機使用獲取報告描述符命令來獲取報告描述符,注意這個請求
是發送到介面的,而不是到設備。一個報告描述符可以描述多個報告,不同的
報告通過報告ID來識別,報告ID在報告最前面,即第一個位元組。當報告描述符中
沒有規定報告ID時,報告中就沒有ID欄位,開始就是數據。更詳細的說明請參看
USB HID協議,該協議可從下載。
USB報告描述符可以通過使用HID Descriptor tool來生成,這個工具可以
到下載,為了方便大家,我順便上傳了一份。
下面通過由HID Descriptor tool生成的USB滑鼠和USB鍵盤來說明一下報告
描述符和報告。
code char KeyBoardReportDescriptor[63] = {
//表示用途頁為通用桌面設備
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//表示用途為鍵盤
0x09, 0x06, // USAGE (Keyboard)
//表示應用集合,必須要以END_COLLECTION來結束它,見最後的END_COLLECTION
0xa1, 0x01, // COLLECTION (Application)
//表示用途頁為按鍵
0x05, 0x07, // USAGE_PAGE (Keyboard)
//用途最小值,這里為左ctrl鍵
0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
//用途最大值,這里為右GUI鍵,即window鍵
0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
//邏輯最小值為0
0x15, 0x00, // LOGICAL_MINIMUM (0)
//邏輯最大值為1
0x25, 0x01, // LOGICAL_MAXIMUM (1)
//報告大小(即這個欄位的寬度)為1bit,所以前面的邏輯最小值為0,邏輯最大值為1
0x75, 0x01, // REPORT_SIZE (1)
//報告的個數為8,即總共有8個bits
0x95, 0x08, // REPORT_COUNT (8)
//輸入用,變數,值,絕對值。像鍵盤這類一般報告絕對值,
//而滑鼠移動這樣的則報告相對值,表示滑鼠移動多少
0x81, 0x02, // INPUT (Data,Var,Abs)
//上面這這幾項描述了一個輸入用的欄位,總共為8個bits,每個bit表示一個按鍵
//分別從左ctrl鍵到右GUI鍵。這8個bits剛好構成一個位元組,它位於報告的第一個位元組。
//它的最低位,即bit-0對應著左ctrl鍵,如果返回的數據該位為1,則表示左ctrl鍵被按下,
//否則,左ctrl鍵沒有按下。最高位,即bit-7表示右GUI鍵的按下情況。中間的幾個位,
//需要根據HID協議中規定的用途頁表(HID Usage Tables)來確定。這里通常用來表示
//特殊鍵,例如ctrl,shift,del鍵等
//這樣的數據段個數為1
0x95, 0x01, // REPORT_COUNT (1)
//每個段長度為8bits
0x75, 0x08, // REPORT_SIZE (8)
//輸入用,常量,值,絕對值
0x81, 0x03, // INPUT (Cnst,Var,Abs)
//上面這8個bit是常量,設備必須返回0
//這樣的數據段個數為5
0x95, 0x05, // REPORT_COUNT (5)
//每個段大小為1bit
0x75, 0x01, // REPORT_SIZE (1)
//用途是LED,即用來控制鍵盤上的LED用的,因此下面會說明它是輸出用
0x05, 0x08, // USAGE_PAGE (LEDs)
//用途最小值是Num Lock,即數字鍵鎖定燈
0x19, 0x01, // USAGE_MINIMUM (Num Lock)
//用途最大值是Kana,這個是什麼燈我也不清楚^_^
0x29, 0x05, // USAGE_MAXIMUM (Kana)
//如前面所說,這個欄位是輸出用的,用來控制LED。變數,值,絕對值。
//1表示燈亮,0表示燈滅
0x91, 0x02, // OUTPUT (Data,Var,Abs)
//這樣的數據段個數為1
0x95, 0x01, // REPORT_COUNT (1)
//每個段大小為3bits
0x75, 0x03, // REPORT_SIZE (3)
//輸出用,常量,值,絕對
0x91, 0x03, // OUTPUT (Cnst,Var,Abs)
//由於要按位元組對齊,而前面控制LED的只用了5個bit,
//所以後面需要附加3個不用bit,設置為常量。
//報告個數為6
0x95, 0x06, // REPORT_COUNT (6)
//每個段大小為8bits
0x75, 0x08, // REPORT_SIZE (8)
//邏輯最小值0
0x15, 0x00, // LOGICAL_MINIMUM (0)
//邏輯最大值255
0x25, 0xFF, // LOGICAL_MAXIMUM (255)
//用途頁為按鍵
0x05, 0x07, // USAGE_PAGE (Keyboard)
//使用最小值為0
0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated))
//使用最大值為0x65
0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application)
//輸入用,變數,數組,絕對值
0x81, 0x00, // INPUT (Data,Ary,Abs)
//以上定義了6個8bit寬的數組,每個8bit(即一個位元組)用來表示一個按鍵,所以可以同時
//有6個按鍵按下。沒有按鍵按下時,全部返回0。如果按下的鍵太多,導致鍵盤掃描系統
//無法區分按鍵時,則全部返回0x01,即6個0x01。如果有一個鍵按下,則這6個位元組中的第一
//個位元組為相應的鍵值(具體的值參看HID Usage Tables),如果兩個鍵按下,則第1、2兩個
//位元組分別為相應的鍵值,以次類推。
//關集合,跟上面的對應
0xc0 // END_COLLECTION
};
通過上面的分析,我們知道這個報告中只有一個報告,所以沒有報告ID,
因此返回的都是實際使用的數據。總共有8位元組輸入,1位元組輸出。其中輸入的
第一位元組用來表示特殊按鍵,第二位元組保留,後面的六位元組為普通按鍵。如果
只有左ctrl鍵按下,則返回01 00 00 00 00 00 00 00(十六進制),如果
只有數字鍵1 按下,則返回00 00 59 00 00 00 00 00,如果數字
鍵1 和2 同時按下,則返回00 00 59 5A 00 00 00 00,如果
再按下左shift 鍵,則返回02 00 59 5A 00 00 00 00,
然後再釋放1 鍵,則返回02 00 5A 00 00 00 00 00,
然後全部按鍵釋放,則返回00 00 00 00 00 00 00 00。
這些數據(即報告)都是通過中斷端點返回的。當按下Num Lock鍵時,PC會發送
輸出報告,從報告描述符中我們知道,Num Lock的LED對應著輸出報告的最低位,
當數字小鍵盤打開時,輸出xxxxxxx1(二進制,打x的由其它的LED狀態決定);
當數字小鍵盤關閉時,輸出xxxxxxx0(同前)。取出最低位就可以控制數字鍵鎖定LED了。
下面這個報告描述符是USB滑鼠報告描述符,比起鍵盤的來說要簡單些。
它描述了4個位元組,第一個位元組表示按鍵,第二個位元組表示x軸(即滑鼠左右移動,
0表示不動,正值表示往右移,負值表示往左移),第三個位元組表示y軸(即滑鼠
上下移動,0表示不動,正值表示往下移動,負值表示往上移動),第四個位元組
表示滑鼠滾輪(正值為往上滾動,負值為往下滾動)。
code char MouseReportDescriptor[52] = {
//通用桌面設備
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//滑鼠
0x09, 0x02, // USAGE (Mouse)
//集合
0xa1, 0x01, // COLLECTION (Application)
//指針設備
0x09, 0x01, // USAGE (Pointer)
//集合
0xa1, 0x00, // COLLECTION (Physical)
//按鍵
0x05, 0x09, // USAGE_PAGE (Button)
//使用最小值1
0x19, 0x01, // USAGE_MINIMUM (Button 1)
//使用最大值3。1表示左鍵,2表示右鍵,3表示中鍵
0x29, 0x03, // USAGE_MAXIMUM (Button 3)
//邏輯最小值0
0x15, 0x00, // LOGICAL_MINIMUM (0)
//邏輯最大值1
0x25, 0x01, // LOGICAL_MAXIMUM (1)
//數量為3
0x95, 0x03, // REPORT_COUNT (3)
//大小為1bit
0x75, 0x01, // REPORT_SIZE (1)
//輸入,變數,數值,絕對值
//以上3個bit分別表示滑鼠的三個按鍵情況,最低位(bit-0)為左鍵
//bit-1為右鍵,bit-2為中鍵,按下時對應的位值為1,釋放時對應的值為0
0x81, 0x02, // INPUT (Data,Var,Abs)
//填充5個bit,補足一個位元組
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x05, // REPORT_SIZE (5)
0x81, 0x03, // INPUT (Cnst,Var,Abs)
//用途頁為通用桌面
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//用途為X
0x09, 0x30, // USAGE (X)
//用途為Y
0x09, 0x31, // USAGE (Y)
//用途為滾輪
0x09, 0x38, // USAGE (Wheel)
//邏輯最小值為-127
0x15, 0x81, // LOGICAL_MINIMUM (-127)
//邏輯最大值為+127
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
//大小為8個bits
0x75, 0x08, // REPORT_SIZE (8)
//數量為3個,即分別代表x,y,滾輪
0x95, 0x03, // REPORT_COUNT (3)
//輸入,變數,值,相對值
0x81, 0x06, // INPUT (Data,Var,Rel)
//關集合
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};
通過對上面的報告分析,我們知道報告返回4個位元組,沒有報告ID。如果滑鼠左鍵按下,
則返回01 00 00 00(十六進制值),如果右鍵按下,則返回02 00 00 00,如果中鍵按下,
則返回04 00 00 00,如果三個鍵同時按下,則返回07 00 00 00。如果滑鼠往右移動則
第二位元組返回正值,值越大移動速度越快。其它的類推。
你的串號我已經記下,採納後我會幫你製作
6. usb端點0和端點1多大緩沖區
1. 端點號只有4位,所以端點只有16」組「,組編號依次為0~15 2. 每組端點都分為輸入和輸出兩個。 3. 所以,端點號一共有16個,表示16組端點。每組端點都有輸入輸出兩個。所以一共32個獨立的端點。反映到端點描述符中就是32個地址(0x00~0x0F, 0x80~...
7. 為什麼用tcflush不能清空ttyUSB串口緩沖區的數據
tcflush函數清除串口輸入緩存(終端驅動已接到,但用戶尚未讀取)或串口輸出緩存(用戶已經寫如緩存,但尚未發送)。函數原型:int tcflush(int filedes,int quene)參數解釋filedes: 描述符。quene取值及含義: *TCIFLUSH 清除輸入隊列 *TCOFLUSH 清除輸出隊列 *TCIOFLUSH 清除輸入、輸出隊列舉例:tcflush(fd,TCIOFLUSH);另加的說明:在打開串口後,用戶其實其實已經可以開始從串口讀取數據了,但如果用戶沒有讀取,數據將被將保存在緩沖區里。如果用戶不想要開始的一段數據,或者發現緩沖區數據有誤,可以使用這個函數將緩沖區清空。應用舉例:tcflush(fd, TCIOFLUSH);sleep(2); read_len = read(fd, buff, 10);
8. 埠的作用是什麼
是設備與外界通訊交流的出口,根據不同應用場合有不同的作用:
1、硬體埠
CPU通過介面寄存器或特定電路與外設進行數據傳送,這些寄存器或特定電路稱之為埠。
其中硬體領域的埠又稱介面,如:並行埠、串列埠等。
2、網路埠
在網路技術中,埠(Port)有好幾種意思。集線器、交換機、路由器的埠指的是連接其他網路設備的介面,如RJ-45埠、Serial埠等。這里所指的埠不是指物理意義上的埠,而是特指TCP/IP協議中的埠,是邏輯意義上的埠。
3、軟體埠
即緩沖區。
/iknow-pic.cdn.bcebos.com/e824b899a9014c084847f4a4057b02087bf4f4b7"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/e824b899a9014c084847f4a4057b02087bf4f4b7?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="//www.aeolusdevelopment.com/pc_e824b899a9014c084847f4a4057b02087bf4f4b7"/>
(8)電腦usb埠緩沖區擴展閱讀
按照埠號的大小分類,可分為如下幾類:
1、公認埠(WellKnownPorts)
從0到1023,它們緊密綁定(binding)於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:80埠實際上總是HTTP通訊。
2、注冊埠(RegisteredPorts)
從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些埠,這些埠同樣用於許多其它目的。例如:許多系統處理動態埠從1024左右開始。
3、動態和/或私有埠(Dynamicand/orPrivatePorts)
從49152到65535。理論上,不應為服務分配這些埠。實際上,機器通常從1024起分配動態埠。但也有例外:SUN的RPC埠從32768開始。
9. USB是什麼意思
USB ,是英文Universal Serial BUS(通用串列匯流排)的縮寫,而其中文簡稱為「通串線,是一個外部匯流排標准,用於規范電腦與外部設備的連接和通訊。是應用在PC領域的介面技術。USB介面支持設備的即插即用和熱插拔功能。USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯合提出的。沿革不過直到近期,它才得到廣泛地應用。從1994年11月11日發表USBV0.7版本以後,USB版本經歷了多年的發展,到現在已經發展為3.0版本,成為目前電腦中的標准擴展介面。目前主板中主要是採用USB1.1和USB2.0,各USB版本間能很好的兼容。USB用一個4針(USB3.0標准為9針)插頭作為標准插頭,採用菊花鏈形式可以把所有的外設連接起來,最多可以連接127個外部設備,並且不會損失帶寬。USB需要主機硬體、操作系統和外設三個方面的支持才能工作。目前的主板一般都採用支持USB功能的控制晶元組,主板上也安裝有USB介面插座,而且除了背板的插座之外,主板上 USB介面還預留有USB插針,可以通過連線接到機箱前面作為前置USB介面以方便使用(注意,在接線時要仔細閱讀主板說明書並按圖連接,千萬不可接錯而使設備損壞)。而且USB介面還可以通過專門的USB連機線實現雙機互連,並可以通過Hub擴展出更多的介面。USB具有傳輸速度快(USB1.1是12Mbps,USB2.0是480Mbps,USB3.0是5 Gbps),使用方便,支持熱插拔,連接靈活,獨立供電等優點,可以連接滑鼠、鍵盤、列印機、掃描儀、攝像頭、快閃記憶體檔、MP3機、手機、數碼相機、移動硬碟、外置光軟碟機、USB網卡、ADSL Modem、Cable Modem等,幾乎所有的外部設備。 USB介面可用於連接多達127個外設,如滑鼠、數據機和鍵盤等。USB自從1996年推出後,已成功替代串口和並口,並成為當今個人電腦和大量智能設備的必配的介面之USB各版本區別版本最大傳輸速率速率稱號最大輸出電流協議推出時間USB1.0:1.5Mbps(192KB/s)低速(Low-Speed)500mA……1996年1月 USB1.1:12Mbps(1.5MB/s)全速(Full-Speed)500mA……1998年9月 USB2.0:480Mbps(60MB/s)高速(High-Speed)500mA……2000年4月 USB3.0:5Gbps(640MB/s)超速(Super-Speed)900mA……2008年11月
USB的應用
隨著計算機硬體飛速發展,外圍設備日益增多,鍵盤、滑鼠、數據機、列印機、掃描儀早已為人所共知,數碼相機、MP3隨身聽接踵而至,這么多的設備,如何接入個人計算機?USB就是基於這個目的產生的。USB是一個使計算機周邊設備連接標准化、單一化的介面,其規格是由Intel(英特爾)、NEC、Compaq、DEC、IBM(商業機器公司)、Microsoft(微軟)、Northern Telecom聯系制定的。 USB1.1標准介面傳輸速率為12Mbps,但是一個USB設備最多隻可以得到6Mbps的傳輸頻寬。因此若要外接光碟機,至多能接六倍速光碟機,無法再高。而若要即時播放MPEG-1的VCD影片,至少要1.5Mbps的傳輸頻寬,這點USB辦得到,但是要完成數據量大四倍的MPEG-2的DVD影片播放,USB可能就很吃力了,若再加上AC-3音頻數據,USB設備就很難實現即時播放了。 一個USB介面理論上可以支持127個裝置,但是目前還無法達到這個數字。其實,對於一台計算機,所接的周邊外設很少有超過10個的,因此這個數字是足夠我們使用的。 USB還有一個顯著優點就是支持熱插拔,也就是說在開機的情況下,你也可以安全地連接或斷開USB設備,達到真正的即插即用。不過,並非所有的Windows系統都支持USB。目前,Windows系統中有許多不同的版本,在這些版本中,只有Windows98以上版本的系統對USB的支持較好,而其他的Windows版本並不能完整支持USB。例如Windows95的零售版是不支持USB的,只有後來與PC捆綁銷售的Windows95版本才支持USB。 目前USB設備雖已被廣泛應用,比較普遍的是USB2.0介面,它的傳輸速度為480Mbps。用戶的需求,是促進科技發展的動力,廠商也同樣認識到了這個瓶頸。這時, COMPAQ、Hewlett Packard、Intel、Lucent、Microsoft、NEC和PHILIPS這7家廠商聯合制定了USB 2.0介面標准。USB 2.0將設備之間的數據傳輸速度增加到了480Mbps,比USB 1.1標准快40倍左右,速度的提高對於用戶的最大好處就是意味著用戶可以使用到更高效的外部設備,而且具有多種速度的周邊設備都可以被連接到USB 2.0的線路上,而且無需擔心數據傳輸時發生瓶頸效應。 所以,如果你用USB 2.0的掃描儀,就完全不同了,掃一張4M的圖片只需0.1秒鍾左右的時間,一眨眼就過去了,效率大大提高。 而且,USB2.0可以使用原來USB定義中同樣規格的電纜,接頭的規格也完全相同,在高速的前提下一樣保持了USB 1.1的優秀特色,並且,USB 2.0的設備不會和USB 1.X設備在共同使用的時候發生任何沖突。 USB2.0兼容USB1.1,也就是說USB1.1設備可以和USB2.0設備通用,但是這時USB2.0設備只能工作在全速狀態下(12Mbit/s)。USB2.0有高速、全速和低速三種工作速度,高速是480Mbit/s,全速是12Mbit/s,低速是1.5Mbit/s。其中全速和低速是為兼容USB1.1和USB1.0而設計的,因此選購USB產品時不能只聽商家宣傳USB2.0,還要搞清楚是高速、全速還是低速設備。USB匯流排是一種單向匯流排,主控制器在PC機上,USB設備不能主動與PC機通信。為解決USB設備互通信問題,有關廠商又開發了USB OTG標准,允許嵌入式系統通過USB介面互相通信,從而甩掉了PC機。 新USB2.0規范重新命名了USB標准將原先的USB 1.1改成了USB 2.0 Full Speed(全速版),同時將原有的USB 2.0改成了USB 2.0High-Speed(高速版),並同時公布了新的標識。不言而喻,高速版的USB 2.0速度當然超過全速版的USB 2.0。 電腦USB埠可以提供最大電流為500mA。
編輯本段基本特性
1.USB的硬體結構
USB採用四線電纜,其中兩根是用來傳送數據的串列通道,另兩根為下游(Downstream)設備提供電源,對於高速且需要高帶寬的外設,USB以全速12Mbps的傳輸數據;對於低速外設,USB則以1.5Mbps的傳輸速率來傳輸數據。USB匯流排會根據外設情況在兩種傳輸模式中自動地動態轉換。USB是基於令牌的匯流排。類似於令牌環網路或FDDI基於令牌的匯流排。USB主控制器廣播令牌,匯流排上設備檢測令牌中的地址是否與自身相符,通過接收或發送數據給主機來響應。USB通過支持懸掛/恢復操作來管理USB匯流排電源。USB系統採用級聯星型拓撲,該拓撲由三個基本部分組成:主機(Host),集線器(Hub)和功能設備。 主機,也稱為根,根結或根Hub,它做在主板上或作為適配卡安裝在計算機上,主機包含有主控制器和根集線器(Root Hub),控制著USB匯流排上的數據和控制信息的流動,每個USB系統只能有一個根集線器,它連接在主控制器上。 集線器是USB結構中的特定成分,它提供叫做埠(Port)的點將設備連接到USB匯流排上,同時檢測連接在匯流排上的設備,並為這些設備提供電源管理,負責匯流排的故障檢測和恢復。集線可為匯流排提供能源,亦可為自身提供能源(從外部得到電源),自身提供能源的設備可插入匯流排提供能源的集線器中,但匯流排提供能源的設備不能插入自身提供能源的集線器或支持超過四個的下游埠中,如匯流排提供能源設備的需要超過100mA電源時,不能同匯流排提供電源的集線器連接。 功能設備通過埠與匯流排連接。USB同時可做Hub使用。
2.USB的軟體結構
每個USB只有一個主機,它包括以下幾層: (1)USB匯流排介面 USB匯流排介面處理電氣層與協議層的互連。從互連的角度來看,相似的匯流排介面由設備及主機同時給出,例如串列介面機(SIE)。USB匯流排介面由主控制器實現。 (2)USB系統 USB系統用主控制器管理主機與USB設備間的數據傳輸。它與主控制器間的介面依賴於主控制器的硬體定義。同時,USB系統也負責管理USB資源,例如帶寬和匯流排能量,這使客戶訪問USB成為可能。USB系統還有三個基本組件: 主控制器驅動程序(HCD)這可把不同主控制器設備映射到USB系統中。HCD與USB之間的介面叫HCDI,特定的HCDI由支持不同主控制器的操作系統定義,通用主控制器驅動器(UHCD)處於軟結構的最底層,由它來管理和控制主控制器。UHCD實現了與USB主控制器通信和控制USB主控制器,並且它對系統軟體的其他部分是隱蔽的。系統軟體中的最高層通過UHCD的軟體介面與主控制器通信。 USB驅動程序(USBD)它在UHCD驅動器之上,它提供驅動器級的介面,滿足現有設備驅動器設計的要求。USBD以I/O請求包(IRPs)的形式提供數據傳輸架構,它由通過特定管道(Pipe)傳輸數據的需求組成。此外,USBD使客戶端出現設備的一個抽象,以便於抽象和管理。作為抽象的一部分,USBD擁有預設的管道。通過它可以訪問所有的USB設備以進行標準的USB控制。該預設管道描述了一條USBD和USB設備間通信的邏輯通道。 主機軟體在某些操作系統中,沒有提供USB系統軟體。這些軟體本來是用於向設備驅動程序提供配置信息和裝載結構的。在這些操作系統中,設備驅動程序將應用提供的介面而不是直接訪問USBDI(USB驅動程序介面)結構。 (3)USB客戶軟體 它是位於軟體結構的最高層,負責處理特定USB設備驅動器。客戶程序層描述所有直接作用於設備的軟體入口。當設備被系統檢測到後,這些客戶程序將直接作用於外圍硬體。這個共享的特性將USB系統軟體置於客戶和它的設備之間,這就要根據USBD在客戶端形成的設備映像由客戶程序對它進行處理。 主機各層有以下功能: 檢測連接和移去的USB設備。 管理主機和USB設備間的數據流。 連接USB狀態和活動統計。 控制主控制器和USB設備間的電氣介面,包括限量能量供應。 HCD提供了主控制器的抽象和通過USB傳輸的數據的主控制器視角的一個抽象。USBD提供了USB設備的抽象和USBD客戶與USB功能間數據傳輸的一個抽象。USB系統促進客戶和功能間的數據傳輸,並作為USB設備的規范介面的一個控制點。USB系統提供緩沖區管理能力並允許數據傳輸同步於客戶和功能的需求。
3.USB的數據流傳輸
主控制器負責主機和USB設備間數據流的傳輸。這些傳輸數據被當作連續的比特流。每個設備提供了一個或多個可以與客戶程序通信的介面,每個介面由0個或多個管道組成,它們分別獨立地在客戶程序和設備的特定終端間傳輸數據。USBD為主機軟體的現實需求建立了介面和管道,當提出配置請求時,主控制器根據主機軟體提供的參數提供服務。 USB支持四種基本的數據傳輸模式:控制傳輸,等時傳輸,中斷傳輸及數據塊傳輸。每種傳輸模式應用到具有相同名字的終端,則具有不同的性質。 控制傳輸類型支持外設與主機之間的控制,狀態,配置等信息的傳輸,為外設與主機之間提供一個控制通道。每種外設都支持控制傳輸類型,這樣主機與外設之間就可以傳送配置和命令/狀態信息。 等時(lsochronous)傳輸類型支持有周期性,有限的時延和帶寬且數據傳輸速率不變的外設與主機間的數據傳輸。該類型無差錯校驗,故不能保證正確的數據傳輸,支持像計算機-電話集成系統(CTI)和音頻系統與主機的數據傳輸。 中斷傳輸類型支持像游戲手柄,滑鼠和鍵盤等輸入設備,這些設備與主機間數據傳輸量小,無周期性,但對響應時間敏感,要求馬上響應。 數據塊(Bulk)傳輸類型支持列印機,掃描儀,數碼相機等外設,這些外設與主機間傳輸的數據量大,USB在滿足帶寬的情況下才進行該類型的數據傳輸。 USB採用分塊帶寬分配方案,若外設超過當前帶寬分配或潛在的要求,則不能進入該設備。同步和中斷傳輸類型的終端保留帶寬,並保證數據按一定的速率傳送。集中和控制終端按可用的最佳帶寬來傳輸傳輸數據。
編輯本段USB vs IEEE1394
一、USB與IEEE1394的相同點主要有哪些?
兩者都是一種通用外接設備介面。 兩者都可以快速傳輸大量數據。 兩者都能連接多個不同設備。 兩者都支持熱插撥。 兩者都可以不用外部電源。
二、USB與IEEE1394的不同點有哪些?
兩者的傳輸速率不同。USB最高的速度可達5Gb/s,但由於USB3.0尚未普及,目前主流的USB2.0隻有480Mb/s,並且速度不穩定;相比之下,IEEE1394目前的速度雖然只有800Mb/s,但較為穩定,故在數碼相機等高速設備中還保留了IEEE1394介面,但也開始採用USB介面了。 兩者的結構不同。USB在連接時必須至少有一台電腦,並且必須需要HUB來實現互連,整個網路中最多可連接127台設備。IEEE1394並不需要電腦來控制所有設備,也不需要HUB,IEEE1394可以用網橋連接多個IEEE1394網路,也就是說在用IEEE1394實現了63台IEEE1394設備之後也可以用網橋將其他的IEEE1394網路連接起來,達到無限制連接。 兩者的智能化不同。IEEE1394網路可以在其設備進行增減時自動重設網路。USB是以HUB來判斷連接設備的增減了。 兩者的應用程度不同。現在USB已經被廣泛應用於各個方面,幾乎每台PC主板都設置了USB介面,USB2.0也會進一步加大USB應用的范圍。IEEE1394現在只被應用於音頻、視頻等多媒體方面。
編輯本段USB的擴展應用及發展趨勢
前置USB介面
前置USB介面是位於機箱前面板上的USB擴展介面。目前,使用USB介面的各種外部設備越來越多,例如移動硬碟、快閃記憶體檔、數碼相機等等,但在使用這些設備(特別是經常使用的移動存儲設備)時每次都要鑽到機箱後面去使用主板板載USB介面顯然是不方便的。前置USB介面在這方面就給用戶提供了很好的易用性。目前,前置USB介面幾乎已經成為機箱的標准配置,沒有前置USB介面的機箱已經非常少見了。 前置USB介面要使用機箱所附帶的USB連接線連接到主板上所相應的前置USB插針(一般是8針、9針或10針,兩個USB成對,其中每個USB使用4針傳輸信號和供電)上才能使用。在連接前置USB介面時一定要事先仔細閱讀主板說明書和機箱說明書中與其相關的內容,千萬不可將連線接錯,不然會造成USB設備或主板的損壞。 另外,由於USB2.0介面輸出電壓為5V,輸出電流為500mA。使用前置USB介面時要注意前置USB介面供電不足的問題,在使用耗電較大的USB設備時,要使用外接電源或直接使用機箱後部的主板板載USB介面,以避免USB設備不能正常使用或被損壞。
USB口硬碟盒
目前的主流,其最大優點是使用方便,支持熱插拔和即插即用。USB有兩種標准:一種是USB1.1介面,其傳輸速度只有12Mbps,一種是USB2.0介面,其傳輸速度高達480Mbps。目前的主板上的USB都支持USB1.1,但USB 2.0隻有較新的主板才能支持,購買時根據個人情況選擇產品,雖然USB2.0向下兼容USB1.1,但支持USB2.0介面的移動硬碟盒比USB1.1的要貴一些。
無線USB
USB開發者論壇的主席兼英特爾公司的技術策略官Jeff Ravencraft表示,無線USB技術將幫助用戶在使用個人電腦連接列印機、數碼相機、音樂播放器和外置磁碟驅動器等設備時,從紛繁復雜的電纜連線中解放出來。無線USB標準的數據傳輸速率與目前的有線USB 2.0標準是一樣的,均為每秒480M,兩者的區別在於無線USB要求在個人電腦或外設中裝備無線收發裝置以代替電纜連線。 在英特爾開發者論壇舉辦的前夕,Ravencraft稱,首先採用這一標準的將是外置磁碟驅動器、數碼相機和列印機。而越來越多的產品將在今年第三季度開始推向市場。 為了使無線USB標准得以實用,必須改善這一技術的一些不足。USB標准小組宣布了無線聯盟規范,以確保只有經過認證才能讓電腦和外設通過無線USB連接起來。 Ravencraft補充,一直以來USB標准已經廣泛的用於將數碼相機、掃描儀、手機、PDA、DVD刻錄機和其他設備與個人電腦的連接。而無線聯盟規范則詳細規定了個人電腦和外設如何通過無線USB進行連接,一台電腦最多可以同時連接127個外設。 無線聯盟規范規定了兩種建立連接的方法。第一種方法是電腦和外設先用電纜連接起來,然後再建立無線連接以供以後使用。第二種方法是外設可以提供一串數字,用戶在建立連接的時候輸入到電腦裡面。 無線USB採用超寬頻技術進行通信。目前無線區域網的802.11g協議採用位於2.4GHz附近的一小段頻帶進行通信,而超寬頻技術則採用從3.1GHz到10.6GHz的頻帶進行通信。超寬頻的信號水平足夠低,因此對於其他無線通信技術來說,超寬頻信號的影響類似於雜訊。 無線網路目前廣泛使用的技術是IEEE的802.11標准,也就是英特爾所推動的Wi-Fi。這一技術廣泛的使用在筆記本電腦上,甚至部分尼康公司和佳能公司的數碼相機也採用這一技術。而無線USB技術則是一個完全不同的技術,由於這一技術實現上相對簡單同時功耗只有802.11的一半,因此不少廠商都更願意採用無線USB技術。 Ravencraft表示,在高端的手機和數碼相機上採用802.11技術,關鍵是要解決電池壽命問題。而廠商們發現超寬頻技術是解決這一問題的最好的辦法。 在距離電腦10英尺范圍內,無線USB設備的傳輸速率將保持每秒480M。如果在30英尺范圍內,傳輸速率將下降到每秒110M。然而隨著技術的發展,無線USB的傳輸速率將會超過每秒1G甚至更快。 目前超寬頻技術不僅可以用於無線USB連接中,還可以在藍牙和IEEE的1394火線連接甚至WiNet短距離連接中使用。
編輯本段USB的不同介面與數據線
隨著各種數碼設備的大量普及,特別是MP3和數碼相機的普及,我們周圍的USB設備漸漸多了起來。然而這些設備雖然都是採用了USB介面,但是這些設備的數據線並不完全相同。
USB介面(12張)這些數據線在連接PC的一端都是相同的,但是在連接設備端的時候,通常出於體積的考慮而採用了各種不同的介面。 絕大部分數碼產品連接線的接頭除了連在PC上的都一樣,另外一頭也都是遵循著標準的規格。 USB是一種統一的傳輸規范,但是介面有許多種,最常見的就是咱們電腦上用的那種扁平的,這叫做A型口,裡面有4根連線,根據誰插接誰分為公母介面,一般線上帶的是公口,機器上帶的是母口。
USB A型公口
右上面的圖片是最常見的USB A型公口 常見Mini B型5Pin介面: 接下來就是在數碼產品上最常見的介面了,由於數碼產品體積所限,所以通常用的是Mini B型介面,但是Mini B型介面也有許多種類。
Mini B型5Pin
右面的圖為Mini B型5Pin介面示意圖
這種介面可以說是目前最常見的一種介面了,這種介面由於防誤插性能出眾,體積也比較小巧,所以正在贏得越來越多的廠商青睞,現在這種介面廣泛出現在讀卡器、MP3、數碼相機以及移動硬碟上。 下圖為:Sony F828上的Mini B型5Pin介面 目前採用這種介面的設備目前有SONY相機、攝像機和MP3,Olympus相機和錄音筆,佳能相機和惠普的數碼相機等等,數量相當繁多。 常見Mini B型4Pin介面: 除了前面我們看到的最常見的Mini B型5Pin的介面以外,Mini B型還有很多種別的介面,其中的一些也比較常見。
Mini B型4Pin
右圖為:Mini B型4Pin的介面 下圖為:Mini B型4Pin的介面的轉接線纜 這種介面常見於以下品牌的數碼產品:奧林巴斯的C系列和E系列,柯達的大部分數碼相機,三星的MP3產品(如Yepp),SONY的DSC系列,康柏的IPAQ系列產品…… 富士Mini B型4Pin Flat介面: Mini B型4Pin還有一種形式,那就是Mini B型4Pin Flat。顧名思義,這種介面比Mini B型4Pin要更加扁平,在設備中的應用也比較廣泛。
富士Mini B型4Pin Flat
右圖為:Mini B型4Pin Flat介面 這種介面和前面講腗INI B型4pin非常類似,但是這種接頭更為扁平,所佔用的體積更小。 這種介面常見於以下設備:富士的FinePix系列,卡西歐的QV系列相機,柯尼卡的產品。 我們看到,富士的機器用這種介面的比較多,幾乎舊有的機型全是這種介面。不過值得注意的是,富士在最新的S5000和S7000上已經放棄了這種介面,改投Mini B 5Pin的陣營。 尼康獨有,Mini B型8Pin介面: Mini B型除了前面的4Pin和5Pin的,還有一種就是8Pin的了,這種接頭在其他設備上出現的幾率就非常少了,通常出現在數碼相機上。Mini B型的介面也有3種,一種是普通型的,一種是Round(圓)型的,還有一種是2×4布局的扁平介面。
MINI B型8Pin
右圖為:Mini B型8Pin的介面 這種介面適用的設備,據筆者所知目前只有Nikon Coolpix 775一個款型的產品使用這種介面。
Mini B型8Pin Round
左圖為:Mini B型8Pin Round介面 這種介面和前面的普通型比起來,就是將原來的D型接頭改成了圓形接頭,並且為了防止誤插在一邊設計了一個凸起。 這種接頭可以見於一些Nikon的數碼相機,CoolPix系列比較多見。雖然Nikon一直堅持用這種介面,但是在一些較新的機型中,例如D100和CP2000也都採用了普及度最高的Mini B型5Pin介面。 差點兒就普及,8Pin 2×4介面: 除了我們前面見過的Mini B型5Pin的介面,我想大家一定還對下面這種介面非常熟悉,這種介面也曾經相當的普及。
Mini B型8Pin 2×4
圖為:Mini B型8Pin 2×4介面 這種介面也是一種比較常見的介面了,例如我們熟悉的iRiver的著名的MP3系列,其中號稱「鐵三角」的180TC,以及該系列的很多其他產品採用的均是這種介面。這種介面的應用范圍也還算是廣,不過從iRiver自3XX系列全面換成Mini B型5Pin的介面後,這種規格明顯沒有Mini B型5Pin搶眼了。編輯本段USB On-The-Go補充標准USB On-The-Go Supplement 1.0:2001年12月發布。USB On-The-Go Supplement 1.0a:2003年6月發布,即當前版本。 USB OTG是USB On-The-Go的縮寫,是近年發展起來的技術,2001年12月18日由USB Implementers Forum公布,主要應用於各種不同的設備或移動設備間的聯接,進行數據交換。特別是PDA、行動電話、消費類設備。改變如數碼照相機、攝像機、列印機等設備間多種不同制式連接器,多達7種制式的存儲卡間數據交換的不便USB技術的發展,使得PC和周邊設備能夠通過簡單方式、適度的製造成本將各種數據傳輸速度的設備連接在一起,上述我們提到應用,都可以通過USB匯流排,作為PC的周邊,在PC的控制下進行數據交換。但這種方便的交換方式,一旦離開了PC,各設備間無法利用USB口進行操作,因為沒有一個從設備能夠充當PC一樣的Host。 On-The-Go,即OTG技術就是實現在沒有Host的情況下,實現從設備間的數據傳送。例如數碼相機直接連接到列印機上,通過OTG技術,連接兩台設備見的USB口,將拍出的相片立即列印出來;也可以將數碼照相機中的數據,通過OTG發送到USB介面的移動硬碟上,野外操作就沒有必要攜帶價格昂貴的存儲卡,或者背一個便攜電腦。 在OTG產品中,增加了一些新的特性: * 新的標准,適用於設計小巧的連接器和電纜; * 在傳統的周邊設備上,增加了Host能力,適應點到點的連接; * 這種能力可以在兩個設備間動態地切換; * 低的功耗,保證USB可以在電池供電情況下工作 使用OTG後,不影響原設備和PC的連接,但使得在市場上已有超過10億個USB介面的設備,也能通過OTG互聯。 [1][2][3]
USB 3.0 簡介
英1 VBUS (4.75-5.25 V) VBUS (4.4-5.25 V)
2 D- D-
3 D+ D+
4 接地 接地
USB 信號使用分別標記為 D+ 和 D- 的雙絞線傳輸,它們各自使用 半雙工的差分信號並協同工作,以抵消長導線的電磁干擾。
USB 2.0
USB是英文Universal Serial Bus的縮寫,中文含義是「通用串列匯流排」。它是一種應用在計算機領域的新型介面技術。早在1995年,就已經有個人電腦帶有USB介面了,但由於缺乏軟體及硬體設備的支持,這些個人電腦的USB介面都閑置未用。1998年後,隨著微軟在Windows 98中內置了對USB介面的支持模塊,加上USB設備的日漸增多,USB介面才逐步走進了實用階段。 這幾年,隨著大量支持USB的個人電腦的普及,USB逐步成為個人電腦的標准介面已經是大勢所趨。在主機端,最新推出的個人電腦幾乎100%支持USB;而在外設端,使用USB介面的設備也與日俱增,例如數碼相機、掃描儀、游戲桿、磁帶和軟碟機、圖像設備、列印機、鍵盤、滑鼠等等。 USB設備之所以會被大量應用,主要具有以下優點: 1、可以熱插拔。這就讓用戶在使用外接設備時,不需要重復「關機將並口或串口電纜接上再開機」這樣的動作,而是直接在電腦工作時,就可以將USB電纜插上使用。 2、攜帶方便。USB設備大多以「小、輕、薄」見長,對用戶來說,同樣20G的硬碟,USB硬碟比IDE硬碟要輕一半的重量,在想要隨身攜帶大量數據時,當然USB硬碟會是首要之選了。 3、標准統一。大家常見的是IDE介面的硬碟,串口的滑鼠鍵盤,並口的列印機掃描儀,可是有了USB之後,這些應用外設統統可以用同樣的標准與個人電腦連接,這時就有了USB硬碟、USB滑鼠、USB列印機等等。 4、可以連接多個設備。USB在個人電腦上往往具有多個介面,可以同時連接幾個設備,如果接上一個有四個埠的USB HUB時,就可以再連上;四個USB設備,以此類推,盡可以連下去,將你家的設備都同時連在一台個人電腦上而不會有任何問題(註:最高可連接至127個設備)。但是,為什麼又出現了USB2.0呢?它與USB1.1又有何區別?請別急,下面就會談到了。
10. USB的四個技術特徵分別是什麼各是什麼含義
USB支持四種基本的數據傳輸模式(技術特徵):控制傳輸,等時傳輸,中斷傳輸及數據塊傳輸。每種傳輸模式應用到具有相同名字的終端,則具有不同的性質。
一、控制傳輸模式:
控制傳輸用於在外設初次連接時對器件進行配置;對外設的狀態進行實時檢測;對控制命令的傳送等;也可以在器件配置完成後被客戶軟體用於其它目的。Endpoint 0信道只可以採用控制傳送的方式。
二、塊傳送模式(bulk):
塊傳送用於進行批量的、非實時的數據傳輸。如一台 USB 掃描儀即可採用塊傳送的模式,以保證資料連續地、在硬體層次上的實時糾錯地傳送。採用塊傳送方式的信道所佔用的 USB 帶寬,在實時帶寬分配中具有最高的優先順序。
三、同步傳輸模式:
同步傳輸適用於那些要求資料連續地、實時地、以固定的數據傳輸率產生、傳送並消耗的場合,如數字錄像機等。為保證數據傳輸的實時性,同步傳輸不進行資料錯誤的重試,也不在硬體層次上響應一個握手資料包,這樣有可能使數據流中存在資料錯誤的隱患。
為保證在同步傳輸數據流中致命錯誤的幾率小到可以容忍的程度,而數據傳輸的延遲又不會對外設的性能造成太大的影響,廠商必須為使用同步傳輸的信道選擇一個合適的帶寬(即必須在速度和品質之間做出權衡)。
四、中斷傳輸模式:
對於那些小批量的、點式、非連續的數據傳輸應用的場合,如用於人機交互的滑鼠、鍵盤、游戲桿等,中斷傳輸的方式是最適合的。
(10)電腦usb埠緩沖區擴展閱讀:
USB的發展:
一、USB1.1:
USB最初是由英特爾與微軟公司倡導發起,其最大的特點是支持熱插拔和即插即用。當設備插入時,主機偵測此設備並載入所需的驅動程式,因此使用遠比 PCI 和 ISA匯流排方便。
USB規格第一次是於1995年,由Intel、IBM、Compaq、Microsoft、NEC、Digital、North Telecom等七家公司組成的USBIF(USB Implement Forum)共同提出,USBIF於1996年1月正式提出USB1.0規格,頻寬為12Mbps。
不過因為當時支持USB的周邊裝置少得可憐,所以主機板商不太把USB Port直接設計在主機板上。
二、USB 2.0:
USB是一種應用在計算機領域的新型介面技術。早在1995年,就已經有個人電腦帶有USB介面了,但由於缺乏軟體及硬體設備的支持,這些個人電腦的USB介面都閑置未用。
1998年後,隨著微軟在Windows 98中內置了對USB介面的支持模塊,加上USB設備的日漸增多,USB介面才逐步走進了實用階段。
三、USB 3.0:
英特爾公司(Intel)和業界領先的公司一起攜手組建了USB 3.0推廣組,旨在開發速度超過當今10倍的超高效USB互聯技術。
該技術是由英特爾,以及惠普(HP)、NEC、NXP半導體以及德州儀器(Texas Instruments)等公司共同開發的,應用領域包括個人計算機、消費及移動類產品的快速同步即時傳輸。
隨著數字媒體的日益普及以及傳輸文件的不斷增大——甚至超過25GB,快速同步即時傳輸已經成為必要的性能需求。
四、USB 3.1:
USB 3.1規范在2013年發布,分為Gen 1和Gen 2兩個版本。實際上Gen 1版本只是USB 3.0的一個馬甲(理論最高仍然是5Gbps,並無改變),但仍有Type-C的USB 3.1 Gen 1銷售,也就相當於USB 3.0 Type-C。USB 3.1仍保留了Type-A版本(舊版介面樣式,不支持盲插)。
USB 3.1有很大改變,不僅Gen 2版本可以提供兩倍於 USB 3.0 的傳輸速度(理論最高10Gbps),而且同時發布的Type-C介面使用了防呆設計,支持正、反插。但USB 3.1不向下支持,需要使用轉接頭。