Schaltungsanordnung und Verfahren zur Speicherplatzverwaltung und zur Abarbeitung von Anwenderprogrammen in Kleinsteuerungen
Die vorliegende Erfindung betrifft eine Schaltungsanordnung zur Speicherplatzverwaltung und zur Abarbeitung von Anwenderprogrammen in Kleinsteuerungen gemäß dem Oberbegriff des Anspruchs 1 sowie Verfahren zur Abarbeitung der Anwenderprogramme unter Verwendung der erfindungsgemäßen Schaltungsanordnung. Kleinsteuerungen sind eine neue Gattung von speicherprogrammierbaren Steuerun- gen. Durch diese Art von Steuerungen wird das weite Feld der speicherprogrammierbaren Steuerungen sinnvoll ergänzt. Der Benutzer eines derartigen Gerätes ist in der Lage, kleinste Steuerungsaufgaben, wie die Steuerung von Rolläden, Lichtsystemen oder dergleichen, zu realisieren ohne eine große und teure speicherprogrammierbare Steuerung verwenden zu müssen. Die Hardware von herkömmlichen speicherprogrammierbaren Steuerungen besteht im wesentlichen aus drei großen Teilen: - einer Zentraleinheit, - einer Speichereinheit sowie - weiterer Peripherie und Schnittstellenanschlüssen. Die Zentraleinheit führt das entsprechende Anwenderprogramm mittels logischer Verknüpfungen, Berechnungen, Adressierungen u.s.w. aus. Der Speicher beinhaltet das auszuführende Anwenderprogramm sowie das Betriebssystem und ggf. weitere notwendige Daten. Die Peripherie und die Schnittstellen stellen der Zentraleinheit weitere Arbeitsmittel, wie Zeitbausteine, Zähler und dergleichen sowie Verbindungsmittel zur Außenwelt (Standardschnittstellen und/oder spezifische Schnittstellen) zur Verfügung. Dabei läßt sich der Speicher je nach Funktion in verschiedene Arten aufteilen: - Codespeicher zum Speichern des ausführbaren Codes des Betriebssystems. Dieser Speicher ist in der Regel als nichtflüchtiger Speicher in Form von ROM-, EPROM-, Flash- oder E2PROM-Speicher ausgebildet und muß von der Zentraleinheit in der Normalfunktion als Code gelesen werden. - Arbeitsspeicher zum zwischenzeitlichen Speichern von Daten während des Betriebs der Steuerung. Dieser Speicher muß daher als les- und beschreibbarer Speicher in Form eines RAM-Speichers ausgebildet sein.
- Anwenderprogrammspeicher zum Abspeichern des Anwenderprogramms. Dieser Speicher muß ebenfalls les- und beschreibbar ausgebildet sein. Ferner muß dieser Speicher nichtflüchtig oder zumindest als flüchtiger Speicher mit gepufferter Spannungsversorgung in Form eines RAM-Speichers ausgebildet sein.
Für Kleinsteuerungen ist aufgrund der eingeschränkten Funktionsvielfalt und des damit einhergehenden eingeschränkten Speicherplatzbedarfs häufig ein Mikrokontroller ohne den aufwendigen Peripherieaparat, wie er bei herkömmlichen speicher- programmierbaren Steuerungen notwendig ist, ausreichend.
Aus dem Stand der Technik sind bereits derartige Schaltungsanordnungen in Form von standardisierten Mikrokontrollern bekannt. Aus dem Data Book der Firma NEC, μCOM-75x Family 4-bit CMOS Microcomputer, DB75XFAM..014V10, Seite 3-0-265 ist bereits ein Mikrokontroller bekannt, der bereits eine Zentraleinheit, eine ROM- Speichereinheit, eine RAM-Speichereinheit sowie eine E2PROM-Speichereinheit aufweist (siehe hierzu auch Fig. 2). Eine weitere Ausführungsform eines derartigen MikrokontroUers ist dem Data Manual der Firma Texas Instruments, TMS370 Family, 1994, SPNS014B, Seite 1-15 bekannt. Dieser Mikrokontroller weist analog zu der in Fig. 3 schematisch dargestellten Ausführung eine Zentraleinheit sowie eine kombinierte RAM/E2PROM-Speichereinheit auf.
Die Fig. 1 zeigt die generelle Struktur eines MikrokontroUers 2 in schematischer Darstellung. Ein derartiger Baustein besteht im wesentlichen aus einer Zentraleinheit 4 (CPU), einer internen Speichereinheit 6, Portanschlüssen 8 sowie weiterer interner Standardperipherie und Schnittstellenanschlüssen. Der besseren Übersicht halber sind die weitere Standardperipherie und die Schnittstellenanschlüsse in einem Block als interne Peripherie 10 dargestellt. Zum Datenaustausch sind die einzelnen Bausteine über interne Leitungen 12 miteinander verbunden (Pfeilrichtungen entspre- chen den Datenflußrichtungen).
Es gibt sehr viele Varianten von Mikrokontrollem mit sehr unterschiedlichen Ausstattungen. So gibt es z.B. Mikrokontroller mit einer 4-Bit, 8-Bit, 16-Bit oder 32-Bit Zentraleinheit. Ferner differieren die Bausteine sehr stark im Hinblick auf den Stromverbrauch, die Geschwindigkeit und den internen Speicher. In Abhängigkeit von der Ausstattung bzw. der Leistung eines MikrokontroUers differieren diese auch sehr stark im Hinblick auf die Preise.
Da einige Mikrokontroller schon über interne Speicher und Perpherie verfügen, ist der Einsatz zusätzlicher externer Ressourcen von der Leistung und der Komplexität der Steuerung sowie vom Preis und der Komplexität des MikrokontroUers abhängig. Im allgemeinen kann man für Kleinsteuerungen davon ausgehen, daß es passende Mikrokontroller gibt, die alle notwendigen Ressourcen beinhalten. In den Fig. 2 und 3 sind verschiedene, für den Einsatz in Kleinsteuerungen ggf. geeignete, Mikrokontroller 2 schematisch dargestellt. Diese Mikrokontroller 2 haben bereits alle, für den genannten Einsatzzweck, notwendigen Ressourcen integriert. So weist der in Fig. 2 dargestellte Mikrokontroller 2 neben der Zentraleinheit 4, einen als RAM ausgebildeten, flüchtigen les- und beschreibbaren Speicherteil 6a für die zwischenzeitliche Ablage von Verarbeitungsdaten, einen als ROM ausgebildeten, nicht- flüchtigen lesbaren Speicherteil 6b zum Speichern eines Interpreters und einen als Flash oder als E2PROM oder als batteriegepuffertes RAM ausgebildeten, nichtflüch- tigen les- und beschreibbaren Speicherteil 6c zum Speichern des Anwenderprogramms auf. In der Fig. 2 sind die Speicherteile im Data-Bereich (RAM 6a und E2Prom 6c) und im Code-Bereich (ROM 6b) derart voneinander getrennt, daß das Anwenderprogramm lediglich mittels eines Interpreters abgearbeitet werden kann. Der in Fig. 3 gezeigte Mikrokontroller 2 ist analog zu dem in Fig. 2 gezeigten Mikro- kontroller 2 ausgebildet, mit dem Unterschied, daß hier alle Speicherteile 6a, 6b, 6c in einem gemeinsamen Code- und Data-Bereich zusammengefaßt sind, so daß ein Anwenderprogramm alternativ compiliert (Compiler) oder interpretiert (Interpreter) werden kann. Derartige Mikrokontroller sind technisch durchaus für den Einsatz in Kleinsteuerun- gen geeignet. Die Nachteile derartiger integrierter Schaltungsanordnungen sind in erster Hinsicht die Kosten. Je mehr Funktionen bei integrierten Schaltungen auf eng-
stem Raum realisiert sind, desto teurer wird der entsprechende Chip. Ferner ist die Auswahl an solchen standardisierten Kontrollern auf dem Markt stark eingeschränkt.
Der Erfindung liegt das Problem zugrunde, eine ausreichend schnelle und leistungs- starke Schaltungsanordnung für Kleinsteuerungen zu schaffen, die mit kostengünstigsten Mitteln und mit geringstem Platzbedarf realisierbar ist.
Zur Lösung dieses Problems werden eine Schaltungsanordnung mit den Merkmalen des kennzeichnenden Teils des Anspruchs 1 sowie unterschiedliche Verfahren ge- maß der Ansprüche 4 oder 7 vorgeschlagen. Erfindungsgemäß weist die Schaltungsanordnung einen Mikrokontroller, der zumindest eine Zentraleinheit, einen flüchtigen Speicher in Form einer RAM-Speichereinheit, einen nichtflüchtigen Speicher (z.B. ROM) sowie eine Schnittstelle beinhaltet und einen nichtflüchtigen Speicher in Form einer separaten Speichereinheit auf. Die separate Speichereinheit ist als serielle Speichereinheit ausgebildet, was den Vorteil hat, daß sie deutlich kleiner und preiswerter als eine parallele Speichereinheit ist. Der Nachteil in bezug auf Geschwindigkeit macht sich beim Anwendungsbereich derartiger Steuerungen bei Verwendung der erfindungsgemäßen Verfahren nicht bemerkbar. In einem ersten Verfahren kommuniziert die externe Speichereinheit mit dem Mikro- kontroller über eine interruptgesteuerte serielle Schnittstelle desselben, wobei das in der externen seriellen Speichereinheit befindliche Anwenderprogramm mittels Zentraleinheit und einem im nichtflüchtigen Speicher des MikrokontroUers befindlichen Interpreter abgearbeitet wird. In dem zweiten, bevorzugten Verfahren kommuniziert die externe Speichereinheit mit dem Mikrokontroller entweder über eine serielle Schnittstelle (muß hier nicht unbedingt interruptgesteuert sein) oder direkt über die Portpins des MikrokontroUers. Bei dieser Methode kopiert die Zentraleinheit den gesamten Inhalt der separaten Speichereinheit (das gesamte Anwenderprogramm nebst benötigter Daten) in den internen flüchtigen Speicher des MikrokontroUers. Anschließend interpretiert die Zentraleinheit das Anwenderprogramm ausschließlich aus dem internen flüchtigen Speicher des MikrokontroUers. Dieses Verfahren ermöglicht somit eine sehr hohe
Verarbeitungsgeschwindigkeit. Mit Vorteil kann so eine kostengünstige Schaltungsanordnung realisiert werden, die dennoch die für eine Kleinsteuerung im Hinblick auf Verarbeitungsgeschwindigkeit, Funktionalität und Speicherplatzanforderung bezüglich der Anwenderprogramme entstehenden Anforderungen erfüllt. Derartige Schal- tungsanordnungen, die komplett in einem Mikrokontroller untergebracht sind, sind derzeit zirka doppelt so teuer.
Weitere Vorteile und mögliche Ausführungsformen der Erfindung sind in den Unteransprüchen und in der Figurenbeschreibung enthalten. Es zeigen:
Fig. 4 eine erste mögliche Ausführungsform der erfindungsgemäßen
Schaltungsanordnung in schematischer Darstellung, und
Fig. 5 eine zweite mögliche Ausführungsform der erfindungsgemäßen
Schaltungsanordnung in schematischer Darstellung.
Die Fig. 4 zeigt eine erste mögliche Ausführungsform der erfindungsgemäßen Schaltungsanordnung. Hier findet erfindungsgemäß ein Mikrokontroller 2 seine Anwendung, bei dem lediglich die Zentraleinheit 4, der flüchtige les- und beschreibbare Speicher 6a, der nichtflüchtige lesbare Speicher 6b und eine synchrone serielle Schnittstelle 10a Bestandteile des MikrokontroUers 2 sind und die nichtflüchtige les- und beschreibbare Speichereinheit 6d eine serielle Speichereinheit ist, die als separate Einheit über eine Schnittstelle mit dem Mikrokontroller 2 verbunden ist. Da die zu verwendenden Mikrokontroller 2 in der Regel Standard kontroller sind, sind natürlich noch weitere Standardperipherieteile auf derartigen Mikrokontrollern integriert. Beim Gegenstand der Erfindung ist auch lediglich vorgesehen einen Mikrokontroller 2 ohne nichtflüchtigen les- und beschreibbaren Speicher (insbesondere für die Hinterlegung des Anwenderprogramms) zu verwenden und diesen durch eine seperate nichtflüchtige les- und beschreibbare Speichereinheit 6d zu ersetzen. Bei der in Fig. 4 dargestellten Ausführung ist die Schnittstelle des MikrokontroUers 2 als serielle interruptgesteuerte Schnittstelle 10a ausgebildet. Die Programmverar-
beitung unter Verwendung dieser Schaltungsanordnung wird im folgenden beschrieben:
Als erstes muß das auszuführende Anwenderprogramm in die separate Speichereinheit 6d geladen werden. Dies geschieht z.B. durch direkte Programmierung über eine Tastatur der Kleinsteuerung oder durch Kopieren des Anwenderprogramms aus einem anderen Gerät (z.B. einem PC) über eine spezielle Schnittstelle der Kleinsteuerung. Anschließend wird die Bitfolge des ersten Befehls aus der Speichereinheit 6d in die Zentraleinheit 4 des MikrokontroUers 2 geladen, von diesem dekodiert und ausgeführt (interpretiert) und gleichzeitig der Folgebefehl aus der Speichereinheit 6d in die Zentraleinheit 4 übermittelt. Hierfür wird nach jeder 8-Bit- Anweisung und nach jedem vollständigen Befehl (der auch aus mehreren Byte bestehen kann) ein Interrupt von der Schnittstelle 10a erzeugt und an die Zentraleinheit 4 übermittelt, so daß durch diese das Einlesen der jeweiligen Folgebefehle gewährleistet ist. Zur Abarbeitung des Anwenderprogramms bedient sich die Zentraleinheit 4 eines im ROM-Speicher 6b hinterlegten Interpreters. In einer bevorzugten Ausführung der Erfindung wird jeder Befehl des Anwenderprogramms mit maximal zwei Byte realisiert. Eine Ausführung von Befehlen mittels Compiler erfordert in der Regel vier bis sechs Byte pro auszuführenden Befehl. Durch die erfindungsgemäße Ausführung mittels Interpreter wird eine Speicherplatzersparnis von ca. 50% erreicht. Mit Vorteil können so auch kleinste und somit preiswerte Mikrokontroller mit einem RAM- Bereich für das Anwenderprogramm von ca. 256- 512 Byte Verwendung finden. Damit eine schnelle, reibungslose Verarbeitung des Anwenderprogramms gewährleistet ist, ist die Übertragungszeit pro Befehl der Schnittstelle 10a vorzugsweise kleiner/gleich der aus Verarbeitungszeit pro Befehl und Interruptdauer bestehenden Ausführungszeit des MikrokontroUers 2. Technisch realisierbar, aber unerwünscht, sind bei der interruptgesteuerten Verarbeitung des Anwenderprogramms auch Übertragungszeiten der Schnittstelle 10a, die deutlich größer sind als die Ausführungszeit des MikrokontroUers 2.
Die Fig. 5 zeigt eine zweite bevorzugte Ausführungsform der erfindungsgemäßen Schaltungsanordnung. Hier findet die Kommunikation bzw. der Datenaustausch zwi-
schen Mikrokontroller 2 und separater Speichereinheit 6d entweder über eine serielle Schnittstelle 10a (gemäß Fig. 4) oder über eine Portpin-Schnittstelle 10b (gemäß Fig. 5) statt. Der Mikrokontroller 2 ist von seinem Aufbau her im wesentlichen äquivalent zu dem in Fig. 4 abgebildeten und oben beschriebenen Mikrokontroller 2 aus- gebildet, wobei eine interruptfähige Schnittstelle, wie in Fig. 4 dargestellt, jedoch nicht notwendig ist. Die Art und Weise der Programmverarbeitung bei dieser Ausführungsform unterscheidet sich erheblich von der zuvor beschriebenen. Hier wird bei jedem Einschalten der Kleinsteuerung während der Hochlaufphase (Power-Up) der gesamte Inhalt, insbesondere das Anwenderprogramm, der separaten Speicherein- heit 6d in den flüchtigen Speicher 6a (hier als RAM) des MikrokontroUers 2 kopiert . Anschließend interpretiert die Zentraleinheit 4 mit Hilfe des im nichtflüchtigen lesbaren, integrierten Speichers 6b befindlichen Interpreters das Anwenderprogramm. Da das relativ zeitintensive Kopieren des Anwenderprogramms während der Hochlaufphase der Steuerung keine Rolle spielt, kann auch ein relativ langsamer separater Speicherbaustein, wie z.B. ein l2C-E2PROM (E2PROM für eine PC-Schnittstelle) verwendet werden. Der l2C-E2PROM bietet gegenüber anderen seriellen Speicherbausteinen den Vorteil einer leitungssparenden, zweiadrigen Verbindung. Darüber hinaus sind serielle E2PROM-Bausteine im Gegensatz zu parallelen E2PROM- Speicherbausteinen deutlich preiswerter und kleiner. Bei Verwendung eines noch einfacheren MikrokontroUers 2 -ohne spezifische serielle Schnittstelle 10a- kann die Übertragung des Anwenderprogramms aus der separaten Speichereinheit 6d in den RAM-Speicher 6a des MikrokontroUers 2 auch direkt über Portpins softwaregesteuert erfolgen. Der Vorteil bei dieser zudem auch sehr preiswerten Methode ist eine besonders gute Störfestigkeit. Die zu übertragenden Daten können wegen der niedrige- ren Übertragungsgeschwindigkeit sicher gefiltert werden und alle Datenblöcke können praktisch ohne zusätzlichen Zeit- und Speicherverlust mit einer globalen Checksumme versehen werden.
Die vorliegende Erfindung ist nicht auf die beschriebenen Ausführungsbeispiele be- schränkt, sondern umfaßt auch alle anderen im Sinne der Erfindung gleichwirkenden Ausführungsformen.