萬用串列匯流排(USB)為一種開放性架構的介面標準,1997年起被廣泛應用在PC主機板上,1998年所推出的iMac更僅搭載兩種I/O介面,即USB與乙太網路(Ethernet)。初版的USB規格(1.0與1.1)支援每秒最高1MB的傳輸速率,約等於每秒12Mb的位元傳輸率。而Windows 98則為第一套支援USB的作業系統,內建支援各種裝置的驅動程式,包括滑鼠、鍵盤與揚聲器等。由於看好UBS的發展,包括微軟(Microsoft)、英特爾(Intel)、飛利浦(Philips)、惠普(HP)、康柏(Compaq)、恩益禧(NEC)及朗訊(Lucent)等業界領導廠商,不約而同的加入USB 建置者論壇(USB-IF),積極參與USB技術規格的制定,並於2000年4月發表了USB 2.0規格版本,加入高速(high-speed)的傳輸技術規格,每秒可傳送480Mb的資料,比USB 1.1版本整整高出40倍。
Mass Storage為應用主流
適用USB 2.0的週邊裝置主要為硬碟、CD-RW燒錄機、DVD光碟機與快閃記憶卡等高容量儲存系統(Mass Storage)。多年來USB已為各種可攜式裝置提供一套標準傳輸介面,USB 2.0將近0.5Gb的速度標準,更是一舉突破了以往USB介面傳輸速度的瓶頸。現在,透過USB介面由電腦內部將檔案複製到儲存裝置上,速度遠高於兩部內接式儲存裝置透過UDMA介面複製檔案時的傳輸速度。
USB 2.0在改良USB 1.1時,也一併考量到各種磁碟應用,如將封包從64位元組加大至512位元組,讓承載容量與硬碟機的磁區單位(sector)相同;訊號傳輸速度則提升至每秒將近0.5Gb,與UDMA/66相同,如(表一)。USB 2.0所能提供的充裕頻寬,可輕易支援350倍速的CD-ROM光碟機,也就是現今市面上最快的硬碟機。
表一 USB介面的三種傳輸模式
|
Low-Speed |
Full-Speed |
Hi-Speed |
Signaling Rate |
1.5Mbps |
12Mbps |
480Mbps |
Max Endpoints |
3 |
31 |
31 |
Max Bulk Packet Size |
N/A |
64byets |
512bytes |
Max Bulk Data Throughput |
N/A |
1.1MB/s |
56MB/s |
Max Iso Packet Size |
N/A |
1023bytes |
1024bytes |
Max Iso Data Throughput |
N/A |
1.0MB/s |
24MB/s |
Interrupt Packet Size |
8bytes |
64bytes |
1024bytes |
Max Interrupt Data Throughput |
800bytes/s |
32KB/s |
24MB/s |
資料來源:柏士半導體
USB 2.0介面磁碟機的最大優點就是可提供使用者簡易的操作模式(ease-of-use)。研發初期,USB便預計被發展成一套真正的隨插即用介面(plug-and-play),使用者僅需將USB 2.0磁碟機連結上個人電腦就可立即使用。由於USB 2.0具備向下相容性(backward compatible),若將USB 2.0磁碟機插入舊版的USB主控端時,仍可正常運作,反之亦然。然而,這種方便的使用特性事實上是需透過許多複雜的指令轉譯機制,以及一系列業界標準的支援,讓資料從作業系統(OS)傳送至磁碟機本身時,負責執行各種轉換作業。以下我們將以USB 2.0磁碟機為例,層層剖析各個功能層,讓讀者瞭解與運用此裝置的所有步驟。
裝置驅動程式
最外層的元件為作業系統內部的裝置驅動程式。為了讓廠商減少撰寫裝置驅動程式的人力與成本花費,USB建置者論壇(USB IF)研發了許多標準詳述規格(Class Specifications),每一個Class Spec都是一種獨立於作業系統外的規格(OS-independent),定義了USB裝置在匯流排上的工作細項,讓作業系統廠商僅需開發一套驅動程式,便可支援所有的掃瞄器或磁碟機。現今支援USB 2.0高容量儲存裝置的Class Spec大都已被建置成許多作業系統的標準元件,如微軟的Windows 2000、Windows ME與最新的Windows XP、Mac的OS 9.6系統及之後的作業系統及Linux等系統,均已內建USB 2.0的驅動程式與相關支援技術。另外更針對硬體廠商,研發了支援Windows 98這類較舊型作業系統的程式。
Class驅動程式指令
下一個功能層便是檢視通過高容量儲存Class驅動程式的指令。高容量儲存Class Spec採用SCSI介面中的多組指令區塊規格來支援所有裝置,如支援軟碟機的UFI、支援快閃裝置的RBC及支援光碟機的SFF 8020,並讓裝置執行32位元LBA定址存取,提供總容量可高達2TB(比原型PC XT硬碟機的容量大20萬倍)的磁碟或磁碟陣列,而這些SCSI指令會透過供指令與資料分享的單對USB端點(endpoint)進行傳送。
指令區塊封裝資料單元
每個轉譯作業都從指令區塊封裝(Command Block Wrapper;CBW)資料單元開始,資料單元內儲存了指令、傳送方向、預估轉譯長度與一組獨特的標籤。當裝置接收到CBW後,主機(host)會先啟動指令的資料傳輸階段。資料傳輸階段由主機成功傳輸後,或是裝置在傳輸失敗或非預期傳輸時可予以中止。在指令的資料傳輸階段過後,裝置會傳送一組指令狀況封裝(command status wrapper,CSW)資料單元至主機,告知資料傳送成功或失敗,以及當資料階段終止時,尚有多少位元等待傳送。
IDE指令支援轉譯機制
PC內接式磁碟機的主流為IDE介面磁碟機。因高容量Class Spec僅使用SCSI指令集,故下一層使用的指令轉譯機制還必須支援IDE裝置。每組SCSI指令都須由USB-ATA橋接元件進行轉譯,分割至暫存器,並分別寫入IDE LBA暫存器、磁區數量暫存器(sector count register)與指令暫存器。這種轉譯步驟將會大幅增加橋接解決方案的複雜度,所以各種橋接解決方案的指令不僅具有相當多種類,SCSI轉譯作業的精準度也不同。
磁碟機電子介面
最內層就是連結至磁碟機的電子介面。不過幸運的是,磁碟機製造廠商透過由NCTIS的T13小組研發維護的ATA/ATAPI介面標準,讓所有廠商的產品都能達到極佳的彼此相容性。ATA/ATAPI介面標準採用常見的40針連結線支援每秒3MB的傳輸速度,最高可達到UDMA/33(每秒33MB)。附有40針接頭連結器的80針排線不僅具備回溯相容能力,更提供每秒133MB的傳輸速度。以上這些特色,讓ATA/ATAPI介面被現今市面上所有USB與各種高容量裝置的橋接元件採用。
儘管以上介紹這麼多的功能層,但要研發一套USB 2.0高容量儲存裝置必需投入的電子工程資源卻相當少。OEM廠商所研發的主要元件包括磁碟機電源供應器與被稱為「後擋板」(tailgate)的ATA-to-USB轉譯機板,因為轉譯機板就像卡車的後檔板一樣附加在磁碟機的後側。磁碟機通常採用與PC內部相同的ATA介面,雖然有些是透過USB介面支援。選擇適當的USB-to-ATA橋接裝置是項重要的工作。
結論
USB 2.0標準正從實驗室開始迅速發展成為市場主流。2000年4月,支援USB 2.0規格的PCI主控器元件已在出現在零售市場,Windows XP與Windows 2000等作業系統則內建了USB 2.0的支援能力,配備了USB 2.0支援功能的電腦與主機板將成為標準規格,取代現今普及率極高的USB 1.1版本。結合簡易使用特性與卓越的效能表現等特性,USB 2.0磁碟機將延續現有USB 1.1主控端控制器的高普及率,讓USB 2.0成為真正的萬用串列匯流排,帶給使用者最大的利益。(作者任職於柏士半導體)