龔 敬,孟令軍,嚴 帥,尹維漢
(中北大學 儀器科學與動態測試教育部重點實驗室 電子測試技術國家重點實驗室,山西 太原 030051)
片上可編程系統(System on Programmable Chip,SoPC)是Altera公司提出的一種靈活、高效的SoC解決方案,將處理器、緩存、存儲器、I/O口、高速總線等系統設計需要的功能模塊集成到一個FPGA器件上,構成一個可編程的片上系統[1]。采用SoPC技術可以大大提高系統運行速度,縮小尺寸,降低總體系統成本,克服多芯片集成系統設計所產生的一些困難,通過提高芯片集成的系統功能以獲得更高的系統性能,減少電路板面積,降低制造成本。本文采用的方法充分利用了SoPC的特性和優勢,合理地選擇所需處理器和外設接口控制模塊,既保證了處理速度,又最大程度地降低了系統成本。
本文采用基于大規模FPGA的嵌入式系統設計,硬件上主要由控制計算機、USB接口單元、FPGA和外圍接口電路等部分組成。軟件上,Nios II主控制軟件采用C語言設計,部分外圍邏輯模塊使用VHDL程序設計,該設計的模塊功能劃分清楚明確,并且各個功能模塊之間的耦合性極小,因此模塊可以實現切割測試,整個系統整合后可以達到較高的可靠性,縮短了開發周期。系統的結構框圖如圖1所示。

系統主控器件為一個基于FPGA的32位嵌入式CPU系統,由Altera公司的EP2C35和SRAM等芯片構成,各功能模塊在它的控制下協同工作。其中嵌入式CPU是一個Nios II內核,它與外設控制接口、核外邏輯單元構成一個完整的SoPC系統,處理器根據需要添加各種嵌入式外設,可以較為容易地在硬件方面實現對系統外設的管理,控制計算機與脈沖發生器之間的數據通信則由一個USB接口單元實現。
本文包括硬件電路設計、SoPC系統搭建和Nios II軟件設計3個層次。
系統主要由EP2C35,SRAM,EPCS等芯片和相應的外圍接口電路構成。
2.1.1 主機與各功能部分之間的通信
脈沖發生器由USB接口單元與主機連接,以FPGA作為控制中心,通過USB接口單元實現FPGA與計算機之間的數據通信。USB接口單元采用FT245芯片,可以實現計算機與FPGA芯片之間的并行通信,最大傳輸速度可達到1 Mbyte/s。
2.1.2 脈沖信號模擬模塊
脈沖信號模擬部分主要產生各種特定的數字脈沖信號,包括4種脈沖波形:第1種為72位不歸零碼,共1路,它在中斷信號和移位脈沖信號的時序控制下按位輸出固定數碼,可以手動設置輸出,默認狀態為01,23,45,67,89,AB,CD,EF,0F,其中中斷信號頻率為40 Hz,脈寬為7 ms,移位脈沖是周期為12 μs,8位一組,每組間隔96 μs的信號;第2種為特定頻率的規則脈沖信號,共1路,頻率為256 kHz,占空比50%,需產生的脈沖個數范圍為0~216個;第3種為特定頻率的不規則脈沖信號,共2路,每路均包括兩通道脈沖信號,頻率為500 Hz,脈沖寬度為6 μs,兩通道脈沖信號間時間間隔為0.5 μs的整數倍,最大為1 ms,發送脈沖的個數范圍為0~216個;第4種為可變頻率的不規則脈沖信號,共6路,頻率為1~75 kHz,平均分為6擋,脈沖寬度為2 μs,發送脈沖個數范圍為0~224個。可以通過計算機軟件實時修改各種輸出脈沖信號的路數、頻率和個數。圖2為脈沖信號模擬模塊原理框圖。

計算機軟件根據設置產生相應個數和頻率參數的各路脈沖信號,并通過以下步驟實現脈沖信號輸出:1)通過USB接口單元向脈沖信號模擬模塊發送復位指令,復位FPGA;2)計算機通過USB接口單元發送脈沖參數,FPGA接收并暫存入一數組中,經校驗無誤后,通過Nios II內核相應的I/O口輸出脈沖參數給相應的脈沖產生模塊,各數字量脈沖產生模塊輸出相應的脈沖信號。如果與發送的參數不一致,則需要向上位機返回重發命令請求,重新執行步驟1)~2)。
Nios II嵌入式內核是系統的核心模塊,包括CPU核、JTAG控制接口、EPCS控制接口以及與外圍模塊進行數據通信的I/O控制接口,為了滿足程序代碼存儲特性的需求,存儲器采用EPCS16和SRAM芯片。圖3是CPU模塊的部分截圖,其中包括部分芯片與FT245通信的I/O控制接口和SRAM控制接口。

系統的主程序采用C語言設計。相比VHDL語言來說,代碼更優化、系統更方便維護和升級。主程序的流程是:上電后系統進行初始化,在上位機界面設置好各參數值后,參數值以數據包的形式下發至FT245,并暫時存儲至FT245內部的緩存器中。程序進入等中斷請求的狀態,如果沒有中斷請求信號到來則繼續等待,如果有中斷請求到來則讀FT245中的數據并將其存儲至一數組中進行數據校驗、解包,解包后的數據如正確無誤則下發至CPU核各I/O端口,從而控制其相應的數字脈沖產生模塊產生所需數字脈沖信號。數據分發完成后再次進入等待命令的狀態,如此循環進行。流程如圖4所示。

上位機軟件是數字信號發生器的主控軟件及數據處理軟件。該軟件主要實現地面計算機與信號發生器之間的通信、數據傳輸、實時顯示、接口檢測、信號發生器工作狀態檢測及數據處理等功能,是實現人機對話的中間媒介。本軟件采用VB進行設計,可以在Windows 7/XP操作系統上運行。圖5是上位機軟件的功能模塊圖。

本系統經過實際測試后,各項功能指標均滿足任務要求。圖6為脈沖信號模擬模塊產生的1路特定頻率規則脈沖信號,其中上位機軟件中的個數設置為8個。圖7為可變頻率不規則脈沖信號,其中個數設置為5個,頻率為1 kHz。圖8為特定頻率不規則脈沖信號,兩脈沖信號的時間間隔設置為1.5 μs,個數為2個。圖9為不歸零碼測試波形,其中CH1為中斷信號,CH2為移位脈沖信號,CH3不歸零碼信號。


經過測試和試驗,完全滿足各項指標要求。各脈沖信號精度要求以及達標情況見表1。
本系統采用SoPC技術,利用Nios II嵌入式軟核CPU軟硬件系統可編程及可在線調試的優點,將所需模塊控制接口集成至Nios II處理器系統中。根據上位機下發的不同命令來產生不同頻率和個數的數字脈沖信號,通過示波器觀察所產生的各種脈沖信號,滿足了系統設計要求,實現了可選通道、可變頻率和個數可控數字脈沖信號的產生。



表1 精度參數要求
[1]SOPC(片上可編程系統)靈活、高效的解決之道[EB/OL].[2010-08-06].http://www.dianzi9.cn/SOPC/200808/12-6483.html.
[2]倪亮,吳麗敏,趙鵬飛.基于SOPC基本信號產生器的設計與實現[J].電子科技,2011,24(1):89-92.
[3]周立功.SOPC嵌入式系統基礎教程[M].北京:北京航天航空大學出版社,2006.
[4]張擁軍,趙雪峰,朱維樂.基于FPGA平臺的DVB-T發射端的實現[J].電視技術,2004,28(11):61-63.