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





