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