Hoche CPU auslastung bei verwendung des COM-Ports



  • Hallo leute,

    ich habe ein Gerät, welches mit Daten über den Comport liefert. Das Geschieht ca. alles 20ms (ReceiveEvent). Das Gerät schick mehrere Blöcke, wobei ich dann ein event bei 'carriage return' bekomme und dann den ganze datenblock mit 96KB einlesen. Soweit sogut.

    Ich habe eine einfache C# .NET Konsolen Anwendung , mit dem ich en Comport initalisiere mit 115200Baut , und das event abfange.

    Allein diese Anwendung lastet den CPU auf 20% aus... was zuviel ist.

    Das Hyperterminal , braucht 30% wenn ich das Gerät damit aulese.

    Hmm kann man da was machen? Ist das einfach so, das der Comport so viel CPU zeit braucht? Da ich alle 20ms 96KB lese, is das schon rel. viel traffic aufm Port!?

    grüße



  • Bei 115200 baud kann nicht alle 20ms 96kB Daten gelesen werden.
    Abgesehen davon:
    Tritt die Auslastung nur beim Datenempfang oder auch beim Warten auf? Wenn beim Warten auch, dann hast du offenbar einen Fehler im Programm.
    Was für eine CPU verwendest du denn? Nimm ne schnellere, wenn sie zu langsam ist.



  • Bei 115200 baud kann nicht alle 20ms 96kB Daten gelesen werden.

    Der Comport empfängt einzele Frames (das geschieht im hintergrund und seinem caching), und schickt mir dann am ende 96KB Daten via Event.

    Tritt die Auslastung nur beim Datenempfang oder auch beim Warten auf? Wenn beim Warten auch, dann hast du offenbar einen Fehler im Programm.

    Nu beim Empfang , spricht Event siehe oben.

    Was für eine CPU verwendest du denn? Nimm ne schnellere, wenn sie zu langsam ist.

    Eben das wäre die notlösung, deswegen will ich wissen ob es noch ne optimierung-smöglichekit gibt.



  • NullBockException schrieb:

    Der Comport empfängt einzele Frames (das geschieht im hintergrund und seinem caching), und schickt mir dann am ende 96KB Daten via Event.

    Und wieviele Daten kommen nun wirklich? Was für eine CPU verwendest du denn nun? Was passiert mit den Daten? Gib mal paar Infos damit das Problem beurteilbar ist.

    Kannst auch mal schauen ob andere Terminalprogramme weniger Last verursachen, z.B. HTerm.


Log in to reply