基于ARM的Linux网络设备驱动程序开发.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51242009,30(22)计算机工程与设计ComputerEngineeringandDesign
・嵌入式系统工程・
基于ARM的Linux网络设备驱动程序开发
周敬琼,
周凤星
(武汉科技大学冶金自动化与检测技术教育部工程中心,湖北武汉430081)
摘要:对基于ARM的网络设备驱动程序开发进行了研究,分析了嵌入式Linux网络设备驱动程序的实现原理和运行过程,讲述了嵌入式系统中网络设备驱动开发的具体过程.在嵌入式Linux中实现DM9000网卡驱动,并结合实现DM9000网卡驱动的实例讲解了基于Linux操作系统的网卡驱动程序开发流程.具体分析了网络设备的初始化、设备的打开与关闭、数据的传送和接收以及超时处理等相关过程.最后归纳总结了基于嵌入式Linux网络设备驱动程序的一般方法.关键词:ARM;网络设备;Linux系统;DM9000;驱动程序中图法分类号:TP316
文献标识码:A
文章编号:1000.7024(2009)22.5124.04
DevelopmentofnetworkdriverprogrambasedonembeddedLinux
ZHOUJing-qiong.
ZHOUFeng-xing
(EngineeringCenterofEducationMinistryofMetallurgicalAutomationandDetectionTechnology,
WuhanUniversityofScienceandTechnology,Wuhan430081,China)
Abstract:Aresearchaboutthedevelopmentofnetworkdriverprogrambasedonprocessofnetworkdriverin
ARM
is
done.Implementationprincipleandrunning
based
on
embeddedLinuxisintroduced.Andspecificprocessoftherealizationofthenetworkdevicedriver
embeddedsystemsisdiscussed.ThroughtheexampleofDM9000driverthatisdoneinembeddedLinuxoperatingsystem,development
based
on
processofnetworkdriverdriverofbasedon
Linuxoperatingsystemisanalyzed.Atlast,itisthesummaryofthegeneralmethodsaboutnetwork
embeddedLinux.
Keywords:ARM;networkequipment;Linuxsystem;DM9000;driverprogram
1.1嵌入式Linux网络设备驱动的结构
0引言
Linux网络设备驱动程序的结构可分为4层,即网络协议接口层、网络设备接口层、提供实际功能的设备驱动功能层和网络设备与媒介层。

下面分别介绍各层的功能。

(1)网络协议接口层负责向网络层协议提供统一的数据包收发接口,通过dev_queue_xmitO函数发送数据,并通过netifⅨ()函数接收数据。

(2)网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性和操作的结构体netdevice,该结构体是设备驱动功能层中各函数的容器。

实际上,网络设备接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构。

(3)设备驱动功能层各函数是网络设备接口层net
device
在嵌入式系统中,我们经常需要访问硬件来实现某种目的。

而访问硬件就必须与设备驱动程序打交道。

在Linux中有很多与硬件相关的部分,以库函数的形式提供给用户。

这给嵌入式系统的开发带来了方便。

而分析各种驱动程序的编
写,对于我们把软硬件结合起来是至关重要的。

因为驱动程序是连接硬件设备和设备文件的纽带,是操作系统内核和硬件设备之间的接口。

网络设备驱动作为设备驱动中的一种,可用来实现多种协议,这对于网络在嵌入式系统中的应用和发展有重要作用。


Linux网络设备驱动程序体系结构
网络设备在嵌入式Linux里有着特殊的处理方法。

嵌入
数据结构的具体成员,是驱使网络设备硬件完成相应动作的
程序,它通过hard_start一枷“)函数启动发送操作,并通过网络
设备上的中断触发接收操作。

(4)网络设备与媒介层是完成数据包发送和接受的物理实体,包括网络适配器和具体的传输媒介,网络适配器被设备驱
式Linux的网络系统主要采用BSDUNIX的socket机制。

在socket机制中,系统和驱动程序之间定义有专门的数据结构(sk
系统支持对发送数据和接收数据的缓存,提供流量控制机制,并提供对多协议的支持。

收稿日期:2008.11.25:修订日期:2009.06-09。

动功能层中的函数物理上驱动。

对于Linux系统而言,网络设备和媒介都可以是虚拟的。

作者简介:周敬琼(1985--).女.湖北人.硕士研究生,研究方向为嵌入式系统及应用;号与信息处理。

E-maih246059020@163.oom
周风星(1952--),男,辽宁人.教授,研究方向为信
万方数据
周敬琼,周凤星:基于ARM的Linux网络设备驱动程序开发
2009,30(22)
5125
在设计具体的网络设备驱动程序时,我们需要完成的主要工作是编写设备驱动功能层的相关函数以填充net_device数据结构的内容并将netdevice注册入内核。

1.2
Linux网络设备驱动程序的运行
网络设备驱动程序用来控制网络设备,是Linux系统中运
行的3大设备驱动程序之一。

Linux支持的网络设备非常牢固。

Linux为了支持网络设备分为两层,即网络堆栈的协议支持层,以及接受和发送协议的
网络设备驱动层,如图l所示。

网络堆栈是硬件中独立出来的部分,主要支持TCP/IP等多种协议。

图I
Linux系统网络结构
网络设备驱动程序包含在内核代码中或者可以创建为模块,这两种方式的不同之处是驱动程序的启动方式不同,其它均无差别。

通过启动内核或插入内核中的过程,以启动网络设备驱动程序,并检查硬件。

检索了网络硬件后,初始化网络设备驱动程序,注册能够连接内核的数据结构。

当Linux系统运行正常后,激活内核上注册的网络界面,调用以打开设备的函数,修改设备驱动程序的控制状态使其适合网络环境。

应用程序调用由TCPflP等协议向外传送数据的函数时.网络设备驱动程序就开始传送数据。

对于接受的数据,网络设备驱动程序的中断处理程序或pollmg程序从网络硬件获取数据,并向内核传送数据。

2基于ARM的DM9000驱动程序的设计
2.1
DM9000网卡介绍
在本实例中,网络控制器选用DAVICOM公司的DM9000
快速以太网控制处理器。

该处理器配备有标准10M/100M自适应,16K大容量的FIFO,4路多功能GPIO,全双工工作等功能。

DM9000还集成有接收缓冲区,以便在接收到数据时能把数据放到这个缓冲区中,然后由数据链路层直接从该缓冲区里取走数据。

链路层通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它的缓冲区可用来暂时存储要发送或接收的帧。

2.2
DM9000网卡驱动设计分析
网络设备驱动程序的设计需要完成网络设备的注册、初
始化与注销,以及进行发送和接收数据处理,并能针对传送超时、中断等情况进行及时处理。

在Linux内核中提供了设备驱动功能层主要的数据结构和函数的设计模板,因此在实际的网络设备驱动程序编写时,
万方数据
要完成的工作就是用具体的针对DM9000的操作来填充摸板。

下面结合DM9000网卡驱动程序的实例,来说明网络设备驱动程序的具体实现过程。

开发环境使用了arm・linux—gcc交叉工具链,Lmux2.4.20内核以及ARM920T核心板。

2.2.1
网络设备的初始化
网络设备的初始化一般需要完成以下步骤:(1)初始化调用处理;(2)检索网络控制对象硬件;
(3)为控制检索的硬盘,分配na_devicc结构体;(4)初始化处理net_device结构体;
(5)初始化硬件。

硬件的初始化是由dm9000.c文件中
的deviceinit(struct
net
device*dev)来完成。

其任务是先通
过dev.>pri找到硬件设备的地址,在进行硬件复位后,设置I/0口的模式。

(6)使用register_ne!tclev注册netdevice结构体。

这是在函数net
init
moudule(void)中实现的。

其主要代码如下:staticintnet_init(structnet_device‘dev)

ether.setup(dev);
s仃cpy(dev一>name,”eth0”);
dev->open2
net_open;
dev->stop
=net_release;dev一>set_config
=net_config;
dev一>hard—start—xmit=netix;dcv・>set—mac—address=netset
mac_address;
dev->flags
&2---(IFF_LOOPBACK
IFF—MU
ITICAST):
dev・>priv=NetDriverlnfo;dev->base—addr=IOaddress0,
dev->irq
=NET_IRQ,
memcp“dev一>dev_addr,MyMaclD,dev->addr_len);SET_MODULE_OWNER(dcv);
return0;

2.2.2网络设备的打开与关闭
网络设备驱动程序打开网络设各的起点处开始运行。

网络设备驱动程序在运行网络设备时调用net_device中的open域。

在实例里是用“dev->open=net_open”语句调用net_open函数,实现打开设备的功能。

由于网络设备没有主设备号和从设备号,只有设备名,因此不能使用低级文件I/O函数响应调用。

打开函数的具体代码如下:
statichat
net_open(structnet_device’de们

unsignedlongflag;unsignedint订。

i2;
if(usage—O)

BANKCON3=BANKCONTacsO
BANKCONTcos4BANKCONTaccl4BANKCONTochl
BANKCONTcah4
BANKCON_Tacp6
BANKCON_PMCl6;
5126
2009,30(22)
计算机工程与设计ComputerEngineering
andDesign
pnntI【(KERN—ERR”request—region!ku”);request_region(IOaddress0,Ox08,”dm9000”);
printk(KERN—ERR”request_regionok!\n”);local—irq_save(flag);
mac
hard_open();
deviee_init(dev);
pfintI【(KERN—ERR’'NetworkinitOK!、n”);
local_irq_restore(flag);set_external_irq(IR叫INT0,EXT_HIGHLEVEL,GPIO—
PULLUP
DIS);
if【request_irq(dev->irq,net_irq_handle,SA_INTERRUPT
SA—SAMPLE_RANDOM,”eth0”,dev))

printk(KERN_ERR”request
irq
fault!kn”):

pdntk(KERN—ERR”InitINTOK!\n”);netif_start_queue(dev);)
usage-v+;
MOD——INC——USE_COUNT;
retu_rll
O:/‘sue℃es¥‘/

关闭函数代码如下:
staticint
net
release(struetnetdevice*dev){
unsignedlongfag;
MOD_DEC.USE_COUNT;
usage一;
if(usage一0、

netif_stop_queue(dev);local—irq_save(flag);
machard
close();
local—irq__restore(flag);release—region(10address0,8);free_irq(dev->irq,dev);)
return
O;

数据发送和接收处理
网络设备驱动程序和内核的网络堆栈之间接收和发送的
buff结构体形式。

该结构体定义在include/linux/(1)发送数据处理
在网络设备驱动程序中处理发送数据,必须将处理函数万方数据
代码如下:
staticiat
net_tx(structsk_buff。

skb,struetnet_device+dev)

unsignedlong
flag;
intien;u16’data;
board—info—t‘db=dev->priv;
netif_stop_queue(dev);
len=skb->len<ETH_ZLEN?ETH_ZLEN:skb一>ien;
data=(u16’)skb->data;len=(fen+1)&卜1):local—irq_save(flag);
iow(db,0xif,0x80);
outb(0xlg,db->ioaddr);
outsw(db->io_data,data,len>>I);
iow(db,0xfc,len&0xfl);
iow(db,oxfd,(1en>>8)&0x∞;iow(db,0x2,0x1);iow(db,0xIf,0x83);dev->trans—start=jiffies;local—irq_restore(flag);dev_kfree_skb(skb);
return
O:

代码中sk_buff结构体是一个相当重要的结构体,用于
另外,dev—kfi'ee—skb函数是用来释放套接字缓冲区,dev_skb
any则
(2)数据接收处理
网络设备接受数据的主要方法是由中断引发设备的中断rxoi函数将sk
but'-
staticvoid
net_rx(struetnet_device。

dev,unsigned
int
length)

struct
sk_buff‘skb;
u8’dec;
board—info—t’db=dev->priv;
skb=dev_alloc_skb(1ength+2):if(!skb){
return;

skb_rcscrve(skb,2):skb_put(skb,length);
网络设备驱动中各层之间数据的传递,含义为“套接字缓冲区”。

即可利用套接字缓存实现内核的协议堆栈和设备驱动之间的数据传送。

对于套接字缓冲区成员可以参看linux/skbuff.h文件。

kfree_skb_irq一般用于中断上下文中,而dev_kfree是在中断和非终端中均可采用。

在内核的内部使用kfree_skb。

处理函数,中断处理函数判断到中断类型,如果为接收中断,则读取接收到的数据,sk_buffer数据结构和数据缓冲区,将接收到的数据复制到数据缓冲区,并调用nefiffer传递给上层协议。

主要代码如下:
2.2.3
数据应具有skskbuff.h头文件中。

注册到net_device结构体的hard—start—xmit域上。

内核先在协议堆栈中把应用程序请求的网络数据进行适当封装后,再调用发送对象设备的网络设备驱动程序所注册的net_device结构体的hard—start—xmit域上定义的函数。

在本实例中使用“dev->hard_start_xmit=net_tx;”语句来调用数据发送的函数net_Ix,其
存保并,数函
周敬琼,周凤星:基于ARM的Linux网络设备驱动程序开发
2009,30(22)
5127
dec

skb->data;
insw(db->iodata,dec,length>>1);if((1ength&0x01)!=0)

dec[1ength-l】=inb(db->io_data);)
skb一>dev=dev;
skb->protocol=eth_type
trans(skb,dev);
skb->ip_summed=CHECKSUM—UNNECESSARY;nctif_rx(skb);
dcv一>l硒t_rx=jiffies;
return;

代码中dev_alloc_skboi药数是以GFPATOMIC优先级(代表分配过程不能被中断)调用alloc0
skb->
head和skb->data自建的16个字节。

2.2.4超出传送时间处理
网络设备有可能受多种因素的影响,不能传送内核请求的套接字缓存数据。

此时内核就会将最后发生的传送时间处理为时间超出,并向网络设备驱动程序寻求适当的处理方式。

dcw->trans—slat[和dev・>watchdog_timco是与传送时间有关的
net
device结构体域。

传送时间与硬件有关,由网络设备驱动程序处理该值。

主CPU的处理能力一般比网络发送要快,所以经常会遇到系统有数据要发,但上一包数据网络设备还没发送完。

因为在据都是通知系统发送不成功,所以必须要有一个机制在硬件不忙时及时通知系统接着发送下面的数据。

内核中一旦超出了dev->watchdog_timeo值,适当处理后,device‘dev);该函数的功能非常简单,硬件
忽略最后请求传送的数据,并更新相关错误统计内容,从而使硬件重新发送数据。

最后调用netif_wake—queue函数,通知内核重新传送。

Linux内核是模块化组成的,它允许内核在运行时动态地向其中插入或从中删除代码。

这些代码包括相关的子程序、的好处是内核镜像可以尽可能的小,因为可选的功能和驱动下面通过建立的嵌入式Linux开发平台上实现DM9000网卡驱动的实例来说明在驱动程序在Linux平台上的编译和万方数据作如下:
(1)安装交叉工具链arm・linux—gcc;(2)输入命令“source/ere/profile”;
(3)在内核的网卡驱动目录下,改写din9000.c和din9000.h
文件;
(4)以模块形式编译内核,执行命令makemodule:(5)将dm9000.ko文件下载在目标系统中;
(6)在目标平台的终端执行“msomddin9000.ko”命令,将驱动程序加载到系统内核中:
(7)设置目标平台的IP地址。

执行命令“ifconfigethO
192.
168.0.1”,设置目标板的IP为192.168.0.1:
(8)从PC机端利用ping命令测试网卡是否调通。

如果能够收发字节,则表示网卡能够正常使用。

利用网络,可以使我们的嵌入式平台完成很多工作。

往往在移植一个系统时,最先被调通的就是网卡。

因为通过网络,我们可以使用TFTP和NFS下载程序到目标平台中,而且以太网传输速度相比串口要快许多。

足以见得网卡在调试过程中的重要性,而且因为其在生活中的广泛应用,有着无可取代的重要地位。

4结束语
近几年嵌入式技术在各个领域都得到了飞速发展,嵌入式正在强领着电子市场。

由此可见,嵌入式系统有着非常大的发展潜力。

在这个信息需求量巨大的时代,
网络丰富着人们的生活,成为人们生活中不可或缺的一部分。

故开发具有网络功能的嵌入式产品是非常必要的。

本文的创新之处在于,在嵌入式Linux中实现DM9000网卡驱动,这对实际产品开发中实现网卡驱动功能有一定的参考价值。

参考文献:
【l】
俞用昌.Linux设备驱动开发技术及应用【M】一匕京:人民邮电出版社。

2008.【2】
周立功.¥3C2410&嵌入式Linux系统教程[M】.广州致远电子有限公司,2006.[3】
孙纪坤,张小全.嵌入式Linux系统开发技术详解——基于ARM【M】一E京:人民邮电出版社,2007.[4】4
Robert
Love.Linux内核设计与实现【M】.2版.北京:机械工业出
版社。

2008.【5】
宋宝华.Linux设备驱动开发详解[M】.北京:人民邮电出版社,
2008.
【6】
杜春雷.ARM体系结构与编程【M】.北京:清华大学出版社,
2003.
【7】
Rick
Grehen.32位嵌入式系统编程【M】.许汝峰,译.北京:中国
电力出版社,2002.【8】
善平,刘文峰,王焕龙.Linux与嵌入式系统【M】.北京:清华大学出版社,2007.【9】
魏忠,蔡勇,雷红卫.嵌入式开发详解【M】.北京:电子工业出版社。

2003.
Linux里网络设备驱动程序一般不做数据缓存,不能发送的数net_device结构体tx_timeout域中定义的函数。

该函数为viod
tx_timcout(stmctnet3在Linux平台上编译和运行数据、函数入口和函数出口被一并组合在一个单独的二进制镜像中,即所谓的可装载内核模块中,简称为模块。

支持模块程序可以利用模块形式再提供。

模块允许我们方便地删除和重新载入内核代码,方便调试。

而且当热插拔新设备时,可通过命令载入新的驱动程序。

运行。

此嵌入式Linux目标平台采用了基于¥3C2410A处理器的ARM9核心板,内核为2.4.20的Linux操作系统。

具体操
基于ARM的Linux网络设备驱动程序开发
作者:
作者单位:
刊名:
英文刊名:
年,卷(期):
引用次数:周敬琼,周凤星, ZHOU Jing-qiong, ZHOU Feng-xing武汉科技大学,冶金自动化与检测技术教育部工程中心,湖北,武汉,430081计算机工程与设计COMPUTER ENGINEERING AND DESIGN2009,30(22)0次
参考文献(9条)
1.俞用昌 Linux设备驱动开发技术及应用 2008
2.周立功 S3C2410&嵌入式Linux系统教程 2006
3.孙纪坤.张小全嵌入式Linux系统开发技术详解--基于ARM 2007
4.Robert Love Linux内核设计与实现 2008
5.宋宝华 Linux设备驱动开发详解 2008
6.杜春雷 ARM体系结构与编程 2003
7.Rick Grehen.许汝峰 32位嵌入式系统编程 2002
8.善平.刘文峰.王焕龙 Linux与嵌入式系统 2007
9.魏忠.蔡勇.雷红卫嵌入式开发详解 2003
相似文献(10条)
1.学位论文谢耀华基于ARM-LINUX的SNMP网管系统的实现 2008
随着网络时代的发展,人们越来越离不开网络,网络硬件的安全性、可靠性越发重要。

即使是短暂的网络中断也可能给人们的生活带来极大的影响,这使得人们对网络相关设备的管理监控实时性的需求越来越高。

这就要求网络运营商需要对远近端网络设备进行监控,在网络出现问题时能及时发现并加以解决,实现网络预防和及时维护功能,提高网络运营商对用户的服务质量。

本文主要就是基于该背景提出的一种解决方案。

本文采用的SNMP协议提供了一种对这些网络设备进行有效管理的技术基础。

本文的主要思路是在ARM9开发板
原有的软硬件基础上及ARM-LINUX系统上,主要利用SNMP服务器来实现对网络设备监控网管的功能,并在SNMP服务器中添加企业MIB节点,实现管理企业特定的设备。

同时本文也介绍了在系统中利用BOA服务器来实现动态WEB刷新,利用BUSYBOX添加新命令等方法,初步实现一套具有特定网管功能的网管系统。

本文的创新之处在于不仅采用利用SNMP开发网管系统的流行做法,同时还利用BOA服务器将动态WEB技术应用到网管系统中。

该做法的创新之处在于摆脱以往需要开发对应的网管平台软件来管理的局限,同时支持利用WEB浏览器就能监控到网络设备的做法。

BOA服务器技术支持利用任何一种WEB浏览器就能监控到网络设备的工作状态,从而大大满足了网络管理员的管理需求。

因此该技术可以广泛的应用于网络设备的实时监控中。

2.期刊论文周温庆.陈继努.冯文菲.ZHOU Wen-qing.CHENG Ji-nu.FENG Wen-fei 基于ARM微处理器的网络设备检测仪 -通信技术2008,41(9)
网络通信设备如加固型路由器,台式或背负式指挥终端网口、V35/HDSL等通过以太网接口进行数据收发.设计开发网络设备检测仪对出现故障的设备或链路进行检测和定位.采用32位ARM微处理器同时引入嵌入式操作系统uCOS-II,满足多任务实时性要求.并设计监视任务实时监视系统的正常运行,使系统的可靠性和稳定性得到了较好的解决.
3.学位论文李萌基于Web和嵌入式Linux的网络设备监控平台的设计与实现2006
随着网络技术的迅速发展,网络设备的使用已经越来越广泛,如何对设备进行远程监控已成了迫切需要解决的问题。

人们希望对那些原来只能通过串口配置的网络设备,通过网络远程地进行监视、控制和配置等操作。

本网络设备监控平台就是为了解决这个问题而开发的。

研究了以ARM-Linux为操作系统的S3C2410A嵌入式平台上的网络设备监控的实现技术,设计了硬件平台,移植了Linux操作系统和嵌入式GoAhead Web Server,开发了通过浏览器控制网络设备监控软件等。

该系统可以满足用户对远程网络设备监控的需要。

本文首先阐述了设备接入Internet技术的发展和现状,分析了网络设备监控平台的需求,讨论了网络设备监控平台的结构以及相应的软、硬件环境,提出了系统总体设计方案。

研究了ARM-Linux操作系统在S3C2410A开发平台上的移植,分析了如何在嵌入式Web服务器GoAhead上开发系统应用程序,并对各模块的设计实现进行了详细的描述。

最后给出了对设备监控平台的功能分析和性能测试结果及结论。

4.学位论文陈军成基于ARM的网络隔离机制的研究与实现 2009
随着互联网的不断发展,信息在不同安全等级网络之间的交互越来越频繁。

如何保障涉密网络和非涉密网络之间信息交互的安全性,如何合理地解决网络开放性
与安全性之间的矛盾成为目前迫切需要解决的问题。

网络隔离技术是当前刚刚兴起的一种新型网络安全技术,可以实现内部网络信息的高安全保护。

本文提出了一种基于逻辑隔离的数据安全转发的技术方案。

该方案是在ARM平台的嵌入式Linux系统上运行安全处理软件对进出内部网络设备的数据进行安全隔离处理,从而保护内部网络设备数据的安全传输。

本文从硬件需求分析入手,采用了双网口的ARM9平台设计硬件系统。

在此基础上,完成了以下几方面工作:对运行于ARM平台的嵌入式系统的定制、裁剪和移植;研究内外网络通信方式,给出了双网口通信模式完成其数据交互并实现了基于DM9000网络控制器的双网口通信驱动模块;接着在数据交互过程中,改进Netfilter框架下的数据提取转发模块,利用它把数据从链路层提取到网络层安全处理;最后在对数据安全处理过程中,给出了一种基于RSA算法与IDEA算法的混合加密策略,对数据采用快速的IDEA算法进行加密处理,而在传输过程中用RSA公钥对IDEA密钥进行保护,并利用Flash存取IDEA算法和RSA算法的密钥,达到了网络数据安全隔离的目的。

本文网络隔离系统在数据传输过程中达到了预期的效果,不但实现了数据的快速传输,也保证了系统的安全性能。

5.学位论文张忠基于ARM的网络故障诊断设备核心板的设计与实现 2008
应急通信网主要是指由于发生了像地震、洪灾等紧急情况,为了抗险救灾的需要而搭建的一种应急的通信网络。

由于这种网络的移动性强,所处的
环境复杂,因而网络中设备发生故障的可能性较高。

这些设备一旦发生故障,如果得不到及时的修复,就可能影响网络的性能,甚至导致通信的中断。

因此,如何实现一种有效的网络故障诊断手段是应急通信网高可靠性的重要保证。

便携式的网络故障诊断设备作为一种携带方便、功耗低的故障诊断设备可以用于应急通信网中网络设备的快速故障诊断以保证它的高可靠性。

网络故障诊断设备作为一种在野外工作的便携式设备,如何降低功耗,延长设备工作时间就成为改善设备性能的一个关键。

本文以在应急通信网中网络设备的故障诊断为背景,研究了嵌入式系统中硬件低功耗设计技术和方法,并在分析了高速电路板设计原理的基础上,提出了以
S3C2440A处理器为核心的网络故障诊断设备核心电路板的硬件设计,并完成了网络故障诊断设备核心电路板的实现。

采用了低功耗的设计方法,达到了降低设备功耗的目的。

6.期刊论文 ARM核年销售15亿个/中国2G网络设备厂商市场份额/中国半导体制造设备市场明起反弹 -电子产品世界2005,""(23)
7.学位论文张杰基于ARM——Linux的嵌入式产品平台构建 2007
随着计算机技术的发展,嵌入式系统已成为计算机领域一个重要组成部分,并成为近年来新兴的研究热点。

ARM7TDMI是一种高效,低功耗的RISC处理器,以
该内核为核心的 LPC2210 是一款基于以太网应用的高性价比 16/32 位微控制器,非常适合嵌入式产品。

uClinux 由于源代码开放以及强大的网络功能,在中低端嵌入式网络设备中有广泛应用,与其它的嵌入式操作系统相比,具有更多的优势,因此本课题将其作为硬件平台的操作系统,并在这个系统中实现 uClinux 的基本操作。

本文研究设计了基于 ARM——Linux 的嵌入式产品平台,完成系统的硬件设计、实现及操作系统移植。

采用高速 PCB 设计方法,考虑抗干扰问题,以保证系统硬件的可靠性。

系统充分利用 ARM 处理器高性能、低功耗、低成本的优点,扩展平台的通用接口,为今后开发基于该平台的应用系统的提供捷径。

论文中介绍的硬件和软件平台可以为实际应用提供很好的开发起点。

论文的结构如下:
第一章介绍了嵌入式系统的基本概念,以及嵌入式系统的发展历程。

第二章深入分析了以ARM为内核的LPC2210芯片的特性和功能。

第三章介绍产品平台硬件设计的详细步骤、实现细节以及硬件系统的调试方法。

第四章针对平台的PCB布局布线,讨论了为减少干扰而应取的各项措施及策略,以便印刷电路板达到设计的要求。

第五章介绍了嵌入式操作系统uClinux移植到本平台的详细步骤。

8.学位论文马春鸣基于ARM处理器的嵌入式系统实现 2005
随着嵌入式系统和信息家电的广泛应用,将个人家庭以及公司的各种网络设备接入Internet已经成为一种必然。

而接入网络的最关键的部件之一是网关,其中家庭网关由于与新近崛起的信息家电关系密切,因而更加倍受关注。

本文主要介绍一个自行设计的基于ARM处理器的嵌入式家庭网关的具体实现,从而阐述嵌入式系统设计的一般方法和设计过程,以及有可能碰到的一些问题的解决方法。

第一章嵌入式系统及信息家电主要介绍嵌入式系统和信息家电的概念,特点,组成,发展概况等,同时从以上条件出发探讨本课题的目标和工作内容。

第二章介绍系统硬件平台架构。

首先概述了系统的整体硬件结构,然后分别介绍ARM处理器的特点,结构;使用的flash芯片,以及其他存储芯片的特点,结构;网口,串口,通用I/O口等外围电路设计的基本原理。

第三章介绍系统的软件部分,软件部分包括嵌入式操作系统的移植,建立自己的嵌入式WEB服务器和操作系统。

9.学位论文张超基于ARM和uClinux的嵌入式系统的构建研究 2005
嵌入式系统产业近年来持续迅猛发展,正广泛应用于移动计算设备、网络设备、工控设备、信息家电、汽车电子、娱乐设施、仪器仪表等领域.在此背景下,我们将嵌入式系统与嵌入式Linux技术相结合,基于特定的硬件平台,将嵌入式uClinux操作系统成功移植到了ARM7TDMI核的ARM微处理器上,建立起了系统的软件平台.作为嵌入式系统整体中的一部分,本文修改并设计了引导程序Bootloader、必要。

相关文档
最新文档