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