基于MC8051內(nèi)核的便攜幅頻特性測試儀設(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ù)信號均為標準的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所示。本文引用地址:http://butianyuan.cn/article/194868.htm
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è)計中使用20 MHz的時鐘,時鐘信號通過系統(tǒng)總時鐘分頻得到。設(shè)計中,首先在Keil編程環(huán)境中編譯C語言代碼,該代碼主要負責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ù)譯碼顯示,可以大大減小因彩屏初始化時序復雜和FPGA在人機交互界面設(shè)計中的不靈活性而帶來的難度[4]。同時,采用C代碼對液晶屏進行操作具有廣泛的通用性和可擴展性,當LCD的型號改變時,只需對初始化控制字稍作修改就可以實現(xiàn)顯示控制。
3.2 峰值檢波模塊
系統(tǒng)采用軟件編程的方法實現(xiàn)峰值檢波的功能。首先將掃頻區(qū)間等分,逐個測量等分點處的信號峰值并將計算出的增益存入FIFO中,當一次掃描結(jié)束后就能獲得系統(tǒng)的幅頻特性數(shù)據(jù)。
在對信號最值電壓進行測量之前,由于信號很容易受到干擾,所以不排除信號會發(fā)生抖動的可能?;谶@個原因,在測量前采用簡易濾波對信號進行平滑處理,以減少最值測量的誤差。這里采用取均值的方法。對輸入信號依次取值、保存,形成一個新的信號,該信號電壓由原輸入信號的前兩個時鐘所得電壓和后兩個時鐘所得電壓之和取均值得到。對信號進行簡易平滑處理后,所產(chǎn)生的新信號作為最值測量的基準信號。信號整形后得到標準的方波信號,該信號的一個周期剛好對應(yīng)輸入信號的兩個周期,其中高電平和低電平各對應(yīng)一個周期。
信號電壓的峰峰值即為最大值減去最小值。但是,信號經(jīng)過A/D轉(zhuǎn)換器量化以后,所得到的值為12位偏碼,擴展成為16位偏碼,“1111111111111111”表示電壓為2 V,“1000000000000000”表示電壓為0 V,“0000000000000000”表示電壓為-2 V。如果直接將最大值和最小值的偏碼相減,結(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)時鐘為40 MHz,采集數(shù)據(jù)寬度為12位,這樣每秒采集的數(shù)據(jù)量為40 M×12 bit/8=60 MB/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×8 bit。在讀寫時鐘的控制下,通過讀使能和寫使能信號的設(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)定,顏色信息豐富。當切換到系統(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è)計實例中,并取得了成功,對于以后更加復雜的電子系統(tǒng)設(shè)計提供了參考和依據(jù)。
參考文獻
[1] 徐慧,王金海,王巍.基于FPGA的8051 IP核的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2009,19(3):42-45.
[2] A-Si TFT LCD Single Chip Driver 240RGB×320 Resolution and 262K color Datasheet Preliminary[R],ILI TECHNOLOGY CORP.
[3] MC8051 IP Core Synthesizable VHDL Microcontroller IP-Core User Guide[R].http://oregano.at/services/8051.htm.
[4] 高恭嫻,胡國兵.基于SoPC的彩色液晶顯示控制器的設(shè)計[J].液晶與顯示,2010,25(1):79-84.
[5] 褚改霞,潘衛(wèi),王棟.基于FPGA的多路數(shù)字信號分接器的設(shè)計[J].電子技術(shù)應(yīng)用,2009,27(5):50-5.
[6] 唐清善,費瑋瑋.基于FPGA的高速異步FIFO的設(shè)計與實現(xiàn)[J].微計算機信息,2009(29).
評論