顧俊杰,常瀟倩,孟紫騰,胡 輝
(北華航天工業學院 電子與控制工程學院,河北 廊坊 065000)
陀螺儀廣泛應用于各種慣導產品中,由于陀螺馬達在啟停過程產生的反電動勢會影響其使用壽命,于是設計了陀螺馬達啟停壽命評估系統,其中的數據采集系統包括兩個部分:①陀螺馬達正常工作的多參量測試;②陀螺馬達斷電后產生的反電動勢測試。
上代采集卡的設計采用了PCI總線設計方案,結合設計成本及便攜性提出了兼容USB接口的設計要求[1]。目前市場眾多產品的設計普遍采用USB 2.0的接口設計方案,其數據傳輸速度達到480 Mb/S(即60 MB/S),能夠滿足大多數數據傳輸的速度要求,然而對于一些超高速數據采集設備已不再適用,為了進一步擴展采集卡的適用場景兼容高速數據采集,最終決定采用USB 3.0接口設計方案[2]。
本設計的總體方案如圖1所示,筆者重點針對USB 3.0高速數據傳輸接口進行設計與驗證。該電路主要包括以下幾個部分:FPGA主控制電路、接口供電模塊及其外圍配置電路。

圖1 數據采集系統的整體方案
圖1中FPGA主要負責邏輯控制實現,包括USB 3.0接口控制以及FIFO讀寫控制功能。外圍電路主要用來完成FPGA的配置模式工作,本次配置模式采用主動串行模式(AS)和最常用的JTAG配置模式,并此基礎上來實現程序在線調試或者固化[3]。本設計給出兩種供電方式:①由USB主機供電;②由外部直流電源直接供電。電源電壓經LDO實現不同降壓為采集卡各個電路模塊提供正常工作電壓。
本部分主要完成電源模塊和USB 3.0接口電路的具體實現方案。
電源模塊的設計主要針對USB 3.0的供電部分,不包括數據采集卡的其他部分供電。供電電源由外部5 V直流電源或PC端的USB接口提供。電源部分實現了由5 V到3.3 V和3.3 V到2.5 V、1.8 V及1.2 V電壓降穩壓功能[4]。具體電路方案,如圖2所示。

圖2 USB3.0電源模塊電路
圖2中VBUS_IN為PC端USB接口供電,DC_5V_IN為外部直流電源供電接口。當跳帽連接排針J1中的1和2端子則系統選擇由PC機的USB口供電;當跳帽連接2和3端子直接由外部直流電源供電,供電電壓為5 V。5 V電壓經線性穩壓器LMS8117ADT-3.3降壓到3.3 V。2.5 V或1.8 V則可由具備使能功能的線性穩壓器TLV75801PDBVR對3.3 V電壓進行降壓實現。設計輸出2.5 V兼容1.8 V,當跳帽連接J4的1和2端子輸出2.5 V電壓;跳帽連接2和3端子則輸出1.8 V。
本電源模塊的設計中供電方式和輸出電壓均具有多種兼容性,可在不同情況下選擇不同的供電方式或輸出電壓,供電方式靈活,精度高,驅動能力強。
USB 3.0接口又稱超高速USB(SuperSpeedUSB),兼容USB 2.0,高達5 Gbps(600 MB/S)的理論傳輸速度,實際傳輸速度可達400 MB/S,相比USB 2.0最大供電電流500mA,USB 3.0達到了900 mA,提供了更大的驅動能力。USB 3.0總線保留了USB 2.0信號線D+、D-、VBUS以及GND,同時增加了兩隊超高速差分信號線:SSTX+& SSTX-、SSRX+ &SSRX-,前者用來發送信號,后者用來接收信號,實現了全雙工傳輸方式[5]。
本次USB 3.0接口電路設計采用的橋接芯片是由FTDI公司生產的FT601Q,其USB傳輸類型包括控制、批量、中斷,內置16 K 32位并行FIFO數據緩存,支持兩種工作模式:①“245同步FIFO”模式;②“多通道FIFO”模式,I/O口支持多種電壓:1.8 V、2.5 V和3.3 V,支持可配置GPIO,具備遠程喚醒、上電復位功能,內置1.0V線性穩壓等特點。
本次主控單元FPGA選用INTEL公司的Cyclone V GX系列5CGXFC5C6F27C7N芯片,針對陀螺馬達反電動勢的測試工作以及對FT 601Q的邏輯控制等能夠完全滿足。
由于FPGA片內存儲斷電丟數,數據無法保存,每次上電燒寫程序極不方便,于是為控制電路配置了一片EEPROM存儲器,確保系統程序掉電不會丟失,再次上電可直接由EEPROM中將配置程序快速載入到FPGA,方便快捷[6]。本次選用了安森美公司的CAT24C512WE-GT3芯片。該芯片具備寫保護功能,由高電平有效信號WP使能,避免其內部數據被修改,3個地址線A0、A1、A2用于多器件工作時器件的地址選擇即片選功能,本次電路設計僅使用一片,于是將3個地址線均接地處理,同時將VSS接地,由于不需要寫保護功能故將WP也做接地處理。
為最大化數據傳輸速度,本接口設計采用FT601Q的“245同步FIFO”總線協議模式。此模式下將FT601Q的CLK設置為100 MHz,然后給到FPGA中并行主FIFO作為其時鐘信號;在FIFO讀寫過程中作為字選通的有效字節分配信號的則是字節使能信號BE[3:0],當字邊界在數據傳輸長度未對齊時,除最后一個字節選通外所有4個字節都有效。數據傳輸過程,如圖3所示。

圖3 系統數據流示意圖
首先由上位機下發指令經USB3.0接口送到FT601Q,此時FT601Q即可發送低電平有效的RXF_N信號到FPGA,表RX_FIFO中至少有1 byte數據可讀,此時只能進行讀操作,由FT601Q接收FPGA發來的低電平有效地使能信號OE_N,之后接收到同樣低電平有效的讀使能信號RD_N,方可讀取RX_FIFO中所緩存數據。當被測信號通過模數轉換器轉換后的數據由FPGA經USB 3.0接口送到PC上位機時,首先由T601Q發送低電平有效的TXE_N信號給FPGA,表TX_FIFO中至少有1byte空間可寫入數據,此時只能進行寫操作,然后FPGA發送低電平有效的寫使能信號WR_N給FT601Q,執行寫命令,將要發送的數據寫到TX_FIFO中,最后由上位機給出數據請求信號讀取TX_FIFO中數據。
FT601Q內部FIFO讀寫工作主要由有限狀態機來實現,圖4中描述了其具體轉換過程。

圖4 狀態機轉換圖
首先系統復位進入IDLE空閑狀態,若RXF_N和BUF_FUL均為低電平,則進入讀狀態,對FT601Q中的RX_FIFO進行讀操作,否則進入中間MIDDLE空閑狀態;在讀狀態下,若RXF_N和BUF_FUL其一變為高電平,也進入中間MIDDLE空閑狀態;在MIDDLE狀態下,對TXE_N和BUF_EMP進行判斷,若均為低電平則進入寫狀態,對FT601Q中的TX_FIFO進行寫操作,否則進入IDLE空閑狀態;在寫狀態下,若TXE_N和BUF_EMP其一變為高電平,也進入IDLE空閑狀態。其中BUF_FUL和BUF_EMP分別是主FIFO的滿空狀態指示信號,高電平有效[7]。
本次FIFO模塊設計通過Quartus軟件調用IP核生產控制模塊,根據系統需求,FIFO大小16 K,位寬設置為32位,深度8192,以此為基礎實現FPGA內部數據緩存,通過USB 3.0接口實現與外部PC機進行數據交換,并在上位機上進行數據處理工作4系統測試。
在完成以上硬件電路設計及FPGA邏輯控制模塊的編寫之后,對整個系統進行測試。利用FTDI官方提供的配置工具FT60X Chip Configuration Programmer對FT601Q配置工作,其中時鐘100 MHz,工作模式為“245 同步FIFO”模式[8]。完成FT601Q的配置工作之后,利用FTDI公司官方提供的上位機測試軟件對本次設計的接口電路進行數據傳輸的測試。
最后使用官方提供的上位機測速軟件FT600 Data Streamer進行測試,從圖5中的測試結果可以看到,以FT601Q為橋接芯片的USB 3.0接口電路其數據讀寫速度分別可以達到347 MB/S和382 MB/S左右,已基本接近官方提供的400 MB/S的最高傳輸速度,實現高速性能。

圖5 FT601Q接口電路讀寫速度測試
針對本次陀螺馬達反電動勢測試系統所設計的USB 3.0接口電路,經過相應的調試與實際測試,其最高傳輸速度能夠達到382 MB/S左右,滿足了本次項目需求,同時對于多數高速數據采集場景同樣適用。USB 3.0接口的適用不但提高了系統的數據傳輸速率[9],同時具有靈活的供電方式以及便攜等特點,大多數計算機能兼容USB 3.0接口,使其能夠隨時切換其工作場所,極大地提高了測試效率和設備利用率,具有較廣的應用范圍。