黃麗軍 福建廣播電視大學
USB 技術誕生之前,計算機外圍設備的數據傳輸給主機主要是通過串行接口、并行接口等來實現,很多外設需要先關機連接到計算機,并需安裝復雜的驅動程序,給用戶帶來極大的不便。因而通用串行總線USB 接口技術的到來,使得計算機的各種外圍接口統(tǒng)一起來,可熱插拔以及任意設備和 PC 間通訊的方便,給計算機及各種智能電子設備之間的高速數據傳輸提供前所未有的快速發(fā)展。
然而現在我們面臨的是一個大數據的時代,USB2.0 的480Mbps 的傳輸速度已經不能滿足高速數據傳輸的需求了。USB3.0的傳輸速率達到了 5Gbps,能有效解決 USB2.0 在傳輸帶寬上不足的缺陷;采用的全雙工通信技術可以解決雙向同時高速數據傳輸的問題。因此基于USB3.0 的高速數據傳輸系統(tǒng)將 USB 的易用性和對傳輸高速率要求很好地結合在一起,研究一個這樣的系統(tǒng)具有重要的現實意義。
系統(tǒng)采取模塊化分區(qū)域處理的方法,各區(qū)域間互為一體又互不干涉,各司其職,相互合作。系統(tǒng)分為電源區(qū)域、FPGA 控制區(qū)域、第2 代雙倍數據率同步動態(tài)隨機存取存儲器DDR2SDRAM 緩存區(qū)域和USB3.0 通信區(qū)域。
當兩路數據信號從前端由平衡電壓數字接口處被收集以后,按照通信協(xié)議,通過一定形式的轉換再傳遞到可編輯邏輯器件控制區(qū)域,控制區(qū)對信號進行數據分析再重新進行程序編譯,編譯完成后的程序緩存到相應的RAM 緩存區(qū)。一旦接收到需要讀寫程序的信號,存儲器緩存區(qū)的數據將高速輸出,再經由USB 通信區(qū)域的傳輸,將信息轉化為差分信號,最終到達客戶端。
在整個數據傳輸系統(tǒng)中,USB 通信區(qū)域的接口處位于PC 端和可編程邏輯區(qū)域的中間位置。最新的USB3.0 控制芯片的兼容性保持穩(wěn)定的同時,極大地提高了帶寬,能夠更快的識別器件,功能要比之前的更加強大,數據處理能力更加靈活和高效,可普遍性適用的接口GPI-FII 能夠與可編程邏輯控制區(qū)域對接,保證數據信號精準傳遞。值得一提的是,接口處還有專門設計的防止破壞的ESD 防護零件,保證器件免受外界人為損傷。
常規(guī)形態(tài)下,通過固件程序的正常寫入和加載后才可以使芯片工作。系統(tǒng)的引腳配置,即程序的引導模式有兩種:I2C 型和USB 型,I2C型為首選模式,若引導失敗,則采用USB 接口型。引導過程的順利開展離不開穩(wěn)定和高容量的電路支撐,本系統(tǒng)采用容量為128KB 的帶電可擦可編程只讀存儲器為裝載,目的是對首選模式一單獨區(qū)域的VIO5 的SD 和SCI 引腳自動進行電阻限流,同時將不確定的信號通過一個電阻鉗位在高電平,從而保證程序的正常引導與傳輸。當USB接口通上電流以后,儲存在裝載器件里的程序則會自動存儲到電可擦可寫只讀存儲器芯片內,至此就完成了在USB 這一環(huán)節(jié)的傳輸過程。
在第二代隨機存取存儲器中,將芯片內部的輸出信號經過封裝管腳輸出到PCB 板上的其他電路的緩沖器是兩種不同極性晶體管連接輸出電路,而反過來輸入吸收器是對系統(tǒng)中不同位置的電流互感器提供的信息進行比較。此產品選取了National Semi Conductor 公司的穩(wěn)定電壓的裝備器件,可以滿足正常工作時所需的1.5A 不間斷電流,電流通過時的瞬間電流可達3A。DDR 的設計中,根據拓撲結構的不同,有的設計使用不到VTT,如控制器帶的DDR 器件比較少的情況下。如果使用VTT,則VTT 的電流要求比較大需銅皮走線,且要求電源即可以吸電流,又可灌電流,在每個 VTT 電阻上并聯一個10nF~100nF 的電容。一般情況下可以使用專門為DDR 設計的產生VTT 的電源芯片來滿足要求。
除了硬件程序,固件程序也是系統(tǒng)中不可或缺的。CYUSB3014是USB 業(yè)界的領頭羊Cypress 公司出品的USB3.0 控制器,該控制器的固件程序分為啟動程序的代碼、USB 接口、第二代隨機存取存儲器的電壓電路接口、程序轉換芯片接口初始化和其他程序。固件程序的意義在于能夠將PC 端的程序進行轉換和處理并能夠高速有效的傳遞至負責存儲區(qū)域的芯片FPGA。
固件程序的大致步驟為:通上電源以后,一個可進行完全配置的并行通用可編程接口GPIF II,連接微控制器及其外圍設備的兩線式串行總線開始編譯程序,再進入固件開始執(zhí)行程序,將主函數中的中央處理器的時鐘頻率設為200MHz,直接存儲器訪問和內存映射I/O 的主頻率為CPU 的一半,看門狗定時器的頻率設32KHz,通用可編程接口接32 根數據線。
在整個硬件系統(tǒng)中,FPGA 與CYUSB3014 之間的數據傳輸速度是決定整個系統(tǒng)性能的關鍵。Cypress 在GPIF 的基礎上設計了可編程的GPIF-II 接口,該接口可工作于主控或從屬方式,支持32 位數據總線,接口頻率可高達100MHz,有異步和同步兩種時序。在本系統(tǒng)中,為了達到更高的數據傳送效率,根據GPIF-II 接口時序,編寫了相應的FPGA 程序,實現了在FPGA 和CYUSB3014 之間的高速數據傳輸。試驗結果表明,FPGA 和CYUSB3014 之間的數據傳輸速度最高達到了200Mbytes/s,完全滿足本系統(tǒng)的要求。基本的步驟完成后,利用先進先出的數據緩存器使通用可編程接口與USB 接口相配對,裝載GPIF-II 接口程序后確定好狀態(tài)后啟動裝備。
在Altera 公司研發(fā)的平臺上,USB3.0 的數據高速緩存器區(qū)域、存儲區(qū)域以及控制區(qū)域按照一定的順序將數據傳輸。對于FPGA 的不同功能塊,相互之間并行執(zhí)行的,互不干擾;但現實中,實現一個較小的完整的功能板塊,必然是順序操作的。FPGA 主要包括三種設計方式:面向狀態(tài)的設計、面向活動的設計和面向結構的設計。
在這個區(qū)域中,設計是以狀態(tài)機為代表的設計方式,即通過控制信號和時序信號觸發(fā)狀態(tài)機進行時序的遷移。利用網絡地址建立兩個緩存區(qū)域,板塊一負責數據的接收和程序的編譯,板塊二則將編譯好的數據返回給上一層,并將存儲位置轉換為32bit。板塊一在系統(tǒng)中所占的存儲量為2000bit,第二代雙倍數據率同步動態(tài)隨機存取存儲器將載入系統(tǒng)的可讀數據進行處理編譯,為應對突發(fā)情況,系統(tǒng)自動將大于64bit 的數據編譯。板塊二在系統(tǒng)中所占的存儲量為1000bit,燒錄入時為64bit,出時占據的空間為入時的一半。
DDR2 采用JEDEC 開發(fā)的新一代的內存技術標準。該標準定義了DDR2 封裝、尋址及操作、電氣等所有特性。數據存儲區(qū)域主要按照一定的順序進行存儲,即先進先出板塊一優(yōu)先于隨機存儲區(qū)域,隨機存儲區(qū)域又優(yōu)先于先進先出板塊二。DDR2 采用電容存儲數據信息,電容的漏電造成數據丟失,必須要定時刷新才不會丟失。為了保存內部數據,DDR2 每隔一定的時間就要對每一行進行刷新,根據DDR2的JEDEC 標準,最多每隔7.8us 就要刷新一次,用來保持DDR2 內部數據的正確性。DDR2 有兩種刷新模式:自刷新(self-refresh)和自動刷新(auto-refresh)。自刷新通常工作于所有bank 都處于空閑的狀態(tài),功耗低,但是進入自刷新模式和退出自刷新模式都要經過復雜的時序步驟來完成,控制復雜。自動刷新模式由定時器產生刷新命令,易于控制,因此一般選擇自動刷新模式。
控制傳輸是一種特殊的傳輸方式,且傳輸過程相對以上三種而言更復雜一些,當USB 設備初次連接主機時,用控制傳輸傳送控制命令等對設備進行配置。同時設備接入主機時,需要通過控制傳輸去獲取USB 設備的描述符以及對設備進行識別,在設備的枚舉過程中都是使用控制傳輸進行數據交換系統(tǒng)裝載好固件配置以后,使可編程邏輯接口與芯片間建立輸送通道,將隨機存取存儲器中的數據由USB 端輸出到客戶端。所有的程序按照先進后出的方式在系統(tǒng)中運行和傳輸,備有兩個可編輯接口A0 和A1,當兩個接口的比值為0 并且數據未緩存滿時,將數據燒錄到FX3 芯片里。
本文主要分析研究了以USB3.0 為高速數據接口,FPGA 為主控芯片和DDR2SDRAM 為儲存模板的高速數據傳輸系統(tǒng),并通過實驗進行了驗證。實驗結果顯示,最新的USB3.0 控制芯片的兼容性保持穩(wěn)定的同時,極大地提高了帶寬,能夠更快的識別器件,功能要比之前的更加強大,數據處理能力更加靈活和高效,滿足了高速大容量數據傳輸的性能要求,可廣泛用于各大容量數據處理系統(tǒng)中;FPGA 作為本實驗的數據傳輸的控制領域,以Altera 公司設計開發(fā)的QuartusII 作為實現功能的數字平臺,最終實現了USB3.0 高速傳輸電路的高速緩沖FIFO 模塊、DDR2 存儲控制模塊、USB 控制模塊的時序設計;DDR2 內存每個時鐘能夠以4 倍外部總線的速度讀/寫數據,能夠以內部控制總線4 倍的速度運行,采用1.8V 電壓,相對于DDR 標準的2.5V,降低了不少,從而提供了明顯的更小的功耗與更小的發(fā)熱量,這一點的變化是意義重大的。本系統(tǒng)可以滿足數據傳輸所需的高速和穩(wěn)定的要求,并且具有廣泛性和實用性,在未來的電子產品競爭中具有很大的競爭潛力。