盧 超,朱繼瑜,郝鵬程,張成杰
(1.陜西理工學院物理與電信工程學院,陜西漢中723000;2.陜西省漢中中學,陜西漢中723000)
系統采用Altera cycloneⅡ EPLC8Q208C8生成兩組序列信號,m序列信號通過傳輸信道,然后在加上噪聲信號偽隨機序列信號在終端通過示波器觀察信號的眼圖,通過切換不同比特率和不同傳輸環境下的序列信號來觀察發現信道的優劣以及不同比特率下的傳輸對信號的影響,以實現對數字信號分析的目的,實現數據傳輸速率在一定范圍內且檢測信號信噪比可調的簡易便攜數字傳輸性能分析儀。系統框圖如圖1所示,該設備的主要計數指標是:數字信號由M_list為f1(x)=1+x2+x3+x4+x8的m序列,信號率為在10 kbit/s~100 kbit/s內可按10 kbit/s步進可調;偽隨機信號Noise_list為f2(x)=1+x+x4+x5+x12的噪聲序列;數據率為10 Mbit/s,誤差絕對值不大于1%;誤差絕對值不大于10%,Manchester_cod是對M_list信號的曼切斯特編碼后的輸出信號,目的在于更加便于提取出位同步信號。

圖1 系統功能框圖
系統主要包括NiosⅡCPU、SDRAM控制器、和PIO接口,通過調用Altera公司提供對應的IP進行定制設計一個基于NiosⅡ的SOPC系統,由四部分組成:NiosⅡ模塊塊、PLL模和序列信號發生器模塊。
NiosⅡ軟核通過SOPC Builder中調用IP庫組建實現,由NiosⅡ CPU、SDRAM控制器、通用IO、EPCS控制器、system ID、JTAG UART,與外部鏈接的端口主要5個部分,分別是系統時鐘與復位、TFT LCD控制信號線、觸摸屏控制信號線、SDRAM接口控制線、序列信號發生器控制信號線等,構成了整個系統的軟件底層硬件平臺部分,系統時鐘100 MHz。
設計中考慮到片上RAM存儲的數據量較大而NiosⅡCPU只負責UART串口的數據傳輸可簡單的接口控制,故而選用了經濟型內核,已達到節省資源占用的目的。SDRAM控制器用來連接板上集成的64MByte SDRAM,SDRAM控制器的數據端dq[15…0]必須連接輸入輸出端口bidir,在Presets中選擇第一項Custom,在Bits中選擇16,其他項不動,點擊Next,點擊Finish,完成SDRAM控刢器的設置。I/O口用于TFT LCD觸摸屏的控制以及相關信號線,還包括信號的輸出、SDRAM的控制信號線等。設計采用EPCS16配置芯片,為16Mbyte用于存儲配置文件和片上系統的程序.System ID是一種標示符,類似校驗,在下載程序之前或者重啟之后,都會對其進行檢驗,以防止Quartus和NIOS程序版本不一致的錯誤發生。JTAG UART是實現PC和NiosⅡ系統間的串行通信接口,它用于字符的輸入輸出。PLL模塊通過調用QuartusII內嵌的器件函數實現。
2.2.1 m序列
m序列,即最長線性反饋移位寄存器序列,其特征多項式可表示為:

輸出為f1(x)=1+x2+x3+x4+x8的m序列,利用在MATLAB中利用DSPBuilder構建一個m序列發生器,圖2顯示了DSP Builder模型表述,采用相連的延時單元組作為移位寄存器,在開始處使用兩個非門,防止出使狀態為 0,無法自啟動,用異或(XOR)完成模四加運算,輸出為mout。

圖2 m序列發生器DSPBuilder設計電路
2.2.2 曼切斯特編碼
曼徹斯特編碼是一個同步時鐘編碼技術,提供一個簡單的方式給編碼簡單的二進制序列而沒有長的周期沒有轉換級別,因而防止時鐘同步的丟失,或來自低頻率位移在貧乏補償的模擬鏈接位錯誤。系統要求對數字信號發生器的m序列進行曼徹斯特編碼,故將m序列碼與其時鐘信號取異或(XOR)非(NOT)即可,在Quartus II中使用原理圖編程如圖3所示。

圖3 曼徹斯特編碼電路
2.2.3 噪聲信號發生器
圖4為偽隨機序列f2(x)=1+x+x4+x5+x12的DSP Builder模型表述,采用相連的延時單元組作為移位寄存器,用異或(XOR)完成模四加運算,輸出為mout。

圖4 偽隨機序列發生器DSP Builder設計電路
2.2.4 分頻模塊
分頻模塊是由Verilog HDL直接編程實現,將其轉換成圖像符號,加入到頂層圖中,用于滿足序列模塊的不同時鐘,從而實現系統的不同比特率的輸出。設計要求系統序列輸出比特率能夠滿足10 kbit/s~100 kbit/s步進可調,步進量為10 kbit/s,因此分頻模塊負責將經過倍頻后的180 MHz的時鐘信號clk_180進過分頻至10 kbit/s~100 kbit/s,提供給序列信號時鐘。CLOCK為20 MHz的本地時鐘,經過二分頻后輸出10 MHz給噪聲信號發生器,輸出10 Mbit/s的噪聲信號,rest為分頻模塊的復位信號。
片上系統的軟件設計在NiosⅡ IDE中通過C語言編程實現,程序通過中斷方式在判斷是否觸摸位置為有效區,從而來進行波特率的切換及碼元的切換,此外包括TFT LCD的顯示等,主程序流程圖如圖5所示。

圖5 主程序流程圖
在觸摸屏程序設計時,通過端口掃描是否有觸摸,當有觸摸時先判斷是那個區域有觸發,如果是碼元切換區域則進行碼元的切換;如果是波特率的步進設置則進行波特率的加減設置。詳細觸摸屏程序流程圖如圖6所示。觸摸屏的設計與鍵盤的區別就在于需要精確的判斷觸摸的位置,在觸摸時電阻屏將所觸摸的位置轉化成電壓信息因此根據不同的電壓信號來判斷位置。程序通過掃描的方式來判斷是否有觸摸,當檢查到有觸摸時進入觸摸屏處理子程序,為了防止誤觸,因此在設計時先進行軟件濾波。

圖6 觸摸屏子程序流程圖
系統的界面設計主要涉及到中英文顯示、背景顏色的顯示、字體大小顏色等等。由于TFT LCD內部不帶字庫,因此在進行軟件設計時需要通過字模軟件對需要顯示的字進行編碼建模。字符的編碼建模包括ASCII字符編碼和漢字編碼兩個部分。在程序開始時先初始化界面,當觸摸屏有觸發時,返回來的參數值FLAG,先判斷FLAG的值,為0則切換顯示當前碼元的類型,為1則切換顯示波特率的值。
2.4.1 FPGA與SDRAM接口設計
設計采用的是Altera公司提供的片上SDRAM控制接口IP,因此不用單獨設計接口時序,將調用的IP模塊的接口連接至片外SDRAM接口,主要包括 sdram_addr[11:0]、bank_addr[1:0]、cas_n、cke、cs_n、dq、dqm、ras_n、we_n 等接口控制線。SDRAM的時鐘信號CLK采用FPGA的內部PLL生成,要注意片外SDRAM的時鐘輸入必須比系統的時鐘滯后-75°相位。(不同型號的SDRAM時鐘偏移度不同)
2.4.2 FPGA下載配置電路設計
配置又稱下載,是對FPGA的內容進行編程的一個過程。每次上電后需要進行配置,是基于SRAM工藝FPGA的一個特點。在FPGA內部,有許多可編程的多路器、邏輯、互聯節點和RAM初始化內容等,都需要配置數據來控制。Altera的FPGA器件有3類配置下載方式:主動配置方式(AS)和被動配置方式(PS)和最常用的(JTAG)配置方式,本系統的配置電路中設計了兩種配置方式即AS配置和JTAG配置模式,AS配置在系統掉電時可將配置數據保存在EPCS16的配置芯片中,配置文件為.pof文件;JTAG配置是為了便于系統的調試而專門設置的,掉電不保存,配置文件為.sof文件,圖7為EPCS16配置芯片與FPGA的兩種配置方式的電路圖。
設計采用320*240的TFT LCD顯示屏觸摸屏為電阻式觸摸屏,控制芯片分別為sd12900和XPT2046。由于采用的是片上系統,FPGA與TFT和觸摸屏模塊接口電路由片上系統生成的I/O口直接與TFT和觸摸屏控制接口連接,對其進行控制操作。為了滿足電平兼容,TFT觸摸屏模塊采用3.3V供電電壓,電源取自于FPGA核心板電源,保證了系統的電源完整性與穩定性。其中TFT控制信號LCD_CS、LCD_DATA、LCD_LIGHT、LCD_RD、LCD_REST、LCD_RS、LCD_ER 分別為片選信號、數據、背光、讀信號、復位、讀控制和寫控制,觸摸屏控制信號 TS_CS、TS_IN、TS_IRQ、TS_OUT、TS_SCLK分別為片選、輸入、中斷、輸出、時鐘信號。

圖7 FPGA配置接口電路
開發工具主要是Altera公司提供的QuartusII9.0、DSPBuilder9.0、NIOS IDE9.0 和 Mentor公司的仿真工具ModelSim6.4a,編程語言包括VerilogHDL、C語言、MATLAB編輯語言,VerilogHDL語言主要是在Quartus II中完成相關模塊的建立,C語言是在NiosⅡIDE平臺里完成TFT觸摸屏的控制顯示與讀寫,MATLAB編輯語言主要指在集成于MATLAB中的DSP Builder的模型工具完成序列的建立與HDL的導出。系統測試中,主要是在實驗室里通過建立不同的傳輸信道將系統生成的不同比特率的序列碼加在進去,在輸出端連接至示波器觀察其傳輸信號的眼圖,評測其誤碼率與信道的優劣,測試主要包括以下五個部分:
(1)測試數字信號序列f1(x)=1+x2+x3+x4+x8的m序列的比特率是否正確,10 kbit/s~100 kbit/s之間連續步進為10 kbit/s;
(2)測試數字信號序列f2(x)=1+x+x4+x5+x12的m序列數據率為10 Mbit/s,誤差絕對值不大于1%,誤差絕對值不大于10%;
(3)利用f1(x)=1+x2+x3+x4+x8產生的時鐘信號,在示波器上顯示數字信號該信號的信號眼圖,并測試眼幅度;
(4)測試f1(x)=1+x2+x3+x4+x8序列采用曼徹斯特編碼后的波形;
(5)模擬一個傳輸信道將f2(x)=1+x+x4+x5+x12序列與f1(x)=1+x2+x3+x4+x8同時添加在該信道中進行傳輸,在終端觀察眼圖分析噪聲對信號質量的影響。
按照測試步驟連接至示波器(UTD2062CEL,60 MHz 1 GS/s)測試各項數據波形如圖8所示,包括m序列發生器、曼切斯特編碼、噪聲序列發生器的示波器顯示波形。

圖8 各項數據波形的顯示
加載噪聲信號的眼圖如圖9(a)所示,無噪聲信號的眼圖如圖9(b)所示,測試條件均為:200 kHz低通濾波器、10 kpbs m序列曼徹斯特編碼。噪聲信號3.56 V,顯示的眼圖幅度4.2 V。在原有噪聲的基礎上,慢慢增大噪聲信號的幅值,隨著信噪比的降低,還能提取同步信號,并正確的顯示開始慢慢閉合的眼圖。
經過測試數字信號發生器的波特率能夠達到10 K到100 K步進可調的方波信號,偽隨機信號發生器輸出了10 MHz的方波信號,m序列數據率的測試如表1所示,可以計算出數據率平均誤差為0.157 6%。在fH=200 kHz,偽隨機信號 100 mV,輸出的TTL=4.46VP-P時,測得眼圖幅度為表2所示,均達到系統要求的指標。

圖9 各種信號眼圖的顯示

表1 m序列數據率的測試表格

表2 眼圖幅度
存在誤差的原因主要是認為誤差、硬件誤差、測量儀器誤差等,此外在測試為隨機信號的時鐘時發現其時鐘信號有信號的反射現象,進過分析發現如果IC之間的互連線比較長,線的特性阻抗又不均勻,或者終端沒有匹配,會引起反射,如果始端也不匹配,則會來回反射而造成振鈴。該現象的決定因素:特性阻抗、匹配方式、失配大小終端反射系數、始端反射系數、線長,分析原因是因為電路板是手工焊接的,信號完整性不是太好,同時也由于傳輸阻抗不匹配,因此通過在時鐘信號線的終端和源端分別串接一個33 Ω的電阻發現這種振鈴現象得到了很大的抑制。
設計的數字信號傳輸性能分析儀采用Altera公司的Cyclone II系列的FPGA芯片EP2C8Q208C8,實現了波特率步進為10 kbit/s的m序列發生器與曼徹斯特編碼,并通過測量眼圖的幅度來分析不同信道環境對信號傳輸的信號完整性及碼間串擾的影響,該分析儀采用TFT觸摸屏,操作方便,人機交互性好,可廣泛推廣。
[1]孫盼,姚佳毅,林閱斌.基于FPGA的數字信號傳輸性能分析儀[J].電子科技,2012(8):32-34.
[2]張驍,宋杰,丁昊.基于FPGA的簡易數字信號傳輸性能分析儀[J].電子測量技術,2012(8):78-81
[3]張芳芳,周火鳳,宋麗輝,等.基于DSP和USB的數據采集系統的設計[J].儀表技術與傳感器,2010(7):66-68
[4]鄧岳平,肖鐵軍.基于FPGA的并行DDS信號發生器的設計與實現[J].計算機工程與設計,2011(7):2319-2323
[5]褚改霞,潘衛,王棟,等.基于FPGA的多路數字信號復分接器的設計[J].電子技術應用,2009(5):43-46.
[6]李娜,王克甫,呂潔.基于FPGA的數字信號源設計[J].吉林師范大學學報(自然科學版),2006(1):27-28+40.
[7]盛祥佐,徐釗,羅文超.基于FPGA的數字信號發生器及其在QPSK調制中的應用[J].工礦自動化,2007(4):69-72.
[8]李永杰,凌朝東.數字信號處理的FPGA實現[J].電子技術應用,2008(7):19-21.
[9]劉文,馮燕,王巍.基于PCI的DSP+FPGA數字信號處理平臺[J].科學技術與工程,2008(9):2348-2351,2355.
[10]袁俊泉,皇甫堪.基于DSP與FPGA的實時數字信號處理系統設計[J].系統工程與電子技術,2004(11):1561-1563.