当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式网络设备的MAC及IP地址设置

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

    关键词: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地址并设置它。这样就可以在同一映像文件包下方便地配置嵌入式网络设备MACIP地址

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭