SGMII, 1000BASE-X, QSGMII, USXGMII: seriële interfaces naar PHY’s en SFP · Elektrische interfaces: de MII-familie en AUI’s · Netwerkkaarten en switches · Documentatie · CodingBox
CodingBox Documentatie

SGMII, 1000BASE-X, QSGMII, USXGMII: seriële interfaces naar PHY’s en SFP

Elke 1G-SFP-cage voert een seriële lane van 1,25 GBd, en die lane kan twee dialecten spreken die er op een oscilloscoop identiek uitzien: 1000BASE-X, de IEEE-interface die een glasvezelmodule verwacht, en SGMII, de Cisco-variant met 10/100 Mb/s en andere autonegotiatie. Koperen SFP's bevinden zich op de grens tussen beide; de meeste tickets met ‘de koperen SFP linkt op 1G maar mijn 100 Mb/s-camera niet’ blijken een dialectmismatch. Deze pagina behandelt de twee gigabitdialecten, hun autonegotiatie, 2500BASE-X, QSGMII voor meerdere poorten, USXGMII voor multigig en 10GBASE-T SFP+, en hoe Linux en switches de modus kiezen.

1000BASE-X: de oorspronkelijke SFP-interface (Clause 36/37)

OnderdeelWaarde
Snelheid1,25 GBd, 8b/10b → 1000 Mb/s payload
Lanes1 differentieel paar per richting (CML, AC-gekoppeld)
Codering8b/10b met /K28.5/-komma's, geordende sets /C1/ /C2/ (configuratie), /I1/ /I2/ (idle)
AutonegotiatieClause 37: 16-bit configuratiewoord uitgewisseld in geordende /C/-sets — full/half duplex, pauze (symmetrisch/asymmetrisch), remote fault, acknowledge. Geen snelheidsveld: 1000BASE-X is alleen 1G
Waarswitch/NIC-SerDes → SFP-cage; glasvezel-SFP (SX/LX/ZX/BiDi/CWDM) voert dit rechtstreeks naar de laser; de PCS bevindt zich in de host

Een glasvezel-SFP is transparant: wat de host codeert, gaat als licht naar buiten. Daarom heeft een 1G-glasvezelmodule geen ‘modus’; de poort heeft die wel en moet in 1000BASE-X staan (vaak weergegeven als de modus ‘SerDes’ of ‘fiber’, speed nonegotiate op Cisco als het andere uiteinde geen AN heeft).

SGMII: gigabit plus 10/100 (Cisco SGMII-specificatie v1.8)

OnderdeelWaarde
Snelheiddezelfde 1,25 GBd, 8b/10b
10/100-ondersteuningelke databyte wordt 100× gerepliceerd (10 Mb/s) of 10× (100 Mb/s), zodat de lijn 1,25 GBd blijft
Lanes2 paren; optionele DDR-klokparen van 625 MHz (TX_CLK/RX_CLK) — de meeste SerDes-implementaties werken zonder klok
AutonegotiatieSGMII-controlwoord (ook in geordende /C/-sets, 16 bits): bit 15 link, bits 11–10 snelheid (10/100/1000), bit 12 duplex, bit 14 ack — verzonden PHY → MAC om de MAC te melden wat de koperen zijde heeft onderhandeld. Niet compatibel met inhoud van Clause 37
WaarMAC ↔ koperen PHY (Marvell 88E15xx, TI DP83867, Broadcom), SoC ↔ SFP-cage op boards die koperen SFP's moeten ondersteunen, interne werking van koperen 1000BASE-T SFP

SGMII is een MAC–PHY-interface; de ‘autonegotiatie’ vindt tweemaal plaats: Clause 28 op het getwiste paar tussen PHY en linkpartner, daarna rapporteert het SGMII-controlwoord het resultaat aan de MAC. Als een host Clause 37 verwacht maar een SGMII-woord ontvangt (of omgekeerd), voltooit de link AN nooit; AN op de poort uitschakelen (speed nonegotiate, no negotiation auto, autoneg off) is de gebruikelijke oplossing, maar alleen bij 1G.

Koperen SFP's tussen de twee

Modus hostpoortGedrag koperen SFP10/100-clients
1000BASE-X, AN aanPHY van de module moet Clause 37 beantwoorden — veel modules doen dat (emuleren), sommige niet → geen link tot AN uit staatnee (geen snelheidsveld)
1000BASE-X, AN uitlink op 1G als de koperen zijde 1G onderhandeltnee
SGMII, AN aanPHY rapporteert 10/100/1000 via controlwoordja
SGMII, AN uitvaste 1Gnee

Koperen SFP-modules op basis van Marvell 88E1111 gebruiken standaard SGMII of 1000BASE-X, afhankelijk van een configuratie-EEPROM/strap die bij fabricage is ingesteld; fabrikanten verkopen ‘SGMII’- en ‘SerDes’-varianten van dezelfde module, en sommige zijn om te schakelen via de PHY-registers die via de I²C van de module bereikbaar zijn. Switchpoorten die ‘1000BASE-T SFP supported’ vermelden, implementeren SGMII op die cages (Koper en DAC).

100BASE-FX-SFP's

Een 100 Mb/s-glasvezel-SFP (100BASE-FX, 1310 nm, 2 km) vereist dat de host de lane op 125 MBd met 4b/5b uitvoert, een volledig andere PCS. Alleen poorten die expliciet ‘100M SFP’ ondersteunen (veel campus-switches op geselecteerde poorten, de meeste routers; weinig datacenterswitches) werken; op andere poorten wordt de module gedetecteerd maar linkt deze nooit. Sommige hosts implementeren 100BASE-FX via SGMII-replicatie met een externe PHY in de module (‘100M over SGMII’-SFP's).

2500BASE-X

OnderdeelWaarde
Snelheid3,125 GBd, 8b/10b → 2,5 Gb/s
Standaardgeen van IEEE (de facto, 2,5 × 1000BASE-X); Linux phy-interface-type = "2500base-x"
ANClause 37-stijl, vaak uitgeschakeld
Waar2.5G-SFP-modules (2.5GBASE-T-koper, 2.5G-glasvezel), GPON/EPON-ONU-sticks naar de host (2.5G downstream), Wi-Fi 6-AP-uplinks, enkele 2.5G-switch-SFP-cages

De IEEE-equivalenten voor multigig zijn 2.5GBASE-X/5GBASE-R (802.3bz), maar de meeste chips spreken 2500BASE-X of USXGMII.

QSGMII: vier poorten op één lane

OnderdeelWaarde
Snelheid5 GBd, 8b/10b; 4 SGMII-kanalen tijdgemultiplext
Lanes2 paren voor vier poorten
Waarswitch-ASIC ↔ quad-koperen PHY (48-poorts access-switches: 12 QSGMII-lanes in plaats van 48 SGMII), enkele ontwerpen met vier SFP-cages via externe SerDes
VariantenQSGMII (Cisco), ook ‘PSGMII’ (5 poorten) op sommige Qualcomm/Realtek-SoC's

Bij normale ontwerpen niet zichtbaar bij een cage; het is van belang wanneer een board met quad-PHY SFP-combopoorten blootlegt waarvan de modus van het PHY-kanaal wordt overgenomen.

USXGMII: 10 Mb/s tot 10 Gb/s op één 10G-lane

OnderdeelWaarde
Snelheid10,3125 GBd, 64b/66b (elektrisch 10GBASE-R)
Snelheden10M, 100M, 1G, 2.5G, 5G, 10G via symboolreplicatie (zoals opgeschaalde SGMII)
SpecificatieCisco USXGMII (v1.2), breed toegepast; Linux usxgmii
Meerdere poortenUSXGMII-M: 4 × 2.5G, 2 × 5G, 4 × 1G+… over één 10G-lane (zoals QSGMII)
ANUSXGMII-AN-woord in de 64b/66b-idle, rapporteert snelheid/duplex/link
WaarASIC ↔ multigig-PHY (2.5/5/10GBASE-T-poorten), 10GBASE-T SFP+-modules (interne PHY, bijv. Marvell AQR/Broadcom)

Een 10GBASE-T SFP+-module biedt 10GBASE-R (SFI) aan een normale SFP+-poort en linkt op 10G; of deze ook 1G/2.5G/5G-clients kan bedienen, hangt af van ondersteuning door de host voor USXGMII-snelheidsaanpassing op die cage. De meeste switches hebben die niet, zodat de module alleen op 10G werkt, of de aanpassing intern uitvoert en 10G aan de host rapporteert terwijl de koperen zijde trager werkt (Snelheid en rate).

Hoe de host de modus kiest

HostMechanisme
Linux phylink/SFPleest A0h-bytes 3–10 (compliance), 12 (nominale snelheid), 36 (extended) en 6 bit 3 (1000BASE-T): 1000BASE-T → SGMII (of 1000BASE-X als de SoC geen SGMII heeft); 1000BASE-SX/LX → 1000BASE-X; BR 3,1 GBd → 2500BASE-X; 10G-codes → 10GBASE-R; de koperen PHY in de module wordt via I²C geprobed (adres 0x56/0xAC) en aangestuurd door phylib
Switch NOSstandaard poortmodus van het platform (meeste 1G-SFP-cages = geschikt voor SGMII; SFP+/SFP28 op 1G vaak alleen 1000BASE-X), opdrachten speed 1000, speed nonegotiate, media-type sfp, negotiation auto, port-mode
NIC-driversIntel: SFP+-poorten ondersteunen 1G alleen in 1000BASE-X (geen koperen 10/100-SFP); Mellanox: 1G via 1000BASE-X op sommige modellen; Broadcom: per firmware (NIC-poorten)
Koperen SFPPHY-modusstrap/EEPROM (SGMII tegenover SerDes-variant), AN-gedrag ingesteld door firmware van de fabrikant

Mismatabel

SymptoomOorzaakOplossing
Koperen SFP: 1G-clients werken, 10/100 linkt nooitpoort in 1000BASE-Xverplaats naar een SGMII-geschikte poort of gebruik een module die 10/100 verbergt via 1G-naar-host-aanpassing
Glasvezel-SFP linkt alleen met AN uitander uiteinde zonder Clause 37 (mediaconverter, sommige ONU's) of SGMII-woord van een koperen modulespeed nonegotiate / autoneg off
100BASE-FX-SFP gedetecteerd, geen linkhost heeft geen 100M-SerDes-modusgebruik een poort die 100M-SFP ondersteunt, of een 100BASE-FX-over-SGMII-module
2.5G-SFP linkt op 1G of helemaal niethost heeft geen 2500BASE-Xkies een 2.5G-geschikte cage of een module met snelheidsfallback
ONU-stick linkt en valt daarna wegverwachting 2500BASE-X tegenover 1000BASE-X, ANstel de host in op 2500BASE-X, AN uit (PON-optiek)
10GBASE-T SFP+ linkt alleen op 10Ggeen USXGMII op hostaccepteer alleen 10G, of gebruik een module met interne snelheidsaanpassing
Linux: module werkt op het ene board, niet op het anderephylink koos een andere interface uit de EEPROM; SoC heeft die modus nietcontroleer dmesg op sfp: module … interface; corrigeer compliancebytes of device tree

In CodingBox

De bytes die de keuze van de host sturen, staan allemaal in A0h: conformiteitscodes 3–10 (1000BASE-T, SX, LX, 10G-codes), nominale bitsnelheid 12, codering 11 (8b/10b tegenover 64b/66b), extended compliance 36. Een koperen module die als 1000BASE-SX is gecodeerd, wordt als glasvezel behandeld en verliest zijn 10/100-pad; een glasvezelmodule met een verdwaald 1000BASE-T-bit wordt als SGMII aangestuurd. CodingBox toont en bewerkt deze velden (Check transceiver, Conformiteitscodes).


Vindt u een onjuistheid of fout in dit materiaal? Selecteer het betreffende fragment en druk op Ctrl+Enter om .