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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.