丁鑫 耿濤 郭娟 方佳朕 張曉鵬
摘 要:為了設(shè)計(jì)出基于FPGA的誤碼分析儀,選用以STC10F08XE單片機(jī)為主控制器、以EP1C3T144C8N芯片為誤碼檢測(cè)、USART GPU串口屏為顯示和控制以及EPCS和MAX232為下載程序,完成了整個(gè)硬件系統(tǒng)的設(shè)計(jì)。并在整個(gè)硬件系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)上,進(jìn)行了M序列的產(chǎn)生、數(shù)據(jù)同步實(shí)現(xiàn)、誤碼監(jiān)測(cè)統(tǒng)計(jì)以及液晶顯示控制等相關(guān)實(shí)驗(yàn)。結(jié)合硬件電路以及實(shí)現(xiàn)的功能設(shè)計(jì)了各個(gè)功能模塊的軟件流程圖,并結(jié)合流程圖編寫了各個(gè)模塊的實(shí)現(xiàn)程序,然后結(jié)合硬件完成了聯(lián)合調(diào)試,最終實(shí)現(xiàn)了系統(tǒng)的預(yù)期功能。
關(guān)鍵詞:誤碼分析儀;FPGA;M序列;STC10F08XE
中圖分類號(hào):TN911 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)07-00-04
0 引 言
在通信系統(tǒng)中,由于信號(hào)在傳輸過(guò)程中衰變引起信號(hào)電壓的變化,導(dǎo)致信號(hào)在傳輸過(guò)程中遭到破壞,產(chǎn)生誤碼。誤碼分析儀便是測(cè)試誤碼率的測(cè)試儀器,本文旨在通過(guò)誤碼分析儀模塊的設(shè)計(jì)來(lái)深入了解其原理及使用方法[1]。
1 總體方案設(shè)計(jì)
1.1 系統(tǒng)需求分析
系統(tǒng)使用FPGA和單片機(jī)共同控制的方式,使系統(tǒng)具有很高的集成度,并且方便擴(kuò)展和升級(jí)。經(jīng)過(guò)調(diào)研和討論分析,整個(gè)設(shè)計(jì)的基本功能包括如下幾部分[2]:
(1)八種測(cè)試速率可調(diào):1 K/10 K/100 K/500 K/1 M/2 M/5 M/10 M速率;
(2)三種測(cè)試碼型可選:9位、15位、23位偽隨機(jī)序列碼;
(3)誤碼率的統(tǒng)計(jì)和計(jì)算;
(4)誤碼的發(fā)送、接收、同步以及手動(dòng)插入誤碼的設(shè)計(jì);
(5)TFT-LCD彩屏顯示和觸摸按鍵的控制;
(6)單片機(jī)與TFT-LCD的通信設(shè)計(jì);
(7)誤碼測(cè)試儀的菜單顯示設(shè)計(jì);
(8)外部指示系統(tǒng)的設(shè)計(jì);
(9)時(shí)鐘鎖相環(huán)設(shè)計(jì)。
1.2 系統(tǒng)設(shè)計(jì)方案
誤碼分析儀系統(tǒng)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。選用FPGA芯片實(shí)現(xiàn)誤碼的測(cè)試,采用Verilog硬件描述語(yǔ)言通過(guò)EDA軟件設(shè)計(jì)外圍電路和必要的功能。采用單片機(jī)作為主控芯片,控制誤碼測(cè)試的啟動(dòng)、加誤碼、變速率、換碼型、TFT-LCD液晶顯示、觸摸按鍵等。
2 硬件電路設(shè)計(jì)
2.1 系統(tǒng)硬件結(jié)構(gòu)框架
整個(gè)系統(tǒng)設(shè)計(jì)中通過(guò)CPU訪問FPGA芯片與TFT-LCD通信,通過(guò)FPGA芯片實(shí)現(xiàn)碼型的產(chǎn)生與發(fā)送、碼型接收的同步、碼型的比較、速率的切換等邏輯功能;通過(guò)TFT-LCD實(shí)現(xiàn)誤碼率實(shí)時(shí)顯示以及通過(guò)其觸摸功能反饋控制整個(gè)系統(tǒng)的功能。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
2.2 電源電路設(shè)計(jì)
系統(tǒng)采用5 V供電,模塊內(nèi)部FPGA普通的IO口電源電壓需要3.3 V供電,而其PLL鎖相環(huán)所在的內(nèi)核LPM模塊需要1.5 V供電。因此需要設(shè)計(jì)電壓轉(zhuǎn)換電路。具體設(shè)計(jì)電路如圖2所示。
除此之外,設(shè)計(jì)中需要使用FPGA內(nèi)部的PLL,為了避免數(shù)字器件產(chǎn)生的噪聲影響倍頻效果,該模塊必須有單獨(dú)電源和濾波設(shè)計(jì)[3]。具體設(shè)計(jì)電路如圖3所示。
設(shè)計(jì)中,5 V電源經(jīng)AS1117-1.5芯片降壓至1.5 V,產(chǎn)生的1.5 V電源經(jīng)過(guò)一個(gè)由磁珠和鉭電容組成的退耦電路過(guò)濾后接入PLL電源[4]。
2.3 下載電路設(shè)計(jì)
RS-232電平與TTL電平轉(zhuǎn)換設(shè)計(jì)采用MAX232以進(jìn)行通信電平轉(zhuǎn)換。具體設(shè)計(jì)電路如圖4所示。
根據(jù)FPGA數(shù)據(jù)手冊(cè),設(shè)計(jì)的JTAG下載口電路如圖5所示。
標(biāo)準(zhǔn)的JTAG接口是4線TMS、TCK、TDI、TDO,分別為測(cè)試模式選擇、測(cè)試時(shí)鐘、測(cè)試數(shù)據(jù)輸入和測(cè)試數(shù)據(jù)輸出[5]。
AS模式下載電路設(shè)計(jì),參照數(shù)據(jù)手冊(cè)設(shè)計(jì)的相應(yīng)電路如圖6所示。
2.4 時(shí)鐘電路設(shè)計(jì)
單片機(jī)時(shí)鐘電路設(shè)計(jì)如圖7所示。FPGA時(shí)鐘電路整體設(shè)計(jì)如圖8所示。設(shè)計(jì)中選用的FPGA芯片有4路專用時(shí)鐘輸入端口,可作為4個(gè)LVDS時(shí)鐘信號(hào)輸入或4個(gè)LVTTL時(shí)鐘信號(hào)輸入[6]。
2.5 USART GPU 串口屏的電路設(shè)計(jì)
誤碼分析儀系統(tǒng)與用戶進(jìn)行交互時(shí),需要控制和顯示模塊,系統(tǒng)設(shè)計(jì)中采用單片機(jī)通過(guò)串口通信與USART GPU 串口屏進(jìn)行數(shù)據(jù)交流、通信,由于其內(nèi)部集成模塊,所以外部電路簡(jiǎn)單。具體設(shè)計(jì)電路如圖9所示。
3 軟件設(shè)計(jì)總體結(jié)構(gòu)
整個(gè)軟件系統(tǒng)主要由FPGA芯片內(nèi)部邏輯和單片機(jī)程序組成。具體結(jié)構(gòu)框圖如圖10所示。
3.1 軟件開發(fā)環(huán)境的建立
軟件開發(fā)環(huán)境主要由QuartusⅡ11.0、Keil C51、ModelSim構(gòu)成。
3.2 時(shí)鐘模塊的設(shè)計(jì)
本系統(tǒng)的時(shí)鐘模塊由PLL鎖相環(huán)和時(shí)鐘分頻模塊組成,該模塊的輸入輸出如圖11所示。
圖11中inclk0是外部時(shí)鐘輸入,c0是PLL鎖相環(huán)時(shí)鐘輸出,CLK是PLL時(shí)鐘20 MHz信號(hào)輸入,DIV[2..0]是分頻值輸入,而M_CLK、CLK1是兩路時(shí)鐘信號(hào)輸出,其中M_CLK是碼型發(fā)生速率,而CLK1是同步碼型發(fā)生模塊的碼型發(fā)生速率,與M_CLK變化趨勢(shì)相反。變化模式如圖12所示。
本設(shè)計(jì)使用時(shí)鐘分頻的設(shè)計(jì)思想實(shí)現(xiàn)速率可調(diào)功能。具體設(shè)計(jì)方法如下:分頻值由DIV[2..0]輸入,按分頻公式計(jì)算分頻數(shù)等于(DIV+1)*2,將PLL倍頻至20 MHz(由于本次設(shè)計(jì)僅僅需要10 MHz測(cè)試速率,所以無(wú)需倍頻也可以實(shí)現(xiàn),但為了后續(xù)功能增加,故保留PLL模塊)時(shí)鐘分頻至10 MHz、5 MHz、2 MHz、1 MHz、500 kHz、100 kHz、10kHz、1 kHz,由M_CLK和CLK1輸入系統(tǒng)。
3.3 PLL鎖相環(huán)模塊
PLL鎖相環(huán)將低速率穩(wěn)定的晶體振蕩器倍頻到更高頻的穩(wěn)定時(shí)鐘?;究驁D如圖13所示。
3.4 M序列碼的產(chǎn)生
本誤碼測(cè)試系統(tǒng)提供9位、15位、23位三種偽隨機(jī)序列作為測(cè)試碼型,以9位偽隨機(jī)序列發(fā)生器為例介紹M序列的產(chǎn)生方法。
9位偽隨機(jī)序列的特征方程為:F(X)=1+X5+X9,因此電路反饋線需要從第5級(jí)和第9級(jí)引出,通過(guò)模二加電路送到第1級(jí)輸入端。具體設(shè)計(jì)如圖14所示。
3.5 手動(dòng)誤碼插入設(shè)計(jì)
手動(dòng)插入誤碼即人為在發(fā)送的偽隨機(jī)序列中插入已知個(gè)數(shù)的誤碼信號(hào),然后在接收端接收信號(hào),檢測(cè)這些誤碼,最后將檢測(cè)結(jié)果和插入誤碼進(jìn)行比較,以此可以更加可靠地判斷系統(tǒng)的誤碼性能[7]。具體設(shè)計(jì)思路流程如圖15所示。
3.6 數(shù)據(jù)接收模塊設(shè)計(jì)
數(shù)據(jù)接收模塊的主要功能是將經(jīng)過(guò)信道傳輸?shù)膫坞S機(jī)序列碼進(jìn)行采樣提取。數(shù)據(jù)接收模塊設(shè)計(jì)圖如圖16所示。
3.7 數(shù)據(jù)同步模塊設(shè)計(jì)
本設(shè)計(jì)中的同步設(shè)計(jì)思路通過(guò)灌碼同步實(shí)現(xiàn),將接收數(shù)據(jù)隨機(jī)抽取R位送至接收碼組發(fā)生器的各個(gè)寄存器,此時(shí)接收端可以自身產(chǎn)生碼組與輸入碼組進(jìn)行比較,設(shè)定同步規(guī)則[8];除此之外,同步成功后需要設(shè)定失同步規(guī)則,本設(shè)計(jì)中采用的規(guī)則是:300個(gè)周期內(nèi)若出現(xiàn)10個(gè)以上誤碼則收發(fā)兩端失同步,若30 000個(gè)周期內(nèi)出現(xiàn)1 000個(gè)以上誤碼則收發(fā)兩端失同步,因此系統(tǒng)給出失同步信號(hào)[9],此時(shí)的測(cè)試數(shù)據(jù)不能體現(xiàn)系統(tǒng)性能,等待系統(tǒng)再次同步成功后進(jìn)行測(cè)試。同步模塊設(shè)計(jì)流程圖如圖17所示。
3.8 誤碼統(tǒng)計(jì)模塊設(shè)計(jì)
整個(gè)誤碼統(tǒng)計(jì)模塊的工作流程是:模塊在同步狀態(tài)中開始工作,通過(guò)R_en檢測(cè)是否失同,若R_en=1則失同步,誤碼數(shù)清零,若R_en=0時(shí)表示誤碼率在可接受范圍之內(nèi),繼續(xù)測(cè)試,有誤碼則誤碼數(shù)加1,當(dāng)測(cè)試超過(guò)30 000個(gè)測(cè)試周期時(shí)[10],整體誤碼數(shù)清零,一次測(cè)試結(jié)束。誤碼統(tǒng)計(jì)模塊流程圖如圖18所示。
3.9 USART GPU 串口屏
USART GPU 串口屏模塊包括UI界面設(shè)計(jì)模塊、觸摸按鍵設(shè)計(jì)模塊兩部分,主要實(shí)現(xiàn)測(cè)試數(shù)據(jù)的顯示和測(cè)試系統(tǒng)參數(shù)的控制。
3.10 單片機(jī)總控制模塊設(shè)計(jì)
單片機(jī)軟件模塊是整個(gè)軟件設(shè)計(jì)的中樞,它主要包括控制部分、顯示部分和處理部分三大模塊。具體設(shè)計(jì)流程圖如圖19所示。
4 系統(tǒng)調(diào)試與結(jié)果分析
4.1 硬件調(diào)試
硬件測(cè)試主要包括單片機(jī)能否正常運(yùn)行、FPGA能否正常運(yùn)行、單片機(jī)和串口屏能否通信、下載器能否實(shí)現(xiàn)切換、EPCS能否下載程序并且是否能時(shí)刻為FPGA下載程序。
4.2 軟件調(diào)試
軟件調(diào)試主要包括FPGA和單片機(jī)兩部分。FPGA調(diào)試首先是M序列的產(chǎn)生,接著是數(shù)據(jù)接收模塊,最后同步。單片機(jī)程序調(diào)試時(shí)分別調(diào)試各個(gè)功能,最后將各個(gè)功能集于一體進(jìn)行綜合調(diào)試,實(shí)現(xiàn)整體功能。
最后將FPGA和單片機(jī)聯(lián)調(diào),實(shí)現(xiàn)誤碼分析儀的整體系統(tǒng)功能。
4.3 模塊實(shí)體圖
該模塊的實(shí)體圖如圖20所示。
5 結(jié) 語(yǔ)
整個(gè)系統(tǒng)采用了軟硬結(jié)合的設(shè)計(jì)思想,實(shí)現(xiàn)了誤碼率的實(shí)時(shí)測(cè)量、誤碼報(bào)警、無(wú)信號(hào)報(bào)警、全一報(bào)警、手動(dòng)加誤碼等功能。
本誤碼測(cè)試系統(tǒng)是基于FPGA的在多個(gè)EDA軟件共同工作下完成的設(shè)計(jì)。在通信技術(shù)日益發(fā)展的今天,F(xiàn)PGA在通信研發(fā)行業(yè)中的應(yīng)用非常廣泛,在ASIC中的前端仿真、基帶通信的編碼解碼設(shè)計(jì)、數(shù)字圖像處理等都有應(yīng)用,本次設(shè)計(jì)實(shí)現(xiàn)了FPGA在通信中的一個(gè)應(yīng)用設(shè)計(jì),體現(xiàn)了FPGA設(shè)計(jì)方式的優(yōu)越性。
參考文獻(xiàn)
[1]官劍.基于FPGA的3G誤碼儀的設(shè)計(jì)與研究[D].武漢:華中科技大學(xué),2011.
[2] Y Fan,Z Zeljko,MW Chiang .A Versatile High Speed Bit Error Rate Testing Scheme[J]. IEEEXplore, 2004: 385-400.
[3]張義芳.高頻電子線路[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2009:223-243.
[4]童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006:358-397.
[5] Lattice_Maehxo Mini Development Kit Users Guide(Rev EB41_00.5)[Z]. Lattice Corp, 2009: 23-37.
[6]郭天祥.51單片機(jī)C語(yǔ)言教程:入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009:56-200.
[7] Gerd Vandersteen.Efficient Bit-Error-Rate Estimation of Multicarrier Transceivers[Z]. IEEE, 2011: 5-9.
[8] Barry, J.R,Chen-Chu Yeh.Adaptive minimum bit-error rate equalization for binary signaling[J].IEEE, 2010,48(7): 1226-1235.
[9]李新春.電信測(cè)試儀器原理及應(yīng)用[M].沈陽(yáng):東北大學(xué)出版社,2008:158-166.
[10] An Overview of LVDS Technology[Z].National Semiconductor Corporation, 1998: 11-15.