來源:電子技術應用,作者:丁昊;莊貴敏;宋杰;關鍵
在現代電力電子系統中,隨著內場測試和外場維護工作量的增加,對目前通用的測試儀器也提出了新的要求,研制低成本、體積小的便攜式幅頻特性測試儀具有深遠的現實意義。目前,結合新型微處理器芯片進行幅頻特性測試儀的研制主要有三種技術途徑:(1)采用單片機作為主控芯片,通過軟件編程方式實現部分硬件功能,這種方案可以有效降低系統的復雜度,但在實時性上不盡人意。(2)應用可編程邏輯器件(如FPGA)進行設計可以有效解決高速數據流的實時處理問題,但在人機界面的設計中具有較大困難。(3)采用單片機與FPGA芯片結合的方式,通過外部總線連接和數據傳輸協議的設計,使得系統兼具兩者的優勢,從而成為設計人員首選的主流方案。
現代EDA(Electronic Design Automation)技術的發展和大規模FPGA器件的推出,使得在單片FPGA芯片中進行嵌入式8051 IP核設計成為可能。應用現代EDA技術,以FPGA器件為硬件平臺,使用VHDL語言編程,可以實現與MCS-51系列單片機指令系統完全兼容的微控制器芯片IP(Intellectual Property)核。本文以此為基礎,提出了幅頻特性測試儀設計的新途徑。系統以FPGA為核心采集處理模塊,以Oregano公司開發的嵌入式MC8051內核(以下簡稱51內核)為顯示控制核心,通過FPGA內部的正弦查找表IP核外加D/A模塊的思想產生系統需要的掃頻信號源,同時采用2.4英寸TFT彩屏液晶顯示器進行人機界面設計,實現了便攜式幅頻特性測試儀的基本功能。該儀器具有小型化、頻帶寬、操作簡單、測量精確度高、界面顯示友好等優點,具有廣闊的應用空間。
1 系統組成與工作原理
1.1 系統組成
系統主要由正弦激勵信號的產生模塊和信號采集、處理和實時顯示模塊組成。其中前者采用基于“IP核+高速D/A”的思想產生掃頻信號,后者主要包括FPGA核心板、雙路高速A/D以及人機交互界面。在系統時鐘和觸發信號的驅動下,同時采集待測網絡的輸出信號以及系統的激勵信號,并進行相應的數據處理,實現對有源或無源四端網絡的幅頻特性測試。系統組成框圖如圖1所示。
系統設計中需要解決的核心問題:(1)51內核的初始化配置問題。系統使用的51內核,可以直接通過頂層文件的端口例化實現與FPGA內部定義信號之間的連接,而51內核使用的存儲器模塊則需要用戶進行配置。(2)數據流的速率匹配問題。經A/D采集得到的數據率遠遠超出了51內核的運算處理能力,因此系統中要進行數據緩存模塊的設計。(3)彩屏液晶的顯示控制。顯示部分是該儀器的關鍵模塊,系統采用TFT-LCD顯示技術,可以進行友好的人機界面設計,但是彩屏液晶的初始化時序極其復雜,在動態曲線和測量數據的實時顯示方面要進行優化設計。這些問題在實際設計中均得到了合理解決。
1.2 測量原理
對于一個線性時不變(LTI)系統,其沖激響應為h(t),在激勵為正弦信號e(t)=Acos(?棕0t+?茲)時,系統的零狀態響應為:
由此可以看出,系統輸出的穩態響應也是一個正弦信號,其頻率和輸入信號的頻率相同,但幅度和相位發生了變化,其中幅度變為原激勵信號幅度的|H(j?棕0)|倍,|H(j?棕0)|稱為電路網絡幅頻特性。
系統工作時,將等幅的正弦掃頻信號作為輸入信號激勵被測網絡。掃頻信號的起始頻率、終止頻率、頻率步進值以及掃描時間均可以通過按鍵輸入的方式設置,也可以采用系統默認的設置方式(掃頻范圍1 kHz~1 MHz,頻率步進1 kHz,掃描時間1 s)。高速A/D采集網絡的輸出信號和原始激勵信號,并在FPGA內通過峰值檢波程序得到網絡輸出信號的包絡數據,同時與激勵信號的幅值比較計算不同頻點的增益數據。采用異步FIFO作為FPGA與51內核之間傳輸數據的緩沖器,并將其配置為“乒乓”工作模式。當觸發信號到來時,將增益數據按照一定的格式和速率寫入異步FIFO。當FIFO中存儲一定數量的數據以后,在51內核同步時鐘的控制下將數據讀出并送往LCD模塊,同時禁止數據繼續寫入FIFO,實現幅頻特性曲線的顯示。
2 系統硬件設計
系統硬件主要實現正弦掃頻信號的產生、網絡輸出信號的采集處理、數據的傳輸以及TFT液晶模塊接口電路等功能,硬件總體框圖如圖2所示。
2.1 FPGA核心板模塊
FPGA核心板模塊是系統的核心,根據需要設計出FPGA最小系統板以及相關的A/D、D/A電路。其中,FPGA最小系統板采用Xilinx公司Spartan3系列的XC3S400-PQ208型40萬門芯片,核心板采用5 V輸入,由3片AMS1117實現5 V到3.3 V、5 V到2.5 V和5 V到1.2 V的電平轉換。板上采用40 MHz有源晶振,滿足高速設計要求。A/D為ADI公司高速模/數轉換芯片AD9224,具有12位精度,且功耗低。D/A采用高性能高速率的AD9764AR芯片,該芯片具有14位分辨率和極佳的動態無雜波失真范圍。
2.2 掃頻信號源設計
掃頻信號源的性能指標直接影響儀器的測試精度,本文采用DDS技術產生掃頻信號。這里有兩條途徑可供選擇,一種是采用專用的DDS芯片,如AD9854等,利用FPGA發送頻率控制字產生掃頻信號;另一種是采用FPGA中集成的正弦查詢表IP核,這是一種利用“IP核+D/A”相結合來實現DDS技術的方法,在充分提高FPGA內部資源利用率的前提下,又可以有效降低系統的硬件復雜度和成本,因此系統采用該方式。
設計環境使用Xilinx公司的ISE7.1,通過Core Generator生成正弦查詢表IP Core,查詢表中的波形數據存儲在FPGA的塊存儲器(Block Memory)中。查詢表IP核的輸入相位控制字THETA與實際相位之間的關系為:
該頻率精度完全達到設計要求。
2.3 系統接口模塊
在該系統中,液晶模塊采用ILI9320片上系統(SoC)驅動器[2],顏色顯示深度為18位,分辨率為240RGB×320像素。系統采用i80總線結構控制液晶顯示,即通過讀使能(RDB)和寫使能(WRB)兩條控制線進行讀寫操作,數據線的寬度為8位。液晶模塊中的控制信號和數據信號均為標準的TTL電平,可以直接與FPGA的I/O接口相連。
51內核具有8位總線寬度,通過內部端口映射的方式實現與FPGA模塊的接口連接。為了實現FPGA采集數據的實時傳輸和顯示,在接口設計中除了數據總線(data)以外,還需要地址總線(addr)和控制總線(w/r_en),按照程序設定的通信協議與FIFO中緩存的數據通信,實現數據傳輸和譯碼顯示。系統接口模塊的連接方式如圖3所示。
3 系統軟件設計
系統軟件設計主要完成對正弦查找表IP核的初始化、峰值檢波程序的設計、異步FIFO設計、FPGA與異步FIFO的通信協議設計以及同步顯示等問題。軟件設計總體框圖如圖4所示。
3.1 51內核的初始化配置
51內核采用完全同步的設計方案,在統一的時鐘信號下控制每一個存儲單元的讀寫操作。根據51內核處理速度的要求,在設計中使用20 MHz的時鐘,時鐘信號通過系統總時鐘分頻得到。設計中,首先在Keil編程環境中編譯C語言代碼,該代碼主要負責LCD的初始化并將FPGA采集得到的實時數據進行譯碼和顯示。編譯后生成的.hex文件經相應的格式轉換,生成FPGA的ROM資源可加載的.coe文件類型。
通過Xilinx提供的Core Generator工具,對IP核使用的DATA、XDATA和CODE三種存儲區進行初始化配置,存儲區的大小設置要以C語言程序所消耗的存儲資源以及FPGA內部Block Memory資源總的大小而定。本系統中所有存儲區的數據寬度均設置為8位,其中各存儲區對應的地址信號寬度為7位、11位和14位。將CODE區配置為只讀模式(Read Only),用于存放51內核的指令代碼,并載入已經生成的.coe文件。經綜合、翻譯、映射、布局布線和生成編程文件完成51內核的設計過程[3]。
在51內核中實現彩屏液晶的顯示控制和數據譯碼顯示,可以大大減小因彩屏初始化時序復雜和FPGA在人機交互界面設計中的不靈活性而帶來的難度[4]。同時,采用C代碼對液晶屏進行操作具有廣泛的通用性和可擴展性,當LCD的型號改變時,只需對初始化控制字稍作修改就可以實現顯示控制。
3.2 峰值檢波模塊
系統采用軟件編程的方法實現峰值檢波的功能。首先將掃頻區間等分,逐個測量等分點處的信號峰值并將計算出的增益存入FIFO中,當一次掃描結束后就能獲得系統的幅頻特性數據。
在對信號最值電壓進行測量之前,由于信號很容易受到干擾,所以不排除信號會發生抖動的可能。基于這個原因,在測量前采用簡易濾波對信號進行平滑處理,以減少最值測量的誤差。這里采用取均值的方法。對輸入信號依次取值、保存,形成一個新的信號,該信號電壓由原輸入信號的前兩個時鐘所得電壓和后兩個時鐘所得電壓之和取均值得到。對信號進行簡易平滑處理后,所產生的新信號作為最值測量的基準信號。信號整形后得到標準的方波信號,該信號的一個周期剛好對應輸入信號的兩個周期,其中高電平和低電平各對應一個周期。
信號電壓的峰峰值即為最大值減去最小值。但是,信號經過A/D轉換器量化以后,所得到的值為12位偏碼,擴展成為16位偏碼,“1111111111111111”表示電壓為2 V,“1000000000000000”表示電壓為0
V,“0000000000000000”表示電壓為-2 V。如果直接將最大值和最小值的偏碼相減,結果會出現錯誤。因此采用先將最小值(電壓負值)變為相應的電壓正值的方法,即:
其中B表示最小值,A表示相應的電壓正值,然后再將相應的電壓正值與最大值相加,即為信號電壓的峰峰值。
3.3 異步FIFO設計
A/D采集數據的數據率很高,本文中系統時鐘為40 MHz,采集數據寬度為12位,這樣每秒采集的數據量為40 M×12 bit/8=60 MB/s,如此高速的數據流遠遠超出了51內核的處理能力。為保證51內核讀取數據的有效性和可靠性,系統中使用異步FIFO對數據進行緩存。FIFO的設計是通過配置FPGA內部的Block RAM資源實現的[5,6]。為了實現邊采集邊顯示的目的,配置兩塊相同的FIFO,大小均為512×8 bit。在讀寫時鐘的控制下,通過讀使能和寫使能信號的設置,使得在同一時刻始終有一塊FIFO在進行寫操作,而另一塊FIFO將寫滿的數據讀出。對于同一塊FIFO不允許讀寫信號同時有效,這樣接收和讀取A/D數據并交給51內核處理可以同時進行,從而保證數據傳輸的連續性。
4 系統調試和測試
在完成了系統的硬件和軟件設計以后,需要進行調試和測試。在測試時,使用一階LC低通濾波網絡,從所得到的頻率特性曲線可以看出,系統主界面顯示穩定,顏色信息豐富。當切換到系統狀態設置或測試信息顯示界面時,可以對激勵信號的掃頻范圍、步進值、掃描時間等參數進行設置,同時還可以通過按鍵輸入頻點的方式查詢各頻點對應的增益,且具有較高的測試精度。
系統實現了在FPGA和51內核的平臺下進行便攜式幅頻特性測試儀的總體設計。對設計中的核心模塊進行調試,如51內核、TFT-LCD液晶、異步FIFO等。測試表明,系統工作穩定、測量精度高、實時性強,且硬件電路結構簡單。目前系統已經應用到某型變壓器繞組的幅頻特性測試中,并取得了良好的測試效果。本文打破了以時序仿真和功能驗證為目的的51內核研究,將51內核合理應用到電子系統設計實例中,并取得了成功,對于以后更加復雜的電子系統設計提供了參考和依據。
責任編輯:gt
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603425 -
芯片
+關注
關注
455文章
50817瀏覽量
423676 -
測試儀
+關注
關注
6文章
3736瀏覽量
54865
發布評論請先 登錄
相關推薦
評論