网站首页 | 论文指导 | 经济论文 | 理工论文 | 管理论文 | 法律论文 | 行政论文 | 英语论文
艺术论文 | 农学论文 | 医学论文 | 文史论文 | 教育教学论文 | 论文定制 | 论文发表
论文库分类>>> 点这里访问轻松论文网主站>>>
您当前的位置:轻松论文网 -> 论文中心 -> 理工论文 -> 电子通信网络论文 -> 文章内容 退出登录 用户管理
 子栏目导航
· 计算机与信息技术论文
· 电子通信网络论文
· 自动化论文
· 土建水利论文
· 交通运输论文
· 化学与化工论文
· 石油与能源动力论文
· 机械制造论文
· 矿业与冶金论文
· 工程论文
· 生命环境论文
· 材料科学与工程
· 综合论文
 最新推荐
· 世界地缘政治体系与印度...
· 维新与革命:政治选择的...
· 世界地缘政治体系与印度...
· 中国国家安全哲学-政治哲...
· 政治学视野中的公共政策...
· 方法引导下的政治理论[上...
· 格拉修斯原则:基督教二...
· 方法引导下的政治理论[下...
· 国体、国情与现代国家-政...
· 试论我国今后政治发展的...
· 东亚的政治权威与现代化...
· 跨国收养法的概念与渊源...
 热门文章
· 开题报告的格式(通用...
· 怎样写开题报告
· [图文] 开题报告范文1(银行...
· 开题报告范文2(网上...
· 毕业论文开题报告-A...
· 开题报告的撰写方法...
· 开题报告范文3(网络...
· 文献综述的写法
· 毕业论文例文评析
· 开题报告撰写的方法...
 相关文章
· 浅论最高法“民事证...
· 法律程序设计的若干...
· [图文] 基于LPC2104的VxWor...
· VxWorks for X86的输...
· [图文] 基于VxWorks的bootr...
· [图文] μC/OS-II实时内核下...
· [图文] 基于嵌入式操作系统...
· VxWorks中怎么从Fla...
· 嵌入式Linux系统CGI...
· [图文] 基于Rhapsody和VxWo...
 
[论文定制][论文发表][价格总览][支付方式][购买流程]点击这里给我发消息 点击这里给我发消息
Vxworks嵌入式操作系统下网络设备驱动程序设计
作者:佚名  来源:不详  发布时间:2007-3-2 14:45:17  发布人:admin

减小字体 增大字体

作者Email:  cai_yang@etang.com

摘 要:本文主要介绍在Vxworks操作系统下网络设备驱动程序设计、调试方法以及将其加入系统内核的配置方法。

关键词:Vxworks  嵌入式操作系统 网络设备

引 言
  VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
  

1 嵌入式系统
  嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。和通用计算机不同,嵌入式系统是针对具体应用的专用系统,目的就是要把一切变得更简单、更方便、更普遍、更适用;它的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。

  嵌入式系统主要由嵌入式处理器、外围硬件设备、嵌入式操作系统以及特定的应用程序等四部分组成,是集软硬件于一体的可独立工作的“器件”;用于实现对其它设备的控制、监视或管理等功能。

  嵌入式系统应具有的特点是:要求高可靠性;在恶劣的环境或突然断电的情况下,要求系统仍然能够正常工作;许多嵌入式应用要求实时处理能力,这就要求嵌入式操作系统(EOS)具有实时处理能力;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。

2 设备驱动程序

Vxworks5.4中驱动程序主要分为三种:字符、块以及网络驱动程序。本文所介绍的网卡驱动程序则属于网络设备驱动程序。

2.1 网络设备驱动程序设计

网络的各功能部件图1所示,网络设备驱动程序实际上是处理硬件和上层协议之间的接口程序。网络传输协议层分发数据在应用程序接口和网络接口之间。网络化网络协议(如IP协议)发送数据在网络主机之间。连接/接口层使能主机隶属于硬件到相同物理媒质的通信。

在Vxworks5.4中,网卡驱动程序又分为END(Enhanced Network Driver)和BSD两种。它们分别处于如图2所示结构中。

2.1.1 BSD驱动程序设计

在Vxworks5.4中,网络驱动程序都是基于BSD UNIX版本4.3基础上的,这些驱动程序都定义在一个全局例程中,那就是attach子程序,xxattach( )子程序中包含5个函数指针,它们都被映射到ifnet结构中,这5个函数可见表1,它们在IP协议层任何地方被调用。

表1 网络接口处理

驱动程序指定函数

函数指针

功能

xxInit( )

if_init

初始化接口

xxOutput( )

if_output

对要传输的输出分组进行排队

xxIoctl( )

if_ioctl

处理I/O控制命令

xxReset( )

if_reset

复位接口设备

xxWatchdog( )

if_watchdog (optional)

周期性接口例程

驱动程序入口xxattach( )调用ether_attach( )来把上述5个函数映射到ifnet结构中,ether_attach( )调用如下:

ether_attach(
    (IFNET *) & pDrvCtrl->idr,
    unit,
    "xx",
    (FUNCPTR) NULL,
    (FUNCPTR) xxIoctl,
    (FUNCPTR) ether_output( ), /* generic ether_output */
    (FUNCPTR) xxReset
);
pDrvCtrl->idr.ac_if.if_start = (FUNCPTR)xxTxStartup;
上述参数中,需要一个接口数据记录(Interface Data Record (idr)),unit号和设备名,下面四个参数就是相关驱动程序的函数指针。第一个函数指针指的是init( )例程,这个例程可要可不要,第二个函数指针指的是ioctl( )接口,它允许上层来控制设备状态;第三个函数指针指的是把数据包送到物理层;最后一个函数指针指的是如果TCP/IP堆栈决定需要复位的话,它就复位这个设备。

接着下面那一句代码表示添加数据传输例程到IDR,ether_output( )例程被调用后,传输开始例程就被TCP/IP协议堆栈调用。

在这个入口驱动程序中还包括设备的初始化、发送和接收描述符的初始化等。

2.1.2 END驱动程序设计

END驱动程序是基于MUX模式,网络驱动程序被划分为协议组件和硬件组件。MUX数据链路层和网络层之间的接口,它管理网络协议接口和低层硬件接口之间的交互;将硬件从网络协议的细节中隔离出来;删除使用输入钩例程来过滤接收从协议来的数据包,和删除了使用输出钩例程来过滤协议包的发送;并且链路层上的驱动程序需要访问网络层(IP或其他协议)时,也会调用相关的MUX例程。值得注意的是,网络层协议和数据链路层驱动程序不能直接通讯,它们必须通过MUX。如图3所示: 

 

2.3将驱动程序加载到Vxworks系统中

要对所设计的驱动程序进行测试,首先就必须把驱动程序加载到Vxworks IMAGE中,并且给设备分配一个IP,这样才能有利于网间测试。

首先,修改configNet.h文件,添加如下代码:

#ifdef INCLUDE_DM_9102_END

#define DM_9102_BUFF_LOAN_0      1

#define DM_9102_LOAD_FUNC        sysDm9102EndLoad

#define DM_9102_LOAD_STR_0       ""

IMPORT END_OBJ * DM_9102_LOAD_FUNC (char *, void *);

和END_TBL_ENTRY endDevTbl [] 中添加

#ifdef INCLUDE_DM_9102_END

    {0, DM_9102_LOAD_FUNC, DM_9102_LOAD_STR_0, TRUE, NULL, FALSE},

#endif /* INCLUDE_DM_9102_END */

其次,编辑config.h文件,添加如下代码:

#define INCLUDE_DM_9102_END      /* Davicom 9102 Fast Ethernet Controller */

最后,编辑sysLib.c文件,添加如下代码:

/* include dm9102 End driver support routines */

#ifdef INCLUDE_DM_9102_END

IMPORT STATUS sysDm9102PciInit (void);

#endif /* INCLUDE_DM_9102_END */

 

/* include dm9102End driver support routines */

#ifdef INCLUDE_DM_9102_END

#include "sysDm9102End.c"

#endif /* INCLUDE_DM_9102_END */

#ifdef INCLUDE_DM_9102_END

   sysDm9102PciInit ();

#endif /* INCLUDE_DM_9102_END */

通过上述过程相应的添加程序,然后重新编译Vxworks,这样就将所设计的网卡驱动程序添加到Vxworks内核中了。

2.4 PCI设备检测

如果所设计的网卡是基于PCI总线的,那么在程序开始就需要对PCI设备进行检测,在Vxworks5.4中有专门的PCI函数来检测设备的总线号、设备号和功能号。首先利用pciFindDevice( )函数对给定VendorID和DeviceID的设备进行检测,检测完后同时给出了设备的总线号、设备号和功能号;接下来就是获得该设备的中断号、基地址(包括IO和内存)。Vxworks中pciConfigLib.h文件中定义PCI总线的常量。如中断号:PCI_CFG_BRG_INT_LINE,IO基地址:PCI_CFG_BASE_ADDRESS_0,内存基地址:PCI_CFG_BASE_ADDRESS_1等等。所以利用函数pciConfigInByte和pciConfigInLong就可以很容易地获得设备的中断号和基地址。

2.5 调试方法

为了方便调试网卡驱动程序,推荐利用串口对程序进行下载并将Vxworks image拷贝到软盘中以从软盘来加载它。调试的时候首先应该给网卡分配一个IP(利用usrNetIfConfig函数),然后利用ping来对网卡进行测试。

3  结语

  利用上述方法所设计的网卡后,不久可以利用它来进行程序下载,而且能满足网卡所有的功能,包括对TCP/IP和UDP/IP(组播、广播和单播)进行了测试。

论文指导 开题报告   论文格式   论文撰写   论文答辩   论文答谢   
经济论文 税收论文   证券投资论文   房地产论文   金融论文   投资论文   财政论文   西经论文   国际贸易论文   计量经济论文   国民经济论文   保险信托论文   地方经济   国际经济   新经济学   经济学理论   经济学其他   
理工论文 计算机与信息技术论文   电子通信网络论文   自动化论文   土建水利论文   交通运输论文   化学与化工论文   石油与能源动力论文   机械制造论文   矿业与冶金论文   工程论文   生命环境论文   材料科学与工程   综合论文   
管理论文 电子商务论文   会计论文   财务论文   人力资源论文   市场营销论文   企业管理论文   信息管理论文   旅游管理论文   工商管理论文   公共管理论文   物流管理论文   
法律论文 民法论文   刑法论文   诉讼法论文   行政法论文   国家法   宪法论文   土地资源环境法论文   国际法论文   劳动保障论文   商法论文   经济法论文   法史学论文   法理学论文   司法制度论文   
行政论文 中国政治论文   国际政治论文   管理科学论文   思想政治教育论文   国家行政管理论文   政治理论论文   哲学理论论文   三个代表论文   社工论文   
英语论文 学术英语论文   商务英语论文   科技英语论文   英语教学论文   
艺术论文 艺术理论论文   电视艺术论文   电影艺术论文   音乐论文   舞蹈论文   戏剧论文   美术论文   
农学论文 农艺学(园林,林学)论文   渔业论文   水产论文   植物保护论文   农业基础科学论文   综合论文   
医学论文 医学论文写作方法   基础医学论文   医药卫生论文   临床医学论文   药学论文   特种医学论文   护理学论文   
文史论文 中国史论文   世界史论文   考古论文   文字学论文   语法论文   中国文学论文   世界文学论文   文学理论论文   文艺美学论文   文学评论论文   经典名著赏析论文   新闻传媒学论文   社会学论文   
教育教学论文 语文论文   数学论文   英语论文   物理论文   美术论文   音乐论文   地理论文   化学论文   历史论文   体育论文   思想政治论文   生物自然论文   信息技术论文   德育管理论文   素质教育论文   教学管理论文   综合论文   
[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:Jini在分布式嵌入式系统中的应用
下一篇文章:uCOS51移植心得[社区]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
服务电话:020-61131011;020-61131022 转82 投诉电话:020-61131011;020-61131022 转88 传真:020-61131022
电子邮件:paperease@vip.163.com paper@126.com 服务QQ:130008818 130009919
© 2002-2004 轻松论文网 赣ICP备05004673号 网络实名:轻松论文