翁 玲,陳長江,徐 行,李卓林,彭 睿
(河北工業(yè)大學 電氣工程學院,天津 300130)
m 序列是最長線性反饋移位寄存器序列的簡稱,是由帶線性反饋的移位寄存器產(chǎn)生的[1]。移位寄存器設定初始狀態(tài)后,在時鐘觸發(fā)下,每次移位后各級寄存器會發(fā)生變化,其中任何一級寄存器的輸出,隨著時鐘節(jié)拍的推移都會產(chǎn)生一個序列,該序列稱為移位寄存器序列。m 序列可廣泛應用于密碼學、導航、通信、地質勘探等多個領域[2]。
學生在學習數(shù)字電子技術、數(shù)字邏輯電路、EDA等課程時經(jīng)常會遇到帶反饋的移位寄存器與硬件描述語言難以理解的問題。如何設計帶反饋的移位寄存器、m 序列、Modelsim 仿真和實際應用結合在一起的綜合實驗是相關課程的重要內容。
文獻[3]采用555 定時器、D 觸發(fā)器、邏輯門、變換電路產(chǎn)生m 序列,不需復雜的編程和程序下載,但硬件電路較為復雜。文獻[4]介紹了2 種m 序列的實現(xiàn)算法,并且都能產(chǎn)生性能良好的m 序列,但是其中一種實現(xiàn)起來過程比較繁瑣,另一種必須利用配套的編程軟件和芯片,限制比較多,不利于推廣使用。文獻[5]對m 序列進行了詳細的軟件仿真介紹,但是缺乏硬件方面的研究。文獻[6]所設計的高速偽隨機序列發(fā)生器結構簡單、成本低,能夠生成m 序列、伯努利序列等多種選擇,但是無法生成任意頻率的序列。文獻[7]采用C 語言編程來產(chǎn)生m 序列,這種算法實現(xiàn)速度相對來說較慢,并且會浪費很多時鐘周期。
本文利用FPGA(現(xiàn)場可編門陣列)生成m 序列,并利用生成的m 序列經(jīng)過IGBT 驅動,與光耦隔離電路、電源電路等組成擴頻編碼探地發(fā)射儀。將m 序列生成、Modelsim 仿真和具體應用結合起來,可加強學生對線性移位寄存器、FPGA 數(shù)字邏輯電路設計的充分理解,培養(yǎng)學生運用綜合知識的能力。
反饋移位寄存器,特別是線性反饋移位寄存器,是實現(xiàn)偽隨機序列的基本器件。當反饋函數(shù)為線性函數(shù)時,相應的反饋移位寄存器被稱為線性反饋移位寄存器[8]。n 階線性帶反饋移位寄存器組成圖如圖1 所示。
圖1 n 階線性帶反饋移位寄存器組成圖
圖1 中ci表示反饋線的2 種可能連接方式,ci=1表示連線接通,第n-i 級輸出加入反饋中;ci=0 表示連線斷開,第n-i 級輸出未參加反饋。因此,一般形式的線性反饋邏輯表達式為
將等式左邊的an移至右邊,并將 an(c0= 1)代入上式,則上式可以寫成:
其中x 的冪次表示元素的相應位置。該式為線性反饋移位寄存器的特征多項式,特征多項式與輸出序列的周期有密切關系。當F(x)滿足下列3 個條件時,就一定能產(chǎn)生m 序列:
(1)F(x)是不可約的,即不能再分解多項式;
(2)F(x)可整除xp+1 ,p 為周期,p= 2n+1;
(3)F(x)除不盡xq+1 ,q < p。
滿足上述條件的多項式稱為本原多項式,這樣產(chǎn)生m 序列的充要條件就變成了如何尋找本原多項式。表1 中列出了部分m 序列的反饋系數(shù)。
根據(jù)表1 中的八進制反饋系數(shù),可以確定m 序列發(fā)生器的結構。以7 級m 序列反饋系數(shù)Ci=(211)8為例,首先將八進制的系數(shù)轉化為二進制的系數(shù)即Ci=(10001001)2,由此可以得到各級反饋系數(shù)分別為:C0=1,C1=0,C2=0,C3=0,C4=1,C5=0,C6=0,C7=1,由此就很容易地構造出相應的m 序列發(fā)生器[9]。根據(jù)反饋系數(shù),其他級數(shù)的m序列的構造原理與上述方法相同。
表1 部分m 序列的反饋系數(shù)表
FPGA 作為一種可編程邏輯芯片,其結構和開發(fā)方式都跟傳統(tǒng)的MCU 和DSP 有一定區(qū)別。MCU 和DSP 的設計主要是進行軟件程序的設計,用戶使用C語言完成各種算法和控制的實現(xiàn),各種功能在CPU 的控制下按照順序依次執(zhí)行。而FPGA 的設計,實質是電路設計,是在一個可現(xiàn)場編程的通用邏輯器件里去搭建各種具有一定功能的邏輯電路[10],各個邏輯電路間是各自獨立的,能夠并行執(zhí)行。同時,各個功能的電路之間又通過一定的控制和握手信號相互協(xié)調。本次設計中使用的是Intel Cyclone IV E FPGA 芯片,使用硬件描述語言 VHDL 和電子設計自動化工具Quartus II,設計和實現(xiàn)了上述方案中提出的m 序列發(fā)生器,即通過外設配置移位寄存器的初始值的方式來改變產(chǎn)生的m 序列[11]。所設計系統(tǒng)的主要硬件框圖如圖2 所示。
圖2 m 序列發(fā)生器主要硬件框圖
輸入時鐘頻率需要進行分別設置。這里使用了計數(shù)器分頻的模式,在一般情況下,偶分頻屬于普遍的分頻用法,程序簡單易懂,但是如果系統(tǒng)時鐘固定,就不能得到任意想要的頻率。因此引入了奇分頻的分頻方法,奇分頻相較于偶分頻,程序設計更為復雜,考慮的變量也相應增加。具體設計流程如圖3 所示。
經(jīng)過系統(tǒng)的軟件分頻后,會獲得所需要的時鐘頻率,其頻率值由計數(shù)值的大小來決定[12]。本設計采用了1 000 分頻,經(jīng)過分頻后的時鐘信號驅動線性移位寄存器。移位寄存器經(jīng)過反饋后就會生成所需的m 序列。FPGA 中生成的移位寄存器結構圖如圖4 所示。根據(jù)需要調節(jié)反饋的位置,從而得到不同周期的m 序列。最后將生成的單路m 序列設置為互補信號生成模塊的輸入端,進而得到4 路互補信號。
圖3 時鐘調整模塊工作流程圖
圖4 m 序列發(fā)生器結構圖
Mentor 公司的ModelSim 是業(yè)界最優(yōu)秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境以及完善的高性能的驗證功能[13]。使用ModelSim 對上述設計中的m 序列發(fā)生器進行仿真結果如圖5 所示。圖5 中KUOPIN 信號為單路m 序列,dout 信號為4 路互補的m 序列??梢钥闯鰉 序列為一系列占空比不等的方波構成。
圖5 m 序列仿真波形圖
基于m 序列發(fā)生器設計了一套基于擴頻編碼的探底發(fā)射儀,結構原理如圖6 所示?;驹恚豪肍PGA 產(chǎn)生m 序列發(fā)生器,以此m 序列為基礎,通過IGBT 逆變使m 序列增幅。增幅后的m 序列穿透能力大大增加,能夠確保在大范圍之內收到地質信息,減少野外環(huán)境帶來的干擾,達到實際應用時的功率等級。在實際探測中,利用m 序列的相關特性還可以濾除掉大部分的由電力設施帶來的干擾信號[14]。
圖6 探地發(fā)射儀結構原理圖
探底發(fā)射儀主要包括FPGA 信號發(fā)生電路、光耦隔離電路、IGBT 逆變橋和驅動電路、電源電路等。光耦隔離電路將高壓信號與FPGA 信號進行光隔離以保護FPGA 芯片,防止芯片被信號電平轉換期間產(chǎn)生的沖激損壞。IGBT 驅動電路則是直接驅動IGBT 逆變橋的驅動板,能夠將輸入信號轉化為可靠的驅動電平,并且能夠再次進行電隔離。電源電路以LM5118 為基礎的開關電源,使得供電系統(tǒng)能夠在野外環(huán)境中更可靠工作。
由于FPGA 輸出的信號幅值為3.3 V,而且如果和驅動板直接相連可能會導致FPGA 在IGBT 轉換期間被沖激電流擊穿燒毀,所以引入了光耦隔離電路對低幅值信號與IGBT 驅動板輸入信號進行光隔離,其電路原理如圖7 所示。
圖7 光耦隔離驅動電路原理圖
在圖7 中,引腳“4”與“1”為空置引腳,“2”引腳為信號輸入端,“3”引腳為信號地端?!?”與“5”引腳為輸出的供電端,引腳“6”“7”短接后,作為信號輸出端??梢钥闯鲚斎肱c輸出沒有共地,這樣也減少了輸出端對輸入端的直接影響,非常有利于對FPGA 核心芯片的保護。
IGBT 驅動電路是驅動IGBT 的直接單元,它的電氣參數(shù)直接影響著輸入模塊的安全性和輸出信號的正確性[15]。本文采用了技術較為成熟的4 路隔離式驅動板,其原理框圖如圖8 所示。
圖8 中為n 單元驅動板,每路最高輸出6 A 電流,可驅動300 A/1 700 V 以下的IGBT,其中n=2,4,6,7。該驅動板的每一路都有相應的保護電路,保護報警電路與其他部分進行了電隔離。其中每2 個單元自帶一個獨立的DC/DC 輔助電源,使得單元隔離度更強。IGBT 驅動板的輸入信號可以支持多種電平幅值,且各路輸出的使能控制端具有統(tǒng)一性。該驅動板的電源端采用了極性保護措施。
圖8 隔離式驅動板原理框圖
開關電源電路以電源芯片LM5118 為基礎,并結合相應的外圍電路開發(fā)而成,外圍電路如圖9 所示。LM5118 高壓開關穩(wěn)壓器具有使用最少外部元件實現(xiàn)高效降壓或降壓-升壓穩(wěn)壓器所需的所有功能。
圖9 LM5118 外圍電路圖
基于m 序列發(fā)生器設計的基于擴頻編碼的探底發(fā)射儀,包含了利用FPGA 產(chǎn)出m 序列電路、光耦隔離電路、IGBT 驅動電路等部分,具有一定的代表性。
將m 序列計算、FPGA 生成移位寄存器、Modsim仿真,以及m 序列在探地發(fā)射儀的應用結合在一起,該實驗可作為數(shù)字邏輯電路、EDA、模擬電路、電力電子等相關課程的綜合實驗案例。在數(shù)字邏輯電路和EDA 的課上使用該實驗,既可讓學生更加深入了解m序列的構成原理以及構成方法,又能使學生們掌握線性移位寄存器與m 序列生成之間的關系,以及m 序列在實際工程中的應用,使得學生對數(shù)字電路設計與仿真有一個較為全面的了解。該案例中包含了IGBT驅動電路、隔離電路、電源電路等內容,也可用在模擬電子技術、電力電子技術等課程的實驗設計中。
該綜合實驗不僅提高了學生的學習興趣,還培養(yǎng)了學生的綜合知識運用能力。m 序列與實際工程的結合使學生對科研有更好的理解,引導其成為創(chuàng)新性人才。