GMSL2 시리얼 링크 기술 개요
Analog Devices 산하인 Maxim Integrated에서 개발한 GMSL2(Gigabit Multimedia Serial Link 2세대)는 고속 영상 및 제어 데이터를 장거리 케이블(동축 또는 STP)을 통해 전송하는 데 특화된 직렬/역직렬(SerDes) 솔루션입니다. 주로 자동차 ADAS, 운전자 모니터링(DMS), 서라운드 뷰 시스템 등에 사용되며, ASIL-B 수준의 기능 안전성과 고대역폭 전송을 지원합니다.
카메라 측 직렬화 칩(Serializer)
MAX96717F 기반 구성
- 입력 인터페이스: MIPI CSI-2 D-PHY v1.2 (최대 4채널, 채널당 2.5Gbps)
- 지원 포맷: RAW8~20, RGB565/666/888, YUV422(8/10비트), 사용자 정의 패킷
- 가상 채널(VC): 최대 16개 VC 지원
- 정방향 데이터 속도: 최대 6Gbps (MAX96717F 기준)
- 역방향 채널: 187.5Mbps, I2C/UART/SPI/GPIO 터널링 지원
- 기타 기능: 극성 반전, 채널 리매핑, ECC 오류 탐지
MAX9295D 옵션 사양
- MIPI CSI-2 v1.3 입력, 4개 VC 지원
- 정방향 링크: 3G 또는 6Gbps 선택 가능
- I2C 터널링 및 SPI 통신 지원
- EMI 저감을 위한 Spread Spectrum 기술 적용
SoC 측 역직렬화 칩(Deserializer)
MAX96724R 활용 예시
- 입력 링크: 최대 4개 독립 GMSL2 채널 (최대 6Gbps), GMSL1과 혼용 가능
- 출력 인터페이스:
- D-PHY v1.2: 채널당 2.5Gbps, 최대 8레인 출력 (2x4 또는 4x2 구성)
- C-PHY v1.0: 채널당 최대 5.7Gbps
- 가상 채널: 최대 32개까지 매핑 가능
- 역방향 통신: 9개 GPIO + 2개 I2C 포트(최대 1Mbps)
- 안전 인증: MAX96724F 모델은 ASIL-B 준수
MAX9296A 비교 사양
- 듀얼 MIPI CSI-2 출력 포트 제공
- 영상 신호의 복제(Aggregation) 및 분배(Replication) 기능 내장
- 하드웨어 기반 장치 주소 설정 (4개 조합 가능)
디버깅 환경 구성
| 구분 | 사양 |
|---|---|
| AP SoC | Qualcomm QCX 플랫폼 (8255, 8775) |
| Deserializer | MAX96724 / MAX96724R |
| Serializer | MAX96717F |
CCI 기반 저수준 접근 명령어 예시
// CCI 디버그 도구 사용 (노드 2, Des 장치 주소 0x27) ccidbgr 2 0x27 read21 0x0a 3 // 0x0a 주소부터 3바이트 연속 읽기 ccidbgr 2 0x27 write21 0x06 0xFF // 0x06 주소에 0xFF 쓰기
카메라 링크 초기화 절차
1단계: 직렬화 장치 정보 수집
- 프로토콜 유형: GMSL1 또는 GMSL2
- 링크 속도: 3Gbps 또는 6Gbps
- 전송 모드: PIXEL (매핑 필요) 또는 TUNNEL (투명 전송)
- 영상 포맷: YUV422, RGB888 등
- 해상도 및 프레임레이트
- 사용 VC 번호 및 스트림 ID (Pipe X/Y/Z/U 대응)
- Ser 칩 모델명 확인
2단계: 물리적 링크 상태 검증 (Link Lock)
Link Lock 비트는 Ser와 Des 간 물리 계층 동기가 완료되었는지를 나타냅니다. 다음 명령어로 상태 확인:
ccidbgr 2 0x27 read21 0x0a // Link B 상태 → 정상 시 0xC8 ccidbgr 2 0x27 read21 0x0b // Link C 상태 ccidbgr 2 0x27 read21 0x0c // Link D 상태 ccidbgr 2 0x27 read21 0x1a // Link A 상태, bit3 = 1 확인
Link Lock 실패 시 가능한 원인:
- 프로토콜 불일치 (예: Ser는 GMSL1, Des는 GMSL2로 설정)
- 속도 불일치 (Ser 6G, Des 3G 설정)
- 전원 문제 (POC 미지원 시 별도 전원 필요)
- 케이블 접촉 불량 또는 배선 오류
기본 레지스터 초기화 설정 예시
// GMSL2 3Gbps 모드 활성화
{ 0x0010, 0x11, 0 },
{ 0x0011, 0x11, 0 },
// CSI 출력 초기 비활성화
{ 0x040B, 0x00, 0 },
{ 0x0458, 0x00, 0 },
// 원격 I2C 채널 차단
{ 0x0003, 0xFF, 0 },
// Pipe 0~3 활성화
{ 0x00F4, 0x0F, 0 },
// MIPI PHY 2x4 구성
{ 0x08A0, 0x04, 0 },
// PHY 레인 매핑 설정
{ 0x08A3, 0xE4, 0 },
{ 0x08A4, 0xE4, 0 },
// 4레인 MIPI 활성화
{ 0x090A, 0xC0, 0 },
{ 0x094A, 0xC0, 0 },
{ 0x098A, 0xC0, 0 },
{ 0x09CA, 0xC0, 0 }