PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 - Messwert abfragen



happyspider
04.03.2006, 22:02
Hallo,

kennt Ihr eine einfache Möglichkeit einen Messwert, der als BCD -Code vorliegt für die RS232 - Schnittstelle aufzubereiten?

Die Pegelanpassung mit MAX232 habe ich schon entdeckt, habe auch schon mal mit meinem c# / VS2005 Code die Steuereingänge ausgelesen, aber ich suche noch den "mach mal aus meinem Singnal eine serielle Kommunkation" Part. (Ich glaube das läuft unter dem Thema UART)

Danke,

Mathias

kalledom
04.03.2006, 22:41
Hallo Matthias,
was möchtest Du aufbereiten ?
Du kannst die Werte als Binär- oder ASCII-Zeichen übertragen. ASCII benötigt naturgemäß mehr Bytes als eine Binärübertragung. Beides hat Vor- und Nachteile.
Ein Datenprotokoll solltest Du bestimmen, z.B. mit einem Byte als 'Startzeichen' beginnen, die Anzahl der zu übertragenden Bytes festlegen und evtl. eine Checksumme zum Schluß senden.

happyspider
05.03.2006, 22:06
ok, du hast mir Mut gemacht. Ich versuche es mal "zu fuss".
Wenn es trotzdem noch ein sample irgendwo gibt, dannn immer her damit.
Mathias

kalledom
05.03.2006, 22:48
Die ASCII-Übertragung ist recht einfach und kann mit jedem Terminal-Programm 'kontrolliert' werden.
Als Start-Byte wählst Du ein ASCII-Zeichen, daß Du sonst nicht brauchst.
Damit muß der 'Empfänger' immer nur auf dieses Startzeichen warten.
Es gibt da schon 'vorgefertigte' Zeichen: STX = Start of Text, ETX = End of Text, usw. Schau Dir mal eine ASCII-Tabelle an.
Dazwischen wandelst Du die zu übertragenden Daten in Nible .... + 30hex = 30hex...39hex = '0...9' (wenn größer 39hex, dann + 7 = 41hex...46hex = 'A...F') und schickst die raus.
Du kannst auch nach dem STX eine feste Anzahl von ASCII-Zeichen ausgeben, dann wird das ETX gespart.
Ich selbst verzichte auch auf ETX und sende am Ende Return und LineFeed; dann zeigt jedes Terminal-Programm die Daten sauber untereinander an; sie können auch direkt gedruckt werden (mit einem seriellen Drucker versteht sich).
Wenn die Daten nicht besonders wichtig sind, kannst Du auch auf eine Checksumme verzichten. Am 'Empfänger' können die übertragenen Zeichen und die daraus entstehenden Werte auf Sinn oder Unsinn geprüft und evtl. verworfen werden.