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
Die Daten kommen also nicht kompatibel zur 'normalen' seriellen Schnittstelle/RS232 an?
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.
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
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.
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
Dann ist es ja doch kein Bitstrom, sondern 'ne normale asynchrone serielle Übertragung. Ich gratuliere zur Problemlösung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.