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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.