隨著IC設(shè)計與工藝水平的提高,,可編程邏輯器件FPGA因其功能強(qiáng)大,,設(shè)計靈活,開發(fā)周期短等特點(diǎn),,得到了越來越廣泛的應(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中實(shí)現(xiàn)成本只有35美分,,可以在多種系統(tǒng)設(shè)置組合中進(jìn)行選擇,滿足成本和功能要求,。這種設(shè)計方式使整個系統(tǒng)的裁減,、擴(kuò)充、升級變的容易,,可縮短系統(tǒng)的開發(fā)周期,,節(jié)省開發(fā)成本,,延長產(chǎn)品的生命周期。
1 系統(tǒng)總體框圖
系統(tǒng)一方面采集按鍵的鍵值顯示在數(shù)碼管上,,并將鍵值數(shù)據(jù)通過串口送給PC,;另一方面通過串口接收由PC發(fā)來的數(shù)據(jù),將收到的數(shù)據(jù)顯示在數(shù)碼管上,,由收到的數(shù)據(jù)控制相應(yīng)的發(fā)光二極管亮,。系統(tǒng)方框圖如圖1所示。
整個系統(tǒng)由Altera支持SOPC的CycloneII高性能,、低成本,、低功耗的FPGA和一些外圍電路組成。采用了Nios II嵌入式處理器,,在FPGA芯片上實(shí)現(xiàn)核心控制處理功能,。外圍電路主要有串行通信接口,,LED數(shù)碼管,、發(fā)光二極管,鍵盤,,F(xiàn)lash,、SRAM存儲器等組成。
2 硬件設(shè)計
利用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)的接口模塊,,加入到NiosII系統(tǒng)中,,將這些設(shè)計在Quartus II中編譯并生成sof格式文件后,下載到FPGA芯片中就形成了SOPC的嵌入式系統(tǒng)硬件平臺,。
2.1 NiosII軟核處理器
本設(shè)計選擇的處理器是Altera公司推出的第二代嵌入式NiosII軟核處理器,。Nios II處理器系列是一種面向用戶的,可以靈活定制的通用RISC(精簡指令集架構(gòu))嵌入式CPU,。Nios以軟核的方式提供給用戶,,并專為在Altera的FPGA上實(shí)現(xiàn)作了優(yōu)化,用于SOPC(片上可編程系統(tǒng))集成,,最后在FPGA上實(shí)現(xiàn),。
它的外設(shè)可以靈活選擇或增刪,可以自定制用戶邏輯為外設(shè),,可以允許用戶定制自己的指令集,,使用Nios加上外部的Flash、SRAM即可構(gòu)成一個嵌入式處理器系統(tǒng)。構(gòu)建的軟核處理器如圖2所示,。
2.2 串行通信接口
串行通信接口芯片選用MAX3232,,由電平轉(zhuǎn)換芯片完成從LVTTL電平到RS232C電平的轉(zhuǎn)換,如圖3所示,。
2.3 LED數(shù)碼管,、發(fā)光二極管
8位數(shù)碼管顯示數(shù)據(jù),通過接收的數(shù)據(jù)控制點(diǎn)亮相應(yīng)的二極管,。數(shù)碼管顯示譯碼在FPGA內(nèi)部實(shí)現(xiàn),。發(fā)光二極管通過限流電阻直接接在FPGA的I/O口上。
2.4 Flash,、SRAM存儲器,、鍵盤
系統(tǒng)片外FLASH選用AM29LV065DU,片外SRAM選用UM611024A,;作為運(yùn)行Nios II的FLASH和SRAM,。十個按鍵KEY0-KEY9直接與FPGA芯片的I/O口連接。
3 軟件設(shè)計
系統(tǒng)的軟件設(shè)計是利用Altera公司的軟件集成開發(fā)工具Nios II IDE來完成,,用C語言進(jìn)行編程,。系統(tǒng)的軟件主流程圖如圖4所示。接收上位機(jī)PC發(fā)來的數(shù)據(jù)采用中斷方式,,中斷方式能很快響應(yīng)提高程序的運(yùn)行效率,,如圖5所示。
4 結(jié)束語
本系統(tǒng)采用SOPC技術(shù)實(shí)現(xiàn)了鍵值采集及顯示,,并將數(shù)據(jù)通過串口發(fā)給上位機(jī)PC,;可以接收從上位機(jī)送來的數(shù)據(jù)并顯示,由接收的數(shù)據(jù)控制點(diǎn)亮相應(yīng)的二極管,。在設(shè)計中采用了Nios II軟核處理器,。通過實(shí)驗證實(shí)了系統(tǒng)工作穩(wěn)定,在實(shí)際的應(yīng)用中具有很好的參考價值,。