Bu makalede MIPI CSI-2 kamera arayüzü; sistem mimarisi, D-PHY iletimi, paket mekanizmaları, görüntü formatları ve bant genişliği hesaplamasının yanı sıra Linux media-controller yapısındaki entegrasyon ve hata ayıklama süreçleriyle birlikte ele alınmaktadır. İçerik; ARM tabanlı SoC'ler, görüntü sensörleri, ISP'ler ve V4L2 video pipeline'larını içeren donanım ve yazılım entegrasyonuna yöneliktir.

MIPI CSI Sistem Mimarisi
MIPI CSI-2 (Camera Serial Interface 2), görüntü verilerini bir görüntü sensöründen SoC, ISP veya FPGA'ya aktarmak için kullanılan yüksek hızlı bir seri protokoldür. CSI-2; paket formatlarını, Data Type'ları, Virtual Channel'ları ve hata koruma mekanizmalarını tanımlarken D-PHY veya C-PHY fiziksel sinyal iletimini sağlar.

| Katman |
Temel görev |
Tipik Linux / SoC uygulaması |
| Kontrol düzlemi |
Mod, pozlama, kazanç ve stream kontrolü |
Sensör sürücüsü ve I²C/I³C |
| CSI-2 protokol katmanı |
Paketleme, VC, DT, ECC ve CRC |
CSI-2 TX/RX denetleyicisi |
| PHY katmanı |
LP/HS durumları, saat sinyali ve diferansiyel sinyalleme |
D-PHY/C-PHY ve PHY sürücüsü |
| Görüntü pipeline'ı |
Kod çözme, işleme, DMA ve görüntü yakalama |
ISP, DMA ve V4L2 düğümü |
D-PHY İletimi ve Zamanlama
Boşta durumdayken bir D-PHY Data Lane, LP Stop State durumunda kalır ve CSI-2 paketlerini iletmeden önce LP durum dizisi üzerinden HS moduna geçer. Sensör register erişimi ve stream kontrolü genellikle ayrı bir I²C/I³C veri yolu üzerinden gerçekleştirilir ve bu kontrol yolu D-PHY Data Lane'in LP durumlarından farklıdır.

| Durum / Aşama |
İşlev |
Entegrasyonda Dikkat Edilecek Noktalar |
| LP-11 Stop State |
Boşta durumu ve LP çalışmasının temeli |
Lane durumunu ve TX/RX PHY desteğini doğrulayın |
| LP-01, LP-00 |
HS moduna giriş/çıkış dizisinin bir parçası |
Bu durumları I²C kontrol verileri olarak yorumlamayın |
| HS-Prepare, HS-Zero |
Yüksek hızlı iletim öncesinde hazırlık ve kararlılık sağlama |
RX algılamasını ve HS-Settle ayarını etkiler |
| SoT |
Yüksek hızlı paket iletiminin başlangıcını belirtir |
SoT hataları zamanlama, lane veya yapılandırma sorunlarına işaret edebilir |
| HS data transmission |
CSI-2 paketlerinin byte akışını aktarır |
Link frequency, lane sayısı ve sinyal bütünlüğünü doğrulayın |
- Clocked mode'da Clock Lane, HS iletimi sırasında alıcı tarafındaki örneklemeyi destekler. Continuous veya non-continuous clock çalışması; görüntü sensörü, SoC PHY ve sürücü yapılandırmasına göre doğrulanmalıdır.
- HS-Settle, gerçek link frequency, SoC alıcı dokümantasyonu ve hata sayaçlarına göre ayarlanmalıdır; daha yüksek bir değer her zaman daha iyi değildir.
CSI-2 Paketleri ve Senkronizasyon
CSI-2, protokol olaylarını veya senkronizasyon bilgilerini taşımak için Short Packet'ları, RAW, YUV, RGB veya embedded verileri taşımak için ise Long Packet'ları kullanır. Bir Long Packet; 4 byte'lık header, payload ve 2 byte'lık CRC footer'dan oluşur.

| Alan |
İşlev |
Kontrol Edilecek Noktalar |
| Virtual Channel (VC) |
Mantıksal veri akışlarını birbirinden ayırır |
Sensör ve RX Virtual Channel birbiriyle uyumlu olmalıdır |
| Data Type (DT) |
Piksel formatını veya paket türünü tanımlar |
Sensör çıkış modu ve RX özellikleriyle eşleşmelidir |
| Word Count (WC) |
Long Packet payload uzunluğunu byte cinsinden belirtir |
Satır genişliği ve pixel packing ile uyumlu olması beklenir |
| ECC |
Paket header'ını korur |
Senkronizasyon, lane, yapılandırma ve RX kod çözme işlemini kontrol edin |
| CRC |
Long Packet payload'unu korur |
PHY, data rate, lane mapping ve TX/RX uygulamasını kontrol edin |
Frame Start (FS) ve Frame End (FE), frame düzeyinde senkronizasyon sağlar. Line Start (LS) ve Line End (LE) ise isteğe bağlı olarak satır düzeyinde senkronizasyon sağlar. LS ve LE'nin gerçekten iletilip iletilmediği görüntü sensörü dokümantasyonu, CSI alıcı trace'leri veya sürücü sayaçları üzerinden doğrulanmalıdır.
Görüntü Formatları ve Bant Genişliği
CSI-2 Data Type'ları, V4L2 media-bus code'ları, V4L2 capture memory formatları ve ISP format negotiation, farklı soyutlama katmanlarına ait olsalar da uyumlu görüntü verilerini temsil etmelidir. Bu nedenle yapılandırma adlarının ve konumlarının bire bir eşleşmesi gerekmez. RAW veriler için hem bit derinliği hem de Bayer sırası; YUV veriler için ise byte sırası doğrulanmalıdır.
Aktif piksellere ait minimum payload aşağıdaki şekilde tahmin edilebilir:
Active-pixel payload = Width × Height × FPS × Bits per pixel
Bu hesaplama yalnızca aktif piksel verileri için gereken minimum payload miktarını temsil eder. Gerçek CSI-2 throughput ve D-PHY lane rate hesaplanırken paket header'ları, CRC, senkronizasyon paketleri, blanking sırasındaki iletim stratejisi, Data Lane sayısı, clock mode, sensörün kullanılabilir link-frequency ayarları ve SoC CSI alıcısının sınırlamaları da dikkate alınmalıdır.
Per-lane rate ≳ Total CSI-2 throughput / Number of Data Lanes
Linux Entegrasyonu ve Bring-up
Device Tree genellikle graph endpoint'leri, data-lanes, clock-lanes ve remote-endpoint bağlantılarını tanımlar. Çoğu media-controller mimarisinde görüntü formatları, sub-device pad formatları, media link'ler ve routing negotiation aracılığıyla çalışma zamanında belirlenir. Kullanılan binding'ler ve desteklenen formatlar, hedef SoC'nin kernel sürücüsüne bağlıdır.
# Entity, pad ve link'leri kontrol edin
media-ctl -p -d /dev/media0
# Örnek: Upstream sensör pad formatını yapılandırın
media-ctl -d /dev/media0 --set-v4l2 '"sensor 1-001a":0 [fmt:SRGGB10_1X10/1920x1080]'
# Örnek: Link'i etkinleştirin
media-ctl -d /dev/media0 --links '"sensor 1-001a":0 -> "csi2rx":0 [1]'
# Capture node memory formatını yapılandırın ve streaming'i başlatın
v4l2-ctl -d /dev/videoX \
--set-fmt-video=width=1920,height=1080,pixelformat=RG10 \
--stream-mmap=4 --stream-count=100
dmesg -w
Bu örnekte gösterilen entity adları, pad indeksleri, media-bus code'ları, FourCC değerleri ve video node'ları gerçek media graph'a göre ayarlanmalıdır ve platformlar arasında sabit değildir.

Uyumluluk ve Hata Analizi
| Alan |
Kontrol Edilecek Noktalar |
Tipik Belirtiler |
| PHY |
Lane sayısı, mapping, link frequency, clock mode ve HS-Settle |
SoT hataları, veri alınamaması veya aralıklı frame kayıpları |
| Protokol |
VC, DT, paket davranışı ve ECC/CRC |
Header hataları, CRC hataları veya frame senkronizasyon sorunları |
| Format |
Bit derinliği, Bayer sırası, YUV sırası ve packing |
Yanlış renkler, yeşil frame'ler veya bozuk görüntüler |
| Pipeline |
DT graph, media link'ler, pad formatları, ISP ve DMA |
STREAMON hatası veya buffer timeout |
- I²C iletişimi çalışıyor ancak görüntü alınamıyorsa power/reset/MCLK, sensörün stream-on durumu, data-lanes, lane mapping, link frequency, media graph ve CSI RX durumunu kontrol edin.
- Frame aktivitesi algılanıyor ancak ECC/CRC hataları oluşuyorsa RX hata sayaçlarını, lane mapping, link rate, HS-Settle, kart seviyesindeki sinyal bütünlüğünü ve TX/RX yapılandırmasını kontrol edin.
- Frame'ler yakalanabiliyor ancak renkler yanlışsa RAW bit derinliğini, Bayer sırasını, media-bus code'u, memory FourCC'yi ve ISP pipeline'ını kontrol edin.
Sık Sorulan Sorular
1. CSI-2 ve D-PHY aynı şey midir?
Hayır. CSI-2, görüntü verileri için bir paket protokolüdür; D-PHY ise fiziksel katmanda yaygın olarak kullanılan bir iletim arayüzüdür.
2. I²C iletişimi çalışmasına rağmen neden görüntü alınamıyor?
I²C iletişiminin başarılı olması yalnızca kontrol kanalının çalıştığını doğrular. Görüntü veri yolu; MCLK, lane'ler, PHY zamanlaması, protokol, media graph, ISP veya DMA ile ilgili sorunlardan etkilenebilir.
3. ECC ile CRC arasındaki fark nedir?
ECC temel olarak Packet Header'ı korur ve tek bitlik hataları düzeltebilir, iki bitlik hataları ise algılayabilir. CRC, Long Packet payload'unun bütünlüğünü doğrular. Hatalar devam ediyorsa genellikle hem protokol yapılandırmasının hem de fiziksel katmandaki sinyal bütünlüğünün kontrol edilmesi gerekir.
4. Aynı görüntü sensörü farklı kartlarda neden farklı davranabilir?
PCB empedansı, hat uzunluğu, FPC, toprak dönüş yolları ve EMI koşulları D-PHY sinyal bütünlüğünü ve zamanlama marjını etkileyebilir.
Referanslar
- MIPI Alliance, "Camera Serial Interface 2 (MIPI CSI-2)", mipi.org/specifications/csi-2
- MIPI Alliance, "MIPI D-PHY", mipi.org/specifications/d-phy