Una panoramica dell'interfaccia camera MIPI CSI-2: dall'architettura di sistema e dalla trasmissione a livello fisico ai formati immagine, alla stima della larghezza di banda, all'integrazione Linux e alla risoluzione dei problemi.
Questo articolo offre una panoramica dell'interfaccia camera MIPI CSI-2, analizzando l'architettura di sistema, la trasmissione D-PHY, i meccanismi dei pacchetti, i formati immagine e la stima della larghezza di banda, oltre all'integrazione e alla risoluzione dei problemi nell'ambito del framework Linux media-controller. I contenuti sono rivolti all'integrazione hardware e software di SoC basati su ARM, sensori d'immagine, ISP e pipeline video V4L2.

MIPI CSI-2 (Camera Serial Interface 2) è un protocollo seriale ad alta velocità utilizzato per trasferire dati immagine da un sensore a un SoC, un ISP o un FPGA. CSI-2 definisce i formati dei pacchetti, i Data Type, i Virtual Channel e i meccanismi di protezione dagli errori, mentre D-PHY o C-PHY gestiscono la trasmissione fisica del segnale.

| Livello | Responsabilità principale | Implementazione tipica Linux / SoC |
|---|---|---|
| Piano di controllo | Controllo di modalità, esposizione, guadagno e streaming | Driver del sensore e I²C/I³C |
| Livello protocollo CSI-2 | Pacchettizzazione, VC, DT, ECC e CRC | Controller CSI-2 TX/RX |
| Livello PHY | Stati LP/HS, clock e segnalazione differenziale | D-PHY/C-PHY e driver PHY |
| Pipeline immagine | Decodifica, elaborazione, DMA e acquisizione | ISP, DMA e nodo V4L2 |
Quando è inattiva, una Data Lane D-PHY rimane nello stato LP Stop e passa attraverso la sequenza di stati LP per entrare in modalità HS prima di trasmettere i pacchetti CSI-2. L'accesso ai registri del sensore e il controllo dello streaming sono generalmente gestiti tramite un bus I²C/I³C separato, distinto dagli stati LP della Data Lane D-PHY.

| Stato / fase | Funzione | Considerazioni per l'integrazione |
|---|---|---|
| Stato LP-11 Stop | Stato inattivo e riferimento per il funzionamento LP | Verificare lo stato della lane e il supporto TX/RX del PHY |
| LP-01, LP-00 | Parte della sequenza di ingresso/uscita HS | Non interpretare questi stati come dati di controllo I²C |
| HS-Prepare, HS-Zero | Preparazione e stabilizzazione prima della trasmissione ad alta velocità | Influiscono sul rilevamento RX e sulla regolazione di HS-Settle |
| SoT | Segna l'inizio della trasmissione dei pacchetti ad alta velocità | Gli errori SoT possono indicare problemi di temporizzazione, lane o configurazione |
| Trasmissione dati HS | Trasferisce il flusso di byte dei pacchetti CSI-2 | Verificare frequenza di link, numero di lane e integrità del segnale |
CSI-2 utilizza Short Packet per trasportare eventi di protocollo o informazioni di sincronizzazione, mentre i Long Packet trasportano dati RAW, YUV, RGB o dati embedded. Un Long Packet è composto da un header di 4 byte, un payload e un footer CRC di 2 byte.

| Campo | Funzione | Elementi da verificare |
|---|---|---|
| Virtual Channel (VC) | Distingue i flussi logici di dati | Il sensore e il Virtual Channel RX devono essere compatibili |
| Data Type (DT) | Identifica il formato pixel o il tipo di pacchetto | Deve corrispondere alla modalità di uscita del sensore e alle capacità RX |
| Word Count (WC) | Specifica la lunghezza del payload del Long Packet in byte | Deve essere coerente con la larghezza della linea e il packing dei pixel |
| ECC | Protegge l'header del pacchetto | Verificare sincronizzazione, lane, configurazione e decodifica RX |
| CRC | Protegge il payload del Long Packet | Verificare PHY, data rate, mappatura delle lane e implementazione TX/RX |
Frame Start (FS) e Frame End (FE) forniscono la sincronizzazione a livello di frame. Line Start (LS) e Line End (LE) forniscono una sincronizzazione opzionale a livello di linea. L'effettiva trasmissione di LS e LE deve essere verificata nella documentazione del sensore d'immagine, nelle tracce del ricevitore CSI o nei contatori del driver.
I Data Type CSI-2, i codici media-bus V4L2, i formati di memoria di acquisizione V4L2 e la negoziazione dei formati ISP devono rappresentare dati immagine compatibili, pur appartenendo a livelli di astrazione differenti. I nomi e le posizioni delle configurazioni non devono necessariamente corrispondere uno a uno. Per i dati RAW, verificare sia la profondità in bit sia l'ordine Bayer; per i dati YUV, verificare l'ordine dei byte.
Payload pixel attivi = Larghezza × Altezza × FPS × Bit per pixel
Questo calcolo rappresenta soltanto il payload minimo richiesto dai dati dei pixel attivi. Il throughput CSI-2 effettivo e il data rate delle lane D-PHY devono considerare anche header dei pacchetti, CRC, pacchetti di sincronizzazione, strategia di trasmissione del blanking, numero di Data Lane, modalità di clock, frequenze di link disponibili per il sensore e limiti del ricevitore CSI del SoC.
Data rate per lane ≳ Throughput CSI-2 totale / Numero di Data Lane
Il Device Tree descrive generalmente i graph endpoint, le data-lanes, le clock-lanes e le connessioni remote-endpoint. Nella maggior parte delle architetture media-controller, i formati immagine vengono negoziati a runtime tramite i formati dei pad dei sub-device, i media link e la negoziazione del routing. I binding effettivi e i formati supportati dipendono dal driver kernel del SoC utilizzato.
# Inspect entities, pads, and links
media-ctl -p -d /dev/media0
# Example: Configure the upstream sensor pad format
media-ctl -d /dev/media0 --set-v4l2 '"sensor 1-001a":0 [fmt:SRGGB10_1X10/1920x1080]'
# Example: Enable the link
media-ctl -d /dev/media0 --links '"sensor 1-001a":0 -> "csi2rx":0 [1]'
# Configure the capture node memory format and start streaming
v4l2-ctl -d /dev/videoX \
--set-fmt-video=width=1920,height=1080,pixelformat=RG10 \
--stream-mmap=4 --stream-count=100
dmesg -w
I nomi delle entità, gli indici dei pad, i codici media-bus, i valori FourCC e i nodi video mostrati nell'esempio devono essere adattati al media graph effettivo e non sono uniformi tra le diverse piattaforme.

| Area | Elementi da verificare | Sintomi tipici |
|---|---|---|
| PHY | Numero e mappatura delle lane, frequenza di link, modalità clock e HS-Settle | Errori SoT, assenza di dati o perdita intermittente di frame |
| Protocollo | VC, DT, comportamento dei pacchetti ed ECC/CRC | Errori di header, errori CRC o problemi di sincronizzazione dei frame |
| Formato | Profondità in bit, ordine Bayer, ordine YUV e packing | Colori errati, frame verdi o immagini corrotte |
| Pipeline | Graph DT, media link, formati dei pad, ISP e DMA | Errore STREAMON o timeout del buffer |
No. CSI-2 è un protocollo per i pacchetti immagine, mentre D-PHY è un'interfaccia di trasmissione a livello fisico comunemente utilizzata.
Una comunicazione I²C riuscita conferma soltanto il canale di controllo. Il percorso dei dati immagine può essere ancora interessato da problemi di MCLK, lane, temporizzazione PHY, protocollo, media graph, ISP o DMA.
L'ECC protegge principalmente l'header del pacchetto e può correggere errori a singolo bit e rilevare errori a due bit. Il CRC verifica l'integrità del payload del Long Packet. Errori persistenti richiedono generalmente controlli sia sulla configurazione del protocollo sia sull'integrità del segnale a livello fisico.
L'impedenza del PCB, la lunghezza delle tracce, l'FPC, i percorsi di ritorno della massa e le condizioni EMI possono influire sull'integrità del segnale D-PHY e sul margine di temporizzazione.
FIRST Components supporta OEM e system integrator nella valutazione di piattaforme embedded e tecnologie display, contribuendo a soddisfare i requisiti di interfaccia, integrazione e applicazione.
Contatta il nostro team tecnico