- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VxWorks网卡驱动设计
基于VxWorks网卡驱动设计
摘要:随着嵌入式技术在军工、信息中的应用,如何在嵌入式实时系统下对网卡进行驱动程序的设计以及实现网络通信和管理,成为非常重要的技术。首先从整体上介绍VxWorks网络系统的基本原理和结构,然后以RT8185L网卡驱动为例,着重设计了网络设备驱动程序设计与实现过程。本文对所有基于MUX机制下的VxWorks网络设备驱动程序开发者具有参考价值。
关键词:网卡驱动程序;VxWorks;END;MUX
引言
VxWorks 是一个具有微内核、可裁剪的高性能强实时操作系统,它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。我校研制的综合导航显控台采用VxWorks操作系统,它作为船舶导航系统的核心设备实时为指挥系统、驾控系统等提供各种信息。当需要更改海图模块硬盘中一些及时需要修改的数据、程序等信息时,为避免拆卸设备,可以通过网络传输来解决上述问题。本文以Intel82557网卡为例 ,提出了基于VxWorks的网络设备驱动程序的开发方法和实现流程。
1 VxWorks的网络结构
VxWorks提供了与其他TCP/IP网络系统间透明的存取方式、BSD Socket兼用的编程接口,远程过程调用(RPC),远程文件存取等。网络驱动程序和上层网络协议栈可以有两种实现形式:BSD方式和MUX方式。在VxWorks中, MUX与END(增强的网络驱动程序)合称 SENS驱动(可裁剪增强型网络驱动)。网卡驱动程序的层次结构使网卡驱动程序的实现和移植更加方便。而且VxWorks为编写网卡增强型驱动程序(SENS)提供了很好的接口和规范。图1是VxWorks的网络系统。
2 END驱动概述
2.1 MUX与END
VxWorks网络协议栈可以分为以下几层:应用层 、传输层、IP层、MUX层、数据链路层和物理层。如图2所示。
从图2看出,与其他TCP/IP 协议相比VxWorks网络协议栈增加一层MUX层。MUX层是VxWorks为方便在网络接口硬件上实现多种协议而增加的一层 。它主要用于管理底层的多种硬件的设备驱动,向上层不同协议提供统一的接口,降低了上层协议与底层物理硬件的藕合,使得网络驱动和上层协议彼此保持独立,既方便在现有硬件基础上实现新的上层协议,也利于用新的硬件支持原有的上层协议。
MUX与END的交互是通过提供一套可供底层调用接口服务来实现的,实现END驱动必须遵循这套接口关系。如图3所示。
图3中右边框中列出的函数是驱动需要实现的函数,供MUX 层调用在必要的时间调用,如当上层使用该网卡发送数据时,MUX 会调用该网卡END 驱动提供的Send函数,将数据提交给网卡芯片硬件。
2.2 缓冲池数据结构
网络设备驱动与上层协议进行数据交换需要相应的内存缓冲,并且管理这些缓冲也需要相应的函数。VxWorks提供了netBufLib函数库用于创建和管理网络设备用到的内存缓冲池,网络设备驱动可以直接使用也可以在此基础上设计自己特定的内存缓冲池。数据以簇的形式保存,数据结构mBlks(内存块)和clBlks(簇块)形成的数据链结构则用于指定各个簇。
在clBlk之上是mBlk结构。该结构存储一个到clBlk的连接,也可以存储一个到另一个mBlk的连接。通过mBlk的连接,可以引用任意数量的数据,如图4所示。
3 END驱动实现
3.1 END 设备驱动程序装载过程
END设备驱动程序装载过程实际上是分三个步骤完成的。即指定END设备、装载END设备和启动END 设备。
3.1.1 指定END 设备
网络设备的驱动程序安装时通过修改相应的BSP实现。在修改BSP之前,首先看一下BSP中的END设备驱动程序入口表END_TBL
_ENTRY的结构。在BSP的configNet.h文件中定义着 END_TBL_ENTRY结构的数组endDevTbl[],其数据结构如下所示。
END_TBL_ENTRY endDevTbl[]=
{-----
#ifdefINCLUDE_RT_END
{0,RT8185L_LOAD_FUNC,RT8185L_LOAD_
STRING,RT8185L_BUFF_LOAN,NULL,FALSE},
#endif/*INCLUDE_FEI_END*/
#ifdef INCLUDE_RT_RT8185L_END
{0,END_RT8185L_LOAD_FUNC,END_RT8185L_LOAD_STRING,END_RT8185L_BUFF_LOAN,NULL,FAL
您可能关注的文档
最近下载
- 理解当代中国 英语读写教程Unit 5 英语读写教程课件.pptx VIP
- 名校课堂八上物理电子版不带答案.doc VIP
- 2025年试题国家保安员资格考试试题+答案.docx VIP
- 2024年版羽毛球馆租赁协议样本.docx VIP
- 要素式起诉状(机动车交通事故责任纠纷).doc VIP
- 焙烧炉天然气燃烧自动控制系统的研究与应用.docx VIP
- 2019-2020学年上海市市东中学高三政治测试题.docx VIP
- 上海市市东中学2023年高二物理联考试题含解析.docx VIP
- 上海市市东中学2022年高二地理月考试题含解析.docx VIP
- 上海市市东中学高二化学上学期期末试卷含解析.docx VIP
原创力文档


文档评论(0)