<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式網(wǎng)絡(luò )設備的MAC及IP地址設置

嵌入式網(wǎng)絡(luò )設備的MAC及IP地址設置

作者: 時(shí)間:2004-12-11 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:與通用計算機的網(wǎng)絡(luò )相比有相同的地方,也有其獨特的地方。本文以嵌放式操作系統uClinux在帶網(wǎng)絡(luò )接口的芯片S3C4510B上的應用為例,介紹一種的方法。

關(guān)鍵詞:Linux uClinux 嵌入式系統 MAX 以太網(wǎng)

嵌入式產(chǎn)品可分為信息電器、移動(dòng)計算設備、和工控、仿真等。

在網(wǎng)絡(luò )日益重要的今天,越來(lái)越多的嵌入式產(chǎn)品有了聯(lián)網(wǎng)的要求。以上嵌入式產(chǎn)品的分類(lèi)中,除了網(wǎng)絡(luò )設備特別強調網(wǎng)絡(luò )功能外,其它幾類(lèi)產(chǎn)品經(jīng)常也有網(wǎng)絡(luò )要求。

在談到網(wǎng)絡(luò )功能時(shí),很自然就會(huì )想到目前應用越來(lái)越廣的Linuxz操作系統。Linux對網(wǎng)絡(luò )有很強的支持能力,甚至比大多數操作系統的性能更好。實(shí)際上,Linux的發(fā)展是人們在網(wǎng)絡(luò )上的相互合作下進(jìn)行的,且Linux本來(lái)就是用在網(wǎng)絡(luò )上的。Linux幾乎支持所有常見(jiàn)的Internet協(xié)議,如FTP、POP、DNS、NIS等等。Linux也適合各種局域網(wǎng)。

Linux不僅能很好地用于通用計算機,而且已很好地移植于嵌入式系統。嵌入式Linux,就是經(jīng)過(guò)小型化裁減,而且可以被燒制到容量?jì)H為幾KB或幾MB的存儲器中,不需要硬盤(pán),應用于各種特定的嵌入式環(huán)境的專(zhuān)用中,不需要硬盤(pán),應用于各種一的嵌入式環(huán)境的專(zhuān)用操作系統。它保留了Linux的大多功能,特別是網(wǎng)絡(luò )支持能力。uClinux就是一個(gè)優(yōu)秀的嵌入式Linux操作系統。

本論文中要討論的MAX及地址分別指的是:

地址在這里特指以太網(wǎng)定義的一個(gè)48位(6字節)地址。每臺連到以太網(wǎng)網(wǎng)絡(luò )的計算機分配一個(gè)唯一的48位(6字節)數字,即它的以太網(wǎng)地址。為分配地址,以太網(wǎng)硬件制造商購買(mǎi)以太網(wǎng)地址塊,在生產(chǎn)以太網(wǎng)接口硬件時(shí)順序給它們分配。地址屬于物理層的地址,對于不同類(lèi)型的網(wǎng)絡(luò ),其物理址分配方式不同,但本論文中介紹的方法都適用。

IP地址(IP address)也叫互連網(wǎng)地址(Internet address)。它是TCP/IP的設計人員選擇的一個(gè)類(lèi)似于物理網(wǎng)絡(luò )的編址地址?;ミB網(wǎng)上的每個(gè)主機都分配了一個(gè)唯一的32位(4字節)整數地址。IP地址屬于軟件協(xié)議層的地址。只要主機上運行TCP/IP協(xié)議,其IP地址的編址方式就符合這個(gè)統一標準。

作為嵌入式網(wǎng)絡(luò )設備的“身份證”,MAC及IP地址的配置是嵌入式網(wǎng)絡(luò )設備必須面對的問(wèn)題。它與通用計算機的操作有些不同。

1 嵌入式網(wǎng)絡(luò )設備中MAC及IP地址的特點(diǎn)

在嵌入式系統中,操作系統和所有的應用軟件都被固化到Flash等存儲設備中。在嵌入式系統中很少使用外存。嵌入式系統的啟動(dòng)往往也是“自動(dòng)”的,即從上電到處于工作狀態(tài),不用人的介入。這是嵌入式設備應用的要求和特點(diǎn)。

嵌入式網(wǎng)絡(luò )設備的啟動(dòng),很自然會(huì )遇到MAC及IP地址的設置問(wèn)題。

對于通用計算機,其以太網(wǎng)的MAC地十一般是不能變的,它是由網(wǎng)卡生產(chǎn)廠(chǎng)家固化在網(wǎng)卡中的。除了網(wǎng)卡生產(chǎn)廠(chǎng)家,很少有其他人關(guān)心它。而IP地址,可以根據用戶(hù)的需要設為指定值。其設定的IP地址是存儲在硬盤(pán)上的,操作系統啟動(dòng)時(shí),可以自動(dòng)取得該值并啟用它。

圖2

嵌入式網(wǎng)絡(luò )設備中的MAC及IP地址的設置有它的特點(diǎn):

①關(guān)心和接觸嵌入式網(wǎng)絡(luò )設備MAC地址的人比關(guān)心和接觸通用計算機MAC地址的人多得多。因為設計、研究和生產(chǎn)嵌入式網(wǎng)絡(luò )設備的廠(chǎng)家比網(wǎng)卡的廠(chǎng)家多得多。

②在嵌入式設備中往往沒(méi)有硬盤(pán),它的操作系統和應用軟件通常是打包放在Flash等存儲設備中。系統啟動(dòng)時(shí),把Flash中的代碼釋放到內存中,再在內存中運行。比如嵌入式操作系統Uclinux,在用于S3C4510B這樣的帶以太網(wǎng)接口的嵌入式設備時(shí),把內核和應用程序代碼壓成一個(gè)映像文件包,在包中有網(wǎng)絡(luò )部分MAC及IP地址。但這些MAC及IP地址的值是在編譯映像文件時(shí)設定的,而且在編譯后的映像文件中的值是不能直觀(guān)地看到的,而且在編譯后的映像文件中的值是不能直觀(guān)地看到的,它是壓縮了的二進(jìn)制數據,不方便地映像文件中直接更改MAC及IP地址的值。

③對于使用同一映像文件的嵌入式網(wǎng)絡(luò )設備,如果不做進(jìn)一步的處理,其MAC及IP地址是相同的。這顯然不能滿(mǎn)足應用,因為不同的設備應該有不同的MAC及IP地址。而編譯生成映像文件往往要用十幾甚至幾十分鐘。對于生產(chǎn)廠(chǎng)家,不可能為每臺設備編譯一個(gè)特定的映像文件。

針對以上問(wèn)題,筆者在S3C4510B上運行uClinux時(shí),使用了一些特殊的方法來(lái)解決它。

2 MAC及IP地址的設置

筆者使用的S3C4510B嵌入式網(wǎng)絡(luò )設備的基本框圖如圖1所示。

其中,Flash是一片HY29LV160,共16Mb,分35個(gè)扇區。程序映像文件是從低扇區開(kāi)始存放的。

本嵌入式網(wǎng)絡(luò )設備系統的MAC及IP地址設置的基本思想是:把MAC及IP地址存放在Flash的未用扇區(一般在高扇區),嵌入式操作系統啟動(dòng)后,自動(dòng)運行一個(gè)程序去讀取MAC及IP地址并設置它。

用戶(hù)如何把MAC及IP地址放到Flash中?筆者使用的方法是通過(guò)計算機串口與網(wǎng)絡(luò )設備的RS232接口(即串口)相連,使用超級終端的方式,運行網(wǎng)絡(luò )設備中的程序把數據寫(xiě)入Flash中。

針對MAC及IP地址的設置,筆者編了以下兩個(gè)運行于嵌入式操作系統uClinux上的程序。

(1)MyIP:處理IP地址的設置

程序使用說(shuō)明:

myip-r ;讀取Flash中的IP地址并檢驗合法性和啟用它

myip-w 172.20.91.15 ;更改Flash中的IP地址為172.20.91.15, ;掩碼為255.255.255.0,并啟用它

myip-w 172.20.91.15-m 255.255.192.0 ;更改Flash中的IP地址為172.20.91.15,掩碼為255.255.192.0,并啟用它

(2)MyMAC,處理MAC地址的設置

程序使用說(shuō)明:

mymac-r ;讀取Flash中的MAC地址并檢驗合法性和啟用它

mymac-w aa:bb:dd:ee:ff,更改Flash中的MAC地址為aa:bb:cc:dd:ee:ff,并啟用它

運行在S3C4510B上的應用程序,可以用串口終端輸入指令的方式運行。作為嵌入式應用,要求系統復位就能自動(dòng)行動(dòng)指定的程序。這時(shí),我們得到另一種運行程序的方式:在uClinux開(kāi)發(fā)包的4510B文件中配置(相當于DOS中的自動(dòng)批處理程序)。如加入

/bin/./mymac-r

/bin/./myip-r

編譯后的映像文件就可使系統自動(dòng)運行mymac-r和myip-r,完成系統啟動(dòng)時(shí)自動(dòng)從Flash中讀取MAC地址和IP地址并配置它們。

對于嵌入式網(wǎng)絡(luò )設備生產(chǎn)廠(chǎng)家,可以使用以上兩個(gè)程序的帶“-W”參數的用法完成MAC和IP地址的設置;而嵌入式網(wǎng)絡(luò )設備的用戶(hù)只用知道處理IP地址的程序,一般不允許隨著(zhù)更改MAC地址。

圖2、圖3是兩個(gè)程序的流程。

在這里強調兩點(diǎn):

①這兩個(gè)程序都用到了Linux的網(wǎng)絡(luò )配置指令ifconfig(具體用法請查閱Linux下的相關(guān)幫助文檔)。在用該指令更改MAC地址時(shí),需要硬件的支持。如一般的通用計算機上,網(wǎng)卡的MAC地址不能更改,該指令執行時(shí)將報異常;而在S3C4510B這樣的嵌入式網(wǎng)絡(luò )設備上,就能成功更改設備運行時(shí)的MAC地址。

②Flash的基地址在操作系統啟動(dòng)前后一般是不同的,這主要是為了提高系統運行的速度。另外,對Flash進(jìn)行寫(xiě)操作之前應先擦除操作扇區,注意數據的保護;不要擦除整個(gè)Flash,否則連同映像文件一起被清掉后,系統也就不能正常運行了。在對Flash的操作時(shí)應特別注意這些。源網(wǎng)站:www.dpj.com.cn。

結語(yǔ)

嵌入式網(wǎng)絡(luò )設備的“身份證”――MAC及IP地址的設置,與通用計算機的設置有獨特之處。嵌入式網(wǎng)絡(luò )設備往往沒(méi)有硬盤(pán),不能像通用計算機那樣操作;也不可能為每一臺設備“量身”編譯映像文件。本論文介紹的方法――把MAC及IP地址存放在Flash等存儲設備上,嵌入式操作系統啟動(dòng)后,自動(dòng)運行一個(gè)程序去讀取MAC及IP地址并設置它。這樣就可以在同一映像文件包下方便地配置嵌入式網(wǎng)絡(luò )設備MAC及IP地址。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>