DE69925987T2 - Kraftfahrzeugcomputersystem mit audiounterhaltungssytem - Google Patents

Kraftfahrzeugcomputersystem mit audiounterhaltungssytem Download PDF

Info

Publication number
DE69925987T2
DE69925987T2 DE69925987T DE69925987T DE69925987T2 DE 69925987 T2 DE69925987 T2 DE 69925987T2 DE 69925987 T DE69925987 T DE 69925987T DE 69925987 T DE69925987 T DE 69925987T DE 69925987 T2 DE69925987 T2 DE 69925987T2
Authority
DE
Germany
Prior art keywords
audio
data
dma
entertainment system
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69925987T
Other languages
English (en)
Other versions
DE69925987D1 (de
Inventor
D. Richard BECKERT
M. Mark MOELLER
Hang Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69925987D1 publication Critical patent/DE69925987D1/de
Publication of DE69925987T2 publication Critical patent/DE69925987T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/03Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for
    • B60R16/0315Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for using multiplexing techniques
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/03Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for
    • B60R16/0315Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for supply of electrical power to vehicle subsystems or for using multiplexing techniques
    • B60R2016/0322Temporary code for documents to be reclassified to G08C, H04L or H04Q

Description

  • Technisches Gebiet
  • Die Erfindung betrifft ein Audio-Unterhaltungssystem für Fahrzeuge. Insbesondere betrifft die Erfindung ein Fahrzeug-Computersystem, das ein Audio-Unterhaltungssystem implementiert.
  • Hintergrund der Erfindung
  • Moderne Fahrzeuge sind üblicherweise mit mehreren unabhängigen elektronischen Systemen ausgerüstet. So besitzen beispielsweise die meisten modernen Fahrzeuge eine Audioanlage und ein Sicherheitssystem. Die meisten aktuellen Fahrzeugmodelle sind ebenso mit einem Diagnosesystem aufgebaut, das die Leistungen des Fahrzeugmotors, des Getriebes und der Treibstoffanlage und andere Komponenten analysiert (1996 oder später mit OBD II, 1993 oder später mit OBD 1). Bei einigen neuen Modellen sind die Fahrzeuge mit einem Navigationssystem ausgerüstet, das einen GPS(Global Positioning System)-Empfänger zum Empfangen von Signalen eines Satellitennetzwerks zur Berechnung von Koordinaten enthält, die das Fahrzeug auf der Erdoberfläche in Bezug auf das Längengrad, das Breitengrad und die Höhe lokalisiert. Zellulare Kommunikationssysteme wurden ebenso zu den Fahrzeugen hinzugefügt. Diese Kommunikationssysteme erlauben es dem Fahrzeugfahrer oder Fahrzeuginsassen, Telefonanrufe von ihrem Fahrzeug aus durchzuführen.
  • Obwohl diese verschiedenartigen elektronischen Systeme sich als nützlich für den Fahrzeugnutzer erwiesen haben, besteht ein Nachteil darin, dass die Systeme unverbunden und inkompatibel sind. Jedes System setzt separate proprietäre fest zugeordnete Prozessoren oder ASICs (Application Specific Integrated Circuits) ein, die inkompatible proprietäre Software ausführen. Wenn ein Fahrzeughalter ein Sicherheitssystem zu seinem/ihrem Fahrzeug hinzufügen möchte, so muss der Halter ein komplettes Sicherheitssystem von einem der Anbieter erwerben und muss es üblicherweise einbauen lassen. Es besteht keine Möglichkeit, Sicherheitsfunktionalitäten zu einem bestehenden elektronischen System wie beispielsweise dem Navigationssystem oder der Audioanlage hinzuzufügen.
  • Die US-Patentanmeldung 08/564,586 mit dem Titel „Vehicle Computer System", die am 29. November 1995 im Namen von Richard D. Beckert, Mark M. Moeller und William Wong angemeldet wurde, beschreibt ein Fahrzeug-Computersystem, das in der Lage ist, diese unterschiedlichen und getrennten Systeme zu integrieren und ebenso eine Mehrzweck-Computer-Plattform anzubieten, die eine einfache Erweiterbarkeit erlaubt. Das Fahrzeug-Computersystem bietet eine offene Hardware-Architektur und unterstützt ein Betriebssystem für offene Plattformen. Das Betriebssystem für offene Plattformen unterstützt mehrere unterschiedliche Anwendungen, die von einem Softwareanbieter bereitgestellt werden können. So kann das Betriebssystem beispielsweise Anwendungen unterstützen, die Unterhaltung, Navigation, Kommunikation, Sicherheit, Diagnosen und anderes betreffen. In der bevorzugten Implementierung ist das Betriebssystem ein Multi-Tasking-Betriebssystem, das in der Lage ist, mehrere Anwendungen konkurrierend ablaufen zu lassen.
  • Diese Erfindung betrifft ein Audio-Unterhaltungssystem, dass durch das Fahrzeug-Computersystem implementiert wird.
  • Die US 5701347 offenbart ein Audiosystem für Multimedia Computer Systeme einschließlich eines Audiomoduls mit Lautsprechern und Mikrofon und zugeordnetem Schaltkreis. Das Audiomodul ist derart angepasst, dass es zwischen einem Monitor und einem Monitorfuß eingefügt wird. Der Schaltkreis ist zum Betreiben der Lautsprecher des Audiomoduls und zum Betreiben lediglich eines Lautsprechers und des Mikrofons in einem Lautsprechertelefonmodus angepasst. Das Audiomodul ist mit einem Personalcomputer über einen Standardanschluss mit der Soundkarte des PCs verbunden. Ebenso wie die Lautsprecher und das Mikrofon kann das Audiomodul externe Audioeingänge zur Verbindung von externen Audiosignalquellen wie beispielsweise einen CD-Spieler umfassen. Ein Lautsprecherverstärker verstärkt die Audiosignale auf einen zum Betreiben der Lautsprecher geeigneten Pegel. Die Soundkarte von der CD ist in der Lage, die Lautsprecher in dem Audiomodul unter Kontrolle des PCs zu betreiben.
  • Zusammenfassung der Erfindung
  • Die Erfindung betrifft ein Fahrzeug-Computersystem, insbesondere die Audio-Unterhaltungsaspekte des Systems. Das Fahrzeug-Computersystem umfasst drei Module: ein Unterstützungsmodul, ein Computer-Modul und ein Blendenmodul. Das Unterstützungsmodul ist als ein Teil einer stationären Basiseinheit des Gehäuses ausgebildet, die sich in dem Fahrzeugarmaturenbrett oder an einem anderen Standort befindet. Sie weist ihre eigene Logikeinheit auf, die in einem FPGA (Field Programm able Gate Array), einem ASIC (Application Specific Integrated Circuit), einem kundenspezifischem Prozessor oder ähnlichem implementiert sein kann. Das Unterstützungsmodul weist zudem einen Audiosignalprozessor wie beispielsweise einen Audio-DSP (Digitaler Signalprozessor) auf, der die Signalverarbeitung von Audiodaten durchführt.
  • Das Computermodul kann eine separate Einheit sein, die an dem Unterstützungsmodul angeschlossen ist, oder seine Funktionalität ist in dem Unterstützungsmodul integriert. Das Computermodul weist einen Prozessor auf, der ein Betriebssystem ausführt. Das Computermodul und das Unterstützungsmodul sind mit einem mehrere Bit breiten Bus, wie beispielsweise einem PCI-Bus miteinander verbunden. Das Blendenmodul ist abnehmbar mit dem Unterstützungsmodul verbunden. Das Blendenmodul weist eine eigene Logikeinheit zur Kontrolle eines Displays und eines Tastenfelds auf, und optional einen RF-Transceiver wie beispielsweise ein Mobiltelefon oder ein Zweiwege-Funkempfänger. Das Blendenmodul und das Unterstützungsmodul sind über eine serielle Hochgeschwindigkeitsverbindung verbunden.
  • Das Audio-Unterhaltungssystem ist in erster Linie auf die Logikeinheit und den Audio-DSP des Unterstützungsmoduls gestützt. Das Unterstützungsmodul kann viele Audioquellen, wie beispielsweise einen CD-Player, CD-Wechsler, AM/FM-Empfänger, Auxiliary 1, Auxiliary 2, Computer-Wave-Ausgaben und ein Mikrofon aufnehmen. Das Unterstützungsmodul empfängt die Daten von den Quellen, bearbeitet sie mit dem Audio-DSP und gibt die Daten an das Lautsprechersystem oder an andere Ziele, wie beispielsweise ein USB-Peripheriegerät oder einen Speicher in dem Computermodul, aus.
  • Die Logikeinheit des Unterstützungsmoduls weist eine interne Adress-/Datenbusstruktur auf, die unabhängig und getrennt von dem internen Bus des Computermoduls ist. Dieser Bus der Logikeinheit arbeitet als peripherer Kommunikationspfad, so dass Daten von den Audioquellen ohne einen Eingriff des Computermoduls verarbeitet werden können. So kann beispielsweise die gesamte Audiotonerzeugung, -verarbeitung und -ausgabe durch das Unterstützungsmodul gehandhabt werden, während die Verarbeitungsressourcen des Computermoduls minimal belegt sind.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung umfasst ein Unterhaltungssystem einen Datenspeicher, eine zum Empfang von Audiodaten von einem oder mehreren peripheren Audioquellen verbundene Logikeinheit und einen Datenprozes sor zum Verarbeiten von Audiodaten, wobei die Logikeinheit eine oder mehrere Audio-DMA(direct memory access)-Schaltungen aufweist, die jeweils entsprechenden peripheren Audioquellen zugeordnet sind, wobei jede Audioquellen-DMA-Schaltung die von der zugeordneten peripheren Audioquelle empfangenen Audiodaten in einen Speicherbereich innerhalb des Datenspeichers schreibt, und wobei die Logikeinheit auch eine Datenprozessor-DMA-Schaltung aufweist, die dem Datenprozessor zum Auslesen der Audiodaten aus dem Speicherbereich innerhalb des Datenspeichers zur Übermittlung an den Datenprozessor zugeordnet ist.
  • Vorzugsweise umfasst das System zusätzlich eine Synchronisationsschaltung, um eine erste Rate, mit der die Audioquellen-DMA-Schaltung die Audiodaten in den Datenspeicher schreibt, mit einer zweiten Rate zu synchronisieren, mit der die Datenprozessor-DMA-Schaltung die Audiodaten aus dem Datenspeicher liest. Die Logikeinheit kann Audiodaten von vielen verschiedenen Audioquellen an den Datenprozessor zur konkurrierenden Verarbeitung konkurrierend übermitteln.
  • In dem System umfassen die eine oder mehrere Audioquellen-DMA-Schaltungen vorzugsweise eine erste DMA-Schaltung, eine zweite DMA-Schaltung und eine dritte DMA-Schaltung, und die eine oder mehreren peripheren Audioquellen weisen eine erste periphere Audioquelle und eine zweite periphere Audioquelle auf, wobei die erste DMA-Schaltung der ersten peripheren Audioquelle zum Übermitteln erster Audiodaten von der ersten peripheren Audioquelle zu einer ersten Stelle in dem Datenspeicher zugeordnet ist, wobei die zweite DMA-Schaltung der zweiten peripheren Audioquelle zum Übermitteln zweiter Audiodaten von der zweiten peripheren Audioquelle zu einer zweiten Stelle in dem Datenspeicher zugeordnet ist, und wobei die dritte DMA-Schaltung dem Datenprozessor zum Übermitteln der ersten und zweiten Audiodaten von den ersten und zweiten Stellen in dem Datenspeicher an den Audiodatenprozessor zur konkurrierenden Verarbeitung und Ausgabe an ein oder mehrere Audioziele zugeordnet ist.
  • Es ist bevorzugt, dass die ersten Audiodaten zu einem ersten Satz von Lautsprechern und die zweiten Audiodaten gleichzeitig zu einem zweiten Satz von Lautsprechern ausgegeben werden.
  • Es ist bevorzugt, dass das Unterhaltungssystem zusätzlich ein Application Program Interface zur Definition einer Schnittstelle zwischen den auf dem System betriebenen Anwendungsprogrammen und einem Audiounterhaltungssubsystem umfasst, wobei das Application Program Interface auf dem Datenprozessor des Systems ausführbar ist und Funktionen ausweist, die von einem Anwendungsprogramm zur Steuerung des Audiounterhaltungssubsystems aufrufbar sind.
  • Das Application Program Interface umfasst vorzugsweise eine Funktion zum Auswählen einer Audioquelle und/oder eine Funktion zum Ein- und Ausschalten von Surround Sound und/oder eine Funktion zum Ändern von Equalizer-Einstellungen und/oder eine Funktion zum Ändern von Lautstärke, Balance und Überblendcharakteristiken.
  • Die Erfindung kann ein mit der internen Adress-/Datenbus-Struktur der Logikeinheit des Unterstützungsmoduls verbundenen Satz von Ping/Pong-Puffern in dem Datenspeicher verwenden, die vorübergehend die zwischen den unterschiedlichen Audiogeräten kommunizierten Daten halten. Die Logikeinheit umfasst DMA(Direct Memory Access)-Schaltungen, die mit jedem der Audiogeräte zum Kennzeichnen eines bestimmten Speicherbereichs des Eingabe-/Ausgabespeichers zum Halten von Daten zugeordnet sind, wobei die Daten von den zugeordneten Geräten empfangen oder zu den zugeordneten Geräten gesendet wurden. Audiodaten werden unter Verwendung einer Mapping-Overlay-Technik ausgetauscht, bei der die DMA-Schaltungen für zwei Audiogeräte von bzw. zu demselben Speicherpuffer lesen bzw. schreiben. Während eine DMA-Schaltung Audiodaten von einem Gerät (d.h. einem AM/FM-Empfänger, einem CD-Spieler, usw.) in dem Ping-Puffer ablegt, liest die andere DMA-Schaltung Daten von dem Pong-Puffer zur Ausgabe an ein anderes Audiogerät (beispielsweise ein Audiosignalprozessor).
  • Das Audio-Unterhaltungssystem verarbeitet die digitalen Audiodaten mit einer internen Abtastrate (beispielsweise 44,1 kHz), die durch eine Haupttaktfrequenz bestimmt und von einem 48 MHz Taktgeber und einem durch Software anpassbaren Teilerregister in dem Unterstützungsmodul abgeleitet wird. Daten, die von dem Puffer zu dem Audio-DSP zur Verarbeitung übermittelt werden, sind mit dieser Rate abgetastet. Dennoch kann ein mit seinem eigenen Taktsignal betriebenes Audioquellengerät Audiodaten in den Speicherpuffer mit einer Rate schreiben, die nicht exakt mit der Ausgabe-DMA-Taktrate übereinstimmt. Die Software des Audio-Unterhaltungssystems passt das Teilerregister zum Beeinflussen der Haupttaktfrequenz zu dem CODEC an, um die Datenschreibe- und Datenleseoperationen in den Ping/Pong-Puffer zu synchronisieren.
  • Das API ermöglicht, Anwendungen zum Kontrollieren von verschiedenen Audioquellen ohne Kenntnis der Hardware und Details der Implementierung der zugrunde liegenden Audioanlage auf dem Computer zu betrieben. Verschiedene Audiogeräte und ihre Treiber kontrollieren verschiedene Funktionalitäten des Audiosystems, wie beispielsweise Equalizer, Lautstärkekontrollen und Decodierung des Surround Sounds. Das Audio-Manager-API übertragt durch die Anwendungen getätigte Aufrufe an den/die passenden Gerätetreiber.
  • Die Erfindung kann zum Handhaben von Sprachdaten genutzt werden, die von einem Mikrofon zur Eingabe an ein Spracherkennungssystem empfangen wurden. Die Sprachäußerungen, die durch das Mikrofon erfasst wurden, werden mit einer durch den CODEC zur Verfügung gestellten Abtastrate von 44,1 kHz abgetastet.
  • Dennoch verwendet das Spracherkennungssystem eine unterschiedliche Abtastrate, wie beispielsweise eine erheblich langsamere Abtastrate von 11 kHz. Statt einen separater Analog-/Digital-Wandler zum Abtasten von Mikrofondaten hinzuzufügen (was zusätzliche Kosten verursachen würde) konvertiert der Audio-DSP eher die Mikrofondaten von der höheren Abtastrate von 44,1 kHz zu den gewünschten 11 kHz. Das System benutzt ein SPI (Serial Peripheral Interface) des Audio-DSPs, um die Mikrofondaten huckepack mit dem Kommando-/Nachrichtenstrom zu transportieren. Der DSP führt eine normale Tiefpassfilterung und ein Down-Sampling des Datenstroms durch und nutzt dann das SPI, um die Mikrofondaten mit ihrer neuen Abtastrate von 11 kHz huckepack mit dem Nachrichtenstrom zurück auszusenden.
  • Kurze Beschreibung der Zeichnungen
  • In allen Zeichnungen werden dieselben Bezugszeichen verwendet, um gleiche Komponenten oder Merkmale zu bezeichnen.
  • 1 ist eine schematische Darstellung eines Fahrzeug-Computersystems.
  • 2 ist eine schematische Darstellung des mit mehreren externen Peripheriegeräten verbundenen Fahrzeug-Computersystems.
  • 3 ist ein Blockdiagramm des Fahrzeug-Computersystems gemäß einer Implementierung mit einem Blendenmodul, einem Unterstützungsmodul und einem Computermodul.
  • 4 ist ein Blockdiagramm einer Logikeinheit und eines Audio-DSPs, die in dem Unterstützungsmodul des Computersystems implementiert sind.
  • 5 ist ein Blockdiagramm einer Speicherzugriffschaltung, die Daten von Peripheriegeräten in einem Ping/Pong-Puffer abbildet.
  • 6 ist ein Blockdiagramm einer Haupttakteinstellerschaltung.
  • 7 ist ein Blockdiagramm einer Bus-Schlichter-Schaltung.
  • 8 zeigt eine Audio-Software/Hardware-Interface-Architektur.
  • 9 ist ein Funktionsdiagramm, das den Audiodatenfluss in einem Audio-Manager-API darstellt.
  • 10 ist ein Blockdiagramm, das den Gebrauch eines SPI-Ports zum Austauschen von Sprachdaten zwischen dem Audio-DSP und der Logikeinheit darstellt.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • Die Erfindung bezieht sich auf eine Audioarchitektur für ein Audio-Unterhaltungssystem. Aspekte dieser Erfindung sind besonders gut für Fahrzeug-Unterhaltungssysteme geeignet. Zur Erörterung wird die Audioarchitektur im Zusammenhang eines Fahrzeug-Computersystems beschrieben.
  • 1 zeigt ein Fahrzeug-Computersystem 20 gemäß einer Implementierung dieser Erfindung. Das Fahrzeug-Computersystem 20 weist einen zentralen Computer 22 auf, der mit verschiedenen externen Peripheriegeräten einschließlich eines optionalen Monitors 24, Sicherheitssensoren 26, eines Fahrzeugdiagnose-Interface 28, Lautsprecher 30, einer Fahrzeugbatterie 32, einer Ersatzbatterie 33 und Antenne(n) 34 verbunden ist. Der Computer 22 ist in einem Gehäuse 36 eingebaut, das zur Montage in einem Fahrzeug-Armaturenbrett ähnlich einer konventionellen Autostereoanlage bemessen ist. Vorzugsweise weist das Gehäuse 36 einen Formfaktor eines einfachen DIN (Deutsche Industrie Normen) auf. Allerdings könnte es möglicherweise in einer 2 DIN Einheit oder anderen speziellen Formfaktoren für ein OEM untergebracht sein.
  • Auf den Computer 22 läuft ein Betriebssystem für offene Plattformen, das viele Anwendungen unterstützt. Durch die Verwendung eines Betriebssystems für offene Plattformen und einer offenen Computersystemarchitektur können verschiedene Softwareanwendungen und Hardwareperipherien von unabhängigen Anbietern hergestellt und anschließend durch den Fahrzeugnutzer nach dem Kauf des Fahrzeugs installiert werden. Dies ist dahingehend vorteilhaft, dass die Softwareanwendungen nicht eigens für einmalig entworfene Embedded Systems konfiguriert werden müssen. Auf der offenen Hardwarearchitektur läuft vorzugsweise ein Multitasking-Betriebssystem, das ein grafisches Nutzer-Interface verwendet. Ein bevorzugtes Betriebssystem ist das Windows CE-Betriebssystem, das durch die Microsoft Corporation verkauft wird. Ein Multitasking-Betriebssystem erlaubt die gleichzeitige Ausführung von mehreren Anwendungen.
  • Der Computer 22 umfasst mindestens ein Speicherlaufwerk, das dem Fahrzeugnutzer das Herunterladen von Programmen und Daten von einem Speichermedium erlaubt. In der dargestellten Implementierung weist der Computer 22 ein CD-ROM-Laufwerk 38 auf, das anwendungsbezogene CDs ebenso wie Musik-, Video-, Spiele- oder andere Arten von Unterhaltungs-CDs liest. Das CD-ROM-Laufwerk 38 übernimmt eine doppelte Aufgabe als Speicherlaufwerk und als Abspielgerät für die Unterhaltung. Der Computer 22 weist ein optionales 3,5''-Diskettenlaufwerk 40, ein optionales SmartCard-Lesegerät 42 und ein doppelter PC-Karten-Sockel oder CompactFlash-Karten-Sockel 44 auf, der PC-Karten vom Typ I, II und III (ehemals PCMCIA-Karten) oder CompactFlash-Karten akzeptiert. Daneben kann ein Festplattenlaufwerk (nicht abgebildet) auf dem Computer 22 zur Speicherung von Anwendungsprogrammen und Nutzerdaten eingefügt sein. Ein DVD(Digital Videodisk)-Abspielgerät kann ebenso in dem Computer 22 enthalten sein.
  • Die Speicherlaufwerke sind in einer Grundeinheit 46 des Gehäuses 36 eingebaut. Die Grundeinheit 46 ist zum Einbau in dem Armaturenbrett konstruiert und dimensioniert. Optional kann die Grundeinheit in derselben Art und Weise wie ein Laptop von seiner ihm zugeordneten Docking Station abnehmbar ausgestaltet sein. Diese gehobene Variante erlaubt es dem Nutzer, seinen Fahrzeug-Computer nach Hause oder ins Büro zu nehmen, damit er als sein tragbarer PC dient.
  • Das Gehäuse 36 weist eine abnehmbare Blende 48 auf, die zentral an der Vorderseite der Basiseinheit 46 befestigt ist. Die Blende kann gedreht werden, um einen einfachen und angenehmen Zugang zu den Speicherlaufwerken zu ermöglichen. Die komplette Blendeneinheit 48 verhält sind wie ein multifunktionales Peripheriegerät zu der Computerplattform.
  • Die Blende 48 weist ein Tastenfeld 52 und eine grafische Anzeige 54 auf. Die Anzeige 54 ist vorzugsweise ein hinterleuchtetes LCD mit einer rechteckigen Pixel-Matrix, die einzeln für eine Beleuchtung oder Anzeige auswählbar sind. Das Anzeigeelement ist ein Bitmap-Anzeigesystem mit mittlerer Auflösung, das mindestens 10.000 Pixel aufweist. In der beschriebenen Implementierung weist die Pixel-Matrix eine Größe von mindestens 64 Pixeln in vertikaler Richtung und 256 Pixel in horizontaler Richtung auf. Das Betriebssystem der Grundeinheit 46 wirkt mit dem Tastenfeld 52 der Blende und der Anzeige 54 der Blende als Peripheriegeräte zusammen, wenn die Blende 54 mit der Grundeinheit 52 verbunden ist.
  • Die Blende 48 weist ein Start-Knopf 56 auf, der gewohnten „Start"-Funktionen eines Betriebssystems der Marke Windows anbietet. Die Blende 48 weist ebenso einen Netzschalter 58, ein Vier-Position-Bedienteil 60, eine „Eingabe"-Taste 62, eine „Abbruch"-Taste 64, eine „Hilfe"-Taste 66, eine „Menü"-Taste 68 und eine Lautstärkereglereingabe 70 auf.
  • Der Computer 22 weist ein Spracherkennungssystem auf, um dem Nutzer eine Spracheingabe von Kommandos in einer handfreien, blickkontaktsfreien Umgebung zu ermöglichen. Diese Sprachkommandos können zur Kontrolle der meisten Betriebszustände der Fahrzeugcomputerplattform ebenso wie zur Kontrolle von auf dem Computer ablaufenden Anwendungen genutzt werden. Ein mit dem Unterstützungsmodul verbundener Spracheingabe-Port 72 kann vorzugsweise an dem Blendschutz oder an anderen Stellen zum optionalen Erfassen von Spracheingabe zur Eingabe an das Spracherkennungssystem (siehe 3) befestigt sein. Der Computer 22 unterstützt ebenso ein auf der Blende 48 befestigter IrDA(Infrared Developers Association)-Transceiver-Port 74 zum Übertragen und Empfangen von Daten und Programmen unter der Verwendung von Infrarotsignalen.
  • Zum Laden einer Anwendung oder Daten auf den Computer 22 legt der Fahrzeugnutzer eine CD oder andere Medien (falls die Anwendung nicht bereits auf der Festplatte enthalten ist) in das entsprechende Laufwerk und das Betriebssystem lädt die Anwendung oder die Daten von diesem herunter. Der Installationsvorgang kann automatisch durch das Betriebssystem durchgeführt werden oder durch die Unterstützung von Kommandoeingaben des Nutzers in Form einer Tastenfolge auf dem Tastenfeld 52 oder durch Sprachanweisungen unter Verwendung des Spracherkennungsgeräts. Eine weitere Technologie zum Laden von Daten und Anwendungen oder zum Übertragen von Daten mit anderen EDV-Geräten besteht durch die Nutzung des IrDA-Tranceiver-Ports 74 oder der drahtlosen Internetverbindung.
  • Im Allgemeinen kann das Fahrzeug-Computersystem 20 zum Integrieren von mehreren fahrzeugbezogenen Systemen auf einer offenen Plattform-Hardware- und Software-Architektur genutzt werden. Das Fahrzeug-Computersystem 20 kann beispielsweise als ein Multimedia-Unterhaltungssystem, ein Navigationssystem, ein Kommunikationssystem, ein Sicherheitssystem und ein Diagnosesystem dienen. Außerdem bietet das Fahrzeug-Computersystem 20 zusätzliche Funktionalität, die üblicherweise mit Desktop oder Laptop-Personalcomputern in Verbindung gebracht werden. So kann beispielsweise das Fahrzeug-Computersystem 20 Adressbuch-Anwendungen, E-Mail-Programme und Terminkalender-Anwendungen unterstützen. Darüber hinaus kann das Fahrzeug-Computersystem 20 zum Betreiben als ein Server für andere EDV-Einheiten in dem Fahrzeug zur Verteilung von Spielen, Videofilmen oder dergleichen an die Insassen konfiguriert werden.
  • 2 zeigt den Computer 22 gemäß einer Implementierung der Erfindung. Der Computer 22 weist drei primäre Module auf: ein Blendenmodul 80, ein Unterstützungsmodul 82 und ein Computermodul 84. Das Computermodul 84 ist im betriebsbereiten Zustand mit dem Unterstützungsmodul 82 über einen mehrere Bit breiten Bus 86 verbunden. In der bevorzugten Implementierung umfasst der mehrere Bit breite Bus ein PCI(Pheripheral Component Interconnect)-Bus. Das Unterstützungsmodul 82 und das Blendenmodul 80 sind über eine serielle Hochgeschwindigkeitsschnittstelle 88, die serielle Hochgeschwindigkeitsdatenkommunikation unterstützt, untereinander verbunden.
  • Das Unterstützungsmodul 82 ist ebenso mit einem USB(Universal Serial Bus)-Hub 90 über ein USB-Seriell-I/F-Verbinder 92 verbunden. Der USB-Hub 90 bietet Verbindungen zu vielen Peripheriegeräten (zum Beispiel, bis zu 128 Geräten). Peripheriegeräte umfassen beispielsweise das OBD(On Board Diagnostic)-System 28, das Sicherheitssystem 26, Navigationssystem 94, eine drahtlose Verbindung 96 zu dem Internet, einen CD-ROM-Wechsler 98, einen TV-Empfänger 100 und Nutzer-Eingabe/Ausgabe-Geräte wie einen Joystick, Tastatur oder eine Maus 102. Dieser USB-Hub 90 könnte wie in 2 dargestellt getrennt oder in einem oder mehreren der USB-Peripheriegeräte integriert ausgestaltet sein.
  • 3 zeigt die drei Module des Fahrzeug-Computers 22 etwas ausführlicher. Das Unterstützungsmodul 82 befindet sich in der typischerweise stationären Grundeinheit 46 (1), die in das Fahrzeug-Armaturenbrett oder an anderer geeigneter Stelle befestigt ist. Das Unterstützungsmodul 82 umfasst eine Logikeinheit 110, die zum Ermöglichen der Kommunikation zwischen Peripheriegeräten, dem Erzeugen eines quer über das Fahrzeug-Computersystem genutzten Hauptaudiotaktsignals und dem Koordinieren der Unterhaltungsfunktionalität des Computersystems verantwortlich ist. Die Logikeinheit 110 kann als ein FPGA (Field Programmable Gate Array) implementiert sein. Es sei bemerkt, dass der Logik-Code für einen FPGA unter Verwendung einer Hardware-Beschreibungssprache wie beispielsweise VHDL (IEEE Standard 1076-1993) entwickelt wird und für eine ASIC(Application Specific Integrated Circuit)-Architektur rekompiliert werden kann. Die Logikeinheit 110 kann zudem als ein Mikroprozessor, ein RISC(Reduced Instruction Set Computing)-Prozessor oder andere Verarbeitungsgeräte implementiert sein.
  • Das Unterstützungsmodul 82 weist mehrere Hardware-Interfaces auf. Ein USB-Interface 112 wird über den PCI-Bus 86 betrieben und stellt die Verbindung zu verschiedenen USB-Peripheriegeräten, wie in 2 dargestellt, her. Ein separater USB-Hub kann – wie gezeigt – notwendig sein, falls einige der angebundenen Peripheriegeräte nicht ein und mehrere USB-Peripheriegeräte einschließen als direkt durch das Unterstützungsmodul unterstützt angebunden sind. Ein optionaler VGA- oder ein Controller 114 für andere hochwertige Grafik wird auf dem Unterstützungsmodul 82 zum Betreiben einer optionalen Anzeige 24 (1) zur Verfügung gestellt. Der VGA-Controller 114 wird ebenso über den PCI-Bus betrieben. Ein IDE-Controller 115 wird ebenso in dem Unterstützungsmodul zur Verfügung gestellt.
  • Es sei angemerkt, dass das USB-Interface 112 und der VGA-Controller 114 in der Logikeinheit 110 enthalten sein könnte. Ein ATAPI-IDE-Interface (zum Betreiben von CD-ROM oder DVD-Abspielgerät benötigt) und ein PCI-Interface sind als Teil der Logikeinheit 110 implementiert. Zur Unterstützung von Videoanwendungen mit höherer Bandbreite wie beispielsweise mehrere Bildschirme, könnte ein P1394-Interface dem System hinzugefügt und über das PCI-Interface betrieben werden oder in der Logikeinheit 110 enthalten sein.
  • Das Unterstützungsmodul 82 umfasst ebenso einen Audio-Signalprozessor 116 zur Durchführung von Tonverarbeitungsalgorithmen, die enthalten können: Tonentzerrung, digitale Überblendung, Bass, Höhe, Lautstärke, Surround Sound, Dolby Pro- Logic, AC-3- und MPEG-Decodierung. Der Audio-Signalprozessor 116 betreibt ebenso einen Digital/Analog-Wandler für eine Sechskanalaudioausgabe (nicht dargestellt). Der Audio-Signalprozessor 116 ist vorzugsweise als ein DSP (digitaler Signalprozessor) wie beispielsweise ein Motorola DSP56009 implementiert. Das Unterstützungsmodul umfasst ebenso ein AM/FM-Empfängermodul 118, ein GPS(Global Positioning System)-Chipsatz 120 zum Ermöglichen von Satellitennavigation zur Messung von Längengrad, Breitengrad und Höhe des Fahrzeugs und einen oder mehrere Audio-Analog/Digital- und Digital/Analog-Wandler („CODECs") 122.
  • Ein schneller Daten-Eingabe/Ausgabe-Speicher 130 arbeitet als ein Hochgeschwindigkeitsdatenkommunikationspuffer zwischen den seriellen Peripheriegeräten. Der schnelle Datenspeicher ist vorzugsweise als ein Hochgeschwindigkeits-SRAM(Static Random Access Memory) mit Hochgeschwindigkeits-Ping/Pong-Puffern 132 implementiert, um eine Hochgeschwindigkeitspufferung und eine Ping/Pong-Speicherung von Audiodaten oder USB-Daten, die die internen Aktionen des Prozessors minimiert, zu bieten. In der bevorzugten Implementierung agiert der Eingabe/Ausgabe-Speicher 130 als ein schneller Datenspeicherpuffer, der einen Datenaustausch zwischen vielen Geräten aufnimmt.
  • Das Blendenmodul 80 befindet sich auf der abnehmbaren Blende (1). Das Blendenmodul 80 ist mit dem Unterstützungsmodul 82 über eine Steckverbindung verbunden, die die einfache Abnehmbarkeit der Blende 48 von dem Hauptgehäuse 36 erleichtert. Das Blendenmodul 80 übermittelt über die abnehmbare Steckverbindung bidirektionale Daten an das Unterstützungsmodul 82 mittels einer seriellen Hochgeschwindigkeitsverbindung 88. Das Blendenmodul 80 umfasst eine Logikeinheit 140, die als ein FPGA, ASIC oder andere Einheit implementiert sein kann. Das Blendenmodul 80 umfasst ebenso ein Tastenfeld 52, eine Anzeige 54 und einen IrDA-Port. Zusätzlich enthält das Blendenmodul 80 einen Schacht für einen optional einsteckbaren RF-Transceiver 144 wie beispielsweise ein Mobiltelefon, Zweiwege-Funkempfänger oder Punkt-zu-Punkt-Spreizspektrum-Tranceiver.
  • Typischerweise befindet sich das Computermodul 84 in der in dem Armaturenbrett befestigten Grundeinheit 46 und umfasst einen Prozessor in Form eines Mikroprozessors 150 wie beispielsweise einen Intel x86-artigen Mikroprozessor. Im eingesteckten Zustand ist das Computermodul 84 mit dem PCI-Bus 86 zur Kommunikation mit dem Unterstützungsmodul 82 verbunden.
  • Auf dem Mikroprozessor 150 läuft das Windows CE Betriebssystem der Microsoft Corporation. Das Betriebssystem ist in einem ROM 152 oder einem Flash-Speicher 154 auf dem Unterstützungsmodul gespeichert. Das Computermodul 84 unterstützt jede Variante von Anwendungen, die der Fahrzeugnutzer wünschen könnte. Diese Anwendungen können ebenso auf dem ROM 152, Flash-Speicher 154, DRAM 156 oder auf einem entfernbaren Speichermedium (nicht dargestellt) wie beispielsweise einer CD-ROM, Kassette, PC-Card-Flash-Speicher, PC-Card, Festplattenlaufwerk oder Diskette gespeichert sein. Zusätzlich können Nutzeranwendungen über eine optionale drahtlose Internetverbindung heruntergeladen werden.
  • Das Computermodul 84 weist ein PC-Card-Interface 158 auf, das einen PC-Card-Sockel oder ein Compact-Flash umfasst und PC-Cards vom Typ I, II oder III unterstützt (beispielsweise zusätzlichen Speicher, Festplattenlaufwerke, Modems, RF-Transceiver, Netzwerkkarten oder andere PC-Card-Peripheriegeräte). Das Computermodul 84 weist ebenso ein optionales SmartCard-Interface 160 auf, das SmartCards oder vergleichbare Karten mit integrierten Schaltkreisen akzeptiert.
  • Eine detailliertere Erklärung der drei Module in dem Fahrzeug-Computersystem befindet sich in der gleichzeitig anhängigen US-Patentanmeldung mit der Nummer 08/564,586 und dem Titel „Vehicle Computer System", die am 29. November 1995 im Namen von Richard D. Beckert, Mark M. Moeller und William Wong angemeldet wurde. Diese Anmeldung wurde auf die Microsoft Corporation übertragen und ist hier durch Verweis eingearbeitet worden.
  • Die Logikeinheit 110 ist mit ihrer eigenen mehrere Bit breiten Busstruktur aufgebaut, die von dem Bus des Mikroprozessors 150 des Computermoduls 84 getrennt ist. Die Logikeinheit 110 und der Mikroprozessor 150 sind untereinander mit einem Bus wie beispielsweise einem PCI-Bus 86 verbunden. Durch Aufbauen der Logikeinheit 110 mit ihrem eigenen internen Bus ist die Logikeinheit 110 in der Lage, ihre Aufgaben unabhängig von den Eingriffen des Mikroprozessors 150 besser zu erfüllen. Ferner erleichtert der interne Bus der Logikeinheit 110 die Datenkommunikation zwischen den Audiokomponenten und anderen seriellen Geräten bei gleichzeitig minimaler Nutzung der Bearbeitungsressourcen des Mikroprozessors 130.
  • Eine detaillierte Beschreibung einer Implementierung der Logikeinheit 110 befindet sich in der gleichzeitig anhängigen US-Patentanmeldung mit der Nummer 08/668,781 und dem Titel „Vehicle Computer System with High Speed Data Buffer and Serial Interconnect", die am 24. Juni 1996 im Namen von Richard D. Beckert, Mark M. Moeller, Ron Randall und Wiliam Wong angemeldet wurde. Diese Anmeldung wurde auf die Microsoft Corporation übertragen und ist hier durch Verweis eingeflossen. Die in dieser Offenbarung beschriebene Logikschaltung stellt eine andere Implementierung der Logikeinheit 110 dar, die spezieller für die Implementierung des Audio-Unterhaltungssystems zugeschnitten wurde.
  • Audio-Architektur
  • Das Computersystem 20 unterstützt ein Audio-Unterhaltungssystem. Wie oben erwähnt übernimmt die Logikeinheit 110 in dem Unterstützungsmodul 82 viele der Funktionen für das Audio-Unterhaltungssystem. Diese Erfindung bezieht sich auf die Audio-Architektur für ein Audio-Unterhaltungssystem wie beispielsweise das in dem Computersystem 20 implementierte.
  • 4 zeigt die Verbindung der Logikeinheit 110 und dem Audiosignalprozessor 116 und zusätzlich zwischen der Logikeinheit 110 und anderen durch einen 12C-Bus kontrollierten Audiokomponenten einschließlich des CODECs 122, des AM/FM-Empfängers 118, des RBDS-Decodierers 170. In diesem Referenzaufbau ist der Audio-Signalprozessor 116 als ein DSP in dem SPI(Serial Peripheral Interface)-Slave-Modus konfiguriert.
  • Die Logikeinheit 110 gibt zwei serielle digitale I2S Audioströme DSPin0 und DSPin1 an den Audio-DSP 116 aus. Eine identische Parallel-zu-seriell-Wandlerschaltung erzeugt jeden Datenstrom. Die Schaltung liest ein paralleles Wort aus einem Halteregister und ordnet es in einem Ausgabe-Schieberegister an. Ein I2S-Takt (64 × 44,1 kHz) für die serielle Schiebeoperation, der extern durch den CODEC 122 erzeugt wird, schiebt die Daten aus dem Schieberegister. Die Übertragung der Daten von dem Halteregister zu dem Schieberegister ist mit einem Haupt-SCLK-Signal (linker, rechter Taktgeber) synchronisiert, das extern durch den CODEC 122 generiert wird. Das LRCK-Signal wird zur Signalisierung genutzt, ob die Daten mit dem Audiosignal des rechten oder linken Kanals verknüpft sind.
  • Die beiden Stereoaudioströme werden an dem DSP 116 über zwei getrennte I2S-Eingangskanäle empfangen und werden zum Aufrufen irgendeiner der zahlreichen DSP-Audioalgorithmen wie beispielsweise dem Surround Sound genutzt. Die verarbeiteten Audiodaten werden von dem DSP 116 zurück an die Logikeinheit 110 über drei separate I2S-Kanäle zu einem DSPout-Interface ausgesendet. Die drei DSP-Ausgabekanäle umfassen einen Kanal SD0 für den Lautsprecher vorne links und vorne rechts, einen Kanal SD1 für den Lautsprecher hinten links und hinten rechts und SD2 umfasst den Center und Subwoofer. Jeder Tonkanal weist einen 20-bit Ton auf, der in einem 32 Takte langen Rahmen zusammengefasst ist, wobei das MSB (Most Significant Bit) dem MSB für I2S entspricht und zwölf Nullen dem LSB (Least Significant Bit) folgen.
  • Eine Tonquelle ist mit einem der DSPin-Kanäle in der Logikeinheit 110 durch einen DMA(Direct Memory Access)-Prozess der Überlagerung einer Ping/Pong-Pufferzone in den Eingabe/Ausgabe-Speicher 130 verbunden. Daten von einer Tonquelle werden an einem seriellen Interface empfangen und zu einem der Ping/Pong-DMA-Schaltungen 172 übergeben. Die DMA-Schaltungen 172 umfassen einen Seriell-zu-Parallel-Wandler zur Wandlung der Daten in ein paralleles Format für die Übergabe über den internen Bus der Logikeinheit zu dem Eingabe/Ausgabe-Speicher 110.
  • Eine weitere Besonderheit dieser Hardwareimplementierung ist die Fähigkeit, dass vier Stereo-DMA-Prozesse parallel betrieben werden. Zwei Audioquellen wie beispielsweise eine Wave-Ausgabe und CD-ROM könnten in zwei Ziele wie beispielsweise DSPin0 und DSPin1 eingegeben werden. Die Vordergrundaudioquelle (wie beispielsweise die Anweisungen des Navigationssystems) können über die Frontlautsprecher des Autos abgespielt werden, während die Hintergrundaudioquelle (wie beispielsweise CD-Musik) über die Rücklautsprecher des Autos abgespielt werden können.
  • Allgemeine DMA-Struktur
  • 5 zeigt ausführlicher eine Ping/Pong-DMA-Schaltung 172. Alle der Ping/Pong-DMA-Schaltungen sind Abwandlungen desselben Grundaufbaus. Zur Erörterung wird eine DMA-Schaltung für einen Monomikrofonempfänger gezeigt.
  • Die DMA-Schaltung 172 weist einen Seriell-zu-Parallel-Wandler 200 zum Wandeln der seriellen von dem zugeordneten Tonquellenperipheriegerät empfangenen Daten in ein paralleles Format auf. Die parallelen Daten sind anfangs in einem Halteregister 202 angeordnet. Wenn das Halteregister 202 voll wird, sendet es ein Signal zu der DMA-Request-and-Grant-Schaltung 204.
  • Ein DMA-Adresszeiger wird durch die Ausgabe von zwei logischen Komponenten gebildet: (1) einem Startadressregister 206, das die oberen DMA-Adresszeilen zum Auffinden eines geeigneten Puffergebietes innerhalb des Eingabe-Ausgabe-Speichers 130 zum Halten der von dem Halteregister 202 empfangenen Daten enthält, und (2) einem Aufwärtszähler 208, der die unteren DMA-Adresszeilen für das Puffergebiet erzeugt. Der Computerprozessor initialisiert den DMA-Prozess durch Schreiben eines Adresszeigers auf das Startadressregister 206. Der Startadresszeiger wird in den unteren Adresszähler 208 und in das obere Adressregister 206 gleichzeitig geschrieben. Der obere Adressregisterzeiger definiert den Anfang des Puffergebiets in dem schnellen Datenspeicher 110. In dieser Implementierung werden die unteren Adressbits in dem Startadressregister 208 zum Vergleichen mit dem zuletzt gültigen Adressregister genutzt. Die Startadresse des Puffergebiets ist auf einem Rand der Speicherseite und die Größe des Puffergebiets ist eine vorgegebene Größe entsprechend der Größe der Speicherseite.
  • Der untere Adresszähler 208 greift auf eine bestimmte Stelle innerhalb des bestimmten Pufferbereichs des Eingabe/Ausgabe-Speichers 130 zu. Die Anzahl der Bits in dem Zähler 208 entspricht der Größe des Puffergebietes. In dieser Implementierung verwendet der Zähler neun Adressbits A2 bis A10, wobei die Bits A0 und A1 zu Null gesetzt sind. Die Zahlausgabe durch den Zähler 208 wird als Zeiger auf eine bestimmte Stelle genutzt, in die die Daten in dem Halterregister 202 gespeichert werden müssen. Sobald die Daten an die Speicherstelle übermittelt sind, wird der Zähler 208 erhöht, um die nächste geeignete Stelle zu referenzieren.
  • Die DMA-Schaltung 172 definiert einen Puffer des Eingabe/Ausgabe-Speichers, der sich in zwei Hälften aufteilt: einem „Ping"-Puffer und einem „Pong"-Puffer. Eine Hälfte des Puffers repräsentiert einen Teil des Puffergebietes für ein bestimmtes Peripheriegerät wie beispielsweise die Monoeingabeschaltung, in die Daten von diesem Gerät geschrieben werden. Umgekehrt repräsentiert die andere Hälfte des Puffers einen anderen Teil des Puffergebiets, von dem die Daten gelesen werden, der DSPin-DMA-Schaltung. Die Eingabe/Ausgabe-Pufferzonen für die Tonquelle weisen die gleichen Anfangs- und Endpunkte wie die Zone für die DSPin-Daten für den DSP auf, und daher kann über diese Zonen gesagt werden, dass sie sich „überlagern". Während die Quelle den Ping-Speicherpuffer auffüllt, wird der Pong-Puffer zu dem DSPin-Ausgang ausgelesen. Nachdem die Quelle den Ping-Puffer gefüllt hat, beginnt sie, den Pong-Puffer zu füllen. Zur gleichen Zeit wird der Prozess zur seriellen DSPin-Ausgabe das Lesen des Pong-Puffers beenden und das Lesen des Ping-Puffers beginnen.
  • Das obere Adressbit A10 des unteren Adresszählers 208 unterteilt das Puffergebiet in den Ping- und den Pong-Puffer. Wenn ein Wechsel des oberen Adresszählerbits auftritt, kann ein Interrupt erzeugt werden, falls die entsprechende Interrupt-Maske aktiviert ist. Nach dem Schreiben des Startadresszeigers in das Register 206 und den Zähler 208 initialisiert der Prozessor ein Register 210 für die „letzte gütige Adresse". Dieses Register ist ein Latch, das dieselbe Größe wie der untere Adresszähler 208 aufweist. Das Register 210 für die „letzte gültige Adresse" enthält ebenso ein Bit zum Aktivieren der DMA, das zum Starten des DMA-Prozesses gesetzt wird.
  • Der DMA-Prozess beginnt mit dem Anfangsstartadresszeiger. Jeder DMA-Zyklus wird eine Erhöhung der DMA-Adresse um eine Einheit verursachen. Wenn der Wert in dem unteren Adresszähler 208 gleich dem Wert in dem Register 210 für die „letzte gültige Adresse" ist, was durch den Komparator 212 bestimmt wird, wird der untere Adresszähler 208 auf Null zurückgesetzt und ein Interrupt erzeugt. Der DMA-Prozess fährt dann von dem Anfang des DMA-Puffers fort, der auf dem Rand einer Speicherseite liegt, wobei die Größe der Speicherseite gleich der Größe des Ping/Pong-Puffers ist. Wenn das MSB des unteren Adresszählers wechselt, wird ein Interrupt erzeugt werden (falls unmaskiert), um den Wechsel zwischen dem Ping- und dem Pong-Pufferraum zu definieren.
  • Der DMA-Prozess ist derart voreingestellt, dass er bei Datenpaketen in Byte-, Word- oder Double-Word-Größe vorkommen kann. Eine IrDA-DMA-Schaltung verwendet beispielsweise Datenpakete in Byte-Größe (d.h. 8 Bits), da diese die Grundgröße der empfangenen Daten ist. CD-ROM-Daten werden in Word-Größen (d.h. 16 Bits) übertragen, was für seine Busgröße angebracht ist. I2S-DMA-Daten werden auf einer Double-Word-Größe (d.h. 32 Bits) übertragen, was ein links/rechts 16 Bit-Datenpaar repräsentiert.
  • Die DMA-Adressbits A0 und A1 werden durch die geeignete DMA-Schaltung gesteuert. Diese Bits werden durch ein vier Byte breites Auswahlsignal decodiert und ersetzt. Die unteren beiden Bits (A0 und A1) des unteren Adresszählers werden genutzt, um eine der Byte-Auswahlleitungen auszuwählen, falls die Übertragung Byteweise geschieht. Das untere Bit (A1) des Zählers wird genutzt, um das obere Paar oder das untere Paar der Byte-Auswahlleitungen auszuwählen, falls die Übertragung Word-weise geschieht. In diesem Fall werden beide Byte-Auswahlleitungen gleichzeitig gesetzt. Alle vier Byte-Freigaben werden für Double-Word-Übertragungen gesetzt. Auf diese Weise bringt der DMA-Prozess Datenpakete in Byte-, Word- oder Double-Word-Größe in Einklang.
  • Im Falle eines seriellen Empfangsprozesses wird ein von einem Peripheriegerät empfangener serieller Datenstrom in einen Seriell-Parallel-Wandler 200 zum Bilden von Einheiten mit 8, 16 oder 32 Bit Länge geschoben. Nach einer geeigneten Anzahl von Schiebevorgängen werden die Daten an das Register 202 übergeben. Der Prozess des Übergebens von Daten an das Halteregister 202 setzt das REQ-Signal in der Ping/Pong-DMA-Schaltung.
  • Immer wenn das Halterregister 202 voll ist, wird die Ping/Pong-DMA-Schaltung 172 das nächste Audio-Wort von dem Halterregister 202 greifen und es in dem Eingabe/Ausgabe-Speicherpuffer 132 ablegen. Immer wenn ein DMA-Prozess eine Ping- oder Pong-Grenze überschreitet, wird ein Interrupt erzeugt werden (falls unmaskiert). Dies trifft sowohl für den DMA-Prozess der Audio-Quelle als auch für den DMA-Prozess des DSPin-Kanal zu. Der Umkehrschluss beinhaltet, dass im Falle eines Übertragungs-DMA-Prozesses wie beispielsweise dem DSPin0-Kanal bei einem leeren Halterregister die DMA-Ping/Pong-Schaltung das nächste Audio-Wort von dem Eingabe/Ausgabe-Speicher greifen und es in dem Halterregister ablegen wird.
  • Synchronisieren der DMA-Prozesse auf gemeinsam genutzte Ping/Pong-Puffer
  • Nochmals in Bezug auf 4 benutzt die Audio-Architektur die durch die DMA-Schaltungen 172 erzeugten Interrupts als eine Möglichkeit zum Synchronisieren von zwei DMA-Prozessen, die denselben Ping/Pong-Puffer 132 teilen. Daten von einer DMA-Schaltung werden in den gemeinsam Ping/Pong-Pufer 132 geschrieben und anschließend von dem Puffer zu einer anderen DMA-Schaltung gelesen. In Abhängigkeit von der Audio-Quelle können die DMA-Schaltungen mit unterschiedlichen Raten schreiben und lesen. In der beschriebenen Implementierung nutzt die Ausgabe-DMA-Schaltung eine Abtastrate von 44,1 kHz, die durch die Logikeinheit zur Verfügung gestellt wird. Jedoch kann die Eingabe-DMA-Schaltung eine geringfügig andere Datenrate nutzen. Ein Audio-Gerät beispielsweise, das mit seinem eigenen Taktsignal arbeitet und das an das USB angeschlossen ist, kann Audiodaten in den Puffer 132 mit einer Rate schreiben, die nicht genau 44,1 kHz beträgt. Demzufolge kann die Eingabe-DMA-Taktrate nicht genau mit der Ausgabe-DMA-Taktrate übereinstimmen, da sie von unterschiedlichen Taktschaltungen gesteuert werden.
  • In den bevorzugten Implementierungen steuern unterschiedliche Threads und Gerätetreiber die Lese- und Schreibe-DMA-Prozesse des gemeinsam genutzten Ping/Pong-Puffers. Ein Gestalter einer Audioquelle braucht lediglich einen Gerätetreiber zu entwickeln, der den gemeinsam genutzten Puffer mit seiner Taktrate füllt.
  • Es werden folgende Beispiele betrachtet. In einem ersten Szenario sind die Schreibe- und Lese-DMA-Prozesse auf dem 44,1 kHz Haupttakt basiert. Zur Erläuterung dieses Szenarios wird davon ausgegangen, dass der AM/FM-Empfänger 118 die Quelle der Audiodaten umfasst. Die Audio-Datenausgabe des AM/FM-Empfängers 118 wird durch den CODEC 122 digitalisiert und als ein I2S-Audiostrom zu der Logikeinheit 110 ausgegeben. Die Logikeinheit 110 wandelt den I2S-Strom in ein linkes und ein rechtes Paar von 16 Bit-Worten um und eine erste DMA-Schaltung für den AM/FM-Empfänger schreibt das Wortpaar in den „Ping"-Teil des durch den DMA-Zeiger angezeigten Puffers. Während die AM/FM-Empfängerdaten in den Ping-Speicher geschrieben werden, liest eine zweite DMA-Schaltung gleichzeitig Daten von dem entsprechenden „Pong"-Teil des Pufferspeicherprozesses und gibt diese Daten an den DSPin-Ausgang aus. Da sowohl der Schreibe-Prozess als auch der Lese-Prozess mit 44,1 kHz ablaufen, geschieht der Wechsel zwischen Ping und Pong gleichzeitig sowohl bei den einkommenden als auch bei den abgehenden Daten. Die Interrupts, die sowohl durch die einkommenden als auch abgehenden Wechsel erzeugt werden, können ignoriert werden, außer wenn der Computer ein Interesse an den Daten (beispielsweise beim Senden an USB oder an Diskette) hat.
  • In dem zweiten Szenario schreibt die Quelle Daten mit einer geringfügig von den internen 44,1 kHz abweichenden Rate. Angenommen ein CD-ROM-Spieler ist beispielsweise die Quelle der Daten. In diesem Fall wird der Ping/Pong-Speicherpuffer 132 derart konfiguriert, dass der CD-ROM-Speicherbereich mit dem Speicherbereich der DSPin-Ausgabe überlappt. Eine mit dem CD-ROM assoziierte DMA-Schaltung 172 füllt den „Ping"-Speicherpuffer mit Bytes der Audiodaten zuzüglich einiger Worte von Sub-Kanal-Daten. Gleichzeitig liest die DMA-Schaltung für die DSPin-Ausgabe Daten aus dem „Pong"-Speicherpuffer mit einer Rate von 44,1 kHz.
  • Als nächstes wird angenommen, dass der CD-ROM-Spieler Audiodaten von der CD-ROM mit einer Audiorate von 44,1 kHz liest. Mit dieser Rate erzeugt der CD-ROM-Spieler jede 1/75 Sekunde einen Block von 2,352 Bytes der Audiodaten. Wenn dieser Block bereit ist, aktiviert der CD-ROM-Spieler die DMA-Request-Leitung, überträgt rasch den Datenblock und deaktiviert die Leitung bis er den nächsten Block empfängt. Die DMA-Schaltung erzeugt ein Interrupt an dem Ende der Übertragung des Blocks. Aufgrund dieses Prozesses kann die Audiodatenrate des CD-ROM-Spielers geringfügig anders als der Haupttakt von 44,1 kHz sein, der den Audio-DSP 116 und den CODEC 122 ansteuert.
  • Zum Synchronisieren dieser beiden Datenströme benutzen die Software-Gerätetreiber die Logikeinheit 110, um die Zeit zwischen dem Datentransfer der Blöcke des CD-ROM-Spielers zu messen, und passt den Hauptaudiotakt des Unterstützungsmoduls derart an, dass er mit der CD-ROM-Datenrate übereinstimmt.
  • 6 zeigt eine Haupttakteinstellerschaltung 230, die in der Logikeinheit 110 implementiert ist. Die Haupttakteinstellerschaltung 230 weist ein Referenzregister 232, ein Zähler 234 mit eingebautem Teiler durch N, zwei Komperatoren 236, zwei Latches 238 und eine Steuerlogik 240 auf. Die zwei Komperatoren 236 helfen bei der Bestimmung der Rate, mit der Daten in einen Ping/Pong-Puffer geschrieben werden. Der Host-Computer schreibt einen Zeiger auf die Latches 238. Der Zeiger entspricht einer Adresse in dem Eingabe/Ausgabe-Speicher 130 eines Ping/Pong-Puffers 132. Jede Operation, die Daten an diese Adresse schreibt, verursacht eine Erzeugung eines Interrupts an den Host (falls unmaskiert). Wenn der Interrupt auftritt, liest der Computer die Adressposition des DMA-Prozesses, während er Daten ausliest, und basierend auf diese Position bestimmt er, ob die ankommende Datenrate mit der ausgehenden Datenrate übereinstimmt.
  • Falls die Raten abweichen, sendet der Computer einen Wert an das Referenzregister 232. Dieser Wert wird an den Zähler 234 mit eingebautem Teiler durch N zur Erzeugung der Referenz-Audiotaktrate für die digitalen Audiokanäle auf dem Unterstützungsmodul eingegeben. Für gewöhnlich liegt der Referenzaudiotakt bei 44,1 kHz. Jedoch kann der Computer einen Wert übertragen, der den Referenzaudiotakt durch Beschleunigung oder Verlangsamung der Rate, mit der die Daten ausgelesen werden, derart anpasst, dass sie mit den Datenraten der ankommenden Audioströme synchronisiert wird.
  • In dem Software-Aufbau kann ein einziger gemeinsam genutzter Speicherpuffer für mehrere Eingabegeräte zum Schreiben von Daten und für lediglich ein Ausgabegerät zum Lesen der Daten genutzt werden. Der Lese- und Schreibe-DMA-Prozess des gemeinsam genutzten Ping/Pong-Puffers werden durch verschiedene Threads und Gerätetreiber gesteuert. Die Aufgabe hier ist das Schreiben eines Gerätetreibers zur Standardausgabe, um zu den meisten Audioquellen zu passen. Der Gerätetreiber der Audioquelle wird lediglich dazu benötigt, um den gemeinsam genutzten Puffer mit seiner eigenen Rate zu füllen.
  • Eine Alternative zur Benutzung eines einzigen gemeinsam genutzten Puffers zwischen verschiedenen Audioquellen ist der Einsatz von mehreren gemeinsam genutzten Speicherpuffern für sich entsprechende Audioquellen. Jede Audioquelle benutzt ihren eigenen Puffer und der Ausgabegerätetreiber schaltet zwischen den verschiedenen Eingangspuffern, falls die aktuelle Audioquelle wechselt. Der Nachteil bei dieser Implementierung besteht darin, dass sie mehr Speicherplatz benötigt. Zusätzlich ist es nicht notwendiger Weise einfach für eine neue Audioquelle, den Ausgabegerätetreiber von einem neuen gemeinsam genutzten Audiopuffer in Kenntnis zu setzen.
  • Wie oben erwähnt füllt der Schreibe-Thread (durch den Gerätetreiber der Audioquelle gesteuert) den gemeinsam genutzten Puffer mit einer durch das Gerät gesteuerten Taktrate, die ungefähr bei einer Abtastrate von 44,1 kHz liegt. Falls der Lese-Thread ebenso auf der gleichen Taktrate läuft (beispielsweise ein Radio) entstehen keine Probleme. Jedoch wird für Peripheriegeräte (beispielsweise CD und USB-Geräte) die Taktrate nicht exakt zusammenpassen. Früher oder später wird ein Ausgaberauschen entstehen, da die Eingabe-DMA und Ausgabe-DMA einander einholen können und mit einem Zugriff auf dieselbe Ping/Pong-Pufferregion beginnen. Damit der Lese-Thread seine Taktrate zu der des Schreibe-Threads anpassen kann, verwendet das System den Schreibe-Benachrichtigungs-Interrupt (der auslöst, wenn das mittlere DWORD des Ping/Pong-Puffers geschrieben ist). Durch Beobachten des gewöhnlichen Lesen-Erfolgt-Interrupts und dieses Schreibe-Benachrichtigungs-Interrupts kann der Lese-Thread seinen Takt derart anpassen, dass er mit dem des Schreibe-DMAs übereinstimmt.
  • Wenn der Lese-Thread den ersten Schreibe-Interrupt detektiert, kann er mit dem Lesen beginnen. Für jeden folgenden Schreibe-Interrupt ist er in der Lage herauszufinden, wo er aktuell aus dem Puffer liest. Aus dieser Information kann er den Lese takt zur Übereinstimmung mit dem des Schreibe-Threads erhöhen oder erniedrigen. Wenn er zwei Lese-Interrupts ohne einen Schreibe-Interrupt detektiert kann er automatisch den Vorgang beenden.
  • Bus-Schlichter
  • 7 zeigt eine Bus-Schlichterschaltung 250, die den Zugriff auf den internen Bus steuert. Dieser interne Bus wird zum Zugriff zwischen der PCI-Bus-DMA-Schaltung und dem Eingabe/Ausgabe-Speicher genutzt. Die Bus-Schlichterschaltung 250 schaltet einen 2:1-Multiplexer 252 zurück und vor zwischen den von den PCI-Bus 86 empfangenen Busanfragen und den von den DMA-Schaltungen 172 in der Logikeinheit 110 empfangenen DMA-Anfragen. Die Bus-Schlichterschaltung 250 gewährt dem PCI-Bus 86 die Hälfte der verfügbaren Zeit auf dem internen Bus und verteilt die verbleibende Hälfte der Zeit zwischen den acht DMA-Prozessen, von denen alle gleichzeitig aktiv sein können. In der Zukunft können mehr als acht DMA unterstützt werden.
  • In dem dargestellten Beispiel unterstützt die Schlichterschaltung 170 acht DMA-Schaltungen: Stereo, Mono, DSPout (d.h. der Audio-Signalprozessor), IrDA-Empfang, DSPin0, DSPin1, IrDA-Übertragung und Blende. Diese acht Schaltungen teilen sich die verbleibende Hälfte der Bandbreite des internen Busses und daher wird jeder DMA-Schaltung 1/16 der Busbandbreite garantiert. Man beachte, dass das CD-ROM auf den Eingabe/Ausgabe-Speicher unter Verwendung des PCI-DMA-Prozesses schreibt.
  • Falls der 2:1-Multiplexer 252 eine aktive Anfrage decodiert, beendet er den Wechselvorgang und stößt eine Buszyklusstatusmaschine 254 für den Bus der Logikeinheit an. Die aktive Anfrage bewilligt ebenso den internen Bus der Logikeinheit zu entweder den PCI-Bus oder zu einem der internen DMA-Schaltungen, wie durch einen Decoder 256 ausgewählt.
  • Ein Schieberegister 258 lädt alle anstehenden Anfragen von den DMA-Schaltungen. Die Ausgabe des Schieberegisters 258 fungiert als Freigabe für einen Zähler 260. Jeden Mal wenn das Schieberegister 258 schaltet, zählt der Zähler 260. Wenn die Ausgabe aus dem Schieberegister 258 eine aktive DMA-Anfrage anzeigt, enden der Zähler 260 und das Schieberegister 258. Wenn der 2:1-Multiplexer 252 zu den DMA-Schaltungen wechselt, hält die aktive Anfrage von dem Schieberegister 258 das Wechseln an und startet einen Buszyklus für eine DMA-Anfrage. Nach dem Abschluss des Buszyklus wird ein „Beendet"-Signal an die entsprechende DMA-Schaltung generiert, die die DMA-Anfrageleitung freigibt und den 2:1-Multiplexer 252, das Schieberegister 258 und den Zähler 260 dazu veranlasst, mit dem Suchen der nächsten aktiven DMA-Anfrage fortzusetzen.
  • Audio-Manager-API
  • Das Computersystem 20 ist ein voll funktionsfähiger Mehrzweck-Computer, der ein Audio-Unterhaltungssystem unterstützt. Das System 20 ist dazu konzipiert, mehrere Audioquellen wie beispielsweise Radio, CD, Auxiliary-Eingänge und CD-Wechsler zu unterstützen. Der Audio-DSP 116 bearbeitet die Tonentzerrung, das Decodieren des Surround Sounds und die Steuerung der Lautstärke/Balance/Überblenden. Der Ton kann über ein Lautsprechersystem (beispielsweise sechs Lautsprecher) oder über irgendein USB-Gerät abgespielt werden.
  • Das Computersystem 20 implementiert ein Audio-Manager-API (Application Program Interface), um die auf dem Computer ablaufenden Anwendungen zum Steuern der verschiedenen Audioquellen ohne Kenntnis der Hardware und Details der Implementierung der zugrunde liegenden Audioanlage zu befähigen. Verschiedene Audiogeräte und ihre Treiber steuern unterschiedliche Funktionalität des Audiosystems wie beispielsweise Entzerrung, Lautstärkensteuerung und Decodierung von Surround Sound. Die Audio-Manager-API übermittelt die durch die Anwendungen getätigten Aufrufe an den/die entsprechenden Gerätetreiber.
  • 8 zeigt die Anwendung-zu-Hardware-Architektur. Die Audio-Hardware 270 bildet die unterste Ebene in der Architektur. Eine Audio-Hardware-Abstraktionsschicht (HAL, hardware abstraction layer) 272 definiert eine grundlegende Interface-Schicht zwischen den audiobezogenen Treibern für die Hardware 270 und der Audio-Manager-API-Schicht 274. Über der Audio-Manager-API 274 befinden sich die Anwendungen 276. Die Audio-Manager-API 274 definiert die APIs zum Zugreifen und Steuern des zugrunde liegenden Audiosystems.
  • Die Audio-Manager-API 274 weist fünf Kernkomponenten auf: die Audio-Quellen-Steuerungs-API 278, die Wave-in-und-Wave-out-API 280, die Surround-Sound-Decodier-API 282, die Entzerrer-API 284 und die Lautstärke/Balance/Überblende- API 286. Verschiedene API steuern verschiedene Aspekte des Audiosystems. Zusammen bieten sie eine geeignete API für die Anwendungen 276.
  • Die Audioquellen sind allgemein in zwei Kategorien unterteilt: Vordergrund-Audioquellen und Hintergrund-Audioquellen. Vordergrund-Audioquellen umfassen eine Computer-Wave-Dateiausgabe und eine Text-zu-Sprache-Ausgabe. Vordergrund-Audioquellen werden mit aktiven Hintergrund-Audioquellen gemischt. Die Vordergrund-Audioquellen werden durch die Wave-out-API gesteuert. Im Gegensatz dazu umfassen die Hintergrund-Audioquellen AM/FM-Empfänger, CD-Spieler, Auxiliary-Eingänge und andere Quellen von dem USB. Hintergrund-Quellen werden durch die Audioquellen-Steuerungs-API gesteuert.
  • Obwohl das Audiosystem mehr als ein Ziel, wie beispielsweise die Lautsprecher, USB-Geräte und den Computer aufweisen kann, ist das Hauptziel die Lautsprecher. Daher läuft jede der ausgewählten vielen Audioquellen letztendlich bei einem Audio-Ziel – dem Lautsprechersystem – zusammen.
  • 9 zeigt wie die Module der Audio-Manager-API den Audiodurchflussweg steuern.
  • Die Audioquellen-Steuerungs-API 278 wird dazu verwendet, die Hintergrund-Audioquelle auszuwählen. Sie dient als der Koordinator zwischen den verschiedenen Audio-Anwendungen, die verschiedene Teile des Audiosystems steuern. Während beispielsweise der AM/FM-Empfänger spielt und der Bediener das Abspielen einer CD wählt, dient die Audioquellen-Steuerungs-API 278 dazu, das Anhalten des Empfängers und das Starten des CD-Spielers zu koordinieren. Tabelle 1 listet die Funktionen der Audioquellen-Steuerungs-API 278 auf.
  • Figure 00240001
    Tabelle 1: Audioquellen-Steuerungs-API 278
  • Die Wave-in-und-Wave-out-API 280 sind kompatibel mit den Win32-Wave-APIs, die in einem Standard Windows SDK wie beispielsweise dem SDK für das Betriebssystem Windows CE dokumentiert sind. Für genauere Informationen über diese APIs wird der Leser auf die erwähnte SDK verwiesen.
  • Die Surround-Sound-API 282 ermöglicht das Decodieren von Surround Sound. Sie enthält Teilfunktionen, um SSD zu aktiveren und deaktivieren, die Verzögerungszeit des Surround Sounds zu setzen und eine Grenzfrequenz eines Subwoofer-Tiefpassfilter einzustellen. Tabelle 2 listet die Funktionen der Surround-Sound-API 282 auf.
  • Figure 00250001
    Tabelle 2: Surround-Sound-API 282
  • Die Entzerrer-API 284 verändert die Entzerrer-Einstellungen. Tabelle 3 listet die Funktionen der Entzerrer-API 284 auf.
  • Figure 00250002
    Tabelle 3: Entzerrer-API 284
  • Die Lautstärke/Balance/Überblende-API 286 verändert die Lautstärke, Balance und Überblenden. Tabelle 4 listet die Funktionen der Lautstärke/Balance/Überblende-API 286 auf.
  • Figure 00250003
    Tabelle 4: Lautstärke/Balance/Überblende-API 286
  • Wieder bezugnehmend auf 8 kommuniziert die Audio-Manager-API 274 mit den Audio-Gerätetreibern für bestimmte Geräte über das Audio-HAL-Interface 272. Für die Zusammenarbeit mit Anwendungen 276 unterstützt jeder Gerätetreiber den folgenden Satz der in Tabelle 5 aufgelisteten Interfaces.
  • Figure 00260001
    Tabelle 5: Interfaces für HAL 272
  • Zum Abspielen einer Audioquelle sind gewöhnlich mehr als ein Gerät beteiligt. Beispielsweise wird zum Abspielen einer CD zuerst ein gemeinsam genutztes Puffergerät vorbereitet bevor der CD-Treiber die Audiodaten zu dem gemeinsam genutzten Puffer sendet. Zum Aufbauen irgendeiner Abhängigkeit zwischen den Geräten registrieren sich alle audiobezogenen Geräte und spezifizieren, auf welchen Gerätetreiber sie angewiesen sind.
  • Wenn eine Anwendung eine Audioquelle abspielen möchte, ruft sie SelectSource mit der Audioquellen-ID als ihr Parameter auf. Die Audio-Manager-API deselektiert irgendeine aktuelle Audioquelle und selektiert die Audioquelle, die durch die Anwendung angefordert wurde. Zum Deselektieren der aktuellen Audioquelle durchläuft die Audio-Manager-API die Struktur der Verbindungsliste und informiert jede Quelle oder jedes abhängige Gerät über ihre Beendigung. Zum Auswählen der neuen Quelle informiert sie die Quelle und die abhängigen Geräte über ihre Inbetriebnahme.
  • DSP-SPI für das Mikrofon-Interface
  • Das Computersystem 20 unterstützt ein Spracherkennungssystem wie beispielsweise ein diskretes Steuerungs- und Befehl-Spracherkennungssystem. Alle Audiodaten einschließlich der durch die Mikrofon-Buchse 72 erfassten Sprachäußerungen werden mit einer Abtastrate von 44,1 kHz, die durch den CODEC zur Verfügung gestellt wird, abgetastet. Dennoch kann das Spracherkennungssystem eine andere Abtastrate verwenden. In der beschriebenen Implementierung kann das Spracherkennungssystem eine erheblich langsamere Abtastrate von 11 kHz verwenden. Anstatt einen zusätzlichen Analog/Digital-Wandler lediglich für die Mikrofondaten hinzuzufügen (was zusätzliche Kosten verursachen würde) konvertiert das System 20 die Mikrofondaten von der höheren Abtastrate von 44,1 kHz zu den gewünschten 11 kHz.
  • Eine Möglichkeit wäre, die Daten mit 44,1 kHz in dem Computer aufzunehmen und dem Host-Computer zu erlauben, eine Abtastratenumwandlung durchzuführen. Jedoch ist dieser Ansatz weniger erstrebenswert, da er Ressourcen des Computers verbraucht.
  • Ein eher bevorzugter Ansatz ist, eine Abtastratenumwandlung in dem Audio-DSP 116 oder in der Logikeinheit 110 durchzuführen. Da jedoch die I2S-Interfaces alle anderweitig zweckbestimmt sind, ist ein Aspekt der Erfindung, die Mikrofondaten huckepack mit den Befehls/Nachrichten-Strömen, die an der SPI (Serial Peripheral Interface) des Audio-DSPs empfangen werden, zu senden. Die Mikrofondaten werden huckepack mit den Kommandos der Host-CPU genommen und in den DSP über das SPI gesendet. Der DSP führt eine normale Tiefpassfilterung und ein Down-Sampling mit dem Datenstrom durch und benutzt dann das SPI, um die Mikrofondaten zurück auf ihrer neuen Abtastrate von 11 kHz huckepack mit dem Nachrichtenstrom auszusenden.
  • 10 zeigt den Fluss der Mikrofondaten bis zum dem Punkt, an dem sie der Host-CPU zum Durchführen der Spracherkennung übergeben wird. Ein durch das Mirkofon 72 erzeugtes Analogsignal wird in einem Verstärker 290 verstärkt und in den Monokanal des CODEC 122 eingegeben. Der CODEC 122 digitalisiert das analoge Mikrofonsignal mit einer Auflösung von 20 Bit und einer Abtastrate von 44,1 kHz. Die 20 Bits werden in einem 32 Taktzyklen langen Rahmen zusammengefasst, wobei das MSB dem MSB des I2S entspricht und 12 Nullen dem LSB folgen. Der CODEC sendet die 20 Bits der Mikrofondaten zu der Logikeinheit 110 über den I2S.
  • Die Logikeinheit 110 empfängt die seriellen I2S-Daten und wandelt sie in parallele Daten in der Mono-DMA-Schaltung 172, wie in 5 dargestellt, um. Die Mono-DMA-Schaltung 172 überreicht die 20 Bit der Monodaten dem SPI-Modul 292, das die Monodaten in einen 24 Bit SPI-Seriell-Vorgang für den Audio-DSP 116 umwandelt. Es sei bemerkt, dass der DSP 116 gleichzeitig zwei Kanäle I2S-Ton von den DSPin-TX-Ping/Ping-DMAs für insgesamt drei Audio-Eingangsströme mit dem Mono-Audio-Strom huckepack mit den Befehls-/Nachrichtenströmen empfangen kann.
  • Der Audio-DSP 116 wendet ein Bandpassfilter 294 auf die Monodaten an und dezimiert dann die Daten auf ein 11 kHz Strom durch Behalten von jedem vierten Abtastwert der Filterausgabe und Verwerfen der anderen drei. Nach jeder vierten SPI-Mono-Eingabetransaktion gibt der DSP die gültig gefilterten Monoausgabedaten an die Logikeinheit 110 zurück. Für jeden 44,1 kHz Zeitpunkt wird ein Mikrofondatenwort zu dem DSP gesendet. Jedoch kommt lediglich nach jedem vierten gesendeten Mikrofonwort ein gefiltertes Mikrofonwort von dem DSP zurück, das Mikrofondaten mit einer neuen Abtastrate von 11 kHz repräsentiert. Für jedes an den DSP gesendete Wort wird ein Wort zurückgesendet. Mit anderen Worten für jede zu dem DSP gesendete vier Worte gibt der DSP ein als gefilterte Daten markiertes Wort und drei als ungültige Daten markierte Worte zurück.
  • Das SPI-Modul 292 konvertiert die 16 MSBs der gefilterten Monodaten in parallele Daten und überreicht sie zurück zu der Mono-DMA-Schaltung 172.
  • Die Mono-DMA-Schaltung 172 erzeugt ein DMA-Anfrage-Signal, nachdem sie zwei aufeinander folgende gefilterte 16 Bit Worte in ihrem Halterregister gespeichert hat. Die Daten werden über einen Multiplexer 256 in einem Ping/Pong-Puffer 132 übertragen. Wenn der Ping-Puffer gefüllt ist, wird ein Interrupt zur Host-CPU erzeugt. Eine PCI-DMA-Schaltung 296 liest die Monodaten aus dem Ping-Puffer in den Eingabe/Ausgabe-Speicher 130 als Reaktion auf die Anweisungen von dem PCI-Controller 298 und legt die Daten in einen Puffer 300 in dem lokalen Host-Speicher 152 ab. Die Spracherkennungssoftware 302 ruft Blöcke der Monodaten von dem Puffer 300 zur Verarbeitung ab.
  • Falls der Host einen Befehl in das SPI-Datenregister in der Logikeinheit 110 schreibt, wird die SPI-Interface-Logik dieses Befehlswort zu dem Audio-DSP 116 unmittelbar der nächsten Mikrofondatentransaktion folgend senden. Da die Mono-Audio-Daten nicht die volle Bandbreite des SPI-Busses benutzt, kann der Befehls-/Nachrichtenstrom mit den Monodaten verschachtelt werden. Nachdem der Audio-DSP zurückgesetzt wird, wird er das Laden von 512 (24 Bit) Worten von dem SPI-Port erwarten, die sein ausführbares Programm oder ein Programm zum Laden eines größeren ausführbaren Programms enthalten. Unter diesen Umständen enthält das SPI-Steuerregister Bits, die die Einspeisung von Mikrofondaten deaktivieren werden, und ermöglicht, in den SPI-Datenport geschriebene Daten direkt an den DSP zu senden. In diesem Modus werden alle von dem DSP empfangenen Daten ignoriert.
  • Obwohl die Erfindung in einer auf die strukturellen Merkmale und/oder methodologischen Schritte zugeschnittenen Sprache beschrieben wurde, ist es zu verstehen, dass die in den angehängten Patentansprüchen definierte Erfindung nicht notwendiger Weise auf die beschriebenen bestimmten Merkmale und Schritte beschränkt ist. Die besonderen Merkmale und Schritte sind eher als beispielhafte Form der Implementierung der beanspruchten Erfindung offenbart.

Claims (12)

  1. Unterhaltungssystem, das einen Datenspeicher (130), eine zum Empfang von Audiodaten von einer oder mehreren peripheren Audioquellen (26, 28, 34, 94, 96, 98, 100, 102) angekoppelte Logikeinheit (110) und einen Datenprozessor (116) zum Verarbeiten der Audiodaten umfasst, wobei die Logikeinheit (110) eine oder mehrere Audioquellen-DMA(direct memory access)-Schaltungen (172) aufweist, die jeweils entsprechenden peripheren Audioquellen zugeordnet sind, wobei jede Audioquellen-DMA-Schaltung (172) die von der zugeordneten peripheren Audioquelle empfangenen Audiodaten in einen Speicherbereich innerhalb des Datenspeichers (130) schreibt, und wobei die Logikeinheit (110) auch eine Datenprozessor-DMA-Schaltung aufweist, die dem Datenprozessor (116) zum Auslesen der Audiodaten aus dem Speicherbereich innerhalb des Datenspeichers (130) zur Übermittlung an den Datenprozessor (116) zugeordnet ist.
  2. Unterhaltungssystem nach Anspruch 1, das zusätzlich eine Synchronisationsschaltung umfasst, um eine erste Rate, mit der die Audioquellen-DMA-Schaltung (172) die Audiodaten in den Datenspeicher (130) schreibt, mit einer zweiten Rate zu synchronisieren, mit der die Datenprozessor-DMA-Schaltung die Audiodaten aus dem Datenspeicher (130) liest.
  3. Unterhaltungssystem nach Anspruch 1, worin die Logikeinheit (110) Audiodaten von den vielen verschiedenen Audioquellen an den Datenprozessor (116) zu einer konkurrierenden Verarbeitung konkurrierend übermittelt.
  4. Fahrzeug-Computersystem, das ein Unterhaltungssystem nach Anspruch 1 umfasst.
  5. Unterhaltungssystem nach Anspruch 1, worin die eine oder mehreren Audioquellen-DMA-Schaltungen (172) eine erste DMA-Schaltung (172), eine zweite DMA- Schaltung (172) und eine dritte DMA-Schaltung (172) umfassen, und die eine oder mehreren peripheren Audioquellen eine erste periphere Audioquelle und eine zweite periphere Audioquelle ausweisen, wobei die erste DMA-Schaltung (172) der ersten peripheren Audioquelle zum Übermitteln erster Audiodaten von der ersten peripheren Audioquelle zu einer ersten Stelle in dem Datenspeicher (130) zugeordnet ist, wobei die zweite DMA-Schaltung (172) der zweiten peripheren Audioquelle zum Übermitteln zweiter Audiodaten von der zweiten peripheren Audioquelle zu einer zweiten Stelle in dem Datenspeicher (130) zugeordnet ist, und wobei die dritte DMA-Schaltung (172) dem Datenprozessor (116) zum Übermitteln der ersten und zweiten Audiodaten von den ersten und zweiten Stellen in dem Datenspeicher (130) an den Audiodatenprozessor (116) zur konkurrierenden Verarbeitung und Ausgabe an ein oder mehrere Audioziele zugeordnet ist.
  6. Unterhaltungssystem nach Anspruch 5, worin die ersten Audiodaten zu einem ersten Satz von Lautsprechern und die zweiten Audiodaten gleichzeitig zu einem zweiten Satz von Lautsprechern ausgegeben sind.
  7. Unterhaltungssystem nach einem der Ansprüche 1 bis 6, das zusätzlich ein Application Program Interface (274) zur Definition einer Schnittstelle zwischen den auf dem System betriebenen Anwendungsprogrammen (276) und einem Audiounterhaltungssubsystem umfasst, wobei das Application Program Interface (274) auf dem Datenprozessor (116) des Systems ausführbar ist und Funktionen ausweist, die von einem Anwendungsprogramm zur Steuerung des Audiounterhaltungssubsystems aufrufbar sind.
  8. Unterhaltungssystem nach Anspruch 7, worin das Application Program Interface zusätzlich eine Funktion (278) zur Auswahl der Audioquelle umfasst.
  9. Unterhaltungssystem nach Anspruch 7 oder 8, worin das Application Program Interface zusätzlich eine Funktion (282) zum Ein- und Ausschalten eine Surround Sounds umfasst.
  10. Unterhaltungssystem nach einem der Ansprüche 7 bis 9, worin das Application Program Interface zusätzlich eine Funktion (284) zum Ändern von Equalizer-Einstellungen umfasst.
  11. Unterhaltungssystem nach einem der Ansprüche 7 bis 10, worin das Application Program Interface zusätzlich eine Funktion (286) zum Ändern von Lautstärke, Balance und der Überblendcharakteristiken umfasst.
  12. Fahrzeug-Computersystem, das ein Unterhaltungssystem mit einem Application Program Interface nach einem der Ansprüche 7 bis 11 umfasst.
DE69925987T 1998-01-07 1999-01-07 Kraftfahrzeugcomputersystem mit audiounterhaltungssytem Expired - Lifetime DE69925987T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/004,076 US7085710B1 (en) 1998-01-07 1998-01-07 Vehicle computer system audio entertainment system
US4076 1998-01-07
PCT/US1999/000356 WO1999035009A1 (en) 1998-01-07 1999-01-07 Vehicle computer system with audio entertainment system

Publications (2)

Publication Number Publication Date
DE69925987D1 DE69925987D1 (de) 2005-08-04
DE69925987T2 true DE69925987T2 (de) 2006-04-20

Family

ID=21709021

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925987T Expired - Lifetime DE69925987T2 (de) 1998-01-07 1999-01-07 Kraftfahrzeugcomputersystem mit audiounterhaltungssytem

Country Status (7)

Country Link
US (4) US7085710B1 (de)
EP (1) EP1044119B1 (de)
JP (3) JP4472868B2 (de)
AU (1) AU2216399A (de)
CA (1) CA2317593C (de)
DE (1) DE69925987T2 (de)
WO (1) WO1999035009A1 (de)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7015800B2 (en) 1995-11-09 2006-03-21 Vehicle Enhancement Systems Inc. System, apparatus and methods for data communication between vehicle and remote data communication terminal, between portions of vehicle and other portions of vehicle, between two or more vehicles, and between vehicle and communications network
US6064299A (en) 1995-11-09 2000-05-16 Vehicle Enhancement Systems, Inc. Apparatus and method for data communication between heavy duty vehicle and remote data communication terminal
US6744352B2 (en) 1995-11-09 2004-06-01 Vehicle Enhancement Systems, Inc. System, apparatus and methods for data communication between vehicle and remote data communication terminal, between portions of vehicle and other portions of vehicle, between two or more vehicles, and between vehicle and communications network
US7085710B1 (en) * 1998-01-07 2006-08-01 Microsoft Corporation Vehicle computer system audio entertainment system
US6560468B1 (en) * 1999-05-10 2003-05-06 Peter V. Boesen Cellular telephone, personal digital assistant, and pager unit with capability of short range radio frequency transmissions
DE19939320A1 (de) * 1999-08-19 2001-03-22 Bosch Gmbh Robert Autoradio mit einem Speicher für Audiosignale
US6604038B1 (en) 1999-11-09 2003-08-05 Power Talk, Inc. Apparatus, method, and computer program product for establishing a remote data link with a vehicle with minimal data transmission delay
DE19954758A1 (de) * 1999-11-15 2001-05-23 Becker Gmbh Verfahren zum Datenaustausch für eine Multimediaanlage sowie Multimediaanlage für ein Fahrzeug
MXPA02004971A (es) 1999-11-17 2002-09-18 Vehicle Enhancement Sys Inc Metodo para comunicacion de datos entre un vehiculo y una terminal remota.
EP1419935A1 (de) * 1999-11-17 2004-05-19 Vehicle Enhancement Systems, Inc Vorrichtung und Verfahren zur Datenkommunikation zwischen einem Fahrzeug und einer davon entfernt befindlichen Datenstation
CA2397740C (en) 2000-01-14 2015-06-30 Catavault Method and system for secure registration, storage, management and linkage of personal authentication credentials data over a network
US7895610B1 (en) * 2000-01-18 2011-02-22 Koninklijke Philips Electronics N.V. System and method for displaying information on the screen of a user interface device under the control of a digital audio playback device
US7187947B1 (en) 2000-03-28 2007-03-06 Affinity Labs, Llc System and method for communicating selected information to an electronic device
US7502672B1 (en) * 2000-04-24 2009-03-10 Usa Technologies, Inc. Wireless vehicle diagnostics with service and part determination capabilities
DE10030525A1 (de) * 2000-06-28 2002-01-24 Harman Becker Automotive Sys Verfahren zur Kommunikation zwischen zwei Netzwerken sowie Netzwerk
US20020173885A1 (en) * 2001-03-13 2002-11-21 Lowrey Larkin Hill Internet-based system for monitoring vehicles
US10298735B2 (en) 2001-04-24 2019-05-21 Northwater Intellectual Property Fund L.P. 2 Method and apparatus for dynamic configuration of a multiprocessor health data system
US7146260B2 (en) 2001-04-24 2006-12-05 Medius, Inc. Method and apparatus for dynamic configuration of multiprocessor system
ITMI20011145A1 (it) * 2001-05-30 2002-11-30 Antonio Bartolozzi Struttura di autoradio multifunzionale, particolarmente per autoveicoli e simili
EP2432190A3 (de) 2001-06-27 2014-02-19 SKKY Incorporated Verbesserte Medienablieferungsplattform
US8235287B2 (en) 2010-10-13 2012-08-07 Square, Inc. Read head device with slot configured to reduce torque
US9262777B2 (en) 2002-02-05 2016-02-16 Square, Inc. Card reader with power efficient architecture that includes a wake-up circuit
US8876003B2 (en) 2010-10-13 2014-11-04 Square, Inc. Read head device with selected output jack characteristics
US8500018B2 (en) 2010-10-13 2013-08-06 Square, Inc. Systems and methods for financial transaction through miniaturized card reader with decoding on a seller's mobile device
US9286635B2 (en) 2002-02-05 2016-03-15 Square, Inc. Method of transmitting information from efficient communication protocol card readers to mobile devices
US9262757B2 (en) 2002-02-05 2016-02-16 Square, Inc. Method of transmitting information from a card reader with a power supply and wake-up circuit to a mobile device
US8534546B2 (en) 2009-10-13 2013-09-17 Square, Inc. Systems and methods for card present transaction without sharing card information
US9324100B2 (en) 2002-02-05 2016-04-26 Square, Inc. Card reader with asymmetric spring
US20120005039A1 (en) 2002-02-05 2012-01-05 Jack Dorsey Method of conducting financial transactions
US8573486B2 (en) 2010-10-13 2013-11-05 Square, Inc. Systems and methods for financial transaction through miniaturized card reader with confirmation of payment sent to buyer
US9016572B2 (en) 2010-10-13 2015-04-28 Square, Inc. Systems and methods for financial transaction through miniaturized card with ASIC
US8870071B2 (en) 2010-10-13 2014-10-28 Square, Inc. Read head device with selected sampling rate
US9224142B2 (en) 2002-02-05 2015-12-29 Square, Inc. Card reader with power efficient architecture that includes a power supply and a wake up circuit
US9916581B2 (en) 2002-02-05 2018-03-13 Square, Inc. Back end of payment system associated with financial transactions using card readers coupled to mobile devices
US9495675B2 (en) 2002-02-05 2016-11-15 Square, Inc. Small card reader configured to be coupled to a mobile device
US9582795B2 (en) 2002-02-05 2017-02-28 Square, Inc. Methods of transmitting information from efficient encryption card readers to mobile devices
US9495676B2 (en) 2002-02-05 2016-11-15 Square, Inc. Method of transmitting information from a power efficient card to a mobile device
US9305314B2 (en) 2002-02-05 2016-04-05 Square, Inc. Methods of transmitting information to mobile devices using cost effective card readers
US8870070B2 (en) 2010-10-13 2014-10-28 Square, Inc. Card reader device
US8573487B2 (en) 2010-10-13 2013-11-05 Square, Inc. Integrated read head device
US8302860B2 (en) 2010-10-13 2012-11-06 Square, Inc. Read head device with narrow card reading slot
US6665234B2 (en) 2002-03-26 2003-12-16 Bryan Roger Goodman Personal audio recorder in a vehicular entertainment sound system
US7027602B2 (en) 2002-03-26 2006-04-11 Ford Global Technologies, Llc Personal audio recorder in a vehicular entertainment sound system using recommended audio signals
US7178049B2 (en) 2002-04-24 2007-02-13 Medius, Inc. Method for multi-tasking multiple Java virtual machines in a secure environment
US7047200B2 (en) * 2002-05-24 2006-05-16 Microsoft, Corporation Voice recognition status display
US6946953B2 (en) 2002-05-30 2005-09-20 Vehicle Enhancement Systems, Inc. Apparatus and method for enhanced data communications and control between a vehicle and a remote data communications terminal
US6996699B2 (en) 2002-09-10 2006-02-07 Microsoft Corporation Secondary processor execution kernel framework
US7395208B2 (en) 2002-09-27 2008-07-01 Microsoft Corporation Integrating external voices
US7110940B2 (en) 2002-10-30 2006-09-19 Microsoft Corporation Recursive multistage audio processing
US7650230B1 (en) 2003-03-26 2010-01-19 Garmin Ltd. Navigational device for mounting on a support pillar of a vehicle and a method for doing same
EP1494364B1 (de) * 2003-06-30 2018-04-18 Harman Becker Automotive Systems GmbH Vorrichtung zur Audiodaten-Ausgangskontrolle
ES2293004T3 (es) * 2003-08-21 2008-03-16 Stichting Noble House Sistema modular de informacion de trafico.
US20050193092A1 (en) * 2003-12-19 2005-09-01 General Motors Corporation Method and system for controlling an in-vehicle CD player
KR100640893B1 (ko) * 2004-09-07 2006-11-02 엘지전자 주식회사 음성 인식용 베이스밴드 모뎀 및 이동통신용 단말기
KR20060109040A (ko) * 2005-04-15 2006-10-19 주식회사 현대오토넷 오디오 신호 끊김 방지 기능을 구비하는 네비게이션 시스템일체형 에이브이시스템 및 그 제어방법
ATE550756T1 (de) * 2005-08-04 2012-04-15 Nuance Communications Inc Sprachdialogsystem
US7904300B2 (en) * 2005-08-10 2011-03-08 Nuance Communications, Inc. Supporting multiple speech enabled user interface consoles within a motor vehicle
US9818120B2 (en) 2015-02-20 2017-11-14 Innovative Global Systems, Llc Automated at-the-pump system and method for managing vehicle fuel purchases
US8626377B2 (en) 2005-08-15 2014-01-07 Innovative Global Systems, Llc Method for data communication between a vehicle and fuel pump
KR100722930B1 (ko) * 2005-09-23 2007-05-30 엠텍비젼 주식회사 디엠에이를 이용한 오디오 혼합 재생 장치 및 방법
US8310965B1 (en) * 2005-10-04 2012-11-13 Marvell International Ltd. Buffered audio system with synchronizing bus controller
US7873424B1 (en) * 2006-04-13 2011-01-18 Honda Motor Co., Ltd. System and method for optimizing digital audio playback
JP4353211B2 (ja) * 2006-07-11 2009-10-28 株式会社日立製作所 通信機能内蔵制御装置
CN101185580A (zh) * 2006-11-15 2008-05-28 深圳迈瑞生物医疗电子股份有限公司 超声诊断系统高速射频回波数据采集方法和装置
TW200823723A (en) * 2006-11-29 2008-06-01 Giga Byte Tech Co Ltd Car PC control method and device
US8384753B1 (en) 2006-12-15 2013-02-26 At&T Intellectual Property I, L. P. Managing multiple data sources
US8825737B2 (en) 2007-02-07 2014-09-02 Microsoft Corporation Per-application remote volume control
US7788463B2 (en) 2007-02-13 2010-08-31 Microsoft Corporation Cyclic buffer management
US20080249886A1 (en) * 2007-04-03 2008-10-09 Woodard William A Satellite radio-based on-demand purchase system
US20080282017A1 (en) * 2007-05-09 2008-11-13 Microsoft Corporation Serial Peripheral Interface Switch
US7982620B2 (en) 2007-05-23 2011-07-19 Toyota Motor Engineering & Manufacturing North America, Inc. System and method for reducing boredom while driving
US8612643B2 (en) 2007-06-30 2013-12-17 Microsoft Corporation Interfaces for digital media processing
US7983916B2 (en) * 2007-07-03 2011-07-19 General Motors Llc Sampling rate independent speech recognition
EP2031418B1 (de) * 2007-08-27 2017-11-01 Harman Becker Automotive Systems GmbH Verfolgungssystem mit RFID-(Funkfrequenzidentifikations-) Technologie
JP2009118212A (ja) * 2007-11-07 2009-05-28 Seiko Epson Corp 画像読取装置および画像読取方法
US20090187300A1 (en) * 2008-01-22 2009-07-23 David Wayne Everitt Integrated vehicle computer system
US9109918B2 (en) * 2008-02-25 2015-08-18 At&T Intellectual Property Ii, L.P. Method and system for managing delivery of content in a navigational environment
EP2096509A1 (de) * 2008-02-26 2009-09-02 Fujitsu Microelectronics Europe GmbH Fernbedienung für Mikrosteuerperipheriegeräte ohne Chip
US8094832B2 (en) * 2008-11-21 2012-01-10 Toyota Motor Engineering & Manufacturing North America, Inc. Modular automotive multimedia and telematic extension box and head unit
US8798287B2 (en) * 2009-02-17 2014-08-05 Robert Lipp Vehicle sound simulation system
US9358924B1 (en) 2009-05-08 2016-06-07 Eagle Harbor Holdings, Llc System and method for modeling advanced automotive safety systems
US8701997B2 (en) 2010-10-13 2014-04-22 Square, Inc. Decoding systems with a decoding engine running on a mobile device and using financial transaction card information to create a send funds application on the mobile device
US9436955B2 (en) 2009-06-10 2016-09-06 Square, Inc. Methods for transferring funds using a payment service where financial account information is only entered once with a payment service and need not be re-entered for future transfers
US8612352B2 (en) 2010-10-13 2013-12-17 Square, Inc. Decoding systems with a decoding engine running on a mobile device and coupled to a payment system that includes identifying information of second parties qualified to conduct business with the payment system
US8881192B2 (en) 2009-11-19 2014-11-04 At&T Intellectual Property I, L.P. Television content through supplementary media channels
JP5336331B2 (ja) * 2009-11-24 2013-11-06 株式会社デンソー 車載装置
US8885552B2 (en) 2009-12-11 2014-11-11 At&T Intellectual Property I, L.P. Remote control via local area network
TWM393937U (en) * 2010-01-22 2010-12-01 Tenx Technology Inc Plug-and-play audio device
US8214557B2 (en) * 2010-04-26 2012-07-03 Continental Automotive Systems, Inc. Measuring direct memory access throughput
US8654989B2 (en) 2010-09-01 2014-02-18 Honda Motor Co., Ltd. Rear surround sound system and method for vehicle
US20120095871A1 (en) * 2010-10-13 2012-04-19 Jack Dorsey Method for conducting on-line purchases using a mobile device and a payment service
US9454866B2 (en) 2010-10-13 2016-09-27 Square, Inc. Method of conducting financial transactions where a payer's financial account information is entered only once with a payment system
US8571989B2 (en) 2010-10-13 2013-10-29 Square, Inc. Decoding systems with a decoding engine running on a mobile device and coupled to a social network
US8573489B2 (en) 2010-10-13 2013-11-05 Square, Inc. Decoding systems with a decoding engine running on a mobile device with a touch screen
US8640953B2 (en) 2010-10-13 2014-02-04 Square, Inc. Decoding system running on a mobile device and coupled to a payment system that includes at least one of, a user database, a product database and a transaction database
US9619797B2 (en) 2010-10-13 2017-04-11 Square, Inc. Payment methods with a payment service and tabs selected by a first party and opened by a second party at an geographic location of the first party's mobile device
EP2628140A4 (de) * 2010-10-13 2014-05-21 Square Inc Zahlungsverfahren mit einem zahlungsdienst sowie von einer ersten partei ausgewählten und von einer zweiten partei geöffneten tabs an einem beliebigen standort einer mobilvorrichtung der ersten partei
US8602305B2 (en) 2010-10-13 2013-12-10 Square, Inc. Decoding systems with a decoding engine running on a mobile device configured to be coupled and decoupled to a card reader with wake-up electronics
US8701996B2 (en) 2010-10-13 2014-04-22 Square, Inc. Cost effective card reader and methods to be configured to be coupled to a mobile device
US8678277B2 (en) 2010-10-13 2014-03-25 Square, Inc. Decoding system coupled to a payment system that includes a cryptographic key
IT1402544B1 (it) * 2010-10-29 2013-09-13 Dainese Spa Apparecchi, sistema e procedimento per la protezione personale
IT1402546B1 (it) * 2010-10-29 2013-09-13 Dainese Spa Apparecchi, sistema e procedimento per indumenti protettivi
IT1402545B1 (it) 2010-10-29 2013-09-13 Cefriel Società Consortile A Responsabilità Limitata Apparecchi, sistema e procedimento per rilevare incidenti
US9576159B1 (en) 2011-01-24 2017-02-21 Square, Inc. Multiple payment card reader system
US9256396B2 (en) * 2011-10-10 2016-02-09 Microsoft Technology Licensing, Llc Speech recognition for context switching
US8971471B2 (en) * 2011-12-07 2015-03-03 Imagine Communications Corp. Predictable coding delay over communications networks
WO2013101066A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Direct grammar access
US11544750B1 (en) 2012-01-17 2023-01-03 Google Llc Overlaying content items with third-party reviews
US9387813B1 (en) 2012-03-21 2016-07-12 Road-Iq, Llc Device, system and method for aggregating networks and serving data from those networks to computers
CN103036567B (zh) * 2012-12-24 2015-11-11 威胜能源产业技术有限公司 用于模数转换芯片的采样方法
US9218805B2 (en) * 2013-01-18 2015-12-22 Ford Global Technologies, Llc Method and apparatus for incoming audio processing
JP6205756B2 (ja) * 2013-03-07 2017-10-04 セイコーエプソン株式会社 同期計測システム
JP2015052466A (ja) 2013-09-05 2015-03-19 株式会社デンソー 車両用装置及び音声切換制御プログラム
US20150098172A1 (en) * 2013-10-04 2015-04-09 Douglas Benjamin Kankiewicz Method and apparatus for securing a handheld electronic device to a dashboard
US8910868B1 (en) 2013-11-27 2014-12-16 Square, Inc. Firmware management
US10873616B1 (en) 2013-12-10 2020-12-22 Google Llc Providing content to co-located devices with enhanced presentation characteristics
US9633236B1 (en) 2013-12-11 2017-04-25 Square, Inc. Power harvesting in reader devices
US8931699B1 (en) 2013-12-11 2015-01-13 Square, Inc. Bidirectional audio communication in reader devices
US9256769B1 (en) 2014-02-25 2016-02-09 Square, Inc. Mobile reader device
CN104882145B (zh) * 2014-02-28 2019-10-29 杜比实验室特许公司 使用音频对象的时间变化的音频对象聚类
US10304043B1 (en) 2014-05-21 2019-05-28 Square, Inc. Multi-peripheral host device
USD762651S1 (en) 2014-06-06 2016-08-02 Square, Inc. Mobile device case
US9760740B1 (en) 2014-06-23 2017-09-12 Square, Inc. Terminal case with integrated dual reader stack
US9256770B1 (en) 2014-07-02 2016-02-09 Square, Inc. Terminal case with integrated reader and shortened base
CN104097593A (zh) * 2014-07-03 2014-10-15 惠州市乐仕汽车影音科技有限公司 一种新型多功能车载影音系统
JP6454495B2 (ja) * 2014-08-19 2019-01-16 ルネサスエレクトロニクス株式会社 半導体装置及びその故障検出方法
US9799025B2 (en) 2014-08-19 2017-10-24 Square, Inc. Energy harvesting bidirectional audio interface
US9953646B2 (en) 2014-09-02 2018-04-24 Belleau Technologies Method and system for dynamic speech recognition and tracking of prewritten script
DE102014220520A1 (de) * 2014-10-09 2016-04-14 Continental Automotive Gmbh Vorrichtung und Verfahren zum Steuern einer Audioausgabe für ein Kraftfahrzeug
US9508344B2 (en) 2014-10-15 2016-11-29 Delphi Technologies, Inc. Automatic volume control based on speech recognition
US9729181B2 (en) * 2014-12-09 2017-08-08 Continental Automotive Systems, Inc. Network access device faceplate
US9355285B1 (en) 2015-02-12 2016-05-31 Square, Inc. Tone-based wake up circuit for card reader
US10628811B2 (en) 2016-03-15 2020-04-21 Square, Inc. System-based detection of card sharing and fraud
US10410200B2 (en) 2016-03-15 2019-09-10 Square, Inc. Cloud-based generation of receipts using transaction information
US10636019B1 (en) 2016-03-31 2020-04-28 Square, Inc. Interactive gratuity platform
CN109034382A (zh) 2017-10-30 2018-12-18 上海寒武纪信息科技有限公司 场景或物体的识别方法及相关产品
US10410021B1 (en) 2017-12-08 2019-09-10 Square, Inc. Transaction object reader with digital signal input/output and internal audio-based communication
US11087301B1 (en) 2017-12-19 2021-08-10 Square, Inc. Tamper resistant device
IT201800000790A1 (it) * 2018-01-12 2019-07-12 St Microelectronics Srl Procedimento di funzionamento di sistemi audio, circuito, sistema e prodotto informatico comprendenti
USD905059S1 (en) 2018-07-25 2020-12-15 Square, Inc. Card reader device
DE102018218409A1 (de) * 2018-10-26 2019-12-12 Continental Automotive Gmbh Steuergerät für ein Kraftfahrzeug, Kraftfahrzeug mit den Steuergerät sowie Verfahren zum Betreiben des Steuergeräts
DE102019203130A1 (de) * 2019-03-07 2020-09-10 Continental Automotive Gmbh Nahtlose Audioübergabe in einem Mehrprozessor-Audiosystem
KR20210121436A (ko) * 2020-03-30 2021-10-08 삼성전자주식회사 Usb 모듈을 위한 오디오 서브 시스템의 구동 방법 및 이를 수행하는 시스템 온 칩
CN116635837A (zh) * 2020-12-10 2023-08-22 斯纳普公司 摄像装置能力api框架和共享oem存储库系统
CN112752194B (zh) * 2020-12-22 2022-06-28 江西创成微电子有限公司 音频数据处理方法、dsp音频架构、设备及介质
US11695537B2 (en) * 2021-06-01 2023-07-04 Bose Corporation Digital signal processor/network synchronization
WO2023114865A1 (en) * 2021-12-15 2023-06-22 Atieva, Inc. Surround sound in automotive audio system
CN114281298B (zh) * 2021-12-22 2024-03-01 中航洛阳光电技术有限公司 基于cpu+fpga的机载嵌入式音频接口控制系统及其控制方法
US20230259323A1 (en) * 2022-02-16 2023-08-17 Shure Acquisition Holdings, Inc. Wireless microphone system and methods for synchronizing a wireless transmitter and a wireless receiver

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4068175A (en) 1975-10-24 1978-01-10 Boman Industries Detachable cover member for car radios and the like
US4207511A (en) 1978-09-15 1980-06-10 Ford Motor Company Circuit for constant voltage power source
US4359601A (en) * 1980-01-04 1982-11-16 David O'Reilly Audio control system
US4365280A (en) 1980-08-04 1982-12-21 Bicro, Incorporated Escutcheon simulative of a radio for disguising electronic apparatus
JPS57118299A (en) * 1981-01-14 1982-07-23 Nissan Motor Voice load driver
DE3122037A1 (de) 1981-05-29 1983-01-05 Siemens AG, 1000 Berlin und 8000 München Elektronisches regelgeraet
US4489435A (en) * 1981-10-05 1984-12-18 Exxon Corporation Method and apparatus for continuous word string recognition
US4607345A (en) * 1982-01-07 1986-08-19 Rockwell International Corporation Serial data word transmission rate converter
US4477764A (en) 1982-07-15 1984-10-16 Pollard Earsel W Energy generating and storage system for electric vehicle or the like
US4550425A (en) * 1982-09-20 1985-10-29 Sperry Corporation Speech sampling and companding device
US4567606A (en) 1982-11-03 1986-01-28 International Telephone And Telegraph Corporation Data processing apparatus and method for use in speech recognition
US4481512A (en) 1982-12-29 1984-11-06 Audio Systems, Inc. Theft-resistant audio system for vehicle
US4631746A (en) * 1983-02-14 1986-12-23 Wang Laboratories, Inc. Compression and expansion of digitized voice signals
JPS59194216A (ja) 1983-04-19 1984-11-05 Honda Motor Co Ltd 車両制御システム
US4991217A (en) * 1984-11-30 1991-02-05 Ibm Corporation Dual processor speech recognition system with dedicated data acquisition bus
US4797924A (en) 1985-10-25 1989-01-10 Nartron Corporation Vehicle voice recognition method and apparatus
US4787040A (en) * 1986-12-22 1988-11-22 International Business Machines Corporation Display system for automotive vehicle
US4911386A (en) 1988-05-27 1990-03-27 Scosche Industries, Inc. Multiple radio in-dash installation kit
US4895326A (en) 1988-05-27 1990-01-23 Scosche Industries, Inc. In-dash installation kit adaptable to different radios and different dash configurations
US4868715A (en) 1988-05-31 1989-09-19 Scosche Industries, Inc. Break-away panel structure for radio in-dash installation kit
KR0138266B1 (ko) 1988-06-17 1998-06-15 제임스 씨. 워 전력제어시스템의 장치간에 절연을 제공하고 그 절연수단을 통해 전력 및 데이타를 전송하기 위한 회로
GB8908366D0 (en) 1989-04-13 1989-06-01 Ist Lab Ltd Improvements in or relating to automotive electrical systems
US5060229A (en) 1989-05-12 1991-10-22 Alcatel Na Network Systems Corp. Serial transport frame format method
JP2684793B2 (ja) 1989-10-24 1997-12-03 松下電器産業株式会社 情報処理装置
US5143343A (en) 1990-01-09 1992-09-01 Katz Daniel P Automobile radio security system
US5172415A (en) * 1990-06-08 1992-12-15 Fosgate James W Surround processor
US5390304A (en) * 1990-09-28 1995-02-14 Texas Instruments, Incorporated Method and apparatus for processing block instructions in a data processor
US5104071A (en) 1990-10-25 1992-04-14 Kowalski Randolph E Antitheft mount for vehicle appliance
US5568403A (en) 1994-08-19 1996-10-22 Thomson Consumer Electronics, Inc. Audio/video/data component system bus
US5317567A (en) * 1991-09-12 1994-05-31 The United States Of America As Represented By The Secretary Of The Air Force Multi-speaker conferencing over narrowband channels
US5316868A (en) 1992-07-21 1994-05-31 Globe-Union, Inc. Dual battery switch circuit
US5452289A (en) * 1993-01-08 1995-09-19 Multi-Tech Systems, Inc. Computer-based multifunction personal communications system
EP0700622A4 (de) * 1993-05-20 1998-09-23 Matsushita Avionics Systems Co Integriertes audio- und video-signal-verteilsystem zur anwendung in einem kommerziellen flugzeug oder anderen fahrzeugen
JP3538440B2 (ja) 1993-07-08 2004-06-14 クラリオン株式会社 車室内騒音低減装置
US5671445A (en) * 1993-07-19 1997-09-23 Oki America, Inc. Interface for transmitting graphics data to a printer from a host computer system in rasterized form
US5488283A (en) 1993-09-28 1996-01-30 Globe-Union, Inc. Vehicle battery system providing battery back-up and opportunity charging
US5569997A (en) 1993-10-04 1996-10-29 Ford Motor Company Power supply for volatile memory devices and portable electrical appliance in vehicles
JPH07304396A (ja) 1994-03-14 1995-11-21 Alpine Electron Inc 着脱式電子機器
US5539920A (en) 1994-04-28 1996-07-23 Thomson Consumer Electronics, Inc. Method and apparatus for processing an audio video interactive signal
US5701347A (en) 1994-06-23 1997-12-23 Compaq Computer Corporation Audio system for a personal computer
GB9512068D0 (en) 1995-06-14 1995-08-09 Thomson Consumer Electronics Bus and interface system for consumer digital equipment
US5732279A (en) 1994-11-10 1998-03-24 Brooktree Corporation System and method for command processing or emulation in a computer system using interrupts, such as emulation of DMA commands using burst mode data transfer for sound or the like
JPH08194602A (ja) 1995-01-18 1996-07-30 Oki Electric Ind Co Ltd バッファ長可変式アクセス制御装置
JP3510693B2 (ja) 1995-01-31 2004-03-29 エフ・エム・エス・オーディオ・センディリアン・バハド カーオーディオの電源装置
US5692058A (en) * 1995-03-02 1997-11-25 Eggers; Philip E. Dual audio program system
US5641953A (en) 1995-03-20 1997-06-24 C-Cor Electronics, Inc. Safety interlock system for telecommunication amplifiers
US5627547A (en) 1995-04-07 1997-05-06 Delco Electronics Corporation Mapless GPS navigation system in vehicle entertainment system
WO1997006490A1 (en) 1995-08-09 1997-02-20 Cirrus Logic, Inc. Parasitic personal computer interface
JP3299418B2 (ja) 1995-08-11 2002-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 音声認識の方法及び装置
US6560707B2 (en) * 1995-11-06 2003-05-06 Xerox Corporation Multimedia coordination system
US5794164A (en) 1995-11-29 1998-08-11 Microsoft Corporation Vehicle computer system
FR2744325B1 (fr) 1996-02-06 1998-03-20 Mecalor Dispositif embarque de lavage et de traitement, notamment pour machine a vendanger
US5784649A (en) 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
US6179489B1 (en) * 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
US5996032A (en) * 1996-04-30 1999-11-30 Texas Instruments Incorporated System for writing a plurality of data bits less than from the total number of bits in a data register using a single register write operation
JPH10108284A (ja) * 1996-09-27 1998-04-24 Sony Corp マイクロホン、ナビゲーション装置、通信装置、オーディオ装置及び自動車
US5778218A (en) 1996-12-19 1998-07-07 Advanced Micro Devices, Inc. Method and apparatus for clock synchronization across an isochronous bus by adjustment of frame clock rates
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US20010043191A1 (en) 1997-07-31 2001-11-22 Todd D. Lindsey Audio and video controls on a pointing device for a computer
US6064792A (en) 1997-08-02 2000-05-16 Fox; James Kelly Signal recorder with deferred recording
US6032089A (en) * 1997-12-01 2000-02-29 Chrysler Corporation Vehicle instrument panel computer interface node
US6301560B1 (en) * 1998-01-05 2001-10-09 Microsoft Corporation Discrete speech recognition system with ballooning active grammar
US7085710B1 (en) * 1998-01-07 2006-08-01 Microsoft Corporation Vehicle computer system audio entertainment system

Also Published As

Publication number Publication date
CA2317593A1 (en) 1999-07-15
US20090228615A1 (en) 2009-09-10
EP1044119B1 (de) 2005-06-29
AU2216399A (en) 1999-07-26
CA2317593C (en) 2009-06-23
US8065026B2 (en) 2011-11-22
JP2009298405A (ja) 2009-12-24
JP2009298404A (ja) 2009-12-24
JP4472868B2 (ja) 2010-06-02
EP1044119A1 (de) 2000-10-18
US8001290B2 (en) 2011-08-16
JP4672791B2 (ja) 2011-04-20
JP2002500389A (ja) 2002-01-08
US20050209719A1 (en) 2005-09-22
WO1999035009A1 (en) 1999-07-15
DE69925987D1 (de) 2005-08-04
JP4843078B2 (ja) 2011-12-21
US7085710B1 (en) 2006-08-01
US7433974B2 (en) 2008-10-07
US20050209852A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
DE69925987T2 (de) Kraftfahrzeugcomputersystem mit audiounterhaltungssytem
DE69629663T2 (de) Kraftfahrzeug-computersystem
EP0982700B1 (de) Fahrzeugkommunikationssystem
DE69819889T2 (de) Darstellung von computer-information an einen fahrer eines fahrzeugs
DE102006001458B4 (de) Mobiltelefon und tragbare Speichereinrichtung, das selbiges verwendet
EP3092566B1 (de) Fahrzeug mit operationsdomänen für mehrere benutzerschnittstellen
US7664931B2 (en) Scalable and configurable multimedia system for a vehicle
DE60008139T2 (de) Cachespeicheranordnung für einen digitalen signalprozessor
DE112007000862T5 (de) Multiplexieren einer Parallelbus-Schnittstelle und einer Flash Memory-Schnittstelle
DE10296594T5 (de) Verfahren und Einrichtung zum Bereitstellen eines Funkmoduls für ein Computersystem
EP1593041B1 (de) Rechnersystem in einem fahrzeug
DE60102729T2 (de) Ein in einem Kraftfahrzeug montiertes elektronisches Gerät mit abtrennbarer Frontplatte
DE10219357B4 (de) Verbesserter Datentransfer in Audiocodeccontrollern
DE102017220464A1 (de) Modulare Rechner-Architektur eines Cockpit- und Infotainmentsystems für ein Fahrzeug
DE202011051697U1 (de) Drahtloses Fahrzeug-Audio/Video-System
DE10330127A1 (de) Multimediales Informationssystem für Kraftfahrzeuge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition