8139d网卡工作原理 [不断更新]
来源:互联网 发布:炫踪网络离职率如何 编辑:程序博客网 时间:2024/06/08 07:06
工欲善其事,必先利其器。想学习8139网卡驱动程序,但是连它怎么工作的都不知道看代码看的我头都大了!!!特地看了不少文档总结出如下几点,便于学习!
8139d网卡发送一个数据包的过程中:
1:将数据包发送到一个物理上连续的内存中的缓冲区。2:写指示描述符
(1)填写此缓冲区的起始地址(物理地址)。
(2)填写发送状态:这个包的大小,发送的阈值,清零TSD中的OWN位(这将启动PCI操作)。
3:由于移动到FIFO的数据数满足早期发送阈值,芯片开始从FIFO拷贝数据到line(传输线).
4:当整个包被移动到FIFO,OWN位被设置为1。
5:当整个包被移动到line(传输线),TOK位(TSD中)被设置为1。
6:如果的TOK(IMR)被设置为1,并且的TOK(ISR)被设置,那么一个中断被触发。
7:中断服务程序被调用,驱动程序应该清除TOK(ISR)状态图:(TOK,OWN)
发送使用的寄存器:
. TSAD0-3. TSD0-3
. ISR(TOK,TER),IMR(TOK,TER)
. TCR: transmit configuration register发送配置寄存器
. TSAD: reflect the corresponding bits in the TSD0-3 反映的TSD0-3中的相应位。
8139d网卡接收数据包的过程:
1.从line(传输线)接收的数据被存储在接收FIFO。
2.当接收阈值达到了,便开始从FIFO向接收缓冲区拷贝数据。
3.整个数据包都从FIFO拷贝到接收缓冲器后,接收数据分组首部(接收状态和分组长度)被写入在数据包的前面。 CBA也被更新在数据包的末尾。
4.CMD(BufferEmpty)和ISR(TOK)被设置。
5.ISR(中断服务)被调用,然后驱动程序清空ISR(TOK)和并更新CAPR。
接收使用的寄存器:
RBStart:接收缓冲区的起始地址。
CR(BufferEmpty):象征着驱动程序是空。
CAPR:缓冲区读指针。
CBP:缓冲区写指针。
ISR / IMR(ROK,RER,RxOverflow,RxFIFOOverflow)
RCR:Receive configuration register 接收配置寄存器。
Packet Header(数据包报头)。
- 8139d网卡工作原理 [不断更新]
- 网卡工作原理
- 网卡工作原理
- 网卡的工作原理
- 网卡组成工作原理
- 网卡工作原理
- 网卡工作原理
- 网卡组成工作原理
- 网卡工作原理
- 网卡工作原理详解
- 网卡工作原理
- 网卡工作原理
- 网卡的组成工作原理
- 网卡的组成工作原理
- Linux网卡的工作原理
- 网卡的组成工作原理
- 网卡的组成工作原理
- 3D XPoint工作原理
- Visual Studio 2003/Visual Studio 2005常用快捷键(快捷方式)
- hdu 3954 线段树 Level up 很有特色的一个题(关于lazy操作)
- 14款中文分词开源软件
- PowerDesigner使用详解
- 创业者可不可以后天被制造?
- 8139d网卡工作原理 [不断更新]
- Magic Coupon
- JAVA中static class
- .net 计算时间差
- 两个最容易被人忽略的基本代码优化技术
- 工作流的基本知识
- windows下 Qt检测U盘(二)
- vc++---项目 : error PRJ0002 : 错误的结果 1 (从“C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\rc.exe”返回)。
- C/C++ 指针与引用的区别