Forum: Mikrocontroller und Digitale Elektronik Serielle Kommunikation zwischen uCs


von Eugen W. (ewiebe1)


Lesenswert?

Hallo Leute,
ich brauche eure Hilfe.

Ich möchte ein Prüfgerät entwickeln.
Dieses soll bestehen aus:
1. PC mit LabView oder C# Programm und
   a)Messkarte für Digital I/Os
   b)Messkarte für Analoge IN und OUT
   c)Wandler von Seriell auf RS485 (hier sitzt der 485 Master)

2. einem 19" Rack, in den viele Einschubkarten reinpassen, alle hinten 
verbunden über einen RS485 Bus (z.B. so: 
http://www.wiki.elektronik-projekt.de/_media/mikrocontroller/2wirers485bus.gif)
Die Karten können folgende Messungen am Prüfling durchführen:
   a) Spannung
   b) Widerstand
   c) ...
(Jede Karte hat ihre eigenen Aufgaben)


Auf jeder dieser Karte sitzt also ein uC(PIC oder Atmel) und einem 
Wandler auf RS485. Der PC (oder besser gesagt, das Programm auf dem PC) 
soll das ganze koordinieren.

Was ich kann:
LabView oder C# Programm schreiben

Was ich brauche:
Ein Protokoll, damit die einzelnen Karten sich untereinander 
verständigen können. Welches Protokoll würdet ihr empfehlen? Es müsste 
ja ein serielles Protokoll sein, bestehend aus
MSG_ID | SenderAddr | ReceiverAddr | DataLen | Data .. Data | CRC (XOR 
oder 16)

Kennt jemand eine Implementierung von solch einem Protokoll in C?
Wie würdet ihr das ganze angehen?
Danke

von RS485 (Gast)


Lesenswert?

Moin

such mal nach "Modbus". Das Protokoll läuft auch über RS485.

(http://de.wikipedia.org/wiki/Modbus)


mfg

von Coder (Gast)


Lesenswert?

Wenn es so passt mach es doch so wie du es beschrieben hast. Das wäre 
mit Abstand am einfachsten.

von Eugen W. (ewiebe1)


Lesenswert?

Kennt jemand eine gute und zuverlässige C-Implementierung von Modbus 
(umschaltbar zwischen ASCII/RTU/TCP)
für Slaves, die auf uC laufen sollen.
Hier hab ich eine gefunden, aber ob die passt und stabil läuft?
http://www.google.de/codesearch#U9-i5aKJQvM/trunk/components/net/freemodbus/modbus/rtu/mbrtu.c&type=cs


D.H. Auf dem PC lasse ich Modbus dann über LabView laufen (es gibt unter 
http://sine.ni.com/nips/cds/view/p/lang/de/nid/201711 eine frei 
downloadbare Bibliothek für LabView)

Jetzt brauche ich noch die Implementierung auf uC, aber es muss
1. zuverlässig sein
2. frei für kommerzielle Zwecke (oder gewisse geringe Lizenzkosten)
3. als source code vorliegen
4. in einem einfachen 8bit uC (Vorzugsweise PIC oder ATMEL, evtl STM8) 
verwendet werden können (es soll ja nur einfache Modbus-Befehle 
auswerten können: z.B. "Karte 17, Schalte die Frequenzmessung an..." 
oder "AN ALLE, Sofort alle Mess-Aktivitäten abbrechen" ...)

Danke.

von RS485 (Gast)


Lesenswert?

ich selbst hab schon mit Modbus gearbeitet, musst aber nur den Master 
auf 8bit-cpu implementieren. War eigentlich nicht weiter tragisch. Das 
Protokoll is wirklich leicht aufgebaut.

Aber schau mal auf diese Seite da gibts sogar Implementierungen für AVR:
http://www.freemodbus.org/


mfg

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.