16-Bit µController an der HTL-Steyr

 


Ende des Schuljahres `98 / `99 hielt Wilhelm Brezovits an unserer Schule einen Vortrag über den Infineon C167, dem zugehörigen Codegenerator DAvE samt Compileroberfläche. Im Rahmen dessen wurden der Schule 4 C167 Starterkits übergeben.

 

Franz Parzer betreute dann im Rahmen des Laborunterrichts 2 Projekteams, die den Prozessor mit entsprechender Hardware in Szene setzen sollten, um ihn später im Schulbetrieb verwenden zu können.

C167CR Basisboard

Anforderungen

Folgende Anforderungen enstammen den Vorgaben, die der geplante Einsatz als Schulsystem verlangt:

 

-           Robustheit

-           Standard I/O (RS232, Tastatur, LCD)

-           Erweiterbarkeit

-           Easy-to-use Entwicklungsumgebung

Entwicklungsumgebung

Die Platine läßt sich einfach und ohne spezielle Treiber in die Entwicklungsumgebungen der Firmen Keil und Tasking einbinden.

Die compilierten Prog–ramme werden mittels eines Monitors zum Basisboard hinun-tergeladen und lassen sich somit direkt an der Zielhardware aus-führen und de-buggen.

Textfeld:  Da die Platine kompatibel zum weit verbreiteten Evalua-tionsboard der Firma Phytec ist, lassen sich sowohl das dafür konzipierte Monitorprogramm als auch die Flashtools zum speichern fertig getesteter Programme im Flash-Memory verwenden.

Textfeld: Das C167CR Basisboard mit angedeutetem Blockschaltbild

Hardware

Die Spannungsversorgung erfolgt mit einem PWM Schaltregler, der selbst bei der maximalen Eingangsspannung von 40V einen hohen Wirkungsgrad erzielt.

Auf Wunsch kann alternativ ein herkömmlicher 7805 mit seinen bekannten Einschränkungen eingesetzt werden.

Ein zentrales Thema stellen die Schnittstellen zur „Außenwelt“ dar.

Neben der obligaten RS232 Schnittstelle, die der Prozessor als integrierte Peripheriekomponete bietet, ist ein zweiter serieller Kanal implementiert, der softwaremäßig emuliert wird, und beispielsweise als Verbindung zu einem Terminal dienen kann. Dies hat sich zum Testen neu entwickelter Programme als sehr nützlich erwiesen.

Das CAN Modul des C167CR ist in verschiedenen Konfigurationen an den Bus anschaltbar. In einer galvanisch getrennten Variante kommen Optokoppler zum Einsatz. Wird auf diese Trennung verzichtet, so können diese entfallen und die Versorgung der gesamten Hardware kann optional über den CAN-Bus erfolgen.

Als Human Interface steht auf der Eingabeseite ein PS2 Keyboardanschluß zur Verfügung, an dem handelsübliche Tastaturen betrieben werden können.

Zur Visualisierung lassen sich Industriestandard LC-Displays (bis zu 40 Zeichen x 4 Zeilen) direkt an der dafür auf der Platine vorgesehenen Stiftleiste anstecken.

Für´s richtige Timing sorgt ein DCF77 Modul, das Datum und Zeit via Funk von der Atomuhr in Frankfurt empfängt.

Alle Komponenten finden auf einer 2-Layer Europakarte Platz. Die Platine wurde komplett in AccelEDA v13 entwickelt und größtenteils mit 8mil schmalen Leiterbahnen entwirrt.

Erweiterbarkeit

Um die Anbindung an applikationsspezifische Hardware zu ermöglichen ist ein 96-poliger Stecker nach DIN-Norm angebracht, womit das Board den Kern eines Einschubsystems darstellen kann. Die wichtigsten Signale konzentrieren sich jedoch auf 2 Stiftreihen, wodurch einzelne Erweiterungskarten mittels Stift- und Buchsenleisten aufgesetzt werden können.

Textfeld: SchutzbeschaltungfDer Adress-/Datenbus inklusive Steuerleitungen wird über Transceiver an die Backplane geführt, welche die Prozessorports aktiv entlasteten und sie vor der Zerstörung durch Überspannungen an der Erweiterungshardware schützt. Alle übrigen Signale am DIN-Stecker verfügen über eine passive Schutzbeschaltung, die kurzzeitig Überspannungen von 50V standhält. Ein Widerstand im Signalweg begrenzt die Anstiegsgeschwindigkeit der Ausgangssignale (bessere EMV) und läßt sich mit einem weiteren Widerstand zu einer Meßbereichserweiterung für Analogeingänge konfigurieren.

Software

Neben Entwicklung, Fertigung, Aufbau und Test der Hardware sollten Treiber für die I/O-Komponenten entwickelt werden, die sich homogen in das ANSI-C I/O-Konzept einfügen.

Das Resultat ist ein Treibersystem, das es ermöglicht, beliebige I/O-Kanäle (z.B. RS232, Keyboard, LCD, ...) als Streams zu öffnen, und diese mit den üblichen Funktionen zu bedienen.

Alle FILE-Operationen in C greifen letztendlich über die Funktionen _ioread(..) und _iowrite(..) auf das betreffende File zu. Die beiden Funktionen bilden also eine Schnittstelle über die byteweise kommuniziert wird.

Es ist Sache des Programmierers, wie diese Funktionen implementiert werden. Wir haben uns dabei für ein sehr flexibles System entschieden. Anhand der für jeden File eindeutigen Nummer filno(FILE)wird der passende Treiber für die Kommunikation mit der Hardware (device) ausgewählt.

In der Initialisierungsphase registrieren sich alle Treiber im Modul usrio.c und geben dabei ihre Funktionen bekannt, mit denen der Kanal zum Gerät geöffnet, gelesen, geschrieben und geschlossen werden kann. Dabei entsteht eine Liste der registrierten Treiber.

Wird eine Datei (z.B. COM2) geöffnet, so versucht das System einen Treiber zu finden, dessen open-Routine sich zu diesem Dateinamen meldet. Ist dieser Prozeß erfolgreich, so erfolgt ein Eintrag in einer Tabelle, die die Zuordnung zwischen Dateinummer und Treibernummer darstellt.

Die Funktionen _ioread und _iowrite verwenden jetzt für jede Datei den passenden Treiber.

Textfeld: BeispielprogrammAnhand des Beispiels wird deutlich, wie sich die Situation für den Applikationsprogrammierer darstellt: Anhand der eindeutigen Gerätekennung (=Filename; z.B. „COM2“) wird versucht einen Kanal zum Gerät zu öffnen. Dabei überprüft dann die zuständige open_device Routine, ob dieses Gerät überhaupt verfügbar ist, d.h., ob es hardwaremäßig implementiert ist und ob keine sonstigen Fehler vorliegen. Von nun an können alle C-Funktionen, die mit FILE Streams arbeiten, in ihrem vollen Funktionsumfang genutzt werden.

Textfeld: Treiberkonzept, schematisches Darstellung exkl. clos_deviceDas Konzept wird derzeit intensiven Tests unterzogen, unter anderem anhand des Zusatzboards. Hier erfolgt die Kommunikation zum DUART, wie auch zum Sprachprozessor über die genannten Streams. Anhand der dabei gewonnenen Erkenntnisse wird das Treibersystem kontinuierlich verbessert.

Die Software steht auf der HTL-Hompage zum Download bereit, es sei hier jedoch auf das Ende des Berichts verwiesen.

Universelles Telefoninterface

Anforderungen

Das zweite Laborprojekt, welches von DI Franz Parzer betreut wird, soll als Zusatzinterface für das C167CR Basisboard dienen. Ausgegangen ist es von einem Laborprojekt des Jahres zuvor, welches unter dem Namen ‚fernabfragbare Wetterstation‘ lief. Die Wetterstation wird beim Paragleitklub Cumulus in Ternberg eingesetzt, um über das Telefon Daten über Windrichtung und Windgeschwindigkeit via Textansage zu erfahren.

Unsere Aufgabe war es, eine Baugruppe zu entwickeln, welche nicht nur die Tätigkeit der Wetterstation übernehmen kann, sondern flexibel genug ist, um den größten Teil der am Telefonsektor denkbaren Anwendungen abzudecken.


Diese Direktive führte dazu, daß das universelle Telefoninterface nur mehr wenig mit der ursprünglichen Hardware der Wetterstation zu tun hat.

Textfeld: Anwendungsmöglichkeiten des universellen Telefoninterface 

Features

Da seit Sommer 1999 die Telefonnummer des Anrufers auch bei POTS-Anschlüssen (analoger Standardanschluß) mitgesendet wird (als CLIP bekannt), unterstützt die Baugruppe dieses Leistungsmerkmal der Telekom. Es kann ein Adreßbuch angelegt werden, wodurch bei einem Anruf neben der Telefonnummer auch der Name des Anrufers am Display angezeigt werden kann.

Textfeld: Das universelle Telefoninterface mit angedeutetem BlockschaltbildWeiters ist es möglich mit dem Telefoninterface einen intelligenten Anrufbeantworter aufzubauen. Da der Anrufer durch seine Telefonnummer bekannt ist, kann man jeder bekannten Person oder Gruppe einen eigenen Ansagetext zuweisen. Es kann ebenfalls gewählt werden, ob es ihm möglich ist eine Nachricht zu hinterlassen oder nicht.

Die Software erlaubt sogar den Einsatz als Router. Das heißt, daß das Interface bei abgehenden Rufen selbständig, je nach Wochentag, Tageszeit und Verbindungswunsch (Regionalzone, Fernzone, Ausland, ...) den billigsten Verbindungsanbieter selektiert. Die verfügbaren Anbieter können mit ihren Tarifen über die PS2-Tastatur eingegeben werden. Als Alternative ist auch der Download einer Tabelle mittels PC aus dem Internet denkbar, welche dann via serieller Schnittstelle an den Router übermittelt wird.

Neben der RS-232 Schnittstelle, ist eine weitere Schnittstelle vorhanden, welche die Kommunikation mit einem Mobiltelefon ermöglicht. Diese Verbindung kann wahlweise über Kabel- oder Infrarotverbindung (IRDA) hergestellt werden.

Hardware

Die Speisung der Platine erfolgt über die Backplane (96-poliger DIN-Stecker). Neben den obligaten 5V, ist hier noch die Versogungsspannung für die Telefonanbindung von etwa 25-30V zu nennen.

Der Kern der Platine besteht aus dem Sprachprozessor vom Typ ISD-T267SC, welcher vom Basisboard über das high speed synchronus serial Interface des C167 angesprochen wird.

Der Sprachprozessor unterstützt zum Ablegen der Sprachdaten drei verschiedene Arten Flashspeicher. Auf dieser Hardware befindet sich eine seriell ansprechbare Variante, ein Chip der Marke Toshiba mit einer Kapazität von 512 kByte auf dem circa 15 Minuten Sprachdaten Platz finden. Bei Bedarf läßt sich der Sprachspeicher auf 4 Chips erhöhen, wodurch sich eine maximale Länge der gespeicherten Sprachdaten von 60 Minuten ergibt.

Um die Routerfunktion zu ermöglichen, ist es nötig, daß das Interface als erstes Gerät in die Telefonsteckdose eingesteckt wird, weil bei der Wahl das Telefon vom Amt getrennt, und von der Hardware gespeist wird. Nach dem Wählen der Rufnummer, wird die Verbindung über den günstigsten Provider  hergestellt, ohne daß der Benutzer davon Notiz nimmt. Das Trennen des Telefons vom Amt wird mit einem Relais mit 2 Umschaltern realisiert. Um das Endgerät weiterhin zu speisen, ist es nötig, daß die externe Versorgungsspannung des C167CR Basisboards bei etwa 30V liegt.

Textfeld: franz.parzer@htl-steyr.ac.at  thomas.grobner@gmx.at  markus.ringhofer@gmx.at

gdutzler@gmx.net  wolfgang.heidl@utanet.at

Ein weiteres Relais wird als Schleifenerkennung benutzt. Dessen Spule ist direkt in die B – Leitung eingebaut, das heißt, daß das Relais bei bestehender Schleife (Amts- und Teilnehmerwiderstand je 600W) anspricht. Um den Telefonbetrieb nicht zu beeinträchtigen, muß der Innenwiderstand der Spule kleiner 15W und die Ansprechspannung kleiner 1V sein.

 

Die benötigten Signale, wie zum Beispiel Ruf-, CLIP- oder DTMF – Erkennung, werden hochohmig abgegriffen, wodurch keine Beeinträchtigung der sonstigen Kommunikation auftritt.

Die analoge Kopplung zwischen Telefonleitung und Sprachprozessor erfolgt über einen CODEC (COder - DECoder), der über eine Gabelschaltung angesprochen wird.

Die beiden seriellen Schnittstellen werden von einem DUART mit einer maximalen Übertragungsrate von 38,4 kBaud gesteuert. Da die Mobiltelefone via IRDA-Standard 1.0 kommunizieren, haben wir ebenfalls ein IRDA-Modul implementiert, welches sich nach diesem Standard richtet. Dieses Modul wird mittels eines Jumpers auf der Platine aktiviert, da der maximale Stromverbrauch der Senderdiode bei 0.5A liegt, was den Schaltregler nur unnötig belast. Der DUART wird über den Datenbus angesprochen, wobei die Adresse mit den höherwertigen 8 Adreßbits (A18 - A12)  über DIP-Switches eingestellt werden kann. Die Adressen A0 – A3 werden für die Wahl der Befehlsart verwendet.

Kontakt

Damit unsere Arbeit nicht nur unserer Ausbildung und unserer Schule zugute kommt geben wir in diesem Abschnitt einige Adressen an, die uns nützlich erscheinen. Vielleicht noch nützlicher für interessierte Leser sind E-mail Adressen und die URL unsere Homepage.

Homepage

Den Resultaten unserer Arbeit ist eine eigener Bereich der HTL-Steyr Hompage (www.htl-steyr.ac.at) gewidmet, die als Anlaufstelle für alle eventuell auftretenden Fragen genutzt werden kann und soll. Hier sind Links zu allen Sites, die wir als Support während der Entwicklungsarbeit nutzen konnten, sowie alle E-mail Adressen der Projektmitglieder aufgeführt.

Weiters ist ein Downloadbereich vorgesehen, in dem folgende Files verfügbar sind:

·         Universelles Treibersystem (Objekt- und Headerfiles)

·         Treiber für die Emulation der zweiten seriellen Schnittstelle am Basisboard

·         Ausführliche Dokumentation des Treibersystems

·         Powerpoint Präsentationen mit den Projektinhalten

·         Diesen Artikel als PDF

·         Hochauflösende Fotos der Platinen

·         Stücklisten

 

 

Tag der Projektpräsentation

Am 11. Mai 2000 wurden in unserer Schule alle Laborprojekte des Schuljahres präsentiert. Nachstehendes Foto stellt eine Erinnerung an unseren Projektpräsentationstag dar. Das Bild wurde im Innenhof des Schlosses Lamberg in Steyr aufgenommen und zeigt (v.l.n.r.) Franz Parzer, Wolfgang Heidl, Thomas Grobner, Günter Dutzler, Markus Ringhofer und Wilhelm Brezovits.


Dank

Klar ist, daß die Projektziele nicht in der zur Verfügung stehenden Zeit erreicht worden wären ohne die Unterstützung von verschiedenen Personen bzw. Firmen. Wir richten also unseren Dank an alle, die in irgend einer Form an unserem Erfolg beteiligt waren, im Besonderen aber an:

·         Herrn Ing. Brezovits von der Firma Infineon

·         Maxim für die gratis Samples

·         Den Werkstättenlehrern der HTL-Steyr,
speziell FOL Ing. Wahl und FOL Ing. König

·         DI Dr. Hans-Peter Bernhard

·         Projektbetreuer: DI Franz Parzer

Autoren: Günter Dutzler, Thomas Grobner, Wolfgang Heidl, Markus Ringhofer