AVR MSR-System

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Marcus Stangl

Clip image003.jpg


Einleitung

Hinter dem Titel AVR MSR-System verbirgt sich das multifunktionale Mess-,Steuer und Regelsystem: ,CombiConceptXM1.x'. Die Wortschöpfung setzt sich aus 2 wichtigen Grundeigenschaften des Systems, dem kombinierten (,Combi') Zusammenspiel von zwei µ-Controllern - ATmega128 & ATmega644 und dem flexiblen Funktions-,und Ausbaukonzept (,Concept') zusammen. Die zahlreichen Schnittstellen, wie: I2C, RC5, DCF77, analoge/digitale Ein-,Ausgabe und die mächtigen Kommunikationsmodule (Wireless/RS485)stellen die Verbindung zur Außenwelt dar und ermöglichen u.a. dadurch den vernetzten Betrieb mehrerer Systeme in dezentraler Struktur. Jedes CombiConceptXM1.x System verfügt über, der Ausbaustufe entsprechende Fähigkeiten die eine eigenständige Existenz ermöglichen. Weitere in die Netzstruktur eingebundene Systeme können jedoch beliebige Daten, wie z.B: Betriebszustände, physikalische Meßwerte, frei definierbare Speicherbereiche untereinander austauschen. Außerdem besteht die Möglichkeit eines vollständigen ,Remote'-Zugriffes auf ein anderes System.


Bedienung

Die Bedienung des CombiConceptXM1.x wurde durch die Integration eines GLCD (128x64 Pixel), Drehencoders und eines IR-Empfängers realisiert. Als IR-Fernbedienung kann eine beliebige, RC5-kodierte Variante angelernt werden. Die Benutzeroberfläche des GLCD umfaßt eine Vielzahl von Auswahlmenüs und Infotexten. Mittels Drehencoder (oder IR-Fernbedienung) kann der gewünschte Menüpunkt mit der ,Cursorbox' hinterlegt und ausgewählt werden.Das Bedienkonzept unterscheidet zwischen frei zugängiger Benutzer-, und abgesicherter (PIN) Administratorebene. Die Benutzerebene erlaubt die Ausführung, jedoch nicht die Änderung von Systemfunktionen - das kann nur auf Administratorebene geschehen. Dies ist zwingend erforderlich da vermutlich nicht jeder Benutzer über die entsprechenden Systemkenntnisse verfügt und durch unstrukturierte Eingaben auf Administratorebene eine Instabilität oder den Ausfall des Systems bewirken könnte.



Hardware

Das CombiConceptXM1.x System ist auf einem doppelseitig bestückten, 95x55mm großen Board untergebracht. Außer den beiden ATmega's - dem mega128(Systemcontroller)& dem mega644 (Interfacecontroller) befinden sich die beiden Power-Port Treiber (ULN2803), der I2C-Bustreiber (P82B715), ein RS485-Transceiver (SN75LBC176), UHF-Transceiver (RFM12), das GLCD (CFAG12864BT… KS0107/0108 kompatibel)sowie weiteres ,Hühnerfutter' auf dem Board. Die beiden µ-Controller sowie der RFM12 sind über die SPI-Interfaces und 3 weiteren Steuerleitungen verbunden. Die Ansteuerung des GLCD, Auswertung des Drehencoders, Decodierung des IR-Signals (RC5), sowie die unteren Kommunikationslayer werden vom Interface-Controller erledigt. Den Rest, das eigentliche Messen, Steuern und Regeln, sowie zeitkritische Funktionen: Dekodierung des DCF77 Signals, Phasenanschnittsteuerung, Delays, Timer, aber auch eventabhängige Funktionen u.v.m erledigt der Systemcontroller. Wie in der Einleitung erwähnt gestattet das CombiConceptXM1.x unterschiedliche Ausbauvarianten. Bei Minimalausstattung kann auf GLCD, Drehencoder, IR-Empfänger, RS485-,I2C-Treiber und ggf. auch auf die beiden Power-Port Treiber verzichtet werden. Wichtig hierbei ist, daß keine weiteren Modifikationen an Hard-,oder Software durchgeführt werden müssen - die Erkennung fehlender Komponenten erfolgt automatisch. Die Bedienung einer Minimalausführung kann natürlich nur noch per Remote-Zugriff erfolgen.

Clip image002.gif

Software

Die Software ist komplett in Assembler erstellt. Die Strukturen der System-,Interface Software unterscheiden sich grundsätzlich. Während die unterschiedlichen Module der Systemsofware in ,Timeslots' einbettet sind und zyklisch ausführt werden, basiert die Interfacesoftware auf prozeduraler Abarbeitung vorhandener Softwarebausteine die im Bedarfsfall von Interrupts unterbrochen wird. Die Programmierung der ,Firmware' erfolgt, entgegen früherer JTAG-Versionen über die SPI-Interfaces - den JTAG-Pins sind nun anderen Aufgaben zugewiesen.


Allgemeine Hinweise

Die Hard-,und Software wurde mit Ausnahme des RC5-Decoders (modifiziert - jedoch aus einem alten ELRAD-Artikel entnommen)komplett selbst entworfen. Die Boardentwicklung erfolgte mit Target3001, der Sourcecode wurde mit AVR Studio 4.1 erstellt und die Programmierung der Firmware erfolgte mit dem genialen Tool PonyProg2000 V2.07c. Das CombiConceptXM1.x Board ist mit Standard-Bauelementen bestückt die gut und günstig erhältlich sind - die Bezugsquellen gebe ich gerne auf Anfrage bekannt.


Weiterentwicklung

Ab Version 1.9 (Januar 09') können der Interface-, als auch der Systemcontroller drahtlos programmiert werden. Hierfür habe ich den beiden Controllern entsprechende Bootloader implementiert, sowie die bestehende Firmware modifiziert. Das hierfür entwickelte Programming-Interface wird lediglich an die COM-Schnittstelle eines PC's angeschlossen - die integrierte Terminalsoftware kommuniziert problemlos mit entsprechenden Terminalprogrammen. Die Programmierzeit liegt bei ca. 36Kbyte / min.

Weitere Änderungen gehen aus der, in Kürze verfügbaren Überarbeitung der Projektbeschreibung hervor.

Downloads

  • Schaltplan & Board als PDF: [6][7]
  • Schaltplan & Board in Target3001: [8]
  • System Sourcecode: [9]
  • Interface Sourcecode: [10]
  • Configuration & Fuse Settings: [13]
  • Programmieradapter: [14]