damals, als wir noch mit dem Modem und Terminalprogramm ins Netz gingen, da war das irgendwie so, dass man zum Dateien herunterladen xmodem bis zmodem angeworfen hatte, dann irgendwie den Dateinamen eingab und dann gewartet hatte, bis die Datei da war. Dann gings im Terminal weiter. So
Befehlen machen und dann bei Gelegenheit die gesammelten Daten in eine
Kommt drauf an, was dein lieblings Programmiertool ist.
senden. Der macht das mit Lazarus.
initialisiert und dann in einem Timer nachschaut, ob Daten im Puffer liefgen die man auslesen und auswerten kann. Dazwischen sendet man dann Daten raus. Empfangene Daten werden in einem Textfenster (Memo) angezeigt.
Die meisten Terminalprograme haben Option "Mitschreiben in File".
ASCII schicken. Ich habe bei z.B. Temperaturmessungen meist mehrere Sensoren, also pro Zeile mehrere Zahlen. Mathcad oder Excel haben wenig Probleme solche .txt-Files zu lesen.
Xmodem ist simpel:
formatting link
XMODEM wurde bei den EnergyMicro ARM-Controllern als Bootloader
zum Laufen gebracht. D.h. inkompatible Varianten sind wohl nicht selten.
Bis das gesendet, empfangen und vom Gegenseite ausgewertet ist, sind
oder einen USB/seriell-Umsetzer in der Leitung sogar mehrere hundert Byte. Davon abgesehen erfordert XMODEM eine transparente Verbindung, Software-Handshake kann also nicht verwendet werden.
Ich denke, es gab keine formalen Beschreibungen, nur Beispielcode?
Nein, Erfahrungswert. Ich hatte damals beruflich etliche Jahre mit Mehrfach-seriellen Karten in PCs zu tun, die in der konkreten Anwendung
24/7 mit mehreren gleichzeitig aktiven Ports stabil laufen mussten.
Handshake nicht immer rechtzeitig kam.
Mehr ging das erst, wenn man die 8250 durch 16450 (mit FIFO) tauschte. Die 8250 waren einfach zu primitiv, luden selbst Hardware-Handshake der CPU auf, und das verkorkste Interruptsystem des PC mit seinen vollkommen
Moderne Mikrocontroller sind relativ unproblematisch. Selbst einfache
8Bitter wie PIC und AVR reagieren so schnell auf Interrupts, das man problemlos einen FIFO in Software realisieren kann, der noch ein paar Bytes puffert, bis der Sender das XOFF verdaut hat.
XMODEM hatte viele Probleme und war eigentlich fast schlagartig tot,
Der 16450 unterscheidet sich nicht wirklich vom 8250. Du meinst den
16550, speziell in der 'A'-Version (wenn er von National war, von denen stammt das Design). Die ohne A hatte noch einen kleinen Bug bei dem
Irgendwo hab ich noch zwei 16C550 von Goldstar rumliegen...
nicht mehr wirklich ein Problem. Ideal war ein IRQ-Threshold von 8
Bytes im FIFO waren. Damit hatte man weitere 8 Bytes Zeit die einzusammeln bevor es zum Datenverlust kam. Wenn nicht genug Bytes einliefen um den Threshold zu erreichen gab es einen Timeout von 3 Bytes
den 16550 nicht hirntot implementiert war hatte er keine Probleme mit
Hab ich mal in Assembler implementiert. Kann aber trotzdem problematisch
Millisekundenbereich haben will. Da muss man den FIFO dann schon
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.