Betriebssystem
 
 
 
 
 

embedded Webserver SC1x -IPC@CHIP  
 
 
 
 
 
 
 

 

RTOS -Einleitende Bemerkung

 

 
SC1x
Im Jahr 2000 präsentierte die Firma BECK den ersten embedded Webcontroller mit der Bezeichnung SC12 IPC@CHIP. Diesem inzwischen abgesetzten Einchipcomputer auf der Basis einer ®Intel 80186 CPU und 1 Mbyte Hauptspeicher folgten im Jahr 2004 zwei weitere Webserver die sich SC11 und SC13 nannten. Alle drei Derivate werden unter der Kurzbezeichnung SC1x    zusammengefasst. Sie sind zueinander pinkompatibel und weitestgehend funktionsgleich. Ihre Unterschiede beziehen sich auf die Verfügbarkeit einer Ethernetschnittstelle, deren Übertragungsgeschwindigkeit, dem CPU-Takt und der Stromaufnahme. Genaueres zu der Hardware kann unter dem Menüpunkt [Datenblätter] nachgelesen werden.

SC1x3
Im Jahr 2005 brachte die Fa. BECK zwei weitere IPC@CHIP Derivate mit der zusammenfassenden Bezeichnung SC1x3 auf den Markt. Wegen ihrer Pingrid-Gehäuse, die sich kaum für den manuellen Aufbau von Schaltungen in Kleinstserien eignen, gehen unsere Seiten nicht auf sie ein
SC23 / SC24
Als Brückenglied zwischen den SC1x und den SC1x3 kann der seit 2008 herausgegebene SC23    gelten. Ihm gesellte sich im Herbst des Jahres der SC24 hinzu. Beide kombinieren die Eigenschaften der beiden obigen Systeme. So fehlen ihnen Eigenschaften der SC1x Familie, wie z.B. der ®Intel-IO-Bus, wofür andere hinzugekommen sind, wie eine hohe Taktfrequenz, ein vergrösserter Speicherraum, zusätzliche Servereigenschaften und eine Reihe serieller Schnittstelle die über Controller angesteuert werden (USB1.1, SPI, CAN). Ihr Gehäuse und die Anzahl der 32 Pins entsprechen dem der SC1x Familie, allerdings sind beide Derivate nicht pinkompatibel.
Highlight und Problemkind zugleich ist die Turbo186 CPU, die mit 96MHz getaktet wird und der ein Speicherraum von 2 (SC23) / 8 (SC24) MByte Flash-ROM und 8MByte RAM zur Verfügung steht.
Konnten die Programme für die SC1x Familie noch auf den allfälligen, preisgünstigen C- IDEs beispielsweise von der Fa. Borland geschrieben werden, muss für den Turbo186 eine IDE der Fa. Paradigm benutzt werden deren Preis für Schüler, Studenten und Amateurelektroniker schmerzhaft hoch ist.

Der Hardware angepasst, gibt es für jedes der oben genannten IPC@CHIP-Derivate ein eigenes Betriebssystem, welches als RTOS (RealTime OperatingSystem) bezeichnet wird. Allerdings unterscheiden sich diese Varianten bei allen Derivaten nur in Bezug auf interne Unterprogramme welche die Besonderheiten des jeweiligen Derivats betreffen. Sie bleiben für die Anwendungs-Programmierung, welche auf dem API (Application Programmer Interface) des Betriebssystems aufsetzt, weitgehend unsichtbar. So gesehen reicht eine Beschreibung für alle Betriebssysteme der SC1x-Derivate aus. Bei den SC1x3-Derivaten und dem SC23/SC24 kommen weitere API-Unterprogramme hinzu, die hier nur für den SC23/SC24 dokumentiert sind.

 

 

 

 



 

RTOS -Das Betriebssystems der Fa.Beck

Das Betriebssystem der IPC@CHIP embedded Webserver stammt wie die Chips selber von der Fa. Beck. Die Fa.Beck bezeichnet ihre Betriebssystem als RealTime-OperatingSystem (RTOS), da sie die Fähigkeit besitzen, mehrere Anwendungspro-gramme (Tasks), parallel zueinander laufen zu lassen. Das RTOS ist also ein Multitask-Betriebssystem


Das RTOS verfügt für alle, im linken Menü aufgelisteten Betriebssystemteile, über Unterprogramme. Diese werden mit dem Begriff API umschrieben. Diese Abkürzung bedeutet Applikation Programmers Interface. Die Unterprogramme können elementar in die eigene Programmierung einbezogen werden. Dies ist aber in vielen Fällen nicht notwendig, da sie auch von den Funktionen der benutzten, höheren Programmiersprache verwendet werden. Die C-Funktion getch() (Get a character) beispielsweise, basiert auf einem der API-Unterprogramme. Zwei weitere Benutzer der API-Unterprogramme sind der Kommandozeileninterpreter (Command), seine Datei autoexec.bat sowie die Datei chip.ini und deren Kommandos.


Die API-Unterprogramme lassen sich nach ihren Fähigkeiten in mehrere Bereiche unterteilen. Sie sind im linken Menü unter dem Menüpunkt [Betriebssystem] aufgelistet. Die Bereiche [Command], [Config], [BIOS] und [DOS] lehnen sich dabei ein Stück weit an Strukturen an, die dem bekannten PC-DOS entsprechen. Sie sind vorzugsweise dem RealTime OperatingSystem [RTOS] untergeordnet, welches die Möglichkeit schafft mehr als ein Programm zu einer Zeit 'laufen' zu lassen.

Die weiteren Bereiche [Hardware], [Fossil COM], [I2C/SPI -Bus] [USB/CAN-Bus] usw. betreffen hardwaremässig verfügbare Schnittstellen der IPC@CHIP -Bausteine. Zuletzt sind die Bereiche [Ethernet], [TCP/IP – PPP] und [CGI/SSI -Server] zu nennen, welche den Serverprogramme im Betriebssystem zuzuordnen sind, die zum Betrieb des IPC@CHIP in einem Netzwerk, benötigt werden.


Der Hauptspeicher der SC1x Derivate besteht aus 500kByte Flash-ROM und 500kByte RAM. Das Betriebssystem muss sich also den begrenzten Bereich von 500kByte ROM, mit den auf dem FlashROM-Laufwerk A:\ abgelegten Anwenderprogrammen teilen. Wegen des knappen Speichers liefert die Fa. Beck die jeweiligen Versionen des Betriebssystem in unterschiedlichen Varianten aus. Bei diesen sind jeweils bestimmte Fähigkeiten nicht eingebunden, so dass im Hauptspeicher 'wenig Betriebssystem' und 'viel Anwenderprogramm' möglich wird. Weggelassen werden, können in der Regel die Programmteile der diversen Netzwerkserver. So macht es beispielsweise nicht immer Sinn, den Webserver mit einer Ethernet-Schnittstelle und einem PPP-Server für ein Moden auszustatten. In der Betriebssystemvariante LARGE bzw. LARGE-PPP sind jedoch alle rechts aufgeführten Bereiche enthalten.


Bei dem SC23/SC24 stehen 8Mbyte RAM und 2/8 MByte Flash-ROM als Hauptspeicher zur Verfügung. Ihr Betriebssystem wird in einem einzigen, zusammen gehörenden Block ausgeliefert.


Da das RTOS-Betriebssystem, wie jede Software kontinuierlichen Veränderungen unterworfen ist, sollte man sich in zeitlichen Abständen über den momentanen Entwicklungsstand informieren. Den neuen Versionen des Betriebssystems liegt auch die originale Beschreibung der Fa. Beck in einer englischsprachigen .pdf-Datei bei.


Von der BECK-Homepage kann man neben den neuesten Versionen des Betriebssystems auch Hilfsprogramme, Applikationsbeispiele und Bibliotheken zum Aufruf der APIs herunterladen. Diesen Dateien ist ebenfalls eine jeweils englischsprachige Dokumentation mitgegeben.

 

 

 

 

 

RTOS -Versionsbezeichnungen

 

 

Die Fa.Beck kennzeichnet die jeweils 'modernste' Versionen seiner RTOS-Betriebssysteme mit einem Beta, wenn diese neue API-Funktionen besitzen oder wenn in ihr bekannte Fehler der Vorversion behoben wurden. Bei der davorliegenden Version wird mit Herausgabe der neuen Beta-Variante das Beta weggelassen, und ihre Fehler werden abschliessend dokumentiert.
Beide Versionen besitzen ihren Wert. Die Vorversion besitzt zwar Fehler, allerdings sind diese bekannt und können damit umgangen werden. Die neue Version behebt zwar die Fehler der Vorversion, doch kann deren Korrektur zu neuen Fehlern geführt haben, die jetzt nicht mehr offen liegen. Ebenso können die neuen Funktionen Fehler besitzen.

 

 

 

 

 

RTOS -Versionsreport

 

 

Im Versionsreport werden die bekannten Fehler der Vorversion und/oder die Änderungen und Neuerungen der neuen Version beschrieben.

 

 

 

 

 

RTOS -Deutsche Beschreibungen

 

 

Unsere Übersetzung und Beschreibung der API-Funktionen folgt dem Bedarf unserer schulischen Tätigkeit. Dort wo diese bisher nicht hinreichte, sind die englischen Texte von Beck zu finden, die wir in Abständen überarbeiten. Wer tiefer in die Materien eindringen möchte, der sollte sich die letzte Dokumentation des RTOS vom Link der Fa. Beck. herunterladen.

 

 

 

 

 

RTOS -APIs aufrufen

 

 

Die Unterprogramm des Application Programmers Interface (API) sind durchweg über die Software-Interrupts (SoftINTs) der 80186 CPU erreichbar. Die Wirkung eines Softwareinterrupts kann man sich als indirekten Sprüng in ein Unterprogramm vorstellen. Da es von ihnen nur 256 Stück gibt, aber mehr API-Unterprogramme vorliegen, stellen die zunächst erreichten Unterprogramme in den meisten Fällen Sprunglisten in Form eines Programms dar. Aus diesen heraus wird auf weitere Unterprogramme verzweigt.


Die Auswahl, auf welches der Unter- Unterprogramme eines Software-Interrupts verzweigt werden soll, wird über eine Kennzahl (der Funktionsnummer) im AH-Register der CPU vorgenommen.


Um eines der Unter- Unterprogramme aufzurufen, muss also zunächst das CPU-Register AH mit der Funktionsnummer (Fkt) geladen werden, dann muss der zugeordnete Softwareinterrupt (INT) aufgerufen werden. Hierfür gibt es sowohl in Pascal, C oder der Assemblersprache entsprechende Befehle. Häufig sind den deutschen Beschreibungen für die C- oder Assembler-Programmierung entsprechende Beispiele angefügt.



... Compilereinstellungen für die 80186CPU

Die IPC@CHIP Webserver verfügen über eine 80186 / 16Bit CPU, die seit ihrem Erscheinen bevorzugt in der Steuerungs- und Regelungstechnik eingesetzt wird. Diese CPU versteht auch den Maschinencode ihrer Vorgänger, der 8086 und der 8088 CPU, nicht jedoch die erweiterten Maschinencodes ihrer Nachfolger, der 80286, 80386 CPU bis hin zum Pentium.

Der Umstand, dass 80186 Maschinencode erstellt werden soll, muss dem Compiler in seinen Voreinstellungen mitgeteilt werden, damit er keine Maschinencodes der neueren CPUs erzeugt. Bei neueren Compilern und leider auch solchen die frei im Netzt verfügbar sind, ist zudem zu beachten, dass diese häufig die älteren ®Intel-Prozessoren nicht mehr unterstützen.


Der Adressraum der originalen 80186CPU beträgt 1 Mbyte, wozu sie 20 Adressleitungen besitzt. Sie wird in den SC11, SC12, SC13 IPC@CHIP benutzt. Diese drei Derivate können mit beliebigen, älteren Entwicklungsumgebungen (IDEs) programmiert werden, mit denen früher auch ® Intel-PCs programmiert wurden. Die Fa. BECK bietet für sie eine ältere Borland C++ IDE der Version 5.02 an.


Der Adressraum der Turbo186CPU beträgt 16MByte wozu sie 24 Adressleitungen benutzt. Sie wird in den Derivaten SC23/SC24 (SC123, SC143) verwendet. Um diese Erweiterung des Speicherraums zu erreichen wurde die Grösse des Adress-Paragraphen von 16 Byte auf 256 Byte erhöht. Dies bedingt eine ebenfalls geänderte Entwicklungsumgebung. Die Fa. BECK bietet für ihre Derivate mit der Turbo186 CPU eine Paradigm C++ IDE an, mit der auch die originale 80186 CPU programmiert werden kann.


... Compilereinstellungen für den 80187Coprozessor

Die IPC Webserver verfügen nicht über einen 8087 numerischen Coprozessor, welcher in modernen Prozessoren neben der Integer-CPU werkelt und die Berechnung der Fliesskommaarithmetik übernimmt. Dies muss dem Compiler in seinen Voreinstellungen mitgeteilt werden. Er kann dann, je nach Benutzerwunsch einen Programmteil an das Benutzerprogramm anhängen, welcher den Fliesskommaprozessor softwaremässig nachahmt (emuliert). Damit wird auch der 80186 fliesskommafähig. Wird die Emulation des 80187 abgewählt, dürfen in dem Benutzerprogramm keine Fliesskommarechnung vorkommen. Ein Systemabsturz wäre die Folge. Ohne die den Programmteil zur Emulation des 80187 kann nur auf der Basis von Ganzen Zahlen gerechnet werden.


... Compilereinstellungen für das Speichermodell

Nach dem Start arbeiten der 80186, wie auch der Turbo186 im Real-Mode der ® Intel- Prozessoren. Dies bedingt im Compiler die Einstellung des gewünschten Speichermodells. Bei der Benutzung des Modells LARGE werden die Programme zwar etwas umfangreicher, dafür aber gibt es bei keinem Programm für die IPC-Webserver Unverträglichkeiten. Diese würden sich in Programmabbrüchen und Fehlermeldungen mit der Darstellung von Registerinhalten, äussern.

 

 

nächste Seite ..

 

www..de