隨著(zhù)可編程邏輯器件的不斷進(jìn)步和發(fā)展,FPGA在嵌入式系統中發(fā)揮著(zhù)越來(lái)越重要的作用。本文介紹的在電能質(zhì)量監測系統中信號采集模塊控制器的 IP核,是采用硬件描述語(yǔ)言來(lái)實(shí)現的。首先它是以ADS8364芯片為控制對象,結合實(shí)際電路,將6通道同步采樣的16位數據存儲到FIFO控制器。當FIFO 控制器存儲一個(gè)周期的數據后,產(chǎn)生一個(gè)中斷信號,由PowerPC對其進(jìn)行高速讀取。這樣能夠減輕CPU的負擔,不需要頻繁地對6通道的采樣數據進(jìn)行讀取,節省了CPU運算資源。 1 ADS8364芯片的原理與具體應用 A/D轉換芯片ADS8364是TI公司推出的專(zhuān)為高速同步數據采集系統設計的高速度、低功耗、6通道 (三相電壓、三相電流)同步采樣的16位A/D轉換芯片。采用模擬和數字分別供電,在模擬輸入端,有模擬參考電壓輸入、輸出引腳和信號六通道正反相輸入引腳;在數字端,主要包括控制ADS8364的讀/寫(xiě)、復位、片選引腳和轉換結果輸出總線(xiàn)。 ADS8364芯片的轉換過(guò)程為:當ADS8364的HOLDX保持至少20 ns的低電平時(shí),轉換開(kāi)始。當轉換結果被存入輸出寄存器后,引腳EOC的輸出將保持半個(gè)時(shí)鐘周期的低電平,以提示數據分析處理器進(jìn)行轉換結果的接收,處理器通過(guò)置RD和CS為低電平可使數據通過(guò)并行輸出總線(xiàn)讀出。在轉換數據的接收過(guò)程中,ADS8364芯片各引腳工作的時(shí)序達到協(xié)調一致,才能保證監測設備良好工作,具體時(shí)序安排如圖1所示。 ADS8364芯片的數據輸出方式分別由BYTE、ADD與地址線(xiàn)A2、A1、A0組合控制,轉換結果的讀取方式由電能質(zhì)量監測系統中采用的數據分析處理器決定,一般可取直接讀取、循環(huán)讀取和FIFO方式的任何一種。根據BYTE為0或者為1可確定每次讀取時(shí)得到的數據位數,根據ADD為0或者為1可確定第一次讀取的是通道地址信息還是通道A/D轉換結果。在實(shí)際應用中,我們結合了ADS8364模數轉換器中的6個(gè)16位ADC可以成對同步工作的能力,3 個(gè)保持信號(HOLDA、HOLDB、HOLDC)可以同時(shí)被選通,其轉換結果將保存在6個(gè)寄存器中。對于每一個(gè)讀操作,ADS8364均輸出16位數據,最高位為符號位。根據圖2所示的ADS8364循環(huán)讀取方式工作時(shí)序,需設置BYTE為0,A2、A1、A0分別為1、1、0。 2.3 A/D轉換芯片控制模塊及頂層文件的設計 控制器模塊的設計: 、俑鶕嗀DS8364的工作原理:HOLDX保持至少20ns的低電平,轉換開(kāi)始,所以控制器需根據時(shí)序要求產(chǎn)生 HOLD周期信號。 、谵D換結束后根據EOC的響應狀態(tài),需要置RD和CS為低電平,使數據通過(guò)并行輸出總線(xiàn)讀出。下面是根據EOC的狀態(tài)改變RD值的 Verilog描述: 根據圖1的工作時(shí)序和圖2的循環(huán)讀取方式以及對數據采集頻率(12.8 kHz)的要求,對芯片相應的引腳進(jìn)行控制,并和FIFO進(jìn)行連接使采集的數據能夠按照循環(huán)方式寫(xiě)入FIFO。采用Verilog硬件描述語(yǔ)言實(shí)現上述功能,并建立頂層文件正確連接各個(gè)功能模塊。 頂層文件的Verilog描述如下: 如圖3所示,時(shí)鐘分頻部分的輸出與FIFO的數據寫(xiě)入時(shí)鐘、AD_Ctrl的時(shí)鐘和A/D轉換芯片的時(shí)鐘相連接。AD_Ctrl部分主要對ADS8364 芯片進(jìn)行控制,其中輸出RD也連接到FIFO的寫(xiě)使能端,對FIFO的數據寫(xiě)入進(jìn)行控制。FIFO的讀時(shí)鐘接到系統時(shí)鐘,讀使能由CPU控制。當FIFO 寫(xiě)入一個(gè)周期的數據后,由prog_full產(chǎn)生中斷信號,CPU響應并對FIFO進(jìn)行讀取。 2.4 仿 真 對頂層文件進(jìn)行綜合,并在Mode-lsim中對其進(jìn)行仿真。數據采集控制器的仿真結果如圖4所示。當holdx_n為低電平時(shí),啟動(dòng)A/D轉換,完成后根據EOC_n的低電平信號產(chǎn)生6個(gè)RD_n的低電平信號,循環(huán)讀取數據。當FIFO存儲了一個(gè)周期的數據后,CPU置FIFO的讀使能端口為高電平,對 FIFO中的數據進(jìn)行高速讀取。若FIFO中數據為空,empty為高電平。 3 使用Xilinx嵌入式開(kāi)發(fā)工具EDK設計IP核 嵌入式開(kāi)發(fā)軟件EDK為設計人員提供了自動(dòng)化設計向導—— Base System Builder(BSB),可以指引工程師快速完成整個(gè)設計過(guò)程。使用BSB創(chuàng )建工程,在創(chuàng )建完成之后使用EDK自帶的CIP(Create and Import Peripheral Wizard)添加用戶(hù)自定義IP核,生成的用戶(hù)IP核保存在EDK工程目錄下的pcore文件夾。用戶(hù)IP核目錄如圖5所示。 其中文件夾data用于存放用戶(hù)IP的配置文件,如.prj文件、.mpd文件和.pao文件等;文件夾hdl用于存放用戶(hù)IP的HDL代碼,即.v或者.vhd文件;而devl(simmodels)文件夾中的工程可以使用戶(hù)在ISE平臺對工程進(jìn)行設計、綜合與仿真,如果設計需要加入網(wǎng)表,可以放在 netlist文件夾。CIP在建立用戶(hù)IP核時(shí),使用了一種專(zhuān)用接口規范(IPIF)。IPIF是一個(gè)驗證并優(yōu)化的高度參數化的定制接口,它提供了一個(gè)簡(jiǎn)化的總線(xiàn)協(xié)議IPIC(IP Intercon-nect),操作這個(gè)總線(xiàn)與直接操作PLB及OPB這些總線(xiàn)相比要簡(jiǎn)單很多。通過(guò)IPIF模塊,對其進(jìn)行參數化定制來(lái)滿(mǎn)足設計需求,將降低設計與測試的工作量。 將設計的Verilog文件復制到IP核目錄下相對應的hdl文件夾下,啟動(dòng)ISE開(kāi)發(fā)平臺并打開(kāi)devl文件夾中的工程文件,在 Sources for Implementation中顯示的結構如圖6所示。圖中,adsfifo.vhd是IPIC的描述文件,user-logic.v(或 user_logic.vhd)可以實(shí)現用戶(hù)IP核功能設計。需要在adsfifo.vhd中加入必要的端口聲明與邏輯設計,使PLB控制器與用戶(hù)IP設計端口進(jìn)行相應的連接。設計完成后在ISE平臺中對該IP核進(jìn)行綜合并仿真。綜合后查看FPGA器件的資源使用情況,如表1所列。 根據需要修改user_logic.v(或user—logic.vhd),向其中添加端口聲明與邏輯設計: 注意:在綜合后需要使用EDK中的CIP工具重新導入用戶(hù)IP核,在導入的過(guò)程中要指定MPD配置文件和XST project file(*.pfj)文件,這樣CIP可以自動(dòng)加入相關(guān)聯(lián)的.v或.vhd文件。導入完成后在EDK的IPCatalog的Project Local pcores分類(lèi)中可以看到用戶(hù)IP核,可以向EDK工程中加入該IP核,并設置其Bus Inter-face、Port和Addresses后生成位流文件,下載到開(kāi)發(fā)板進(jìn)行調試。 4 總結 利用FPGA和ADS8364設計的數據采集的IP核,其接口簡(jiǎn)單,采集精度高,可同時(shí)采集多路信號,而且能減輕FPGA嵌入式系統中CPU的負擔,節省CPU的運算資源。經(jīng)過(guò)仿真和下載到開(kāi)發(fā)板驗證,該設計能滿(mǎn)足高速交變電壓信號采集的高精度和高實(shí)時(shí)性的要求。 |