论文部分内容阅读
摘 要: 随着社会不断地信息化、网络化,网络设备的需求量也随之增加。嵌入式Linux技术具有开发难度小、周期短、投入少等优点,使之成为开发中小型网络设备的首选。设计一种基于嵌入式Linux的二层交换机,并对嵌入式Linux的开发流程做简单的介绍。
关键词: 交换机;嵌入式;Linux
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2011)0820059-02
0 引言
IEEE对嵌入式系统的定义为:用于控制、监视或者辅助操作机器和设备的装置[1]。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统[2]。目前,随着社会不断信息化、智能化以及网络化,越来越多的嵌入式系统被研究和开发。Linux内核具有源码开放、免费、体积小、可裁剪以及效率高等特点,且获得了广泛的支持,使其在作为嵌入式操作系统方面具有得天独厚的优势。基于Linux的嵌入式系统已经成为了热门的技术,并且被各大网络设备厂商广泛支持采用。本文介绍了一种基于Powerpc+Linux架构的二层交换机设计,并对嵌入式Linux的开发做了较为完整的介绍。
1 嵌入式开发概述
嵌入式系统是一种根据特定应用所定制的软硬件一体化系统,它只需要达到预期的目的,完成预期的功能即可,所以其在整个开发流程和开发环境的搭建方面都与传统的软件开发相比有着明显的不同。图1所示是整个嵌入式系统开发的一般流程。
开发的第一步是进行嵌入式的硬件设计,包括硬件的选型以及PCB的制作;等到硬件电路板完成后,在此基础上进行操作系统的移植,之后进行应用程序的开发;其中应用程序的开发可以在PC机与前两步同时进行,但完成后需要移植到真实嵌入式环境中;等待应用程序开发完成,要进行实际的运行测试,如果功能完成,测试通过,则接着进行整个嵌入式系统测试;如果未能通过,则返回以前的步骤,重新来过。
嵌入式系统一般都具有资源受限的特点,因此像在普通PC上一样直接在嵌入式系统的硬件平台上编写应用软件比较困难,甚至根本是不可能实现的。目前业界一般采用的解决方法是在普通的PC机上编写应用程序,然后通过交叉编译对应生成目标平台上可以运行的二进制代码程序,最后再下载到目标嵌入式硬件平台上的特定位置,进行运行。
需要在交叉开发环境(Cross Development Environment)下进行开发是开发嵌入式应用软件时的一个显著特点[3]。交叉开发环境是指在宿主机上对嵌入式应用程序进行编译、链接和调试的系统环境和开发工具集,它与真实的运行嵌入式应用程序的环境不一样,但提供了更为强大的调试能力。
2 交换机设计
本文设计了一种二层交换机,其在网络协议中层次如图2所示。的与透明网桥一样,二层交换机具有自动学习功能,能够自动建立各个端口使用网段的地址信息[4]。它通过检测以太网端口数据包中的源MAC地址和目的MAC地址,将对应的源MAC地址与物理以太网端口号一起保存在一个地址一端口映射表高速缓存器中[5]。与此同时,交换机也会检测数据包的目的地址,并试图在地址一端口映射缓存中搜索其匹配的物理端口。
2.1 系统硬件设计
图3是交换机核心板硬件连接原理图,各个芯片的具体型号如表1。
整个核心板选取了Freescale的一款经典CPU MPC8260作为通信处理器;MPC8260基于PowerPC603e微处理器内核,是一款高性能、低功耗的RISC32位处理机,并且拥有的独立通信处理器(CPM)使其具备了强大的通信能力。MPC8260通过PCI总线连接其他外围设备,MII接口连接10/100M以太网卡,并使用60x总线与二层交换芯片通信,和FLASH以及SDRAM交换数据和进行控制。
2.2 Linux内核移植
现在,移植Linux内核一般先要在内核的目录中选择一个与目标板硬件配置最接近的并且已经移植成功的目标目录作为模板。之后可以针对硬件具体的差别进行相应的修改或对应打现成的移植补丁。这里,我们使用了Linux-2.6.33内核进行移植,并且根据本硬件系统的配置选择了pm826
样板作为移植的目标模板。在编译和配置内核前我们可以使用现有的patch包对Linux-2.6.33内核打补丁,并使用menuconfig工具对内核进行适当的剪裁。内核的裁减工作与在PC上对Linux内核的裁减工作类似,主要的工作是增添对自己需要的模块的支持,并且除去无用的模块,以使Linux内核更加适合于目标硬件系统。内核的编译可以通过修改根目录以及其它子目录下的Makefile直接完成,也可以通过在预编译的时候设置编译参数值时进行选定。编译前使用make menuconfig命令,开发者可以非常方便地增添和删除内核模块。
之后,使用make工具生成uImage镜像文件。uImage镜像文件可以使用U-Boot引导程序进行引导,装入内存。
Linux内核移植的整个过程如图4所示。
2.3 系统软件设计
整个系统软件结构如图5所示。面向终端用户的界面分为两种:web界面和CLI命令行界面。下面是命令解析层Command layer,负责解释两种界面发送来命令,调用相应的程序接口并返回执行后的结果。支持模块support modules主要负责提供各种常用的系统服务。控制模块control modules负责对交换芯片、网卡等进控制管理,并进行设备日志的管理和维护。再下面一层是管理API,主要对常用的管理功能进行API封装,同时预留了将来要扩展的功能接口,以便后续的功能升级和代码维护。
3 结语
在信息网络高速发展的今天,Internet已经走入了千家万户,对宽带的终端接入需求量也越来越大,而且随着嵌入式技术的发展,各个网络设备公司争相制造性价比越来越高的基于嵌入式Linux的网络设备。本文介绍了一种基于Linux内核交换机的设计方案,具有开发简单、周期短、投入少等优点。
参考文献:
[1]SEIFERT R,千兆以太网技术与应用[M].北京:机械工业出版社,2000.
[2]陈峰、彭龑、易彬等,基于嵌入式技术的以太网接口设计[J].通信技术,2010,43(05):127-129.
[3]曹凌、黄俊,千兆以太网测试设计与实现[J].通信技术,2007,40
(11):214-215,387.
[4]张晓哲、王在方、刘琼、方贵明,交换机和路由器一体化的设计和实现[J].计算机工程与应用,2004.
[5]李炳宇、萧蕴诗,以太网在网络控制系统中的应用与发展趋势[J].微型机与应用,2002年,11期.
作者简介:
吴媛媛(1977-),女,贵州赤水人,硕士,讲师,贵州民族学院计算机与信息工程学院,研究方向:应用物理。
关键词: 交换机;嵌入式;Linux
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2011)0820059-02
0 引言
IEEE对嵌入式系统的定义为:用于控制、监视或者辅助操作机器和设备的装置[1]。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统[2]。目前,随着社会不断信息化、智能化以及网络化,越来越多的嵌入式系统被研究和开发。Linux内核具有源码开放、免费、体积小、可裁剪以及效率高等特点,且获得了广泛的支持,使其在作为嵌入式操作系统方面具有得天独厚的优势。基于Linux的嵌入式系统已经成为了热门的技术,并且被各大网络设备厂商广泛支持采用。本文介绍了一种基于Powerpc+Linux架构的二层交换机设计,并对嵌入式Linux的开发做了较为完整的介绍。
1 嵌入式开发概述
嵌入式系统是一种根据特定应用所定制的软硬件一体化系统,它只需要达到预期的目的,完成预期的功能即可,所以其在整个开发流程和开发环境的搭建方面都与传统的软件开发相比有着明显的不同。图1所示是整个嵌入式系统开发的一般流程。
开发的第一步是进行嵌入式的硬件设计,包括硬件的选型以及PCB的制作;等到硬件电路板完成后,在此基础上进行操作系统的移植,之后进行应用程序的开发;其中应用程序的开发可以在PC机与前两步同时进行,但完成后需要移植到真实嵌入式环境中;等待应用程序开发完成,要进行实际的运行测试,如果功能完成,测试通过,则接着进行整个嵌入式系统测试;如果未能通过,则返回以前的步骤,重新来过。
嵌入式系统一般都具有资源受限的特点,因此像在普通PC上一样直接在嵌入式系统的硬件平台上编写应用软件比较困难,甚至根本是不可能实现的。目前业界一般采用的解决方法是在普通的PC机上编写应用程序,然后通过交叉编译对应生成目标平台上可以运行的二进制代码程序,最后再下载到目标嵌入式硬件平台上的特定位置,进行运行。
需要在交叉开发环境(Cross Development Environment)下进行开发是开发嵌入式应用软件时的一个显著特点[3]。交叉开发环境是指在宿主机上对嵌入式应用程序进行编译、链接和调试的系统环境和开发工具集,它与真实的运行嵌入式应用程序的环境不一样,但提供了更为强大的调试能力。
2 交换机设计
本文设计了一种二层交换机,其在网络协议中层次如图2所示。的与透明网桥一样,二层交换机具有自动学习功能,能够自动建立各个端口使用网段的地址信息[4]。它通过检测以太网端口数据包中的源MAC地址和目的MAC地址,将对应的源MAC地址与物理以太网端口号一起保存在一个地址一端口映射表高速缓存器中[5]。与此同时,交换机也会检测数据包的目的地址,并试图在地址一端口映射缓存中搜索其匹配的物理端口。
2.1 系统硬件设计
图3是交换机核心板硬件连接原理图,各个芯片的具体型号如表1。
整个核心板选取了Freescale的一款经典CPU MPC8260作为通信处理器;MPC8260基于PowerPC603e微处理器内核,是一款高性能、低功耗的RISC32位处理机,并且拥有的独立通信处理器(CPM)使其具备了强大的通信能力。MPC8260通过PCI总线连接其他外围设备,MII接口连接10/100M以太网卡,并使用60x总线与二层交换芯片通信,和FLASH以及SDRAM交换数据和进行控制。
2.2 Linux内核移植
现在,移植Linux内核一般先要在内核的目录中选择一个与目标板硬件配置最接近的并且已经移植成功的目标目录作为模板。之后可以针对硬件具体的差别进行相应的修改或对应打现成的移植补丁。这里,我们使用了Linux-2.6.33内核进行移植,并且根据本硬件系统的配置选择了pm826
样板作为移植的目标模板。在编译和配置内核前我们可以使用现有的patch包对Linux-2.6.33内核打补丁,并使用menuconfig工具对内核进行适当的剪裁。内核的裁减工作与在PC上对Linux内核的裁减工作类似,主要的工作是增添对自己需要的模块的支持,并且除去无用的模块,以使Linux内核更加适合于目标硬件系统。内核的编译可以通过修改根目录以及其它子目录下的Makefile直接完成,也可以通过在预编译的时候设置编译参数值时进行选定。编译前使用make menuconfig命令,开发者可以非常方便地增添和删除内核模块。
之后,使用make工具生成uImage镜像文件。uImage镜像文件可以使用U-Boot引导程序进行引导,装入内存。
Linux内核移植的整个过程如图4所示。
2.3 系统软件设计
整个系统软件结构如图5所示。面向终端用户的界面分为两种:web界面和CLI命令行界面。下面是命令解析层Command layer,负责解释两种界面发送来命令,调用相应的程序接口并返回执行后的结果。支持模块support modules主要负责提供各种常用的系统服务。控制模块control modules负责对交换芯片、网卡等进控制管理,并进行设备日志的管理和维护。再下面一层是管理API,主要对常用的管理功能进行API封装,同时预留了将来要扩展的功能接口,以便后续的功能升级和代码维护。
3 结语
在信息网络高速发展的今天,Internet已经走入了千家万户,对宽带的终端接入需求量也越来越大,而且随着嵌入式技术的发展,各个网络设备公司争相制造性价比越来越高的基于嵌入式Linux的网络设备。本文介绍了一种基于Linux内核交换机的设计方案,具有开发简单、周期短、投入少等优点。
参考文献:
[1]SEIFERT R,千兆以太网技术与应用[M].北京:机械工业出版社,2000.
[2]陈峰、彭龑、易彬等,基于嵌入式技术的以太网接口设计[J].通信技术,2010,43(05):127-129.
[3]曹凌、黄俊,千兆以太网测试设计与实现[J].通信技术,2007,40
(11):214-215,387.
[4]张晓哲、王在方、刘琼、方贵明,交换机和路由器一体化的设计和实现[J].计算机工程与应用,2004.
[5]李炳宇、萧蕴诗,以太网在网络控制系统中的应用与发展趋势[J].微型机与应用,2002年,11期.
作者简介:
吴媛媛(1977-),女,贵州赤水人,硕士,讲师,贵州民族学院计算机与信息工程学院,研究方向:应用物理。