Gast
#2581246
Hallo, ich stehe vor folgendem Problem: Ich habe eine Windowsanwendung, die über einen COM Port Befehle an ein Steuergerät schickt und über den selben COM Port daraufhin eine Antwort erhält. Die Befehle bestehen im Schnitt aus 10-12 Bytes. Bei der eingestellten Geschwindigkeit von 115200 Baud sollte also ein Befehl in ziemlich genau 1ms über die Leitung rauschen. Es gibt 3 Möglichkeiten das Steuergerät zu verbinden: 1) direkt den nativen COM Port des PC mit dem USART (über Pegelwandler) des Steuergerätes verbinden 2) mangels nativem COM Port ein USB-auf-Seriell Kabel verwenden (virtueller COM Port) 3) über Bluetooth (SPP), ebenfalls virtueller COM Port In allen 3 Fällen sieht die Windows Anwendung nur einen COM Port und weiß ja nicht, was sich dahinter befindet. Nun mein Problem: Bei Lösung 1) geschieht die Übertragung auch wirklich in ca. 1ms. Bei Lösung 2) brauchen die 11 Bytes schon immerhin 10ms. Zwischen jedem Byte ist eine Pause von fast 1ms! Und bei Lösung 3) dauert der Vorgang schon 30-40ms! Rießige Pausen zwischen den Bytes... Gemessen wurde das mit einem Logiktester (Intronix Logicport). Normalerweise würde ich jetzt die Schuld auf die Treiber schieben, die der Anwendung den COM Port vorgaukeln. Allerdings hab ich einen Gegenversuch mit HTerm gemacht, indem ich den Befehl per Hand eintippe und abschicke. In allen 3 Fällen dauert die Übertragung 1ms. Also kanns der Treiber ja doch irgendwie... Wisst ihr vielleicht ob man da was dagegen tun kann? Gibt es alternative Treiber für Bluetooth Dongles und USB-Seriell Adapter? Oder kann man im System irgendwas konfigurieren? Immerhin klappts ja bei HTerm... Ist bisl ärgerlich soviel Zeit für den Request zu verbraten wenn die Verarbeitung in der ECU und die Antwort zusammen nur ca. 3-4ms benötigen... Viele Grüße, Karlo
