FPGA的高速多通道數據采集控制器IP核設計
隨著可編程邏輯器件的不斷進步和發展,FPGA在嵌入式系統中發揮著越來越重要的作用。本文介紹的在電能質量監測系統中信號采集模塊控制器的 IP核,是采用硬件描述語言來實現的。首先它是以ADS8364芯片為控制對象,結合實際電路,將6通道同步采樣的16位數據存儲到FIFO控制器。當FIFO 控制器存儲一個周期的數據后,產生一個中斷信號,由PowerPC對其進行高速讀取。這樣能夠減輕CPU的負擔,不需要頻繁地對6通道的采樣數據進行讀取,節省了CPU運算資源。
本文引用地址:http://www.j9360.com/article/148999.htm1 ADS8364芯片的原理與具體應用
A/D轉換芯片ADS8364是TI公司推出的專為高速同步數據采集系統設計的高速度、低功耗、6通道 (三相電壓、三相電流)同步采樣的16位A/D轉換芯片。采用模擬和數字分別供電,在模擬輸入端,有模擬參考電壓輸入、輸出引腳和信號六通道正反相輸入引腳;在數字端,主要包括控制ADS8364的讀/寫、復位、片選引腳和轉換結果輸出總線。
ADS8364芯片的轉換過程為:當ADS8364的HOLDX保持至少20 ns的低電平時,轉換開始。當轉換結果被存入輸出寄存器后,引腳EOC的輸出將保持半個時鐘周期的低電平,以提示數據分析處理器進行轉換結果的接收,處理器通過置RD和CS為低電平可使數據通過并行輸出總線讀出。在轉換數據的接收過程中,ADS8364芯片各引腳工作的時序達到協調一致,才能保證監測設備良好工作,具體時序安排如圖1所示。
ADS8364芯片的數據輸出方式分別由BYTE、ADD與地址線A2、A1、A0組合控制,轉換結果的讀取方式由電能質量監測系統中采用的數據分析處理器決定,一般可取直接讀取、循環讀取和FIFO方式的任何一種。根據BYTE為0或者為1可確定每次讀取時得到的數據位數,根據ADD為0或者為1可確定第一次讀取的是通道地址信息還是通道A/D轉換結果。在實際應用中,我們結合了ADS8364模數轉換器中的6個16位ADC可以成對同步工作的能力,3 個保持信號(HOLDA、HOLDB、HOLDC)可以同時被選通,其轉換結果將保存在6個寄存器中。對于每一個讀操作,ADS8364均輸出16位數據,最高位為符號位。根據圖2所示的ADS8364循環讀取方式工作時序,需設置BYTE為0,A2、A1、A0分別為1、1、0。
2.3 A/D轉換芯片控制模塊及頂層文件的設計
控制器模塊的設計:
①根據ADS8364的工作原理:HOLDX保持至少20ns的低電平,轉換開始,所以控制器需根據時序要求產生 HOLD周期信號。
②轉換結束后根據EOC的響應狀態,需要置RD和CS為低電平,使數據通過并行輸出總線讀出。下面是根據EOC的狀態改變RD值的 Verilog描述:
根據圖1的工作時序和圖2的循環讀取方式以及對數據采集頻率(12.8 kHz)的要求,對芯片相應的引腳進行控制,并和FIFO進行連接使采集的數據能夠按照循環方式寫入FIFO。采用Verilog硬件描述語言實現上述功能,并建立頂層文件正確連接各個功能模塊。
頂層文件的Verilog描述如下:
如圖3所示,時鐘分頻部分的輸出與FIFO的數據寫入時鐘、AD_Ctrl的時鐘和A/D轉換芯片的時鐘相連接。AD_Ctrl部分主要對ADS8364 芯片進行控制,其中輸出RD也連接到FIFO的寫使能端,對FIFO的數據寫入進行控制。FIFO的讀時鐘接到系統時鐘,讀使能由CPU控制。當FIFO 寫入一個周期的數據后,由prog_full產生中斷信號,CPU響應并對FIFO進行讀取。
評論