솔루션 MIPI CSI 사양 및 프로토콜 소개

MIPI CSI 사양 및 프로토콜 소개

Sep 24, 2026

소개

이 글에서는 MIPI CSI-2 카메라 인터페이스의 시스템 아키텍처, D-PHY 전송, 패킷 메커니즘, 이미지 포맷, 대역폭 산정과 Linux media-controller 환경에서의 통합 및 문제 해결 과정을 설명합니다. ARM SoC, 이미지 센서, ISP 및 V4L2 비디오 파이프라인을 사용하는 하드웨어 및 소프트웨어 통합에 적용할 수 있습니다.

이미지 센서와 프로세서 간 MIPI CSI-2 카메라 인터페이스

MIPI CSI 시스템 아키텍처

MIPI CSI-2(Camera Serial Interface 2)는 이미지 센서에서 SoC, ISP 또는 FPGA로 이미지 데이터를 전송하기 위한 고속 직렬 프로토콜입니다. CSI-2는 패킷 포맷, Data Type, Virtual Channel 및 오류 보호 메커니즘을 정의하며, D-PHY 또는 C-PHY는 물리 신호 전송을 담당합니다.

제어 경로와 이미지 데이터 경로를 포함한 MIPI CSI-2 시스템 아키텍처

계층 주요 역할 일반적인 Linux / SoC 구현
제어 플레인 모드, 노출, 게인 및 스트림 제어 Sensor driver 및 I²C/I³C
CSI-2 프로토콜 계층 패킷화, VC, DT, ECC 및 CRC CSI-2 TX/RX controller
PHY 계층 LP/HS 상태, 클록 및 차동 신호 D-PHY/C-PHY 및 PHY driver
이미지 파이프라인 디코딩, 처리, DMA 및 캡처 ISP, DMA 및 V4L2 node
 

D-PHY 전송 및 타이밍

D-PHY Data Lane은 유휴 상태에서 LP Stop State를 유지하며, LP 상태 시퀀스를 거쳐 HS 모드로 전환한 후 CSI-2 패킷을 전송합니다. 센서 레지스터 액세스와 스트림 제어는 일반적으로 별도의 I²C/I³C 버스를 통해 이루어지며, D-PHY Data Lane의 LP 상태와는 구분됩니다.

D-PHY Data Lane의 LP Stop State에서 HS 전송으로의 전환

상태 / 구간 역할 통합 시 확인 사항
LP-11 Stop State 유휴 상태 및 LP 동작의 기본 상태 lane 상태와 TX/RX PHY 지원 여부 확인
LP-01, LP-00 HS 진입/종료 시퀀스의 일부 이 상태를 I²C 제어 데이터로 해석하지 않아야 함
HS-Prepare, HS-Zero 고속 전송 전 준비 및 안정화 구간 RX 감지 및 HS-Settle 튜닝에 영향
SoT 고속 패킷 전송의 시작을 표시 SoT 오류는 타이밍, lane 또는 설정 문제를 나타낼 수 있음
HS data transmission CSI-2 packet byte stream 전송 link frequency, lane 수 및 신호 무결성 확인
 
  • clocked mode에서는 Clock Lane이 HS 전송 중 수신측 샘플링을 지원합니다. continuous clock 또는 non-continuous clock 동작은 이미지 센서, SoC PHY 및 driver 설정에 따라 확인해야 합니다.
  • HS-Settle은 실제 link frequency, SoC receiver 문서 및 오류 카운터를 기준으로 튜닝해야 하며, 값이 크다고 해서 반드시 더 좋은 것은 아닙니다.
 

CSI-2 패킷 및 동기화

CSI-2는 Short Packet을 사용하여 프로토콜 이벤트 또는 동기화 정보를 전달하고, Long Packet을 사용하여 RAW, YUV, RGB 또는 embedded data를 전송합니다. Long Packet은 4-byte header, payload 및 2-byte CRC footer로 구성됩니다.

CSI-2 Frame과 이미지 Long Packet의 기본 시퀀스

필드 기능 확인 항목
Virtual Channel (VC) 논리 데이터 스트림 구분 센서와 RX Virtual Channel 간 호환성 확인
Data Type (DT) 픽셀 포맷 또는 패킷 유형 표시 센서 output mode 및 RX 지원 기능과 일치하는지 확인
Word Count (WC) Long Packet payload의 바이트 수 표시 line width 및 pixel packing과 일치하는지 확인
ECC packet header 보호 동기화, lane, 설정 및 RX 디코딩 확인
CRC Long Packet payload 보호 PHY, data rate, lane mapping 및 TX/RX 구현 확인
 

Frame Start(FS)와 Frame End(FE)는 frame-level synchronization을 제공합니다. Line Start(LS)와 Line End(LE)는 선택적인 line-level synchronization을 제공합니다. LS와 LE가 실제로 출력되는지는 이미지 센서 문서, CSI receiver trace 또는 driver 카운터를 기준으로 확인해야 합니다.

이미지 포맷 및 대역폭

CSI-2 Data Type, V4L2 media-bus code, V4L2 capture memory format 및 ISP format negotiation은 이미지 데이터의 의미가 서로 호환되어야 합니다. 다만 서로 다른 추상화 계층에 속하므로 설정 이름과 위치가 반드시 일대일로 대응할 필요는 없습니다. RAW 데이터의 경우 bit depth와 Bayer order를 확인해야 하며, YUV 데이터의 경우 byte order를 확인해야 합니다.

Active-pixel payload의 최솟값은 다음과 같이 산정할 수 있습니다.

Active-pixel payload = Width × Height × FPS × Bits per pixel

위 계산값은 유효 픽셀 데이터에 필요한 최소 payload만을 나타냅니다. 실제 CSI-2 throughput과 D-PHY lane rate를 산정할 때는 packet header, CRC, 동기화 패킷, blanking 전송 방식, Data Lane 수, clock mode, 센서에서 사용 가능한 link-frequency 설정 및 SoC CSI receiver의 제한 사항도 고려해야 합니다.

Per-lane rate ≳ Total CSI-2 throughput / Number of Data Lanes

Linux 통합 및 Bring-up

Device Tree는 일반적으로 graph endpoint, data-lanes, clock-lanes 및 remote-endpoint 연결을 기술합니다. 대부분의 media-controller 아키텍처에서는 sub-device pad format, media link 및 routing negotiation을 통해 런타임에 이미지 포맷을 협상합니다. 실제 binding과 지원되는 포맷은 대상 SoC의 kernel driver에 따라 달라집니다.

# entity, pad 및 link 확인
media-ctl -p -d /dev/media0

# 예: 상위 센서의 pad format 설정
media-ctl -d /dev/media0 --set-v4l2 '"sensor 1-001a":0 [fmt:SRGGB10_1X10/1920x1080]'

# 예: link 활성화
media-ctl -d /dev/media0 --links '"sensor 1-001a":0 -> "csi2rx":0 [1]'

# capture node의 memory format을 설정하고 스트리밍 시작
v4l2-ctl -d /dev/videoX \
  --set-fmt-video=width=1920,height=1080,pixelformat=RG10 \
  --stream-mmap=4 --stream-count=100

dmesg -w
 

이 예제에 사용된 entity 이름, pad index, media-bus code, FourCC 값 및 video node는 실제 media graph에 맞게 조정해야 하며, 모든 플랫폼에서 동일하게 사용되는 것은 아닙니다.

Linux media-controller 아키텍처에서의 CSI-2 Bring-up 및 디버깅 흐름

호환성 및 오류 분석

영역 확인 항목 일반적인 증상
PHY lane 수, mapping, link frequency, clock mode 및 HS-Settle SoT 오류, 데이터 수신 불가 또는 간헐적인 프레임 드롭
프로토콜 VC, DT, 패킷 동작 및 ECC/CRC Header 오류, CRC 오류 또는 프레임 동기화 문제
포맷 Bit depth, Bayer order, YUV order 및 packing 색상 오류, 그린 프레임 또는 이미지 깨짐
Pipeline DT graph, media link, pad format, ISP 및 DMA STREAMON 실패 또는 buffer timeout
 
  • I²C 통신은 정상적으로 동작하지만 이미지가 수신되지 않는 경우 power/reset/MCLK, 센서의 stream-on 상태, data-lanes, lane mapping, link frequency, media graph 및 CSI RX 상태를 확인합니다.
  • frame activity가 감지되지만 ECC/CRC 오류가 발생하는 경우 RX 오류 카운터, lane mapping, link rate, HS-Settle, 보드 레벨 신호 무결성 및 TX/RX 설정을 확인합니다.
  • 프레임 캡처는 가능하지만 색상이 올바르지 않은 경우 RAW bit depth, Bayer order, media-bus code, memory FourCC 및 ISP pipeline을 확인합니다.
 

자주 묻는 질문

1. CSI-2와 D-PHY는 같은 것인가요?

아닙니다. CSI-2는 이미지 패킷 프로토콜이며, D-PHY는 일반적으로 사용되는 물리 계층 전송 인터페이스입니다.

2. I²C 통신은 정상인데 이미지가 수신되지 않는 이유는 무엇인가요?

I²C 통신이 정상이라는 것은 제어 채널이 동작한다는 것만 의미합니다. 이미지 데이터 경로에는 MCLK, lane, PHY 타이밍, 프로토콜, media graph, ISP 또는 DMA와 관련된 문제가 남아 있을 수 있습니다.

3. ECC와 CRC의 차이는 무엇인가요?

ECC는 주로 Packet Header를 보호하며 1 bit 오류를 수정하고 2 bit 오류를 감지할 수 있습니다. CRC는 Long Packet payload의 무결성을 검증합니다. 오류가 지속적으로 발생하는 경우 프로토콜 설정과 물리 계층의 신호 무결성을 모두 확인해야 합니다.

4. 동일한 이미지 센서가 보드에 따라 다르게 동작할 수 있는 이유는 무엇인가요?

PCB 임피던스, 배선 길이, FPC, 그라운드 리턴 경로 및 EMI 조건은 모두 D-PHY의 신호 무결성과 타이밍 마진에 영향을 줄 수 있습니다.

참고 자료

  • MIPI Alliance, "Camera Serial Interface 2 (MIPI CSI-2)", mipi.org/specifications/csi-2
  • MIPI Alliance, "MIPI D-PHY", mipi.org/specifications/d-phy
비즈니스에 맞는 디스플레이 솔루션에 관해 궁금한 점이 있으십니까? 문의!

구독

Winstar의 최신 소식을 전하는 이메일을 받아보세요.

문의

가격/데이터시트/일반 문의

기술 지원

각종 기술적인 정보가 궁금하시면 문의하세요.

go top
연계
close

우리는 귀하의 프라이버시를 소중히 여깁니다

"모든 쿠키 허용"을 클릭하면 사이트 탐색을 개선하고, 사이트 사용을 분석하며, 마케팅 및 성능 노력에 도움을 주기 위해 쿠키를 귀하의 장치에 저장하는 데 동의한 것으로 간주됩니다. 이 주제에 대한 추가 정보는 당사의 정책에서 확인할 수 있습니다. 개인정보 보호정책

우리는 귀하의 프라이버시를 소중히 여깁니다

Winstar와 일부 제3자는 www.winstar.com.tw에서 쿠키를 사용합니다. 쿠키의 종류, 목적 및 관련된 제3자에 대한 자세한 내용은 아래 및 당사의 쿠키 정책에 설명되어 있습니다. 웹사이트에서 최상의 경험을 얻으려면 "모두 허용"을 클릭하여 당사의 쿠키 사용에 동의해 주세요. 또한 선호 설정을 하거나 필수 쿠키를 제외한 쿠키를 거부할 수도 있습니다.

동의 설정 관리

항상 활성화
필수 쿠키

이 쿠키는 웹사이트를 탐색하고 개인 정보 설정, 로그인 또는 양식 작성과 같은 기능을 사용할 수 있도록 하는 데 필수적입니다.

분석 쿠키

“통계 쿠키”라고도 알려진 이러한 쿠키는 웹사이트 사용에 대한 정보를 수집합니다. 예를 들어 어떤 페이지를 방문했는지, 어떤 링크를 클릭했는지와 같은 정보입니다. 자세한 내용을 확인하세요.