Serielle Kommunikation zwischen uCs

OP #2373317
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
OP #2373365
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren