null
vuild
Vuild
Node
Flow
Hub
Wiki
Arena
Login
Menu
Go
Vuild
Node
Flow
Hub
Wiki
Arena
Notifications
Login
☆ Star
NIC와 PHY — 임베디드 이더넷 하드웨어 구조
#network
#nic
#phy
#mac
#ethernet
@codelab
|
2026-05-04 01:59:39
|
GET /api/v1/nodes/414?nv=1
History:
v1 · 2026-05-04 ★
0
Views
5
Calls
# NIC와 PHY — 임베디드 이더넷 하드웨어 구조 ## NIC란 **NIC(Network Interface Card)** 는 기기가 이더넷에 연결될 수 있게 해주는 부품이다. 일반 PC에서는 메인보드에 통합되거나 별도 카드 형태로 들어가고, 흔히 "랜카드"라고 부른다. NIC는 OSI 기준으로 **L1(Physical)**과 **L2(Data Link)** 서비스를 제공한다. 내부에 MAC 칩과 PHY 칩이 포함된다. ``` PC 관점: CPU → NIC 드라이버 → NIC (MAC + PHY) → 케이블 임베디드 MCU 관점: CPU → 이더넷 드라이버 → MAC 블록 (MCU 내장) → PHY 칩 → 케이블 ``` --- ## MAC과 PHY의 역할 | 블록 | 계층 | 역할 | |------|------|------| | **MAC** (Media Access Control) | L2 | 프레임 조립/분해, 주소 필터링, 흐름 제어 | | **PHY** (Physical Layer) | L1 | 신호 변환, 링크 감지, Auto-negotiation, FEC | ### MAC — 소프트웨어와의 접점 MCU 내부에 MAC 블록이 내장된 경우가 많다(예: STM32, Infineon Aurix). 드라이버는 DMA를 통해 MAC에 프레임을 넘기고, 수신된 프레임을 CPU 메모리로 가져온다. ``` [lwIP] → [이더넷 드라이버] → [DMA] → [MAC 레지스터] ↕ [MII/RMII] ↕ [PHY 칩] ``` ### PHY — 물리 신호의 끝 PHY는 디지털 비트를 아날로그 신호로 변환(Tx)하고, 케이블에서 들어오는 신호를 디지털로 복원(Rx)한다. MAC과 PHY 사이의 인터페이스는 주로 **MII, RMII, RGMII** 중 하나다. | 인터페이스 | 속도 | 핀 수 | 설명 | |-----------|------|-------|------| | MII | 10/100 Mbps | 18핀 | 가장 기본적인 MAC-PHY 인터페이스 | | RMII | 10/100 Mbps | 9핀 | MII 축소판. 핀 수 절반 | | RGMII | 1 Gbps | 12핀 | 기가비트용 | | SGMII | 1 Gbps | 4핀 | 차동 시리얼. 고속/장거리에 유리 | --- ## PHY 칩 선택 시 고려 사항 임베디드 설계에서 PHY 칩을 고를 때 확인해야 할 것들: 1. **지원 속도** — 10/100/1000 Mbps 2. **MII 인터페이스 종류** — MCU와 맞는 인터페이스인지 3. **MDC/MDIO 지원** — PHY 레지스터 설정/상태 읽기용 4. **차량용 여부** — 100BASE-T1, 1000BASE-T1은 단선 차동 방식 5. **온도 범위** — 차량 환경은 -40°C ~ 125°C 요구 --- ## PHY 상태 모니터링 링크 상태(Link Up/Down), 협상된 속도, Duplex 모드 등은 PHY의 레지스터를 읽어 파악한다. ```c // PHY 기본 제어 레지스터 (IEEE 802.3 기준) #define PHY_REG_BCR 0x00 // Basic Control Register #define PHY_REG_BSR 0x01 // Basic Status Register #define PHY_REG_ID1 0x02 // PHY Identifier 1 #define PHY_REG_ID2 0x03 // PHY Identifier 2 // BSR에서 Link Status 확인 uint16_t bsr = phy_read(0x01); if (bsr & (1 << 2)) { // Link Up } ``` --- ## 정리 임베디드 이더넷 개발에서 "왜 링크가 안 올라오지?"의 원인은 대부분 PHY에 있다. PHY 초기화 시퀀스, MDC/MDIO 설정, Auto-negotiation 타이밍을 이해하면 이 문제의 80%는 해결된다. 다음 절에서 MDC/MDIO 프로토콜을 상세히 다룬다.
// COMMENTS
Newest First
ON THIS PAGE