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

分享到:

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

       在谈到网络功能时,很自然就会想到目前应用越来越广的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地址是存储在硬盘上的,操作系统启动时,可以自动取得该值并启用它。

      嵌入式网络设备中的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地址的设置

继续阅读
苹果为何转向ARM芯片组,而计划放弃与之合作多年的微软?

众所周知,正是因为英特尔和苹果之间的合作,才造就了Mac系列电脑的辉煌,也使得英特尔公司成为电子科技行业的领导品牌之一。有分析师估计,来自苹果公司的订单收入大约占英特尔年度总收入的5%。不过,由于是一种发展的预期,以及苹果公司本身在市场的影响力和资本市场对其的预期,都给英特尔带来了不小的打击。股票一度下跌了9.2%也说明了问题。要知道,这也是英特尔最近两年来的最大单日跌幅。

盘点11种基于ARM的嵌入式操作系统

TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。程序采用的是模块化设计,所以它的程序核心往往都很小,一般来说核心代码和数据大概在400 Bytes左右,能够突破传感器存储资源少的限制。TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。

浅析如何学习基于ARM平台的嵌入式系统

本文将从技术和就业经验等角度为即将进入嵌入式开发的程序员们,详细讲述了嵌入的概念,嵌入式开发之间的异同以及应该如何做出选择,希望对大家有所帮助。

工作几年,是否感觉技术这碗饭,越来越难?

工作几年,更懂得制约自己职业发展的短板,暂停一下充充电,让未来因此而改变。 两个月时间能学到什么? 两个月的时间里你将系统地掌握到以下所有关键的专业技能,没错,一期学员已经用实际结果进行了证明,资深专家指导+一定的专业基础+发自内心的热爱+刻苦用心=专有所长,泛有所知,融会贯通!相信自己,你能行。

工业以太网与现场总线,谁将成为主流?

现场总线、以太网、无线技术各有优劣,那么谁才会是未来的主流呢?显然对所有生产商或机器并非只有一种技术才是“正确的”方案?生产商必须权衡各类方案带来的价值。有没有比采用普通方案带来的利益更有价值的另一种利润?如果有,这些方案如何和几年内维护另一个工厂层技术和对应供应商关系的成本相比较?这是个关键的问题,并且只有最终用户可以回答。同样,这些问题也适用于现场总线和以太网技术,甚至是将来无线网络方案的选择。

精彩活动