,,,
(中北大學(xué) 信息探測(cè)與處理研究所,太原 030051)
SOPC的多路信號(hào)同步采集編碼系統(tǒng)
史策,韓焱,李劍,邵云峰
(中北大學(xué) 信息探測(cè)與處理研究所,太原 030051)
設(shè)計(jì)了一種基于SOPC(System-On-a-Programmable-Chip)的信號(hào)采集編碼系統(tǒng)。采用AD7607模數(shù)轉(zhuǎn)換器作為多通道信號(hào)采樣的核心,搭建采樣模塊;利用FPGA設(shè)計(jì)并搭建了數(shù)據(jù)編碼電路和以MicroBlaze為內(nèi)核的嵌入式處理器,實(shí)現(xiàn)了對(duì)采樣信號(hào)的快速編碼,并取代了傳統(tǒng)設(shè)計(jì)中的單片機(jī)。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可以對(duì)8路模擬信號(hào)進(jìn)行同步采樣、編碼及傳輸。相比于傳統(tǒng)采集編碼器,該系統(tǒng)不僅將采樣通道擴(kuò)充至8路,而且基于SOPC的單處理器的方法大大簡(jiǎn)化了設(shè)計(jì)結(jié)構(gòu)和難度。
數(shù)據(jù)編碼;多通道采集;SOPC;微體積
目前,多路信號(hào)采集編碼系統(tǒng)已廣泛應(yīng)用在遙測(cè)遙感、震動(dòng)探測(cè)以及姿態(tài)導(dǎo)航等領(lǐng)域。信號(hào)采集編碼系統(tǒng)工作性能的好壞直接關(guān)系到信號(hào)獲取質(zhì)量的高低,進(jìn)而影響到信號(hào)處理的精度[1]。在信號(hào)采樣過(guò)程中,通常采用微處理器和單片機(jī)構(gòu)成的“雙核控制編碼器”提高信號(hào)的處理能力,其中,單片機(jī)及其外圍模塊稱為“主處理器”[2]。FPGA或CPLD微處理器稱為“協(xié)處理器”,法國(guó) Sercel 公司的428系列陸上地震數(shù)據(jù)采集系統(tǒng)采用了雙處理器架構(gòu),實(shí)現(xiàn)了單通道數(shù)據(jù)的高速采編一體化[3]。
美國(guó)Teledyne Control公司的AIFTD-8000系統(tǒng)和法國(guó)SFIM公司的DAMIEN-6系統(tǒng)在設(shè)計(jì)時(shí)也都采用了這種結(jié)構(gòu)[4]。這種雙核控制編碼的方式雖然提高了信號(hào)編碼系統(tǒng)的整體運(yùn)算效率,但仍然存在采樣通道數(shù)有限、開(kāi)發(fā)難度大以及設(shè)計(jì)體積龐大的問(wèn)題[5]。
隨著總線技術(shù)與SOPC技術(shù)的發(fā)展,在大規(guī)模集成電路內(nèi)搭建滿足設(shè)計(jì)需求的嵌入式處理器成為可能[6],相比于雙處理器設(shè)計(jì),片上集成處理器具有體積小、配置靈活和開(kāi)發(fā)成本低的優(yōu)勢(shì)[7]。鑒于此,本文設(shè)計(jì)了一種基于SOPC的多路信號(hào)同步采集編碼系統(tǒng),可以滿足多傳感器測(cè)量領(lǐng)域中對(duì)多路信號(hào)獲取的需求,具有一定的工程應(yīng)用價(jià)值。
根據(jù)采集編碼器功能要求,本系統(tǒng)結(jié)構(gòu)應(yīng)包括信號(hào)采樣模塊、嵌入式處理器、信號(hào)編碼模塊等。系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)框圖
采用ADI公司的AD7606作為信號(hào)采樣模塊中的模數(shù)轉(zhuǎn)換器,其標(biāo)準(zhǔn)采樣率為200 kHz,可以對(duì)8通道數(shù)據(jù)進(jìn)行同步采樣[7]。同時(shí),利用XILINX公司SPARTAN 6系列XC6SLX16型FPGA搭建主控電路,控制外部采樣模塊以及對(duì)采樣信號(hào)進(jìn)行編碼傳輸。外部FLASH用于存放系統(tǒng)程序,由FPGA上電后自動(dòng)加載。同時(shí),利用上位機(jī)通過(guò)串口與FPGA進(jìn)行通信,采集信號(hào)編碼數(shù)據(jù)用于后期數(shù)據(jù)處理與分析。
1.1 信號(hào)采集模塊設(shè)計(jì)
由于信號(hào)采集過(guò)程中不可避免地存在噪聲干擾,造成傳感器的信號(hào)編碼模塊輸出信號(hào)中常包含有高頻噪聲信號(hào)[8]。因此輸入信號(hào)需先經(jīng)過(guò)信號(hào)調(diào)理電路進(jìn)行匹配設(shè)計(jì),再接入模數(shù)轉(zhuǎn)換器執(zhí)行數(shù)據(jù)量化操作[9]。設(shè)計(jì)框圖如圖2所示。
圖2 信號(hào)采樣模塊設(shè)計(jì)框圖
采用8階巴特沃斯濾波器MAX291實(shí)現(xiàn)抗混疊濾波,消除輸入信號(hào)中的高階模態(tài)頻率[10]。同時(shí),利用電壓跟隨作為緩沖進(jìn)行阻抗匹配,保證后續(xù)電路的低輸入阻抗[11]。最后,通過(guò)高分辨率模數(shù)轉(zhuǎn)換器AD7606搭建多通道模數(shù)轉(zhuǎn)換電路,實(shí)現(xiàn)對(duì)處理后信號(hào)的實(shí)時(shí)采樣量化[12]。
1.2 嵌入式處理器設(shè)計(jì)
MicroBlaze軟核采用精簡(jiǎn)指令集,具有運(yùn)行速度快、占用資源少、可配置性強(qiáng)等優(yōu)點(diǎn)[13],配合SDK軟件編寫(xiě)工具可以實(shí)現(xiàn)在FPGA中設(shè)計(jì)并生成嵌入式處理器。本系統(tǒng)搭建的處理器結(jié)構(gòu)如圖3所示。
圖3 嵌入式處理器設(shè)計(jì)框圖
圖3中,MicroBlaze內(nèi)核執(zhí)行邏輯運(yùn)算和指令譯碼;中斷控制器管理處理器中所有中斷源,分配中斷優(yōu)先級(jí);處理器由GPIO口與外部ADC通信、接收編碼結(jié)果并由RS232串行接口發(fā)至上位機(jī)。使用AXI4.0總線進(jìn)行以數(shù)據(jù)為主導(dǎo)的信息傳輸[14]。所有外設(shè)和處理器內(nèi)核均掛接在AXI4.0總線上。
1.3 信號(hào)編碼模塊設(shè)計(jì)
在對(duì)模擬信號(hào)的量化過(guò)程中,容易出現(xiàn)長(zhǎng)“1”(連續(xù)“1”超過(guò)5位)和長(zhǎng)“0”(連續(xù)“0”超過(guò)5位)的情況,不利于信號(hào)傳輸[15]。因此,本系統(tǒng)利用8b/10b編碼方式,消除信號(hào)中出現(xiàn)的長(zhǎng)“1”和長(zhǎng)“0”,確保信號(hào)的直流平衡[16]。信號(hào)編碼電路如圖4所示。
圖4 信號(hào)編碼模塊設(shè)計(jì)框圖
由圖4可知,信號(hào)編碼模塊由采樣數(shù)據(jù)接收、采樣數(shù)據(jù)分割、采樣數(shù)據(jù)編碼以及采樣數(shù)據(jù)發(fā)送4部分功能電路構(gòu)成。另外,為確保接收到完整、連續(xù)的數(shù)據(jù)流,在數(shù)據(jù)接收與數(shù)據(jù)編碼之間加入1個(gè)FIFO作為數(shù)據(jù)緩沖器。采樣模塊的量化數(shù)據(jù)在被接收后即被寫(xiě)入FIFO中等待讀取,被讀信號(hào)經(jīng)8位數(shù)據(jù)分割、8b/10b編碼,由數(shù)據(jù)發(fā)送電路發(fā)送至嵌入式處理器的GPIO。
2 系統(tǒng)程序設(shè)計(jì)
系統(tǒng)程序中包括多路信號(hào)采樣模塊的配置程序和響應(yīng)外部中斷的中斷子程序,程序流程圖如圖5所示。
圖5 系統(tǒng)程序流程圖
可以看出,主程序?qū)崿F(xiàn)對(duì)采樣模塊的參數(shù)配置和系統(tǒng)的中斷使能,并在中斷源到來(lái)前保持待機(jī)狀態(tài)。
信號(hào)編碼模塊輸出的數(shù)據(jù)發(fā)送標(biāo)志會(huì)觸發(fā)處理器的I/O外部中斷。在中斷程序中,處理器讀取I/O上的并行數(shù)據(jù),通過(guò)串口將數(shù)據(jù)發(fā)至上位機(jī)。程序執(zhí)行完畢后退出中斷,返回主程序,進(jìn)入待機(jī)模式。
當(dāng)上位機(jī)發(fā)送配置指令后,程序進(jìn)入串口接收中斷。在中斷中對(duì)接收到的信息進(jìn)行指令判斷和譯碼,根據(jù)譯碼結(jié)果對(duì)采樣模塊進(jìn)行相應(yīng)配置并返回配置結(jié)果,隨后退出中斷程序,返回待機(jī)模式。系統(tǒng)指令碼格式如表1所列。
表1 系統(tǒng)指令碼格式表
為了驗(yàn)證本系統(tǒng)的實(shí)用性和可靠性,將對(duì)系統(tǒng)的信號(hào)編碼模塊和嵌入式處理器兩部分分別測(cè)試:采用Simulation仿真軟件觀察本系統(tǒng)的時(shí)序邏輯;用串口助手測(cè)試系統(tǒng)與上位機(jī)的數(shù)據(jù)通信。
3.1 信號(hào)編碼模塊仿真
在仿真實(shí)驗(yàn)中,將模擬輸入圖6所示的正弦信號(hào)X(t),其信號(hào)頻率f為2 Hz,峰峰值Vpp為4 V。
圖6 模擬輸入信號(hào)時(shí)域圖
以100 Hz的采樣率對(duì)信號(hào)X(t)采樣后,根據(jù)AD7606的傳遞函數(shù),將采樣得到的模擬電壓值量化為相應(yīng)數(shù)字量,部分量化結(jié)果如表2所列。
表2 量化結(jié)果十進(jìn)制表
為直觀觀察信號(hào)編碼效果,現(xiàn)將表2中原十進(jìn)制數(shù)轉(zhuǎn)為16位有符號(hào)二進(jìn)制數(shù)表示,轉(zhuǎn)換后的部分?jǐn)?shù)據(jù)如表3所列,表中用加粗?jǐn)?shù)字表示長(zhǎng)“1”和長(zhǎng)“0”。
表3 量化結(jié)果二進(jìn)制表
從表3中1行1列和6行1列的數(shù)據(jù)可以明顯看出,量化后數(shù)據(jù)容易出現(xiàn)正負(fù)不平衡的現(xiàn)象,而這種現(xiàn)象在信號(hào)零點(diǎn)附近尤為明顯。從表3中2行1列和2行2列的數(shù)據(jù)以及6行2列和6行3列的數(shù)據(jù)可發(fā)現(xiàn),在連續(xù)信號(hào)的采樣過(guò)程中,某組信號(hào)的直流平衡不僅與自身數(shù)值有關(guān),更受到其前后數(shù)據(jù)的影響。
將量化結(jié)果作為采樣模塊的輸出信號(hào),通過(guò)模擬采樣模塊輸出時(shí)序,將其依次讀入到信號(hào)編碼模塊中,信號(hào)讀入及編碼時(shí)序如圖7所示。
圖7中“reset”為系統(tǒng)復(fù)位信號(hào),“sclk”為系統(tǒng)時(shí)鐘信號(hào)。數(shù)據(jù)讀信號(hào)“rd”由嵌入式處理器發(fā)出,低電平時(shí)表示有新數(shù)據(jù)“di[15:0]”產(chǎn)生。信號(hào)編碼電路接收到新數(shù)據(jù)后立即存入FIFO緩沖電路,信號(hào)“empty”標(biāo)識(shí)了FIFO緩沖電路中有無(wú)數(shù)據(jù),一旦緩存非空,后續(xù)電路即將數(shù)據(jù)讀出,并將所讀數(shù)據(jù)“dout[15:0]”送入編碼器,得到編碼結(jié)果“final_out[19:0]”和數(shù)據(jù)輸出標(biāo)志“data_sent”。
將圖7中的編碼結(jié)果轉(zhuǎn)為二進(jìn)制表示,轉(zhuǎn)換結(jié)果如表4所列。
圖7 信號(hào)編碼電路時(shí)序邏輯圖
序號(hào)123101100101000101010011100111010010011101000110011011010101110021100110100010101101001111001001100110100110001100100101111013011100100111001001010110111001100011101001001110011101000101401001110011101000101100100100110001110100111001001110010010151100011001001011110110000110110011001011001100101101010110106011001010001010100110110001011011000101101100110110101011100
通過(guò)表4和表3的對(duì)比不難看出,原始數(shù)據(jù)中的長(zhǎng)“1”或長(zhǎng)“0”在數(shù)據(jù)編碼后已經(jīng)消失,并且編碼之后的數(shù)據(jù)中沒(méi)有出現(xiàn)其他長(zhǎng)“1”或長(zhǎng)“0”的情況,實(shí)現(xiàn)了輸出信號(hào)的直流平衡。
3.2 嵌入式處理器功能驗(yàn)證
嵌入式處理器主要負(fù)責(zé)與上位機(jī)的通信,接收來(lái)自上位機(jī)的控制指令,并回傳信號(hào)編碼結(jié)果。在驗(yàn)證實(shí)驗(yàn)中,使用上位機(jī)通過(guò)串口完成系統(tǒng)初始化、使能數(shù)據(jù)采集,并回讀編碼數(shù)據(jù)。處理器與上位機(jī)的通信結(jié)果如圖8所示。
圖8 串口輸出結(jié)果圖
以圖8的配置過(guò)程為例,說(shuō)明處理器與上位機(jī)的通信過(guò)程:首先,由上位機(jī)按照表1所列的指令碼格式,發(fā)送對(duì)采集編碼系統(tǒng)的配置信息,處理器接收后返回接收到的指令碼,并配置系統(tǒng)相關(guān)參數(shù),若配置成功,則輸出成功標(biāo)志“CC”。
系統(tǒng)配置結(jié)束后,上位機(jī)發(fā)送數(shù)據(jù)采集指令,處理器開(kāi)啟采集電路并使能I/O口中斷,在接收到信號(hào)編碼電路的輸出標(biāo)志后,將長(zhǎng)度為20位的編碼結(jié)果,按照由高至低,高位補(bǔ)零的方式依次通過(guò)串口輸出。
針對(duì)現(xiàn)有采集編碼器的電路體積大、采樣通道少等問(wèn)題,設(shè)計(jì)了一個(gè)基于SOPC的多通道信號(hào)同步采集編碼系統(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的超聲導(dǎo)波激勵(lì)信號(hào)發(fā)生器設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2011(7):82-85.
[3] 陳志華,李德識(shí),李劉騰. 基于FPGA的多接口路由系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2015(2):97-103.
[4] 儲(chǔ)成君,任勇峰,劉東海,等. 基于FPGA的多通道信號(hào)采集電路設(shè)計(jì). 科學(xué)技術(shù)與工程,2013(19):5692-5695,5701.
[5] 胡繼勝,李洪. 基于SoPC/NIOS Ⅱ的信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2011(6):91-94.
[6] 肖芳,羅軍,王安文. 一種新型SoPC自動(dòng)指紋識(shí)別系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2005(10):72-75.
[10] 何偉,余征華,張玲,等. 基于SoPC的SD卡控制器IP核的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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碼捕獲技術(shù)及FPGA實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2015(5):120-124,136.
[15] 張博,段哲民. 基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012(7):86-88.
[16] 劉春雅,程旭,趙輝昌. 基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011(1):51-54,61.
史策、邵云峰(碩士研究生),主要研究方向?yàn)樾畔⑻綔y(cè)與處理;韓焱(博士生導(dǎo)師)、李劍(講師),主要研究方向?yàn)槎嗑S信號(hào)處理與重建、無(wú)損檢測(cè)技術(shù)。
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)