張 燕,任安虎
(1.陜西工業(yè)職業(yè)技術(shù)學(xué)院 電氣工程學(xué)院,陜西 咸陽 712000;2.西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710032)
隨著IC設(shè)計與工藝水平的提高,可編程邏輯器件FPGA因其功能強大,設(shè)計靈活,開發(fā)周期短等特點,得到了越來越廣泛的應(yīng)用。片上可編程系統(tǒng)(System On Programmable Chip,SOPC)的設(shè)計方法更是越來越受到重視。SOPC將微處理器、存儲器、定時器、通用I/O接口等系統(tǒng)設(shè)計必需的功能模塊以及用戶設(shè)計的特定功能的模塊集成到一片可編程邏輯器件上,構(gòu)成一個軟、硬件可編程的片上系統(tǒng)。采用NiosⅡ軟核處理器,使設(shè)計具有更大的靈活性。NiosⅡ系列32位RISC嵌入式處理器具有超過200DMIP的性能,在低成本FPGA中實現(xiàn)成本只有35美分,可以在多種系統(tǒng)設(shè)置組合中進(jìn)行選擇,滿足成本和功能要求[1]。這種設(shè)計方式使整個系統(tǒng)的裁減、擴(kuò)充、升級變的容易,可縮短系統(tǒng)的開發(fā)周期,節(jié)省開發(fā)成本,延長產(chǎn)品的生命周期。
系統(tǒng)一方面采集按鍵的鍵值顯示在數(shù)碼管上,并將鍵值數(shù)據(jù)通過串口送給PC;另一方面通過串口接收由PC發(fā)來的數(shù)據(jù),將收到的數(shù)據(jù)顯示在數(shù)碼管上,由收到的數(shù)據(jù)控制相應(yīng)的發(fā)光二極管亮。系統(tǒng)方框圖如圖1所示。
圖1 系統(tǒng)原理框圖Fig.1 System block diagram
整個系統(tǒng)由Altera支持SOPC的CycloneII高性能、低成本、低功耗的FPGA和一些外圍電路組成。采用了Nios II嵌入式處理器,在FPGA芯片上實現(xiàn)核心控制處理功能。外圍電路主要有串行通信接口,LED數(shù)碼管、發(fā)光二極管,鍵盤,F(xiàn)lash、SRAM存儲器等組成。
利用SOPC技術(shù)結(jié)合VHDL硬件描述語言,在FPGA芯片內(nèi)部設(shè)計硬件控制部分;再加上外圍電路就構(gòu)成了整個系統(tǒng)的硬件電路。FPGA內(nèi)部各模塊利用Altera公司提供的Quartus II開發(fā)軟件和其中集成的SOPC Builder系統(tǒng)開發(fā)工具來設(shè)計。SOPC Builder支持Nios II CPU的配置,并支持設(shè)計者在其提供的IP庫中,根據(jù)系統(tǒng)設(shè)計需要選擇相應(yīng)的接口模塊,加入到Nios II系統(tǒng)中,將這些設(shè)計在Quartus II中編譯并生成sof格式文件后,下載到FPGA芯片中就形成了SOPC的嵌入式系統(tǒng)硬件平臺[2]。
本設(shè)計選擇的處理器是Altera公司推出的第二代嵌入式NiosII軟核處理器。Nios II處理器系列是一種面向用戶的,可以靈活定制的通用RISC(精簡指令集架構(gòu))嵌入式CPU。Nios以軟核的方式提供給用戶,并專為在Altera的FPGA上實現(xiàn)作了優(yōu)化,用于SOPC(片上可編程系統(tǒng))集成,最后在FPGA上實現(xiàn)。
它的外設(shè)可以靈活選擇或增刪,可以自定制用戶邏輯為外設(shè),可以允許用戶定制自己的指令集,使用Nios加上外部的Flash、SRAM即可構(gòu)成一個嵌入式處理器系統(tǒng)[3-5]。構(gòu)建的軟核處理器如圖2所示。
圖2 系統(tǒng)軟核結(jié)構(gòu)圖Fig.2 System core structure
串行通信接口芯片選用MAX3232,由電平轉(zhuǎn)換芯片完成從LVTTL電平到RS232C電平的轉(zhuǎn)換,如圖3所示。
圖3 串行通信接口示意圖Fig.3 Serial communication on interface diagram
8位數(shù)碼管顯示數(shù)據(jù),通過接收的數(shù)據(jù)控制點亮相應(yīng)的二極管。數(shù)碼管顯示譯碼在FPGA內(nèi)部實現(xiàn)。發(fā)光二極管通過限流電阻直接接在FPGA的I/O口上。
系統(tǒng)片外FLASH選用AM29LV065DU,片外SRAM選用UM611024A;作為運行Nios II的FLASH和SRAM。十個按鍵KEY0—KEY9直接與FPGA芯片的I/O口連接。
系統(tǒng)的軟件設(shè)計是利用Altera公司的軟件集成開發(fā)工具Nios II IDE來完成,用C語言進(jìn)行編程[6-7]。系統(tǒng)的軟件主流程圖如圖4所示。接收上位機(jī)PC發(fā)來的數(shù)據(jù)采用中斷方式,中斷方式能很快響應(yīng)提高程序的運行效率,如圖5所示。
圖4 系統(tǒng)主流程圖Fig.4 Main flow diagram of system
圖5 中斷服務(wù)子程序流程圖Fig.5 Interrupt service subroutine flow chart
本系統(tǒng)采用SOPC技術(shù)實現(xiàn)了鍵值采集及顯示,并將數(shù)據(jù)通過串口發(fā)給上位機(jī)PC;可以接收從上位機(jī)送來的數(shù)據(jù)并顯示,由接收的數(shù)據(jù)控制點亮相應(yīng)的二極管。在設(shè)計中采用了Nios II軟核處理器。通過實驗證實了系統(tǒng)工作穩(wěn)定,在實際的應(yīng)用中具有很好的參考價值。
[1]周立功.SOPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2006.
[2]張志剛.FPGA與SOPC設(shè)計教程—DE2實踐[M].西安:西安電子科技大學(xué)出版社,2007.
[3]袁海林.基于Nios II的高速圖像采集系統(tǒng)的設(shè)計 [J].電子器件,2007,30(4):1229-1331,1336.YUAN Hai-lin.Designing of the high-speed image acquisition system on NiosII[J].Chinese Journal of Electron Devices,2007,30(4):1229-1331,1336.
[4]石新峰,董蘊華,楊航.基于NiosⅡ+uClinux的現(xiàn)代住宅智能家居控制系統(tǒng)研究[J].建筑科學(xué),2009,25(7):73-76.SHIXin-feng,DONG Yun-hua,YANG Hang.Intelligent home control system based on the Nios II+uClinu[J].Building Science,2009,25(7):73-76.
[5]潘松,黃繼業(yè).SOPC技術(shù)實用教程[M].北京:清華大學(xué)出版社,2005.
[6]史邵春,佟國香.基于SOPC的數(shù)據(jù)采集顯示系統(tǒng)的設(shè)計方法[J].微計算機(jī)信息,2011,27(1):104-106.SHI Shao-chun,TONG Guo-xiang.Design method of data gathering and displaying system based on SOPC[J].Microconputer Information,2011,27(1):104-106.
[7]江國強.SOPC技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.