,,,
(中北大學 信息探測與處理研究所,太原 030051)
SOPC的多路信號同步采集編碼系統(tǒng)
史策,韓焱,李劍,邵云峰
(中北大學 信息探測與處理研究所,太原 030051)
設計了一種基于SOPC(System-On-a-Programmable-Chip)的信號采集編碼系統(tǒng)。采用AD7607模數(shù)轉換器作為多通道信號采樣的核心,搭建采樣模塊;利用FPGA設計并搭建了數(shù)據(jù)編碼電路和以MicroBlaze為內核的嵌入式處理器,實現(xiàn)了對采樣信號的快速編碼,并取代了傳統(tǒng)設計中的單片機。實驗結果表明,本系統(tǒng)可以對8路模擬信號進行同步采樣、編碼及傳輸。相比于傳統(tǒng)采集編碼器,該系統(tǒng)不僅將采樣通道擴充至8路,而且基于SOPC的單處理器的方法大大簡化了設計結構和難度。
數(shù)據(jù)編碼;多通道采集;SOPC;微體積
目前,多路信號采集編碼系統(tǒng)已廣泛應用在遙測遙感、震動探測以及姿態(tài)導航等領域。信號采集編碼系統(tǒng)工作性能的好壞直接關系到信號獲取質量的高低,進而影響到信號處理的精度[1]。在信號采樣過程中,通常采用微處理器和單片機構成的“雙核控制編碼器”提高信號的處理能力,其中,單片機及其外圍模塊稱為“主處理器”[2]。FPGA或CPLD微處理器稱為“協(xié)處理器”,法國 Sercel 公司的428系列陸上地震數(shù)據(jù)采集系統(tǒng)采用了雙處理器架構,實現(xiàn)了單通道數(shù)據(jù)的高速采編一體化[3]。
美國Teledyne Control公司的AIFTD-8000系統(tǒng)和法國SFIM公司的DAMIEN-6系統(tǒng)在設計時也都采用了這種結構[4]。這種雙核控制編碼的方式雖然提高了信號編碼系統(tǒng)的整體運算效率,但仍然存在采樣通道數(shù)有限、開發(fā)難度大以及設計體積龐大的問題[5]。
隨著總線技術與SOPC技術的發(fā)展,在大規(guī)模集成電路內搭建滿足設計需求的嵌入式處理器成為可能[6],相比于雙處理器設計,片上集成處理器具有體積小、配置靈活和開發(fā)成本低的優(yōu)勢[7]。鑒于此,本文設計了一種基于SOPC的多路信號同步采集編碼系統(tǒng),可以滿足多傳感器測量領域中對多路信號獲取的需求,具有一定的工程應用價值。
根據(jù)采集編碼器功能要求,本系統(tǒng)結構應包括信號采樣模塊、嵌入式處理器、信號編碼模塊等。系統(tǒng)設計框圖如圖1所示。
圖1 系統(tǒng)整體結構設計框圖
采用ADI公司的AD7606作為信號采樣模塊中的模數(shù)轉換器,其標準采樣率為200 kHz,可以對8通道數(shù)據(jù)進行同步采樣[7]。同時,利用XILINX公司SPARTAN 6系列XC6SLX16型FPGA搭建主控電路,控制外部采樣模塊以及對采樣信號進行編碼傳輸。外部FLASH用于存放系統(tǒng)程序,由FPGA上電后自動加載。同時,利用上位機通過串口與FPGA進行通信,采集信號編碼數(shù)據(jù)用于后期數(shù)據(jù)處理與分析。
1.1 信號采集模塊設計
由于信號采集過程中不可避免地存在噪聲干擾,造成傳感器的信號編碼模塊輸出信號中常包含有高頻噪聲信號[8]。因此輸入信號需先經過信號調理電路進行匹配設計,再接入模數(shù)轉換器執(zhí)行數(shù)據(jù)量化操作[9]。設計框圖如圖2所示。
圖2 信號采樣模塊設計框圖
采用8階巴特沃斯濾波器MAX291實現(xiàn)抗混疊濾波,消除輸入信號中的高階模態(tài)頻率[10]。同時,利用電壓跟隨作為緩沖進行阻抗匹配,保證后續(xù)電路的低輸入阻抗[11]。最后,通過高分辨率模數(shù)轉換器AD7606搭建多通道模數(shù)轉換電路,實現(xiàn)對處理后信號的實時采樣量化[12]。
1.2 嵌入式處理器設計
MicroBlaze軟核采用精簡指令集,具有運行速度快、占用資源少、可配置性強等優(yōu)點[13],配合SDK軟件編寫工具可以實現(xiàn)在FPGA中設計并生成嵌入式處理器。本系統(tǒng)搭建的處理器結構如圖3所示。
圖3 嵌入式處理器設計框圖
圖3中,MicroBlaze內核執(zhí)行邏輯運算和指令譯碼;中斷控制器管理處理器中所有中斷源,分配中斷優(yōu)先級;處理器由GPIO口與外部ADC通信、接收編碼結果并由RS232串行接口發(fā)至上位機。使用AXI4.0總線進行以數(shù)據(jù)為主導的信息傳輸[14]。所有外設和處理器內核均掛接在AXI4.0總線上。
1.3 信號編碼模塊設計
在對模擬信號的量化過程中,容易出現(xiàn)長“1”(連續(xù)“1”超過5位)和長“0”(連續(xù)“0”超過5位)的情況,不利于信號傳輸[15]。因此,本系統(tǒng)利用8b/10b編碼方式,消除信號中出現(xiàn)的長“1”和長“0”,確保信號的直流平衡[16]。信號編碼電路如圖4所示。
圖4 信號編碼模塊設計框圖
由圖4可知,信號編碼模塊由采樣數(shù)據(jù)接收、采樣數(shù)據(jù)分割、采樣數(shù)據(jù)編碼以及采樣數(shù)據(jù)發(fā)送4部分功能電路構成。另外,為確保接收到完整、連續(xù)的數(shù)據(jù)流,在數(shù)據(jù)接收與數(shù)據(jù)編碼之間加入1個FIFO作為數(shù)據(jù)緩沖器。采樣模塊的量化數(shù)據(jù)在被接收后即被寫入FIFO中等待讀取,被讀信號經8位數(shù)據(jù)分割、8b/10b編碼,由數(shù)據(jù)發(fā)送電路發(fā)送至嵌入式處理器的GPIO。
2 系統(tǒng)程序設計
系統(tǒng)程序中包括多路信號采樣模塊的配置程序和響應外部中斷的中斷子程序,程序流程圖如圖5所示。
圖5 系統(tǒng)程序流程圖
可以看出,主程序實現(xiàn)對采樣模塊的參數(shù)配置和系統(tǒng)的中斷使能,并在中斷源到來前保持待機狀態(tài)。
信號編碼模塊輸出的數(shù)據(jù)發(fā)送標志會觸發(fā)處理器的I/O外部中斷。在中斷程序中,處理器讀取I/O上的并行數(shù)據(jù),通過串口將數(shù)據(jù)發(fā)至上位機。程序執(zhí)行完畢后退出中斷,返回主程序,進入待機模式。
當上位機發(fā)送配置指令后,程序進入串口接收中斷。在中斷中對接收到的信息進行指令判斷和譯碼,根據(jù)譯碼結果對采樣模塊進行相應配置并返回配置結果,隨后退出中斷程序,返回待機模式。系統(tǒng)指令碼格式如表1所列。
表1 系統(tǒng)指令碼格式表
為了驗證本系統(tǒng)的實用性和可靠性,將對系統(tǒng)的信號編碼模塊和嵌入式處理器兩部分分別測試:采用Simulation仿真軟件觀察本系統(tǒng)的時序邏輯;用串口助手測試系統(tǒng)與上位機的數(shù)據(jù)通信。
3.1 信號編碼模塊仿真
在仿真實驗中,將模擬輸入圖6所示的正弦信號X(t),其信號頻率f為2 Hz,峰峰值Vpp為4 V。
圖6 模擬輸入信號時域圖
以100 Hz的采樣率對信號X(t)采樣后,根據(jù)AD7606的傳遞函數(shù),將采樣得到的模擬電壓值量化為相應數(shù)字量,部分量化結果如表2所列。
表2 量化結果十進制表
為直觀觀察信號編碼效果,現(xiàn)將表2中原十進制數(shù)轉為16位有符號二進制數(shù)表示,轉換后的部分數(shù)據(jù)如表3所列,表中用加粗數(shù)字表示長“1”和長“0”。
表3 量化結果二進制表
從表3中1行1列和6行1列的數(shù)據(jù)可以明顯看出,量化后數(shù)據(jù)容易出現(xiàn)正負不平衡的現(xiàn)象,而這種現(xiàn)象在信號零點附近尤為明顯。從表3中2行1列和2行2列的數(shù)據(jù)以及6行2列和6行3列的數(shù)據(jù)可發(fā)現(xiàn),在連續(xù)信號的采樣過程中,某組信號的直流平衡不僅與自身數(shù)值有關,更受到其前后數(shù)據(jù)的影響。
將量化結果作為采樣模塊的輸出信號,通過模擬采樣模塊輸出時序,將其依次讀入到信號編碼模塊中,信號讀入及編碼時序如圖7所示。
圖7中“reset”為系統(tǒng)復位信號,“sclk”為系統(tǒng)時鐘信號。數(shù)據(jù)讀信號“rd”由嵌入式處理器發(fā)出,低電平時表示有新數(shù)據(jù)“di[15:0]”產生。信號編碼電路接收到新數(shù)據(jù)后立即存入FIFO緩沖電路,信號“empty”標識了FIFO緩沖電路中有無數(shù)據(jù),一旦緩存非空,后續(xù)電路即將數(shù)據(jù)讀出,并將所讀數(shù)據(jù)“dout[15:0]”送入編碼器,得到編碼結果“final_out[19:0]”和數(shù)據(jù)輸出標志“data_sent”。
將圖7中的編碼結果轉為二進制表示,轉換結果如表4所列。
圖7 信號編碼電路時序邏輯圖
序號123101100101000101010011100111010010011101000110011011010101110021100110100010101101001111001001100110100110001100100101111013011100100111001001010110111001100011101001001110011101000101401001110011101000101100100100110001110100111001001110010010151100011001001011110110000110110011001011001100101101010110106011001010001010100110110001011011000101101100110110101011100
通過表4和表3的對比不難看出,原始數(shù)據(jù)中的長“1”或長“0”在數(shù)據(jù)編碼后已經消失,并且編碼之后的數(shù)據(jù)中沒有出現(xiàn)其他長“1”或長“0”的情況,實現(xiàn)了輸出信號的直流平衡。
3.2 嵌入式處理器功能驗證
嵌入式處理器主要負責與上位機的通信,接收來自上位機的控制指令,并回傳信號編碼結果。在驗證實驗中,使用上位機通過串口完成系統(tǒng)初始化、使能數(shù)據(jù)采集,并回讀編碼數(shù)據(jù)。處理器與上位機的通信結果如圖8所示。
圖8 串口輸出結果圖
以圖8的配置過程為例,說明處理器與上位機的通信過程:首先,由上位機按照表1所列的指令碼格式,發(fā)送對采集編碼系統(tǒng)的配置信息,處理器接收后返回接收到的指令碼,并配置系統(tǒng)相關參數(shù),若配置成功,則輸出成功標志“CC”。
系統(tǒng)配置結束后,上位機發(fā)送數(shù)據(jù)采集指令,處理器開啟采集電路并使能I/O口中斷,在接收到信號編碼電路的輸出標志后,將長度為20位的編碼結果,按照由高至低,高位補零的方式依次通過串口輸出。
針對現(xiàn)有采集編碼器的電路體積大、采樣通道少等問題,設計了一個基于SOPC的多通道信號同步采集編碼系統(tǒng)。
[1] QI S Z,MING D,IAN G,et al.Development of anew seismic-data acquisition station based on system-on-a-programmable-chip technology[J]. Annals of Geophysics,2013,56(3):1861-1867.
[2] 張軒碩,王建斌,王軍陣. 基于SoPC的超聲導波激勵信號發(fā)生器設計[J]. 電子技術應用,2011(7):82-85.
[3] 陳志華,李德識,李劉騰. 基于FPGA的多接口路由系統(tǒng)設計與實現(xiàn)[J].科學技術與工程,2015(2):97-103.
[4] 儲成君,任勇峰,劉東海,等. 基于FPGA的多通道信號采集電路設計. 科學技術與工程,2013(19):5692-5695,5701.
[5] 胡繼勝,李洪. 基于SoPC/NIOS Ⅱ的信號發(fā)生器設計與實現(xiàn)[J].電子技術應用,2011(6):91-94.
[6] 肖芳,羅軍,王安文. 一種新型SoPC自動指紋識別系統(tǒng)設計[J].電子技術應用,2010(8):14-16.
[7] Pan Guoteng,Luo Li, Ou Guodong, et al. Design and Verification of a MAC Controller Based on AXI Bus[C]//Proceedings of the 3rd International Conference on Intelligent System Design and Engineering Applications,Washington DC,USA: IEEE Press,2013: 558-562.
[8] Muralikrishna B,Madhumati G L,Khan H,et al. Reconfigurable System-on-Chip Design Using FPGA[C]//Proceedings of the 2nd International Conference on Devices,Circuits and Systems,Washington D C, USA: IEEE Press,2014: 1-6.
[9] 鄢永明,劉軼民,曾云,等. 基于8051軟核的SOPC系統(tǒng)設計與實現(xiàn)[J].電子技術應用,2005(10):72-75.
[10] 何偉,余征華,張玲,等. 基于SoPC的SD卡控制器IP核的設計[J].電子技術應用,2011(3):137-140.
[11] Min Zhang. The Design of the Supervisory System Based on the SOPC[J].Advanced Materials Research,2012,1518(383):91-94.
[12] KUENDIGER T. A system-on-chip fibre channel IP core, 2004.
[13] Guang Song Ma. The Design of Ship-Borne Antenna Stabilized Platform Base-d on SOPC[J].Advanced Materials Research,2014,3181(926):282-286.
[14] 何琪,鄭建生,陳鯉文. 基于FFT的P碼捕獲技術及FPGA實現(xiàn)[J].科學技術與工程,2015(5):120-124,136.
[15] 張博,段哲民. 基于FPGA的數(shù)據(jù)采集系統(tǒng)設計[J].電子設計工程,2012(7):86-88.
[16] 劉春雅,程旭,趙輝昌. 基于FPGA的數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2011(1):51-54,61.
史策、邵云峰(碩士研究生),主要研究方向為信息探測與處理;韓焱(博士生導師)、李劍(講師),主要研究方向為多維信號處理與重建、無損檢測技術。
MultipathSignalSynchronizationAcquisitionCodingSystemBasedonSOPC
ShiCe,HanYan,LiJian,ShaoYunfeng
(Institute of Signal Capturing&Processing Technology,North University of China,Taiyuan 030051,China)
In the paper,the signal acquisition and coding system is proposed based on SOPC.AD7607 is used as the multi-channel signal sampling,the sampling circuit is built.The FPGA is used to design and build the data encoding circuit and embedded processor which takes MicroBlaze as the core.The design realizes the fast encoding of sample signals,instead of the single chip machine in the traditional design.The experiment results show that the system can be used for sampling,coding and transmissing of 8 channels analog signals.Compared with the traditional encoder,the system not only extends the sampling channel to 8,moreover,the single processor based on SOPC greatly simplifies the design structure and difficulty.
data encoding;multi-channel data acquisition;SOPC;micro volume
TP274
A
2017-07-05)