硬件
1. 网口
网口使用4根信号线:两根发送,两根接收。一对信号线中一根承载0——+2.5V信号电压,而另一根负载的电压是0——-2.5V,因此可产生一个5Vpp的信号差。RJ45中有用的就是4根信号线。
网络接口控制器与RJ45间需要用网络隔离变压器连接,网络隔离变压器起信号传输、阻抗匹配、波形修复、杂波抑制以及高电压隔离等作用,以确保系统安全。
PHY是物理接口收发器,它实现物理层。
PHY在发送数据时,收到MAC过来的数据(对PHY而言,没有帧的概念,都是数据而不管什么地址、数据还是CRC),每4bit就增加1bit检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据发送出去。
隔离变压器把PHY发送过来的差分信号用差模耦合的线圈耦合滤波以增强信号,并通过电磁场的转换耦合到连接网线的另一端。

2. 控制
网卡工作在OSI的最后两层,物理层(PHY)和数据链路层(MAC)。DM9161是一个物理层单芯片(A PHY),通过MII(Media Independent Interface),DM9161A连接MAC layer。
9260内嵌MAC层。

DM9161A contains the entire physical layer functions of 100BASE-Tx as defined by IEEE802.3u。包括PCS(Physical Coding Sublayer),PMA(Physical Medium Attachment),TP-PMD(Twisted Pair Medium Dependent Sublayer),ENC/DEC(10BASE-TX Encoder/Decoder)和TPMAU(Twisted Pair Media Access Unit)。

MII管理接口包含两根信号线:MDC和MDIO,通过它,MAC层控制器可以访问物理层芯片的寄存器,并通过这些寄存器来对物理层芯片进行控制和管理。MDC与TX_CLK和RX_CLK无任何关系。MDIO是一根双向数据线,用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。

注:MII&RMII
MII (Media Independent Interface(介质无关接口),或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。
数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。
管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII Management interface只有两条信号线。
MII以4位半字节方式双向传输数据,时钟频率25MHz,其工作速率可达100Mb/s。

RMII是简化的MII接口 ,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50兆的总线时钟 。RMII一般用在多端口的交换机,它不是每个端口安排收、发两个时钟,而是所有的数据端口公用一个时钟用于所有端口的收发 ,这里就节省了不少的端口数目。RMII的一个端口要求7个数据线 ,比MII少了一倍,所以交换机能够接入多一倍数据的端口
RMII用于传输以太网包,在RMII接口是2bit的,在以太网的PHY里需要做串并转换、编解码等才能在双绞线和光纤上进行传输。

3. 引脚
PCS:Physical Coding Sub Layer
PMA:Physical Medium Attachment 物理介质附件

注:DM9161不同于DM9161A,部分引脚定义不同。
共48Pin,其中Pin45保留未用。
1) MII介质无关接口21Pin。
数据接口:发送器信号:数据信号TXER/TXD[4], TXD[0:3]
                      时钟信号TXCLK
                      控制信号 TXEN
          接收器信号:数据信号 RXER/RXD[4]/RPDR,RXD[0:3]/PHYAD[0:3]
                      时钟信号RXCLK
                      控制信号 RXDV/TESTMODE
          载波检测信号CRS/RHYAD[4]

碰撞检测信号COL/RMII

注:当选择RMII时,COL需上拉。(上电后,测试为低电平—路由器)
For half-duplex operation, a collision is detected when the transmit and receive channels are active simultaneously. When a collision has been detected, it will be reported by the COL signal on the MII interface. Collision detection is disabled in Full Duplex operation.

管理接口:时钟信号MDC
          数据信号MDIO
其他功能接口:复位信号RESET
              状态中断输出MDINTR

LED模式选择LEDMODE

MII接口信号:

RMII接口信号:

2) 物理层接口引脚,4Pin。
发送端接口TX+、TX-
接收端接口RX+、RX-

3) 时钟和偏置引脚4Pin
带隙引脚:带隙地面BGRESG,带隙电压基准欧姆电阻6.8K  BGRES
晶振引脚:晶振输入XT1,晶振输出XT2(REF_CLK输入RMII模式)

4) LED引脚3Pin
全/半双工指示引脚:FDX/COL LED/OP0
10/100带宽指示引脚:SPEED LED/OP1
连接指示引脚:LINK/ACT LED/OP2

实测上电时N1_LED0,N1_LED1,N1_LED2为高电平(约3.4V),故采用Auto-negotiation enables all capabilities,支持自动协商(接口类型(10M/100M),工作方式(半双工/全双工))。

5) 电源引脚13Pin
模拟电源引脚:模拟接收电源AVDD  1、2
              模拟发送电源AVDD  9
              模拟接收地  AGND  5
              模拟发送地  AGND  6
              模拟substrate地  AGND  46
数字电源引脚:数字电源DVDD
              数字地  DGND

6) 模式引脚2Pin
掉电模式引脚:PWRDWN
电缆状态/连接状态引脚CABLESTS/LINKSTS
动态MDIX控制引脚DISMDIX
注:MDI/MDIX为网线连接类型,MDI代表直连(straight through),MDIX代表交叉连接(cross over)。The DM9161A supports the automatic detect cable connection type, MDI/MDIX.

注:The DM9161A supports the automatic detect cable connection type, MDI/MDIX (straight through/cross over). A manual configuration by register bit for MDI or MDIX is still accepted. When set to automatic, the polarity of MDI/MDIX controlled timing is generated by a 16-bits LFSR. The switching cycle time is located from 200ms to 420ms. The polarity control is always switch until detect received signal. After selected MDI or MDIX, the polarity status can be read by register bit (20.7).(See page33,8.12 specified config register-20 bit 7)7.3.1 Function Setting. Pin 39 is used to enable Auto MDIX function. Pull pin 39 low will enable it, and pull pin 39 high will disable it. Specified config Register 20 bit 4 (20, 4) is used by programmer to disable Auto MDIX function. Write register 20 bit 4 to “ 1 “ will disable Auto MDIX function. Its default value is “ 0 “. When the register 20 bit 4 (20, 4) is set to “ 1 “, the register 20 bit 5(20, 5) is used to select straight through or cross over mode, “ 0 “ is for straight through, and “ 1 “ is for cross over.

4. 电路
1)网卡部分:

2)RJ45部分

摘自“嵌入式系统硬件设计”
CS8900A通过一个隔离的变压器连接到计算机的10BASE-T端口上。如果CS8900A使用的是5V的电源,则这个变压器必须有两个绕线比为1:1和1:1.41的线圈分别供接收器和发送器使用。如果CS8900A的电源为3.3V,那么变压器供发送器使用的线圈的绕线比必须为1:2.5。发送器要求电阻值为24.9 ohms(1%)的串联终端电阻,而且发送器的两个差动端必须使用一个68pF的电容来相互去耦合。在接收器的两个差动端需要通过一个100 ohms(1%)的电阻进行并行连接。CS8900A另外还有一个引脚RES,这个引脚需要接一个4.99K ohms(1%)的下拉电阻。

网卡phy9161A的更多相关文章

  1. Linux网卡驱动安装、防火墙原理

    安装网卡驱动程序: 需要检查是否安装kernel依赖包: rpm –q kernel-devel #检查kernel依赖包是否安装 yum –y install kernel-devel 检查gcc和 ...

  2. 烂泥:VMWare Workation双网卡配置IP地址

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...

  3. 【转】基于linux下的dm9000网卡移植全分析

    转自:http://blog.sina.com.cn/s/blog_6abf2c04010189ui.html DM9000可以直接与ISA总线相连,也可以与大多数CPU直接相连.Mini2440采用 ...

  4. 2-kvm创建快照以及网卡绑定

    kvm创建快照以及网卡绑定 创建node1 查看node1 进入到kvm的配置文件里 将rhcs文件复制一份取名为node1.xml 通过这个命令随机生成一个uuid 然后就进入node1.xml里修 ...

  5. 嵌入式Linux驱动学习之路(二十五)虚拟网卡驱动程序

    一.协议栈层次对比 设备无关层到驱动层的体系结构 1).网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过 ...

  6. 克隆虚机网卡出现 Device eth0 does not seem to be present, delaying initialization 错误

    错误原因    克隆的Linux系统在新的机器上运行,新服务器网卡物理地址已经改变.而/etc/udev/rules.d/70-persistent-net.rules这个文件确定了网卡和MAC地址的 ...

  7. Linux下双网卡绑定bond0

    一:原理: linux操作系统下双网卡绑定有七种模式.现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑 ...

  8. 大数据量冲击下Windows网卡异常分析定位

    背景 mqtt的服务端ActiveMQ在windows上,多台PC机客户端不停地向MQ发送消息. 现象 观察MQ自己的日志data/activemq.log里显示,TCP链接皆异常断开.此时尝试从服务 ...

  9. Linux CentOS6.x ip设置(网卡设置)

    修改IP永久生效按以下方法vi /etc/sysconfig/network-scripts/ifcfg-eth0(eth0,第一块网卡,如果是第二块则为eth1)按如下修改ip: DEVICE=et ...

随机推荐

  1. 【转载】CodeLite汉化

    这几天在Ubuntu下做程序想找一个代码提示功能比较好的IDE但又不想用NETBEANS和ECLIPSE,找到CodeLite但是它是全英文的,比较晕.找了一下,下载了一个windows版的准备回去研 ...

  2. 使用CXF实现基于Rest方式的WebService(转)

    转自:https://www.cnblogs.com/zjm701/p/6845813.html原文更清晰 本文介绍使用CXF实现基于Rest方式的WebService(CXF的版本是3.0.0) 一 ...

  3. Python基本数据类型详细介绍(转)

    1.空(None)表示该值是一个空对象,空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的空值.2.布尔类型(Boolean)在 Pyth ...

  4. Android的各版本间的区别总结

    Android 1.0 第一版商用操作系统 Android 1.1 更新了部分API,新增一些功能,修正了一些错误,同时增加com.google.android.maps包 Android 1.5智能 ...

  5. 自定义Microsoft Visual Studio 代码模板,增加公司和个人信息

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp目录里面有各种新建模板分类: 修 ...

  6. pythonl练习笔记——multiprocessing 多进程拷贝文件

    分两份拷贝文件,父进程拷贝文件的前半部分,子进程拷贝文件的后半部分. import os import time #获取文件大小 size = os.path.getsize('wait.py') # ...

  7. Shell中重定向<<EOF注意事项

    作者:iamlaosong 我们常常在shell脚本程序中用<<EOF重定向输入.将我们输入的命令字符串作为一个运行程序的输入,这样,我们就不须要在那个程序环境中手工输入命令,以便自己主动 ...

  8. Android ListView动画特效实现原理及源代码

    Android 动画分三种,当中属性动画为我们最经常使用动画,且能满足项目中开发差点儿所有需求,google官方包支持3.0+.我们能够引用三方包nineoldandroids来失陪到低版本号.本样例 ...

  9. 如何判断SCI期刊投稿难易度和审稿周期

    如何判断SCI期刊投稿难易度和审稿周期 要发SCI论文,前提当然是必须有一篇写好的英文论文,SCI都是英文的杂志,这个大家应该都懂的     首先谈谈投稿难易程度很多人似乎都一种误解,认为拒稿率高的杂 ...

  10. 把git上的larave项目通过SourceTree安装上再通过composer安装依赖库

    1.项目地址克隆 https://gitee.com/fps2tao/laravel5.5-alitaobao.git 通过SourceTree工具下载到本地 2.在命令行方式打开项目地址安装依赖库( ...