                             SIOS
                  (Serial Input Output System)

SIOS ein leistungsfhiges, universell einsetzbares Interface mit
80535-Prozessor und umfangreicher Peripherie sowie der Mglichkeit der
freien Programmierbarkeit. Schraubklemmen und 2mm Steckbuchsen sind
universelle Anschlumglichkeiten fr Versuchsaufbauten. Die Ansteuerung
einer breiten Palette von Aktoren sowie die Entwicklung von analogen
Regelungen lassen sich mit diesem Interface realisieren. Mit dem
internen AD-Wandler und dem Daten-RAM knnen schnelle Meserien
durchgefhrt werden. Durch die erhhte Auflsung der analogen Eingnge
in Verbindung mit einer ganzen Reihe von direkt anschliebaren Sensoren
ist das SIOS fr viele Zwecke einsetzbar.

Im einzelnen hat das SIOS folgende Leistungsmerkmale:

8 digitale Leistungsausgnge
Jeder digitale Ausgang liefert einen Ausgangsstrom von bis zu 600
mA. Die Ausgangsspannung lt sich im Bereich von 5V bis 12V
eingestellen. Durch einen zustzlichen Schalter kann die
Versorgungsspannung direkt als Ausgangsspannung durchgeschaltet
werden. Ein "Notausschalter" macht die Ausgnge stromlos.

8 digitale Eingnge
Diese Eingnge haben TTL-Pegel und sind gegen Verpolung und ber-
spannung geschtzt (+/- 30 V).

4 analoge Eingnge
Zwei Analogeingnge haben wie beim CompuLAB-Interace und bei der
miniRS-Box einen Mebereich von 0 - 5 V. Zwei weitere
Analogeingnge mit einem Mebereich von 0 - 2,5 Volt stehen
insbesondere fr den Anschlu von Sensoren bereit. Die
Standardauflsung betrgt 8 Bit. Wenn Messungen mit grerer
Genauigkeit durchgefhrt werden sollen, kann eine erhhte
Auflsung von 10 Bit gewhlt werden.

2 analoge Ausgnge
Die Digital/Analog-Wandler liefern eine Ausgangsspannung im
Bereich von 0 bis 5 Volt bei einer Auflsung von 8 Bit. Sie sind
mit Leistungsverstrkern ausgerstet und liefern einen Strom
von bis zu 300 mA. Bei einer maximalen Ausgangsleitung von ca.
1,5 Watt lassen sich bereits kleine Gleichstrommotoren oder auch
Lautsprecher direkt anschlieen.

internes Daten-RAM
Ein 32 Kilobyte groer Datenspeicher bietet die Mglichkeit,
schnelle Messungen durchzufhren und im RAM abzulegen. So
erreicht man bis zu 10.000 Messungen pro Sekunde. Diese
automatischen Serienmessungen sind auch dann von Vorteil, wenn
vom PC kein gleichmiges Abfragen der Eingnge sichergestellt
werden kann, z.B. bei Windows-Programmen. Das PC-Programm kann
nun z.B. 1000 Mewerte im Abstand 1ms "bestellen", die dann nach
der eigentlichen Messung ausgelesen werden. Das Betriebssystem


Der Einsatz des SIOS ist u.a. fr Entwickler sinnvoll, die bereits mit
dem ES535 arbeiten, nun aber bestimmte Leistungsmerkmale zustzlich
bentigen. Auerdem erlaubt das Betriebssystem die direkte Ansteuerung
aller Hardwareelemente aus einem PC-Hochsprachenprogramm heraus, so da
sich in vielen Fllen die eigene Programmierung in Assembler oder MC
erbrigt. Alle Kommandos des Systems lassen sich mit dem Terminal des
Makrocompilers MC ansteueren. Die Baudrate mu auf 19200 Baud
eingestellt sein.




                  SIOS-Betriebssystem
                     - Kommandos -


Senden               Empfangen     Funktion
-----------------------------------------------------------
  Optionen:
00h                               Interrupt fr laufende Messungen und
                                  Programme
01h                  10           Versionsnummer 1.0 abfragen
02h, Byte                         Baudrate ndern: FFh=57,6kBd
                                  FDh=19,2kBd, FAh=9,6kBd usw.
08h, Byte                         Mebereich Kanal 0 ndern
...                               00h=5V 80h=2,5V, 40h=1,25V
0Bh, Byte                         Mebereich Kanal 3 nndern
   (Mebereiche: Bit 0...3 legt die untere Grenze als Vielfaches von
   5V/16 fest, Bit 4...7 ebenso die obere Grenze. Mindestabstand ist
   1,25V. Beispiel: 84h=1,25V-2,5V. Ausnahme: 00h=0.5V. Die hier
   eingegebenen Mebereiche berschreiben die Standardauflsungen von
   5V,5V,2,5V,2,5V nur fr Direktmessungen. Fr Serienmessungen erfolgt
   eine eigene Einstellung der Bereiche im Definitionsblock.)

  Portausgaben:
10h, Byte                         Ausgabe Port 4 = "DezAus"

  Porteingaben:
20h                 Byte          Lesen Port 1 = "DezEin"

  Analogeingaben, 8 Bit:
30h                 Byte          Messen Kanal 0 (A)
31h                 Byte          Messen Kanal 1 (B)
32h                 Byte          Messen Kanal 2 (C)
33h                 Byte          Messen Kanal 3 (D)

  Analogeingaben, 10 Bit:
38h                 Highbyte      Messen Kanal 0
 1                  Lowbyte
...
3Bh                 Highbyte      Messen Kanal 3
 1                  Lowbyte

  Analogausgaben:
40h  Byte                         Analogausgabe Kanal 0
...                               (Kanal 3/4 = Referenzspannungen A2/3)
43h  Byte                         Analogausgabe Kanal 3

  reserviert fr Timer-Funktionen:
50h
51h  Byte                         altes Kompaktox-Kommando 81, DezAus

  Speicherzugriffe:
60h HiAdr, LoAdr                  Code laden
                     1
    1, Byte                       1. Byte
                     1
    1, Byte                       2. Byte
    ...
                     1
    0                             Ende
61h HiAdr, LoAdr                  Programmstart
62h HiAdr, LoAdr, Byte            RAM-Adresse beschreiben
63h HiAdr, LoAdr         Byte     RAM-Adresse auslesen
64h Adr, Byte                     Register beschreiben
65h Adr                  Byte     Register auslesen
66h SFR, Byte                     SFR beschreiben
67h SFR                  Byte     SFR auslesen
68h HiAdr, LoAdr                  Speicherbereich auslesen
    1                    Byte     1. Byte
    1                    Byte     2. Byte
    ...
    0                             Ende

  Serienmessungen:
70h, Anzahl-High, Anzahl-low      Serie definieren
     Kanal 1, 2, 3, 4             "0" = aus, 129,130,131,132 f. 10-Bit
     Mebereiche Kanal 0...3      Standard: 0,0,128,128 f. 5V/2,5V
     Zeit-high, Zeit-low          Mezeit = Zeit + Anzahl Kanle
     Zeitbasis                    0=0,1ms 1=0,2ms, 2=1ms, 3=10ms
     Optionen                     Bit0: D0 zeigt Messung
                                  Bit1: D1 zeigt Mepunkte
                                  Bit2: Rampe an Analogausgang A
                                  Bit3: Hochzhlen an Ausgngen
     (Beispiel: 112,0,100,1,2,3,4,0,0,128,128,0,6,2,1
      100 Messungen, alle Kanle,Standardauflsung,Intervall 10ms,
      Zeitbasis 1ms, D0 zeigt Messung)
     (Achtung: Zeitbasis ist noch sehr ungenau, 0.1ms werden nicht
     eingehalten)
71h                               Start der Messung
     (Mit "0" kann dei Messung vorzeitig abgebrochen werden. Entspricht
     einem Neustart)
72h                               Mewertspeicher auslesen
                         Byte     1. Byte
    1                    Byte     2. Byte
    ...
    0                             Ende

(73h, Byte                        Start mit Trigger, pos. an A0)
(74h, Byte                        Start mit Trigger, neg. an A0)
(75h, Byte                        Start mit Trigger, pos. an A1)
(76h, Byte                        Start mit Trigger, neg. an A1)
(77h, Byte                        Start mit Trigger, pos. an D0)
(78h, Byte                        Start mit Trigger, neg. an D0)

Datenformat der Meserien: 14 Bytes des Definitionsblocks, dann
Meergebnisse fr alle Kanle geschachtelt, je 1 Byte fr 8-Bit, 2 Bytes
fr 10-Bit-Messungen. Bei 10-Bit ist der angegebene Mebereich ohne
Bedeutung, immer 0-5V. 8- und 10-Bit-Mekanle drfen zusammen verwendet
werden.


Compactbox-Kommandos:

51h  Byte                         Kommando 81, DezAus
B0h                               Analogeingang-Init (176)
D2h                     Byte      Messung (Aein), Kanle abwechselnd 210
D3h                     Byte      Digitale Eingabe (DezEin) (211)

----------------------------------------------------------------------
  Compaktbox-Emulation (CompuLAB-Emulation):

61h, 07h, 80h                     Starten des Compaktbox-Modus

Im Normalfall knnen die alten Kommandos direkt aus dem Standard-Modus
aufgerufen werden. Nur die Interface-Kennung unterscheidet sich im
speziellen Emulationsmodus.

Die Emulation wird als Aufruf eines Programms im EPROM gestartet. Es gibt
keine Rckkehr auer duch Auschalten. Der Interrupt ist gesperrt. Das
Sios kennt nun nur noch die alten Compaktbox-Kommandos (81, 176, 210,
211). Auerdem wird die Interface-Kennung "201" wie beim CompuLab
ausgegeben.

----------------------------------------------------------------------

Speicherbereiche:

0000h - 07FFh      Programmbereich  2K (luft bei 8000h-87FFh)
0800h - 7FFFh      Datenbereich    30K

Der Programmbereich erscheint bei 8000h - 87FFh gespiegelt.

Alle Prozessor-Interrups werden in den RAM-Bbereich ab 8000h gespiegelt.
Das System verwendet den Timer0 (800Bh) und die serielle Schnittstelle
(8023h), wobei die Vektoren in den EPROM-Bereich zurckgelenkt werden.
Der Anwender darf deshalb die RAM-Bereiche 000Bh-000Ch und 0023h-0025h
nicht verndern, auer er mchte die Interrupts fr eigene Zwecke
einsetzen.

SIOS kennt insgesamt vier verschiedene Betriebsmodi, die zum
Entwicklungssystem ES535 komkatibel sind. Es knnen deshalb Programme in
der jeweils passenden Speicheraufteilung nachgeladen werden.

------------------------------------------------------------------------

Einsatz des Makrocompilers MC

Der Makrocompiler MC eignet sich zur einfachen Programmentwicklung fr
das SIOS. Zustzliche Leistungsmerkmale lassen sich durch neue
MC-Makrobefehle ansteuern. Zahlreiche Programme, die bereits fr das
ES51 oder das ES535 entwickelt wurden, lassen sich im SIOS
weiterverwenden.

Das SIOS ist weitgehend kompatibel zum Entwicklungssystem ES535. Wie das
ES535 verfgt es ber vier unterschiedliche Betriebsmodi, die ber
Speicherzugriffe umgeschaltet werden. Allerdings fehlt beim Sios die
Mglichkeit eines Master-Reset, so da ein einmal gewhlter
Betriebsmodus nur durch Ausschalten verlassen werden kann. Statt dessen
ist das SIOS mit einem Betriebssystem ausgestattet, das es erlaubt, ber
die serielle Schnittstelle laufende Programme abzubrechen und in das
Betriebssystem zurckzuschalten, solange sich das System im Modus 0
befindet. Im Modus 0 besteht zudem die Mglichkeit des Zugriffs auf
Unterprogramme des Betriebssystems, was sich vorteilhaft mit
MC-Programmen nutzen lt.

Das SIOS arbeitet mit einer Taktfrequenz von 11,059MHz, wodurch sich
hhere Baudraten bis 57,6 Kilobaud nutzen lassen. Die serielle
Empfangsroutine arbeitet ber Interrupts. Ein nicht vom System
erwartetes Byte bricht laufende Vorgnge wie Serienmessungen oder
nachgeladene Programme ab. Wird dagen ein Byte z.B. von der Prozedur
RdCOM angefordert, fhrt der Interrupt zu keinem Abbruch. Der Timer des
80535 arbeitet ebenfalls ber Interrupt und wird z.B. mit dem
Delay-Befehl des Makrocompilers verwendet. Beide Interrupts werden im
Grundmodus in das RAM verzweigt und von dort in das Betriebssystem
zurckgelenkt. Der Anwender hat daher die Mglichkeit, die Interrups
auch fr eigene Zwecke zu verwenden.

Um MC-Programme zu schreiben; sind die folgenden Einstellungen
zu treffen (SIOS.CFG):

  COM                  2
  Baud                 19200
  Prozessor            80535
  Startseite           129
  Startadresse         80
  Tabelle              SIOS.TAB
  Helpfile             SIOS.HLP
  Download-Protokoll   2
  Download-Delay       0

Die Startseite 129 ist zu whlen, um die Interruptvektoren auf der
ersten RAM-Seite nicht zu verndern.

Prozessor-Ports und ihre Verwendung im SIOS:

     P1 = Digitale Eingnge
     P4 = Digitale Ausgnge
     P5 = Daten zum DA-Wandler,
     P3.2...P3.4 = A0,A1,/CS fr DA-Wandler  MAX505
     Die Kanle A und B des Wandlers werden ber Leistungs-OPs
     gepuffert. Die Kanle C und D bilden die Referenzspannung fr die
     Sensoranschlsse (default: 2,5V)

Besondere MC-Befehle fr SIOS in SIOS.TAB:

     RdPORT entsricht RdP1
     WrPORT entspricht WrP4
     RdAD, RdAD10 lesen den internen AD-Wandler des 80535
     WrDA steuert den DA-Wandler, Kanal in B, Wert in A

     Delay arbeiten im Millisekundenraster, ist aber verstellbar mit:
     T0,1ms, T0,2ms, T1ms, T10ms   Einstellung der Zeitbasis
     WrCOM, RdCOM steuern die serielle Schnittstelle zum PC
     ReturnToSystem  Rcksprung ins Betriebssystem, z.B. fr residente Treiber

