serielle Kommunikation



  • Hallo!

    Ich moechte eine serielle Kommunikation zwischen zwei Rechnern
    aufbauen und dies Mittels ANSI-C implementieren.
    (spaeter soll mit einem Microcontroller kommuniziert werden)

    Nun fehlt mir dazu noch einiges an Wissen.
    Wie kann ich Fehler abfangen, muss ich ein Protokoll schreiben, dass
    zum Beispiel eine Checksumme vergleicht? Gibt's dafuer schon
    Bibliotheken? Oder kann ich die Paraty-Bits der Hardware direkt
    abfragen?

    Wie oeffne ich ueberhaupt bei Windows einen Stream zum COM1?
    (unter Unix wuesste ich bescheid)

    Bin fuer Quellcode-Bsp und Links zum Thema sehr dankbar,
    Marco



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ANSI-C und C++ kennen keine COM, LPT. Da sind immer Betriebssystem-Zusatzbibliotheken notwendig. Wäre also die erste Frage: Welches OS (Linux scheint es nicht zu sein)?
    Die zweite (Sub-)Frage: Wenn es Windows ist, ausschließlich 16- (W95/W98) oder auch 32-Bit Windows (W2K, WinNT, XP, ...)?
    Dritte Frage: Alles selber programmieren oder fertige Bibs/Tools verwenden?
    Und jetzt zu Deinen Fragen:
    Was verlangt der MC denn - kannst Du Dir das "Protokoll" selber raussuchen/erstellen, oder ist schon eins vorgegeben?
    Ist denn die Fehlerrate so hoch (Baudrate), dass eine extra Fehlerprüfung stattfinden muß oder macht das die jeweilige Applikation schon?
    Das Parity-Bit wird automatisch von der Hardware generiert und geprüft (16550-Chip). Abfragen kann man es natürlich.

    Mein Tip: Alles für W32 programmieren, das läuft dann auch unter W95/W98 (jedoch nicht unter DOS!). Die Daten in ein passendes Format und Packet packen und auf der Empfängerseite "durchzählen". Ist alles da, wird die Plausibilität der Daten von der Applikation geprüft. Protokoll braucht man erst, wenn es eine hohe Fehlerrate (z.B.: Telefon, Funk) oder sicherheitsrelevante Daten gibt. ZModem wäre hier nicht schlecht.

    Blackbird



  • Hi, das ist ja ein guter Anfang von dir.

    Als OS wird dann wohl Win32 dienen.

    Der Code (ausser COM-file) sollte ANSI-conform sein, da der
    Microcontroller auch in ANSI-C programmiert wird. Somit ist der
    Code dann weitgehenst uebertragbar.

    Welche Bibs/Tools sind dir denn dafuer bekannt?
    Kann mir ja mal n' paar Ideen holen.

    Sicherheit: Die uebertragenen Informationen muessen korrekt sein.

    Das Parity-Bit wird automatisch von der Hardware generiert und geprüft (16550-Chip). Abfragen kann man es natürlich.

    Ja, aber was passiert, wenn ein Parity-Fehler erkannt wurde. Wird dann ein
    Interrupt ausgeloest? Kann ich das Interrupt-Bedienprogramm selber dafuer
    schreiben?

    Marco


Anmelden zum Antworten