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