본문 바로가기
임베디드 개발/펌웨어

MIPI CSI-2

by eteo 2025. 7. 12.
반응형

 

 

 

 

 

MIPI란?

 

MIPI(Mobile Industry Processor Interface)는 ARM, Intel, Qualcomm 등 주요 반도체 기업들이 주도하여 결성한 모바일 인터페이스 표준화 단체이다. 이 단체는 디스플레이, 카메라, 오디오, 전력 관리 등 모바일 및 모바일 유사 기기에서 사용되는 고속·저전력 인터페이스의 표준을 정의하는 것을 목적으로 한다. 이 단체 이름인 MIPI Alliance를 줄여서 MIPI라고 부르는 경우가 많고, 이 단체가 만든 각종 인터페이스 사양(MIPI CSI, MIPI DSI 등)도 흔히 MIPI라고 부른다.

 

 

 

 

 

 

 

 

MIPI가 제정한 대표적인 프로토콜

 

  • CSI (Camera Serial Interface) : 카메라 센서와 프로세서 간 고속 영상 데이터 전송을 위한 인터페이스
  • DSI (Display Serial Interface) : 디스플레이 패널과 프로세서 간 영상 데이터 전송을 위한 인터페이스
  • C-PHY / D-PHY : MIPI CSI/DSI 같은 고속 인터페이스의 물리 계층(PHY) 사양
    • C-PHY는 3-wire per lane 기반 전송
    • D-PHY는 Diferential Pair 기반 전송
  • I3C (Improved Inter-Integrated Circuit) : 기존 I2C를 대체하는 차세대 센서 인터페이스
  • 그 외 SoundWire, UniPro, UFS, RFFE

 

 

 

 

 

 

 

 

CSI (Camera Serial Interface)란?

 

MIPI CSI는 카메라 모듈과 애플리케이션 프로세서(AP) 사이에 고속 이미지/비디오 데이터를 전송하기 위한 직렬 인터페이스이다. 주요 특징은 다음과 같다.

 

  • 인터페이스 방식 : 고속 직렬 데이터 전송 방식(수 Gbps 수준의 전송 속도 지원), 디퍼런셜 페어 또는 트리오 기반 전송
  • 전송 데이터 구조 : 패킷 기반(Header + Payload + CRC)
  • 제어 방식 : 별도의 I2C 인터페이스를 통해 센서 설정
  • 물리 계층 : D-PHY 또는 C-PHY 사용
  • 데이터 레인 구성 (D-PHY 기준) : 1 Lane, 2 Lane, 4 Lane 구성 존재 (각 Lane은 직렬 전송 방식이며, 데이터를 병렬로 나눠서 동시에 보내는 구조), 별도의 클럭 Lane 필요
  • 전송 데이터 포맷 : RAW8/10/12/14, YUV422/420, RGB565/888 등 다양한 포맷 지원
  • 동기화 방식 : Frame Start/End, Line Start/End 패킷과 패킷 간 간격인 Line Blanking, Frame Blanking으로 Vsync/Hsync 대체
  • 핀 수 : 병렬 대비 대폭 절감 (최소 4핀 부터 구현 가능 : 1 클럭 + 1 데이터 레인)
  • 주요 장점 : 저전력, 고속, 저간섭, 멀티채널 지원, 다양한 해상도/프레임레이트 지원 

 

 

 

 

 

 

 

CSI 버전별 차이

 

  • CSI-1 : 가장 초기 버전, 현재는 거의 사용되지 않음. 병렬 데이터 전송 기반 느린 속도(수십 Mbps 수준) 지원
  • CSI-2 : 현재 가장 널리 사용되는 표준, D-PHY 또는 C-PHY 기반의 직렬 전송 방식 사용. 최대 수 Gbps 수준의 속도 지원
  • CSI-3 : CSI-2의 후속, 차세대 고성능용이지만 아직 대중화되지 않음.  MIPI UniPro 기반의 프로토콜 사용

 

 

 

 

 

 

 

 

CSI-2 주요 구성 요소

 

CSI-2는 데이터 전송 채널과 제어 채널로 구성됨

  1. 데이터 전송 채널 (Data Link)
    • 이미지 센서 → 수신기로 실제 영상 데이터 전송 
    • 물리 계층은 보통 D-PHY 또는 C-PHY를 사용 
    • 데이터는 패킷 단위로 전송
  2. 제어 채널 (CCI, Camera Control Interface)
    • I2C 버스를 통해 센서 제어 (SCL, SDA 2개의 신호선으로 구성)
    • 이미지 센서의 레지스터에 값을 써서 센서의 설정값 (해상도, FPS, 노출 등)을 초기화하고 관리
    • 마스터는 SoC, 슬레이브는 센서

http://www.camera-module.com/blog/what-is-the-difference-between-mipi-csi-2-vs-csi-3.html

 

DPHY 2 Lane 구성 예시

  • Clock  : Clock+ / Clock
  • Data : Data0+ / Data0-, Data1+ / Data1-
  • 제어 채널 : SCL, SDA
  • → 총 8핀 필요

 

 

 

 

 

 

 

 

 

물리 계층 (DPHY vs CPHY)

 

  • DPHY
    • 1쌍의 클럭 레인 + N 쌍의 데이터 레인으로 구성 (N= 1, 2, 4)
    • 각 레인은 차동 신호로 구성되어 전송 안정성 확보
    • 에너지 절약용 LP 모드와 고속 데이터 전송용 HS 모드 존재
    • 최대 전송 속도 : ~ 2.5 Gbps/lane 
  • CPHY
    • 3개의 와어어가 하나의 데이터 채널을 구성 (3-wire per lane)
    • 세 개의 와이어 간의 상대적인 위상차를 이용해, 총 7개의 유효한 심볼로 데이터를 인코딩하여 정보 전송
    • 동일한 핀 수로 더 많은 데이터 전송 가능
    • 최대 전송 속도 : ~5.7 Gbps/lane

 

 

 

 

 

 

 

 

MIPI CSI-2의 계층 구조

  1. Application Layer
    • TX : 센서로부터 픽셀 데이터 및 제어 정보를 받아 처리 시작
    • RX : 수신된 데이터를 다시 픽셀 데이터로 변환하여 상위 애플리케이션으로 전달
  2. Pixel to Byte Packing / Byte to Pixel Unpacking Layer
    • TX : 다양한 비트 수(6, 7, 8, 10, ..., 24 bits)로 표현되는 픽셀 데이터를 바이트 단위로 패킹
    • RX : 수신된 바이트 데이터를 원래의 픽셀 포맷으로 복원
  3. Low Level Protocol Layer
    • Packet 기반 프로토콜 (아래에서 구체적으로 기술함)
  4. Lane Management Layer
    • TX : 데이터를 여러 Lane으로 분산 전송
    • RX : 여러 Lane으로 수신된 데이터를 하나로 병합
  5. PHY Layer
    • D-PHY 또는 C-PHY 물리 계층을 통해 물리적 신호 전송
    • Start/Stop 신호 생성 및 감지
    • 송신 측은 타이밍 기준 제공을 위해 클럭 생성, 수신측은 수신 신호로 부터 타이밍을 재생성하는 클럭 리커버리 담당
    • 송신 측은 직렬화, 수신측은 역직렬화 (D-PHY의 경우 8-bit, C-PHY의 경우 16-bit)

 

 

 

 

 

 

 

 

 

 

 

 

 

커넥터 규격과 전송 거리

 

1. 주요 커넥터 및 케이블 타입

https://www.youtube.com/watch?v=8REu_h7bzHM

 

  • FPC (Flexible Printed Circuit) 케이블 사용
  • 15핀 : 2 Lane까지 지원, 보급형 카메라에 사용
  • 22핀 : 4 Lane까지 지원, 멀티 채널/고해상도 카메라에 사용

 

2. 전송 거리

  • 보통 20~40cm 이내가 권장
  • 장거리 전송 시 신호 감쇠 노이즈 문제가 있을 수 있음

 

 

 

 

 

 

 

 

CSI-2 패킷 종류

  • Short Packet
    • 4 bytes 고정 길이
    • 동기화용 이벤트 표시 등에 사용
    • 예: Frame Start (FS), Frame End (FE), Line Start (LS), Line End (LE), 오류 상태 등
  • Long Packet
    • 가변 길이
    • 픽셀 데이터가 포함된 주요 전송 단위
    • 헤더 + 페이로드 + CRC 구조

  • LPS (Low Power State) : 전력 절약을 위한 기본 대기 상태
  • ST(Start of Transmission), ET(End of Transmission) : 고속 전송 시장/종료 신호로 물리 계층에서 LP ↔ HS 모드 전환을 담당
  • 일반적으로 Long Packet 하나는 한 줄의 비디오 라인 픽셀 데이터를 담고 있으며, 한 프레임은 세로 픽셀 수 만큼의 Long Packet으로 구성된다.

 

 

 

 

 

 

 

 

 

Short Packet 구성 (DPHY 기준)

 

 

필드 길이 설명
Data ID (DI) 1 byte 2비트 Virtual Channel + 6비트 Data Type
Short Packet Data Field 2 bytes 의미는 Data Type에 따라 다름 (예: Frame ID, Line # 등)
ECC 1 byte Header 오류 검출용 8-bit ECC (Hamming 코드)

 

  • Short Packet은 4 Bytes 고정길이를 가진다.

 

 

 

Short Packet으로 전송되는 Data Type은 다음과 같다.

 

 

  • 필수적인 동기 신호는 Frame Start(0x00)와 Frame End(0x01)뿐이고, Line 단위의 동기화를 위해 Line Start / End를 사용할 수도 있고, 생략할 수도 있다.
  • Frame Start(0x00), Frame End(0x01) 패킷일 경우 Short Packet Data Field는 16-bit Frame Number이다. 즉, 같은 프레임 안에서는 FS, FE 둘 다 동일한 frame number를 사용한다.

 

 

 

 

 

 

 

 

 

Long Packet 구성 (DPHY 기준)

 

 

 

1. Packet Header (PH) - 4 Bytes

필드 길이 설명
Data ID (DI) 1 byte 2비트 Virtual Channel + 6비트 Data Type
Word Count (WC) 2 bytes Payload 데이터 길이 (byte 단위)
ECC 1 byte Header 오류 검출용 8-bit ECC (Hamming 코드)

 

  • 수신 측은 Header를 읽고 데이터 타입이 뭔지 몇 바이트를 읽으면 되는지 파악할수 있음
  • Virtual Channel (VC) : 소스 카메라 구분용
  • Data Type (DT) : 픽셀 데이터 포맷 식별 코드

 

 

2. Packet Data

필드 길이 설명
Data 0 ~ Data N-1 Word Count(WC) 바이트 픽셀 또는 기타 사용자 정의 데이터

 

  • 데이터는 동기화 비트 없으며 순수 바이트 스트림으로 구성됨
  • 픽셀 데이터는 포맷에 따라 패킹 규칙이 있음 (예. RGB888이면 1픽셀 = 3바이트, RAW10이면 4픽셀 = 5바이트)

 

 

3. Packet Footer (PF)

필드 길이 설명
Checksum (CRC) 2 bytes Payload 전체에 대한 CRC-16 계산 결과

 

  • Polynomial : x^16 + x^12 + x^5 + 1
  • 수신 측은 CRC로 데이터 무결성 검증

 

 

 

 

 

픽셀/바이트 패킹

CSI-2 전송에서는 이미지 데이터의 픽셀당 비트 수(bpp)가 8의 배수가 아닌 경우, 여러 픽셀 단위로 패킹해 바이트 정렬을 맞춘다. 아래 표는 각 데이터 포맷별로 몇 픽셀이 한 묶음으로 패킹되어 패킷에 들어가는지와, 그때의 바이트 길이를 나타낸다.

 

데이터 형식 픽셀당 비트(bpp) 패킷당 픽셀(최소) 패킷 길이(바이트)
YUV420 8-bit(Legacy) 12 2 3
YUV420 8-bit 12 2 2, 4
YUV420 10-bit 15 4 5, 10
YUV422 8-bit 16 2 4
YUV422 10-bit 20 2 5
RGB888 24 1 3
RGB666 18 4 9
RGB565 16 1 2
RGB555 15 1 2
RGB444 12 1 2
RAW6 6 4 3
RAW7 7 8 7
RAW8 8 1 1
RAW10 10 4 5
RAW12 12 2 3
RAW14 14 4 7

 

 

 

 

 

RGB888 데이터 포맷

 

Long Packat에서 RGB888 포맷의 DT 값은 0x24에 해당한다.

 

 

 

RGB888은 픽셀 당 24비트로 구성된다. (R, G, B 각각 8비트)

 

 

 

전송 시 BGR순서로 전송된다. B, G, R 각각은 LSB First로 전송되며 이는 CSI-2 전체에 적용되는 규칙이다.

반응형