1.引言
近幾年來,智能家居發(fā)展特別迅速,各種信息家電產(chǎn)品層出不窮[1]。為家電產(chǎn)品提供網(wǎng)絡(luò)支持,通過互聯(lián)網(wǎng)在遠程實現(xiàn)對家電運行狀態(tài)的查詢、控制以及家電產(chǎn)品通過網(wǎng)絡(luò)實現(xiàn)遠程升級將成為家電產(chǎn)品發(fā)展的熱點。目前的信息家電產(chǎn)品大多應(yīng)用嵌入式操作系統(tǒng),可以支配的資源有限,為他們提供完整的網(wǎng)絡(luò)協(xié)議支持會耗費太多的資源;同時,這些電子產(chǎn)品也只需要基本的或者說某些特定的網(wǎng)絡(luò)應(yīng)用。因而,把開源的輕量級IP協(xié)議——LwIP,移植到這些產(chǎn)品中是一個很好的選擇。
2.系統(tǒng)設(shè)計
3.硬件模塊設(shè)計
嵌入式片上操作系統(tǒng)SOPC作為FPGA的一個主要發(fā)展方向,具有良好的發(fā)展前景和優(yōu)秀的性能,在11.0后的QuartusII版本中,SOPC Builder更新為Qsys,應(yīng)用Qsys進行系統(tǒng)設(shè)計,能夠提高系統(tǒng)的性能、增強設(shè)計的重用功能、能更迅速的進行驗證[3]。在本設(shè)計中,F(xiàn)PGA選用Altera公司的EP2C35F484C6芯片,該芯片具有33216個邏輯單元,105個M4k,35個嵌入式18位乘18位乘法器。豐富的資源使得搭建嵌入式平臺更加容易,同時也為以后升級系統(tǒng)提供了發(fā)展的空間;SDRAM存儲器采用三星公司的k4s643232,這款芯片具有64Mbit的存儲容量,擁有32位的數(shù)據(jù)總線,與32位的NiosII處理器相匹配,該芯片的最大速度可以達到166MHz,具有非常大的數(shù)據(jù)吞吐量,遠遠超過系統(tǒng)性能的需求;以太網(wǎng)模塊采用RTL8212以太網(wǎng)收發(fā)器,該芯片可全雙工運行,支持10M/100M/1000M速度等級,具有自動極性修正的功能;采用非易失性Flash存儲芯片epcs16來存儲FPGA配置數(shù)據(jù)和NiosII軟件代碼,epcs16芯片在系統(tǒng)啟動時完成對FPGA的配置和NiosII的啟動,通過對epcs16芯片內(nèi)容的更新,還可以實現(xiàn)遠程系統(tǒng)升級[5]。系統(tǒng)還包含對8位LED顯示燈的控制模塊和8個獨立的撥碼開關(guān)的狀態(tài)查詢模塊,可以遠程讀取撥碼開關(guān)的狀態(tài)和控制LED燈的亮滅。系統(tǒng)的整個硬件結(jié)構(gòu)如圖2所示。
4.軟件模塊設(shè)計
4.2 LwIP協(xié)議的移植
LwIP是瑞典計算機科學(xué)院的一個開源的TCP/IP協(xié)議棧實現(xiàn),LwIP英語單為light weight Internet protocol,即輕量級網(wǎng)絡(luò)協(xié)議。LwIP主要應(yīng)用于嵌入式設(shè)計中進行網(wǎng)絡(luò)通信,它在提供必要的通信協(xié)議的基礎(chǔ)上,盡量減少代碼量和對內(nèi)存的占用。目前LwIP的最新版本為1.4.1,同以前的版本相比,更正前面版本的BUG和對一部分函數(shù)進行了改寫,同時添加了幾個函數(shù)和宏定義,協(xié)議運行時占用的內(nèi)存有部分減少。
LwIP協(xié)議棧并不依賴于某一個特殊的運行環(huán)境,它是獨立于操作系統(tǒng)之外的,LwIP協(xié)議棧與操作系統(tǒng)的聯(lián)系是通過操作系統(tǒng)模擬層來連接的。因此,對于LwIP的移植,本文就GCC編譯器,NiosII CPU和μC/OS-II 2.86版本以及以太網(wǎng)收發(fā)器RTL8212進行相關(guān)頭文件和C程序的編寫。
在移植過程中,GCC編譯器的結(jié)構(gòu)體是4字節(jié)對齊的,LwIP在處理數(shù)據(jù)包時是按照位進行處理的,需要定義以下幾個宏來讓處理器放棄對齊。
4.3 網(wǎng)絡(luò)收發(fā)器IP核的編寫
5.系統(tǒng)工作方式及測試
對于FPGA的遠程更新,將會對存儲芯片epcs16里面的內(nèi)容進行改寫;數(shù)據(jù)一旦損壞,將會對系統(tǒng)造成不可估量的損害,因此,通信過程將會采取更加復(fù)雜的驗證方式。其狀態(tài)轉(zhuǎn)移如下圖所示。當接收到的數(shù)據(jù)包是升級請求(FFFFFF101111)時,系統(tǒng)發(fā)送確認升級(FFFFFF101110)信息,然后把收到的升級數(shù)據(jù)存儲在SDRAM的一個連續(xù)的內(nèi)存空間;當升級數(shù)據(jù)接收完畢后,系統(tǒng)把收到的數(shù)據(jù)全部發(fā)送回去,然后主機對收到的數(shù)據(jù)進行檢查,確認數(shù)據(jù)沒有出現(xiàn)錯誤,當系統(tǒng)收到主機發(fā)送過來的確認無誤信息之后,系統(tǒng)激活讀寫EPCS FLASH的任務(wù),完成升級信息的存儲;這些工作進行完之后,系統(tǒng)重新啟動,加載新的配置數(shù)據(jù)和程序,完成系統(tǒng)升級。 文章來源:中國家具網(wǎng)m.zhennin.com 順德家具網(wǎng)www.sdjjw.com 轉(zhuǎn)載請保留原文鏈接
6.結(jié)論
在Altera公司的EP2C35F484C8芯片上,運用QuartusII和NiosII Eclipse軟件進行程序設(shè)計,編寫通用的網(wǎng)卡芯片控制MAC IP核,移植了μC/OS-II實時操作系統(tǒng)和LwIP協(xié)議棧,實現(xiàn)了TCP/IP通信。經(jīng)過遠程獲取撥碼開關(guān)的狀態(tài)和控制LED的亮滅以及實現(xiàn)系統(tǒng)遠程更新程序的實驗,來模擬智能家居的遠程監(jiān)控、遠程操得和遠程升級,到了正確的結(jié)果。隨著智能家居的迅速發(fā)展,在具有嵌入式系統(tǒng)的家電產(chǎn)品上面實現(xiàn)網(wǎng)絡(luò)遠程控制,將會越來越普及,同時給我們的生活帶來全新的體驗。
近幾年來,智能家居發(fā)展特別迅速,各種信息家電產(chǎn)品層出不窮[1]。為家電產(chǎn)品提供網(wǎng)絡(luò)支持,通過互聯(lián)網(wǎng)在遠程實現(xiàn)對家電運行狀態(tài)的查詢、控制以及家電產(chǎn)品通過網(wǎng)絡(luò)實現(xiàn)遠程升級將成為家電產(chǎn)品發(fā)展的熱點。目前的信息家電產(chǎn)品大多應(yīng)用嵌入式操作系統(tǒng),可以支配的資源有限,為他們提供完整的網(wǎng)絡(luò)協(xié)議支持會耗費太多的資源;同時,這些電子產(chǎn)品也只需要基本的或者說某些特定的網(wǎng)絡(luò)應(yīng)用。因而,把開源的輕量級IP協(xié)議——LwIP,移植到這些產(chǎn)品中是一個很好的選擇。
2.系統(tǒng)設(shè)計
3.硬件模塊設(shè)計
嵌入式片上操作系統(tǒng)SOPC作為FPGA的一個主要發(fā)展方向,具有良好的發(fā)展前景和優(yōu)秀的性能,在11.0后的QuartusII版本中,SOPC Builder更新為Qsys,應(yīng)用Qsys進行系統(tǒng)設(shè)計,能夠提高系統(tǒng)的性能、增強設(shè)計的重用功能、能更迅速的進行驗證[3]。在本設(shè)計中,F(xiàn)PGA選用Altera公司的EP2C35F484C6芯片,該芯片具有33216個邏輯單元,105個M4k,35個嵌入式18位乘18位乘法器。豐富的資源使得搭建嵌入式平臺更加容易,同時也為以后升級系統(tǒng)提供了發(fā)展的空間;SDRAM存儲器采用三星公司的k4s643232,這款芯片具有64Mbit的存儲容量,擁有32位的數(shù)據(jù)總線,與32位的NiosII處理器相匹配,該芯片的最大速度可以達到166MHz,具有非常大的數(shù)據(jù)吞吐量,遠遠超過系統(tǒng)性能的需求;以太網(wǎng)模塊采用RTL8212以太網(wǎng)收發(fā)器,該芯片可全雙工運行,支持10M/100M/1000M速度等級,具有自動極性修正的功能;采用非易失性Flash存儲芯片epcs16來存儲FPGA配置數(shù)據(jù)和NiosII軟件代碼,epcs16芯片在系統(tǒng)啟動時完成對FPGA的配置和NiosII的啟動,通過對epcs16芯片內(nèi)容的更新,還可以實現(xiàn)遠程系統(tǒng)升級[5]。系統(tǒng)還包含對8位LED顯示燈的控制模塊和8個獨立的撥碼開關(guān)的狀態(tài)查詢模塊,可以遠程讀取撥碼開關(guān)的狀態(tài)和控制LED燈的亮滅。系統(tǒng)的整個硬件結(jié)構(gòu)如圖2所示。
4.軟件模塊設(shè)計
4.2 LwIP協(xié)議的移植
LwIP是瑞典計算機科學(xué)院的一個開源的TCP/IP協(xié)議棧實現(xiàn),LwIP英語單為light weight Internet protocol,即輕量級網(wǎng)絡(luò)協(xié)議。LwIP主要應(yīng)用于嵌入式設(shè)計中進行網(wǎng)絡(luò)通信,它在提供必要的通信協(xié)議的基礎(chǔ)上,盡量減少代碼量和對內(nèi)存的占用。目前LwIP的最新版本為1.4.1,同以前的版本相比,更正前面版本的BUG和對一部分函數(shù)進行了改寫,同時添加了幾個函數(shù)和宏定義,協(xié)議運行時占用的內(nèi)存有部分減少。
LwIP協(xié)議棧并不依賴于某一個特殊的運行環(huán)境,它是獨立于操作系統(tǒng)之外的,LwIP協(xié)議棧與操作系統(tǒng)的聯(lián)系是通過操作系統(tǒng)模擬層來連接的。因此,對于LwIP的移植,本文就GCC編譯器,NiosII CPU和μC/OS-II 2.86版本以及以太網(wǎng)收發(fā)器RTL8212進行相關(guān)頭文件和C程序的編寫。
在移植過程中,GCC編譯器的結(jié)構(gòu)體是4字節(jié)對齊的,LwIP在處理數(shù)據(jù)包時是按照位進行處理的,需要定義以下幾個宏來讓處理器放棄對齊。
4.3 網(wǎng)絡(luò)收發(fā)器IP核的編寫
5.系統(tǒng)工作方式及測試
對于FPGA的遠程更新,將會對存儲芯片epcs16里面的內(nèi)容進行改寫;數(shù)據(jù)一旦損壞,將會對系統(tǒng)造成不可估量的損害,因此,通信過程將會采取更加復(fù)雜的驗證方式。其狀態(tài)轉(zhuǎn)移如下圖所示。當接收到的數(shù)據(jù)包是升級請求(FFFFFF101111)時,系統(tǒng)發(fā)送確認升級(FFFFFF101110)信息,然后把收到的升級數(shù)據(jù)存儲在SDRAM的一個連續(xù)的內(nèi)存空間;當升級數(shù)據(jù)接收完畢后,系統(tǒng)把收到的數(shù)據(jù)全部發(fā)送回去,然后主機對收到的數(shù)據(jù)進行檢查,確認數(shù)據(jù)沒有出現(xiàn)錯誤,當系統(tǒng)收到主機發(fā)送過來的確認無誤信息之后,系統(tǒng)激活讀寫EPCS FLASH的任務(wù),完成升級信息的存儲;這些工作進行完之后,系統(tǒng)重新啟動,加載新的配置數(shù)據(jù)和程序,完成系統(tǒng)升級。 文章來源:中國家具網(wǎng)m.zhennin.com 順德家具網(wǎng)www.sdjjw.com 轉(zhuǎn)載請保留原文鏈接
6.結(jié)論
在Altera公司的EP2C35F484C8芯片上,運用QuartusII和NiosII Eclipse軟件進行程序設(shè)計,編寫通用的網(wǎng)卡芯片控制MAC IP核,移植了μC/OS-II實時操作系統(tǒng)和LwIP協(xié)議棧,實現(xiàn)了TCP/IP通信。經(jīng)過遠程獲取撥碼開關(guān)的狀態(tài)和控制LED的亮滅以及實現(xiàn)系統(tǒng)遠程更新程序的實驗,來模擬智能家居的遠程監(jiān)控、遠程操得和遠程升級,到了正確的結(jié)果。隨著智能家居的迅速發(fā)展,在具有嵌入式系統(tǒng)的家電產(chǎn)品上面實現(xiàn)網(wǎng)絡(luò)遠程控制,將會越來越普及,同時給我們的生活帶來全新的體驗。