主頁(yè)(http://www.130131.com):基于NIOSⅡ處理器的智能家居控制系統(tǒng)設(shè)計(jì)
1 引 言 與其他同級(jí)別的CPU,例如ARM、MIPS和POWER-PC等處理器相比NIOSⅡ處理器有其明顯的設(shè)計(jì)優(yōu)勢(shì);能夠隨著設(shè)計(jì)者的需要自由定制,并且SoPC技術(shù)將處理器、存儲(chǔ)器、I/O口等系統(tǒng)設(shè)計(jì)需要的功能模塊集成在一個(gè)PLD器件上,構(gòu)建成一個(gè)可編程的片上系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并且很好地利用IP復(fù)用技術(shù),在SoPC Builder開(kāi)發(fā)工具中包含NIOSⅡ處理器以及其他一些常用外設(shè)IP模塊,可以很方便地將處理器、存儲(chǔ)器和其他外設(shè)模塊連接起來(lái),形成一個(gè)完整的系統(tǒng),具有極大的應(yīng)用靈活性,并且對(duì)于系統(tǒng)升級(jí)來(lái)說(shuō)也是相當(dāng)方便的。 本文設(shè)計(jì)的智能家居控制系統(tǒng)采用基于NIOSⅡ的SoPC技術(shù),結(jié)合NIOSⅡ軟核處理器和CycloneⅡ開(kāi)發(fā)套件實(shí)現(xiàn)。整個(gè)硬件系統(tǒng)包括核心的FPGA芯片,外部擴(kuò)展的SDRAM,F(xiàn)LASH、各種輸入/輸出電路以及SMSC公司的LAN91C111以太網(wǎng)接口芯片等。
2 系統(tǒng)設(shè)計(jì) 設(shè)計(jì)首先在FPGA上搭建主要的系統(tǒng)架構(gòu),然后在FPGA外圍搭建系統(tǒng)擴(kuò)展電路,包括SDRAM,F(xiàn)LASH以太網(wǎng)接口電路,其次利用Visual Basic編寫(xiě)桌面控制軟件通過(guò)以太網(wǎng)來(lái)控制系統(tǒng),實(shí)現(xiàn)對(duì)于系統(tǒng)電路的遠(yuǎn)程控制。同時(shí),可以通過(guò)系統(tǒng)的輸入按鈕向遠(yuǎn)程客戶端發(fā)送信息,通過(guò)桌面軟件接收信息并顯示,實(shí)現(xiàn)兩端的消息通訊。由于系統(tǒng)利用以太網(wǎng)來(lái)進(jìn)行數(shù)據(jù)的傳輸和處理,將智能家居控制系統(tǒng)和目前功能日益強(qiáng)大的計(jì)算機(jī)以及廣泛應(yīng)用的互聯(lián)網(wǎng)緊密結(jié)合在一起,具有更強(qiáng)大的功能性以及使用的方便性。
3 系統(tǒng)硬件電路設(shè)計(jì)
在本系統(tǒng)設(shè)計(jì)中,主要使用了如下的Altera IP,并對(duì)其進(jìn)行相應(yīng)設(shè)置: (2)FLASH Memory(CFI):該IP是外部存儲(chǔ)器FLASH控制接口模塊,完成對(duì)FLASH的時(shí)序控制; (3)DDR SDRAM Controller:該IP是外部存儲(chǔ)器DDR SDRAM的接口控制模塊,完成對(duì)DDR SDRAM的時(shí)序控制; (4)JTAG UART:該IP完成在主機(jī)PC和SoPCBuilder系統(tǒng)之間的字符流傳輸,進(jìn)行程序的下載,以及硬件軟件的在線調(diào)試; (5)LAN91C111 Interface:該IP是外部以太網(wǎng)芯片接口模塊,完成NIOSⅡ系統(tǒng)對(duì)外部LAN91C111網(wǎng)卡芯片的控制,進(jìn)而實(shí)現(xiàn)系統(tǒng)的以太網(wǎng)數(shù)據(jù)傳輸; (6)Character LCD:該IP是外部LCD的接口控制模塊,完成對(duì)外部液晶模塊顯示的控制; (7)PIO:該IP是通用I/O控制模塊,用來(lái)控制外部的輸入輸出; (8)Interval timer:該IP是系統(tǒng)的定時(shí)器模塊,完成對(duì)系統(tǒng)時(shí)間的處理。 在選定系統(tǒng)需要的IP資源后,就可以通過(guò)SoPCBuilder很快地在FPGA上構(gòu)建一個(gè)嵌入式系統(tǒng)。首先,定制軟核處理器,設(shè)定為standard標(biāo)準(zhǔn)型NIOSⅡCPU,4 kB指令緩沖器,支持JTAG下載調(diào)試;16 M FLASH用來(lái)存放用戶數(shù)據(jù)和程序;16 M DDR SDRAM用來(lái)作為系統(tǒng)運(yùn)行時(shí)程序的存儲(chǔ)空間;定制Avalon三態(tài)總線架構(gòu),將LAN91C111設(shè)置為Avalon總線的從器件,通過(guò)Avalon總線與NIOSⅡ系統(tǒng)相連,并定制LAN91C111的驅(qū)動(dòng)模塊,實(shí)現(xiàn)系統(tǒng)對(duì)于該芯片的控制。 搭建完系統(tǒng)的模塊后,需要為各個(gè)模塊設(shè)定中斷號(hào),讓CPU在運(yùn)行過(guò)程中判斷內(nèi)部和外部各種中斷的優(yōu)先級(jí),其中系統(tǒng)定時(shí)器的中斷優(yōu)先級(jí)最高,然后各個(gè)模塊的中斷優(yōu)先級(jí)從高到低依次為JTAG模塊、外部按鈕輸入、EPCS配置芯片、LAN91C111芯片。同時(shí)需要將FLASH存儲(chǔ)器的基地址設(shè)為0x000000,以便使系統(tǒng)每次都能從FLASH中開(kāi)始執(zhí)行指令。這樣,在使用SoPC Builder中的組件編輯器將用戶外設(shè)和系統(tǒng)連接起來(lái)后,就可以運(yùn)行SoPC Builder生成系統(tǒng)的硬件描述語(yǔ)言文件,編寫(xiě)相關(guān)的Verilog HDL模塊,將系統(tǒng)模塊和外部器件連接,然后通過(guò)QuartusⅡ軟件編譯整個(gè)FPGA設(shè)計(jì)項(xiàng)目。
4 系統(tǒng)的軟件程序設(shè)計(jì) 在設(shè)計(jì)中使用LwIP(Lightweight TCP/IP Stack)組件實(shí)現(xiàn)系統(tǒng)的網(wǎng)絡(luò)控制功能,同時(shí)需要移植操作系統(tǒng)支持LwIP組件的使用,在系統(tǒng)中選擇移植μC/OS-Ⅱ操作系統(tǒng),在軟件的設(shè)計(jì)中添加上RTOS和LwIP這2個(gè)組件,就能很方便地實(shí)現(xiàn)本系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)傳輸與控制功能。
在NiosⅡIDE中建立新的工程后,首先在“SystemLibrary Properties”(系統(tǒng)庫(kù)屬性)中選擇RTOS Options進(jìn)行操作系統(tǒng)的參數(shù)設(shè)置。在μC/OS-Ⅱ中除了用戶創(chuàng)建的任務(wù)外,系統(tǒng)還自帶2個(gè)必須的任務(wù),分別為統(tǒng)計(jì)任務(wù)和空閑任務(wù),用來(lái)進(jìn)行系統(tǒng)的管理,所以考慮以后系統(tǒng)升級(jí)的方便,在對(duì)系統(tǒng)最大任務(wù)數(shù)進(jìn)行設(shè)置時(shí),最大任務(wù)數(shù)設(shè)為10。同時(shí)最低優(yōu)先級(jí)設(shè)為20,在這里數(shù)字越高代表任務(wù)優(yōu)先級(jí)越低,這個(gè)參數(shù)不受限于系統(tǒng)所帶的任務(wù)數(shù)。然后,在系統(tǒng)庫(kù)屬性中選擇Software Components進(jìn)行LwIP網(wǎng)絡(luò)協(xié)議棧的參數(shù)設(shè)置,在系統(tǒng)中使用的協(xié)議有UDP和TCP協(xié)議,并使用DHCP服務(wù)完成對(duì)系統(tǒng)自動(dòng)分配IP的功能,其他參數(shù)保存為默認(rèn)值。對(duì)μC/OS-Ⅱ和LwIP設(shè)置完成后,就是編寫(xiě)系統(tǒng)的相關(guān)功能任務(wù)。
|





