嵌入式之认识网卡phy自协商

什么是自协商?

自协商是通过一种叫做快速连接脉冲(Fast Link Pulse)的信号实现的,简称FLP。自协商的双方通过FLP来交换数据。
嵌入式之认识网卡phy自协商_第1张图片
在具备自协商能力的端口没有Link的情况下,端口一直发送FLP,在FLP中包含着自己的连接能力信息,包括支持的速率能力、双工能力、流控能力等。这个连接能力是从自协商能力寄存器中得到的(Auto-Negotiation Advertisement Register ,PHY标准寄存器地址4 )。

依靠脉冲位置编码携带数据。一个FLP突发包含33个脉冲位置。17个奇数位置脉冲为时钟脉冲,时钟脉冲总是存在的;16个偶数位置脉冲用来表示数据:此位置有脉冲表示1,此位置没有脉冲表示0。这样1个FPL的突发就可以传输16bit的数据。自协商交互数据就这样通过物理线路被传输
嵌入式之认识网卡phy自协商_第2张图片
如果两端都支持自协商,则都会接收到对方的FLP,并且把FLP中的信息解码出来。得到对方的连接能力。并且把对端的自协商能力值记录在自协商对端能力寄存器中(Auto-Negotiation Link Partner Ability Register , PHY标准寄存器地址5 )。同时把状态寄存器(PHY标准寄存器地址1)的自协商完成bit(bit5)置成1。在自协商未完成的情况下,这个bit一直为0。然后各自根据自己和对方的最大连接能力,选择最好的连接方式Link。比如,如果双方都即支持10M也支持100M,则速率按照100M连接;双方都即支持全双工也支持半双工,则按照全双工连接。一定连接建立后,FLP就停止发送。直到链路中断,或者得到自协商Restart命令时,才会再次发送FLP
自协商是通过一种叫做快速连接脉冲(Fast Link Pulse)的信号实现的,简称FLP。自协商的双方通过FLP来交换数据

并行检测

  为了保证在对端不能支持自协商的情况下也能连接,引入了被称为并行检测(Parallel Detection)的机制。在一端打开自协商,另一端关闭自协商的情况下,连接的建立就依靠并行检测功能实现。

  并行检测机制是这样的:在具有自协商能力的设备端口上,如果接收不到FLP,则检测是否有10M链路的特征信号或100M链路的特征信号。

  如果设备是10M设备,不支持自协商,则在链路上发送普通连接脉冲(Normal Link Pulse)简称NLP。NLP仅仅表示设备在位,不包含其它的额外信息。NLP脉冲如图

在这里插入图片描述

如果是100M设备,不支持自协商,则在没有数据的情况下,在链路上一直发送4B/5B编码的Idle符号。

  并行检测机制如果检测到NLP,则知道对方支持10M速率;如果检测到4B/5B编码的Idle符号,则知道对方支持100M速率。但是对方是否支持全双工、是否支持流控帧这些信息是无法得到的。因此在这种情况下,认为对方只支持半双工,不支持全双工,且不支持流控帧。

  基于以上原理,在对端不打开自协商时,打开自协商的一方只能协商成半双工模式。

  802.3协议规定,通过并行检测建立连接后,PHY的状态寄存器(PHY标准寄存器地址1)的自协商完成bit(bit5)依然要置位成1,尽管链路上并非使用了真正的自协商操作。同时规定在自协商完成bit为1的情况下,本地自协商能力寄存器(PHY标准寄存器地址4)和对端自协商能力寄存器(PHY标准寄存器地址5)是有意义的。所以,要把寄存器5中的数据更新。如果建立的连接为10M,则寄存器5的10M能力bit(bit5)置1,其它bit置0,表示对端只能支持10M半双工;如果建立的连接为100M,则寄存器5的100M能力bit(bit7)置1,其它bit置0,表示对端只能支持100M半双工。

自协商举例

下面说明10/100M自协商的过程,两台均支持自协商,协商100MB、全双工,A和B的设备均发送FLP携带自己的速率和模式,两台设备分别把自己的速率和模式设置最优的,链路连接成功
嵌入式之认识网卡phy自协商_第3张图片
一台自协商和10MB设备互相连接,设备A向B发送FLP,然而B只发送NLP,设备A进行平行检测,收到B的NLP后,将本端设置10M 半双工模式
嵌入式之认识网卡phy自协商_第4张图片

一台自协商和100MB设备互相连接,设备A向B发送FLP,然而B只发送NLP,设备A进行平行检测,收到B的NLP后,将本端设置100M 半双工模式
嵌入式之认识网卡phy自协商_第5张图片
设备A支持自协商、全双工; 设备B支持自协商半双工,两者FLP冲突无法链接上
嵌入式之认识网卡phy自协商_第6张图片
两者均不支持自协商,设备A是半双工、设备B是全双工 无法链接上
嵌入式之认识网卡phy自协商_第7张图片

你可能感兴趣的:(嵌入式,网络,物联网,网络,linux)