www.mikrocontroller.net

Forum: PC-Programmierung Bitstreams über serielle Schnittstelle am PC einlesen


Autor: Sebastian B. (sebi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend/Morgen oder wie auch immer!
Ich hab hier ein kleines Transceiver-Modul, dessen Evolution-Board mir
größere Bit-Happen (~20Bit) auf einmal auf die RS232-Leitung richtung
Computer losjagt mit ungefähr 115kHz.
Gibt es irgendeine Möglichkeit diese Bitstreams zu erfassen? Ich denke
da an ein Programmchen in Visual C++. Hab hierzu gegoogelt, allerdings
nur ReadFile/WriteFile() gefunden, die mir auch nicht wirklich weiter
helfen, da sie ja RS232-mäßig arbeiten...
Oder soll ich doch noch einen Microcontroller und MAX232 mit dieser
Aufgabe betrauen?

Grüße, Sebi

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Daten kommen also nicht kompatibel zur 'normalen' seriellen
Schnittstelle/RS232 an?

Autor: MasterFX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der MAX232 macht nicht anderes als die Pegel anzupassen. Um zu sehen was
da kommt musst du schon an nen uC oder eben an nen Rechner mit mit
Terminal.
Da du geschrieben hast:
>>auf einmal auf die RS232-Leitung richtung
Computer losjagt mit ungefähr 115kHz.
Gehe ich mal davon aus, dass die Pegel schon nicht mehr TTL sind. Und
die 115kHz kommen von den 115200kbit/s (ist eben RS232). Also an den
Rechner klemmen und Terminal-Programm starten, dann siehst du auch die
Daten.

Autor: Sebastian B. (sebi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgen!
Sorry, hab mich etwas lax ausgedrückt:
Die Daten kommen als RS232-Pegel auf die Leitung (kann ich mitm Oszi
nachmessen). An die 115200bit/s bzw. baud dachte ich auch schon, nur
kann ich im Terminalprogramm am Computer nur wilde Zahlen erkennen. Das
liegt vlt. daran, dass keine Start/Stop-Bits gesendet werden, und die
Daten daher falsch interpretiert werden. Werds jetzt aber nochmal
probieren...
Wen's interessiert: Hab rausgefunden das man mit DeviceIOControl()
(statt C-Fkt. ioctl()) RTS/CTS usw. setzen und lesen kann, sieht aber
kompliziert aus, das dann in Bits umzuwandeln (ständiges Pollen, clk
rekonstruieren...)
Kennt jemand vlt. ein Terminal, das das schon kann??

Schönen Tag noch Sebi

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist mit der UART-Hardware nicht möglich.
Der Ansatz, eine Art Software-UART zu veranstalten ist unter einem
Betriebssystem mit der geforderten Bitrate erst recht gar nicht
möglich, da mit einem Usermode-Programm allenfalls im Millisekundentakt
irgendwelche Peripheriezugriffe durchgeführt werden können.

Du wirst hierfür einen anderen Ansatz verwenden müssen und nicht ohne
zusätzliche Hardware auskommen.

Gibt es denn nur das Daten-, oder auch ein Taktsignal? In letzterem
Falle solltest Du Dir mal die programmierbare serielle Engine im
FT2232C näher ansehen, mit der lassen sich Schnittstellen wie I²C und
SPI betreiben.

Autor: Sebastian B. (sebi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hei,
hier bin ich nochmal. Ihr hattet Recht, mit einem Terminal-Programm
gehts (hatte Probleme mit ein paar Freeware-Terminals, aber mit
realterm gehts).
Wen's interessiert: Es ging um das Auslesen eines nRF2401
Evolution/Configuration-Boards von Nordic Semiconductors. Die Daten
werden in folgendem Format gesendet:
0xd1 0x08 [package_size in bytes] [Data 0] [Data 1] .. [Data
package_size]
gesendet wird mit 115200 bps, 8 Bits Daten, keine Parity, kein
Handshake, 1 Stop-Bit... (naja was sonst :-) )

Viele Gruesse und Danke fuer eure Hilfe,
 Sebi

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist es ja doch kein Bitstrom, sondern 'ne normale asynchrone
serielle Übertragung.

Ich gratuliere zur Problemlösung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.