基于SOPC的高速數(shù)據(jù)采集系統(tǒng)的分析與設(shè)計
本系統(tǒng)軟件包括SOPC系統(tǒng)程序、USB固件程序、驅(qū)動程序和應(yīng)用程序等4個方面的設(shè)計。其中SOPC系統(tǒng)程序和USB固件程序是整個程序設(shè)計的核心。
3.1 SOPC系統(tǒng)程序設(shè)計
基于QuartusII和Nios的SOPC設(shè)計流程如圖4所示。

本系統(tǒng)中的SOPC系統(tǒng)軟件設(shè)計是指在FPGA中配置ALTERA公司NiosII嵌入式處理器的硬件環(huán)境。其中NiosII處理器的配置可基于QuartusII,它是ALTERA公司的大規(guī)模FPGA/CPLD開發(fā)工具。為了進行Nios處理器的開發(fā),通常要在Quartus里裝入NiosII的軟硬件開發(fā)工具,同時在提供的開發(fā)包中使用軟件SOPC Builder開發(fā)工具加載NiosII核和外圍接口,并定義相應(yīng)的指令,然后對系統(tǒng)進行綜合后,再下載到FPGA中,就可以完成特定功能的處理器設(shè)計。
3.2 USB固件程序設(shè)計
CY68013芯片的固件程序主要負責處理PC機發(fā)來的各種USB設(shè)備請求,并與外圍電路進行數(shù)據(jù)傳輸。CYPRESS公司提供的固件程序框架中的兩個程序分別是FW.C和PERIPH.C。其中FW.C是固件運行的主程序文件,負責處理各種USB設(shè)備請求,包含程序框架的MAIN函數(shù),它可管理整個51內(nèi)核的運行。而對于PERIPH.C,則必須將PERIPH.C實例化,以實現(xiàn)所需的功能。固件程序中最重要的是TD_init()和TD_poll()兩個函數(shù)。TD_Init函數(shù)負責對CY7C68013的初始化,它一般在固件運行開始時調(diào)用;TD_poll函數(shù)是數(shù)據(jù)采集的執(zhí)行子程序,它首先判斷內(nèi)部端點6的緩沖區(qū)和外部FIFO緩沖器是否非空,如滿足條件,則啟動A/D轉(zhuǎn)換,并根據(jù)USB設(shè)備工作在高速和全速的不同來設(shè)置不同的傳輸計數(shù)。本設(shè)計中將接收數(shù)據(jù)端點6設(shè)為SLAVE FIFO模式,并使用AUTO IN模式來接收FPGA發(fā)來的數(shù)據(jù),數(shù)據(jù)流由外部FIFO控制器控制,并直接傳人端點6的FIFO,以等待主機提取。這里,CY7C68013僅作為數(shù)據(jù)通道,CPU不參與此過程。因此,只需在固件的初始化程序中配置好端點6的SLAVE FIFO接口模式,剩下的傳輸控制和其它的工作則可由FPGA來完成。以下是針對本設(shè)計的部分固件程序:

Void TD_Poll(void)//在設(shè)備運行時反復(fù)被調(diào)用,主要完成外部FIFO狀態(tài)檢測和數(shù)據(jù)傳輸

3.3 USB驅(qū)動程序設(shè)計
Windows下的USB驅(qū)動程序通常由3部分組成:USB設(shè)備驅(qū)動程序、USB總線驅(qū)動程序和USB主控制器驅(qū)動程序。其中,Windows操作系統(tǒng)已經(jīng)提供了處于驅(qū)動程序棧底的USB總線驅(qū)動程序和USB主控制器驅(qū)動程序。而USB設(shè)備驅(qū)動程序則要由設(shè)備開發(fā)者編寫。它應(yīng)能通過向USB總線驅(qū)動程序發(fā)送包含URB(USB Request Block)的IRP(I/O Request Packet)來實現(xiàn)USB外設(shè)之間的信息交換。本設(shè)計采用Jungo公司的Win Driver進行驅(qū)動程序開發(fā),并根據(jù)Win Driver提供的驅(qū)動向?qū)Ш陀脩粜枰?,來自動生成代碼框架,從而簡化驅(qū)動程序的開發(fā)。
3.4應(yīng)用程序設(shè)計
本設(shè)計采用NI公司的虛擬儀器(VI)開發(fā)平臺Labview來進行應(yīng)用程序的設(shè)計。VI包括三部分:前面板、框圖程序和圖標/連接器。其中前面板用于設(shè)置輸入數(shù)值和觀察輸出量。每一個前面板都對應(yīng)著一段框圖程序??驁D程序可用Labview圖形編程語言―G語言來編寫。圖標/連接器是子VI可被其它Ⅵ調(diào)用的接口。圖標是子VI在其它程序框圖中被調(diào)用的節(jié)點表現(xiàn)形式;而連接器則是節(jié)點數(shù)據(jù)的輸入/輸出口。連接器端口與前面板的控制和顯示一一對應(yīng)。
4結(jié)束語
本文介紹了一種基于SOPC和USB2.0接口的高速數(shù)據(jù)采集系統(tǒng)及其虛擬儀器的設(shè)計方法。實驗表明,基于本設(shè)計的高速數(shù)據(jù)采集系統(tǒng)具有抗干擾、可靠性高、失碼率低等優(yōu)點。
評論