基于USB接口的數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
系統(tǒng)簡介
通用串行總線(USB)支持熱插撥,真正的即插即用。USB1.1在全速傳輸時可以達到12Mbps的傳輸速率;低速傳輸時傳輸速率可達1.5Mbps。USB電纜線只有4根,兩根是電源線,傳送5V電源,可用來向設備供電;另外兩根是信號線,用來傳輸串行數(shù)據(jù)。與傳統(tǒng)的RS-232串口比較,USB具有傳輸速度更快、集成化程度更高、編程化更好以及能夠支持多個設備等優(yōu)點。因此在我們的設計中用它來和主機接口實現(xiàn)高速的數(shù)據(jù)通信。
在數(shù)據(jù)采集系統(tǒng)中,通常采用單片機或DSP(數(shù)字信號處理器)作為CPU,控制ADC(模/數(shù)轉換器)、存儲器和其他外圍電路的工作。但是單片機的時鐘頻率較低,難以適應高速數(shù)據(jù)采集系統(tǒng)的要求,而DSP雖然可以實現(xiàn)較高速的數(shù)據(jù)采集,但其速度提高的同時也提高了系統(tǒng)的成本。FPGA(現(xiàn)場可編程門陣列)有單片機和DSP無法比擬的優(yōu)勢:時鐘頻率高,內部時延?。蝗靠刂七壿嬘捎布瓿?,速度快,效率高;組成形式靈活,可以集成外圍控制、譯碼和接口電路。因此,在本系統(tǒng)中我們用FPGA來控制A/D和USB芯片的運行。系統(tǒng)結構圖如圖1所示。
圖1 系統(tǒng)結構圖
圖中FPGA采用ALTERA公司生產的APEX 1k系列芯片,型號為EP1K30,通過在EPGA中編寫硬件邏輯控制A/D轉換器的運行;實現(xiàn)A/D轉換器和USB 控制芯片間數(shù)據(jù)傳輸的數(shù)據(jù)總線接口。除此之外,為了保證EPGA和USB控制芯片間數(shù)據(jù)交互過程的實現(xiàn),必須在FPGA中提供一個用于傳輸通信雙方控制和狀態(tài)信息的GPIO接口。
2 A/D轉換環(huán)節(jié)
在該系統(tǒng)中我們采用TI公司的ADS7800。它是12位并行模數(shù)轉換器[2>,接口簡單,很容易控制,最大采樣率可達333kHz,輸入的電壓范圍為-10V~+10V或-5V~+5V。ADS7800芯片的數(shù)字接口比較簡單,可以很方便地與其它數(shù)字系統(tǒng)相連接。對此芯片地控制有完全控制模式(full control mode )和孤立控制磨蝕(stand-alone control mode )兩種控制方法。
在本系統(tǒng)中,對ADS7800芯片的控制是通過在FPGA芯片中編寫控制邏輯來實現(xiàn)的。我們采用了孤立控制模式,在此控制模式下,輸出數(shù)字信號是12位并行的。
利用FPGA芯片的可編程性可以使用芯片中的12個IO腳作為數(shù)據(jù)總線,另使用一些IO腳作為ADS7800的控制信號輸入,控制模/數(shù)變換器以32kHz的速率對模擬輸入信號進行采樣,采樣的數(shù)據(jù)存入FPGA的RAM中。本系統(tǒng)中所使用的FPGA芯片型號為EP1K30QC208-3,它具有著良好的特性,芯片內部共有3萬個邏輯門,容量相當大;6個嵌入式陣列塊,可是現(xiàn)最大為3k字節(jié)的RAM存儲器。
3 系統(tǒng)的設計與實現(xiàn)
3.1 USB接口芯片介紹
在設計中,我們選取Cyprees公司的EZ-USB系列芯片來實現(xiàn)USB接口設備方的控制。它是一款帶有多個外設、高度集成的芯片,其功能框圖如圖2所示。一個集成的USB收發(fā)器(transceiver)連接USB總線的D+和D-。串行接口引擎(SIE)對總線上的數(shù)據(jù)進行編/解碼、錯誤檢測、位填充以及USB規(guī)范規(guī)定的其它信號級操作的實現(xiàn),并且最終把數(shù)據(jù)收或發(fā)到USB接口部分。
圖2 EZ-USB系統(tǒng)框圖
內部的微處理器是8051單片機的增強型,提高了執(zhí)行速度并增加了一些新的特性。它使用內部RAM作為程序和數(shù)據(jù)存儲器;帶有16位地址線和8位數(shù)據(jù)線用來訪問外部存儲器,特有的快速傳輸模式可以在外部邏輯和內部USB FIFO間快速地傳遞數(shù)據(jù)。
3.2 USB總線數(shù)據(jù)通信解決方案
在實現(xiàn)數(shù)據(jù)通信解決方案時,為完成數(shù)據(jù)流地正常傳輸,所建立的硬件平臺必須能夠提供兩個接口。首先必須要有一個實現(xiàn)數(shù)據(jù)傳輸?shù)臄?shù)據(jù)總線接口;除此之外,為了保證數(shù)據(jù)交互過程的正常實現(xiàn),必須提供一個用于傳輸通信雙方控制和狀態(tài)信息的GPIO接口。
AN2135SC芯片提供了EZ-USB系列芯片的所有接口和功能。在本系統(tǒng)中,我們將利用這款芯片和FPGA芯片配合工作,建立一個基于USB總線接口的數(shù)據(jù)通信解決方案,以實現(xiàn)將采樣信號輸出到上位機中的功能。
在此解決方案中,我們選擇AN2135SC芯片工作在快速數(shù)據(jù)傳輸模式下的8位并行數(shù)據(jù)總線D[7…0>作為數(shù)據(jù)傳輸?shù)目偩€接口;選擇AN2135SC芯片中的通用 C總線主控制器接口作為數(shù)據(jù)通信過程中進行控制和狀態(tài)信息傳輸?shù)腉PIO接口。這樣,芯片中的一般GPIO引腳就可以用來實現(xiàn)其它功能,方便了系統(tǒng)的進一步擴充。圖3所示為AN2135SC芯片與FPGA芯片的接口示意圖。
為了使AN2135SC芯片中快速數(shù)據(jù)傳輸模式下的數(shù)據(jù)總線D[7…0>和通用 主控制器分別完成流數(shù)據(jù)傳輸和控制狀態(tài)信息傳輸?shù)墓δ?,需要在芯片?051核中編寫程序,對AN2135SC芯片內部相關的專用寄存器進行配置[3>。
圖3 AN2135SC與FPCA接口示意圖
3.3 FPGA的獨特配置方案
FPGA芯片是一種基于SRAM工藝制作的可編程器件,其編程數(shù)據(jù)存儲于器件的SRAM存儲器內。這是一種易失性的存儲器,在系統(tǒng)掉電時,F(xiàn)PGA芯片中的邏輯將會丟失,芯片功能隨即消失,上電后需要重新對其進行配置。利用此功能可以靈活地改變FPGA芯片中的邏輯結構。這是一種動態(tài)配置過程,這種方式稱為ICR方式(in circuit reconfigurable)。
本系統(tǒng)中對FPGA的配置采用PS(passive serial,即被動串行)方式。通常采用的是以下兩種配置方法:配置數(shù)據(jù)來自于ALTERA公司生產的串行配制器件或系統(tǒng)控制器,如 等,系統(tǒng)上電時可對ACEX1K系列芯片進行配置;配置邏輯也可以通過ALTERA公司生產的Master Blaster、Byte Blaster MV或Bitblaster下載電纜進行手工下載。但是前者會增加系統(tǒng)的成本,而后者又很不方便。
上面的程序給出了這一次讀過程中讀地址指針的變化情況。隨著讀地址指針的變化,緩沖器中的數(shù)據(jù)順次輸出到數(shù)據(jù)總線D[7…0>上去。程序中 …0>為緩沖器的讀地址指針, …0>是緩沖器的輸出端口, … 是 芯片的數(shù)據(jù)總線 … 。
3.5 功能的實現(xiàn)
在 芯片與 芯片進行數(shù)據(jù)傳輸?shù)耐瑫r,雙方需要一些握手信號來協(xié)調傳輸過程。為此,我們選擇了 芯片中的 總線主控制器作為 端口,用來傳輸一些必要的控制和狀態(tài)信息。
為了與 芯片中的 總線主控制器配合工作,我們在 芯片中編寫了一個 總線從模塊,使得 總線上的數(shù)據(jù)傳輸能夠順利進行。根據(jù) 總線傳輸規(guī)范,我們設定了一個狀態(tài)機 ,它共有如下7個狀態(tài): 。圖6給出了此狀態(tài)機的狀態(tài)圖。
圖6 總線狀態(tài)機流程圖
由圖6可以看出,在開始條件( 產生后, 由空閑( 狀態(tài)進入地址狀態(tài)( 。我們在 中指定了兩個寄存器用于存儲從 總線上發(fā)送來的控制信號和將要發(fā)送到 總線上的狀態(tài)信號,它們分別是控制寄存器 ‥0 和狀態(tài)寄存器 ‥0 ,這兩個寄存器地址的高4位均為“1110“。同樣,我們可以把1 芯片中所有由 總線尋址的寄存器的高4位地址都設定為“1110”。如圖6所示, 總線在地址期內發(fā)送的高位地址只有為“1110”時,1 才會產生響應。這樣做的好處是便于擴充其它 總線設備。
總線在地址期內發(fā)送的最低地址用于指定隨后的數(shù)據(jù)傳輸是主要設備讀還是主設備寫,高電平表示主設備讀,低電平表示主設備寫。讀寫狀態(tài)轉換如圖6所示。因此,8位地址中可以用作尋址 端口的地址位為 ‥ 。
4 結束語
本文介紹了數(shù)據(jù)通信解決方案中數(shù)據(jù)傳輸通道和 功能的實現(xiàn)。實驗證明,兩個模塊配合工作即可實現(xiàn)數(shù)據(jù)的正常傳輸,從而順利地將 轉換器的輸出信號經(jīng) 總線傳送到上位機去。這個解決方案基于 總線設計并且結合 來進行控制,充分利用了 總線數(shù)據(jù)傳輸速率高、 設備可熱插撥等功能和 速度快、效率高、配置靈活的特點。經(jīng)實踐證明,它是一個功能完備、高效穩(wěn)定的解決方案。