中國石油天然氣運(yùn)輸公司長慶運(yùn)輸分公司 孫以環(huán)
基于Nios-II的FPGA系統(tǒng)設(shè)計與研究
中國石油天然氣運(yùn)輸公司長慶運(yùn)輸分公司 孫以環(huán)
FPGA內(nèi)嵌Nios-II軟核具有成本低、靈活性高、生產(chǎn)周期短等特點,廣泛應(yīng)用于智能電子產(chǎn)品、醫(yī)療電子設(shè)備、無線通信產(chǎn)業(yè)中。本文主要研究了基于FPGA內(nèi)嵌Nios-II軟核的性能及其應(yīng)用,重點進(jìn)行硬件和軟件的設(shè)計,其中軟核設(shè)計是通過Quartus-II軟件里的SOPC-builder開發(fā)工具進(jìn)行設(shè)計;最后FPGA內(nèi)嵌Nios-II軟核可以根據(jù)實際需求定制所需要的外設(shè)接口,靈活可變。調(diào)試方式引入了仿真器,可以進(jìn)行寄存器、變量實時查詢,改變以往FPGA只能通過仿真和測試端口進(jìn)行調(diào)試的不便局面。本次設(shè)計通過驗證滿足ADC采樣誤差精度、PWM占空比精度、中斷響應(yīng)速度等設(shè)計要求,并能夠進(jìn)行正常的通信。
嵌入式系統(tǒng);FPGA;Nios-II軟核;ADC采樣
FPGA即現(xiàn)場可編程門陣列,是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上發(fā)展起來的。應(yīng)用在專用集成電路領(lǐng)域中,不但可以彌補(bǔ)原有可編程器件門電路有限的不足,還可以解決定制電路的缺陷。
隨著大規(guī)模信息技術(shù)和集成電路技術(shù)的不斷發(fā)展,F(xiàn)PGA內(nèi)嵌Nios-II軟核的技術(shù)作為目前最受歡迎的嵌入式系統(tǒng)開發(fā),并且該邏輯門電路密度不斷提高,設(shè)計工具不斷優(yōu)化,因此能夠?qū)崿F(xiàn)越來越多的功能。FPGA內(nèi)嵌Nios-II軟核技術(shù)具有研發(fā)成本低、設(shè)計周期短、產(chǎn)品便于更新、產(chǎn)品更改靈活方便等優(yōu)點,受到越來越多的設(shè)計開發(fā)人員廣泛的關(guān)注與推廣,F(xiàn)PGA內(nèi)嵌Nios-II軟核的研究方法迅速成為了集成電子設(shè)計領(lǐng)域中的非常重要組成部分[1~2]。
目前FPGA的研究主要集中在以下三個方向:
第一個方向,集成電路仿真測試。即測試新設(shè)計完成的集成電路芯片是否正確好用。然而如果直接生產(chǎn)測試芯片制作成本比較高,代工廠商不愿意制作少批量的試制品[3]。
第二個方向,通信設(shè)備的高速接口電路設(shè)計是FPGA的另一個重要應(yīng)用方向,通過FPGA的高速處理接口的協(xié)議,可以實現(xiàn)高速的數(shù)據(jù)收發(fā)和交換[4]。
第三個方向,數(shù)學(xué)計算或者數(shù)字信號處理方向已成為一個新的研究方向,該方向在較大程度上已經(jīng)超出了信號處理的范圍[5]。
本文的目的就是將CPU卡上的ARM7和FPGA整合為一個內(nèi)嵌Nios-II軟核的FPGA,使內(nèi)嵌的Nios-II軟核具有ARM7功能,同時還保留原有FPGA通信功能。采用黑金開發(fā)板為平臺實現(xiàn)軟核功能,然后通過飛線連接模擬量采樣板。整個開發(fā)流程圖如圖1所示:
圖1 項目整體開發(fā)流程圖
3.1硬件總體設(shè)計
FPGA內(nèi)嵌Nios-II軟核的硬件電路設(shè)計大體可分為兩部分,其一為FPGA核心控件部分,即為黑金開發(fā)板;其二為外圍應(yīng)用電路,即為模擬量采樣板。
由于FPGA本身功能強(qiáng)大并且線路很復(fù)雜。核心部分電路圍繞型號為EP4CE15F17C18的FPGA芯片,配合SRAM芯片或SDRAM芯片作為擴(kuò)展內(nèi)存使用,同時基本EEPROM配置芯片和復(fù)位控制芯片也集成在上面[6]。圖2所示為黑金開發(fā)板與模擬量通道卡飛線連接圖。其模擬量通道板為8點RTD卡,這樣的簡化處理不但節(jié)省了制板和器件費(fèi)用,而且能起到類似的研究結(jié)果。
圖2 黑金開發(fā)板與模擬量通道卡飛線連接圖
整體硬件設(shè)計原理圖如圖3所示。開發(fā)板上的FPGA為主控制部分,模擬量通道板上的ADC為軟核的主要應(yīng)用功能部分,F(xiàn)PGA原有功能則是需要保留的功能。Nios-II軟核相當(dāng)于CPU,通過SPI接口與模擬量通道卡的AD相連接;串口與上位機(jī)相連,進(jìn)行數(shù)據(jù)的標(biāo)定;軟核與鐵電FRAM通過并行I/O口進(jìn)行數(shù)據(jù)交換[7];SDRAM/SRAM主要用作存儲器設(shè)備,而數(shù)碼管和液晶顯示器主要用作顯示設(shè)備。
圖3 整體硬件設(shè)計原理圖
本文采用的芯片是FPGA(EP4CE15F17C18)芯片,圖4為FPGA芯片的硬件電路圖。
圖4 FPGA芯片的硬件電路
本文采用的存儲器芯片為EPCS64(EEPROM)芯片,如圖5所示。
圖5 EPCS引腳配置圖
本文的一些其他外設(shè)主要有:AD7793芯片、串口模塊、數(shù)碼管顯示模塊、液晶顯示模塊、電源模塊等。
3.2軟件總體設(shè)計
本文的FPGA內(nèi)嵌Nios-II軟核的軟件設(shè)計分為兩大部分:Nios-II軟核設(shè)計和硬件驅(qū)動程序編寫。其中軟核設(shè)計主要是在Quartus-II軟件中的SOPC下設(shè)計自己所需要的軟核,而驅(qū)動程序編寫則是在Nios-II IDE軟件里,用C語言或者匯編語言進(jìn)行驅(qū)動程序編寫。
不同于以往硬件和軟件概念的區(qū)分,軟核的設(shè)計是屬于一種模糊概念的應(yīng)用設(shè)計。其主要目的是根據(jù)需求來定制一個合適的CPU軟核,使之可以滿足項目要求。具體到本研究中的軟核,我們將定制Nios核(計算核心)、倍頻電路(鎖相環(huán)PLL提高指令運(yùn)行速度最高到100MHz)、JTAG調(diào)試口、外設(shè)(SPI、IIC、中斷等等)、系統(tǒng)ID(system ID)、程序存儲器(FRAM,最大到64Mbit存儲空間)和數(shù)據(jù)存儲器(SRAM/SDRAM共用,最大到64Mbit)、LED、六位數(shù)碼管、液晶顯示器,采用Avalon總線連接。原CPU卡上的LPC2136則為:ARM7內(nèi)核、最高60MHz倍頻電路、JTAG、外設(shè)、程序存儲器和數(shù)據(jù)存儲器,AHB/APB總線連接,整個軟核框架示意圖如圖6所示。
圖6 FPGA內(nèi)嵌CPU軟核結(jié)構(gòu)示意圖
本文的軟核開發(fā)環(huán)境是Quartus-II軟件,選擇的是Altera公司的綜合性PLD/FPGA開發(fā)工具Quartus-II 11.0sp1(32bit)軟件[8]。
本設(shè)計中,兩個處理器的軟件程序都擁有自己獨(dú)有的一段存儲空間,這些存儲空間都位于同一個物理存儲設(shè)備SDRAM上,如圖7所示。
圖7 具有Avalon-MM接口的SDRAM控制器方框圖
SopcBuilder是Altera公司提供的一款圖形化系統(tǒng)設(shè)計實現(xiàn)工具,內(nèi)嵌于Quartus II軟件中。利用SopcBuilder實現(xiàn)的雙核系統(tǒng),如圖8所示。
圖8 內(nèi)嵌Nios-II軟核的部分組件
在ALTERA公司的SOC產(chǎn)品配套開發(fā)工具里,SOPC組件已經(jīng)嵌入到Quartus-II軟件的FPGA編譯工具中。打開該組件即可進(jìn)行直觀的可視化操作。其中簡單的組件可以直接按提示操作。
在整個FPGA內(nèi)嵌Nios-II軟核中,主程序是整個驅(qū)動程序的核心,是協(xié)調(diào)各個模塊正常工作的主體。主程序主要是進(jìn)行初始化設(shè)置,具體的主程序流程圖如圖9所示,操作步驟如下:
(1)系統(tǒng)初始化主要包括并行端口初始化、IIC通信協(xié)議初始化、AD采樣模塊初始化、液晶顯示器模塊初始化、全局參數(shù)初始化。
(2)打開定時器,通過程序編寫相應(yīng)PWM模塊的占空比,用示波器測量PWM波形,PWM的主要作用是控制AO口的輸出,既PWM占空比輸出紋波電壓,再由紋波電壓和精密電阻輸出4~20毫安的電流。
(3)通過串口協(xié)議進(jìn)行相應(yīng)的操作,該協(xié)議由簡單的一個字節(jié)組成RS232通信機(jī)制,如果通過串口發(fā)送過來的地址和卡件本身硬件設(shè)置的地址相同,則模擬卡件會執(zhí)行相應(yīng)的數(shù)據(jù)接收和發(fā)送,否則不會執(zhí)行任何操作。
(4)檢查鐵電存儲器是否有更新,如果有數(shù)據(jù)更新就是通過串口發(fā)送過來的標(biāo)定數(shù)據(jù),則把數(shù)據(jù)值存到FRAM中,然后再從FRAM中讀取存儲的數(shù)值,對比兩者是否一樣,從而保證數(shù)據(jù)的可靠性。
(5)讀取AD采樣過來的數(shù)據(jù)并放入緩存中,再將數(shù)據(jù)進(jìn)行相應(yīng)的標(biāo)定,然后通過數(shù)碼管和液晶顯示器顯示,或者通過串口發(fā)送給上位機(jī)。
(6)整個程序結(jié)束。
圖9 主程序設(shè)計流程圖
FPGA內(nèi)嵌Nios-II軟核完成后需要進(jìn)行性能測試。本文在IDE軟件中編寫的應(yīng)用驅(qū)動程序,在Nios-II軟核成功運(yùn)行后,串口調(diào)試功能和PWM波形圖數(shù)據(jù)進(jìn)行測試。根據(jù)原CPU卡上ARM芯片LPC2136的功能情況,我們設(shè)定了程序主流程為軟核接收UART命令后,將外部ADC采樣后的數(shù)據(jù)經(jīng)標(biāo)定再通過串口發(fā)送回上位機(jī),標(biāo)定數(shù)據(jù)同樣來自于UART,同時根據(jù)UART送出的占空比為3:5的一路周期8ms的PWM。串口通信發(fā)送協(xié)議為8字節(jié),從高到低依次為:采集命令(1個字節(jié))、標(biāo)定有無(1個字節(jié)),標(biāo)定數(shù)據(jù)(4個字節(jié))、占空比(2個字節(jié));接收協(xié)議為8字節(jié),從高到低依次為采樣數(shù)據(jù)(2個字節(jié))、出錯標(biāo)志(1個字節(jié)),其余為零,波特率為115200bit/s。
圖10 串口調(diào)試助手圖
并行通信具體協(xié)議為:55 01 xx xx xx xx 03 05。具體協(xié)議如下:只有給串口發(fā)送0x55 開頭的8個字節(jié)的命令,串口才開始顯示相應(yīng)的AD采樣數(shù)據(jù),否則此命令視為無效命令;第二個字節(jié)0x01或者0x00,其中0x01表示后面兩個字節(jié)是數(shù)據(jù)標(biāo)定值,0x00表示沒有標(biāo)定數(shù)據(jù);第三到六個字節(jié)表示要標(biāo)定的數(shù)據(jù),這里默認(rèn)為0x01 0x00,0x00 0x00;最后兩個字節(jié)為PWM占空比數(shù)據(jù),這里默認(rèn)為0x03和0x05,表示占空比為3:5。如圖10所示串口調(diào)試助手,協(xié)議為 55 01 01 00 00 03 05 的串口調(diào)試助手返回的AD采樣碼值,其協(xié)議為發(fā)送命令,標(biāo)定值為K=1,B=0,PWM占空比為3:5。
PWM又稱脈沖寬度調(diào)制,是利用Nios-II軟核的數(shù)字輸出對模擬電路進(jìn)行控制的一種有效手段,本項目主要是利用精準(zhǔn)的PWM波形對模擬量通道板上的電壓進(jìn)行控制,既通過PWM產(chǎn)生充放電電路,充放電電路根據(jù)充放電的時間間隔之比轉(zhuǎn)換成不同的紋波電壓,紋波電壓比上精密電阻產(chǎn)生4~20mA電流,所以對PWM的精度要求很高,如圖11所示為示波器測出的PWM波形圖,其占空比為3:5,可以用示波器測量出其高電平與低電平的比值很接近3:5。
本文主要完成以下工作:
(1)依托SUPMAX2000 DCS系統(tǒng)中的DPU卡和CPU卡為研究背景,使CPU卡上的ARM芯片和FPGA芯片合二為一,并且探究FPGA內(nèi)嵌Nios-II軟核技術(shù)的背景以及研究意義,綜合本項目的實際需求和可用資源與技術(shù),提出FPGA內(nèi)嵌Nios-II軟核技術(shù)的方案。
圖11 PWM波形圖
(2)軟核和應(yīng)用程序設(shè)計完成后,需要進(jìn)行功能測試。在AD兩端飛兩根線接在信號源兩端,通過給信號源不同的電壓值,用數(shù)碼管和液晶顯示器讀出采樣值,再用示波器對LED兩端進(jìn)行PWM波形測試,最后通過串口調(diào)試助手與上位機(jī)進(jìn)行通信。
綜上所述,通過FPGA內(nèi)嵌Nios-II軟核的技術(shù),經(jīng)過測試AD采樣功能模塊,基本滿足所有卡件千分之二的誤差要求;經(jīng)過測試PWM波形為占空比3:5,以及整個程序運(yùn)行時間和中斷響應(yīng)速度,和原LPC2136芯片上的性能相當(dāng)。實現(xiàn)了將原SUPMAX 2000 DCS系統(tǒng)中CPU卡上的LPC2136芯片和FPGA芯片整合為單一具有Nios-II軟核的FPGA芯片,并且使原有功能保持不變。
[1] Kung, Ying-Shieh, Huang, Ping-Hang, Su, Fong-Chin et al. Realization of an FPGA-based Motion control system for electric standing wheelchairs[C].//2011 IEEE Symposium on Industrial Electronics and Applications. 2011 : 47 - 52.
[2] A. Ben Atitallah, P. Kadiohik, N. Masmoudi et al. FPGA implementation of a HW/SW platform for multimedia embedded systems[J]. Design Automation for Embedded Systems,2008,12(4) : 293 - 311.
[3] 宋強(qiáng), 劉文華. 多電平通用空間矢量調(diào)制集成電路及其FPGA實現(xiàn)[J]. 中國電機(jī)工程學(xué)報, 2008, 28(12) : 95 - 100.
[4] 賈龍, 林巖. 基于DSP和FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計及實現(xiàn)[J]. 電子測量技術(shù), 2007, 30(5) : 95 - 97, 100.
[5] 紀(jì)志成. FPGA數(shù)字信號處理設(shè)計教程-System Generator入門與提高[M].西安 : 西安電子科技大學(xué)出版社, 2008.
[6] 李列文, 桂衛(wèi)華. 面向FPGA的低泄漏功耗SRAM單元設(shè)計方法研究[J].高技術(shù)通訊, 2012, 22(12) : 1292 - 1298.
[7] 王磊, 江小華. 基于SPI總線的FRAM存儲設(shè)計[J]. 現(xiàn)代電子技術(shù), 2013, 36(4) : 44 - 46.
[8] Fang, Yi-yuan, Chen, Xue-jun. Design and simulation of DDS based on Quartus II[C]. //2011 IEEE International Conference on Computer Science and Automation Engineering. v.2.2011 : 357 - 360.
FPGA System Design and Research Based on Nios-II
FPGA embedded Nios-II soft core is developed on the basis of traditional hardcore, which has the characteristics of low costs, high flexibility, short production cycle etc and are widely used in the intelligent electronic products, medical devices, wireless communication industry. This paper studies the performance and application of FPGA based soft core embedded Nios-II by focusing on the design of hardware and software. The main work of software design includes soft core design and driver writing soft core design which is designed in Quartus-II software development tools in the SOPC. Finally, soft-core technology embedded FPGA can customize the required peripheral interfaces according to the actual needs flexibly. By introducing emulator debug mode, you can query register and variable on real-time which changes the past inconvenient situation only to debug FPGA simulation and test port. By verifying the design, it can meet the precision of ADC sampling error, the precision of PWM duty ratio, the speed of interrupt response and conduct normal communications.
Embedded system; FPGA; Nios-II soft-core; ADC sampling
孫以環(huán)(1983-),女,江蘇沐陽人,碩士在讀,現(xiàn)任中國石油天然氣運(yùn)輸公司長慶運(yùn)輸分公司交通運(yùn)輸管理服務(wù)中心黨支部書記,主要研究方向為儀器儀表質(zhì)量控制。