Warum ist die Geschwindigkeit, mit der mein USB-COM-Port Daten liest, abhängig vom angeschlossenen Laptop?
Zusammenfassung
Ich lese serielle Daten über einen USB-Anschluss. Wenn der Laptop aufgeladen wird, erhält der COM-Anschluss etwa 60 Updates pro Sekunde. Wenn der Laptop nicht aufgeladen wird, erhält der COM-Anschluss etwa 1 Update pro Sekunde.
Hintergrund (Ich bin nicht sicher, welche Informationen hilfreich sind)
Ich arbeite an einem Projekt, bei dem ein Satz Sensoren mit einem Mikroprozessor kommuniziert und der Mikroprozessor an einen Laptop angeschlossen ist. Da ich die Daten für die Echtzeitsteuerung benötige, ist die Rate, mit der der Laptop Informationen vom Mikroprozessor erhält, wichtig.
In der Regel konnte ich pro Sekunde etwa 60 Updates vom Mikroprozessor erhalten. Ich bin jedoch oft ohne offensichtlichen Grund gelegentlich mit Verlangsamung konfrontiert. Heute trat eine dieser Verlangsamungen auf und ich erkannte, dass, wenn der Laptop nicht aktiv aufgeladen wurde, die Updates pro Sekunde sehr langsam waren, aber wenn der Laptop aufgeladen wurde, er die Updates mit voller Geschwindigkeit erhielt.
Beachten Sie, dass der Mikroprozessor nicht vom Laptop mit Strom versorgt wird.
Edit 1: Mein Energieplan ist auf ausgeglichen eingestellt.
Edit 2: Ich habe die folgenden Änderungen vorgenommen, um die Leistung zu verbessern
- Ich setze meine kritischen Prozesse auf Echtzeit-Priorität
- Setze meinen Energieplan auf Hochleistung
- Ich gab ziemlich schnell Daten an ein Konsolenfenster aus, sodass der Konsolendruck verringert wurde
- Ich habe den USB-selektiven Suspend deaktiviert
- Zuvor hatte ich den Latenzzeitgeber für den COM-Port auf 1 ms und den Empfang (Bytes) auf 128 geändert, um Kommunikationsprobleme mit diesem Gerät zu beheben.
Ich dachte, diese hätten das Problem behoben, aber nachdem sie einige Minuten gelaufen war, kam es wieder zu einer Verlangsamung.
Wenn der Task-Manager den Task-Manager ordnungsgemäß ausführt, beträgt er etwa 50% und der Speicherverbrauch etwa 50%. Als die Verlangsamung auftrat, sank die CPU-Auslastung auf etwa 25%. Die Speicherauslastung blieb unverändert.
Es sah so aus, als ob die Anzahl der Threads und Handles, die im Task-Manager angezeigt werden, im Laufe der Zeit stetig zunahm, bis zu 4000 Threads und 98000 Handles. Als ich meine Programme schloss, sank die Thread-Anzahl auf ca. 3000 und die Anzahl der Handles auf ca. 90.000.
Bearbeiten Sie 3:
Ich ging ins BIOS und änderte Intel Speedstep in disabled und C-States-Control in Deaktiviert. Dies schien nichts zu beheben. Ich habe dies auf Empfehlung dieser Webseite getan: http://smallbusiness.chron.com/prevent-drops-cpu-speed-70828.html
Edit 4: Ich habe Docklight verwendet, um zu bestätigen, dass der Mikroprozessor Informationen schnell genug sendet. Das Problem liegt also definitiv am Ende des Laptops
0 Antworten auf die Frage
Verwandte Probleme
-
8
Laptop Standby unter Linux / Ubuntu
-
3
Warum führt das Entfernen des USB-Sticks zu einem blauen Bildschirm?
-
3
Wie können Sie die Akkulaufzeit eines Laptops eines Windows-PCs optimal nutzen?
-
7
Was ist der Effekt, wenn man einen Laptop immer schläft? Ist es schlecht für Batterien oder etwas an...
-
11
Anschließen von 2 externen Monitoren an einen Laptop?
-
8
Booten von Linux von USB-Sticks
-
3
Laptop wacht auf, wenn ich USB-Geräte freischalte / ausschalte
-
3
Gibt es eine Möglichkeit, zwei Computer über USB anzuschließen?
-
10
Der USB-Wi-Fi-Adapter wird unter Windows Vista nicht aktiviert
-
3
Wie kann ich die Lebensdauer meines Akkus maximieren?