基于MC8051內(nèi)核的便攜幅頻特性測(cè)試儀設(shè)計(jì)
2.3 系統(tǒng)接口模塊
在該系統(tǒng)中,液晶模塊采用ILI9320片上系統(tǒng)(SoC)驅(qū)動(dòng)器[2],顏色顯示深度為18位,分辨率為240RGB×320像素。系統(tǒng)采用i80總線結(jié)構(gòu)控制液晶顯示,即通過(guò)讀使能(RDB)和寫(xiě)使能(WRB)兩條控制線進(jìn)行讀寫(xiě)操作,數(shù)據(jù)線的寬度為8位。液晶模塊中的控制信號(hào)和數(shù)據(jù)信號(hào)均為標(biāo)準(zhǔn)的TTL電平,可以直接與FPGA的I/O接口相連。
51內(nèi)核具有8位總線寬度,通過(guò)內(nèi)部端口映射的方式實(shí)現(xiàn)與FPGA模塊的接口連接。為了實(shí)現(xiàn)FPGA采集數(shù)據(jù)的實(shí)時(shí)傳輸和顯示,在接口設(shè)計(jì)中除了數(shù)據(jù)總線(data)以外,還需要地址總線(addr)和控制總線(w/r_en),按照程序設(shè)定的通信協(xié)議與FIFO中緩存的數(shù)據(jù)通信,實(shí)現(xiàn)數(shù)據(jù)傳輸和譯碼顯示。系統(tǒng)接口模塊的連接方式如圖3所示。本文引用地址:http://www.ex-cimer.com/article/194868.htm
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要完成對(duì)正弦查找表IP核的初始化、峰值檢波程序的設(shè)計(jì)、異步FIFO設(shè)計(jì)、FPGA與異步FIFO的通信協(xié)議設(shè)計(jì)以及同步顯示等問(wèn)題。軟件設(shè)計(jì)總體框圖如圖4所示。
3.1 51內(nèi)核的初始化配置
51內(nèi)核采用完全同步的設(shè)計(jì)方案,在統(tǒng)一的時(shí)鐘信號(hào)下控制每一個(gè)存儲(chǔ)單元的讀寫(xiě)操作。根據(jù)51內(nèi)核處理速度的要求,在設(shè)計(jì)中使用20 MHz的時(shí)鐘,時(shí)鐘信號(hào)通過(guò)系統(tǒng)總時(shí)鐘分頻得到。設(shè)計(jì)中,首先在Keil編程環(huán)境中編譯C語(yǔ)言代碼,該代碼主要負(fù)責(zé)LCD的初始化并將FPGA采集得到的實(shí)時(shí)數(shù)據(jù)進(jìn)行譯碼和顯示。編譯后生成的.hex文件經(jīng)相應(yīng)的格式轉(zhuǎn)換,生成FPGA的ROM資源可加載的.coe文件類型。
通過(guò)Xilinx提供的Core Generator工具,對(duì)IP核使用的DATA、XDATA和CODE三種存儲(chǔ)區(qū)進(jìn)行初始化配置,存儲(chǔ)區(qū)的大小設(shè)置要以C語(yǔ)言程序所消耗的存儲(chǔ)資源以及FPGA內(nèi)部Block Memory資源總的大小而定。本系統(tǒng)中所有存儲(chǔ)區(qū)的數(shù)據(jù)寬度均設(shè)置為8位,其中各存儲(chǔ)區(qū)對(duì)應(yīng)的地址信號(hào)寬度為7位、11位和14位。將CODE區(qū)配置為只讀模式(Read Only),用于存放51內(nèi)核的指令代碼,并載入已經(jīng)生成的.coe文件。經(jīng)綜合、翻譯、映射、布局布線和生成編程文件完成51內(nèi)核的設(shè)計(jì)過(guò)程[3]。
在51內(nèi)核中實(shí)現(xiàn)彩屏液晶的顯示控制和數(shù)據(jù)譯碼顯示,可以大大減小因彩屏初始化時(shí)序復(fù)雜和FPGA在人機(jī)交互界面設(shè)計(jì)中的不靈活性而帶來(lái)的難度[4]。同時(shí),采用C代碼對(duì)液晶屏進(jìn)行操作具有廣泛的通用性和可擴(kuò)展性,當(dāng)LCD的型號(hào)改變時(shí),只需對(duì)初始化控制字稍作修改就可以實(shí)現(xiàn)顯示控制。
3.2 峰值檢波模塊
系統(tǒng)采用軟件編程的方法實(shí)現(xiàn)峰值檢波的功能。首先將掃頻區(qū)間等分,逐個(gè)測(cè)量等分點(diǎn)處的信號(hào)峰值并將計(jì)算出的增益存入FIFO中,當(dāng)一次掃描結(jié)束后就能獲得系統(tǒng)的幅頻特性數(shù)據(jù)。
在對(duì)信號(hào)最值電壓進(jìn)行測(cè)量之前,由于信號(hào)很容易受到干擾,所以不排除信號(hào)會(huì)發(fā)生抖動(dòng)的可能。基于這個(gè)原因,在測(cè)量前采用簡(jiǎn)易濾波對(duì)信號(hào)進(jìn)行平滑處理,以減少最值測(cè)量的誤差。這里采用取均值的方法。對(duì)輸入信號(hào)依次取值、保存,形成一個(gè)新的信號(hào),該信號(hào)電壓由原輸入信號(hào)的前兩個(gè)時(shí)鐘所得電壓和后兩個(gè)時(shí)鐘所得電壓之和取均值得到。對(duì)信號(hào)進(jìn)行簡(jiǎn)易平滑處理后,所產(chǎn)生的新信號(hào)作為最值測(cè)量的基準(zhǔn)信號(hào)。信號(hào)整形后得到標(biāo)準(zhǔn)的方波信號(hào),該信號(hào)的一個(gè)周期剛好對(duì)應(yīng)輸入信號(hào)的兩個(gè)周期,其中高電平和低電平各對(duì)應(yīng)一個(gè)周期。
信號(hào)電壓的峰峰值即為最大值減去最小值。但是,信號(hào)經(jīng)過(guò)A/D轉(zhuǎn)換器量化以后,所得到的值為12位偏碼,擴(kuò)展成為16位偏碼,“1111111111111111”表示電壓為2 V,“1000000000000000”表示電壓為0 V,“0000000000000000”表示電壓為-2 V。如果直接將最大值和最小值的偏碼相減,結(jié)果會(huì)出現(xiàn)錯(cuò)誤。因此采用先將最小值(電壓負(fù)值)變?yōu)橄鄳?yīng)的電壓正值的方法,即:
其中B表示最小值,A表示相應(yīng)的電壓正值,然后再將相應(yīng)的電壓正值與最大值相加,即為信號(hào)電壓的峰峰值。
3.3 異步FIFO設(shè)計(jì)
A/D采集數(shù)據(jù)的數(shù)據(jù)率很高,本文中系統(tǒng)時(shí)鐘為40 MHz,采集數(shù)據(jù)寬度為12位,這樣每秒采集的數(shù)據(jù)量為40 M×12 bit/8=60 MB/s,如此高速的數(shù)據(jù)流遠(yuǎn)遠(yuǎn)超出了51內(nèi)核的處理能力。為保證51內(nèi)核讀取數(shù)據(jù)的有效性和可靠性,系統(tǒng)中使用異步FIFO對(duì)數(shù)據(jù)進(jìn)行緩存。FIFO的設(shè)計(jì)是通過(guò)配置FPGA內(nèi)部的Block RAM資源實(shí)現(xiàn)的[5,6]。為了實(shí)現(xiàn)邊采集邊顯示的目的,配置兩塊相同的FIFO,大小均為512×8 bit。在讀寫(xiě)時(shí)鐘的控制下,通過(guò)讀使能和寫(xiě)使能信號(hào)的設(shè)置,使得在同一時(shí)刻始終有一塊FIFO在進(jìn)行寫(xiě)操作,而另一塊FIFO將寫(xiě)滿的數(shù)據(jù)讀出。對(duì)于同一塊FIFO不允許讀寫(xiě)信號(hào)同時(shí)有效,這樣接收和讀取A/D數(shù)據(jù)并交給51內(nèi)核處理可以同時(shí)進(jìn)行,從而保證數(shù)據(jù)傳輸?shù)倪B續(xù)性。
4 系統(tǒng)調(diào)試和測(cè)試
在完成了系統(tǒng)的硬件和軟件設(shè)計(jì)以后,需要進(jìn)行調(diào)試和測(cè)試。在測(cè)試時(shí),使用一階LC低通濾波網(wǎng)絡(luò),從所得到的頻率特性曲線可以看出,系統(tǒng)主界面顯示穩(wěn)定,顏色信息豐富。當(dāng)切換到系統(tǒng)狀態(tài)設(shè)置或測(cè)試信息顯示界面時(shí),可以對(duì)激勵(lì)信號(hào)的掃頻范圍、步進(jìn)值、掃描時(shí)間等參數(shù)進(jìn)行設(shè)置,同時(shí)還可以通過(guò)按鍵輸入頻點(diǎn)的方式查詢各頻點(diǎn)對(duì)應(yīng)的增益,且具有較高的測(cè)試精度。
系統(tǒng)實(shí)現(xiàn)了在FPGA和51內(nèi)核的平臺(tái)下進(jìn)行便攜式幅頻特性測(cè)試儀的總體設(shè)計(jì)。對(duì)設(shè)計(jì)中的核心模塊進(jìn)行調(diào)試,如51內(nèi)核、TFT-LCD液晶、異步FIFO等。測(cè)試表明,系統(tǒng)工作穩(wěn)定、測(cè)量精度高、實(shí)時(shí)性強(qiáng),且硬件電路結(jié)構(gòu)簡(jiǎn)單。目前系統(tǒng)已經(jīng)應(yīng)用到某型變壓器繞組的幅頻特性測(cè)試中,并取得了良好的測(cè)試效果。本文打破了以時(shí)序仿真和功能驗(yàn)證為目的的51內(nèi)核研究,將51內(nèi)核合理應(yīng)用到電子系統(tǒng)設(shè)計(jì)實(shí)例中,并取得了成功,對(duì)于以后更加復(fù)雜的電子系統(tǒng)設(shè)計(jì)提供了參考和依據(jù)。
參考文獻(xiàn)
[1] 徐慧,王金海,王巍.基于FPGA的8051 IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(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] 高恭嫻,胡國(guó)兵.基于SoPC的彩色液晶顯示控制器的設(shè)計(jì)[J].液晶與顯示,2010,25(1):79-84.
[5] 褚改霞,潘衛(wèi),王棟.基于FPGA的多路數(shù)字信號(hào)分接器的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009,27(5):50-5.
[6] 唐清善,費(fèi)瑋瑋.基于FPGA的高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009(29).
評(píng)論