基于CS5451A多路同步數(shù)據(jù)采集系統(tǒng)設計
2 異步FIFO的設計
本設計中所用的FPGA芯片是XILINX公司的XC3S100E,XC3S100E是XILINX SPARTAN3E系列一款最低容量的FPGA芯片,此系列FPGA利用90 nm工藝實現(xiàn)低成本高容量的需求,XC3S100E具有以下資源:
1)有2160個邏輯單元;
2)具有RAM資源87 kB(其中BLOCK RAM 72 kB,分布式RAM 15 kB);
3)具有兩個DCM;
4)具有4個乘法器;
5)可以實現(xiàn)FIFO等多個IP核。
在XILINX ISE10.1集成開發(fā)工具下,很容易利用XININX免費IP核實現(xiàn)一個異步FIFO。異步FIFO是在兩個相互獨立的時鐘域下,數(shù)據(jù)在一個時鐘域?qū)懭隖IFO,而在另外一個時鐘域下又從該FIFO中將數(shù)據(jù)讀出。CS5451A控制系統(tǒng)框圖如圖3所示,異步FIFO和串并轉(zhuǎn)換模塊作為CPU和CS5451A之間的橋梁,由串并轉(zhuǎn)換模塊將ADC輸出的串行數(shù)據(jù)轉(zhuǎn)換成19位的并行數(shù)據(jù)(其中16位為數(shù)據(jù),3位為采樣通道號0~5)寫入異步FIFO,這樣FIFO就成為CPU前端的一個緩沖器。每接收完成1幀數(shù)據(jù)便向CPU發(fā)出一個中斷信號,通知CPU讀取FIFO中的數(shù)據(jù)。本文引用地址:http://www.ex-cimer.com/article/195006.htm
異步FIFO IP核的參數(shù)指標直接影響FIFO的讀出速度,首先,F(xiàn)IFO的讀出速度快能夠減少CPU的開銷,這樣CPU可以有更多的時間干實時性更高的任務。其次,F(xiàn)IFO的存儲深度要適宜,深度過大造成資源的浪費,深度過小會造成控制復雜,這樣將占用更多的資源。本設計中的異步FIFO是利用ISE10.1中的參數(shù)化的IP核在XC3S100E芯片的實現(xiàn)。由于1個CS5451A芯片共有6通道ADC,ADC的分辨率為16位,考慮到數(shù)據(jù)的可靠性,每一個ADC通道的數(shù)據(jù)包括通道號(占3位),考慮到有的時候可能CPU不能及時的讀走數(shù)據(jù),所以在參數(shù)化的FIFO設計中選擇FIFO深度為64,寬度為19位。
3 基于FPGA串并轉(zhuǎn)換模塊的設計
CS5451A通過一個Master模式的串行接口輸出采樣數(shù)據(jù),輸出數(shù)據(jù)通過SDO輸出,SCLK為輸出串行時鐘,CS5451A串行輸出時序圖如圖4所示,F(xiàn)SO是幀同步信號,表示一幀數(shù)據(jù)的開始,如果SE信號為高電平,這3個信號就有效,如果為低電平,3個信號都為高阻狀態(tài),在本設計中,CPU初始化后把SE設置成高電平。正常情況下,F(xiàn)SO信號為低電平,當有一幀數(shù)據(jù)要輸出的時候,F(xiàn)SO信號變?yōu)楦唠娖?,高電平寬度?個SCLK周期。當沒有數(shù)據(jù)輸出的時候,SCLK為低電平,F(xiàn)SO從高電平變?yōu)榈碗娖胶?,SCLK時鐘信號有效,數(shù)據(jù)在上升沿輸出,SCLK共持續(xù)16x6個周期,數(shù)據(jù)串行輸出時,MSB最先輸出。
評論