APP下载

嵌入式系统设计中关键技术的研究

2009-06-22王颂文孙乃川

新媒体研究 2009年20期
关键词:实时性IP地址路由

王颂文 孙乃川

[摘要]针对嵌入式系统设计的关键问题,研究两台终端网络通信实现路由功能,通过内核改造提高系统的实时性,编写基于PCI总线的硬盘控制器驱动模块,将PCI设备采集的数据不经过系统内存,以DMA直接传输到硬盘阵列中,实现数据的高速存储,从而使系统得到优化。

[关键词]嵌入式系统路由功能数据存储实时性

中图分类号:TP2文献标识码:A文章编号:1671—7597(2009)1020083—01

一、嵌入式系统的构建

嵌入式系统由嵌入式硬件系统和嵌入式软件系统组成。硬件系统主要由处于核心地位的嵌入式处理器、相关支撑硬件、外围电路等组成;软件系统包括操作系统和应用软件。Mnux操作系统凭借其开放性、模块化、能够支持多种体系结构、可移植性好、效率高、直接提供网络支持,成为该领域开发的重要参考平台。

由于嵌入式系统的硬件资源有限,开发设计时不能直接把Linux作为操作系统,需要针对具体的应用,通过内核配置、裁减shell等进行定制。Linux的基本组件包括:内存管理、进程和调度管理,根文件系统,IDE/MEM驱动程序和一些必要的I/0子系统。可裁减的组件包括:网络协议、文件系统、字符及模块设备驱动程序、网络设备部件[1]。设计时根据具体需要,定制出最小适用内核,修改内存、网口的配置等部分硬件驱动来满足实际系统要求,针对具体板级设备的驱动程序进行移植修改,使内核能进行编译、下载和运行。

二、实现网络终端路由功能

带有路由器功能的嵌入式网络终端,通常采用包括进行路由表维护、转换内外网地址、分组校验和重新计算的方式实现路由功能,这种方式对硬件需求、硬件成本较高,并且需要内部网络终端解决由于网络地址转换造成的某些问题。

针对仅有两台终端,且其中之一为嵌入式网络终端的情况,基于ADSL接入方式,通过嵌入式网络终端中实现简单有效的路由功能,向内部网络的另外一台终端提供公网IP地址等网络参数,避免了上述网络地址转换等复杂操作,占用较少资源,适合用在资源有限的嵌入式网络终端中。

实现路由功能的方法:嵌入式网络终端的物理层设备一般采用以太网卡。以PPPoE完成与ADSL适配器的通信;在嵌入式网络终端中置入交换机芯片或集线器,作为与另外一台终端通信的物理层设备;嵌入式终端内置DHCP服务器提供内部网络的另外一台终端提供的网络参数。1、分组接收和转发。嵌入式网络终端可用PPP和PPPoE完成拨号连接网络以及IP分组的接收与转发,由于向内部网络中另一台终端提供的IP地址与嵌入式网络终端自身相同,从而避免了实现路由表和网络地址转换等占用资源较多的功能和由网络地址转换引起的IP首部以及TCP/UDP分组校验和的重新计算,仅需要实现分组的转发和接收。针对特定的网络应用对分组的接收进行过滤,避免嵌入式终端对无关分组的多余处理,通过在路由模块中添加接收表实现对无关分组的过滤,进一步减少路由功能占用的嵌入式终端系统资源。2、内部终端与嵌入式网络终端的以太网通信:嵌入式终端与内部网络终端通过嵌入式终端内部的集线器或交换机芯片实现以太网物理连接;由于嵌入式网络终端向内网终端提供的IP地址与其自身相同,当网络终端以以太网方式接入网络时,由于要向其提供网关IP地址以及子网掩码,就要虚拟出另一个IP地址作为内网终端的网关IP地址。通过在嵌入式网络终端协议栈的ARP处理模块中加入ARP代理,实现嵌入式网络终端的透明路由-保证另外一台终端所有的网络分组均发送至嵌入式网络终端。此外,对于Pc机等标准的网络终端,以DHCP获取到网络参数后,要拒绝回应对自身公网IP地址的免费ARP请求[2],会使用免费ARP的方式检测获取的IP地址是否已被占用。

三、系统实时性的改造

实时性对嵌式系统来说是至关重要的,特别是在硬实时性应用的场合,实时性要求更高。由于LinuX本质上是分时系统,实时性有一疟缺陷:周期模式定时器频较低、中断柄不可调度、易于引起由于进程采用多级轮转调度算法造成的截止时间无法完成任务、中断和调度时延等。Linux是通用操作系统,而实时系统是面向用户和应用的,因此在构造实时系统时,可根据具体需要进行定制和修改。

实时内核的改造:1、双内核方法。通过在Linux操作系统的最底层增加一层实时核心层,实现同一个硬件平台上两个相互配合工作的系统核心,分别提供实时多任务管理和非实时通用功能,技术关键要求运行在常规Linux核心上的所有非实时任务必须支持可抢占式调度。实时核心负责硬件及实时任务管理,不通过操作中断控制寄存器,当中断信号需要实时进程来处理时,实时进程则抢占Linux内核;Linux核心任务来调度的优先级最低,只有没有可运行的实时任务时才会被调度,通过共享内存和FIFO设备接口实现实时进程和普通进程需要通讯,当中断信号需要Linux内核来处理时,由实时内核将信号传给Linux内核。2、兼容内核方法。充分考虑系统实时性的要求,设计一种完全独立、但其API与Linux核心相兼容的实时核心,作为Linux实时系统的独立核。3、资源内核方法。实时核心提供了实时应用可构建的基础,允许实时应用可配置,可以通过动态地改变实时任务属性以及在整个系统中的优先级,实现以资源为中心指导实时核心提供精确的、可抢占的获取系统资源。

四、高速数据存储

嵌入式Linux下高速数据存储,最基本、最主要的操作是数据的传输,在高速下控制数据的传输是保证高速存储数据的关键。一般的程序控制传送方式是以CPU为中心,CPU提供传送数据的源地址和目的地址、对地址的修改和对数据长度的计数,并判断数据传送是否完成。这种方式传送每字节数据CFU都要执行若干条指令,这就必然增加除读/写数据以外的额外的时间开销,数据存储速度慢。

在嵌入式Linux基础上,SCSI控制器外接多个SCSI硬盘,利用RAID技术把多块独立的物理硬盘按不同方式组合,形成一个逻辑硬盘组,同时对多块磁盘存取数据,从而提供比单块硬盘更高的存储性能和数据冗余的技术[3],通过编写基于PCI总线的硬盘控制器驱动模块,将PCI设各采集的数据通DMA直接传输到硬盘阵列中,中间不经过系统内存。采用直接存储器访问即DMA技术来实现数据传输,不要CPU介入,在存储器和外部设备之间直接进行高速数据传送,能够大大提高数据的传输速度,提高数据的存储效率。

猜你喜欢

实时性IP地址路由
数据通信中路由策略的匹配模式
一种用于6LoWPAN的多路径路由协议
OSPF外部路由引起的环路问题
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
基于B/S的实时用户行为检测管理系统设计与实现
《IP地址及其管理》教学设计
计算机的网络身份IP地址
轻松明白网络IP地址以及子网划分问题