Dieser Thread ähnelt möglicherweise einer Methode zum Deaktivieren bestimmter CPU-Leerlaufzustände (Cx).
Ich habe eine USB 2.0 CMOS-Sensorkamera, die über LabView gesteuert werden muss. Wenn es jedoch Bilder nacheinander aufnimmt, stelle ich fest, dass das Bild zufällig einen Riss aufweist. Als ich dies mit der Kamerafirma in Frage stellte, wurde mir Folgendes mitgeteilt:
Die niedrige Bildrate bei Verwendung von USB-Kameras und beschädigte Bilder von FireWire-Kameras werden durch den Ruhezustand der CPU verursacht. Soweit wir wissen, geschieht Folgendes: Der Kommunikationscontroller erhält eine Liste von Befehlen von der CPU. Es beginnt mit der Ausführung dieser Liste. Jetzt ist die CPU wieder im Leerlauf und wechselt zur Energieeinsparung in den C3-Zustand. Wenn der Kommunikationscontroller die Befehlsliste beendet hat, fordert er die CPU auf, neue Befehle einzugeben. Während es darauf wartet, dass die CPU von C3 nach C0 kommt, sendet das Videoerfassungsgerät weiterhin Daten, die vom Kommunikationscontroller nicht erfasst werden. Dies führt zu einem Pufferüberlauf und zum Verlust von Datenblöcken. Der USB-Kameratreiber kann diese unvollständigen Bilder erkennen und ablegen. Der FireWire-Kameratreiber kann sie nicht erkennen und daher werden die gestörten Bilder angezeigt. Wenn Sie eine Intel-CPU verwenden, Versuchen Sie es mit dem Processor Idle State Manager. Es wird versucht zu verhindern, dass die CPU in den C3-Zustand wechselt. Das Programm kann von heruntergeladen werdenhttp://www.imagingcontrol.com/de/downloads/tools/
Hier ist ein Beispiel für ImageTear:
Dies liegt sicherlich an den CPU-Cx-Zuständen. Kann ich sie trotzdem deaktivieren und erneut versuchen, Bilder aufzunehmen? Mein System ist immer eingeschaltet. Es gibt also keine Sorgen um Stromprobleme oder Energieeffizienz-Managements.