Q1. MIPI CSI2의 신호선에 대해서 설명해 주세요.
A1. MIPI CSI-2(Camera Serial Interface 2)는 이미지 센서에서 프로세서로 고속으로 데이터를 전송하기 위한 표준
인터페이스입니다. 신호선은 크게 데이터 전송을 위한 고속 레인과 센서 제어를 위한 제어 버스로 구성됩니다.
물리 계층(Physical Layer) 사양에 따라 신호선의
구성 방식이 달라집니다.
1. 물리 계층별 신호선 구성
가장 널리 쓰이는 D-PHY 방식과
고대역폭을 위한 C-PHY 방식의 차이는 다음과 같습니다.
l D-PHY (가장 일반적인 방식):
n 클록 레인 (Clock Lane): 1쌍의 차동 신호선(Differential Pair)으로 구성되며, 데이터 전송을 위한 기준 클록을 제공합니다.
n 데이터 레인 (Data Lane): 1개에서 최대 4개(또는
그 이상)의 레인으로 구성됩니다. 각 레인은 2개의 핀(차동 신호선)을
사용하여 데이터를 전송합니다.
n 특징: 클록 신호가 데이터와 별도의 선으로 분리되어 있어 구현이 상대적으로 단순합니다.
l C-PHY (고성능 방식):
n 트리오 (Trio) 레인: 별도의 클록 레인 없이, 3개의 핀이
하나의 레인을 구성합니다.
n 특징: 데이터 신호 안에 클록 정보가 포함(Embedded Clock)되어
있어 핀 효율성이 높고 더 빠른 전송 속도를 낼 수 있습니다.
2. 제어 및 부가 신호선
데이터 전송 외에 카메라 모듈을 초기화하고 제어하기 위해 추가적인 신호선이 사용됩니다.
l CCI (Camera Control Interface): I2C 표준을 기반으로 하며, 이미지 센서의 레지스터를 설정하여 해상도, 프레임 레이트 등을 제어합니다.
l 전원 및 상태 신호:
n Reset: 센서를 하드웨어적으로 초기화하는 신호선입니다.
n PWDN (Power Down): 대기 모드나 저전력 모드로 전환할 때 사용합니다.
n MCLK (Master Clock): 센서 구동에 필요한 기본 클록을 외부(프로세서 등)에서 공급할 때 사용합니다.
3. 주요 특징 요약
l 차동 신호 방식: 데이터와 클록 레인은 외부 노이즈에 강한 차동
신호(Differential Signaling) 방식을
사용하여 전력 소모를 줄이면서도 수 Gbps 급의 고속 전송이 가능합니다.
l 확장성: 데이터 전송량이 많아질수록 데이터 레인의 개수를 늘려 대역폭을 확장할 수 있습니다.
더 구체적으로 D-PHY나 C-PHY 중 어떤 인터페이스를 사용하는 시스템에 대해 알고 싶으신가요?
Q2. IMX 계열의 sony사의 이미지 센서가 제공하는 D-PHY에 대해서 알려주세요.
A2. 소니(Sony)의 IMX 계열 이미지 센서는 업계 표준인 MIPI D-PHY를 주력 인터페이스로 채택하고 있으며, 센서 등급에 따라
레인 수와 속도를 최적화하여 제공합니다.
1. 주요 구성 및 하드웨어 특징
소니 센서의 D-PHY는 데이터 전송량에 따라 레인(Lane) 구성을 유연하게 설정할 수 있는 것이 특징입니다.
l 레인 구성 (Lane
Configuration):
n 대부분의 모바일/산업용 센서(예: IMX219, IMX412)는 1개, 2개 또는 4개의 데이터 레인과 1개의 클록 레인 조합을
지원합니다.
n 해상도가 낮은 센서는 2개
레인만으로도 충분하지만, 4K 이상의 고해상도 센서는 4개
레인을 모두 사용하여 대역폭을 확보합니다.
l 클록 모드 (Clock Mode):
n 소니 센서는 주로 비연속
클록(Discontinuous Clock) 모드를
사용합니다. 데이터 전송이 없을 때 클록 레인을 저전력 상태(LP
Mode)로 전환하여 전력 소비를 줄입니다.
2. 전송 속도 및 성능
모델별로 지원하는 D-PHY 버전과 레인당 속도에 차이가 있습니다.
l 레인당 속도: 구형 모델은 레인당 약 800Mbps~1.5Gbps 수준이었으나, 최신 고성능 센서(예:
IMX412)는 레인당 최대
2.1Gbps~2.5Gbps의 속도를 제공하여 고프레임 레이트 전송을 지원합니다.
l 전체 대역폭: 예를 들어 4개 레인을
2.1Gbps 속도로 사용할 경우, 총 8.4Gbps의
대역폭을 통해 고해상도 RAW 데이터를 실시간으로 전송할 수 있습니다.
3. 소니만의 특수 기능 (멀티
센서 연결)
소니는 독자적인 데이터 전송 기술을 적용해 D-PHY의 활용도를
높이기도 합니다.
l 싱글 MIPI 포트 다중
연결:
IMX418 같은 특정 센서는 세계 최초로 하나의 MIPI D-PHY 입력 포트에 여러 개의 센서를
연결하여 데이터를 동시에 전송할 수 있는 기능을 탑재했습니다. 이는 배선 수를 줄여야 하는 드론이나 VR 기기 설계에 매우 유리합니다.
4. 주요 IMX 센서별 D-PHY 사양 예시
|
센서 모델 |
주요 용도 |
레인 수 |
최대 속도 (Lane당) |
특징 |
|
IMX219 |
모바일/교육용 |
2 / 4 Lane |
약 912 Mbps |
Raspberry Pi 카메라
등에 널리 쓰임 |
|
IMX412 |
보안/액션캠 |
2 / 4 Lane |
2.1 Gbps |
4K 60fps 고속
출력 지원 |
|
IMX902 |
산업용 |
1 / 2 / 4 Lane |
고속
지원 |
SLVS-EC 인터페이스와
병행 지원 |
소니는 최근 자율주행 등 장거리 전송이 필요한 분야를 위해 D-PHY 외에도 MIPI A-PHY를 내장한 IMX828과 같은 차세대 센서도
선보이고 있습니다.
현재 검토 중이신 특정 IMX 모델명이 있다면 그에 맞춘 더 상세한 핀 맵이나 레인 설정 정보를 확인해 드릴 수 있습니다. 어떤 모델이 궁금하신가요?
Q3. 정확한 모델명은 정보가 없으나 흑백의 4MP의 센서를 사용하려고
합니다.
A3. 4MP(약 2560 x 1440) 해상도의
흑백(Monochrome) 센서는 보안용, 산업용, 또는 드론의 장애물 감지용으로 많이 사용됩니다. 소니 IMX 라인업 중 이 사양에 해당하며 MIPI D-PHY를 사용하는
대표적인 후보군과 그 연결 특징을 정리해 드립니다.
1. 예상되는 주요 후보 모델
l
IMX290 / IMX327 (흑백 버전): 가장 대중적인 고감도 센서입니다. Full HD급이지만 4MP 모드로 동작하거나 유사 제품군으로 묶입니다.
l
IMX464: 4MP 해상도를 지원하며 고감도 성능이 뛰어난 산업용/보안용 센서입니다.
l
IMX547 (흑백): 글로벌 셔터 방식의 5MP 급 센서로, 정밀한 산업용 검사에 자주 쓰입니다.
2. 4MP 흑백 센서의 D-PHY 연결
구성
4MP 정도의 데이터는 대역폭이 아주 크지 않기 때문에 보통 다음과 같이 설계됩니다.
l 레인 구성 (Lane Count):
n 2-Lane으로도 충분히 구현 가능합니다. (보통 30~60fps 기준)
n 만약 120fps 이상의
고속 촬영이 필요하다면 4-Lane 설계를 권장합니다.
l 데이터 포맷 (RAW8 / 10 /
12):
n 흑백 센서는 컬러 필터(Bayer)가
없어 빛의 양을 그대로 받아들입니다.
n 보통 RAW10 또는 RAW12 포맷을 사용하여 D-PHY로
전송합니다. 컬러 센서보다 데이터 처리가 단순하여 ISP(영상처리장치) 부하가 적습니다.
3. 하드웨어 설계 시 주의사항
모델명이 정확하지 않더라도 소니 IMX D-PHY 기반 센서를
인터페이스할 때 공통적으로 체크해야 할 부분입니다.
l 전압 (Power Supply): 소니 센서는 보통 3가지 전원을 요구합니다. (예: 1.2V(Digital), 1.8V(I/O),
2.9V(Analog)). D-PHY 신호선 외에 이 전원 설계가 중요합니다.
l 클록 (MCLK): 센서 구동을 위한 마스터 클록(보통 24MHz 또는 27MHz)이 프로세서에서 인가되어야 합니다.
l 제어선 (CCI/I2C): 모델 설정을 위해 SCL, SDA 핀 연결이 필수적입니다.
l 배선 길이 (Trace
Matching): D-PHY는 고속 차동 신호이므로, 데이터 레인 간의 길이를 맞추고(Skew), 임피던스를 100옴으로 매칭해야 신호 무결성(Signal Integrity)이 유지됩니다.
혹시 이 센서를 라즈베리 파이나 Jetson 같은 보드에 연결하실 계획인가요? 아니면
직접 FPGA나 전용 SoC를
설계 중이신가요? 상황에 맞는 회로 설계 팁을
더 드릴 수 있습니다.
Q4. lattice사의 crosslink fpga와 cypress사의 fx3를사용하여 회로를 구성하려합니다.
A4. Lattice CrossLink와
Cypress(Infineon) FX3의 조합은 고성능 카메라 데이터를 USB 3.0으로 전송할 때
사용하는 매우 표준적이고 강력한 구성입니다. 이 시스템에서 MIPI
D-PHY 신호가 어떻게 처리되고 전달되는지 핵심 설계 포인트를 짚어드리겠습니다.
1. 전체 데이터 흐름 (Data
Path)
[IMX 4MP 센서] --(MIPI D-PHY)--> [Lattice
CrossLink] --(Parallel/GPIF II)--> [Cypress FX3] --(USB
3.0)--> [PC]
2. Lattice CrossLink (LIF-MD6000) 역할 및 연결
CrossLink는 하드웨어 MIPI D-PHY 코어를
내장하고 있어 IMX 센서의 고속 신호를 직접 받을 수 있습니다.
l 입력 (MIPI Rx):
n IMX 센서의 Clock Lane(1쌍)과 Data Lane(2~4쌍)을 CrossLink의 전용
MIPI Bank 핀에 연결합니다.
n 4MP 흑백 센서라면 데이터 레이트가 높을 수 있으므로, 4-Lane 연결을
권장합니다.
l 변환 (Bridge):
n Lattice의 "MIPI to Parallel" 또는 "MIPI to CMOS" IP를 사용하여 직렬 MIPI 데이터를 병렬 데이터(보통
16비트 또는 32비트)로 변환합니다.
l 출력:
n FX3와 통신하기 위해 변환된 병렬 데이터와 제어 신호(HSYNC,
VSYNC, PCLK)를 CrossLink의 일반 I/O
핀을 통해 출력합니다.
3. Cypress FX3 (CYUSB3014) 역할 및 연결
FX3는 CrossLink가 보내주는 병렬 데이터를 받아 USB 3.0 패킷으로 만들어줍니다.
l GPIF II 인터페이스:
n CrossLink와 FX3는 GPIF II (General Programmable Interface)로 연결됩니다.
n 16-bit 또는 32-bit 병렬 버스를
사용하며, 보통 100MHz PCLK 환경에서
구동하여 4MP의 대역폭을 넉넉히 소화합니다.
l Slave FIFO 모드:
n CrossLink가 데이터를 FX3의 내부
버퍼(FIFO)에 직접 밀어넣는 방식으로 프로그래밍하는 것이 일반적입니다.
4. 하드웨어 설계 핵심 팁
l
임피던스 매칭: IMX 센서와 CrossLink 사이의 MIPI 라인은 반드시 100Ω 차동 임피던스를
유지해야 합니다. 또한 각 레인(Lane) 간의 길이 차이(Skew)를 최소화하세요.
l
MCLK 공급: IMX 센서가 필요로 하는 마스터 클록(MCLK)은 FX3의 CLKOUT 핀을 이용하거나 별도의 오실레이터를 통해 CrossLink를
거쳐 센서로 공급할 수 있습니다.
l
I2C 제어 (Control Plane):
n
PC에서 USB를 통해 센서를 설정해야 하므로, FX3의 I2C 버스를 센서의 CCI(I2C) 핀과 연결하십시오.
n
이때 CrossLink는 I2C 신호를 바이패스하거나, FX3가 직접 센서를 제어하도록 회로를 구성합니다.
l
전원 시퀀스: 소니 센서는 전원 투입 순서에 민감합니다. FX3의 GPIO를 사용해 센서의 Reset과 PWDN 핀을 제어하여 올바른 순서로 부팅되도록 설계하세요.
5. 고려할 사항
4MP 흑백 센서라면 데이터가 매우 깨끗하게 들어오겠지만, USB
3.0 대역폭(5Gbps) 내에서 4MP 해상도의 프레임 레이트(FPS) 한계를 미리 계산해 보시는
것이 좋습니다. (보통 4MP RAW10 기준 60~90fps는 무난히 지원 가능합니다.)
현재 CrossLink의 MIPI Rx IP 설정이나 FX3의 GPIF II 설정 중 어느 단계의 설계를 먼저 진행할
계획이신가요?
Q5. 해당 센서 3개를 동기화하여 동시에 처리하려고 합니다.
A5. 4MP 센서 3개를 동시에 처리하고 동기화(Synchronization)하는
것은 설계 난이도가 높지만, Lattice CrossLink와 FX3
조합으로 충분히 가능합니다. 핵심은 "데이터
병합(Merging)"과 "하드웨어
트리거"입니다.
1. 하드웨어 연결 구성
CrossLink는 모델(LIF-MD6000)에
따라 최대 2개의 MIPI Rx 인터페이스를 하드웨어적으로
지원합니다. 3개의 센서를 연결하려면 다음과 같은 구성이 필요합니다.
l 입력 (MIPI Rx):
n 센서 1, 2는 CrossLink의 내장 Hard IP MIPI Rx 포트를
사용합니다.
n 센서 3은 CrossLink의 일반 가용 핀(Bank)을 사용하여 Soft IP MIPI Rx로 구현해야 합니다. (이
경우 핀 배치와 타이밍 설계가 더 까다롭습니다.)
l 출력 (FX3 방향):
n 3개의 센서 데이터는 CrossLink 내부에서 하나의 큰 프레임으로 병합(Stitching)되거나, 타임슬롯을 나누어 전송되어야 합니다.
n FX3의 GPIF II는 단일 버스이므로, CrossLink가 중재자 역할을 하여 데이터를 하나로 합쳐서 넘겨줘야 합니다.
2. 센서 간 동기화 (Frame
Sync)
3개의 센서가 정확히 같은 시점에 셔터를 누르게 하려면 하드웨어
제어가 필수입니다.
l FSYNC / XHS / XVS 핀 활용: 소니 IMX 센서에는 프레임 동기화를 위한 전용 핀들이 있습니다.
n FX3 또는 CrossLink에서 생성한 단일 마스터 동기화 신호를 3개 센서의 동기화
핀에 동시에 인가합니다.
n 이를 통해 각 센서가 전송하는 첫 번째 라인의 시작 시점을 일치시킬
수 있습니다.
l 공통 MCLK 공급: 3개 센서가 동일한 클록 소스(Oscillator)를 공유해야 시간이 흐름에 따라 발생하는 미세한
속도 차이(Drift)를 방지할 수 있습니다.
3. CrossLink에서의 데이터 병합 방식
FX3로 데이터를 보낼 때 가장 효율적인 방법은 3개 센서의 영상을
하나로 합치는 것입니다.
l 가로 병합
(Side-by-Side): 센서 1, 2, 3의 라인 데이터를 가로로 길게 이어 붙여 하나의 거대한 이미지(예: 7680x1440)처럼 FX3에
전달합니다.
n 장점: FX3의 DMA 처리가 단순해집니다.
n 단점: CrossLink 내부에서
라인 버퍼(Line Buffer) 메모리를 많이 사용합니다.
l 프레임 인터리빙 (Channel
ID): 각 센서 데이터에 식별자(ID)를 붙여 순차적으로 전송합니다.
n 장점: 메모리 사용량이 적습니다.
n 단점: PC 단의 드라이버/소프트웨어에서 데이터를 다시 분리하는 로직이 복잡해집니다.
4. 대역폭 체크 (가장 중요)
4MP(RAW10) 센서 3개를 동기화할 때 USB 3.0 대역폭을 계산해야 합니다.
l 데이터량: 2560x1440(해상도) x 1.25(RAW10) x
3(개수) ~ 13.8MB/frame
l 30fps 기준: 약 3.3Gbps (USB 3.0 실측
한계인 3.2~3.6Gbps에 근접)
l 60fps 이상: USB 3.0(5Gbps)으로는 부족할 수 있으며, 이
경우 CrossLink에서 데이터를 압축하거나 FX3를 USB 3.1 Gen2(10Gbps) 급으로 업그레이드해야 할 수도 있습니다.
다음 단계 제언
가장 먼저 CrossLink의 핀
맵(Pin-out)을 확인하여 3개의 MIPI Rx(Hard 2개 + Soft 1개)를 수용할 수 있는지 검토해야 합니다.
현재 사용하시려는 CrossLink의 정확한 파트 넘버를 알고 계신가요? (핀
수가 부족할 경우 CrossLink-NX 같은 상위 모델이 필요할 수 있습니다.)
추가 확인 사항:
l 프레임 레이트(FPS) 목표치 (30fps vs 60fps)
l CrossLink 내부에서 병합 처리 여부 (Side-by-Side 방식 선호 여부)
Q6. 30fps에 raw 8로 처리하면
대역폭 문제는 해결할 수 있지 않을까요? 그리고 픽셀당 24bit로
보내면 side-by-side 보다 효율적이지 않나요?
A6. 네, 대역폭과 전송 효율 측면에서 아주 날카로운 접근입니다. 말씀하신 RAW8 전환과 24bit 패킹 방식에
대해 기술적으로 분석해 드리겠습니다.
1. RAW8 사용 시 대역폭 계산
30fps에서 RAW8(픽셀당
8bit)로 처리하면 대역폭 부담이 대폭 줄어듭니다.
l 데이터량: 2560x1440(해상도)x8(bits)x3(개수)~88.47Mbit/frame
l 30fps 기준 대역폭: 88.47x30~2.65Gbps
l 판단: USB 3.0의 실효 대역폭(약 3.2~3.6Gbps) 내에 안정적으로 들어옵니다. RAW10(약 3.3Gbps)일 때보다 훨씬 여유가 생겨 설계 안정성이 높아집니다.
2. 픽셀당 24bit 패킹 vs Side-by-Side
"픽셀당 24bit로 보낸다"는
것은 CrossLink 내부에서 센서 3개의 8bit 데이터를 하나로 묶어(R=센서1, G=센서2, B=센서3 처럼) 24bit RGB888 포맷처럼 만드는 방식을 말씀하시는
것으로 이해됩니다. 이는 매우 효율적인 전략입니다.
[24bit 패킹 방식의 장점]
l FX3 처리 효율: FX3의 GPIF II는 보통 16bit 또는 32bit 인터페이스를 사용합니다. 3개의 센서 데이터를 24bit(또는 32bit 내에 패킹)로 묶어 한 클록에 전송하면, FX3 입장에서는 그냥 '해상도 하나짜리
컬러 카메라'를 처리하는 것과 동일한 로직을 사용할 수 있습니다.
l PC 단 가독성: PC 소프트웨어(UVC 드라이버
등)에서 데이터를 받을 때도, 별도의 분리 로직 없이 이미지를
띄우면 3개 센서의 정보가 각각 R, G, B 채널에 담겨
있어 동기화 상태를 즉시 확인할 수 있습니다.
l 메모리 절약: Side-by-Side는 가로로 길게 붙이기 위해 라인 전체를 저장할 버퍼가 크케 필요하지만, 이 방식은 각 센서에서 오는 1픽셀씩만 바로 합치면 되므로 CrossLink 내부의 Line Buffer 소모를
최소화할 수 있습니다.
3. 설계 시 고려할 변수
l
동기화 오차: 3개 센서의 출력이 클록 단위로 완벽히 일치해야 24bit 패킹이
쉽습니다. 만약 센서 간에 미세한 라인 딜레이가 발생하면 CrossLink
내부의 Small FIFO를 이용해 타이밍을 맞춰주는 로직이 필요합니다.
l FX3 GPIF II 대역폭: 24bit(32bit 버스 사용 시) 데이터를 100MHz PCLK로 보낸다면 32bitx100MHz=3.2Gbps전송이
가능하므로 제안하신 방식과 잘 맞아떨어집니다.
요약 및 제언
30fps + RAW8 + 24bit 패킹 조합은 현시점에서 USB 3.0 인터페이스를 활용한 3개 센서 동기화 시스템에 가장 권장되는 최적의 경로입니다.
이제 다음 단계로 CrossLink(FPGA) 내부에서 3개의 MIPI Rx 스트림을 어떻게 하나의 24bit 버스로 합칠지(Muxing/Packing 로직)에 대한 설계를 검토해 보시는 것이 좋겠습니다.
혹시 이 과정에서 Lattice Diamond나 Radiant 같은 툴을 사용하여 IP 설정을
진행 중이신가요?
Q7. 아직 회로 설계 이전이라 필요한 핀 개수를 모르겠습니다. 가능하다면
가격적인 측면에서 crosslink-nx말고 crosslink를
사용하고 싶습니다. 가능할까요?
A7. 결론부터 말씀드리면, CrossLink
(LIF-MD6000)로 3개의 센서를 연결하는 것은 가능하지만, 핀 배치(Pin-out) 설계가 매우 타이트하며 난이도가 높습니다.
가격 경쟁력을 위해 CrossLink를 선택하실 경우, 아래의 핀 수 계산과 제약 사항을 반드시 검토하셔야 합니다.
1. 필요한 MIPI 신호 핀
수 (Rx 부분)
센서당 2-Lane을 사용할지,
4-Lane을 사용할지에 따라 결정됩니다. (4MP 30fps RAW8 기준)
l 센서당 2-Lane 사용
시 (추천):
n 센서 1개당: Clock(2핀) + Data0(2핀) + Data1(2핀) = 6핀
n 센서 3개: 6핀 × 3 = 18핀
n 참고: 4MP 30fps RAW8은 2-Lane(약 1Gbps/Lane 기준)으로 충분히 커버 가능합니다.
l 센서당 4-Lane 사용
시:
n 센서 1개당: 10핀 / 센서 3개: 30핀
n 주의: CrossLink의
하드웨어 MIPI 핀 수를 초과할 가능성이 매우 높습니다.
2. FX3 연결 핀 수 (Tx 부분 - GPIF II 24bit 인터페이스)
l
Data Bus: 24핀 (D0~D23)
l
Control: PCLK, HSYNC, VSYNC, Data Valid = 4핀
l
합계: 28핀
3. 기타 제어 핀
l
I2C (CCI): 2핀 (SCL, SDA)
l
Sensor Control: MCLK(1~3핀), Reset(1~3핀), PWDN(1~3핀)
l
합계: 최소 5~11핀
4. CrossLink (LIF-MD6000) 사용 시 핵심 체크포인트
1.
하드웨어 포트 활용:
A.
CrossLink에는 2개의 하드웨어 MIPI
Rx 포트가 내장되어 있습니다. (Bank 1, Bank 2 활용)
B.
3번째 센서는 일반 I/O(Bank 0 등)를 사용하는 Soft
IP MIPI Rx를 써야 합니다. 이때 해당 핀들이 차동 신호(Differential)와 고속 처리를 지원하는지 확인해야 합니다.
2.
패키지 선택:
A.
81-ball WLCSP(가장 저렴)는 핀 수가 매우 부족할 수 있습니다. 80-ball qfn이나 124-ball
csfbga 패키지를 사용해야 핀 배치가 가능할 것입니다.
3.
Soft IP 부하:
A.
하드웨어 포트가 아닌 일반 핀으로 MIPI를 받으면 FPGA
내부 리소스(LUT)를 더 많이 사용합니다. 하지만 RAW8에 2-Lane 정도라면
CrossLink 리소스로 충분히 구현 가능합니다.
5. 가격 vs 설계 난이도
l
CrossLink: 칩 단가는 저렴하지만, 3번째 센서를 위한 Soft IP 설계와
빡빡한 핀 배치 때문에 개발 공수가 늘어날 수 있습니다.
l
CrossLink-NX: 핀 수가 넉넉하고 성능이 좋아 설계가 훨씬 쉽지만, 칩 단가가
약 2~3배 정도 비쌉니다.
제언:
회로 설계 전에 Lattice Diamond 툴에서 제공하는 'Clarity
Designer'를 열어보세요. 거기서 MIPI
Rx IP 3개를 배치해보고, 선택한 패키지(예: 80-pin QFN)에 핀 할당(Pin Assignment)이 에러
없이 되는지 먼저 시뮬레이션해 보시는 것을 강력히 추천합니다.
핀 배치를 위해 2-Lane으로
가실 계획인가요, 아니면 대역폭을 위해 4-Lane을 고수하실
계획인가요?
Q8. 2-lane으로 시도해보고 여의치 않으면 센서의 해상도를 낮추는 방안도 고려해
보아야 할 것 같습니다. 어떤 방법이 효율적일까요?
A8. 2-Lane 설계를 유지하면서 시스템 효율을 높이는 방법은 하드웨어 설계를 확정 짓기 전
가변성을 확보하는 것입니다. 4MP 센서 3개를 2-Lane으로 처리하는 것은 이론적으로 가능하지만, 신호 무결성(SI)이나 FPGA 리소스
제약이 따를 수 있습니다.
가장 효율적인 접근 방법 3가지를 제안해 드립니다.
1. 센서 자체의 'Binning' 또는 'Skipping' 모드 활용
해상도를 낮출 때 ISP(이미지 처리 장치)에서 자르는 것이 아니라, 이미지 센서 자체 설정(Register)을 통해 출력 해상도를 낮추는 것이 가장 효율적입니다.
l Binning: 인접한 픽셀을 합쳐서 출력하는 방식입니다. 해상도는 낮아지지만
감도(SNR)가 좋아져 흑백 센서에서 저조도 성능이 향상됩니다.
l Skipping (Sub-sampling): 픽셀을 건너뛰며 읽는 방식입니다. 전력 소모를 줄이고 프레임
레이트를 높이기에 유리합니다.
l 장점: 센서에서 나가는 데이터 자체가 줄어들므로 MIPI 대역폭과 CrossLink의 부하가 동시에 줄어듭니다.
2. 하드웨어 설계 시 '핀 호환성' 확보 (Strap 옵션)
CrossLink에서 3번째 센서를 Soft IP(일반 I/O)로 처리할
때가 가장 위험 요소입니다.
l 방법: 가능하면 CrossLink의 124-ball
csFBGA 패키지를 선택하세요. 80-pin QFN보다 핀 여유가
있어, 만약 4MP 2-Lane이 불안정할 경우 핀 설정을
변경하여 해상도를 낮추거나 타이밍을 조정할 수 있는 '설계 마진'이
생깁니다.
l 효율성: 회로를 다시 그리는 비용보다 패키지 크기를 조금 키워 리스크를 줄이는 것이 양산 측면에서 더 저렴할 수
있습니다.
3. 클록 동기화 및 Blanking 시간
최적화
대역폭이 아슬아슬할 때는 MIPI 전송 시 데이터가 없는 구간인 Horizontal/Vertical Blanking 기간을 최적화해야 합니다.
l 방법: 센서 레지스터 설정을 통해 유효 데이터 외의 더미 데이터를 최소화하면, 같은 2-Lane에서도 더 높은 프레임 레이트를 확보할 수 있습니다.
l 효율성: 물리적인 라인 수를 늘리지 않고 소프트웨어(Firmware) 설정만으로
대역폭 문제를 해결할 수 있는 가장 깔끔한 방법입니다.
전략적 권고
먼저 4MP / 2-Lane / RAW8로
회로를 설계하시되, CrossLink 내부 로직에서 3개
채널의 데이터를 24bit로 패킹하는 모듈을 우선적으로 검증하십시오. 만약 대역폭 이슈가 발생한다면, 하드웨어를 수정하지 말고 센서 레지스터
설정을 통해 2MP(Full HD)급으로 낮추어 우선 동작시키는 시나리오를
플랜 B로 가져가는 것이 가장 효율적입니다.
혹시 센서에서 FPGA로 가는
MIPI 배선의 최대 길이는 어느 정도로 예상하시나요? (길이가 길어지면 2-Lane 고속 전송이 어려울 수 있습니다.)
Q9. 최대 100mm정도입니다.
A9. 100mm(10cm)는 MIPI D-PHY 고속 신호 전송에서 '주의가 필요하지만 충분히 가능한' 거리입니다. 보통 MIPI 배선은
20~30mm 이내를 권장하지만, 설계만 잘하면
150mm까지도 전송이 가능합니다.
100mm 배선 시 성공을 위한 필수 체크리스트입니다:
·
임피던스 및 배선 설계 (PCB Layout)
차동 임피던스 100Ω: 패턴 폭과 간격을 계산하여 반드시 100Ω(±10%)을 맞춰야
합니다.
·
Intra-pair Skew (한 쌍 내부): 동일한 레인의 +와 - 선
사이의 길이 차이는 0.15mm(6mil) 미만으로 맞춰야 신호 왜곡이
없습니다.
·
Inter-pair Skew (레인 간): 데이터 레인 간, 그리고 클록 레인과의 길이 차이는 1.0mm 미만으로 맞추십시오. 100mm나
되기 때문에 한쪽으로 쏠리지 않게 'Snake 배선' 등으로
길이를 맞춰야 합니다.
2. 비아(Via) 사용 최소화
·
가능하면 Top 레이어에서 배선을 끝내고 비아를 쓰지 마십시오. 만약 레이어를 변경해야 한다면, 신호선 옆에 반드시 GND 비아(Stitching Via)를
뚫어 회귀 경로(Return Path)를 확보해야 합니다.
3. CrossLink Soft IP 제약 사항
·
Hard IP 포트: 100mm 거리라도 전용 핀이므로 신호를 잘 잡아냅니다.
·
Soft IP 포트 (3번째 센서): 일반 I/O를 빌려 쓰기 때문에 Hard IP보다 노이즈에 취약합니다. 3번째
센서를 FPGA와 가장 가까운 곳(예: 30~50mm 이내)에 배치하고, 거리가 먼 곳에 Hard IP 포트를 할당하는 것이 훨씬 안전합니다.
4. 신호 감쇠 대책
·
소니
센서와 CrossLink 모두 드라이브 강도(Drive
Strength)를 조절할 수 있는 레지스터가 있을 수 있습니다. 100mm에서 신호 눈(Eye Diagram)이 깨진다면 소프트웨어적으로 신호 세기를 살짝 높여 해결할 수 있습니다.
결론적으로:
100mm 거리는 2-Lane 30fps 환경에서 PCB 설계
가이드라인만 준수하면 충분히 구현 가능합니다. 다만 3번째
센서(Soft IP)를 위한 핀 배치를 먼저 확정하고, 그
센서를 물리적으로 FPGA에 가장 가깝게 배치하는 것을 추천드립니다.
이제 회로도 작성을 시작하실 단계인가요? 아니면 FPGA 내부 로직 구성에
대해 더 궁금한 점이 있으신가요?
Q10. 먼저 fpga확정을 위한 무결성 점검을 해야 할 것 같습니다. 그 다음 pcb 설계로 가야줘.
A10. 무결성 점검(Integrity Check)은 나중에 PCB를 새로 만드는 비용을 줄여주는 아주 현명한 단계입니다. CrossLink
(LIF-MD6000) 확정을 위해 반드시 확인해야 할 3가지 핵심 포인트를 정리해
드립니다.
1. 리소스 무결성 (Soft IP
MIPI Rx 구현 가능성)
CrossLink는 하드웨어 MIPI Rx가 2개뿐이므로, 3번째 센서는 일반
I/O를 사용하는 Soft IP로 구현해야 합니다.
·
체크 사항: 3번째 센서가 연결될 Bank의 일반 I/O가 차동 신호(Differential) 입력을 지원하는지, 그리고 해당 Bank의 전압(VCCIO)이
1.2V(D-PHY HS 모드용)로 설정 가능한지 확인해야 합니다.
·
점검 방법: Lattice Diamond의 Clarity
Designer에서 MIPI D-PHY Receiver Soft
Core를 생성하여 3번째 센서용 핀을 할당해 보세요. 여기서 타이밍 에러가 나면 칩을
상위 모델로 바꿔야 합니다.
2. 핀 할당 무결성 (FX3 병렬
버스와의 간섭)
3개 센서의 MIPI 신호선(총 18핀)과 FX3로 가는 24bit 데이터 버스(총 28핀)가 서로의 전용 핀 영역을 침범하지 않는지 점검해야 합니다.
·
핵심: MIPI Hard IP는 전용 핀이 정해져 있습니다. 이 핀들을 먼저 배치하고, 남은 핀들 중에서 FX3의 High-speed
Parallel Interface를 위한 클록(PCLK) 신호와 데이터 라인을 배치할
수 있는지 확인하십시오.
·
주의: 80-pin QFN 패키지는 생각보다 사용할 수 있는 '고속 I/O'가 적습니다. 핀이 모자라다면 124-ball csFBGA로의 상향을 이 단계에서 결정해야 합니다.
3. 타이밍 무결성 (3채널 데이터
패킹)
3개 센서의 데이터를 24bit로 합칠 때, 각 센서의 데이터가 들어오는 시점이 미세하게 다를 수 있습니다.
·
점검 사항: CrossLink 내부에 각 센서 데이터를 잠시 담아둘 FIFO(Buffer)
리소스가 충분한지 확인하세요. 30fps RAW8 4MP 기준, 라인 버퍼링을 위한 EBR(Embedded Block RAM) 사용량을
계산해 보아야 합니다.
·
계산: 센서 간의 미세한 지연을 보정하기 위해 최소 몇 라인 정도의 버퍼가 필요한지 산출하고,
LIF-MD6000의 EBR 용량(약 60~80 KB) 이내인지 확인하십시오.
다음 절차 제언
가장 먼저 Lattice Diamond 툴에서
아래 설정을 포함한 가상 프로젝트를 만들어 보시는 것을 추천합니다.
1.
Hard IP MIPI Rx 2개 인스턴스 생성
2.
Soft IP MIPI Rx 1개 인스턴스 생성 (2-Lane 설정)
3.
Parallel Output (24bit + 제어선) 핀 할당
이 단계에서 "Place &
Route"가 성공한다면, 그 핀 맵(Pin-out)
그대로 회로 설계(Schematic) 단계로 넘어가시면 됩니다.
혹시 Lattice Diamond 툴
환경은 준비되어 있으신가요? 아니면 제가 핀
맵 설계 시 주의해야 할 뱅크(Bank) 구성을 좀 더 상세히 짚어드릴까요?