一种嵌入式Linux操作系统网络加速运行的系统及方法

文档序号:6604220阅读:175来源:国知局
专利名称:一种嵌入式Linux操作系统网络加速运行的系统及方法
技术领域
本发明涉及嵌入式Linux操作系统网络领域,具体涉及一种嵌入式Linux操作系 统网络加速运行的系统及方法。
背景技术
在许多行业中,嵌入式系统几乎无处不在,特别是工业自动化与测控仪器仪表、数 字家电、移动计算设备、网络设备、现代交通系统的领域成了嵌入式技术得以高速发展的平 台。现在的世界是网络互联的世界,嵌入式系统和网络这两大主流技术的融合速度越来越 快,越来越多的嵌入式设备都要求实现网络通信的功能。网络技术的核心部分就是TCP/IP协议,它是互联网中的基本通信语言或协议,一 般目前嵌入式Linux操作系统使用的网络协议栈由BSD TCP/IP协议栈发展起来的,主要针 对的是服务器、个人电脑等性能较强的设备。目前大多数嵌入式设备并不具备很强的运算和处理能力,而这些嵌入式设备又需 要实现网络的支持,如果使用Linux提供的网络实现方式,会给这些性能相对较低的设备 带来较大的负载,这些设备需要花大部分的资源去进行网际互联的处理,这对于资源十分 宝贵的低端嵌入式设备来说无疑是不正确的处理方式。需要寻找一种更小更快的网络实现 方案来满足这些低端嵌入式设备的网络需求。

发明内容
本发明提供一种嵌入式Linux操作系统网络加速运行的系统及方法,能为低端嵌 入式设备提供更加快速的网络支持。一种嵌入式Linux操作系统网络加速运行的系统,主要包括以下单元应用程序 单元、Lwip函数库单元、系统接口单元、Linux系统单元、底层硬件接口单元、硬件平台单 元、物理硬件网络设备单元。所述应用程序单元为嵌入式Linux操作系统提供基本和网络应用程序。所述Lwip函数库单元为嵌入式Linux操作系统提供一个小型的TCP/IP协议栈, 该协议栈的优点是内存使用量少和代码体积小。所述系统接口单元为嵌入式Linux操作系统的Lwip函数库提供基本的系统服务, 比如信号量、邮箱、线程、超时等系统服务。所述Linux系统单元为嵌入式设备提供了软件运行环境。所述硬件平台单元为嵌入式设备提供了硬件运行环境。所述底层硬件接口单元让物理硬件网络设备能正常运行在上面所述的软件和硬 件环境中。所述物理硬件网络设备单元为嵌入式系统提供最底层的网络支持,所有的网络数 据都是通过这个单元进行发送和接收。一种嵌入式Linux操作系统网络加速运行的方法,包括步骤
3
步骤1 获取Lwip函数库;步骤2 根据硬件平台和编译器环境为Lwip函数库定义一些基本数据类型和性能 测试宏;步骤3 为Lwip和Linux系统建立系统服务接口,Linux操作系统主要为Lwip函 数库提供信号量,线程,邮箱,超时处理等系统服务;步骤4 为Lwip和物理硬件网络设备提供底层硬件接口,这个接口主要是实现物 理网络设备收发数据的功能。从上述技术方案可以看出,由于本发明具有以下有益效果1.本发明可以减少嵌入式Linux操作系统TCP/IP协议栈的代码量。2.本发明可以减少嵌入式Linux操作系统进行网络通信时的RAM使用量。3.本发明可以使嵌入式Linux操作系统在进行网络通信时运行速度更快。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。图1是本发明整体结构图;图2是本发明方法流程图;图3是本发明基本数据结构定义流程图;图4是本发明Lwip函数库和Linux系统服务接口建立流程图;图5是本发明Lwip和物理硬件网络设备底层硬件接口建立流程图;图6是本发明物理硬件网络设备的寄存器驱动建立流程图;图7是本发明物理硬件网络设备的数据传递驱动建立流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它 实施例,都属于本发明保护的范围。本发明实施例提供一种嵌入式Linux操作系统网络加速运行的系统及方法,能够 为低端嵌入式设备提供网络支持,以下分别进行详细说明。图1为本发明整体结构图如图1所示,本发明主要包括以下单元应用程序单元、Lwip函数库单元、系统接 口单元、Linux系统单元、底层硬件接口单元、硬件平台单元、物理硬件网络设备单元。所述应用程序单元为嵌入式Linux操作系统提供基本和网络应用程序。所述Lwip函数库单元为嵌入式Linux操作系统提供一个小型的TCP/IP协议栈, 该协议栈的优点是内存使用量少和代码体积小。所述系统接口单元为嵌入式Linux操作系统的Lwip函数库提供基本的系统服务,比如信号量、邮箱、线程、超时等系统服务。所述Linux系统单元为嵌入式设备提供了软件运行环境。所述硬件平台单元为嵌入式设备提供了硬件运行环境。所述底层硬件接口单元让物理硬件网络设备能正常运行在上面所述的软件和硬 件环境中。所述物理硬件网络设备单元为嵌入式系统提供最底层的网络支持,所有的网络数 据都是通过这个单元进行发送和接收。图2为本发明所述方法流程图如图2所示,包括步骤步骤1 获取Lwip函数库步骤2 根据硬件平台和编译器环境为Lwip函数库定义一些基本数据类型和性能 测试宏。步骤3 为Lwip和Linux系统建立系统服务接口,Linux操作系统主要为Lwip函 数库提供信号量,线程,邮箱,超时处理等系统服务。步骤4 为Lwip和物理硬件网络设备提供底层硬件接口,这个接口主要是实现物 理网络设备收发数据的功能。图3为基本数据结构定义流程图步骤21 根据硬件平台的特点和编译器所定义的无符号字符型,有符号字符型, 无符号整型,有符号整型,无符号长整型,有符号长整型分别赋值给Lwip函数库所需要被 实现的数据类型。步骤22 为Lwip函数库编写性能测试宏开始测量宏PERF_START和结束测量并 记录结果宏PERF_ST0P (χ)。图4为Lwip函数库和Linux系统服务接口建立流程图Linux操作系统提供了众多系统服务,而Lwip函数库仅仅需要Linux为其提供少 数几种系统服务,因此只需要利用Linux提供的系统服务函数去封装Lwip函数库需要实现 的系统服务函数。步骤31 用Linux操作系统的信号量系统服务函数为Lwip函数库实现信号量的 创建、删除、释放、申请系统服务。步骤32 用Linux操作系统的消息队列系统服务为Lwip函数库实现邮箱的创建、 删除、投递、接收系统服务。步骤33 用Linux操作系统的线程系统服务为Lwip函数库实现线程的创建及优 先级分配系统服务。步骤34 =Lwip超时处理系统服务并不需要借助Linux操作系统提供的系统服务来 完成,Lwip函数库本身提供了一个超时指针,只需在某个线程超时时,返回当前线程的超时 指针。图5为Lwip和物理硬件网络设备底层硬件接口建立流程图底层硬件接口需要操作物理硬件网络设备的寄存器实现物理硬件网络设备基本 的初始化、数据接收、数据发送、中断处理等操作,对寄存器的读写只能在Linux操作系统 的内核空间完成。
步骤41 编写物理硬件网络设备的寄存器驱动,并为每个寄存器的读写操作提供 操作接口,操作接口会以数字形式标明,比如要操作某个寄存器并为寄存器赋予某个特定 数值,我们将这个操作接口命名为数字n,依次类推。寄存器驱动用Linux操作系统内核函 数Iotcl实现。一般物理硬件网络设备的寄存器有接收数据报后中断寄存器、发送和接收 数据端口寄存器、发送数据控制寄存器。步骤42 编写物理硬件网络设备的数据传递驱动,由于网络数据帧的发送操作是 从用户空间先传送送到Linux操作系统的内核空间,最后将网络数据帧在内核空间赋值给 物理硬件网络设备的对应寄存器。网络数据帧的接收操作则是从物理硬件网络设备的对应 寄存器接收数据,再将这些数据从Linux操作系统的内核空间传递到用户空间。步骤43 物理硬件网络设备初始化,根据不同的物理硬件网络设备,初始化也会 相应的不同,初始化一般会使用步骤41所述的寄存器驱动去写相关寄存器进行物理接口 选择、收发控制位使能、是否接收广播数据、收到数据是否产生中断等操作。这些操作决定 了物理硬件网络设备的工作模式。步骤44:物理硬件网络设备发送数据,不同的物理硬件网络设备,发送数据操作 也是不相同的,发送数据一般会先使用步骤42所述的数据传递驱动将用户需要发送的数 据传递到Linux内核空间,再使用步骤41所述的寄存器驱动写特定的数值到发送控制寄存 器和发送数据长度寄存器,最后将将要发送的数据依次写到端口寄存器中,端口寄存器负 责把数据传送到网络上。步骤45 物理硬件网络设备接收数据,不同的物理硬件网络设备,接收数据操作 也不一样,接收数据一般会先从端口寄存器中依次读数据,再使用步骤42所述的数据传递 驱动将数据Linux内核空间传递到用户空间。图6为物理硬件网络设备的寄存器驱动建立流程图步骤411 将物理硬件网络设备的寄存器驱动设备在Linux内核中注册的设备名 取名为 embeded-net。步骤412 为物理硬件网络设备的物理接口选择寄存器建立操作接口,一般物理 硬件网络设备有几种物理接口可选择,一种物理接口需要为其编写一个操作接口,例如 CS8900网卡设备需要使用10BASE-T物理接口,需要给LINECTL寄存器赋00D3H值,在驱动 中需要调用Linux内核函数_仪《_虹^6((^00(13!1丄1服01)为其建立一个操作接口。如果 需要读某个寄存器,则需要调用Linux内核函数_1~^_1^&(1()为其建立一个操作接口。步骤413 参照步骤412,为可能存在的寄存器操作情况编写操作接口。步骤414 将所有的操作接口进行编号,编号从1开始,依次累加。步骤416 为编好号的操作接口用SWitCh(Cmd)语句进行封装,cmd指的是操作接 口编号。即把所有编号的操作接口放入SWitCh(Cmd)函数体内,在应用程序中,就可以根据 编号去选择需要进行某个接口操作。步骤417 为封装好的SWitCh(Cmd)语句建立寄存器驱动的iotcl操作,ioctl () 为内核函数,通过ioctl操作可以实现用户空间和内核空间的交互。在应用程序中,先open 步骤411所述的embeded-net设备得到文件描述符fd,再用ioctl (fd,cmd, ···)便可操作 相应的操作接口。图7为物理硬件网络设备的数据传递驱动建立流程图
步骤421 将物理硬件网络设备的数据传递驱动在Linux内核中注册的设备名取 名为 embeded-inter。步骤422 编写从用户空间到内核空间的数据传递驱动,先需要使用Linux内核函 数C0py_fr0m_uSer(),这个函数的作用就是将用户空间的数据传递到内核空间,把copy_ from_user ()函数封装到数据传递驱动的write操作。在应用程序中,先open步骤421所述 的embeded-inter设备得到文件描述符fd,再用write (fd, length, buffer)将数据buffer 送入到Linux内核空间。步骤423 编写从内核空间到用户空间的数据传递驱动,先需要使用Linux内核 函数C0py_t0_uSer(),这个函数的作用就是将内核空间数据传递到用户空间,把C0py_t0_ user()函数封装到数据传递驱动的read操作。在应用程序中,先open步骤421所述的 embeded-inter设备得到文件描述符fd,再用read(fd,length, buffer)将数据buffer从 内核空间读到用户空间。需要说明的是,上述装置和系统内的各单元之间的信息交互、执行过程等内容,由 于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处 不再赘述。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。以上对本发明实施例所提供的一种嵌入式Linux网络加速的方法,进行了详细介 绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只 是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发 明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理 解为对本发明的限制。
权利要求
一种嵌入式Linux操作系统网络加速运行的系统,其特征在于,主要包括以下单元应用程序单元、Lwip函数库单元、系统接口单元、Linux系统单元、底层硬件接口单元、硬件平台单元、物理硬件网络设备单元;所述应用程序单元为嵌入式Linux操作系统提供基本和网络应用程序;所述Lwip函数库单元为嵌入式Linux操作系统提供一个小型的TCP/IP协议栈,该协议栈的优点是内存使用量少和代码体积小;所述系统接口单元为嵌入式Linux操作系统的Lwip函数库提供基本的系统服务,包括信号量、邮箱、线程、超时;所述Linux系统单元为嵌入式设备提供了软件运行环境;所述硬件平台单元为嵌入式设备提供了硬件运行环境;所述底层硬件接口单元让物理硬件网络设备能正常运行在Linux系统单元的软件环境中和硬件平台单元的硬件环境中;所述物理硬件网络设备单元为嵌入式系统提供最底层的网络支持,所有的网络数据都是通过这个单元进行发送和接收。
2.一种嵌入式Linux操作系统网络加速运行的方法,其特征在于,包括以下步骤 步骤1:获取Lwip函数库;步骤2 根据硬件平台和编译器环境为Lwip函数库定义一些基本数据类型和性能测试宏;步骤3 为Lwip和Linux系统建立系统服务接口,Linux操作系统主要为Lwip函数库 提供信号量,线程,邮箱,超时处理等系统服务;步骤4 为Lwip和物理硬件网络设备提供底层硬件接口,这个接口主要是实现物理网 络设备收发数据的功能。
3.根据权利要求2所述的一种嵌入式Linux操作系统网络加速运行的方法,其特征在 于,基本数据结构定义包括以下步骤步骤21 根据硬件平台的特点和编译器所定义的无符号字符型,有符号字符型,无符 号整型,有符号整型,无符号长整型,有符号长整型分别赋值给Lwip函数库所需要被实现 的数据类型;步骤22 为Lwip函数库编写性能测试宏开始测量宏PERF_START和结束测量并记录 结果宏 PERF_ST0P (χ)。
4.根据权利要求2所述的一种嵌入式Linux操作系统网络加速运行的方法,其特征在 于,Lwip函数库和Linux系统服务接口建立流程的过程包括以下步骤步骤31 用Linux操作系统的信号量系统服务函数为Lwip函数库实现信号量的创建、 删除、释放、申请系统服务;步骤32 用Linux操作系统的消息队列系统服务为Lwip函数库实现邮箱的创建、删 除、投递、接收系统服务;步骤33 用Linux操作系统的线程系统服务为Lwip函数库实现线程的创建及优先级 分配系统服务;步骤34 =Lwip超时处理系统服务并不需要借助Linux操作系统提供的系统服务来完成, Lwip函数库本身提供了一个超时指针,只需在某个线程超时时,返回当前线程的超时指针。
全文摘要
本发明公开了一种嵌入式Linux操作系统网络加速运行的系统,主要包括以下单元应用程序单元、Lwip函数库单元、系统接口单元、Linux系统单元、底层硬件接口单元、硬件平台单元、物理硬件网络设备单元。同时本发明还公开了一种嵌入式Linux操作系统网络加速运行的方法。通过本发明可以减少嵌入式Linux操作系统TCP/IP协议栈的代码量,使嵌入式Linux操作系统在进行网络通信时运行速度更快。
文档编号G06F9/44GK101894019SQ20101020073
公开日2010年11月24日 申请日期2010年6月12日 优先权日2010年6月12日
发明者傅明, 张洁, 罗笑南, 谭南 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1