亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        LwIP在嵌入式Nios II軟核處理器上的移植及應(yīng)用

        2010-09-04 02:33:40元澤懷
        肇慶學(xué)院學(xué)報(bào) 2010年5期
        關(guān)鍵詞:嵌入式系統(tǒng)

        元澤懷

        (肇慶學(xué)院電子信息與機(jī)電工程學(xué)院,廣東肇慶526061)

        LwIP在嵌入式Nios II軟核處理器上的移植及應(yīng)用

        元澤懷

        (肇慶學(xué)院電子信息與機(jī)電工程學(xué)院,廣東肇慶526061)

        Nios II是專門為SOPC設(shè)計(jì)的一種軟核CPU,它以IP核的形式提供給嵌入式設(shè)計(jì)者.它的可配置特性給嵌入式系統(tǒng)設(shè)計(jì)帶來(lái)了更大的靈活性,可以說(shuō)它為嵌入式系統(tǒng)的設(shè)計(jì)提供了一種全新的思路.討論了LwIP在NIOS II處理器上的移植實(shí)現(xiàn)方法,并將其成功地應(yīng)用于簡(jiǎn)單socket服務(wù)器的設(shè)計(jì)中.

        LwIP;Nios II;嵌入式系統(tǒng);μC/OS II

        Nios II處理器是用戶可隨時(shí)配置和構(gòu)建的32位指令集和數(shù)據(jù)通道的嵌入式系統(tǒng)微處理器IP軟核,采用avalon總線結(jié)構(gòu)通信接口,帶有增強(qiáng)的內(nèi)存調(diào)試和軟件功能,它可以與各種外設(shè)相結(jié)合,構(gòu)成一個(gè)可定制的可編程片上系統(tǒng)SOPC(System On a Programable Chip).網(wǎng)絡(luò)協(xié)議LwIP(Light weight Internet Protocol),即輕量級(jí)網(wǎng)絡(luò)協(xié)議,是一種專門針對(duì)嵌入式系統(tǒng)應(yīng)用而設(shè)計(jì)的網(wǎng)絡(luò)通信協(xié)議,LwIP實(shí)現(xiàn)的重點(diǎn)是在保持TCP/IP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用,一般它只需要幾十Kbyte的RAM和40Kbyte左右的ROM就可以運(yùn)行,非常適合在以Nios II處理器為核心的系統(tǒng)中使用.Nios II處理器系統(tǒng)的網(wǎng)絡(luò)開(kāi)發(fā)平臺(tái)的系統(tǒng)模型如圖1.

        圖1 Nios II的網(wǎng)絡(luò)開(kāi)發(fā)模型

        圖2 Nios II軟件模型

        1 LwIP在Nios II上的移植

        Altera使用μC/OS-ⅡRTOS多線程環(huán)境移植LwIP,因此,要使用LwIP,必須建立基于μC/OS-ⅡRTOS上的C/C++項(xiàng)目.Altera對(duì)LwIP的移植是基于Nios II硬件抽象層HAL通用網(wǎng)絡(luò)設(shè)備模式的.通過(guò)這個(gè)模式,我們可以自編新驅(qū)動(dòng)程序去支撐目標(biāo)媒體訪問(wèn)控制器(MAC),維持HAL和socket API訪問(wèn)硬件[1].Nios II軟件體系結(jié)構(gòu)見(jiàn)圖2.

        1.1 初始化LwIP協(xié)議棧

        在調(diào)用OSStart()函數(shù)開(kāi)始μC/OS-Ⅱ調(diào)度程序前,必須先初始化LwIP[2].

        Lwip_stack_init(),這個(gè)函數(shù)執(zhí)行協(xié)議棧設(shè)置.

        init_done_func(),這個(gè)函數(shù)在棧初始化后被調(diào)用,函數(shù)必須調(diào)用lwip_devices_init()初始化所有安裝的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,然后創(chuàng)建接收任務(wù).

        lwip_devices_init(),這個(gè)函數(shù)說(shuō)明了所有在system.h文件里定義的已安裝的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序.函數(shù)返回非0值,表示初始化成功.如果成功,TCP/IP棧是可見(jiàn)的,然后就可為程序創(chuàng)建任務(wù).

        get_mac_addr()和get_ip_addr(),這2個(gè)函數(shù)在設(shè)備初始化期間被LwIP系統(tǒng)代碼調(diào)用.這些函數(shù)是LwIP系統(tǒng)代碼設(shè)置MAC和IP地址所必需的.

        通過(guò)編寫這些函數(shù),系統(tǒng)可以在任意位置存儲(chǔ)MAC地址和IP地址.

        1.2 調(diào)用socket接口

        一旦網(wǎng)絡(luò)設(shè)備被初始化,程序的其余部分必須使用socket API訪問(wèn)IP棧.

        要使用socket API建立和IP棧對(duì)話的新任務(wù),必須使用sys_thread_new()函數(shù),這個(gè)函數(shù)是LwIP OS移植層創(chuàng)建線程的一部分.sys_thread_new()調(diào)用μC/OS-ⅡOSTaskCreate()函數(shù)并執(zhí)行其他LwIP指定的動(dòng)作[3].我們可以通過(guò)在應(yīng)用程序里加入語(yǔ)句#include″lwip/sys.h″調(diào)用它.

        1.3 在Nios II IDE里配置LwIP

        LwIP協(xié)議棧有很多配置選項(xiàng),這些選項(xiàng)可以通過(guò)使用lwipopts.h文件里的#define來(lái)進(jìn)行配置.Nios II IDE集成開(kāi)發(fā)環(huán)境提供了一個(gè)圖形化的用戶接口GUI,見(jiàn)圖3.通過(guò)GUI可以配置LwIP選項(xiàng)(也就是修改lwipopts.h文件里的#define)而不必編輯源代碼,當(dāng)然有些選項(xiàng)是必須通過(guò)lwipopts.h文件才能改變的.

        圖3 Light wight TCP/IP棧選項(xiàng)

        在圖中,提供了IP、TCP、ARP、UDP、DHCP等各選項(xiàng)的配置選擇,用戶可直接根據(jù)實(shí)際需要進(jìn)行設(shè)置.至此,就完成了LwIP在Nios II上的整個(gè)移植過(guò)程[4].

        1.4 測(cè)試

        完成上面的移植修改工作后,就可以在μC/OS-Ⅱ中初始化LwIP,并創(chuàng)建TCP或UDP任務(wù)進(jìn)行測(cè)試了.這部分是用C語(yǔ)言實(shí)現(xiàn)的.關(guān)鍵部分的代碼和說(shuō)明如下:

        主程序中,創(chuàng)建了Lwip_init_task初始化LwIP任務(wù)(優(yōu)先級(jí)0)和user_task用戶任務(wù)(優(yōu)先級(jí)1).1wip_init_task任務(wù)中除了初始化硬件時(shí)鐘和LwIP之外,還創(chuàng)建了tcp ip_thread(優(yōu)先級(jí)3)和tcpecho_thread(優(yōu)先級(jí)4).實(shí)際上tcp ip_thread才是LwIP的主線程,多線程的Berkley API也是基于這個(gè)線程實(shí)現(xiàn)的,即上面的tcpecho_thread線程也要依靠tcp ip_thread線程來(lái)與外界通信.

        編譯下載運(yùn)行,用ping ip地址命令可以得到ICMP reply響應(yīng),用telnet ip地址30(登錄30號(hào)端口)命令可以看到echo server的回顯效果.說(shuō)明ARP、IP、ICMP、TCP協(xié)議都已正確運(yùn)行.

        2 應(yīng)用實(shí)例

        本系統(tǒng)使用Nios II開(kāi)發(fā)板進(jìn)行應(yīng)用程序的調(diào)試,開(kāi)發(fā)板以微控制器EP1C6Q240C8N為核心,外擴(kuò)2MB FLASH和1MB SRAM存儲(chǔ)器,用來(lái)存放調(diào)試過(guò)程中所用到的系統(tǒng)軟件、用戶代碼和數(shù)據(jù).該開(kāi)發(fā)板不含網(wǎng)卡部分,網(wǎng)卡由自己實(shí)現(xiàn).

        下面在Nios II處理器系統(tǒng)上設(shè)計(jì)了一個(gè)簡(jiǎn)單的socket服務(wù)器實(shí)例,實(shí)現(xiàn)LwIP功能,構(gòu)建一個(gè)嵌入式網(wǎng)絡(luò)開(kāi)發(fā)平臺(tái).該socket服務(wù)器實(shí)現(xiàn)的數(shù)據(jù)流程圖如圖4.

        圖4 簡(jiǎn)單socket服務(wù)器實(shí)現(xiàn)的數(shù)據(jù)流程圖

        該數(shù)據(jù)流程圖的工作過(guò)程是:

        (1)LwIP軟件組件接收網(wǎng)絡(luò)數(shù)據(jù)包(包含發(fā)自遠(yuǎn)程客戶端程序的一個(gè)LED命令).

        (2)LwIP通過(guò)TCP/IP協(xié)議處理進(jìn)來(lái)的網(wǎng)絡(luò)數(shù)據(jù)包,并通過(guò)套接字接口(socket API)將數(shù)據(jù)包提交給socket server task.

        (3)包含在數(shù)據(jù)包中的LED命令被提取并發(fā)給LED命令隊(duì)列,等待LED management tasks進(jìn)行處理.

        測(cè)試時(shí),可以根據(jù)個(gè)人的網(wǎng)絡(luò)設(shè)置情況改變開(kāi)發(fā)板的IP地址(本測(cè)試中IP為192.168.1.120,端口為30),應(yīng)用程序編譯下載運(yùn)行后,在Nios II IDE的console窗口出現(xiàn)如下提示:

        Simple Socket Server starting up

        Static IP Address is 192.168.1.120

        [sss_task]Simple Socket Server listening on port 30

        說(shuō)明簡(jiǎn)單Socket服務(wù)器已準(zhǔn)備就緒,開(kāi)始運(yùn)行.

        用ping ip地址命令可以得到ICMP reply響應(yīng),用telnet ip地址30(登錄30號(hào)端口)命令可以看到socket服務(wù)器的回顯效果.見(jiàn)圖5.

        這時(shí),輸入相應(yīng)的數(shù)字,開(kāi)發(fā)板上相應(yīng)的LED燈就閃爍.在Nios II IDE的console窗口出現(xiàn)如下提示:

        [sss_handle_accept]accepted connection request from 192.168.1.113

        [sss_handle_receive]processing RX data

        Value for LED_PIO_BASE set to 1.

        Value for LED_PIO_BASE set to 3.

        Value for LED_PIO_BASE set to 7.

        Value for LED_PIO_BASE set to 15.

        Value for LED_PIO_BASE set to 31.

        Value for LED_PIO_BASE set to 63.

        Value for LED_PIO_BASE set to 127.

        Value for LED_PIO_BASE set to 255.

        說(shuō)明ARP、IP、ICMP、TCP協(xié)議都已正確運(yùn)行.

        圖5 簡(jiǎn)單Socket服務(wù)器的響應(yīng)窗口

        3 結(jié)束語(yǔ)

        借助以太網(wǎng)和嵌入式技術(shù),把嵌入式系統(tǒng)連接到internet上,已成為嵌入式系統(tǒng)今后發(fā)展的一個(gè)重要的方向.本文的創(chuàng)新點(diǎn)是在Nios II處理器上實(shí)現(xiàn)了LwIP網(wǎng)絡(luò)協(xié)議的移植,并成功應(yīng)用于簡(jiǎn)單socket服務(wù)器的設(shè)計(jì).該內(nèi)容后續(xù)可應(yīng)用于嵌入式系統(tǒng)的遠(yuǎn)程智能控制等網(wǎng)絡(luò)開(kāi)發(fā).

        [1]李良仁,彭雪峰.LwIP協(xié)議棧在NIOS II系統(tǒng)中的移植[J].機(jī)電技術(shù),2009(4):25-28.

        [2]張翠,鄧志良.LwIP協(xié)議棧在μC/OS-II上的移植和應(yīng)用[J].微計(jì)算機(jī)信息,2010(3):84-85.

        [3]楊玉佳,李廣軍,郊志勇.基于LwIP的串口以太網(wǎng)協(xié)議轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)應(yīng)用,2009(3):63-65.

        [4]時(shí)建雷,肖鐵軍.面向LwIP的Nios II網(wǎng)絡(luò)驅(qū)動(dòng)程序開(kāi)發(fā)[J].微計(jì)算機(jī)信息,2008(24):36-38.

        The Porting of LwIP in Nios II soft-core Processor and its Application

        YUAN Zehuai
        (College of Electronic InformationandMechatronic Engineering,Zhaoqing University,Zhaoqing,Guangdong 526061,China)

        Nios II is a kind of soft CPU designed forSOPC specially.Forembedded system designer,it is a kind of IP core.Nios II has the characteristics of reconfiguration,which brings more flexibility to the designer. Nios II has offered a kind of brand-new train of thought to Embedded System designer.The porting of LwIP in Nios IIProcessoris discussed,anditis successfully appliedto the designof asimple socketserver.

        LwIP;NiosII;EmbeddedSystems;μC/OS II

        TP399

        A

        1009-8445(2010)05-0021-04

        (責(zé)任編輯:徐生然)

        2010-07-15

        元澤懷(1975-),男,廣東惠來(lái)人,肇慶學(xué)院電子信息與機(jī)電工程學(xué)院高級(jí)實(shí)驗(yàn)師,碩士.

        猜你喜歡
        嵌入式系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        男女一区视频在线观看| 屁屁影院一区二区三区| 久久精品亚洲精品毛片| 少妇人妻一区二区三飞| 亚洲中字幕日产av片在线| 久久丝袜熟女av一区二区| 玩弄白嫩少妇xxxxx性| 欧美午夜精品久久久久久浪潮| 久久夜色撩人精品国产小说| 蜜桃视频一区二区三区在线| 一本色道久在线综合色| 无码国产69精品久久久久孕妇| 国产A√无码专区| 蜜桃av噜噜一区二区三区香| 久久久精品毛片免费观看| 国产成人精品白浆久久69| 亚洲人在线观看| 日韩人妖一区二区三区| 91中文人妻熟女乱又乱| 国产真实伦在线观看| 手机色在线| 今井夏帆在线中文字幕| 日本成本人片免费网站| 久久香蕉国产精品一区二区三| 毛片av在线尤物一区二区| 色噜噜亚洲精品中文字幕| 国产一区二区三区在线观看完整版| 欧美熟妇另类久久久久久不卡 | 一本之道加勒比在线观看| 伊人情人色综合网站| 300部国产真实乱| 成人a在线观看| 日韩偷拍视频一区二区三区| 日韩人妻大奶子生活片| 欧美顶级少妇作爱| 亚洲巨乳自拍在线视频| 五月婷网站| 日韩一区二区中文天堂| 国产日韩av在线播放| 国产区精品| 亚洲精品美女久久久久99|