- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCPIP知识储备解析
单片机RTL8019AS网卡驱动程序
??? 我的SNMP网管板使用了RTL8019AS 10M ISA网卡芯片接入以太网。选它的好处是:NE2000兼容,软件移植性好;接口简单不用转换芯片如PCI-ISA桥;价格便宜2.1$/片(我的购入价为22元RMB/片);带宽充裕(针对51);较长一段时间内不会停产。8019有3种配置模式:跳线方式、即插即用PP方式、串行Flash配置方式。为了节省成本,我去掉了9346而使用X5045作为闪盘存储MAC地址和其他可配置信息。PP模式用在PC机中,这里用不上。只剩下跳线配置模式可用,它的电路设计参考REALTEK提供的DEMO板图纸。一天时间就可以完成,相对来说硬件设计比较简单。
??? 与这部分硬件相对应的软件是网卡驱动。所谓驱动程序是指一组子程序,它们屏蔽了底层硬件处理细节,同时向上层软件提供硬件无关接口。驱动程序可以写成子程序嵌入到应用程序里(如DOS下的I/O端口操作和ISR),也可以放在动态链接库里,用到的时候再动态调入以便节省内存。在WIN98中,为了使V86、WIN16、WIN32三种模式的应用程序共存,提出了虚拟机的概念,在CPU的配合下,系统工作在保护模式,OS接管了I/O、中断、内存访问,应用程序不能直接访问硬件。这样提高了系统可靠性和兼容性,也带来了软件编程复杂的问题。任何网卡驱动都要按VXD或WDM模式编写,对于硬件一侧要处理虚拟机操作、总线协议(如ISA、PCI)、即插即用、电源管理;上层软件一侧要实现NDIS规范。因此在WIN98下实现网卡驱动是一件相当复杂的事情。
??? 我这里说的驱动程序特指实模式下的一组硬件芯片驱动子程序。从程序员的角度看,8019工作流程非常简单,驱动程序将要发送的数据包按指定格式写入芯片并启动发送命令,8019会自动把数据包转换成物理帧格式在物理信道上传输。反之,8019收到物理信号后将其还原成数据,按指定格式存放在芯片RAM中以便主机程序取用。简言之就是8019完成数据包和电信号之间的相互转换:数据包===电信号。以太网协议由芯片硬件自动完成,对程序员透明。驱动程序有3种功能:芯片初始化、收包、发包。
??? 以太网协议不止一种,我用的是802.3。它的帧结构如图1所示。物理信道上的收发操作均使用这个帧格式。其中,前导序列、帧起始位、CRC校验由硬件自动添加/删除,与上层软件无关。值得注意的是,收到的数据包格式并不是802.3帧的真子集,而是如图2所示。明显地,8019自动添加了“接收状态、下一页指针、以太网帧长度(以字节为单位)”三个数据成员(共4字节)。这些数据成员的引入方便了驱动程序的设计,体现了软硬件互相配合协同工作的设计思路。当然,发送数据包的格式是802.3帧的真子集,如图3所示。????
??? 有了收发包的格式,如何发送和接收数据包呢?如图4所示,先将待发送的数据包存入芯片RAM,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0,1),启动发送命令(CR=0x3E)即可实现8019发送功能。8019会自动按以太网协议完成发送并将结果写入状态寄存器。如图5所示,接收缓冲区构成一个循环FIFO队列,PSTART、PSTOP两个寄存器限定了循环队列的开始和结束页,CURR为写入指针,受芯片控制,BNRY为读出指针,由主机程序控制。根据CURR==BNRY+1?可以判断是否收到新的数据包,新收到的数据包按图2格式存于以CURR指出的地址为首址的RAM中。当CURR==BNRY时芯片停止接收数据包。如果做过FPGA设计,用过VHDL,可以想象到硬件芯片的工作原理。此处,设计2个8bit寄存器和一个2输入比较器,当收到数据包时,接收状态机根据当前状态和比较器结果决定下一个状态,如果CURR=BNRY,进入停收状态;反之,CURR按模增1。8019数据手册没有给出硬件状态机实现方法,说明也很简略,往往要通过作实验的方法推理出工作过程。比如,ISR寄存器不只和中断有关,当接收缓冲溢出时,如果不清ISR(写入FFH),芯片将一直停止接收。在流量较大时溢出经常发生,此时不清ISR,就会导致网卡芯片死机。
????
?
??? 明白了发送和接收数据包的原理,那么数据包又是怎样被主机写入芯片RAM和从芯片RAM读出的呢?如图6所示,主机设置好远端DMA开始地址(RSAR0,1)和远端DMA数据字节数(RBCR0,1),并在CR中设置读/写,就可以从远端DMA口寄存器里读出芯片RAM里的数据/把数据写入芯片RAM。
??? 何谓本地/远端DMA呢?如图7所示,“远端”指CPU接口侧;“本地”指8019的硬件收发电路侧。没有更深的意思,与远近无关,仅仅为了区分主机和芯片硬件两个接口端。这里的DMA与平时所说的DMA有点不同
您可能关注的文档
- SVN版本控制流程解析.doc
- surgical guide introduction解析.ppt
- SVPWM(硬件法)程序解析.doc
- SVN版本控制系统中文版解析.doc
- SVN工具原理及使用手册解析.ppt
- SVN配置管理解析.doc
- SWOT分析法解析.ppt
- Swish 软件简介解析.ppt
- SX20视频系统遥控器操作手册解析.ppt
- SW高级特征解析.ppt
- 《念奴娇·过洞庭》课件 统编版高一语文必修下.pptx
- 5.15新航路开辟 课件 统编版九年级历史上册.pptx
- 10.《在〈人民报〉创刊纪念会上的演说》《在马克思墓前的讲话》联读 统编版高一语文必修下册.pptx
- 2025届高三一轮复习之古代诗歌鉴赏十二大诗歌类型++课件.pptx
- 6.19法国大革命和拿破仑帝国 统编版九年级历史上册.pptx
- 第三单元《课外古诗词诵读》课件- 统编版语文九年级下册.pptx
- 《山坡羊 潼关怀古》《山坡羊 骊山怀古》比较阅读 统编版语文九年级下册.pptx
- 7.1《青蒿素:人类征服疾病的一小步》课件 高一语文统编版必修下册.pptx
- 3.10拜占庭帝国和《查士丁尼法典》课件--统编版九年级历史上册.pptx
- 中考语文二轮专题复习:名著复习《简·爱》课件.pptx
最近下载
- 2025 年“安全生产月”“安全隐患我查找”国家应急科普宣传网络知识竞赛题库(第1关-第6关)完整题库答案.docx VIP
- 小学道德与法治_富起来到强起来教学设计学情分析教材分析课后反思.doc
- 主流媒体系统性变革的动力机制、发展路径与系统构建研究.docx VIP
- 江苏省南通市2023-2024学年高一下学期期末考试生物试题(解析版).docx VIP
- 基于ADAMS的转向系统运动学仿真设计.pdf VIP
- 欧洲筒仓荷载规范解析.docx VIP
- OEE定义和计算方式解析.ppt VIP
- 2025年专业技术人员继续教育公需科目-内生动力与职业水平考试近5年真题集锦(频考类试题)带答案.docx
- 生物质电厂施工组织设计.docx
- 2024-2025学年下学期初中语文七年级期中必刷常考题之名著阅读.docx VIP
文档评论(0)