新聞中心

當前頁面: 首頁 >新聞中心 >行業動態 >一種多路同步數據采集系統的設計

一種多路同步數據采集系統的設計

供稿:工控網 2011/4/8 13:26:59
0 人氣:--
         繼電保護或者測控裝置都需要同步采集多路的電壓或者電流信號,現在一般的實現方式都是用多路逐次逼近型ADC(譬如AD7656或者ADS8-556)實現多路同步數據的采集,這種方案采樣速度高、控制簡單,但是每一通道都需要基于運算放大器的抗混疊濾波器,所以實現起來成本高、占用PCB面積大。本文提出一種使用CS5451A模數轉換芯片實現多路同步數據采集的實現方案,這種實現方式電路簡單、成本低。在本方案中,處理器選用的是飛思卡爾MPC8313處理器,主頻333 MHz。CS5451A如果用CPU直接控制,由于CS5451A芯片輸出數據速率低,處理器與ADC速度嚴重失配會大大占用CPU的開銷,本文提出一種利用XILINX可編程邏輯芯片FPGA實現異步FIFO和串并轉換模塊來實現采樣數據的接收的方法,串并轉換模塊只需要接收一幀數據,存到異步FIFO后,向CPU發出一個中斷信號,在中斷服務子程序中CPU讀走FIFO中的數據,這樣可以大幅度提高CPU的利用率,系統結構簡單,易于實現。

  1 CS5451A概述以及電路的設計

  CS5451A是Cirrus Logie公司設計的一款高度集成的模數轉換芯片。在一個硅片上集成了6個△-∑A/D轉換器,6個數字濾波器和一個與微控制器或DSP相聯接的串行接口。CS5451A包括3個電壓測量通道、3個電流測量通道,它們的主要區別是3個電流測量通道的運算放大器的增益是可以更改的,可以設置成1倍或者20倍,而電壓通道的增益固定為1倍。由于△-∑A/D轉換器采用過采樣技術以及數字濾波器,所以簡化了ADC前級的抗混疊濾波器的設計。在本設計中抗混疊濾波器只設計了1階低通濾波器。CS5451A結構框圖如圖1所示。

CS5451A結構框圖

圖1 CS5451A結構框圖

  在本設計中CS5451A的配置如下:

  1)ADC電流通道增益設置為1倍增益,這樣,6個通道增益都為1,電流通道和電壓配置一樣,每一通道不再有區別,容易做成通用的模擬輸入設計。

  2)最大輸入范圍為+20 V,互感器輸出的電壓信號通過電阻分壓網絡產生一個最大為±800 mV的電壓信號,通過一介低通濾波器進入ADC芯片,CS5451A電路設計如圖2所示。

CS5451A電路設計

圖2 CS5451A電路設計

 3)使用內部1.2 V參考電源。

  4)時鐘輸入為4.096 MHz。

  5)數據輸出速率4.0 k還是2.0 k由CPU控制。

  2 異步FIFO的設計

  本設計中所用的FPGA芯片是XILINX公司的XC3S100E,XC3S100E是XILINX SPARTAN3E系列一款最低容量的FPGA芯片,此系列FPGA利用90 nm工藝實現低成本高容量的需求,XC3S100E具有以下資源:

  1)有2160個邏輯單元;

  2)具有RAM資源87 kB(其中BLOCK RAM 72 kB,分布式RAM 15 kB);

  3)具有兩個DCM;

  4)具有4個乘法器;

  5)可以實現FIFO等多個IP核。

  在XILINX ISE10.1集成開發工具下,很容易利用XININX免費IP核實現一個異步FIFO。異步FIFO是在兩個相互獨立的時鐘域下,數據在一個時鐘域寫入FIFO,而在另外一個時鐘域下又從該FIFO中將數據讀出。CS5451A控制系統框圖如圖3所示,異步FIFO和串并轉換模塊作為CPU和CS5451A之間的橋梁,由串并轉換模塊將ADC輸出的串行數據轉換成19位的并行數據(其中16位為數據,3位為采樣通道號0~5)寫入異步FIFO,這樣FIFO就成為CPU前端的一個緩沖器。每接收完成1幀數據便向CPU發出一個中斷信號,通知CPU讀取FIFO中的數據。

CS5451A控制系統框圖

圖3 CS5451A控制系統框圖

  異步FIFO IP核的參數指標直接影響FIFO的讀出速度,首先,FIFO的讀出速度快能夠減少CPU的開銷,這樣CPU可以有更多的時間干實時性更高的任務。其次,FIFO的存儲深度要適宜,深度過大造成資源的浪費,深度過小會造成控制復雜,這樣將占用更多的資源。本設計中的異步FIFO是利用ISE10.1中的參數化的IP核在XC3S100E芯片的實現。由于1個CS5451A芯片共有6通道ADC,ADC的分辨率為16位,考慮到數據的可靠性,每一個ADC通道的數據包括通道號(占3位),考慮到有的時候可能CPU不能及時的讀走數據,所以在參數化的FIFO設計中選擇FIFO深度為64,寬度為19位。

  3 基于FPGA串并轉換模塊的設計

  CS5451A通過一個Master模式的串行接口輸出采樣數據,輸出數據通過SDO輸出,SCLK為輸出串行時鐘,CS5451A串行輸出時序圖如圖4所示,FSO是幀同步信號,表示一幀數據的開始,如果SE信號為高電平,這3個信號就有效,如果為低電平,3個信號都為高阻狀態,在本設計中,CPU初始化后把SE設置成高電平。正常情況下,FSO信號為低電平,當有一幀數據要輸出的時候,FSO信號變為高電平,高電平寬度為1個SCLK周期。當沒有數據輸出的時候,SCLK為低電平,FSO從高電平變為低電平后,SCLK時鐘信號有效,數據在上升沿輸出,SCLK共持續16x6個周期,數據串行輸出時,MSB最先輸出。

CS5451A串行輸出時序圖
 

圖4 CS5451A串行輸出時序圖

由于SCLK頻率很低,在用CPU的SPI控制器接收數據的時候,CPU接收一位的時間為4tXINe=1μs,如圖5所示,一幀數據為96位,接收一幀數據大約為96μs的時間,如果用CPU通過異步FIFO讀取數據,因為現在的控制器總線速度很快,假設讀一個字節數據需要100 ns,讀走一幀數據大約需要100 ns×12=1.2μs(由于MPC8313總線寬度為16位,不能一次讀取19位數據,所以在讀取FIFO中數據的時候,把通道號鎖存到一個暫存寄存器中,讀取采樣數據后再讀取通道號,所以讀取一幀數據需要12次)。只有原來的大約1/80的時間,提高了CPU的利用效率。
 

  CS5451A一幀數據輸出圖
 

圖5 CS5451A一幀數據輸出圖



圖5 CS5451A一幀數據輸出圖

 

 

  4 中斷服務子程序的設計

  CPU讀采樣數據是在中斷服務子程序中設計的,在中斷程序中讀走采樣值數據,并判斷通道號是否對應。軟件流程如圖6所示。

軟件流程圖
 


圖6 軟件流程圖

  5 結論

  本文利用CS5451A設計一個通用的多路數據采集系統,利用XILINX SPARTAN3E系列FPGA芯片實現異步FIFO和采樣數據串并轉換模塊的設計,CPU不用直接用SPI控制器接收CS5451A芯片輸出的串行格式的數據,只需要把ADC輸出的串行數據通過串并轉換模塊存入FIFO緩沖區,并產生一個中斷信號,在CPU的中斷子程序中讀出采樣數據。該方案已經在低壓繼電保護裝置中得到了應用,通過試驗本系統的數據采集精度可以達到0.2級。調試中發現,在進行PCB設計時,要注意以下幾點:

  1)模擬部分電路(差分輸入以及參考電源部分)和數字部分(XIN、FSO、SDO、SCLK信號)應完全分開在不同的區域里。

  2)良好的去耦對抑制CS5451A產生的噪聲很重要,去耦電容一般為0.1 μF,且放到電源輸入引腳盡可能近的地方,以達到良好的去耦效果。

  3)如果系統要求工作在-40~+85℃的溫度范圍內,要求采樣精度達到0.2級,必須使用外部高精度的參考電源。

更多內容請訪問 工控網(http://c.gongkong.com/?cid=41670)

手機掃描二維碼分享本頁

工控網APP下載安裝

工控速派APP下載安裝

 

我來評價

評價:
一般
0140李逵劈鱼 沈阳麻将免费下载 美国买旧房子翻新赚钱吗 17500乐彩网p3试机号 除权是赚钱还是亏本 快乐赛车计划软件下载 23号福建十一选五开奖结果 足球任选9场胜负中奖规则 澳洲幸运5 北京快3遗漏数据 江西多乐彩走势图