-
        

Ergebnis 1 bis 4 von 4

Thema: Schnelle serielle Bitfolge einlesen

  1. #1

    Schnelle serielle Bitfolge einlesen

    Anzeige

    Hallo,

    ich möchte gerne ein serielles Signal mit dem Pc auslesen.
    Die Bitfolge besteht aus 60 Bits, deren Bedeutung mir vollkommen klar ist. Zusätzlich beginnt jede neue Bitfolge mit einer Adresse die immer gleich ist.
    D.H. wenn ich die Bitfolge am Rechner hätte, könnte ich sie einfach auswerten.

    Meine Idee war jetzt, das Signal mit Max232 erstmal pegelmäßig anzupassen und anschliesend auf die serielle Schnittstelle zu leiten.
    Allerdings ist das ja dann keine "regelkonforme" RS232 Übertragung.

    Ich müsste den Zustand der Leitung also schnell genug hintereinander abfragen um die Bitfolge mit dem Rechner auslesen zu können. Genau das ist für mich ein Problem, da ich es mit Windows machen möchte und sämtliche dlls (io.dll; port.dll...) zu langsam dafür sind. Windows ist ja leider kein Echtzeitbetriebssytem.
    Der Takt der die Bits bei jeder aufsteigenden Taktflanke erzeugt, beträgt 38khz.

    Hat Jemand eine Idee wie man das verwirklicht?
    Evtl. ein µC mit UART der dann immer schön serielle Daten verschickt?

    Bin um jede Hilfe dankbar

    mfg Daniel

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970

    Re: Schnelle serielle Bitfolge einlesen

    Hallo -Ice- !

    Zitat Zitat von -Ice-
    Evtl. ein µC mit UART der dann immer schön serielle Daten verschickt?
    Das ist nicht schlechte Idee, aber nur wenn zwischen den 60-bittigen Datensätzen genug lange Pausen gibt, während dessen sie "regelkonform" an die RS-232 übertragen werden können.

    Sonst bleibt ewentuell LPT übrig, wo man ein Eingangspin (10,11,12,13 bzw.15) des Registers 379h schnell abtasten kann. Ob es unter Windows möglich ist, weiss ich nicht, da ich es noch unter DOS in ASM programmiert habe.

    MfG

  3. #3

    Re: Schnelle serielle Bitfolge einlesen

    Zitat Zitat von PICture
    Hallo -Ice- !

    Zitat Zitat von -Ice-
    Evtl. ein µC mit UART der dann immer schön serielle Daten verschickt?
    Das ist nicht schlechte Idee, aber nur wenn zwischen den 60-bittigen Datensätzen genug lange Pausen gibt, während dessen sie "regelkonform" an die RS-232 übertragen werden können.

    Sonst bleibt ewentuell LPT übrig, wo man ein Eingangspin (10,11,12,13 bzw.15) des Registers 379h schnell abtasten kann. Ob es unter Windows möglich ist, weiss ich nicht, da ich es noch unter DOS in ASM programmiert habe.

    MfG
    Hallo PICture,

    danke für deine Antwort. Ich werde es mit einem Microcontroller probieren.
    Dazu habe ich mir ein myavr Experimentier Board gekauft (Mit Atmega 8 drauf).
    Ich werde versuchen den USART in Gang zu kriegen um die Platine mit der seriellen Schnittstelle zu verbinden.
    Die Bitfolge steuert übrigens einen LCD-Treiber an. Eine Aktualisierung der Daten alle Millisekunde, oder noch seltener, reicht mir deshalb. Der Displayinhalt vom LCD (von dessen Controller ich die Bitfolge abgreife) ändert sich im Allgemeinen nicht so schnell.

    Später möchte ich das, was am LCD angezeigt wird, auch auf meinem PC Bildschirm sehen.

    Habe leider noch keine Vorstellung wie ich das genau angehen soll. Es ist bei mir das erste Mal mit Microcontrollern.
    Ich könnte mir vorstellen einen Timerinterrupt zu programmieren, der alle 20ms zum Beispiel 120 bits sammelt und das Paket dann überträgt. Dann müsste ich nicht prüfen, ob die Startaddresse gerade kam und hätte pro Übertragung mindestens eine vollständige Bitfolge (Startadresse +Nutzbits) an den Pc geschickt.

    Nur wie ich die Bits überhaupt einlesen soll ist mir ein Rätsel. Der AVR hat ja nur 8bit Register.
    Ob ich evtl. Jedes Bit einzeln an den PC übertragen kann?

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Ich bin ein PIC benutzer, deshalb kann ich dir bei AVRs nicht praktisch helfen.

    Bei serieller Kommunikation lassen sich einzelne bits nicht ubertragen, es geht immer byteweise. Du kannst aber wahrscheinlich die 60 bit + 4 leere als 8 bytes sogar als 1 byte in jeder Pause (also jede ms) an PC schicken, dort zusammensammeln und danach auwerten.

    Bei dem Empfang kannst Du die Einzelne Bits in bestimmte acht 8-bittige Register des AVRs kopieren und nach der Kompletierung, z.B. wie oben beschrieben, an PC senden.

    MfG

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •