Forum: Mikrocontroller und Digitale Elektronik 2 digitale Eingänge via RS232 übermitteln


von Ruedi A. (alruma)


Lesenswert?

Hallo,
Ich möchte 2 digitale Eingänge via RS232 übermitteln.

Vorgeschichte:
Es existiert ein sehr gut funktionierendes Zeitmessprogramm, das von 
einer externen Zeitmessuhr via RS232 die Information K1 (start) und die 
Zeit , oder K2 (ziel) und die Zeit, übermittelt bekommt. Das Programm 
holt diese Informationen via Interrupt von der Schnittstelle und 
verarbeitet sie. Da ich dieses Zeitmessprogramm unbedingt 
weiterverwenden muss und will, ist die Kommunikation via RS232 ein Muss.

Ziel:
Nun möchte ich auf die externe Zeitmessuhr verzichten und die interne 
Zeit des Laptop dazu nutzen. Dazu brauche ich ein Interface, das 2 
digitale Eingänge hat (K1 und K2) sowie eine serielle Schnittstelle 
RS232 (9600 Baud N81). Wenn einer der Eingänge von +5V (log. 1) auf 0V 
(log. 0) wechselt, muss via RS232 sofort ASCII 1 für K1 oder ASCII 2 für 
K2 gesendet werden.
Das Zeitmessprogramm ist soweit angepasst, dass auf einen Interrupt der 
ser. Schnittstelle das gesendete Datenbyte ausgelesen wird. ASCII 1 wird 
einer Startzeit, und ASCII 2 einer Zielzeit zugeordnet und 
weiterverarbeitet.
Wichtig ist noch folgendes: Wenn gerade ein Ereignis (ASCII 1 oder ASCII 
2) via RS232 übermittelt wird, und währenddessen der andere Kanal (oder 
der gleiche nochmals) anspricht, so müssen diese Ereignisse 
anschliessend raschmöglichst auch übermittelt werden.

Vielen Dank für Hilfe und Tipps zur Realisierung.
Gruss Ruedi

von Reinhard Kern (Gast)


Lesenswert?

Ruedi A. schrieb:
> .... Dazu brauche ich ein Interface, das 2
> digitale Eingänge hat (K1 und K2) sowie eine serielle Schnittstelle
> RS232 (9600 Baud N81). ...

Hallo Ruedi,

das geht mit jedem Microcontroller, auch mit einem im 8poligen Gehäuse: 
GND,VCC,2 x Quarz, K1,K2, TxD, dazu Reset wenn nötig. Den Quarz würde 
ich verwenden, um Problemen mit der Genauigkeit der Baudrate gleich aus 
dem Weg zu gehen, dazu brauchst du noch eine Stromversorgung und eine 
Umsetzung auf RS232C, z.B. MAX232 oder ähnliche (der macht auch die 
nötigen +- 10 V). Der Prozessor sollte ein UART haben, obwohl das auch 
per Software geht, ist aber mehr Arbeit. Natürlich geht auch ein 18 
poliger PIC oder Ähnliches, das ist kein Kostenfaktor, wenn du nicht 
Tausende davon brauchst.

Entscheidender ist, womit du das Programm erstellst (für die meisten 
gibt es kostenlose Software) und wie du den Chip programmierst. Für PIC 
und AVR gibt es preisgünstige Möglichkeiten, nur als Beispiel.

Gruss Reinhard

von Ruedi A. (alruma)


Lesenswert?

Hallo Reinhard,
Vielen Dank für die Info,
Ich habe gerade mit einem Lernpaket Arduino C (ATMega168) von meinem 
Sohn einen Versuch gemacht, und hat prima geklappt!!
Da mein Sohn jedoch für seine Diplomarbeit einen PIC18F13K50 einsetzen 
wird, werde ich dann seine HW für meine Zwecke "missbrauchen".

Ich bin wirklich total überrascht und erstaunt, wie komfortabel und 
einfach man mit solch "billigen" Dingern (nicht negativ gemeint) sofort 
tolle Projekte realisieren kann.

Gruss Ruedi

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
Noch kein Account? Hier anmelden.