您的位置首页>互联网>

嵌入式网络设备的MAC及IP地址设置

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解嵌入式网络设备的MAC及IP地址设置问题。摘要:嵌入式网络设备与通用计算机的网络设...

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解嵌入式网络设备的MAC及IP地址设置问题。

摘要:嵌入式网络设备与通用计算机的网络设置相比,有相似之处,也有独特之处。以嵌入式操作系统uClinux在带网络接口的嵌入式芯片S3C4510B中的应用为例,介绍了一种在嵌入式网络设备中设置MAC和ip地址的方法。关键词:Linux uClinux嵌入式系统IP地址MAX地址以太网嵌入式产品可分为信息家电、移动计算设备、网络设备、工业控制、仿真等。在网络日益重要的今天,越来越多的嵌入式产品有了联网的需求。在以上几类嵌入式产品中,除了强调网络功能的网络设备外,其他几类产品往往也有网络需求。说到网络功能,自然会想到目前应用越来越广泛的Linuxz操作系统。Linux对网络有很强的支持,甚至比大多数操作系统都好。其实Linux的开发是在网络上的人的配合下进行的,Linux最初是在网络上使用的。Linux几乎支持所有常见的互联网协议,如FTP、POP、DNS、NIS等。Linux也适合各种局域网。Linux不仅在通用计算机中得到了很好的应用,而且移植到了嵌入式系统中。已经小型化、缩小化的嵌入式Linux,可以刻录成容量只有几KB或者几MB的内存,不用硬盘。它是一种特殊的操作系统,适用于各种特定的嵌入式环境,无需硬盘。它保留了Linux的大部分功能,尤其是网络支持能力。UClinux是一款优秀的嵌入式linux操作系统。本文要讨论的MAX和IP地址分别指:这里的MAC地址具体指以太网定义的一个48位(6字节)地址。连接到以太网的每台计算机都被分配一个唯一的48位(6字节)数字,即其以太网地址。为了分配地址,以太网硬件制造商购买以太网地址块,并在生产以太网接口硬件时按顺序分配给它们。媒体访问控制地址属于物理层地址。对于不同类型的网络,物理地址分配方法不同,但本文介绍的设置方法都适用。IP地址也叫互联网地址。它是一个寻址地址,类似于TCP/IP设计者选择的物理网络。互联网上的每台主机都被分配了一个唯一的32位(4字节)整数地址。IP地址属于软件协议层的地址。只要主机上运行着TCP/IP协议,其IP地址的寻址方式就符合这个统一标准。作为嵌入式网络设备的“身份证”,MAC和IP地址的配置是嵌入式网络设备必须面对的问题。它与通用计算机的操作有些不同。1嵌入式网络设备中MAC和IP地址的特点在嵌入式系统中,操作系统和所有应用软件都被固化到Flash等存储设备中。嵌入式系统很少使用外部存储器。嵌入式系统的启动往往是“自动”的,即从开机到工作状态,无需人为干预。这是嵌入式设备应用的要求和特点。嵌入式网络设备启动时,自然会遇到设置MAC和IP地址的问题。对于通用计算机来说,以太网的MAC地址一般是不可更改的,由网卡厂商固化在网卡中。除了网卡厂商,很少有人关心。IP地址可以根据用户的需要设置为指定的值。设置的IP地址存储在硬盘上,当操作系统启动时,它可以自动获取值并启用它。图2嵌入式网络设备中MAC和IP地址的设置各有特点:关心和联系嵌入式网络设备MAC地址的人比关心和联系通用计算机MAC地址的人多得多。因为设计、研究和生产嵌入式网络设备的厂商比网卡的厂商多得多。嵌入式设备中往往没有硬盘,其操作系统和应用软件通常封装在Flash等存储设备中。当系统启动时,将闪存中的代码释放到内存中,并在内存中运行。

比如嵌入式操作系统Uclinux,在S3C4510B等具有以太网接口的嵌入式设备中使用时,将内核和应用代码压入一个镜像文件包,其中包含网络部分的MAC和IP地址。但是,这些MAC和IP地址值是在编译图像文件时设置的,无法直观地看到编译图像文件中的值,也无法直观地看到编译图像文件中的值。它们是压缩的二进制数据,因此不方便直接更改图像文件中的MAC和IP地址的值。对于使用相同镜像文件的嵌入式网络设备,其MAC和IP地址相同,无需进一步处理。显然,这不能满足应用,因为不同的设备应该有不同的MAC和IP地址。然而,编译和生成图像文件通常需要十几分钟甚至几十分钟。对于制造商来说,不可能为每个设备编译一个特定的映像。

件。

针对以上问题,笔者在S3C4510B上运行uClinux时,使用了一些特殊的方法来解决它。

2 MAC及IP地址的设置

笔者使用的S3C4510B嵌入式网络设备的基本框图如图1所示。

其中,Flash是一片HY29LV160,共16Mb,分35个扇区。程序映像文件是从低扇区开始存放的。

本嵌入式网络设备系统的MAC及IP地址设置的基本思想是:把MAC及IP地址存放在Flash的未用扇区(一般在高扇区),嵌入式操作系统启动后,自动运行一个程序去读取MAC及IP地址并设置它。

用户如何把MAC及IP地址放到Flash中?笔者使用的方法是通过计算机串口与网络设备的RS232接口(即串口)相连,使用超级终端的方式,运行网络设备中的程序把数据写入Flash中。

针对MAC及IP地址的设置,笔者编了以下两个运行于嵌入式操作系统uClinux上的程序。

(1)MyIP:处理IP地址的设置

程序使用说明:

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地址的设置

程序使用说明:

mymac-r ;读取Flash中的MAC地址并检验合法性和启用它

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

运行在S3C4510B上的应用程序,可以用串口终端输入指令的方式运行。作为嵌入式应用,要求系统复位就能自动行动指定的程序。这时,我们得到另一种运行程序的方式:在uClinux开发包的4510B文件中配置(相当于DOS中的自动批处理程序)。如加入

/bin/./mymac-r

/bin/./myip-r

编译后的映像文件就可使系统自动运行mymac-r和myip-r,完成系统启动时自动从Flash中读取MAC地址和IP地址并配置它们。

对于嵌入式网络设备生产厂家,可以使用以上两个程序的带“-W”参数的用法完成MAC和IP地址的设置;而嵌入式网络设备的用户只用知道处理IP地址的程序,一般不允许随着更改MAC地址。

图2、图3是两个程序的流程。 在这里强调两点:

①这两个程序都用到了Linux的网络配置指令ifconfig(具体用法请查阅Linux下的相关帮助文档)。在用该指令更改MAC地址时,需要硬件的支持。如一般的通用计算机上,网卡的MAC地址不能更改,该指令执行时将报异常;而在S3C4510B这样的嵌入式网络设备上,就能成功更改设备运行时的MAC地址。

②Flash的基地址在操作系统启动前后一般是不同的,这主要是为了提高系统运行的速度。另外,对Flash进行写操作之前应先擦除操作扇区,注意数据的保护;不要擦除整个Flash,否则连同映像文件一起被清掉后,系统也就不能正常运行了。在对Flash的操作时应特别注意这些。源网站:www.dpj.com.cn。

结语

嵌入式网络设备的“身份证”——MAC及IP地址的设置,与通用计算机的设置有独特之处。嵌入式网络设备往往没有硬盘,不能像通用计算机那样操作;也不可能为每一台设备“量身”编译映像文件。本论文介绍的方法——把MAC及IP地址存放在Flash等存储设备上,嵌入式操作系统启动后,自动运行一个程序去读取MAC及IP地址并设置它。这样就可以在同一映像文件包下方便地配置嵌入式网络设备MAC及IP地址。

摘要:嵌入式网络设备与通用计算机的网络设置相比有相同的地方,也有其独特的地方。本文以嵌放式操作系统uClinux在带网络接口的嵌入式芯片S3C4510B上的应用为例,介绍一种嵌入式网络设备中MAC及IP地址设置的方法。

关键词:Linux uClinux 嵌入式系统 IP地址 MAX地址 以太网

嵌入式产品可分为信息电器、移动计算设备、网络设备和工控、仿真等。

在网络日益重要的今天,越来越多的嵌入式产品有了联网的要求。以上嵌入式产品的分类中,除了网络设备特别强调网络功能外,其它几类产品经常也有网络要求。

在谈到网络功能时,很自然就会想到目前应用越来越广的Linuxz操作系统。Linux对网络有很强的支持能力,甚至比大多数操作系统的性能更好。实际上,Linux的发展是人们在网络上的相互合作下进行的,且Linux本来就是用在网络上的。Linux几乎支持所有常见的Internet协议,如FTP、POP、DNS、NIS等等。Linux也适合各种局域网。

Linux不仅能很好地用于通用计算机,而且已很好地移植于嵌入式系统。嵌入式Linux,就是经过小型化裁减,而且可以被烧制到容量仅为几KB或几MB的存储器中,不需要硬盘,应用于各种特定的嵌入式环境的专用中,不需要硬盘,应用于各种一的嵌入式环境的专用操作系统。它保留了Linux的大多功能,特别是网络支持能力。uClinux就是一个优秀的嵌入式Linux操作系统。

本论文中要讨论的MAX及IP地址分别指的是:

MAC地址在这里特指以太网定义的一个48位(6字节)地址。每台连到以太网网络的计算机分配一个唯一的48位(6字节)数字,即它的以太网地址。为分配地址,以太网硬件制造商购买以太网地址块,在生产以太网接口硬件时顺序给它们分配。MAC地址属于物理层的地址,对于不同类型的网络,其物理址分配方式不同,但本论文中介绍的设置方法都适用。

IP地址(IP address)也叫互连网地址(Internet address)。它是TCP/IP的设计人员选择的一个类似于物理网络的编址地址。互连网上的每个主机都分配了一个唯一的32位(4字节)整数地址。IP地址属于软件协议层的地址。只要主机上运行TCP/IP协议,其IP地址的编址方式就符合这个统一标准。

作为嵌入式网络设备的“身份证”,MAC及IP地址的配置是嵌入式网络设备必须面对的问题。它与通用计算机的操作有些不同。

1 嵌入式网络设备中MAC及IP地址的特点

在嵌入式系统中,操作系统和所有的应用软件都被固化到Flash等存储设备中。在嵌入式系统中很少使用外存。嵌入式系统的启动往往也是“自动”的,即从上电到处于工作状态,不用人的介入。这是嵌入式设备应用的要求和特点。

嵌入式网络设备的启动,很自然会遇到MAC及IP地址的设置问题。

对于通用计算机,其以太网的MAC地十一般是不能变的,它是由网卡生产厂家固化在网卡中的。除了网卡生产厂家,很少有其他人关心它。而IP地址,可以根据用户的需要设为指定值。其设定的IP地址是存储在硬盘上的,操作系统启动时,可以自动取得该值并启用它。图2 嵌入式网络设备中的MAC及IP地址的设置有它的特点:

①关心和接触嵌入式网络设备MAC地址的人比关心和接触通用计算机MAC地址的人多得多。因为设计、研究和生产嵌入式网络设备的厂家比网卡的厂家多得多。

②在嵌入式设备中往往没有硬盘,它的操作系统和应用软件通常是打包放在Flash等存储设备中。系统启动时,把Flash中的代码释放到内存中,再在内存中运行。比如嵌入式操作系统Uclinux,在用于S3C4510B这样的带以太网接口的嵌入式设备时,把内核和应用程序代码压成一个映像文件包,在包中有网络部分MAC及IP地址。但这些MAC及IP地址的值是在编译映像文件时设定的,而且在编译后的映像文件中的值是不能直观地看到的,而且在编译后的映像文件中的值是不能直观地看到的,它是压缩了的二进制数据,不方便地映像文件中直接更改MAC及IP地址的值。

③对于使用同一映像文件的嵌入式网络设备,如果不做进一步的处理,其MAC及IP地址是相同的。这显然不能满足应用,因为不同的设备应该有不同的MAC及IP地址。而编译生成映像文件往往要用十几甚至几十分钟。对于生产厂家,不可能为每台设备编译一个特定的映像文件。

针对以上问题,笔者在S3C4510B上运行uClinux时,使用了一些特殊的方法来解决它。

2 MAC及IP地址的设置

笔者使用的S3C4510B嵌入式网络设备的基本框图如图1所示。

其中,Flash是一片HY29LV160,共16Mb,分35个扇区。程序映像文件是从低扇区开始存放的。

本嵌入式网络设备系统的MAC及IP地址设置的基本思想是:把MAC及IP地址存放在Flash的未用扇区(一般在高扇区),嵌入式操作系统启动后,自动运行一个程序去读取MAC及IP地址并设置它。

用户如何把MAC及IP地址放到Flash中?笔者使用的方法是通过计算机串口与网络设备的RS232接口(即串口)相连,使用超级终端的方式,运行网络设备中的程序把数据写入Flash中。

针对MAC及IP地址的设置,笔者编了以下两个运行于嵌入式操作系统uClinux上的程序。

(1)MyIP:处理IP地址的设置

程序使用说明:

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地址的设置

程序使用说明:

mymac-r ;读取Flash中的MAC地址并检验合法性和启用它

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

运行在S3C4510B上的应用程序,可以用串口终端输入指令的方式运行。作为嵌入式应用,要求系统复位就能自动行动指定的程序。这时,我们得到另一种运行程序的方式:在uClinux开发包的4510B文件中配置(相当于DOS中的自动批处理程序)。如加入

/bin/./mymac-r

/bin/./myip-r

编译后的映像文件就可使系统自动运行mymac-r和myip-r,完成系统启动时自动从Flash中读取MAC地址和IP地址并配置它们。

对于嵌入式网络设备生产厂家,可以使用以上两个程序的带“-W”参数的用法完成MAC和IP地址的设置;而嵌入式网络设备的用户只用知道处理IP地址的程序,一般不允许随着更改MAC地址。

图2、图3是两个程序的流程。 在这里强调两点:

①这两个程序都用到了Linux的网络配置指令ifconfig(具体用法请查阅Linux下的相关帮助文档)。在用该指令更改MAC地址时,需要硬件的支持。如一般的通用计算机上,网卡的MAC地址不能更改,该指令执行时将报异常;而在S3C4510B这样的嵌入式网络设备上,就能成功更改设备运行时的MAC地址。

②Flash的基地址在操作系统启动前后一般是不同的,这主要是为了提高系统运行的速度。另外,对Flash进行写操作之前应先擦除操作扇区,注意数据的保护;不要擦除整个Flash,否则连同映像文件一起被清掉后,系统也就不能正常运行了。在对Flash的操作时应特别注意这些。源网站:www.dpj.com.cn。

结语

嵌入式网络设备的“身份证”——MAC及IP地址的设置,与通用计算机的设置有独特之处。嵌入式网络设备往往没有硬盘,不能像通用计算机那样操作;也不可能为每一台设备“量身”编译映像文件。本论文介绍的方法——把MAC及IP地址存放在Flash等存储设备上,嵌入式操作系统启动后,自动运行一个程序去读取MAC及IP地址并设置它。这样就可以在同一映像文件包下方便地配置嵌入式网络设备MAC及IP地址。

技术专区 Alexa语音服务软件扩展STM32Cube结合DNN API驱动未来神经网络应用的解决方案针对于高端移动通信和汽车市场的四集群设计一款基于帧捕捉的开源图形调试器应用设计即将成为标准配置的最新安全技术:后视摄像系统
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。