汪興海 孫雪麗 畢敬騰
(海軍航空大學航空基礎學院 煙臺 264001)
近些年,隨著高速AD/DA硬件技術的不斷發展,以軟件無線電為代表的電子系統設計理念不斷深入人心,軍用電子設備不斷更新換代,對軍隊院校人才培養提出了新的要求。目前軍隊院校電子信息類專業相關公共課程主要包括模電、數電、可編程邏輯設計、數字信號處理等,電子技術實踐教學作為電子學相關專業本科教學的重要組成部分,目前主要采用項目驅動、比賽牽引、自主實踐等形式進行,學生能夠在實踐過程對課本知識進行綜合運用,并能夠根據實踐目標進行拓展學習,取得了較好效果[1]。
為了進一步提升學生對數字電子技術的認知水平,強化電子技術實踐教學環節項目設計的綜合性,將電子技術相關知識點有效串聯,本實驗教學裝置將集成運放電路、AD/DA電路、可編程邏輯設計、片上系統設計、嵌入式系統編程等知識點綜合為實踐教學項目,培養學生電子系統綜合應用能力,也為后續數字信號處理相關課程的學習做好鋪墊。
運放電路能完成加減、積分、微分以及比例運算等。綜合考慮實踐教學目標、實驗室元器件性能指標、經費保障等因素,將基本要求制定如下[2~4]。
1)模擬信號輸入:幅度范圍1Vpp;頻率范圍10k~100k;波形類型為正弦波、方波、鋸齒波;通道數2。
2)模擬信號輸出:幅度范圍10Vpp;通道數1。
3)實時采樣率≥10K。
4)可手動設置功能模擬選項,包括加法、減法、積分、微分。
5)顯示:能夠顯示當前電路功能相關信息。
模塊組成主要包括:數據采集、數據處理、數據輸出、主控、人機交互,如圖1所示。

圖1 模塊組成圖
數據采集:根據主控模塊提供的采樣率,將輸入模擬信號轉換為數字量。
數據輸出:根據主控模塊提供的采樣率,將數據處理模塊生成的數字量轉換為模擬量。
數據處理:根據主控模塊提供的采樣率,讀取數據采集模塊上傳的數據,根據主控模塊提供的功能設置信息對數據進行運算處理,并將運算結果傳遞給數據主控模塊。
主控模塊:作為片上系統的控制中樞完成各個功能模塊的信息解析與傳遞,負責整個片上邏輯的驅動管理[5~6]。
人機交互模塊:實現功能信息的顯示和操作指令的輸入,例如功能設置輸入、采樣率設置、功能電路顯示。
數據采集電路采用8bit并行輸出,每完成一次采樣,該模塊需要讀入2*8bit數據,對數據進行4個采樣周期的延時處理后,需要對數據進行處理,完成加/減、微/積分、比例運算等操作,硬件平臺基于Altera Cycloneiv系列芯片設計,緩存模塊采用芯片內置的DCFIFO和雙口RAM設計,該模塊的核心部分是算法邏輯電路設計[7~11]。
1)加/減邏輯電路
基于運放的加/減法電路比較簡單,模擬電路計算公式為U0=-(Ui1+Ui2);U0=Ui2-Ui1。

數字邏輯設計如圖2。

圖2 加減邏輯設計圖
其中Adata連接通道A對應的緩存,Bdata連接通道B對應的緩存,clk和模數轉換采樣時鐘同步,AS、AS_clk接數模轉換輸出選擇器。Add_EN、Sub_EN分別為加、減功能選擇端,高電平有效,Sel信號線接主控模塊的加減控制端,內部邏輯根據Sel的高低,分別執行Adata、Bdata的加和減。
2)微分邏輯電路
集成運放微電路公式:

數字化:

其中K為比例系數,默認為1,f為模數轉換頻率,默認為1M,j為步長,默認為1。表示第n時刻輸出的微分數字量,表示第n時刻輸入的被微分函數數字量。數字邏輯設計如圖3。
3)積分邏輯電路
集成運放積分電路公式為

其中K為比例系數,默認為1,f為模數轉換頻率,默認為1M。表示第n時刻輸出的積分數字量,表示第k時刻輸入的被積函數數字量。數字邏輯設計如圖4。

圖3 微分邏輯設計圖

圖4 積分邏輯設計圖
其中,acumult模塊主要完成累加的功能,DFE_clk為讀FIFO時鐘,sign為高時表示執行無符號數累加,為低時表示執行有符號數累加,ac_num輸出當前執行的累加次數;dachange主要完成數據轉換的功能,將累加結果轉換為數據輸出模塊要求的數據格式。
電路功能選擇按鈕采用左右兩個自鎖按鍵設計,按鍵按下,則向主控模塊發送模擬功能切換指令,切換順序依次為:加法->減法->積分->微分->加法,按下右鍵則進入當前功能的下一個功能,按下左鍵則進入當前功能的上一個功能,默認為加法電路。AD分辨率由4檔位旋鈕控制,4個檔位分別對應采樣率10K、50K、1M、10M。
該模塊以32位軟核為核心,配合總線選擇邏輯、分頻邏輯、譯碼邏輯,構成片上系統。數該模塊實時采集上節所述左右兩個按鍵和旋轉開關狀態,解析出控制指令,控制數據處理和液晶顯示[12~13]。邏輯構成如圖5所示。
數據采集基于AD9288設計,該芯片支持最高100M的高速采樣,模擬信號輸入范圍1Vpp。用戶模式選擇為常規模式,數據輸出模式選擇偏移二進制輸出。數據輸出模塊基于AD9708設計,完成數據處理模塊輸出的數字量向模擬量的轉換,主要包括模數轉換、濾波、幅度調節等,通過比例運放電路可輸出模擬信號幅度10Vpp。

圖5 主控模塊設計圖
軟件設計流程如圖6所示。系統初始化主要指可編程邏輯陣列加載外置ROM的系統數據,包括軟核和各功能邏輯模塊數據[14]。參數初始化主要針對顯示器的功能設置(如橫屏顯示、白底紅字等)和程序中設計的參數變量;其中電路功能狀態參數默認為00,即模擬加法功能,NiosII控制TFT顯示運放加法電路,用于提示當前電路功能狀態和輸入輸出端口。主控模塊譯碼電路根據狀態參數00生成加使能信號,數據處理模塊運行數字加法邏輯,DA輸出總線連接加邏輯輸出總線。主控模塊進入掃描等待狀態:當檢測到左側按鍵按下時(檢測到下降沿信號),對狀態參數進行+1操作;當右側按鍵按下時,對狀態參數進行-1操作;若狀態參數有變化,則主控模塊控制TFT清屏,并顯示新的功能模擬電路,提示輸入輸出接口;若狀態參數變化,主控模塊生成新的使能信號組合,選擇新的DA輸出總線驅動。若沒有按鍵按下,則執行當前功能電路。

圖6 軟件設計流程圖
功能模擬算法的難點是微積分算法,在Matlab環境下對微積分算法進行驗證,設計輸入函數為Sin=0.5sin(pi/500*t);數據采樣率設為50kHz;仿真結果如圖7。
設計輸入函數為三角波時,仿真結果如圖8。

圖7 軟件仿真效果圖1

圖8 軟件仿真效果圖2
仿真表明,微積分算法和理論計算波形基本一致,能夠實現對數字信號的微積分運算。其中微分圖形尾部的尖脈沖是由于微分算法步長為3個采樣周期導致的數字序列邊界突變引起的,當信號足夠長或連續時,則不會出現這種失真。其中積分圖形為采用單步長積分生成的二次方函數圖形。
在系統軟硬件設計的基礎上,制作了PCB板,在QuartusII和EDS軟件環境下設計了邏輯模塊和軟件程序,作品實物圖如圖9所示。
實物測試時主要針對微積分功能進行測試,輸入為三角波,微積分輸分別為矩形波和方向不斷變化二次方曲線,如圖10所示。
由于該作品主要用于引導學生由模擬電子技術學習向基于FPGA的數字信號處理學習的過渡,培養學生基于SOPC進行電子系統設計的興趣,重在功能演示;測試結果表明,該方案達到了預期目標。

圖9 作品實物圖

圖10 系統實際波形測試效果圖
電子技術相關課程包括模電、數電、可編程邏輯設計等,作為電子信息類本科專業的重要基礎課程,對后續的信號處理相關專業課程的學習具有重要的引導作用;電子技術作為一門理論相對枯燥的課程,能否在實驗環節合理設計一些綜合性強、容易理解、演示效果明顯的實驗項目成為激發學生學習興趣的重要措施。通過設計基于SOPC的集成運放電路功能模擬實驗教學裝置,能夠鍛煉學生綜合運用模電、數電、FPGA、軟核等電子技術,引導學生進入數字信號處理領域的學習,同時鍛煉學生綜合運用Matlab和FPGA開發工具進行信號分析與處理的能力[15],很好地體現了學以致用的實踐教學培養目標,即能夠鍛煉學生電子技術綜合實踐能力,又能夠深化學生對信號處理相關知識的認識,具有良好的實踐教學效果。