?

基于Nios-II的FPGA系統設計與研究

2015-03-15 06:00中國石油天然氣運輸公司長慶運輸分公司孫以環
自動化博覽 2015年3期
關鍵詞:模擬量字節串口

中國石油天然氣運輸公司長慶運輸分公司 孫以環

基于Nios-II的FPGA系統設計與研究

中國石油天然氣運輸公司長慶運輸分公司 孫以環

FPGA內嵌Nios-II軟核具有成本低、靈活性高、生產周期短等特點,廣泛應用于智能電子產品、醫療電子設備、無線通信產業中。本文主要研究了基于FPGA內嵌Nios-II軟核的性能及其應用,重點進行硬件和軟件的設計,其中軟核設計是通過Quartus-II軟件里的SOPC-builder開發工具進行設計;最后FPGA內嵌Nios-II軟核可以根據實際需求定制所需要的外設接口,靈活可變。調試方式引入了仿真器,可以進行寄存器、變量實時查詢,改變以往FPGA只能通過仿真和測試端口進行調試的不便局面。本次設計通過驗證滿足ADC采樣誤差精度、PWM占空比精度、中斷響應速度等設計要求,并能夠進行正常的通信。

嵌入式系統;FPGA;Nios-II軟核;ADC采樣

1 引言

FPGA即現場可編程門陣列,是在PAL、GAL、EPLD等可編程器件的基礎上發展起來的。應用在專用集成電路領域中,不但可以彌補原有可編程器件門電路有限的不足,還可以解決定制電路的缺陷。

隨著大規模信息技術和集成電路技術的不斷發展,FPGA內嵌Nios-II軟核的技術作為目前最受歡迎的嵌入式系統開發,并且該邏輯門電路密度不斷提高,設計工具不斷優化,因此能夠實現越來越多的功能。FPGA內嵌Nios-II軟核技術具有研發成本低、設計周期短、產品便于更新、產品更改靈活方便等優點,受到越來越多的設計開發人員廣泛的關注與推廣,FPGA內嵌Nios-II軟核的研究方法迅速成為了集成電子設計領域中的非常重要組成部分[1~2]。

目前FPGA的研究主要集中在以下三個方向:

第一個方向,集成電路仿真測試。即測試新設計完成的集成電路芯片是否正確好用。然而如果直接生產測試芯片制作成本比較高,代工廠商不愿意制作少批量的試制品[3]。

第二個方向,通信設備的高速接口電路設計是FPGA的另一個重要應用方向,通過FPGA的高速處理接口的協議,可以實現高速的數據收發和交換[4]。

第三個方向,數學計算或者數字信號處理方向已成為一個新的研究方向,該方向在較大程度上已經超出了信號處理的范圍[5]。

2 FPGA內嵌Nios-II軟核的整體設計方案

本文的目的就是將CPU卡上的ARM7和FPGA整合為一個內嵌Nios-II軟核的FPGA,使內嵌的Nios-II軟核具有ARM7功能,同時還保留原有FPGA通信功能。采用黑金開發板為平臺實現軟核功能,然后通過飛線連接模擬量采樣板。整個開發流程圖如圖1所示:

圖1 項目整體開發流程圖

3 系統軟硬件設計

3.1硬件總體設計

FPGA內嵌Nios-II軟核的硬件電路設計大體可分為兩部分,其一為FPGA核心控件部分,即為黑金開發板;其二為外圍應用電路,即為模擬量采樣板。

由于FPGA本身功能強大并且線路很復雜。核心部分電路圍繞型號為EP4CE15F17C18的FPGA芯片,配合SRAM芯片或SDRAM芯片作為擴展內存使用,同時基本EEPROM配置芯片和復位控制芯片也集成在上面[6]。圖2所示為黑金開發板與模擬量通道卡飛線連接圖。其模擬量通道板為8點RTD卡,這樣的簡化處理不但節省了制板和器件費用,而且能起到類似的研究結果。

圖2 黑金開發板與模擬量通道卡飛線連接圖

整體硬件設計原理圖如圖3所示。開發板上的FPGA為主控制部分,模擬量通道板上的ADC為軟核的主要應用功能部分,FPGA原有功能則是需要保留的功能。Nios-II軟核相當于CPU,通過SPI接口與模擬量通道卡的AD相連接;串口與上位機相連,進行數據的標定;軟核與鐵電FRAM通過并行I/O口進行數據交換[7];SDRAM/SRAM主要用作存儲器設備,而數碼管和液晶顯示器主要用作顯示設備。

圖3 整體硬件設計原理圖

本文采用的芯片是FPGA(EP4CE15F17C18)芯片,圖4為FPGA芯片的硬件電路圖。

圖4 FPGA芯片的硬件電路

本文采用的存儲器芯片為EPCS64(EEPROM)芯片,如圖5所示。

圖5 EPCS引腳配置圖

本文的一些其他外設主要有:AD7793芯片、串口模塊、數碼管顯示模塊、液晶顯示模塊、電源模塊等。

3.2軟件總體設計

本文的FPGA內嵌Nios-II軟核的軟件設計分為兩大部分:Nios-II軟核設計和硬件驅動程序編寫。其中軟核設計主要是在Quartus-II軟件中的SOPC下設計自己所需要的軟核,而驅動程序編寫則是在Nios-II IDE軟件里,用C語言或者匯編語言進行驅動程序編寫。

不同于以往硬件和軟件概念的區分,軟核的設計是屬于一種模糊概念的應用設計。其主要目的是根據需求來定制一個合適的CPU軟核,使之可以滿足項目要求。具體到本研究中的軟核,我們將定制Nios核(計算核心)、倍頻電路(鎖相環PLL提高指令運行速度最高到100MHz)、JTAG調試口、外設(SPI、IIC、中斷等等)、系統ID(system ID)、程序存儲器(FRAM,最大到64Mbit存儲空間)和數據存儲器(SRAM/SDRAM共用,最大到64Mbit)、LED、六位數碼管、液晶顯示器,采用Avalon總線連接。原CPU卡上的LPC2136則為:ARM7內核、最高60MHz倍頻電路、JTAG、外設、程序存儲器和數據存儲器,AHB/APB總線連接,整個軟核框架示意圖如圖6所示。

圖6 FPGA內嵌CPU軟核結構示意圖

本文的軟核開發環境是Quartus-II軟件,選擇的是Altera公司的綜合性PLD/FPGA開發工具Quartus-II 11.0sp1(32bit)軟件[8]。

本設計中,兩個處理器的軟件程序都擁有自己獨有的一段存儲空間,這些存儲空間都位于同一個物理存儲設備SDRAM上,如圖7所示。

圖7 具有Avalon-MM接口的SDRAM控制器方框圖

SopcBuilder是Altera公司提供的一款圖形化系統設計實現工具,內嵌于Quartus II軟件中。利用SopcBuilder實現的雙核系統,如圖8所示。

圖8 內嵌Nios-II軟核的部分組件

在ALTERA公司的SOC產品配套開發工具里,SOPC組件已經嵌入到Quartus-II軟件的FPGA編譯工具中。打開該組件即可進行直觀的可視化操作。其中簡單的組件可以直接按提示操作。

4 驅動程序設計

在整個FPGA內嵌Nios-II軟核中,主程序是整個驅動程序的核心,是協調各個模塊正常工作的主體。主程序主要是進行初始化設置,具體的主程序流程圖如圖9所示,操作步驟如下:

(1)系統初始化主要包括并行端口初始化、IIC通信協議初始化、AD采樣模塊初始化、液晶顯示器模塊初始化、全局參數初始化。

(2)打開定時器,通過程序編寫相應PWM模塊的占空比,用示波器測量PWM波形,PWM的主要作用是控制AO口的輸出,既PWM占空比輸出紋波電壓,再由紋波電壓和精密電阻輸出4~20毫安的電流。

(3)通過串口協議進行相應的操作,該協議由簡單的一個字節組成RS232通信機制,如果通過串口發送過來的地址和卡件本身硬件設置的地址相同,則模擬卡件會執行相應的數據接收和發送,否則不會執行任何操作。

(4)檢查鐵電存儲器是否有更新,如果有數據更新就是通過串口發送過來的標定數據,則把數據值存到FRAM中,然后再從FRAM中讀取存儲的數值,對比兩者是否一樣,從而保證數據的可靠性。

(5)讀取AD采樣過來的數據并放入緩存中,再將數據進行相應的標定,然后通過數碼管和液晶顯示器顯示,或者通過串口發送給上位機。

(6)整個程序結束。

圖9 主程序設計流程圖

5 軟核性能測試

FPGA內嵌Nios-II軟核完成后需要進行性能測試。本文在IDE軟件中編寫的應用驅動程序,在Nios-II軟核成功運行后,串口調試功能和PWM波形圖數據進行測試。根據原CPU卡上ARM芯片LPC2136的功能情況,我們設定了程序主流程為軟核接收UART命令后,將外部ADC采樣后的數據經標定再通過串口發送回上位機,標定數據同樣來自于UART,同時根據UART送出的占空比為3:5的一路周期8ms的PWM。串口通信發送協議為8字節,從高到低依次為:采集命令(1個字節)、標定有無(1個字節),標定數據(4個字節)、占空比(2個字節);接收協議為8字節,從高到低依次為采樣數據(2個字節)、出錯標志(1個字節),其余為零,波特率為115200bit/s。

圖10 串口調試助手圖

并行通信具體協議為:55 01 xx xx xx xx 03 05。具體協議如下:只有給串口發送0x55 開頭的8個字節的命令,串口才開始顯示相應的AD采樣數據,否則此命令視為無效命令;第二個字節0x01或者0x00,其中0x01表示后面兩個字節是數據標定值,0x00表示沒有標定數據;第三到六個字節表示要標定的數據,這里默認為0x01 0x00,0x00 0x00;最后兩個字節為PWM占空比數據,這里默認為0x03和0x05,表示占空比為3:5。如圖10所示串口調試助手,協議為 55 01 01 00 00 03 05 的串口調試助手返回的AD采樣碼值,其協議為發送命令,標定值為K=1,B=0,PWM占空比為3:5。

PWM又稱脈沖寬度調制,是利用Nios-II軟核的數字輸出對模擬電路進行控制的一種有效手段,本項目主要是利用精準的PWM波形對模擬量通道板上的電壓進行控制,既通過PWM產生充放電電路,充放電電路根據充放電的時間間隔之比轉換成不同的紋波電壓,紋波電壓比上精密電阻產生4~20mA電流,所以對PWM的精度要求很高,如圖11所示為示波器測出的PWM波形圖,其占空比為3:5,可以用示波器測量出其高電平與低電平的比值很接近3:5。

6 結語

本文主要完成以下工作:

(1)依托SUPMAX2000 DCS系統中的DPU卡和CPU卡為研究背景,使CPU卡上的ARM芯片和FPGA芯片合二為一,并且探究FPGA內嵌Nios-II軟核技術的背景以及研究意義,綜合本項目的實際需求和可用資源與技術,提出FPGA內嵌Nios-II軟核技術的方案。

圖11 PWM波形圖

(2)軟核和應用程序設計完成后,需要進行功能測試。在AD兩端飛兩根線接在信號源兩端,通過給信號源不同的電壓值,用數碼管和液晶顯示器讀出采樣值,再用示波器對LED兩端進行PWM波形測試,最后通過串口調試助手與上位機進行通信。

綜上所述,通過FPGA內嵌Nios-II軟核的技術,經過測試AD采樣功能模塊,基本滿足所有卡件千分之二的誤差要求;經過測試PWM波形為占空比3:5,以及整個程序運行時間和中斷響應速度,和原LPC2136芯片上的性能相當。實現了將原SUPMAX 2000 DCS系統中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] 宋強, 劉文華. 多電平通用空間矢量調制集成電路及其FPGA實現[J]. 中國電機工程學報, 2008, 28(12) : 95 - 100.

[4] 賈龍, 林巖. 基于DSP和FPGA的高速數據采集系統的設計及實現[J]. 電子測量技術, 2007, 30(5) : 95 - 97, 100.

[5] 紀志成. FPGA數字信號處理設計教程-System Generator入門與提高[M].西安 : 西安電子科技大學出版社, 2008.

[6] 李列文, 桂衛華. 面向FPGA的低泄漏功耗SRAM單元設計方法研究[J].高技術通訊, 2012, 22(12) : 1292 - 1298.

[7] 王磊, 江小華. 基于SPI總線的FRAM存儲設計[J]. 現代電子技術, 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

孫以環(1983-),女,江蘇沐陽人,碩士在讀,現任中國石油天然氣運輸公司長慶運輸分公司交通運輸管理服務中心黨支部書記,主要研究方向為儀器儀表質量控制。

猜你喜歡
模擬量字節串口
No.8 字節跳動將推出獨立出口電商APP
基于NPORT的地面綜合氣象觀測系統通信測試方法及故障處理
淺談AB PLC串口跟RFID傳感器的通訊應用
一種模擬量模塊的應用
基于EM9000工控板高性能雙串口通信模型設計與實現
No.10 “字節跳動手機”要來了?
輕量級分組密碼Midori64的積分攻擊
船舶電子設備串口數據的軟件共享方法
關于600MW火電機組模擬量控制系統設計和研究
基于S7-200PLC 模擬量擴展模塊使用問題的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合