新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 基于NIOSⅡ處理器的智能家居控制系統(tǒng)設計

基于NIOSⅡ處理器的智能家居控制系統(tǒng)設計

作者:李 雄,于心亮,趙東方,黃啟俊 時間:2008-12-17 來源:現(xiàn)代電子技術 收藏

1 引 言

本文引用地址:http://butianyuan.cn/article/90287.htm

  在現(xiàn)代家居環(huán)境中,隨著照明、智能電器、安防等設備的日益增多,電氣安裝、控制線路也日趨復雜。在滿足多功能要求的同時,安裝簡單、良好的擴展性和低廉的運行成本,成為現(xiàn)代智能家居系統(tǒng)技術發(fā)展的必然要求。隨著計算機功能的日益強大和網(wǎng)絡的普遍應用,人們對各種智能化產(chǎn)品的需求越來越強烈,家居智能化、網(wǎng)絡化、遠程化和系統(tǒng)化設計以其安全、舒適、便捷的服務而受到消費者的青睞。因此,智能家居控制系統(tǒng)有很大的發(fā)展?jié)摿Α?/p>

  與其他同級別的CPU,例如ARM、MIPS和POWER-PC等處理器相比處理器有其明顯的設計優(yōu)勢;能夠隨著設計者的需要自由定制,并且SoPC技術將處理器、存儲器、I/O口等系統(tǒng)設計需要的功能模塊集成在一個PLD器件上,構建成一個可編程的片上系統(tǒng),具有靈活的設計方式,可裁減、可擴充、可升級,并且很好地利用IP復用技術,在SoPC Builder開發(fā)工具中包含處理器以及其他一些常用外設IP模塊,可以很方便地將處理器、存儲器和其他外設模塊連接起來,形成一個完整的系統(tǒng),具有極大的應用靈活性,并且對于系統(tǒng)升級來說也是相當方便的。

  本文設計的智能家居控制系統(tǒng)采用基于的SoPC技術,結合NIOSⅡ軟核處理器和CycloneⅡ開發(fā)套件實現(xiàn)。整個硬件系統(tǒng)包括核心的FPGA芯片,外部擴展的SDRAM,F(xiàn)LASH、各種輸入/輸出電路以及SMSC公司的LAN91C111以太網(wǎng)接口芯片等。

2 系統(tǒng)設計

  對于一個智能家居控制系統(tǒng),需要滿足照明燈光控制、智能家電、家電電源的本地或遠程控制及安防監(jiān)測控制等要求,本系統(tǒng)將通過FPGA、NIOSⅡ處理器、以太網(wǎng)以及擴展的外部電路實現(xiàn)對于家電環(huán)境的遠程控制。

  設計首先在FPGA上搭建主要的系統(tǒng)架構,然后在FPGA外圍搭建系統(tǒng)擴展電路,包括SDRAM,F(xiàn)LASH以太網(wǎng)接口電路,其次利用Visual Basic編寫桌面控制軟件通過以太網(wǎng)來控制系統(tǒng),實現(xiàn)對于系統(tǒng)電路的遠程控制。同時,可以通過系統(tǒng)的輸入按鈕向遠程客戶端發(fā)送信息,通過桌面軟件接收信息并顯示,實現(xiàn)兩端的消息通訊。由于系統(tǒng)利用以太網(wǎng)來進行數(shù)據(jù)的傳輸和處理,將智能家居控制系統(tǒng)和目前功能日益強大的計算機以及廣泛應用的互聯(lián)網(wǎng)緊密結合在一起,具有更強大的功能性以及使用的方便性。

3 系統(tǒng)硬件電路設計

  Altera的NIOSⅡ處理器設計突出優(yōu)點表現(xiàn)在他的靈活性和可裁減性上,系統(tǒng)提供了大量IP,設計者可以任意對IP進行選擇,同時,用戶也可以根據(jù)需要定制自己的IP,實現(xiàn)自己所需要的功能。圖1表示本系統(tǒng)設計中CycloneⅡ芯片的內部配置情況以及與外圍設備的連接情況。

 

  在本系統(tǒng)設計中,主要使用了如下的Altera IP,并對其進行相應設置:

(1)NiosⅡProcessor:該IP是系統(tǒng)處理器模塊,作為整個系統(tǒng)運行的控制處理核心;

(2)FLASH Memory(CFI):該IP是外部存儲器FLASH控制接口模塊,完成對FLASH的時序控制;

(3)DDR SDRAM Controller:該IP是外部存儲器DDR SDRAM的接口控制模塊,完成對DDR SDRAM的時序控制;

(4)JTAG UART:該IP完成在主機PC和SoPCBuilder系統(tǒng)之間的字符流傳輸,進行程序的下載,以及硬件軟件的在線調試;

(5)LAN91C111 Interface:該IP是外部以太網(wǎng)芯片接口模塊,完成NIOSⅡ系統(tǒng)對外部LAN91C111網(wǎng)卡芯片的控制,進而實現(xiàn)系統(tǒng)的以太網(wǎng)數(shù)據(jù)傳輸;

(6)Character LCD:該IP是外部LCD的接口控制模塊,完成對外部液晶模塊顯示的控制;

(7)PIO:該IP是通用I/O控制模塊,用來控制外部的輸入輸出;

(8)Interval timer:該IP是系統(tǒng)的定時器模塊,完成對系統(tǒng)時間的處理。

  在選定系統(tǒng)需要的IP資源后,就可以通過SoPCBuilder很快地在FPGA上構建一個嵌入式系統(tǒng)。首先,定制軟核處理器,設定為standard標準型NIOSⅡCPU,4 kB指令緩沖器,支持JTAG下載調試;16 M FLASH用來存放用戶數(shù)據(jù)和程序;16 M DDR SDRAM用來作為系統(tǒng)運行時程序的存儲空間;定制Avalon三態(tài)總線架構,將LAN91C111設置為Avalon總線的從器件,通過Avalon總線與NIOSⅡ系統(tǒng)相連,并定制LAN91C111的驅動模塊,實現(xiàn)系統(tǒng)對于該芯片的控制。

  搭建完系統(tǒng)的模塊后,需要為各個模塊設定中斷號,讓CPU在運行過程中判斷內部和外部各種中斷的優(yōu)先級,其中系統(tǒng)定時器的中斷優(yōu)先級最高,然后各個模塊的中斷優(yōu)先級從高到低依次為JTAG模塊、外部按鈕輸入、EPCS配置芯片、LAN91C111芯片。同時需要將FLASH存儲器的基地址設為0x000000,以便使系統(tǒng)每次都能從FLASH中開始執(zhí)行指令。這樣,在使用SoPC Builder中的組件編輯器將用戶外設和系統(tǒng)連接起來后,就可以運行SoPC Builder生成系統(tǒng)的硬件描述語言文件,編寫相關的Verilog HDL模塊,將系統(tǒng)模塊和外部器件連接,然后通過QuartusⅡ軟件編譯整個FPGA設計項目。

4 系統(tǒng)的軟件程序設計

  在智能家居控制系統(tǒng)中,需要完成網(wǎng)絡數(shù)據(jù)傳輸和控制控能,因此在軟件設計中,需要完成2個方面:網(wǎng)絡服務功能,建立客戶端和本系統(tǒng)之間的網(wǎng)絡連接;響應以太網(wǎng)消息數(shù)據(jù),進行對應的電路控制。

  在設計中使用LwIP(Lightweight TCP/IP Stack)組件實現(xiàn)系統(tǒng)的網(wǎng)絡控制功能,同時需要移植操作系統(tǒng)支持LwIP組件的使用,在系統(tǒng)中選擇移植μC/OS-Ⅱ操作系統(tǒng),在軟件的設計中添加上RTOS和LwIP這2個組件,就能很方便地實現(xiàn)本系統(tǒng)的網(wǎng)絡數(shù)據(jù)傳輸與控制功能。

  在NiosⅡIDE中建立新的工程后,首先在“SystemLibrary Properties”(系統(tǒng)庫屬性)中選擇RTOS Options進行操作系統(tǒng)的參數(shù)設置。在μC/OS-Ⅱ中除了用戶創(chuàng)建的任務外,系統(tǒng)還自帶2個必須的任務,分別為統(tǒng)計任務和空閑任務,用來進行系統(tǒng)的管理,所以考慮以后系統(tǒng)升級的方便,在對系統(tǒng)最大任務數(shù)進行設置時,最大任務數(shù)設為10。同時最低優(yōu)先級設為20,在這里數(shù)字越高代表任務優(yōu)先級越低,這個參數(shù)不受限于系統(tǒng)所帶的任務數(shù)。然后,在系統(tǒng)庫屬性中選擇Software Components進行LwIP網(wǎng)絡協(xié)議棧的參數(shù)設置,在系統(tǒng)中使用的協(xié)議有UDP和TCP協(xié)議,并使用DHCP服務完成對系統(tǒng)自動分配IP的功能,其他參數(shù)保存為默認值。對μC/OS-Ⅱ和LwIP設置完成后,就是編寫系統(tǒng)的相關功能任務。

  在系統(tǒng)中主要設計了4個自定義任務,分別為:

  (1)系統(tǒng)初始化管理任務:用來初始化操作系統(tǒng)的數(shù)據(jù)結構和創(chuàng)建其他任務。該任務在初始化完成后自動刪除。

  (2)網(wǎng)絡DHCP服務管理任務:主要用來檢查DHCP服務是否成功,即系統(tǒng)是否成功分配到IP。該任務在完成后也自動刪除。任務流程圖如圖2所示:

 

  (3)遠程控制管理任務:主要用來在服務器和客戶端之間建立Socket連接,在服務器端接收從客戶端發(fā)送來的控制命令,并判斷這些命令來進行相應操作。任務流程圖如圖3所示:

 

  (4)服務器端中斷管理任務:主要在服務器端處理用戶產(chǎn)生的各種中斷,然后向客戶端發(fā)送相應命令執(zhí)行對應操作。任務流程圖如圖4所示。

5 遠程終端的桌面軟件設計

  在系統(tǒng)的硬件和軟件設計都完成后,為了進一步完善系統(tǒng)功能,以及提高使用的方便性,需要在客戶端編寫一個專用的界面軟件,代替客戶端命令行的操作,遠程用戶界面是利用Visual Basic 6.0來完成開發(fā)。Windows操作系統(tǒng)為Internet提供Windows Sockets(或Winsock)等標準接口,而VB則利用ActiveX控件Winsock為Internet提供標準接口,所以使用VB的Winsock控件來完成本軟件開發(fā)非常方便。

  設計的軟件界面如圖5所示:

 

  從軟件界面可以看到,在系統(tǒng)使用中通過“啟動連接”按鈕建立本地計算機和智能家居控制系統(tǒng)間的網(wǎng)絡連接。在“信息接收”對話框中可以接收并顯示從智能家居控制系統(tǒng)端發(fā)送過來的消息,在“命令發(fā)送”欄中可以選擇不同的服務通過智能家居控制系統(tǒng)響應對應的操作。

6 系統(tǒng)性能分析和功能驗證

  利用QuartusⅡ軟件對設計的系統(tǒng)進行綜合分析后可以知道,采用CycloneⅡEP2C35F672C6型號的FPGA設計的系統(tǒng)占用整個FPGA的資源是比較少的,使用3 658個邏輯單元,占總資源的11%,使用了52 224 b存儲單元,占總存儲量的10%,顯示了FPGA的強大功能,利用剩余的資源可以進行后續(xù)高級功能的擴展。

  在系統(tǒng)功能驗證中,設計2組外圍電路來驗證系統(tǒng)的功能。設計外部發(fā)光二極管LED電路驗證“開燈1”按鈕功能,模擬系統(tǒng)對燈具的控制作用;設計外部紅外信號發(fā)射與接收電路來(包括1對紅外發(fā)光二極管和紅外接收二極管電路)驗證“開家電1”按鈕功能,模擬系統(tǒng)對紅外家電的控制作用。在實際測試中,電路工作良好,利用FPGA引腳輸出3.3 V電壓作為外部電路的電源。當通過本地的桌面軟件建立本地計算機和智能家居控制系統(tǒng)間的網(wǎng)絡連接后,可以利用軟件上的操作按鈕方便地遠程控制LED電路和紅外發(fā)射接收電路,同時可以利用智能家居控制系統(tǒng)的輸入按鈕向客戶端發(fā)送消息,并顯示在客戶端軟件上,實現(xiàn)兩端的相互通訊。

7 結 語

  本文提出一種基于NIOSⅡ處理器的智能家居控制系統(tǒng)設計方法,在FPGA上搭建系統(tǒng)硬件架構,并擴展外部的系統(tǒng)電路和測試電路,利用LwIP組件和μC/OS-Ⅱ操作系統(tǒng)實現(xiàn)系統(tǒng)對網(wǎng)絡數(shù)據(jù)的控制處理,最后通過自行設計的桌面軟件,成功地實現(xiàn)對系統(tǒng)外部電路的遠程控制以及服務器和客戶端間的消息通訊。系統(tǒng)用SoPC技術實現(xiàn)將微處理器、外部存儲器控制接口、網(wǎng)絡芯片控制接口、按鈕和LCD等輸入輸出接口集成在一顆芯片上的設計思想。SoPC Builder在硬件和軟件上均為設計者提供較好的支持,NIOSⅡ IDE集成開發(fā)環(huán)境提供集成的網(wǎng)絡協(xié)議棧和操作系統(tǒng)移植,使得軟件開發(fā)更加便利。

 



關鍵詞: NIOSⅡ

評論


相關推薦

技術專區(qū)

關閉