嵌入式以太网的趋势
最理想的是嵌入式web服务器
以太网进攻工业控制成为必然趋势传统的以太网直接进入工业控制领域目前还存在一些问题,主要是因为
以太网是为办公自动化设计的,并没有考虑到工业应用的要求。首先以太网的媒体访问方式 CSDA/CD 不能保证网络传输的确定性,也就是说以太网不具有实时性。其次以太网所用的接插件、集线器、交换机和传输介质等设备不能满足工业现场恶劣环境的要求。再次,以太网还不具备通过信号线向现场仪表供电的性能。 随着网络技术的发展,上述问题正在迅速得到解决,为以太网进入工业控制领域铺平了道路,为以太网直接应用于工业现场设备间通信提供了技术可能。
以太网方案 MCU+集成MAC控制器/PHY收发器的独立芯片
MCU+ ENC28J60 ENC424J600/ENC624J600
实现简单
据称ENC28J60也发热
//enc28j60支持DMA方式传输数据 速度应该能符合要求,MCU速度快的话,UDP能达到500KB/秒的速度,这个数据是有人测过的。
只是这个芯片功耗较大,有发热的毛病,设计时需加强3.3V供电的富余。
//ENC28J60大概20几块钱可以买到,可以到贝能去申请样片
//
Microchip的ENC28J60采用SPI方式控制,所以整个电路较为简单,对于小型应用比较有优势,成本也较好控制。
这里有一个例子,采用了一片Mega88和一片ENC28J60
http://tuxgraphics.org/electronics/200606/article06061.shtml#06061lfindex12
源代码开放,支持UDP,提供了测试代码
源代码现在已经升级到2.4版了,下面是下载:
点击此处下载ourdev_175219.rar(文件大小:134K)
//有DIP封装的方便做实验中
//我是在taobao找到的,价格是25元一片
MCU+ENC28J60 //数据量太大了,enc28j60不知道能胜任否,他的spi口理论上是10m的。每秒192K字节,串行的话要大于2M的单向流量,mcu和enc28j60通过spi的交互,感觉有些吃力。 我没用过enc28j60。
MAC控制器/PHY收发器全集成于CPU的方案
- 完全一体化 PIC18F97J60 系列 PIC18F97J60 系列带有以太网模块的64/80/100 引脚高性能1 Mb 闪存单片机
- 瑞萨科技公司宣布推出SuperH 32位RISC微处理器——SH7619。该处理器具有以太网物理层(PHY)收发器和以太网控制器
- CS8900a。他是一个真正的单芯片,全双工以太网解决方案。本身集成了由MAC层到PHY层所有的逻辑功能,包括了一个以太网电路所必需的所有的模拟和数字电路。芯片可以自动检查连接状态,单独进行载波侦听、冲突检测、错误重传以及自动填充、CRC校验等功能。对于处理器来说,对网络芯片的访问和控制,如同一段内存空间或者是分配的几个I/O空间一样。集成了一个4 kB的片上存储器,用于临时保存发送和接收到的物理帧以及内部寄存器的值,从而减轻了CPU的负担,简化了软件的复杂度。CS8900A 还支持软件复位,当由于某些预料之外的事件发生,致使芯片功能紊乱网络通信阻断,可通过软件复位重新启动网络通信功能,保证网络通信的健壮性。
由于PHY是数模混合的,集成在一起,性能不是太高,也可能存在发热现象
PIC18F97J60
//如果这个片子足够便宜(35~40元)完全可以取代PIC/51+8019+RAM,如果比较贵(>50元),那我还是倾向于ARM+ENC28J60(26元左右)了
//淘宝上见26元
//据称比较发热
集成MAC控制器的MCU+收发器方案
- PIC32 +PHY收发器
此方案具有普适性,性能也能提高
PHY整合了大量模拟硬件,而MAC是典型的全数字器件。芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合
也可以使用外部MAC/PHY芯片,常常将这种芯片直接连到处理器的异步存储器接口。虽然以太网MAC/PHY组合芯片的价格持续下降,已达到几乎与独立PHY芯片相当的程度,但其传输速率无法与集成MAC加外部PHY解决方案相比。这是因为,内部MAC通常与系统DMA通道相连,可以设置为发送或接收数据,与内核处理器的交互极少。内部MAC控制器一般可以实现接近于线路速度的性能,具体取决于协议。
半导体厂商搞集成还考虑到一旦集成则只能买单一市场;MAC层是数码电路,PHY层須要模拟电路,兩个集成在一起須要特別工艺,价钱较高.PHY层分工业级或商用,家用,及光纤等..因此集成在一起只能卖单一市場.
PIC32+PHY
//107 + 国半dp83848。手册还有其他建议芯片,我觉得这个83848是个久经考验芯片。
我:性能上当然这个强了,可以后续考虑考虑在里面嵌入web服务器
dp83848是很多评估板上都推荐的
//dp83848见淘宝上也要十几块
//价格:DP83848大概比DM9161贵七到八块,从成本上考虑用DM9161好。
性能:DP83848的网络传输距离为120米,DM9161为100米内,DP83848适用于恶劣的工业环境。
使用:Keil、IAR、FreeRTOS等提供的网络程序全部用DP83848做为驱动片子,网络方面的程序根本就是拿来主义不需要修改,尤其是keil提供的协议栈调用方式上和VC上的SOCK编程差不多;如果使用DM9161,需要自己编写驱动程序,据了解到现在还没有一个让人觉得放心的程序出来。
呵呵!总的来说老板想用DM9161,员工想用DP83848。
// DM9161AEP,但是这个芯片是商业级的,长时间工作之后很容易出现问题
工业级的DP83848I
------------//PIC32MX5/6/7系列中
H系列(64引脚)比L系列(100引脚)引脚少,少了一些SPI等资源
PIC32MX675F512H 64脚 数据空间最少 官网参考价格1-25和5000+分别为:PIC32MX675F512H-80I/PT 64 TQFP 7.79 5.66 *
PIC32MX695F512H 64脚 比前者多了数据空间; 官网参考价格1-25和5000+分别为: PIC32MX695F512H-80I/PT 64 TQFP 8.44 6.13 *
以上这两个引脚兼容
PIC32MX795F512H 64脚 比前两者多了CAN;官网参考价格1-25和5000+分别为: PIC32MX795F512H-80I/PT 64 TQFP 8.75 6.36 * ;价格淘宝PIC32MX795F512H-PT 55元 江苏 徐州
PIC32MX675F512L 100脚 数据空间最少 官网参考价格1-25和5000+分别为: PIC32MX675F512L-80I/PT 100 TQFP 8.44 6.13 *
PIC32MX695F512L 100脚 比前者数据空间多;官网参考价格1-25和5000+分别为:PIC32MX695F512L-80I/PT 100 TQFP 9.10 6.61 *
以上这两个引脚兼容
PIC32MX795F512L 100脚 比前两者多了CAN;官网参考价格1-25和5000+分别为:PIC32MX795F512L-80I/PT 100 TQFP 9.41 6.83 *
比较倾向于第一组的PIC32MX695F512H,64引脚,并且和675引脚上兼容,如果想要数据空间少一些的话,可直接替换
现在美元汇率6.6
大致50元能拿下来
单片机+控制器+收发器方案
这就算了吧
RTL8019AS方案
RTL8019AS以太网控制器是由Realtek公司出的一款高集成度的以太网控制芯片,具有
8/16位总线模式,集成了IEEE802.3协议标准的介质访问控制子层(MAC)和物理层的性能,
与NE2000相兼容,支持以太网全双工通信方式,支持UTP,AUI和BNC自动检测, 支持16 条
I/O 基本地址选项和额外I/O地址输入输出完全解码方式,支持存储器瞬时读写,收发可同
时达到10Mbps的速率,内置16KB的SRAM,可以方便的与微处理器进行连接
只支持10M
由台湾Realtek公司生产的RTL8019AS以太网控制器,由于其优良的性能、低兼的价格,使其在市场上10Mbps网卡中占有相当的比例。主要性能:
1、符号Ethernet II与IEEE802.3(10Base5、10Base2、10BaseT)标准;
2、全双工,收发可同时达到10Mbps的速率;
3、内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;
4、支持8/16位数据总线,8个中断申请线以及16个I/O基地址选择;
5、支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;
6、允许4个诊断LED引脚可编程输出;
7、100脚的PQFP封装。
RTL8019AS以太网控制器是由Realtek公司出的一款高集成度的以太网控制芯片,具有
8/16位总线模式,集成了IEEE802.3协议标准的介质访问控制子层(MAC)和物理层的性能,
与NE2000相兼容,支持以太网全双工通信方式,支持UTP,AUI和BNC自动检测, 支持16 条
I/O 基本地址选项和额外I/O地址输入输出完全解码方式,支持存储器瞬时读写,收发可同
时达到10Mbps的速率,内置16KB的SRAM,可以方便的与微处理器进行连接
Realtek Full-Duplex Ethernet
Controller with Plug and Play Function
(RealPNP)
The RTL8019AS is a highly integrated Ethernet Controller which offers a simple solution to
implement a Plug and Play NE2000 compatible adapter with full-duplex and power down features.
With the three level power down control features, the RTL8019AS is made to be an ideal choice
of the network device for a GREEN PC system. The full-duplex function enables simultaneously
transmission and reception on the twisted-pair link to a full-duplex Ethernet switching hub. This
feature not only increases the channel bandwidth from 10 to 20 Mbps but also avoids the
performance degrading problem due to the channel contention characteristics of the Ethernet
CSMA/CD protocol. The Microsoft's Plug and Play function can relieve the users from pains of
taking care the adapter's resource configurations such as IRQ, I/O, and memory address, etc.
However, for special applications not to be used as a Plug and Play compatible device, the
RTL8019AS also supports the jumper and proprietary jumperless options.
RTL8019AS网络控制芯片,它具有以下优点:10 MB/ s的数据传输速率对没有大量实时数据的测控场合已经具有很优秀的通信质量;芯片的标准工作电平是DC-5 V,与单片机系统完全兼容;芯片遵循ISA 总线标准,有8 位和16 位数据传输2 种工作模式,有利于与 MCU配合使用,MCU利用部分控制总线、地址总线和数据总线就可直接操作RTL8019AS的内部寄存器,最大限度地简化了驱动电路和驱动程序结构。
网络接口电路主要由RJ45接口、脉冲变压器和以太网控制器RTL8019AS组成。RTL8019AS性能优良,符合Ethernet II与IEEE802.3(10Base5、10Base2、10BaseT)标准,支持8/16位数据总线,8个中断申请线以及16个I/O基地址选择,同时内置16KB的SRAM,用于收发缓冲,降低了器件对主处理器速度的要求。由于本系统采用10BASE-T布线标准,通过双绞线进行以太网通信,而RTL8019AS内置了10BASE-T收发 器,因此RJ45接口的收发端通过脉冲变压器隔离后直接与RTL8019AS芯片的收发端相连,实现通信。
网卡芯片RTL8019AS内部结构为:
RTL8019AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻辑和其他端口。、
远程DMA接口是指单片机对RTL8019AS内部RAM进行读写的总线。单片机收发数据只需对远程DMA操作。本地DMA接口是把RTL8019AS与网线的连接通道,完成控制器与网线的数据交换。
MAC(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上一帧的发送后,再开始此帧的发送。而RTL8019接收到数据时通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知单片机。
RTL8019AS内部有两块RAM区。一块16K字节,地址为0x4000~0x7fff;一块小区32字节单元(即输入输出地址),地址为0x0000~0x001f。:(对应于240H--25FH,240H的地址偏移量为0,241H的地址偏移量为1,。。。25FH的地址偏移量为1FH)。
其中00H--0FH共16个地址单元,为寄存器地址。10H--17H共8个单元,为DMA地址。18H--1FH共8个单元,为复位端口。对于8位的操作方式,上面的地址中只有18个是有用的:00H--0FH共16个寄存器地址。10H DMA地址 (10H--17H的8个地址是一样的,都可以用来做DMA端口,只用其中之一)1FH 复位地址。(18H到1FH共8个地址都是复位地址,每个地址的功能都是一样的,只用其中之一就OK了,但实际上只有18H,1AH,1CH,1EH这几个复位端口是有效的,其他不要使用,有些兼容卡不支持19H,1BH,1DH等奇数地址的复位)
寄存器介绍:
a, 命令寄存器CR的各位介绍:
——PS1和PS0这两个位用来选择寄存器页,PS1 PS0=00时选择寄存器页0,=01时选择寄存器页1, =10时选择寄存器页2,=11时选择寄存器页3.
--RD2,RD1,RD0这3个位代表要执行的功能。=001 读网卡内存=010 写网卡内存=011 发送网卡数据包=1** 完成或结束DMA的读写操作
--TXP这个位写入1时发送数据包,发完自动清零
--STA,STP这两个位用来启动命令或停止命令
=10 启动命令=01 停止命令
b,PSTART 指定开始接收页
c,PSTOP指定结束页。(该页不用于接收)
d,BNRY 指向最后一个已经读取的页(读指针)
e,TPSR为发送页的起始页地址。
f,ISR,中断寄存器,为FF则清除所有标志位
g, RCR 接收配置寄存器,设置为使用接收缓冲区,仅接收自己的地址的数据包 (以及广播地址数据包)和多点播送地址包,小于64字节的包丢弃(这是协议的 规定,设置成接收是用于网络分析),校验错的数据包不接收
h,TCR 发送配置寄存器,启用crc自动生成和自动校验,工作在正常模式
i,DCR 数据配置寄存器,设置为使用FIFO缓存,普通模式,8位数据传输模式,
j,IMR 中断屏蔽寄存器,设置成0x00,屏蔽所有的中断
k,CURR 当前的接收结束页地址
其中b,c,d,k,用于接收的设置
从程序员的角度来说,对 RTL8019 的操作是比较简单,驱动程序只需要将要发送的数据按一定的格式写入芯片并启动发送命令,RTL8019 会自动把数据包转换成物理帧格式在物理信道上传输。反之,RTL8019 收到物理信号后将其还原成数据,按指定格式存放在芯片 RAM 中以便主程序取用。简而言之就是 RTL8019 完成数据包和电信号之间的相互转换。以太网协议由芯片硬件自动完成,对程序员透明。RTL8019 驱动程序包括:芯片初始化程序、接收数据包程序、发送数据包程序
DM9000A
是中国台湾 DAVICOM 公司推出的一款高
速以太网接口芯片。其基本特征是:集成 10/100M 物理
层接口;内部带有 16K 字节 SRAM 用作接收发送的 FIFO
缓存;支持 8/16bit 两种主机工作模式;通过 HP 认证的
AUTO-Mdix(支持直接互连自动翻转)功能;支持 TCP/IP
加速(IPV4 check sum offload)减轻 CPU 负担,提高整
机效能;10ns I/O 读写时间。DM9000A 以太网控制器遵
循 IEEE 颁布的 802.3 以太网传输协议。该电路还集成
了 EEPROM 接口,自举时通过 EEPROM 接口输入到芯片
中,从而实现自动初始化。
DM9161
DM9161
10/100 Mbps Fast Ethernet Physical Layer Single Chip Transceiver
The DM9161 is a physical-layer, single-chip, low-
power transceiver for 100BASE-TX and 10BASE-T
operations. On the media side, it provides a direct
interface either to Unshielded Twisted Pair Cable 5
(UTP5) for 100BASE-TX Fast Ethernet, or
UTP5/UTP3 Cable for 10BASE-T Ethernet. Through
the Media Independent Interface (MII), the DM9161
connects to the Medium Access Control (MAC) layer,
ensuring a high inter-operability among products from
different vendors
从如下几点分析
价格:DP83848大概比DM9161贵七到八块,从成本上考虑用DM9161好。
性能:DP83848的网络传输距离为120米,DM9161为100米内,DP83848适用于恶劣的工业环境。
使用:Keil、IAR、FreeRTOS等提供的网络程序全部用DP83848做为驱动片子,网络方面的程序根本就是拿来主义不需要修改,尤其是keil提供的协议栈调用方式上和VC上的SOCK编程差不多;如果使用DM9161,需要自己编写驱动程序,据了解到现在还没有一个让人觉得放心的程序出来。
呵呵!总的来说老板想用DM9161,员工想用DP83848。
==
俺几年前在9260上用过DP83848,挺好用的。
老王说的没错,代码改个PHY的ID就好了
台湾的片子DM9161肯定不如DP83848稳定,当然稳定是相对而言的。
很长厂家都吃过台湾片子的亏。
以太网控制器(MAC)和物理接口收发器(PHY)
问:如何实现单片以太网微控制器?
答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件。这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积。单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下。
问:以太网MAC是什么?
答:MAC就是媒体接入控制器。以太网MAC由IEEE-802.3以太网标准定义。它实现了一个数据链路层。最新的MAC同时支持10Mbps和100Mbps两种速率。通常情况下,它实现MII接口。
问:什么是MII?
答:MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。
问:以太网PHY是什么?
答:PHY是物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。
问:造成以太网MAC和PHY单片整合难度高的原因是什么?
答:PHY整合了大量模拟硬件,而MAC是典型的全数字器件。芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。
问: 除RJ-45接口外,还需要其它元件吗?
答:需要其它元件。虽然PHY提供绝大多数模拟支持,但在一个典型实现中,仍需外接6、7只分立元件及一个局域网绝缘模块。绝缘模块一般采用一个1:1的变压器。这些部件的主要功能是为了保护PHY免遭由于电气失误而引起的损坏。
RTL8019AS 是高度集成以太网控制器
以太网规范规定以太网需要两种接口部件:MAC(Media Access Controller,媒体访问控制器)和PHY(Physical transceiver,物理收发器)。MAC是一种纯数字的设备,负责数据流的同步处理。而PHY在很大程度上是一种模拟器件,负责将数据转换成在特定的媒体上(常用双绞线)传输所需的信号电平。
到目前为止,嵌入式控制设计者所能够找到的以太网接口器件非常稀少,而且这些器件都是为PC应用而定制的。8位和16位接口的器件常常都采用大型封装,有几百个引脚,需要嵌入式应用为PC总线的仿真预留大量的I/O接口(24个以上)。
近来,很多微控制器厂商已经开始关注嵌入式控制的应用领域,并且认识到这一领域对更灵活和更专用解决方案的需求。有些厂商已经开始把MAC部件集成到标准的8位或16位微控制器架构中,形成了非常紧凑的解决方案。
另外一些厂商则将MAC和PHY都集成到引脚个数较少的以太网控制器中。这些以太网控制器一般都采用RAM缓冲器和一个简单的SPI接口,使得整个器件可以进行小型封装(参见图1)。
-----
以太网规范规定以太网需要两种接口部件:MAC(Media Access Controller,媒体访问控制器)和PHY(P
hysical transceiver,物理收发器)。MAC是一种纯数字的设备,负责数据流的同步处理。而PHY在很大
程度上是一种模拟器件,负责将数据转换成在特定的媒体上(常用双绞线)传输所需的信号电平
另外一些厂商则将MAC和PHY都集成到引脚个数较少的以太网控制器中
MAC 和PHY 一个是数据链路层 一个是物理层 两者通过MII传送数据。
MII即媒体独立接口, “媒体独立”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号,包括TX_ER,TXD<3:0>,TX_EN,TX_CLK,COL,RXD<3:0>,RX_EX,RX_CLK,CRS,RX_DV等。
MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。MII管理接口是个双信号接口,一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。其管理是使用SMI(Serial Management Interface)总线通过读写PHY的寄存器来完成的。PHY里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等。当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作。当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。
----
以太网媒体接口 MII RMII等
以太网媒体接口有:MII RMII SMII GMII
所有的这些接口都从MII而来,MII是(Medium Independent Interface)的意思,是指
不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC的
芯片完成。
MII支持10兆和100兆的操作,一个接口由14根线组成,每条信道都有自己的数据、
时钟和控制信号,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太
多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要
用到448根线,一般按照这个接口做交换机,是不太现实的,所以现代的交换机的制作都会用
到其它的一些从MII简化出来的标准,比如RMII、SMII、GMII等。
RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的信号线,所以它一般
要求是50兆的总线时钟。RMII一般用在多端口的交换机,它不是每个端口安排收、发两个时钟,
而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目。RMII
的一个端口要求7个数据线,比MII少了一倍,所以交换机能够接入多一倍数据的端口。和MII
一样,RMII支持10兆和100兆的总线接口速度。
SMII是由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意
思。因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以在时钟上为了满足
100的需求,它的时钟频率很高,达到了125兆,为什么用125兆,是因为数据线里面会传送一
些控制信息。SMII一个端口仅用4根信号线完成100信号的传输,比起RMII差不多又少了一倍
的信号线。SMII在工业界的支持力度是很高的。同理,所有端口的数据收发都公用同一个外部
的125M时钟。
GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。
RMII 口是用两根线来传输数据的,
MII 口是用4根线来传输数据的,
GMII 是用 8根线来传输数据的。
TXD[3:0]:数据发送信号,共 4 根信号线;
RXD[3:0]:数据接收信号,共 4根信号线;
TX_ER(Transmit Error): 发送数据错误提示信号,同步于 TX_CLK,高电平有效,
表示TX_ER 有效期内传输的数据无效。对于 10Mbps速率下,TX_ER 不起作用;
RX_ER(Receive Error): 接收数据错误提示信号,同步于RX_CLK,高电平有效,表
示RX_ER有效期内传输的数据无效。对于10Mbps速率下,RX_ER不起作用;
TX_EN(Transmit Enable): 发送使能信号,只有在 TX_EN 有效期内传的数据才有效;
RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的TX_EN;
TX_CLK:发送参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,
时钟频率为 2.5MHz。注意,TX_CLK 时钟的方向是从 PHY 侧指向MAC侧的,因为此时钟
是由PHY 提供的。
RX_CLK:接收数据参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率
下,时钟频率为2.5MHz。RX_CLK 也是由 PHY 侧提供的。
CRS:Carrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS
就有效,另外,CRS只在半双工模式下有效;
COL:Collision Detectd,冲突检测信号,不需要同步于参考时钟,只在半双工模式下
有效。
MII接口一共有 16根线(TX_CLK, RX_CLK 未记入)。
CLK为接收和发送共用
RMII 即 Reduced MII,是 MII 的简化版,信号线数量由 MII 的 14 根减少为 7 根
(CLK_REF为外部时钟源)。
TXD[1:0]:数据发送信号线,数据位宽为 2,是MII接口的一半;
RXD[1:0]:数据接收信号线,数据位宽为 2,是MII接口的一半;
TX_EN(Transmit Enable):数据发送使能信号,与MII接口中的该信号线功能一样;
RX_ER(Receive Error):数据接收错误提示信号,与 MII接口中的该信号线功能一样;
CLK_REF:是由外部时钟源提供的 50MHz 参考时钟,收发共用,与 MII 接口不同(MII
接口中的接收时钟和发送时钟是分开的,而且都是由PHY 芯片提供给MAC芯片的)。这里
需要注意的是,由于数据接收时钟是由外部晶振提供而不是由载波信号提取,所以在 PHY
层芯片内的数据接收部分需要设计一个 FIFO,用来协调两个不同的时钟。
CRS_DV:此信号是由MII接口中的 RX_DV和CRS两个信号合并而成。当介质不空闲时,
CRS_DV和 RE_CLK 相异步的方式给出。当 CRS比 RX_DV早结束时(即载波消失而队列中
还有数据要传输时),就会出现 CRS_DV 在半位元组的边界 25MHz/2.5MHz 的频率在 0、1
之间的来回切换。因此,MAC能够从 CRS_DV中精确的恢复出RX_DV和 CRS。
在100Mbps速率时,TX/RX每个时钟周期采样一个数据;在10Mbps速率时,TX/RX每隔
10 个周期采样一个数据,因而 TX/RX 数据需要在数据线上保留 10 个周期,相当于一个数据发送 10 次。
当 PHY 层芯片收到有效的载波信号后,CRS_DV 信号变为有效,此时如果 FIFO 中还没有
数据,则它会发送出全 0 的数据给 MAC,然后当 FIFO 中填入有效的数据帧,数据帧的开
头是“101010---”交叉的前导码,当数据中出现“01”的比特时,代表正式数据传输开始,MAC
芯片检测到这一变化,从而开始接收数据。
当外部载波信号消失后, CRS_DV会变为无效,但如果 FIFO中还有数据要发送时, CRS_DV
在下一周期又会变为有效,然后再无效再有效,知道FIFO中数据发送完为止。
SMII即 Serial MII,串行 MII的意思,跟 RMII相比,信号线数据进一步减少到 3根;
TXD:发送数据信号,位宽为 1;
RXD:接收数据信号,位宽为 1;
SYNC:收发数据同步信号,每 10个时钟周期置1次高电平,指示同步。
CLK_REF:所有端口共用的一个参考时钟,频率为 125MHz,为什么 100Mbps 速率要用
125MHz 时钟?因为在每8 位数据中会插入2 位控制信号,请看下面介绍。
TXD/RXD 以 10 比特为一组,以 SYNC为高电平来指示一组数据的开始,在 SYNC 变高后
的 10 个时钟周期内,TXD 上依次输出的数据是:TXD[7:0]、TX_EN、TX_ER,控制信号
的含义与 MII接口中的相同; RXD 上依次输出的数据是: RXD[7:0]、 RX_DV、 CRS, RXD[7:0]
的含义与 RX_DV 有关,当 RX_DV 为有效时(高电平),RXD[7:0]上传输的是物理层接收的
数据。当 RX_DV为无效时(低电平),RXD[7:0]上传输的是物理层的状态信息数据。
千兆以太网MII接口类型主要有GMII、RGMII、SGMII、TBI和RTBI 五种
GMII 接(如下图):
与MII接口相比,GMII 的TX/RX数据宽度由4位变为 8位,GMII 接口中的
控制信号如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同 MII接
口中的一样,发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为
125MHz(1000Mbps/8=125MHz)。
在这里有一点需要特别说明下,那就是发送参考时钟GTX_CLK,它和 MII
接口中的TX_CLK是不同的, MII接口中的TX_CLK是由PHY芯片提供给MAC
芯片的,而GMII 接口中的GTX_CLK是由MAC芯片提供给PHY芯片的。两
者方向不一样。
在实际应用中,绝大多数GMII 接口都是兼容 MII接口的,所以,一般的
GMII 接口都有两个发送参考时钟:TX_CLK和GTX_CLK(两者的方向是不一样
的,前面已经说过了),在用作MII模式时,使用TX_CLK和 8根数据线中的4
根。
RGMII 接口:
RGMII 即 Reduced GMII,是RGMII 的简化版本,将接口信号线数量从24
根减少到14根(COL/CRS端口状态指示信号,这里没有画出),时钟频率仍旧为
125MHz,TX/RX数据宽度从8为变为4位,为了保持1000Mbps的传输速率不
变,RGMII 接口在时钟的上升沿和下降沿都采样数据。在参考时钟的上升沿发
送GMII 接口中的TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送GMII 接口中
的TXD[7:4]/RXD[7:4]。RGMI同时也兼容100Mbps 和10Mbps两种速率,此时
参考时钟速率分别为25MHz和2.5MHz。
SGMII接口
SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率
625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提
供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使
用。收发都可以从数据中恢复出时钟。
在TXD发送的串行数据中,每 8比特数据会插入TX_EN/TX_ER 两比特
控制信息,同样,在RXD接收数据中,每 8比特数据会插入RX_DV/RX_ER 两
比特控制信息,所以总的数据速率为1.25Gbps=625Mbps*2.
其实,大多数MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上
完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此
时时钟速率仍旧是625MHz,不过此时跟SGMII 接口不同,SGMII接口速率被
提高到1.25Gbps是因为插入了控制信息,而SerDes端口速率被提高是因为进行
了8B/10B变换,本来8B/10B变换是PHY芯片的工作,在SerDes接口中,因
为外面不接PHY芯片,此时8B/10B变换在MAC芯片中完成了。8B/10B变换
的主要作用是扰码,让信号中不出现过长的连“0”和连“1”情况,影响时钟信
息的提取
TBI即Ten Bit Interface的意思,接口数据位宽由GMII 接口的 8位增加到
10位,其实,TBI接口跟GMII 接口的差别不是很大,多出来的2位数据主要是
因为在TBI接口下,MAC芯片在将数据发给PHY芯片之前进行了8B/10B变换
(8B/10B变换本是在PHY芯片中完成的,前面已经说过了),另外,RX_CLK+/-
是从接收数据中恢复出来的半频时钟,频率为62.5MHz,RX_CLK+/-不是差分
信号,而是两个独立的信号,两者之间有180 度的相位差,在这两个时钟的上升
沿都采样数据。RX_CLK+/-也叫伪差分信号。除掉上面说到的之外,剩下的信号
都跟GMII 接口中的相同。
大多数芯片的TBI接口和GMII 接口兼容。在用作TBI接口时, CRS和 COL
一般不用。
RTBI接口
RTBI即Reduced TBI,简化版TBI,接口数据位宽为5bit,时钟频率为
125MHz,在时钟的上升沿和下降沿都采样数据,同RGMII 接口一样,TX_EN
线上会传送TX_EN和TX_ER两种信息,在时钟的上升沿传TX_EN,下降沿传
TX_ER;RX_DV线上传送RX_DV 和RX_ER 两种信息,在RX_CLK上升沿传
RX_DV,下降沿传RX_ER。
网络变压器
以太网网络变压器的作用
在以太网设备中,通过PHY接RJ45时,中间都会加一个网络变压器。有的变压器中心抽头接电源,有的又接电容到地。而且接电源时,电源值又可以不一样,3.3V,2.5V,1.8V都有。这个变压器的作用到底是什么呢?
下面是一个大概的解答:
1、中间抽头为什么有些接电源?有些接地?这个主要是与使用的PHY芯片UTP口驱动类型决定的,这种驱动类型有两种,电压驱动和电流驱动。电压驱动的就要接电源;电流驱动的就直接接个电容到地即可!所以对于不同的芯片,中心抽头的接法,与PHY是有密切关系的,具体还要参看芯片的datasheet和参考设计了。
2、为什么接电源时,又接不同的电压呢?这个也是所使用的PHY芯片资料里规定的UTP端口电平决定的。决定的什么电平,就得接相应的电压了。即如果是2.5v的就上拉到2.5v,如果是3.3v的就上拉到3.3v。
3.这个变压器到底是什么作用呢,可不可以不接呢。从理论上来说,是可以不需要接变压器,直接接到RJ45上,也是能正常工作的。但是呢,传输距离就很受限制,而且当接到不同电平网口时,也会有影响。而且外部对芯片的干扰也很大。当接了网络变压器后,它主要用于信号电平耦合。其一,可以增强信号,使其传输距离更远;其二,使芯片端与外部隔离,抗干扰能力大大增强,而且对芯片增加了很大的保护作用(如雷击);其三,当接到不同电平(如有的PHY芯片是2.5V,有的PHY芯片是3.3V)的网口时,不会对彼此设备造成影响。
总的来说,网络变压器主要有信号传输、阻抗匹配、波形修复、信号杂波抑制和高电压隔离等作用。
数据汞也被叫做网络变压器或可称为网络隔离变压器。它在一块网卡上所起的作用主要有两个,一是传输数据,它把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到不同电平的连接网线的另外一端;一是隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输损坏设备。除此而外,数据汞还能对设备起到一定的防雷保护作用。
网络变压器选型
有很多集成网络变压器的插座(有的还带指示灯);如果不采用以太网插座,网络变压器还是要的,也有独立网络变压器芯片
网络变压器中心抽头如何接
进入一端,有的是接VDD,有的是接GND,甚至悬空,不一而足,这取决于PHY的,所以要参照具体的PHP中的说明
仔细观察上图会发现,变压器的中心抽头有的接了3.3V的电平,有的接了2.5V的电平,有的悬空了。实际上这个主要与PHY芯片UTP口驱动类型决定的。这种驱动类型有两种,电压驱动和电流驱动。电压驱动的接电源,电流驱动的直接接电容到底即可。至于为什么接电源时,所接的电压会不同呢?这是由所用的PHY芯片规定的UTP端口电平决定的。所以对于不同的PHY芯片,网络变压器的中心抽头会有不同的解法,我们在进行设计时,需要仔细查看芯片资料和参考设计。
出现一端,接75欧姆电阻然后通过电容接到地
发送和接收的几个50欧姆的电阻,电阻值一定要正确,如果不正确,会有丢包现象。或者网络时断时续。
其他
问:如何实现单片以太网微控制器?
答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件。这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积。单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下。
问:以太网MAC是什么?
答:MAC就是媒体接入控制器。以太网MAC由IEEE-802.3以太网标准定义。它实现了一个数据链路层。最新的MAC同时支持10Mbps和100Mbps两种速率。通常情况下,它实现MII接口。
问:什么是MII?
答:MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。
[attachment=723]
问:以太网PHY是什么?
答:PHY是物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。
问:造成以太网MAC和PHY单片整合难度高的原因是什么?
答:PHY整合了大量模拟硬件,而MAC是典型的全数字器件。芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。
问: 除RJ-45接口外,还需要其它元件吗?
答:需要其它元件。虽然PHY提供绝大多数模拟支持,但在一个典型实现中,仍需外接6、7只分立元件及一个局域网绝缘模块。绝缘模块一般采用一个1:1的变压器。这些部件的主要功能是为了保护PHY免遭由于电气失误而引起的损坏。
问:10BaseT和100BaseTX PHY实现方式不同的原因何在?
答:两种实现的分组描述本质上是一样的,但两者的信令机制完全不同。其目的是阻止一种硬件实现容易地处理两种速度。10BaseT采用曼彻斯特编码,100BaseTX采用4B/5B编码。
问:什么是曼彻斯特编码?
答:曼彻斯特编码又称曼彻斯特相位编码,它通过相位变化来实现每个位(图2)。通常,用一个时钟周期中部的上升沿表示“1”,下降沿表示“0”。周期末端的相位变化可忽略不计,但有时又可能需要将这种相位变化计算在内,这取决于前一位的值。
[attachment=724]
问:什么是4B/5B编码?
答:4B/5B编码是一种块编码方式。它将一个4位的块编码成一个5位的块。这就使5位块内永远至少包含2个“1”转换,所以在一个5位块内总能进行时钟同步。该方法需要25%的额外开销。