- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RTL8019操作规范
本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?1.1.6? ? ? ? SkyEye的网络模拟实现? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?1.? ? ? ? RTL8019AS网络芯片模拟的构思和设计概述? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?目前网络在嵌入式系统中应用越来越广泛,通过为SkyEye增加虚拟以太网芯片设备,使SkyEye支持ethernet网络接口模拟。这样在SkyEye硬件模拟平台上运行的操作系统能够与本地Linux主机进行网络通信,当然通过ipchains/iptables等包转发机制可以进一步支持直接跟Internet通信。? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?鉴于目前嵌入式设备中广泛使用了NE2K10Base-T兼容网络芯片,其中RTL8019AS又是比较有代表性的一种,购买也比较方便,我们就决定模拟它。设计方案完全基于真实的RTL8019AS(NE2000兼容,简称8019AS),但做了部份简化。简化掉的部分主要包括:? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?
一部分状态寄存器。主要是收发数据包的状态信息,一般在嵌入式系统中用的比较少,因此暂时没有加入模拟。
16位模式DMA。对NE2K的芯片,8位DMA和16位DMA模式仅在收发数据效率上不同,但这对SkyEye来说效率并不是很重要,所以仅模拟了8位DMA模式。
CPU从网络芯片收数据包的Remote DMA Read模式。由于8019AS提供了另一种更高效的Send Command方式来收数据包,所以为简化起见,没有模拟Remote DMA Read。
? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?目前设计虚拟以太网芯片设备对简化的原则是:把虚拟网络芯片的驱动放到真实8019AS网络芯片上去,直接能用就可以了,目前还不能保证其它系统上的NE2K驱动能直接在SkyEye上用。? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?2.? ? ? ? 虚拟8019AS网络芯片原理? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?SkyEye本身是一个硬件开发板的模拟器。虚拟8019AS网络芯片是虚拟开发板上一个相对独立的外部设备,这个设备有自己的内部数据结构和操作函数,完成相应的功能。但虚拟8019AS网络芯片对外的接口只是几个提供给SkyEye的API函数和它所占用的系统资源,如Memory mapIo和IRQ等。网络芯片驱动程序看到的只是8019AS的寄存器和它占用的系统中断号,这些寄存器地址位于SkyEye模拟的开发板中某一段IO地址空间内,而SkyEye看到的是寄存器地址和虚拟8019AS网络芯片提供给SkyEye的API函数。如果运行在虚拟开发板上的网络芯片驱动程序读写这些寄存器地址,那么SkyEye会截获这些读写操作,并把它们转换成对虚拟8019AS网络芯片API接口nic_read和nic_write函数的调用,从而操作虚拟8019AS网络芯片,并收发数据。这个过程跟真实的硬件系统的逻辑操作是一致的。? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?那么SkyEye跟虚拟8019AS网络芯片交换数据包的同时,8019AS是如何跟主机进行通讯的呢?这是通过Host主机的Linux上安装的tun/tap或vnet虚拟网络接口来实现的。tun/tap和vnet是Linux内核中的一个内核模块,它们模拟了一个简单的点对点网络环境,后文会有进一步的说明。虚拟8019AS网络芯片的整体结构如图 0-1所示:? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ???图 0-1 8019AS模拟结构图? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ???? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?3.? ? ? ?
您可能关注的文档
最近下载
- 2024《学前教育法》解读PPT课件.pptx
- 康明发 K280水平关节机器人说明书3.pdf
- 过程控制系统(毕业论文)精馏塔控制系统设计.doc
- 2025年南京市河西新城区国有资产经营控股集团有限责任公司人员招聘笔试模拟试题及答案解析.docx VIP
- 金堂县自来水红旗水库取水工程——原水输水管道复线工程非重大变动环境影响分析.pdf
- 医疗器械的人类受试者临床研究-临床试验质量管理规范(ISO 14155 :2020)中文版.pdf VIP
- 2025年学校体育活动经费预算计划.docx VIP
- 打造企业文化之基助力企业和谐发展.pdf VIP
- 动火作业安全培训.ppt VIP
- BM11_05_BladeEditor.ppt VIP
文档评论(0)