翁 玲,陳長江,徐 行,李卓林,彭 睿
(河北工業大學 電氣工程學院,天津 300130)
m 序列是最長線性反饋移位寄存器序列的簡稱,是由帶線性反饋的移位寄存器產生的[1]。移位寄存器設定初始狀態后,在時鐘觸發下,每次移位后各級寄存器會發生變化,其中任何一級寄存器的輸出,隨著時鐘節拍的推移都會產生一個序列,該序列稱為移位寄存器序列。m 序列可廣泛應用于密碼學、導航、通信、地質勘探等多個領域[2]。
學生在學習數字電子技術、數字邏輯電路、EDA等課程時經常會遇到帶反饋的移位寄存器與硬件描述語言難以理解的問題。如何設計帶反饋的移位寄存器、m 序列、Modelsim 仿真和實際應用結合在一起的綜合實驗是相關課程的重要內容。
文獻[3]采用555 定時器、D 觸發器、邏輯門、變換電路產生m 序列,不需復雜的編程和程序下載,但硬件電路較為復雜。文獻[4]介紹了2 種m 序列的實現算法,并且都能產生性能良好的m 序列,但是其中一種實現起來過程比較繁瑣,另一種必須利用配套的編程軟件和芯片,限制比較多,不利于推廣使用。文獻[5]對m 序列進行了詳細的軟件仿真介紹,但是缺乏硬件方面的研究。文獻[6]所設計的高速偽隨機序列發生器結構簡單、成本低,能夠生成m 序列、伯努利序列等多種選擇,但是無法生成任意頻率的序列。文獻[7]采用C 語言編程來產生m 序列,這種算法實現速度相對來說較慢,并且會浪費很多時鐘周期。
本文利用FPGA(現場可編門陣列)生成m 序列,并利用生成的m 序列經過IGBT 驅動,與光耦隔離電路、電源電路等組成擴頻編碼探地發射儀。將m 序列生成、Modelsim 仿真和具體應用結合起來,可加強學生對線性移位寄存器、FPGA 數字邏輯電路設計的充分理解,培養學生運用綜合知識的能力。
反饋移位寄存器,特別是線性反饋移位寄存器,是實現偽隨機序列的基本器件。當反饋函數為線性函數時,相應的反饋移位寄存器被稱為線性反饋移位寄存器[8]。n 階線性帶反饋移位寄存器組成圖如圖1 所示。

圖1 n 階線性帶反饋移位寄存器組成圖
圖1 中ci表示反饋線的2 種可能連接方式,ci=1表示連線接通,第n-i 級輸出加入反饋中;ci=0 表示連線斷開,第n-i 級輸出未參加反饋。因此,一般形式的線性反饋邏輯表達式為

將等式左邊的an移至右邊,并將 an(c0= 1)代入上式,則上式可以寫成:

其中x 的冪次表示元素的相應位置。該式為線性反饋移位寄存器的特征多項式,特征多項式與輸出序列的周期有密切關系。當F(x)滿足下列3 個條件時,就一定能產生m 序列:
(1)F(x)是不可約的,即不能再分解多項式;
(2)F(x)可整除xp+1 ,p 為周期,p= 2n+1;
(3)F(x)除不盡xq+1 ,q < p。
滿足上述條件的多項式稱為本原多項式,這樣產生m 序列的充要條件就變成了如何尋找本原多項式。表1 中列出了部分m 序列的反饋系數。
根據表1 中的八進制反饋系數,可以確定m 序列發生器的結構。以7 級m 序列反饋系數Ci=(211)8為例,首先將八進制的系數轉化為二進制的系數即Ci=(10001001)2,由此可以得到各級反饋系數分別為:C0=1,C1=0,C2=0,C3=0,C4=1,C5=0,C6=0,C7=1,由此就很容易地構造出相應的m 序列發生器[9]。根據反饋系數,其他級數的m序列的構造原理與上述方法相同。

表1 部分m 序列的反饋系數表
FPGA 作為一種可編程邏輯芯片,其結構和開發方式都跟傳統的MCU 和DSP 有一定區別。MCU 和DSP 的設計主要是進行軟件程序的設計,用戶使用C語言完成各種算法和控制的實現,各種功能在CPU 的控制下按照順序依次執行。而FPGA 的設計,實質是電路設計,是在一個可現場編程的通用邏輯器件里去搭建各種具有一定功能的邏輯電路[10],各個邏輯電路間是各自獨立的,能夠并行執行。同時,各個功能的電路之間又通過一定的控制和握手信號相互協調。本次設計中使用的是Intel Cyclone IV E FPGA 芯片,使用硬件描述語言 VHDL 和電子設計自動化工具Quartus II,設計和實現了上述方案中提出的m 序列發生器,即通過外設配置移位寄存器的初始值的方式來改變產生的m 序列[11]。所設計系統的主要硬件框圖如圖2 所示。

圖2 m 序列發生器主要硬件框圖
輸入時鐘頻率需要進行分別設置。這里使用了計數器分頻的模式,在一般情況下,偶分頻屬于普遍的分頻用法,程序簡單易懂,但是如果系統時鐘固定,就不能得到任意想要的頻率。因此引入了奇分頻的分頻方法,奇分頻相較于偶分頻,程序設計更為復雜,考慮的變量也相應增加。具體設計流程如圖3 所示。
經過系統的軟件分頻后,會獲得所需要的時鐘頻率,其頻率值由計數值的大小來決定[12]。本設計采用了1 000 分頻,經過分頻后的時鐘信號驅動線性移位寄存器。移位寄存器經過反饋后就會生成所需的m 序列。FPGA 中生成的移位寄存器結構圖如圖4 所示。根據需要調節反饋的位置,從而得到不同周期的m 序列。最后將生成的單路m 序列設置為互補信號生成模塊的輸入端,進而得到4 路互補信號。

圖3 時鐘調整模塊工作流程圖

圖4 m 序列發生器結構圖
Mentor 公司的ModelSim 是業界最優秀的HDL語言仿真軟件,它能提供友好的仿真環境以及完善的高性能的驗證功能[13]。使用ModelSim 對上述設計中的m 序列發生器進行仿真結果如圖5 所示。圖5 中KUOPIN 信號為單路m 序列,dout 信號為4 路互補的m 序列。可以看出m 序列為一系列占空比不等的方波構成。

圖5 m 序列仿真波形圖
基于m 序列發生器設計了一套基于擴頻編碼的探底發射儀,結構原理如圖6 所示。基本原理:利用FPGA 產生m 序列發生器,以此m 序列為基礎,通過IGBT 逆變使m 序列增幅。增幅后的m 序列穿透能力大大增加,能夠確保在大范圍之內收到地質信息,減少野外環境帶來的干擾,達到實際應用時的功率等級。在實際探測中,利用m 序列的相關特性還可以濾除掉大部分的由電力設施帶來的干擾信號[14]。

圖6 探地發射儀結構原理圖
探底發射儀主要包括FPGA 信號發生電路、光耦隔離電路、IGBT 逆變橋和驅動電路、電源電路等。光耦隔離電路將高壓信號與FPGA 信號進行光隔離以保護FPGA 芯片,防止芯片被信號電平轉換期間產生的沖激損壞。IGBT 驅動電路則是直接驅動IGBT 逆變橋的驅動板,能夠將輸入信號轉化為可靠的驅動電平,并且能夠再次進行電隔離。電源電路以LM5118 為基礎的開關電源,使得供電系統能夠在野外環境中更可靠工作。
由于FPGA 輸出的信號幅值為3.3 V,而且如果和驅動板直接相連可能會導致FPGA 在IGBT 轉換期間被沖激電流擊穿燒毀,所以引入了光耦隔離電路對低幅值信號與IGBT 驅動板輸入信號進行光隔離,其電路原理如圖7 所示。

圖7 光耦隔離驅動電路原理圖
在圖7 中,引腳“4”與“1”為空置引腳,“2”引腳為信號輸入端,“3”引腳為信號地端。“8”與“5”引腳為輸出的供電端,引腳“6”“7”短接后,作為信號輸出端。可以看出輸入與輸出沒有共地,這樣也減少了輸出端對輸入端的直接影響,非常有利于對FPGA 核心芯片的保護。
IGBT 驅動電路是驅動IGBT 的直接單元,它的電氣參數直接影響著輸入模塊的安全性和輸出信號的正確性[15]。本文采用了技術較為成熟的4 路隔離式驅動板,其原理框圖如圖8 所示。
圖8 中為n 單元驅動板,每路最高輸出6 A 電流,可驅動300 A/1 700 V 以下的IGBT,其中n=2,4,6,7。該驅動板的每一路都有相應的保護電路,保護報警電路與其他部分進行了電隔離。其中每2 個單元自帶一個獨立的DC/DC 輔助電源,使得單元隔離度更強。IGBT 驅動板的輸入信號可以支持多種電平幅值,且各路輸出的使能控制端具有統一性。該驅動板的電源端采用了極性保護措施。

圖8 隔離式驅動板原理框圖
開關電源電路以電源芯片LM5118 為基礎,并結合相應的外圍電路開發而成,外圍電路如圖9 所示。LM5118 高壓開關穩壓器具有使用最少外部元件實現高效降壓或降壓-升壓穩壓器所需的所有功能。

圖9 LM5118 外圍電路圖
基于m 序列發生器設計的基于擴頻編碼的探底發射儀,包含了利用FPGA 產出m 序列電路、光耦隔離電路、IGBT 驅動電路等部分,具有一定的代表性。
將m 序列計算、FPGA 生成移位寄存器、Modsim仿真,以及m 序列在探地發射儀的應用結合在一起,該實驗可作為數字邏輯電路、EDA、模擬電路、電力電子等相關課程的綜合實驗案例。在數字邏輯電路和EDA 的課上使用該實驗,既可讓學生更加深入了解m序列的構成原理以及構成方法,又能使學生們掌握線性移位寄存器與m 序列生成之間的關系,以及m 序列在實際工程中的應用,使得學生對數字電路設計與仿真有一個較為全面的了解。該案例中包含了IGBT驅動電路、隔離電路、電源電路等內容,也可用在模擬電子技術、電力電子技術等課程的實驗設計中。
該綜合實驗不僅提高了學生的學習興趣,還培養了學生的綜合知識運用能力。m 序列與實際工程的結合使學生對科研有更好的理解,引導其成為創新性人才。