Serielle Schnittstelle überwachen

OP #3768624
Lesenswert?

Hallo zusammen,

ich möchte mit meinem Windows XP Rechner Daten auf der seriellen 
Schnittstelle (10.400 kbps) mitloggen. Das Problem ist, dass es zu 
unkontrollierten Stromausfällen kommen kann, nach denen der Rechner neu 
booten muss. Das Booten dauert locker 60s - zu lange.

Meine Idee zur Abhilfe war erst, auf MS-DOS statt auf XP zu setzen. 
Leider habe ich entdeckt, dass der dortige "mode"-Befehl nur 
vorkonfigurierte Baudraten unterstüzt und 10.400 kbps leider nicht dabei 
sind.

Anders ist es bei der Dos-Box unter Windows XP - dort kann ich 10.400 
kbps einstellen. Also müsste ich XP daz bringen, im DOS-Modus zu 
starten. Das war bei den alten Windows Versionen ja noch möglich. Bei XP 
aber leider nicht mehr.

Meine nächste Idee wäre jetzt, eine Startdiskette zu erstellen und 
diese, mangels Diskettenlaufwerks, per USB booten zu lassen... Aber ich 
bin mir nicht sicher, ob ich mich da nicht verrenne...


Deshalb meine Frage an Euch: Habt ihr eine einfachere Lösung? Ziel ist 
es, die serielle Schnittstelle mit 10.400 kbps zu überwachen 
(=Empfangsdaten in Datei schreiben) und diesen Zustand nach einem evtl. 
Stromausfall vollautomatisch und schnell wieder einzunehmen.

Ich freue mich auf Eure Antworten!
Steffen
Gast #3768642
Lesenswert?

es gibt keine dos-box unter xp. und ältere versionen von windows liessen 
sich auch nicht in einem "dos-modus" hochfahren. es wurde jediglich das 
zugrunde liegende dos gebootet und windows nicht gestartet.

probiere es mal mit freedos.
Gast #3768649
Lesenswert?

Steffen Hausinger schrieb:
> Daran habe ich auch gedacht, aber leider kenne ich mich mit Linux
> überhaupt nicht aus :-( Ist es realistisch, das als Anfänger innerhalb
> von 1-2 Abenden hinzubekommen?

ein Linux bootet auch nicht viel schneller als ein Windows. Bau einen 
SSD ein und schon bootet Linux und Windows in 5-7 Sekunden.

Oder kaufe eine USV.
Persönliche Seite #3768651
Lesenswert?

Steffen Hausinger schrieb:
> Anders ist es bei der Dos-Box unter Windows XP - dort kann ich 10.400
> kbps einstellen.


Das ist keine "Dos-Box", das ist die Windows-Eingabeaufforderung. Die 
hat mit DOS exakt gar nichts zu tun, daher sind Deine nachfolgenden 
Vermutungen über Bootdisketten etc. auch nicht zielführend.

Wenn Du Dir tatsächlich den Betrieb mit DOS antun willst, musst Du nur 
die Schnittstelle selber "von Hand" konfigurieren, statt auf die 
beschränkten und völlig antiquitierten Funktionen des BIOS zur 
Ansteuerung der seriellen Schnittstelle zuzugreifen.

Das empfiehlt sich sowieso, weil die noch nicht mal eine gepufferte 
Übertragung hinbekommen (sprich: interruptgesteuertes Senden/Empfangen).

Und wenn Du die UART direkt ansprichst (also mit I/O-Zugriffen die 
verschiedenen Register programmierst), dann kannst Du auch beliebige 
Baudraten einstellen, sofern diese durch einen ganzzahligen Teiler aus 
115200 erzeugt werden können.

Das ist mit Deinen 10400 Baud übrigens nicht ohne Baudratenfehler 
möglich; bist Du Dir dessen bewusst?

Die Hardware der PC-Schnittstelle erzeugt die Baudrate aus einem Takt 
von 1.8432 MHz, der durch 16 geteilt die höchste erreichbare Baudrate 
(die oben erwähnten 115200 Baud) erzeugt, und jede niedrigere durch 
einen ganzzahligen Teiler davon.

Die physikalisch erzielbare Baudrate beträgt etwa 10473 Baud (bei einem 
Teiler von 11) und weicht damit um etwa ein Prozent von der gewünschten 
Baudrate ab.


Natürlich bist Du dann auf "echte" Onboard-Schnittstellen angewiesen und 
kannst weder USB-Seriell-Adapter noch Schnittstellen auf PCI/PCIe-Karten 
verwenden.


Was spricht gegen die Verwendung einer USV?
OP #3768717
Lesenswert?

Ich werde heute Abend FreeDOS ausprobieren. Die Alternativen mit einer 
USV (oder einem Laptop - kommt ja aufs Gleiche hinaus) ist charmant, 
aber nicht rechtzeitig darstellbar. Ich habe nur 1-2 Abende.

Der UART-Teiler sollte so passen, da es unter Windows bereits 
funktioniert. Dennoch danke für den Hinweis!
OP #3768964
Lesenswert?

Rufus Τ. Firefly schrieb:
> Hast Du denn schon eine Software, die die UART ansteuert?

Ich dachte, mit "mode" konfiguriere ich die Schnittstelle und mit dem 
Umleitungsoperator leite ich den eintreffenden Datenstrom in eine Datei 
um. Geht das so nicht? Wie gesagt, es geht nur ums loggen. Es wird 
nichts gesendet.

Falls das so nicht klappt, danke für den Tipp mit Telix!
Persönliche Seite #3768988
Lesenswert?

Steffen Hausinger schrieb:
> und mit dem
> Umleitungsoperator leite ich den eintreffenden Datenstrom in eine Datei
> um. Geht das so nicht?

Das geht nur mit reinem Text; wenn da Binärdaten kommen, ist mit dem 
ersten Auftreten eines Ctrl+Z die Aufzeichnung beendet.

Ein richtiges Terminalprogramm ist da eindeutig zu bevorzugen; wobei zu 
prüfen wäre, ob Telix auch Nicht-Standardbaudraten zulässt.
Das ist bei DOS-Terminalprogrammen durchaus unüblich, und ich kenne 
keines (mehr), bei dem das geht (ist aber auch schon über 20 Jahre her, 
daß ich mir DOS-Terminalprogramme angetan habe).
Gast #3769041
Lesenswert?

Steffen Hausinger schrieb:
> mit dem
> Umleitungsoperator leite ich den eintreffenden Datenstrom in eine Datei
> um.

Das gibt fürchte ich ein Problem mit dem Ende - die Aufzeichnung wird 
beendet, wenn ein Ctrl-Z empfangen wird.

Telix: kann alles, aber wahrscheinlich keine 10400 Baud, das gibt DOS 
nicht her und Programme wie Telix oder Procomm sind recht ordentlich 
programmiert, gehen also nicht direkt an die Hardware.

Georg
Persönliche Seite #3769420
Lesenswert?

Georg schrieb:
> Programme wie Telix oder Procomm sind recht ordentlich
> programmiert, gehen also nicht direkt an die Hardware.

Oh, und ob die das tun. Unter DOS gibt es keine brauchbare Unterstützung 
der seriellen Schnittstellen; wenn man vernünftig mit denen umgehen 
möchte und auch noch Baudraten jenseit der 19200 Baud nutzen will, dann 
muss man die unter Umgehung der jämmerlich primitiven BIOS-Routinen 
direkt ansprechen. Die BIOS-Routinen (die auch von DOS genutzt werden) 
kennen noch nicht einmal gepuffertes Senden/Empfangen von Daten, ganz zu 
schweigen von den Hardware-FIFOs neuerer Schnittstellenbausteine 
(16550).
OP #3769898
Lesenswert?

Das Steuerzeichen Ctrl-Z... nicht schlecht, daran hab ich überhaupt 
nicht gedacht! Dann klappt das mit den Bordmitteln von DOS also nicht 
zuverlässig.

Ich hab gestern Abend ein paar Dinge erfolglos ausprobiert und mich 
heute Morgen dann dazu entschieden, das ganze mit Windows und Makros zu 
lösen. Bleiben die 60s Totzeit - ich habe in meinem Bekanntenkreis aber 
einen Laptop mit ausreichend kräftigem Akku auftreiben können. Ich 
hoffe, das reicht.

Herzlichen Dank für alle Tipps!!
Steffen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren