Embedded-Prozessoren am Beispiel "Internet

Transcription

Embedded-Prozessoren am Beispiel "Internet
Embedded-Prozessoren
Embedded-Prozessoren am Beispiel "Internet-Radio"
per BECK IPC 80186
vorgelegt von
Gunnar Krug
I8I
Hochschule Bremen
RST-L, Prof. Dr. Thomas Risse
Zeitraum: WS04 bis SS05
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Anzahl Seiten: 17
Datum: 12.10.2005
Fachbereich Elektrotechnik & Informatik
Seite
:I
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
Inhaltsverzeichnis
1. Vorwort ................................................................................................................................. 3
2. Embedded-Prozessoren und Systeme.................................................................................... 3
2.1 Einsatzgebiete ................................................................................................................. 3
2.2 Verlauf der technischen Entwicklung ............................................................................. 4
2.3 Anforderungen an ein Embedded-System ...................................................................... 5
2.4 Entwicklung eines Embedded-Systems .......................................................................... 5
2.4.1 Fehlersuche bei der Software-Entwicklung ............................................................. 5
2.4.2 Benutzeroberfläche .................................................................................................. 6
3. Praktischer Einsatz eines Embedded-Prozessors................................................................... 6
3.1 Funktionsübersicht .......................................................................................................... 8
3.2 Aufbau der Hardware...................................................................................................... 8
3.3 Anforderungen am Hardwaredesign ............................................................................... 9
3.4 Software-Design............................................................................................................ 10
3.4.1 Benutzerschnittstelle.............................................................................................. 10
3.4.2 Hardwarenahe Treiber ........................................................................................... 13
3.4.2.1 Festplatte ........................................................................................................ 13
3.4.2.2 LC-Display ..................................................................................................... 13
3.4.2.3 Tastatur und Drehimpulsgeber....................................................................... 14
3.4.3 MP3 Datenstrom.................................................................................................... 15
3.4.3.1 Internet MP3 Stream Format ......................................................................... 15
3.4.3.2 MP3 Dateiformat............................................................................................ 16
3.5 Zusammenfassung......................................................................................................... 16
4. Ausblick............................................................................................................................... 16
5. Quellenverzeichnis .............................................................................................................. 16
Anzahl Seiten: 17
Datum: 12.10.2005
Seite
: II
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
1. Vorwort
Der Anlass für die Entwicklung des Internetradios war der Wunsch, ein vom PC
unabhängiges Gerät zu entwerfen, welches neben der Wiedergabefunktion auch eine
Aufnahmefunktion bietet.
Weiterhin war die Herausforderung sich mit der Materie der hardwarenahen Programmierung
in verschieden kombinierten Einzelsystemen gegeben.
Die angestrebte Praxistauglichkeit des Radios soll dabei als Maßstab für die Entwicklung der
Funktionalität sowie der Bedienbarkeit dienen.
2. Embedded-Prozessoren und Systeme
2.1 Einsatzgebiete
Embedded-Systems ist der englische Fachbegriff für eingebettete Computersysteme, die ihren
Dienst in einer Vielzahl von Anwendungsbereichen und Geräten versehen. Dabei sind die
wesentlichen Einsatzgebiete in dezentralen und meist auch vernetzten Steuerungs- und
Regelungseinrichtungen wie z.B. im Flugzeug- und Automobilbereich sowie in vielen
Geräten der Unterhaltungselektronik wie z.B. Fernseher (speziell digitales Fernsehen), DVDPlayer/Rekorder und MP3-Player.
Gemäß der Definition ist ein eingebettetes System eine aus zusammenhängender Hard- und
Software bestehende Einheit, die durch die im Voraus geplanten Eigenschaften definierte
Schnittstellen hat.
Der Grund für den Einsatz ist, dass eingebettete Systeme durch ihre individuelle
Anpassungsmöglichkeit der Schnittstellen an die Anforderungen und Bedürfnisse der
Systemumgebung durch die hardwarenahe Konstruktion und die trotzdem große Flexibilität
durch die austauschbare Software besitzen.
Die Skalierbarkeit des gesamten Systems in seiner Leistungsfähigkeit lässt einen effizienten
Einsatz zu, bei der kaum Ressourcen verschwendet werden.
Durch den hardwarenahen Bezug der Software unterscheidet sich deren Programmierung
grundsätzlich von der Entwicklung für übliche Desktop- bzw. PC-Systeme. Zum einen sind
die eingesetzten Betriebssysteme in eingebetteten Systemen oft auf Echtzeitanforderungen
und weniger auf z.B. die grafische Benutzeroberfläche ausgerichtet und zum anderen
unterscheiden sich die verschiedenen Systeme untereinander in vielen Einzelheiten, wodurch
für jedes spezialisierte eingebettete System eine individuelle Programmierung erfolgen muss.
Die dabei bevorzugten Programmiersprachen sind daher zum einen die direkte
Programmierung der Hardware in Assembler oder zum anderen hardwarenahe Sprachen wie
z.B. C. [wk1]
Durch den Fortschritt in der Sprachentwicklung von Java (mobile) sowie die Portierung der
Java Virtual Machine auf verschiedene Systeme und auch speziellen Java-Prozessoren ist aber
auch die Verbreitung von Java-orientierten Systemen größer geworden. Ein wesentlicher
Anteil ist dabei der Einsatz solcher Systeme in der mobilen Telekommunikation.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 3
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
2.2 Verlauf der technischen Entwicklung
Einer der ersten Einsatzgebiete von eingebetteten Systemen war in der militärischen
Raketenindustrie, wo die Systeme für die Zielberechnung eingesetzt wurden. Durch die
damit verbundene Massenproduktion wurden entsprechende Systeme kostengünstiger und
auch für die zivile Anwendung verfügbar.
Eines der ersten bedeutendsten Systeme war der Apollo Guidance Computer, welcher für
die Raumfahrt entwickelt wurde. [wk1]
Die erst ab dem Jahr 1971 verfügbaren Mikroprozessoren und -kontroller haben aber erst
die Miniaturisierung für den weit verbreiteten Einsatz gebracht. Die Weiterentwicklung
dieser Prozessoren mündet in der Entwicklung der heutigen Systeme. [pc]
Von Beginn an war der Grund für den Einsatz von auch nachträglich programmierbaren
Einheiten die Kostenersparnis, da einerseits Material eingespart werden kann und
andererseits vielfach die Komponenten wieder verwendet werden können und so
Entwicklungskosten gesenkt werden können.
Die erste Manifestierung des so genannten Embedded-Markts geschah im Jahr 1989
durch die Embedded Systems Conference. Die Hersteller haben derzeit den wachsenden
Markt der eingebetteten Systeme erkannt und eigenständig aufgestellt.
Der Anteil der verbauten Prozessoren in eingebettete Systeme ist am Markt auch größer
als der Anteil der Prozessoren in für PCs und Workstations. Dabei waren 1998 nur rund
ein Prozent der Prozessoren in PCs, Workstations und Apple Macintoshs verbaut worden,
bei den 32bit-Prozessoren lag der Anteil bei 100 Millionen Prozessoren in der ComputerIndustrie und 250 Millionen Prozessoren im Embedded-Bereich (Bild 2.2.1) [ct].
Bild 2.2.1: Anteile der eingesetzten Prozessoren in Millionen Stück.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 4
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
2.3 Anforderungen an ein Embedded-System
Obwohl eingebettete Systeme meistens auf derselben Hardware wie Arbeitsplatzcomputer
basieren, unterliegen sie anderen Randbedingungen. Die wichtigsten Anforderungen sind
geringe Kosten, geringer Platz- und Energiebedarf. Dazu kommt ein möglichst flexibler
Einsatz in vielen Bereichen, um möglichst große Stückzahlen und die damit verbundene
Kostenreduzierung zu erreichen. Verwendet werden meist etwas ältere Komponenten, die in
ihrer Technologie entweder noch weiterentwickelt werden oder schon ausgereift sind und
genügend Erfahrungen über deren Verwendbarkeit vorliegen. Außerdem ist der Preis geringer
als bei den neuesten Komponenten.
Viele Anwendungsgebiete erfordern aber auch eine Echtzeitfähigkeit des eingebetteten
Systems. Realisiert wird dies durch den Einsatz von speziellen Betriebssystemen, welche die
auf das notwendige reduzierte Hardware kontrolliert. Die Ein- und Ausgabe ist meist ohne
Bildschirm bzw. Tastatur, und besteht zumeist aus einer an die Anwendung angepassten
Einheit.
Die Verwendung von festgelegter Hardware ermöglicht die erforderlichen Parameter für den
Echtzeiteinsatz genau zu bestimmen und schon im Voraus eine Aussage über das
Antwortverhalten des eingebetteten Systems zu machen. [wk1]
2.4 Entwicklung eines Embedded-Systems
Der Entwicklung eines eingebetteten Systems geht die Planung der gewünschten Aufgabe und
der Definition der Funktionen mit deren Randbedingen voran. Dabei stehen sich meist die
gewünschte Rechenleistung mit dem benötigten Speicher und die vorhandene
Betriebsumgebung mit eingeschränktem Raumangebot und eingeschränkter Wärmeabfuhr
gegenüber.
Die Wahl der notwendigen Systemplattform ist zudem abhängig von der erforderlichen
Peripherie bzw. den Schnittstellen. Dabei ist eine höhere Funktionalität des Mikroprozessors
oder -kontrollers von Vorteil, da weniger zusätzliche Peripheriebausteine eingesetzt werden
müssen. Dabei ist der Platzbedarf geringer und die Signallaufzeiten kürzer, je weniger
Bausteine verwendet werden.
Eine hohe Verfügbarkeit und definierte Antwortzeiten des eingebetteten Systems grenzen die
Auswahl der Plattform und des Betriebssystems sowie der Softwareentwicklungsumgebung
weiter ein.
Dazu können viele weitere Anforderungen wie z.B. Ausfallsicherheit, Sicherheitsaspekte oder
Schutz vor Umwelteinflüssen kommen, die je nach Anwendungsfall auftreten.
Jede Plattform wird meistens mit angepassten Entwicklungsumgebungen ausgeliefert. Dabei
sind die CPU-Architektur sowie das verwendete Betriebssystem entscheidend. Einige
Systeme werden mit herstellerspezifischen Entwicklungswerkzeugen ausgeliefert, andere sind
frei konfigurierbar.
2.4.1 Fehlersuche bei der Software-Entwicklung
Da die Entwicklung der Software für ein eingebettetes System nicht auf anderen Systemen
ohne weiteres getestet werden kann, haben sich verschiedene Methoden einer
Softwareentwicklung mit Testumgebung entwickelt. Dabei gehört zu der Fehlersuche auch
die Suche im mit der Hardware integrierten System.
Für die Softwareentwicklung kann ein In-Circuit-Emulator verwendet werden, bei der die
gesamte Hardware in einem Softwareprogramm auf dem Entwicklungssystem simuliert wird.
Dieses Verfahren ermöglicht eine Entwicklung ohne eine vorhandene Zielhardware, ist aber
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 5
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
relativ aufwändig.
Bei vorhandener Hardware wird oft mit Debugger-Werkzeugen gearbeitet, welche über eine
Schnittstelle mit der Zielhardware in Verbindung stehen. Dabei arbeitet der eigentliche
Debugger für die Fehlersuche auf dem Zielsystem und meldet alle Ereignisse an das
Entwicklungssystem.
Für den Systemtest wird das fertige System an Spezialhardware angeschlossen, die die spätere
reale Umgebung simuliert. Mit dieser so genannten Hardware-in-the-Loop-Technik kann das
Verhalten des Systems mit Testfällen detailliert untersucht werden.[wk1]
2.4.2 Benutzeroberfläche
Bei reinen Regelungs- oder Steuerungssystemen, die zyklische Berechnungen aufgrund von
Eingangssignalen durchführen und Ausgangssignale erzeugen, ist meistens keine
Benutzeroberfläche vorhanden. Lediglich eine Statusanzeige und/oder Bedienelemente für
das Ein- und Ausschalten sowie Zurücksetzen sind vorhanden.
Bei reaktiven Systemen, die auf Benutzereingaben warten, ist in der Regel eine Schnittstelle
vorhanden. Dabei kann diese als Bildschirm mit Eingabeelementen oder auch als
Webinterface ausgeführt sein, wobei diese Eigenschaften auch kombiniert werden können.
3. Praktischer Einsatz eines Embedded-Prozessors
Als beispielhaftes Projekt wurde ein Internet-Radio für das Anhören von MP3 Datenströmen
entworfen und aufgebaut. Dabei ist der Embedded-Prozessor SC12 der Firma Beck zum
Einsatz gekommen.
Der SC12 ist ein System-on-Chip, also ein komplettes Rechnersystem mit Prozessor, Speicher
und Peripheriebausteinen sowie ein Betriebssystem inklusive Dateisystem. Die gesamten
Komponenten sind in einem 32-poligen Gehäuse untergebracht (Bild 3.1). Die Wahl des
Gehäuses ist laut Hersteller begründet in der Einfachheit eine solche Komponente in
verschiedene Schaltungen einzusetzen und ggf. schnell austauschen zu können.
Bild 3.1: Der SC12 - Prozessor
Das vorinstallierte System ermöglicht umgehend einen Einsatz z.B. als Webserver, da der
integrierte Webserver vorkonfiguriert über die bereits implementierte Ethernet-Schnittstelle
betriebsbereit ist.
Neben der Netzwerkfähigkeit besitzt der SC12 Prozessor auch serielle Schnittstellen und
einen Intel-kompatiblen gemultiplexten Adress-/Datenbus mit Chipselect-Leitungen.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 6
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
Durch die Trennung des Betriebssystems von den Anwenderprogrammen ist der Austausch
der Software unabhängig voneinander teils auch während des Betriebs möglich. Dafür bietet
der Prozessor einen FTP-Server und einen Telnet-Zugang auf die Kommandozeileneingabe.
Der Prozessor ist in 16bit-Architektur gefertigt, aber dennoch für die meisten Anwendungen
leistungsfähig genug. Der Vorteil ist im Gegensatz zu 32bit-Architekturen die erheblich
günstigere Hardware.
Weitere Leistungsvorteile werden durch die Multitaskingfähigkeit des Betriebssystems
(RTOS) und die DMA-Unterstützung der seriellen Schnittstellen erreicht (Bild 3.2). [bc]
Bild 3.2: Die Software-Architektur des SC12
Der Speicher von insgesamt 1MB ist aufgeteilt in 512kB für den Arbeitsspeicher und je
256kB für das Betriebssystem und das integrierte Flash-Laufwerk. Der knappe Speicher kann
extern auf bis zu 2GB erweitert werden, weiterhin lässt sich über einen Adapter ein externes
Speichermedium wie z.B. eine Festplatte oder eine CompactFlash-Karte anbinden. Durch die
Kompatibilität des Betriebssystems zu dem DOS-Betriebssystem ist es möglich, ohne großen
Aufwand mit einem Standard-16bit-Compiler, der DOS-Programme erzeugen kann,
Anwendungen für den SC12 zu entwickeln. Vorzugsweise kann der Borland C++ Compiler
Version 5.0 eingesetzt werden, der speziell für den integrierten 80186-Prozessor angepassten
Maschinencode erzeugt. Durch die vorhandenen Entwicklungsbibliotheken kann einfach auf
die über die Standardfunktionalität eines DOS-Betriebssystems hinausgehenden Funktionen
des RTOS-Betriebssystems zugegriffen werden.
Die bekannten Parameter der Echtzeitfunktionalität lassen eine genaue Planung und
Implementierung eigener Anwendungen im Echtzeitbereich zu. Die integrierten HardwareTimer lassen zudem einen millisekundengenauen Aufruf eigener Funktionen zu.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 7
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
3.1 Funktionsübersicht
Die Planung der Funktionalität des gesamten Internetradios lehnt sich zum Teil an ein
vorhandenes Projekt an [tk].
Die vorhandene teilweise umgesetzte Möglichkeit, Internet-Streams akustisch wiederzugeben
sollte zum einen vervollständigt werden, und zum anderen um die Möglichkeit den
Datenstrom aufzuzeichnen erweitert werden. Die Aufzeichnung soll auch die Trennung in die
einzelnen gesendeten Musiktitel mit deren Benennung unterstützen. Die Auswahl der
verschiedenen Internet-Sender soll dabei am Radio auswählbar sein.
Zu der Möglichkeit, Internet-Streams abzuspielen und aufzuzeichnen soll das Radio auch die
gespeicherten oder über den FTP-Zugang selbst eingefügten Musiktitel abspielen. Die
Wiedergabe soll dabei umschaltbar entweder linear oder zufallsgesteuert erfolgen. Die
Steuerung aller Funktionen erfolgt dabei über die Tastbedienelemente und den
Auswahlschalter (Drehimpulsgeber), die Informationen über den Betriebszustand und
Musiktitelinformationen werden auf dem LC-Display ausgegeben.
Optional soll die Bedienung und Anzeige der Informationen über ein Webinterface erfolgen,
welches von einem anderen Computer aus aufgerufen werden kann. Idealerweise kann die
Bedienung von beiden Benutzerschnittstellen simultan erfolgen.
3.2 Aufbau der Hardware
Als Grundlage für den gesamten Aufbau ist das SC12-Entwurfsboard von Elektor [el]
verwendet worden. Dieses Board besitzt schon eine Grundausstattung an einsatzfähigen
Schnittstellen. Da jedoch einige Schnittstellen nicht implementiert waren oder benötigte
Schnittstellenleitungen mit anderen Schnittstellenimplementierungen belegt waren, musste
das Board an diesen Stellen geändert werden. Im Wesentlichen waren Änderungen an den
seriellen Schnittstellen notwendig, welche auf dem Board für den Einsatz mit einem PC oder
Modem nach außen geführt sind.
Da der SC12 nicht in der Lage ist, einen MP3-Datenstrom zu dekodieren, wurde auf die
Verwendung eines externen Dekoderbausteins VS1011 zurückgegriffen. Dieser Baustein
enthält einen integrierten DSP mit einem fest geladenen Algorithmus für die Dekodierung
und darüber hinaus auch eigene benutzerdefinierte Funktionen. Dieser Baustein wird für die
MP3-Audiodaten über die bidirektionale serielle Hochgeschwindigkeitsschnittstelle [SDI] des
SC12 angesteuert. Da die serielle Schnittstelle über den DMA-Kontroller gesteuert wird, ist
die CPU ausschließlich mit dem Empfang der Daten vom Netzwerk und der Bereitstellung für
den DMA zuständig. Die Steuerinformationen für den VS1011 werden über einen selbst
implementierten Datenkanal [SCI] übertragen.
Für die Speicherung des Internetradio-Anwenderprogramms und der aufgezeichneten MP3Dateien ist an den SC12 über eine Schnittstellenkarte ein Festplattenlaufwerk [IDE]
angeschlossen. Diese könnte ohne weiteres durch eine CompactFlash-Karte ersetzt werden,
was aber zunächst aus Kostengründen nicht umgesetzt wurde.
Die Schnittstellenkarte beinhaltet einen programmierbaren Logikbaustein (PLD), welcher die
Anpassung der Festplattenadressierung an den Multiplex-Bus der CPU vornimmt. Darüber
hinaus werden auch für den MP3-Dekoderbaustein die in paralleler Form anliegenden
Steuerinformationen über einen programmierten bidirektionalen Parallel-Seriell-Wandler
zusammen mit dem Freigabesignal weitergeleitet.
Der Anschluss des LC-Displays erfolgte am dafür vorbereiteten Konnektor auf dem ElektorBoard, welcher über einen Adressdekoder angesprochen werden kann. Da das LC-Display
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 8
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
direkt mit einer 8 Bit breiten Datenleitung am CPU-Bus angeschlossen ist, kann der Text
direkt an das Display über den Buszugriff ausgegeben werden.
Der Adressdekoder ist auch für vorbereitete digitale Ein- und Ausgänge zuständig, die durch
Register gepuffert sind. Über die Eingänge werden die Tastatur und der Drehimpulsgeber des
Auswahlknopfes eingelesen.
Digital I/O
LCD
SC12
Tasten
SDI
L
Imp
CPUBus
IDE
Festplatte
HDD
Interface
VS1011
R
SCI
Bild 3.2: Übersicht über die Hardware-Komponenten.
Die Übersicht der einzelnen Komponenten mit deren Schnittstellen untereinander ist in Bild
3.2 gezeigt.
3.3 Anforderungen am Hardwaredesign
Da getrennte Komponenten über Flachbandleitung verbunden worden sind, kam es im ersten
Aufbau zu keiner Funktion des Hardwareaufbaus. Bei einer teilweise relativ hohen
Übertragungsgeschwindigkeit konnte durch verschiedene Messungen der Signale ein zu
starkes Übersprechen zwischen den einzelnen Datenleitungen festgestellt werden. Lediglich
die Anbindung der Festplatte ist auf Anhieb gelungen, da in der Festplatte schon
entsprechende Maßnahmen getroffen sind, Signalstörungen zu begrenzen.
Durch eine schrittweise Vorgehensweise bei der Fehlersuche und der Korrektur der
betroffenen Signalleitungen konnten dann die Textausgabe auf das LC-Display und die
Abfrage der Tasten und des Drehimpulsgebers erfolgreich durchgeführt werden.
Für die nicht mögliche Inbetriebnahme des VS1011 waren gleichermaßen mehrere Ursachen
verantwortlich. Zum einen war die Spannungsversorgung des gesamten Aufbaus durch die
Verwendung eines Schaltnetzteils stark mit Störungen überlagert. Abhilfe konnte in diesem
Fall das Einbringen einer metallischen Abschirmung des Schaltnetzteils und das Ergänzen
eines Ladeelektrolytkondensators für die Glättung der Versorgungsspannung schaffen.
Um die Signalleitungen möglichst wenigen Störfrequenzfeldern benachbarter Komponenten
auszusetzen, wurde die VS1011-Platine näher am Elektor-Board untergebracht, da die
zwischen diesen beiden Komponenten bestehende Hochgeschwindigkeitsübertragung
besonders Störanfällig ist. Abschirmungsmaßnahmen der Datenleitungen haben nicht zum
Erfolg geführt, da die dadurch erheblich gesteigerte Leitungskapazität schon zu einer
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 9
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
enormen Dämpfung des Nutzsignals geführt hat.
Um dennoch eine Dämpfung der hochfrequenten Störsignale mit möglichst geringer
Nutzsignaldämpfung zu erzielen, sind am Eingangskonnektor des VS1011-Boards an den
stark beeinflussten Datenleitungen ausgewählte RC-Dämpfungsfilter eingesetzt worden.
Als letzte Maßnahme müssen noch an dem Versorgungsspannungsanschluss vom externen
Netztransformator und an dem Ausgang für das Audiosignal EMV-Entstörfilter eingesetzt
werden, damit von außen wirkende Netzspannungs-Transienten oder eingestreute Funkwellen
nicht den stabilen Schaltungszustand gefährden und zum anderen auch keine Störungen nach
außen hin abgegeben werden können.
3.4 Software-Design
Die gesamte Entwicklung der Software ist in der Programmiersprache C mit der Borland C++
5.0 – Entwicklungsumgebung durchgeführt worden. Dabei sind an hardwarenahen und/oder
zeitkritischen Stellen Abschnitte in Assemblersprache programmiert worden.
Die Entwicklung der Software ist auf Basis der Bibliotheken des Herstellers und angepassten
Bibliotheken [1] entstanden. Die notwendigen Funktionen, welche nicht oder in anderer Form
enthalten waren wurden ergänzt bzw. angepasst.
3.4.1 Benutzerschnittstelle
Die gesamte Benutzerführung ist Menüorientiert. Die Eingabenelemente sind dabei in allen
Menübereichen mit äquivalenten Funktionen belegt. So ist der Auswahlknopf immer mit
einer Auswahlfunktion oder während der Wiedergabe mit der Lautstärkeregelung verbunden.
Die farbig gestalteten Funktionstasten auch festen Funktionen zugeordnet. Entsprechend ihrer
Farben sind die graue Taste der Stopp- oder Abbruch-Funktion, die grüne Taste der
Wiedergabestart-Funktion und die rote Taste der Aufnahmestart-Funktion fest zugewiesen.
Für die Festplattenwiedergabe sind die blaue Taste mit der Zurück-Funktion und die weiße
Taste mit der Vor-Funktion belegt. Die gelbe Taste ist immer der Menü-Funktion zugeordnet,
welche auch im laufenden Betrieb verschiedene Untermenüs aufruft (Bild 3.4.1.1).
Sender
128kb stereo
0:00:05 78%
Auswahlknopf
Bild 3.4.1.1: Frontansicht der Bedienelemente
Bei dem Systemstart wird nach der Anzeige des Startbildschirms mit Angaben über den
Softwarestand [Firmware] die Auswahl der gewünschten Hauptfunktion angezeigt (Bild
3.4.1.2).
Die für die Entwicklung notwendigen Hardwaretestroutinen sind in der ersten SoftwareVersion in einem getrennten Menüpunkt auswählbar.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 10
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
Die Hardwaretests umfassen den Test der SCI- und SDI-Schnittstelle sowie der Ausgabe aller
Statusinformationen des VS1011.
StartBildschirm
Rücksprung
aus Funktion
FunktionsAuswahl
Auswahlknopf
InternetWiedergabe/
Aufnahme
FestplattenWiedergabe
HardwareTest
Bild 3.4.1.2: Benutzerführung bei Systemstart.
Wenn die Festplattenwiedergabe mit der Funktionsauswahl ausgewählt wurde, kann die
Wiedergabe durch den Startknopf gestartet werden. Während der Wiedergabe kann dann am
Auswahlknopf die Lautstärke reguliert werden. Für die Titelwahl kann mit der Vor- und
Zurück-Funktion in den Titeln gesprungen werden. Wiedergegeben werden alle Titel auf der
Festplatte. Die Wiedergabe wird durch das Betätigen der Stopp-Taste beendet. (Bild 3.4.1.3)
Zum
Rücksprung
Von
FunktionsAuswahl
Wiedergabemenü
Laufende
Wiedergabe
Zurück
Lautstärke
regeln
Vor
Bild 3.4.1.3: Festplattenwiedergabe
Wenn die Internetwiedergabe und -aufnahme ausgewählte wird, ist der erste Eintrag der
Senderliste vorgewählt.
Durch das Aufrufen der Senderliste mit der Menütaste kann der gewünschte Sender durch
Auswahl mit dem Auswahlknopf eingestellt werden. Da die Abfrage der aktiven Sender von
einem Senderverzeichnis aufgrund einer nicht veröffentlichten und geschützten Methodik
nicht möglich ist, ist auf der Festplatte eine Senderliste hinterlegt. Diese kann manuell über
den Zugriff per Telnet oder FTP aktualisiert werden.
Die Wiedergabe des gewählten Senders wird mit der Start-Taste begonnen. Die Aufnahme
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 11
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
wird zu der gestarteten Wiedergabe durch das Betätigen der Aufnahme-Taste aktiviert. Die
Aufnahme ist nur bei gleichzeitiger Wiedergabe möglich.
Während der Wiedergabe kann die Wiedergabelautstärke durch Regeln am Auswahlknopf
eingestellt werden. Die eingestellte Lautstärke beeinflusst nicht die Lautstärke der
aufgenommenen Dateien. Das Aufrufen des Senderauswahlmenüs unterbricht die Wiedergabe
und auch die Aufnahme. (Bild 3.4.1.4)
Zum
Rücksprung
Von
FunktionsAuswahl
InternetWiedergabeMenü
Laufende
Wiedergabe
SenderAuswahl
Laufende
Wiedergabe
+ Aufnahme
SenderAuswahl
Bild 3.4.1.4: Internetwiedergabe und Aufnahme.
Wenn bei der Funktionsauswahl die Hardwaretests ausgewählt werden, wird das Testmenü
angezeigt. Jeder einzelne Test kann beliebig oft nacheinander aufgerufen werden und die sich
ändernden Statusinformationen an der Telnetkonsole ausgegeben werden. Im Testmenü gilt
eine abweichende Tastenzuordnung, jeder Test wird über eine einzelne Taste gestartet.
Solange der Test läuft, wird im Display ein Sternchen (*) angezeigt. (Bild 3.4.1.5)
Zum
Rücksprung
Von
FunktionsAuswahl
Testmenü
SCI-Test
SDI-Test
Status
ausgeben
Bild 3.4.1.5: Hardwaretest
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 12
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
3.4.2 Hardwarenahe Treiber
Die wesentlichen Basisfunktionen sind durch hardwarenahe Programmteile realisiert. In
vielen Fällen stellt das Betriebssystem wichtige Funktionen bereit, die an die Anwendung als
Internetradio angepasst oder erweitert wurden.
Speziell für die zeitkritischen Bereiche, und auch um insgesamt effizient mit der Ressource
Arbeitsspeicher umzugehen, sind Teile in Assembler programmiert. Dabei unterstützt die
verwendete Entwicklungsumgebung das direkte Einbinden der Assemblerabschnitte.
3.4.2.1 Festplatte
Das Betriebssystem bietet vergleichbar mit der Laufwerksverwaltung von DOS die
Zuordnung eines Speicherbereichs zu einem Laufwerkssymbol, über welches auf den Bereich
zugegriffen werden kann. Der verwendete Bereich muss logisch mit dem DOS-Dateisystem
beschrieben sein. Der Zugriff erfolgt von der Seite des Betriebssystems blockweise in linearer
Adressierung.
Da verschiedene Speicherarten unterschiedlich adressiert werden müssen, wird vom
Betriebssystem eine Schnittstelle bereitgestellt, welche die Anpassung an die verwendete
Hardware vornimmt.
Im Fall der Festplatte wird diese über das ATA-Protokoll angesprochen und im CHS-Modus
adressiert. CHS steht für Zylinder-Kopf-Sektor und basiert auf dem physikalischen Aufbau
der Festplatte. Um eine lineare Speicherzuordnung aus Sicht des Betriebssystems zu
erreichen, muss die lineare Adresse in die CHS-Adresse umgerechnet werden (Bild 3.4.2.1.1).
C = Addrlin / (Heads ∗ Sectors )
t = Addrlin %(Heads ∗ Sectors )
H = t / Sectors
S = (t % Sectors ) + 1
Bild 3.4.2.1.1: Adressumrechnung von linearer Adresse zu CHS
Die Größe der Festplatte wird in der Berechnung mit der Gesamtanzahl der Schreib/Leseköpfe (Heads) und der physikalischen Sektoren (Sectors) eingebracht.
Wenn der Zugriff auf die Festplatte in linearer Adressierung möglich ist, muss die darauf
befindliche Partitionstabelle eingelesen werden. Bei dem Verwendeten
Schnittstellentreiberprogramm können im Zusammenhang mit dem Betriebssystem bis zu 16
Partitionen mit je maximal 2GB Größe verwaltet werden.
Anschließend wird dem Betriebssystem die Information bereitgestellt und über eine
Registrierung der Einspringpunkt für den Zugriff auf die Schreib-/Lesefunktionen bekannt
gemacht. Nun kann durch die Standard-DOS-Aufrufe an das Betriebssystem eine Datei
geöffnet oder angelegt und bearbeitet werden.
3.4.2.2 LC-Display
Das LC-Display ist direkt über einen 8bit-Anschluss mit dem Bus der CPU verbunden. Der
auf dem Elektor-Board vorhandene Adressdekoder (programmierter GAL-Baustein) fasst die
Adresse und die Chip-Select-Leitung (/CS) zusammen und generiert daraus ein einzelnes
Freigabesignal für das Display.
Das Display kann somit über eine definierte Adresse angesprochen werden. Das
Betriebssystem stellt für den direkten Buszugriff Funktionen bereit, wobei alle notwendigen
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 13
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
Signale durch diese Funktionen generiert werden.
Für die Kommunikation mit dem Display wird ein einfaches Kommunikationsprotokoll
verwendet, welches Befehle für die Betriebsart, das Löschen des Bildschirms, die
Positionierung des Cursors und die eigentliche Textausgabe bereitstellt. Da das Display auch
Prozessorgesteuert ist und für jeden Befehl eine bestimmte Zeitdauer für die Verarbeitung
benötigt, muss der Status vor jedem Befehl abgefragt werden. Die Abfrage vor und nicht nach
einem Befehl ist vorteilhaft, da der im Display integrierte Prozessor auch interne undefinierte
Aufgaben erledigt und somit auch ohne Befehlseingabe nicht bereit sein kann. Das Absetzen
eines Befehls zum Display führt dann zu unvorhersehbaren Anzeigeergebnissen.
Die im Programm verwendete Ausgabe ist für ein gleichmäßiges Anzeigeergebnis doppelt
gespeichert. Durch einen regelmäßigen Timer-Aufruf wird der Ausgabespeicher an das
Display gesendet. Da der Anzeigespeicher für die Verwendung mit nebenläufigen Tasks für
diese Arbeitsweise gekennzeichnet sein muss, wird automatisch bei der Erstellung des
Programms durch den Compiler eine optimale Multitasking-sichere Speicherung durch das
Einfügen einer weiteren Kopie erreicht.
Die erstellten Funktionen für die Textausgabe ermöglichen so eine unkomplizierte
störungsfreie Textausgabe, da der Text nur in den Ausgabespeicher geschrieben wird und
nicht auf die Bereitschaft der LCD-Hardware gewartet werden muss.
3.4.2.3 Tastatur und Drehimpulsgeber
Die Signale der Tastatur werden regelmäßig vom Eingangsdatenregister durch einen BusZugriff abgefragt. Dabei ist die Freigabe des Registers auch über den Adressdekoder
geschaltet.
Wie auch bei der Anzeige erfolgen die Abfrageereignisse in regelmäßigen Abständen durch
den Aufruf eines Timers.
Dadurch erhält man auch hier den Vorteil, nicht auf die Hardware warten zu müssen und
durch die Speicherung des letzten Zustands immer ein gültiges Signal zur Verfügung zu
haben. Dadurch können die notwendigen Einlesezyklen auf ein Minimum reduziert sein und
fügen sich so auch besser in die regelmäßige Struktur des gesamten Programms ein.
Der Drehimpulsgeber wird über einen eigenen und schnelleren Timer eingelesen, da sonst bei
erhöhter Drehgeschwindigkeit die Daten nicht erfasst werden. Die Zykluszeit des Timers
konnte nur verringert werden, weil die Abfrageprozedur des Drehimpulsgebers so klein wie
möglich gestaltet wurde.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 14
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
3.4.3 MP3 Datenstrom
MP3 steht eigentlich für das MPEG 1 Layer 3 Dateiformat, welches für die verlustbehaftete
Kompression von Audiodatenmaterial entwickelt wurde.
Im Zusammenhang mit der verbreiteten Nutzung des Internets und der höheren
Geschwindigkeit hat sich auch die Verbreitung von MP3-Daten über das Netzwerk
durchgesetzt. Im Grunde werden die gleichen Daten verwendet, die jeweiligen Unterschiede
bestehen lediglich in den vorhandenen Zusatzinformationen. Das MP3-Format ist Frame
(Seiten-)orientiert. Dabei sind gleichgroße Stücke zusammenhängend kodiert.[wk3] Die
Standardgröße für einzelne Frames liegt bei 8kB (Bild 3.4.3.1).
Frame 1
2
3
4
5
6
7
8
Weitere…
Bild 3.4.3.1: MP3-Frames.
3.4.3.1 Internet MP3 Stream Format
Für die Verbreitung der MP3-Daten werden spezielle Server eingesetzt, die es auch
ermöglichen, Informationen wie dem Sendernamen und dem Musiktitel zu übermitteln.
Header
MP3-Frame (8kB)
MetaTag
=0
MP3-Frame (8kB)
MetaTag
=1
MetaInfo
(128B)
MP3-Frame (8kB)
Bild 3.4.3.1.1: Möglicher Aufbau eines Internet-Datenstroms
Das Bild 3.4.3.1.1 zeigt den üblichen Aufbau eines neu gestarteten Übertragungsvorgangs.
Als erstes sendet der Server den Header. In diesem Datenblock sind die Angaben über den
Sendernamen und das Musik-Genre enthalten. Die Größe des Headers ist unterschiedlich und
wird durch den internen Aufbau gekennzeichnet.
Unmittelbar danach kann ein Frame gesendet werden. Nach jedem Frame kommt jedoch auf
jeden Fall der Meta-Tag. In dem Byte-großen Datenfeld wird die Anzahl der ihm folgenden
Meta-Info-Felder angegeben. Jedes der Meta-Info-Felder ist 128 Bytes groß. Die Meta-InfoFelder werden zusammenhängend betrachtet, wenn sie aufeinander folgend gesendet werden.
In den Meta-Info-Feldern ist die Information zu dem nächsten gesendeten Musiktitel
enthalten. Daher kann der Meta-Info-Block als Schnittmarke zwischen den einzelnen Titeln
herangezogen werden. Eine noch genauere Möglichkeit ist die Suche nach einer Lücke, also
ein aus 32 Bytes bestehender Block aus Nullwerten vor dem Meta-Tag. Da dieses Verfahren
die Zwischenspeicherung des gesamten Frames und die anschliessende Suche im gesamten
Block erfordert, während die Wiedergabe bei einer durchschnittlichen Datenrate von 10-20
kB/s läuft, wurde dies aufgrund der erforderlichen Rechenleistung zunächst nicht umgesetzt.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 15
Hochschule Bremen
Embedded-Prozessoren
Gunnar Krug (72541)
Fachbereich Elektrotechnik & Informatik
3.4.3.2 MP3 Dateiformat
Das Dateiformat ist ähnlich dem Internet-Stream, jedoch ohne Header und ohne Meta-Tags.
Die Titelinformationen werden mit dem einfach gehaltenen ID3-Tag-Verfahren gespeichert.
In der ID3-Tag Version 1 werden an die fertige Datei 128 Bytes angehängt, in denen die Titel
und Interpretendaten sowie Erscheinungsjahr usw. enthalten sind (Bild 3.4.3.2.1).
MP3-Frame (8kB)
MP3-Frame (8kB)
MP3-Frame (8kB)
ID3-Tag
(128B)
Bild 3.4.3.2.1: MP3-Dateiaufbau
3.5 Zusammenfassung
Das Projekt ein Internetradio zu entwerfen und fertig zu stellen ist trotz der aufgetretenen
Schwierigkeiten gelungen.
Die Wichtigkeit von Speicherplatz sparender und effizienter Programmierung ist stark
deutlich geworden. Der Aufbau des elektrischen Teils hat gezeigt, mit welchen
Schwierigkeiten zu rechnen ist, wenn nicht geeignete Maßnahmen zur Stabilisierung der
Schaltung getroffen werden.
Diese Erfahrungen können im weiter genutzt werden und bei der Entwicklung neuer Geräte
einfließen.
4. Ausblick
Im Projekt sind einige Funktionalitäten zurückgestellt worden. Die Weiterentwicklung und
Ergänzung der Funktionen kann durch die einfache Möglichkeit des Software-Austauschs
jederzeit erfolgen.
Eine interessante Möglichkeit ist auch der Ersatz der Festplatte durch ein integriertes FlashLaufwerk und/oder einer extern tauschbaren CompactFlash-Karte. Dadurch könnte der
Übertragungsvorgang über den FTP-Zugang entfallen und die Karten direkt in z.B. einem
tragbaren MP3-Player eingesetzt werden.
5. Quellenverzeichnis
[tk]
[el]
[wk1]
[wk3]
[pc]
[ct]
[bc]
http://www.kreapc.de/
http://www.elektor.de/Default.aspx?tabid=28&year=2001&month=7&art=70378
http://de.wikipedia.org/wiki/Eingebettetes_System
http://de.wikipedia.org/wiki/MP3
http://www.pc-erfahrung.de/Index.html?CPUHistorie.html
c’t 22/1999 Seite 44.
http://www.beck-ipc.com/ipc/products/category/index.asp?cat=1&sp=de
siehe Zusatzinformationen.
Anzahl Seiten: 17
Datum: 12.10.2005
Seite: 16