Forum: FPGA, VHDL & Co. CMOS Bildsensor - Synchronisationssignale?


von Mike (Gast)


Lesenswert?

Hallo,

beim Duchlesen des weiter unten stehenden Beitrages zum Thema 
CMOS-Bildsensoren kam in in mir wieder eine Frage auf, die mich schon 
seit einiger Zeit beschäftigt (ich habe noch nie mit einem solchen 
Bildsensor praktisch gearbeitet; habe dies aber bald vor.)

Diese Bildsensoren liefern ja immer ein vsync- und hsync-Signal mit. 
Dienen diese Werte nur zum initialien Feststellen der Bildgröße?

Oder kommt es tatsächlich häufig vor, dass z. B. eine Bildzeile "out of 
sync" ist, also die erwaretete Bildlänge nicht mit dem hsync-Signal 
übereinstimmt?

Danke,
Mike

von Christian (Gast)


Lesenswert?

Hallo Mike,

nein die Bildsensoren mit digitalem Interface arbeiten anders.

Man hat eine Konfigurationsschnittstelle (SPI / I2C) über die man die 
Bildgröße, Belichtungszeit, Offsetkorrektur, etc. einstellt. Damit Weiß 
der Sensor wie groß das auszulesende Bild ist und an welcher Stelle vom 
Sensor es liegt.

Zum Auslesen wird der Pixelclk Pin getoggelt. An die 8-10 Datenausgänge 
wird dann der Helligkeitswert des jeweiligen Pixel angelegt. Toggelt man 
die Pixelclk ein weiteres mal, so wird der Helligkeitswert des nächsten 
Pixels angelegt. Kommt man am ende der Zeile an, so wird zusätzlich 
HSync auf High gesetzt. Am Ende vom gesamten Bild VSync.

Ich glaube man könnte auch ohne die beiden Signale auskommen, wenn man 
weiß wie groß das Bild ist. Nur verzählen darf man sich dann nicht.

Viele uC haben ein CameraSensorInterface über welches sie die beiden 
Signale einlesen. Dadurch kann dann der Controller den Sensor auslesen 
und die Daten gleich passend im Bildspeicher ablegen. Häufig erspart das 
viel Arbeit, weil man sich um die Generierung der Clock und die 
Speicherverwaltung nicht weiter kümmern muss.

Gruß Christian

von Arndt B. (Firma: Helion GmbH) (bussmann)


Lesenswert?

Hallo Mike,

die heutigen Bildsensoren haben oft eine einstellbare 
Pixelausgangsclock, die sogar deutlich anders sein darf als der 
eigentliche Matrixausleseclock. Je nach Sensor wird diese Diskrepanz 
dann über ein internes FIFO ausgeglichen (ist bei fast allen Aptina 
Sensoren mit >1MP Auflösung). Je nach Architektur des Sensors ist es 
nicht möglich einen kontinuierlichen Pixeldatenstrom zu liefern, da je 
nach verwendeten ADC (Spalten- oder globale ADC) zur Kalibration und zur 
Vorbereitung der Auslese eine gewisse Wartezeit nicht unterschritten 
werden darf.

Damit der Nutzer nun weiss, wann wirklich Bilddaten kommen, gibt es die 
Framevalid (ähnlich wie VSYNC) und Linevalid (ähnlich wie HSYNC) 
Signale. Framevalid ist solange auf High, wie prinzipiell das Bild 
ausgegeben wird. Linevalid kennzeichnet dann die gültigen Pixelwerte:

FV: ____-------------------------------______________------
LV: ______-----__-----__-----__-----___________________----

Im obigen Beispiel würde ein Bild mit 4 Zeilen zu je 5 Pixel ausgegeben.
Die Pausen zwischen diesen Signalen bezeichnet man als Blanking.

Viele Grüße
Arndt

von Mike (Gast)


Lesenswert?

Danke euch beiden für den kleinen Exkurs in Sachen Bildsensoren. Hat mir 
echt was gebracht!

Grüße,
Mike

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.