关键词: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地址。
- 嵌入式网(5920)
- 地址设置(5268)
相关推荐
IP地址、子网掩码、默认网关、DNS服务器、MAC地址
嵌入式网络安全有什么特点?
嵌入式网络接入怎么实现?
嵌入式网络的静态IP设置方案
嵌入式网络设备驱动,完全不会呀!!!!
嵌入式设备网络安全有什么策略?
嵌入式设备修改网络配置的方法
嵌入式设备如何获取公网IP?
嵌入式设备的本质是什么?
嵌入式Internet通信的安全怎么保障?
嵌入式Linux网络驱动程序的体系结构和实现原理是什么
嵌入式Linux网络驱动程序的实现原理是什么?
嵌入式SIP协议栈怎么设计?
嵌入式单片机网络链路测试的相关资料分享
嵌入式操作系统怎么实现网络加载?
嵌入式的系统特点
嵌入式系统linux具有什么优点?
嵌入式系统:测试和测量挑战入门手册
SIP协议在嵌入式环境下有什么应用?
什么叫嵌入式
什么是嵌入式联网模块
使用IPort-1模块怎么给嵌入式设备增加网络接口?
使用什么API来获取mac地址?
关于MAC地址的,请问怎么用MAC地址进行点播寻址?
关于嵌入式网络设备
基于嵌入式WEB的网络视频监控系统该如何去设计?
基于网络加载的嵌入式BootLoader有什么优点?
基于网络加载的嵌入式BootLoader的设计与实现
基于ARM的嵌入式设备接入IPv6网络
基于TCP IP协议栈的嵌入式以太网终端设计
基于Web的嵌入式设备该怎么管理?
基于双以太网处理器Jupiter实现嵌入式设备网络的设计
如何修改嵌入式网络设备驱动?
如何检索设备MAC地址?
如何设计嵌入式网络信息发布系统?
如何设计嵌入式网络虚拟仪表硬件?
怎么实现嵌入式TCP/IP协议栈的设计?
怎么实现嵌入式WEB传感器的网络化接口设计?
怎么实现基于Winodws CE的嵌入式网络监控系统的设计?
怎样去设计嵌入式LWIP网络客户端
数字生活浪潮下的嵌入式设备
求大佬分享一种嵌入式网络设备中MAC及IP地址设置的方法
浅析嵌入式系统的定义及其应用
请问嵌入式linux程序中如何修改IP、掩码、网关和MAC地址
嵌入式网络设备的MAC及IP地址设置
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式网络设备地址动态配置的研究
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于嵌入式网络设备的远程监控系统设计
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式EtherNet IP模块
IP地址及网卡MAC地址操作指南
![](https://skin.elecfans.com/images/2021-soft/load.png)
如何知道mac地址 怎么查看IP地址
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/A6/wKgZomUMNR2AF5aIAADmJXSEk9o998.jpg)
网络与通信MAC地址详解
![](https://skin.elecfans.com/images/2021-soft/load.png)
mac_mac地址是什么
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/17/wKgZomUMO62AQ2hQAAAJtpm8j6Y900.jpg)
Linux下读取网卡默认MAC地址的方法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
mac地址和ip地址有什么区别
![](https://skin.elecfans.com/images/2021-soft/eye.png)
大型网络监控的ip地址设置方法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
网络通信技术:IP地址和MAC地址的差异
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/CB/67/o4YBAF-RL5yAfPb8AADjUmUbLNQ099.png)
MAC的地址/结构/表示方法介绍
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/E7/8A/pIYBAGBelTeAeXoSAABFZONMqSM188.png)
获取IP地址的工具介绍
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/94/C1/wKgaomTl-UWAEXxJAABcK3fzXxE970.png)
Allegro网络的MAC、DHCP 和 HTTP三种协议解析
![](https://skin.elecfans.com/images/2021-soft/eye.png)
使用LPNDR_ReadGlobalInfo函数块读取IP地址和MAC地址
![](https://skin.elecfans.com/images/2021-soft/eye.png)
MAC地址注册的原理和应用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/AF/C8/wKgZomVR2UWAYkTmAAASn0C3S2M961.png)
MAC地址申请流程:了解网络设备身份的关键步骤
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/B0/33/wKgZomVUk7mARLMiAABBo9ivKI8375.png)
无线设备MAC地址注册的最佳实践和常见问题解答
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web2/M00/1D/C6/poYBAGGTgNyAeYV4AAAjhcNnEaQ578.jpg)
如何绑定ip地址与mac物理地址呢?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
怎么注册MAC地址?MAC地址的必要性介绍
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/B8/07/wKgaomWFPk2AGS80AABaqzyzVaU611.png)
什么是静态IP地址?什么是DHCP?DHCP与静态IP到底有何区别呢?
![](https://skin.elecfans.com/images/2021-soft/eye.png)
评论