论文部分内容阅读
伴随着互联网的快速发展和后PC时代的到来,嵌入式系统已逐步成为当今IT产业的焦点之一,广阔的市场前景使嵌入式系统获得了空前的发展机遇。由于Linux操作系统具有代码开放、内核可裁减、网络功能强大等众多特点,这些特点恰好与嵌入式平台可高度定制的定位“一拍即合”,这也促使两者成为“最佳搭档”。本课题是针对英特尔Atom处理器的智能家居无线网关系统,旨在为此系统设计具有较高网络数据传输效率的通用DMA (Universal DMA)网卡驱动程序,并优化基于该UDMA驱动的Linux网络桥接通路的数据转发效率。本文首先分析了Linux网卡驱动程序的组成框架、数据结构、控制方法和加载方式,深入研究了网卡实现数据传输的过程以及影响数据传输效率的因素,并对各个影响因素找出了相对应的优化方案,主要包括当下比较热门的NAPI技术和零拷贝技术;其次介绍了该课题针对的Puma平台,分析了基于Puma平台的UDMA驱动程序的总体框架以及其实现数据接收和数据发送的流程,重点介绍和研究了UDMA驱动设计过程中采用的核心技术与算法,包括中断调节技术与速率控制算法;然后对基于UDMA驱动的Linux网络桥接通路进行优化;最后结合优化方案,在实际平台上进行大量的实验测试,获取了大量的实验数据,并对实验数据进行研究分析,通过实验数据证实了基于UDMA驱动的Linux网络通路确实能提升数据转发效率。本文的重点在于设计了基于UDMA的网卡驱动程序,针对特定的英特尔Atom+Linux嵌入式平台,并把UDMA驱动与该平台的Linux网络桥接通路相结合,最终提升了该网络桥接通路的数据转发效率。设计方案中应用的主要技术和算法包括中断调节技术和速率控制算法,并结合平台的工作环境,让网络桥接通路绕过了一些非必要的Linux网络协议栈和处理过程,从而达到了提升通路效率的目的。