文獻標識碼: A
文章編號: 0258-7998(2011)01-0068-03
在許多科學研究和工業控制中,常常需要對高速變化的信號進行采集與分析,并且在很多領域對數據采集系統的精度要求還非常高。因此,設計一個好的高速高精度采集系統尤為重要。傳統的數據采集系統中,A/D的控制和數據的轉存通常通過PC機來完成,數據采集需要經過A/D轉換,系統很大部分需要靠人工監控來完成,不僅耗費大量的人力物力,而且數據采集效率也很一般。
隨著微電子技術的迅速發展,FPGA和CPLD以其高集成度、高靈活性等特點被廣泛應用在數據采集存儲測試系統中。隨著嵌入式技術的發展,以簡單的單片機為核心的采集系統已逐漸不能滿足各種應用需求,而以32位嵌入式微處理器為核心的ARM系列在數字消費品、成像設備、工業控制、存儲設備和網路設備等方面應用廣泛。本文給出了以ARM微處理器為核心的系統設計,利用高速A/D轉換和大容量的數據存儲器,實現較長時間的連續采集。
1 工作原理與總體結構設計
系統的基本結構如圖1所示,本文系統中采用ARM9核心板作為數據采集控制核心,由它來產生A/D轉換器的各種控制信號、緩存器的讀寫時序、基本的信號處理和對外接口時序等。核心板的內核是32 bit ARM920T,主頻達到400 MHz。同時具有64 MB Flash及64 MB SDRAM外部存儲器。它的系統時鐘是由內部PLL產生的400 MHz CPU內核工作頻率,同時該核心板還具有網絡接口和USB接口,可實現數據的傳輸和保存。
雷電產生時,傳感器分別接收到高速變化的快、慢電場信號,然后經過前端調理電路的放大、濾波等形成穩定的差分模擬信號送入高速A/D轉換器中。A/D轉換器采用ADI公司的14位雙通道模數轉換器芯片AD9248。其采樣速度可以達到20 MS/s,可以提供與單通道A/D轉換器同樣優異的動態性能, 但是比使用2個單通道A/D 轉換器具有更好的抗串擾性能。AD9248通過連接在ARM9上的觸發器的觸發信號開始工作,同時,AD9248的數據總線與緩存器FIFO的數據總線以及ARM的數據端口是連在一起的,這樣ARM可以靈活地處理A/D轉換器的采樣輸出數據。
在進行多站同步采樣時,準確地記錄數據發生的時間成為采樣過程中的關鍵。本系統在設計中加入GPS授時模塊,主要是用于解決ARM處理器的時間校驗問題。
2 系統主要硬件及接口設計
2.1 AD9248高速模數轉換器
A/D轉換器是高速數據采集系統的核心,該芯片采用3.3 V供電。AD9248的2個ADC通道除了共用內部的電壓參考源VREF外, 其他基本都是獨立的。圖2給出AD9248的功能模塊和內部結構的介紹。
AD9248是一種基于流水線型的ADC,這種流水線型結構的特點是由一系列標志1級、2級等各級構成。每級的結構是相同的,包含一個采樣保持電路(S/H) 、一個子模數轉換電路(ADC)和一個乘積數模轉換器(MDAC)電路[1]。
AD9248的主要引腳的功能包括:VIN+、VIN-是模擬差分信號輸入端;D0~D13是數據輸出端;OEA、OEB分別是A、B兩通道數據輸出使能位;PDWN_A、PDWN_B分別是兩通道的Power-Down功能選擇位,為0 時, 使能通道, 為1時, 關閉通道;DFS是輸出數據格式選擇位,為0時, 數據輸出格式為偏移的二進制,為1時,數據輸出格式為二進制補碼格式;OTR_A、OTR_B是兩通道的溢出標志位;MUX_SELECT是數據復用模式選擇位,該管腳接高電平時,則可保證兩通道數據分別從各自通道輸出,該管腳接時鐘時,兩通道數據將復用輸出數據端口, 此時數據輸出速率是采樣速率的兩倍[2]。
由于AD9248是流水線型的A/D轉換器,因此也就存在一個流水線延遲的問題。AD9248接收到CLK信號就開始進行采樣, 在每個時鐘信號的上升沿進行采樣。由于流水線延遲, 每次采樣的最終轉換結果要等待7個時鐘周期后才能出現在輸出端。所以一般不考慮前7個時鐘周期內的數據采樣。
2.2 高速數據緩存電路
本設計選用的緩存器FIFO是CYPRESS公司的CY7C4275V系列。CY7C4275V是一種高速大容量先進先出存儲器件,其最高工作頻率為100 MHz,容量為32 K×18 bit。CY7C4275V可提供全滿、半滿、全空、將滿以及將空等5種標志信號。如圖3所示,FIFO中沒有地址線, 可在讀、寫過程中對相應的狀態標志位置位來指示FIFO的狀態。為避免數據讀空,空標志(EF)置位將禁止讀操作;而為了避免數據寫入溢出, 滿標志(FF)置位將禁止寫操作。
AD9248是14位模數轉換器,CY7C4275是18位FIFO,S3C2440的數據總線是32位,所以CY7C4275和S3C2440只需接D0~D13。S3C2440與FIFO之間用總線方式連接。由于FIFO 先入先出的特殊結構,系統中不需要任何地址線的參與,大大簡化了電路。A/D采樣所得數據要實時送入FIFO,因此兩者的寫時鐘頻率必須一樣 ,操作起來統一方便[4]。
將A/D時鐘直接與FIFO的WCLK相連,可使FIFO同步將A/D采樣數據寫入。因為AD9248是雙通道模數轉換器,為了使兩個通道A/D同時工作, 提高系統效率, 設計時可采用兩個FIFO來獨立地將兩路A/D輸出數據進行存儲。由于A/D的數據輸出為14 bit,FIFO存儲寬度為18 bit, 故可將FIFO輸入端的空腳接地, 輸出端空腳懸空。接口的框圖如圖4所示。
FIFO的半滿標志HF接到ARM的地址線I/O上,當在FIFO中數據采集半滿時,半滿標志輸出低電平,這時ARM可以通過尋址的方式來讀取FIFO中的數據。由于ARM讀取數據的速度要比FIFO寫入數據的速度快得多,因此將FIFO的空標志(EF)也接入地址線I/O,當數據讀空時,EF標志輸出低電平,ARM停止讀取。
3 系統的軟件設計
系統整體上采用結構程序設計的方法設計,整個程序包括主控制模塊、數據采集模塊和數據傳輸存儲模塊等結構。考慮到本系統基于S3C2440平臺和Linux操作系統,整體系統的程序設計變得更加具有靈活性、簡單性和易操作性。
高速A/D轉換器模塊主要負責對高速變化的電場信號進行采集及轉換;核心板上的網絡接口和USB接口模塊主要負責數據的傳輸和數據存儲。數據采集的程序流程圖如圖5所示,假定系統的采樣時間設定為2 s,ARM在讀取FIFO中數據的過程中,判斷有沒有到達采樣時間,如果沒有就繼續采樣,讀取數據;如果達到立即停止A/D轉換,則通過USB接口將數據存入U盤中。
通過實際測試表明,整個系統在數據采集中能達到一定的速率。同時設計有網絡接口和USB接口實現大容量的板載數據存儲,從而能實現較長時間的連續采集。選取的14 bit高精度模數轉換器AD9248、FIFO以及S3C2440,都具有性能高、功耗低的特點,并且大大簡化了外圍接口電路的設計,系統運行穩定可靠。本系統不僅可以對雷電產生時的瞬變電場進行記錄和分析,也能應用于科學研究和工業生產控制等其他領域中。
參考文獻
[1] 常春波,廖述建,李曉芳.流水線模數轉換器的接口電路[J].儀器儀表學報,2006(6):907-910.
[2] 羅林根,曾奕,李立學,等.基于CPLD和AD9248 的高速采集系統的設計與實現[J].工業控制計算機,2008(2):15.
[3] 向常州, 夏應清, 袁泉,等.基于AD9238的高速高精度ADC采集系統[J].電子元器件應用,2007(6):26-29.
[4] 武曉冬,戴波.基于FIFO 的高速A/D和DSP 接口設計[J].北京石油化工學院學報,2006(2):26-29.
[5] 張洪彬,柳吉齡,齊偉,等.一種高速數據采集系統的實現[J].中國測試技術,2007(1):125-127.