DE102005004420B4 - Programmierbare I/O-Schnittstelle - Google Patents

Programmierbare I/O-Schnittstelle Download PDF

Info

Publication number
DE102005004420B4
DE102005004420B4 DE102005004420A DE102005004420A DE102005004420B4 DE 102005004420 B4 DE102005004420 B4 DE 102005004420B4 DE 102005004420 A DE102005004420 A DE 102005004420A DE 102005004420 A DE102005004420 A DE 102005004420A DE 102005004420 B4 DE102005004420 B4 DE 102005004420B4
Authority
DE
Germany
Prior art keywords
register
registers
interface
microcontroller
system processor
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 - Fee Related
Application number
DE102005004420A
Other languages
English (en)
Other versions
DE102005004420A1 (de
Inventor
Richard D. Taylor
Mark D. Montierth
Douglas G. Keithley
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.)
Marvell Asia Pte Ltd
Original Assignee
Marvell International Technology Ltd
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 Marvell International Technology Ltd filed Critical Marvell International Technology Ltd
Publication of DE102005004420A1 publication Critical patent/DE102005004420A1/de
Application granted granted Critical
Publication of DE102005004420B4 publication Critical patent/DE102005004420B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

Programmierbare Schnittstelle (10) zwischen einem Systemprozessor (30) und einem Peripheriegerät (38), wobei die Schnittstelle folgende Merkmale aufweist:
eine Registerdatei (18) mit Registern (18A, 18B, 18C, 18D, 18E, 18F, 18G), wobei jedes Register einen Typ aufweist;
ein Laufsteuerregister (16);
eine Mikrosteuerung (12), die mit der Registerdatei für eine bidirektionale Kommunikation und mit dem Laufsteuerregister (16) verbunden ist;
ein Codespeicher-SRAM (14), der mit der Mikrosteuerung verbunden ist; und einen ausführbaren Code, der auf den Codespeicher-RAM geladen ist,
wobei der Codespeicher-SRAM (14) und das Laufsteuerregister (16) für eine bidirektionale Kommunikation mit dem Systemprozessor (30) verbunden sind,
wobei einer der Typen der Register ein Typ gemeinschaftlich verwendeter Register (18C) ist, auf die durch sowohl den Systemprozessor (30) als auch die Mikrosteuerung (12) zugegriffen werden kann, wobei die gemeinschaftlich verwendeten Register (18C) so angeordnet sind, dass auf sie durch den Systemprozessor (30) und die Mikrosteuerung (12) unterschiedlich zugegriffen wird,...

Description

  • Im Stand der Technik ist eine Laserdruckersteuerung insbesondere für eine zweckgebundene Druckmechanismus-Kommunikationszustandsmaschine entworfen. So muss eine anwendungsspezifische integrierte Schaltung (ASIC) neu entworfen werden, wenn sich die Maschinenschnittstellenspezifizierung verändert oder wenn ein Mechanismus eines anderen Verkäufers verwendet wird. Zusätzlich kann eine Laserdrucksteuerung I/O-Schnittstellen, wie z. B. seriell, parallel, Steuerbereichsnetz (CAN) und Frontplatte mit zweckgebundener Hardware mit fester Funktion, verwenden. Da die Funktionalität der Schnittstelle in einer bestimmten ASIC fest ist, ist die Flexibilität eingeschränkt und unter Umständen können Veränderungen an dem Protokoll einer bestimmten Schnittstelle nicht unterstützt werden. Zusätzlich muss, wenn eine andere Funktionalität erwünscht wird, die ASIC neu entworfen werden. Für Schnittstellen, die vor dem Einsetzen der ASIC-Entwicklung nicht gut definiert sind, kann die programmierbare I/O ein Implementierungsrisiko reduzieren und Zeitvermarktungsvorteile bringen.
  • Aus der US 6,490,638 B1 ist eine programmierbare Bussteuerung bekannt, die von einem Mikrokontroller gebildet wird, der eine CPU, einen internen Datenbus, eine Bus-Zustandssteuermaschine, eine programmierbare Schnittstellen-Zeitgabel-Steuerung und einen externen Bus aufweist.
  • Aus der EP 1213653 A2 ist eine programmierbare Schnittstelle bekannt, die eine programmierbare Zustandsmaschine auf Mikroprozessor-Basis aufweist.
  • Aus der DE 19654588 A1 ist eine programmierbare Ablaufsteuerung bekannt, mit der die Arbeitsbelastung einer Mikrosteuereinheit einer Speicherplattensteuerung vermindert werden kann.
  • Aus der DE 10005977 A1 ist bereits eine Kontaktiervorrichtung für ein tragbares Datenverarbeitungsgerät bekannt, welches eine Steuereinrichtung mit einem Mikroprozessor, einen Speicher und eine Kopplungseinrichtung aufweist, wobei die Kontaktierungsvorrichtung ein Gehäuse mit einer Kontaktierungseinheit und einer Rekonfigurationseinheit zum Anpassen der Kommunikation zwischen dem Datenverarbeitungsgerät und der Kontaktierungsvorrichtung aufweist.
  • Aus der US 2003/0131307 A1 sind ein System und ein Verfahren zur Behandlung von Soft-Speicherfehlern bekannt.
  • Die EP 1 282 041 A2 beschreibt einen eingebauten Test, der einen eingebetteten Speicher und Prozessor in einem anwendungsspezifischen integrierten Schaltkreis verwendet.
  • Die EP 0 023 568 B1 beschreibt einen Datenschnittstellenmechanismus zum Ausbilden einer Schnittstelle zu bitparallelen Datenbussen verschiedener Bitbreiten.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine programmierbare Schnittstelle mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch eine Schnittstelle gemäß Anspruch 1 gelöst.
  • Die vorliegende Erfindung definiert eine programmierbare I/O-Teilsystem-Architektur, die zur Implementierung einer Vielzahl von I/O-Protokollen verwendet werden kann. Sie ist für die Implementierung von Kommunikationsschnittstellen zwischen Laserdruckersteuerungen und Laserdruckermechanismussteuerungen geeignet. Das I/O-Teilsystem ist über eine herkömmliche Busstruktur an das Hauptsystemprozessor angeschlossen und kann innerhalb einer einzelnen integrierten Schaltung oder in separaten integrierten Schaltungen enthalten sein. Das I/O-Teilsystem besteht aus einer einfachen Mikrosteuerung, einem Codespeicher-SRAM, der den ausführbaren Code enthält, einem Laufsteuerregister, das durch die Hauptsystem-CPU zur Aktivierung des Teilsystems gesetzt wird, und einer spezialisierten Dual-Port-Registerdatei.
  • Die einfache Mikrosteuerung umfasst einen einfachen Instruktionssatz, der es derselben ermöglicht, grundlegende Zustandsmaschinenaufbauten zu emulieren. Die Architektur, wie sie hierin beschrieben ist, umfasst eine Dual-Port-Registerdatei, die Einzyklus-Lesen-Modifizieren-Schreiben-Zugriffe ermöglicht, für die effizienteste Emulierung von I/O-Zustandsmaschinen. Eine herkömmliche Mikrosteuerung jedoch könnte alternativ mit herkömmlichen Registern verwendet werden.
  • Der Codespeicher-RAM wird mit einem ausführbaren Mikrosteuerungscode von dem Hauptprozessor geladen, bevor er über das Laufsteuerregister aktiviert wird. Nachdem die Mikrosteuerung aktiviert ist, führt die Mikrosteuerung die in diesem Speicher gespeicherte Instruktionssequenz aus. Obwohl ein externer zugeteilter Speicher für einige Anwendungen eingesetzt werden könnte, ist der lokale Speicher für eine schnelle und wiederholbare Zustandsmaschinensequenzierung der Mikrosteuerung vorzuziehen. Da der ausführbare „Zustandsmaschine”-Code durch den Anwendungsprozessor heruntergeladen wird, ist das I/O-Teilsystem bei Laufzeit konfigurierbar.
  • Die spezialisierte Dual-Port-Registerdatei enthält eine Anzahl von Merkmalen, die es dem I/O-Teilsystem ermöglichen, effizient eine breite Vielzahl von Protokollen zu implementieren. Die Registerdatei umfasst eine Bank von Universalregistern, Zeitgeberregistern, externen I/O-Schnittstellenregistern, internen I/O-Registern, gemeinschaftlich verwendeten Registern, Unterbrechungsregister und optionalem DMA-FIFO, die durch den Mikroprozessor zur Datenspeicherung verwendet werden. Die Zeitgeberregister liefern eine Echtzeitsteuerung und Messung von Zeitgebungssequenzen. Die externen I/O-Schnittstellenregister mit Flankenerfassungsfähigkeit ermöglichen es der Mikrosteuerung, die I/O-Signale, die das Protokoll aufweist, abzutasten und/oder zu steuern.
  • Die internen I/O-Schnittstellenregister können wahlweise zur schnittstellenmäßigen Verbindung des programmierbaren I/O-Systems mit einem zweckgebundenen Hardwareblock verwendet werden. Die Bank gemeinschaftlich verwendeter Register ist mit einem Zugriffsprotokoll gemeinsam durch sowohl die Mikrosteuerung als auch die Hauptsystem-CPU zugänglich. Ein Unterbrechungsregister ermöglicht, dass Unterbrechungen von dem I/O-Teilsystem an die Haupt-CPU geleitet werden können. Das optionale DMA-FIFO ermöglicht eine effiziente Volumendatenübertragung von dem I/O-Teilsystem zu/von dem Hauptsystemspeicher mit minimaler Hauptsystemprozessorintervention.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen näher erläutert. Es zeigen:
  • 1 ein System gemäß der vorliegenden Erfindung; und
  • 2 eine beispielhafte Implementierung für einen Laserdrucker.
  • Die Erfindung liefert eine Architektur und ein Verfahren zum Implementieren einer programmierbaren I/O-Schnittstelle. Die Hauptfunktion liefert eine generische rekonfigurierbare I/O-Schnittstelle. Die Schnittstelle kann für Kommunikationen zwischen einer Laserdruckersteuerung und dem Druckmechanismus verwendet werden oder sie kann verwendet werden, um eine Vielzahl von Standard- oder kundenspezifischen Kommunikationsschnittstellen zu implementieren, wie z. B. serielle Schnittstellen, parallele Schnittstellen, serielle Peripherieschnittstellen (SPI), eine synchrone serielle Schnittstelle (SSI), Mikro Wire, eine Inter-Integrierte-Schaltung (I2C), ein Steuerbereichsnetz (CAN), UART, IEEE 1284, eine LCD-Schnittstelle, eine Frontplattenschnittstelle und ein MODEM.
  • Die Erfindung 10, wie in 1 gezeigt, ist als ein Peripheriegerät in einem herkömmlichen eingebetteten System auf Mikroprozessorbasis angeschlossen. Sie kann in der gleichen integrierten Schaltung wie der Hauptmikroprozessor enthalten sein oder kann sich in einer separaten integrierten Schaltung befinden. Die Erfindung ist mit dem Hauptmikroprozessorbus als Peripheriegerät verbunden. Sie ist außerdem an die Systemunterbrechungssteuerung und wahlweise an eine System-Direktspeicherzugriffs-(-DMA-)Steuerung angeschlossen. Als zusätzliche Option kann sie in einigen Fällen auch an ein zweckgebundenes Hardwaremerkmal in der integrierten Schaltung angeschlossen sein. In einem Videosystem z. B. kann die Erfindung verwendet werden, um zu einem Videostrom gehörige Synchronisierungspulse zu erfassen.
  • Die Erfindung kann die komplexen Synchronisierungsinformationen extrahieren und die vereinfachten Synchronisierungsnformationen an eine zweckgebundene Videoausgangssteuerung leiten. In einem Laserdrucker würde diese Synchronisierung die vertikale Seitensynchronisierung umfassen, die an die Lasermodulationssteuerung geleitet wird.
  • Die Architektur 10, in 1 gezeigt, besteht aus vier Hauptelementen, nämlich einer Mikrosteuerung 12, einem Codespeicher-SRAM 14, einem Laufsteuerregister 16 und einer spezialisierten Dual-Port-Registerdatei 18.
  • Die Mikrosteuerung 12 umfasst einen minimalen Instruktionsteilsatz zur Emulierung grundlegender Zustandsmaschinenaufbauten. Zur Darstellung kann ein minimaler Teilsatz Verzweigungs-, Konditional-Verzweigungs-, Schleifen-, Bewegungs-, Inkrementieren/Dekrementieren-, Vergleichs- und einfache Boolesche Operationen umfassen. Für eine Codeeffizienz kann ein Einebenen-Stapelregister 24 enthalten sein, um Eintiefen-Teilroutinen zu erlauben. Wie auf dem Erfindungsdiagramm gezeigt ist, besteht eine darstellende Mikrosteuerung 12 aus einem Programmzähler (PC) 20, der den Ort in dem Codespeicher 14 anzeigt, der gerade ausgeführt wird, einer Ausführungseinheit 22, die die mikrocodierte Instruktion aus dem Codespeicher decodiert, einem Stapelregister 24, das eine Einfachrückgabeadresse speichern kann, einer arithmetischen Einzyklus-Logikeinheit (Einzyklus-ALU) 26, die auf Daten wirken kann, die von dem Codespeicher vorgelegt werden, und/oder auf gegenwärtige Werte der Registerdatei 18, und einem Flag 28, das das Ergebnis der vorherigen Instruktion zur Konditional-Verzweigung speichert. Der ausführbare Maschinencode kann durch einen einfachen Assembler erzeugt werden. Freeware-Assembler sind verfügbar, die konfiguriert sein können, um eine einfache Mikrosteuerung zu unterstützen, indem eine Umfassen-Datei editiert wird, die die Operationscodes und das Maschineninstruktionsformat definiert. Eine Auflistungs- und Symboltabelle wird durch den Assembler erzeugt, um eine Fehlersuche in dem Code zu unterstützen.
  • Der Codespeicher-SRAM 14 wird verwendet, um die Maschineninstruktionen zu enthalten, die durch die Mikrosteuerung 12 ausgeführt werden. Der Codespeicher-SRAM 14 wird bei Lauf
  • zeit durch den Hauptsystem-Mikroprozessor 30 geladen. Aus der Perspektive der Mikrosteuerung 12 ist dies Nur-Lese-Speicher. Nachdem der Hauptprozessor 30 den Code geladen hat, signalisiert derselbe der Mikrosteuerung 12 über das Laufsteuerregister 16, mit der Ausführung von Instruktionen zu beginnen. Als eine alternative Implementierung könnte ein zugeteilter Systemspeicher (nicht gezeigt), z. B. ein DRAM, zur Speicherung des ausführbaren Codes verwendet werden. Dies ist jedoch weniger vorzuziehen, da dies die Zustandsmaschinenleistung reduzieren würde und unter Umständen keine wiederholbaren Ergebnisse ergibt, die unter Umständen zur Implementierung eines I/O-Protokolls erforderlich sind. Das I/O-Protokoll, z. B. Systemprogrammierschnittstelle (SPI), Inter-Integrierte-Schaltung (I2C), Steuerbereichsnetz (CAN), RS232, IEEE 1284, Frontplatte und MODEM, ist durch den ausführbaren „Zustandsmaschine”-Code definiert.
  • Das Herz der Erfindung ist die spezialisierte Registerdatei 18. Die Registerdatei 18 ist das, was es der Erfindung ermöglicht, effizient mit minimalem Mehraufwand bei dem Hauptsystemprozessor als I/O-Teilsystem zu arbeiten. Tatsächlich erlauben es diese Merkmale der programmierbaren I/O, sehr stark einem zweckgebundenen Hardwareperipheriegerät zu ähneln. Die Erfindung schafft Fähigkeiten, die normalerweise in einem zweckgebundenen Hardwareperipheriegerät zu finden sind, einschließlich Peripheriegerät-Status/Konfiguration/Steuer-Register, Unterbrechungsfähigkeit und DMA-Fähigkeit zur Volumendatenübertragung.
  • Idealerweise ist die spezialisierte Registerdatei 18 mit zwei Ports versehen, um es der einfachen Mikrosteuerung 12 zu ermöglichen, Lesen-Modifizieren-Schreiben-Operationen für Codegrößeneffizienz und -leistung durchzuführen. Die Registerdatei 18 kann eine Bank von Universalmikrosteuerungsregistern 18A, Zeitgeberregistern 18B, externen I/O-Schnittstellenregistern 18D, internen I/O-Registern 18E, gemeinschaftlich verwendeten Registern 18C, Unterbrechungsregister 18F und optionalem DMA-FIFO 18G, die durch den Mikroprozessor 30 zur Datenspeicherung verwendet werden, umfassen.
  • Die Universalmikrosteuerungsregister 18A werden für lokale Variablen und zur Speicherung verwendet.
  • Die Zeitgeberregister 18B ähneln den Universalregistern 18A. Sie können konfiguriert sein, um unabhängig basierend auf einer ausgewählten Systemzeitbasis (z. B. 1 μs, 10 μs, 100 μs, 1 ms, 10 ms und 100 ms) zu inkrementieren. Sie werden zur Erzeugung einer Zeitgebung für das zu implementierende Protokoll und zur Erfassung von Protokollzeitablaufsfehlern verwendet. Die Register können konfiguriert sein, um bei einem vorbestimmten End-Zählwert zu stoppen, oder können frei laufen.
  • Auf die gemeinschaftlich verwendeten Register 18C kann durch sowohl den Hauptsystemprozessor 30 als auch die I/O-Mikrosteuerung 12 zugegriffen werden. Sie werden verwendet, um die Peripheriegerät-Status/Konfiguration/Steuer-Register zu emulieren, die in einem herkömmlichen Hardwareperipheriegerät erscheinen. Für eine Effizienz kann auf die Register 18C durch den Hauptprozessor 30 und die Mikrosteuerung 12 unterschiedlich zugegriffen werden. Der Hauptprozessor 30 könnte z. B. vier Byte breite Register auf einmal als ein einzelnes 32-Bit-Wort lesen, wohingegen die Mikrosteuerung 12 auf dieselben unter Umständen als vier separate 8-Bit-Entitäten zugreift. Um ein Status/Protokoll-Element in diesen Registern 18C effizient und sicher zu implementieren, wird eine Zugriffspriorität spezifiziert, die Schreibzugriff für ein bestimmtes Register entweder dem Hauptprozessor 30 oder der Mikrosteuerung 12 erteilt. Das Verfahren zur Zugriffsprioritätssteuerung ist in einer separaten Patentanmeldung, offenbart durch Richard Taylor, mit dem Titel „Register Access Protocol for Multi-Processor Systems” (Registerzugriffsprotokoll für Mehrprozessorsysteme), übertragen an Agilent Technologies, eingereicht am 11. März 2004 beim US-Patent- und Markenamt, spezifiziert.
  • Die externen I/O-Schnittstellenregister 18D ermöglichen es der Mikrosteuerung 12, die tatsächlichen externen elektrischen Signale zu beobachten und zu steuern, die das Protokoll der zu implementierenden Kommunikationen aufweist. Diese Register 18D umfassen eine zusätzliche Funktionalität, um eine effiziente Implementierung der Steuerzustandsmaschine in der Mikrosteuerung 12 zu erlauben. Die Register 18D sind so vorgesehen, dass jedes Signal als Eingangs-, Ausgangs- oder als bidirektionales Signal definiert werden kann. Als Eingabe kann der Zustand des Signals gelesen werden. Synchronisierer sind an jedem Eingang vorgesehen, um Asynchronitätsprobleme zu verhindern. Zusätzlich ist eine optionale Flankenerfassungslogik vorgesehen, um anzuzeigen, ob eine ansteigende oder abfallende Flanke bei dem Eingangssignal aufgetreten ist. Die Übergangserfassung ist besonders wertvoll, wenn das I/O-Protokoll aus Pulsen besteht, die andernfalls verpasst worden wären. Wenn ein Signal als eine Ausgabe verwendet wird, werden Ausgabepegel und Ausgabefreigabe direkt durch die Register 18D gesteuert.
  • Die internen I/O-Schnittstellenregister 18E liefern eine ähnliche Funktion wie die externen I/O-Schnittstellenregister 18D, mit der Ausnahme, dass diese es dem I/O-Teilsystem ermöglichen, mit internen zweckgebundenen Funktionsblöcken zu kommunizieren. Dies ist nützlich, wenn der Zweck des programmierbaren I/O-Teilsystems darin besteht, als ein flexibler Mittler zwischen einem externen Protokoll und einem internen Peripheriegerät mit fester Funktion zu dienen. Als ein Beispiel gibt es für eine Laserdruckersteuerung eine zweckgebundene Laserdruckermodulationsausgangssteuerung, die einen seriellen Videobitstrom erzeugt, der den Laser abfeuert. Der Bitstrom muss auf die tatsächliche Position der fotoempfindlichen Trommel und des Papiers synchronisiert sein. Das Verfahren einer Horizontal- und Vertikal-Synchronisierung variiert unter den verfügbaren Druckmechanismen. Einige Mechanismen können ein einzelnes Vertikalsynchronisierungssignal bereitstellen, andere erfordern es unter Umständen, dass die Vertikalsynchronisierung durch das Vorliegen eines Horizontalsynchronisierungssignals abgeleitet wird, wiederum andere liefern unter Umständen zahlreiche Vertikalsynchronisierungssignale für mehrere Trommeln. Das I/O-Teilsystem kann verwendet werden, um die in einem bestimmten Mechanismus implementierte Synchronisierung zu decodieren und dieselbe zu einer konsistenten Synchronisierungsschnittstelle zu der zweckgebundenen Modulationssteuerung zu übertragen. Die programmierbare Natur der Erfindung ermöglicht es, dass der Entwurf eine Vielzahl von Mechanismen sowie Mechanismen, die noch nicht definiert wurden, unterstützen kann.
  • Das Unterbrechungsregister 18F würde es dem I/O-Teilsystem ermöglichen, einen unterbrechungsgetriebenen Status an den Hauptprozessor 30 zu liefern, wie dies ein herkömmliches Peripheriegerät tun würde. Bei der tatsächlichen Implementierung kann das Unterbrechungsregister 18F in den gemeinschaftlich verwendeten Registern 18C enthalten sein, mit zusätzlichen zweckgebundenen Unterbrechungssignalen an den Hauptsystemprozessor 30.
  • Das FIFO 18G ermöglicht es, dass eine Volumendatenübertragung zwischen dem I/O-Teilsystem und dem Systemspeicher mit minimaler durch den Hauptsystemprozessor 30 benötigter Unterstützung fertig gestellt werden kann. Daten, die durch die Mikrosteuerung 12 an das FIFO 18G geschrieben werden, werden über einen DMA 34 an den Hauptsystemspeicher (nicht gezeigt) übertragen. Ähnlich können eingehende DMA-Daten durch die Mikrosteuerung 12 gelesen werden. Das Laufsteuerregister 16 kann ein Merkmal zum Löschen des Inhalts des FIFO 18G umfassen.
  • Angesichts der programmierbaren Natur der Erfindung können unterschiedliche Kommunikationsprotokolle mit einem einzelnen Entwurf unterstützt werden. ASIC-Entwürfe können abgeschlossen werden, bevor das Kommunikationsprotokoll vollständig definiert ist. Die Steuerung, die Schnittstellenzeitgebung und das Protokoll können spät in dem Entwurfszyklus oder an dem Einsatzort modifiziert werden. Höhere Grade einer Hardwareassistenz können implementiert werden. Der Entwurf kann zur Implementierung neuer Schnittstellen verwendet werden, die zu der Zeit, zu der der ASIC-Entwurf herausgegeben wurde, noch nicht vorstellbar waren.
  • Die Erfindung ist insbesondere für Laserdrucker geeignet. In einer beispielhaften Implementierung, in 2 gezeigt, wird eine einzelne Steuerung 12 verwendet, um sowohl den seriellen Befehl/Status-Kanal zwischen der Lasermodulationssteuerung 36 und der Mechanismussteuerung (separate integrierte Schaltung) 38 als auch die Vertikalseitensynchronisation bereitzustellen. Der Entwurf unterstützt aufgrund der Fähigkeit eines Herunterladens unterschiedlicher Synchronisierungsprotokolle eine Vielzahl von Farb- und einfarbigen Druckmechanismen mit variierenden Anzahlen von Laserstrahlen.

Claims (5)

  1. Programmierbare Schnittstelle (10) zwischen einem Systemprozessor (30) und einem Peripheriegerät (38), wobei die Schnittstelle folgende Merkmale aufweist: eine Registerdatei (18) mit Registern (18A, 18B, 18C, 18D, 18E, 18F, 18G), wobei jedes Register einen Typ aufweist; ein Laufsteuerregister (16); eine Mikrosteuerung (12), die mit der Registerdatei für eine bidirektionale Kommunikation und mit dem Laufsteuerregister (16) verbunden ist; ein Codespeicher-SRAM (14), der mit der Mikrosteuerung verbunden ist; und einen ausführbaren Code, der auf den Codespeicher-RAM geladen ist, wobei der Codespeicher-SRAM (14) und das Laufsteuerregister (16) für eine bidirektionale Kommunikation mit dem Systemprozessor (30) verbunden sind, wobei einer der Typen der Register ein Typ gemeinschaftlich verwendeter Register (18C) ist, auf die durch sowohl den Systemprozessor (30) als auch die Mikrosteuerung (12) zugegriffen werden kann, wobei die gemeinschaftlich verwendeten Register (18C) so angeordnet sind, dass auf sie durch den Systemprozessor (30) und die Mikrosteuerung (12) unterschiedlich zugegriffen wird, und wobei die gemeinschaftlich verwendeten Register (18C) Hardwareperipherieregister emulieren, und wobei ein anderer der Typen der Register ein Typ externer I/O-Schnittstellenregister (18D) ist, bei denen jedes Signal als Eingangs-, Ausgangs- oder als bidirektionales Signal definiert werden kann und die eine Flankenerfassungslogik enthalten, um anzuzeigen, ob eine ansteigende oder abfallende Flanke bei einem Eingangssignal aufgetreten ist, wobei die externen I/O-Schnittstellenregister weiterhin eingerichtet sind, um Ausgangspegel und Ausgangsfreigabe direkt zu steuern, wenn ein Signal ein Ausgangssignal ist.
  2. Vorrichtung gemäß Anspruch 1, bei der die Typen der Register aus einer Gruppe ausgewählt sind, die ein Zeitgeberregister (18B), ein Universalregister (18A), ein externes I/O-Register (18D), ein internes I/O-Register (18E), ein gemeinschaftlich verwendetes Register (18C) und ein Unterbrechungsregister (18F) umfasst.
  3. Vorrichtung (10) gemäß Anspruch 1 oder 2, bei der der Registertyp ferner FIFO-Register (18G) umfasst, die wirksam sind, um mit einer Direktspeicherzugriffssteuerung zu kommunizieren.
  4. Vorrichtung (10) gemäß einem der Ansprüche 1 bis 3, bei der der ausführbare Code eine Laserdruckermechanismus-Kommunikationsschnittstelle und eine Vertikal-Seite-Oben-Synchronisierungsschnittstelle implementiert.
  5. Vorrichtung (10) gemäß einem der Ansprüche 1 bis 4, bei der der ausführbare Code aus einer Gruppe ausgewählt ist, die serielle Schnittstellen, parallele Schnittstellen, eine serielle Peripherieschnittstelle (SPI), eine synchrone serielle Schnittstelle (SSI), Mikro Wire, eine Inter-Integrierte-Schaltung (12C), ein Steuerbereichsnetz (CAN), UART, IEEE 1284, eine LCD-Schnittstelle, eine Frontplattenschnittstelle und ein MODEM umfasst.
DE102005004420A 2004-04-15 2005-01-31 Programmierbare I/O-Schnittstelle Expired - Fee Related DE102005004420B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/826886 2004-04-15
US10/826,886 US7975094B2 (en) 2004-04-15 2004-04-15 Programmable I/O interface

Publications (2)

Publication Number Publication Date
DE102005004420A1 DE102005004420A1 (de) 2005-11-10
DE102005004420B4 true DE102005004420B4 (de) 2013-01-10

Family

ID=35097648

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005004420A Expired - Fee Related DE102005004420B4 (de) 2004-04-15 2005-01-31 Programmierbare I/O-Schnittstelle

Country Status (3)

Country Link
US (2) US7975094B2 (de)
JP (1) JP5366288B2 (de)
DE (1) DE102005004420B4 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7898047B2 (en) * 2003-03-03 2011-03-01 Samsung Electronics Co., Ltd. Integrated nitride and silicon carbide-based devices and methods of fabricating integrated nitride-based devices
US7174405B1 (en) * 2003-06-06 2007-02-06 Cisco Technology, Inc. Method and system for replacing a read-modify-write operation with an atomic set-bits or clear-bits operation
US7525679B2 (en) * 2003-09-03 2009-04-28 Marvell International Technology Ltd. Efficient printer control electronics
US20110138158A1 (en) * 2008-07-30 2011-06-09 Masatomo Mitsuhashi Integrated circuit
JP5331730B2 (ja) * 2010-02-24 2013-10-30 日立オートモティブシステムズ株式会社 内燃機関制御装置
CN103389958B (zh) * 2013-06-27 2016-08-17 三星半导体(中国)研究开发有限公司 通用串行接口
CN104360970A (zh) * 2014-10-11 2015-02-18 中国船舶重工集团公司第七二四研究所 一种串行总线协议自动适配传输技术
CN106708769B (zh) * 2015-07-16 2019-08-06 北京谊安医疗系统股份有限公司 一种自适应串行接口电路
US11550281B2 (en) 2017-05-12 2023-01-10 Gowin Semiconductor Corporation Method and system for providing programmable microcontroller unit (MCU) using two-phase configuration process
US10789197B2 (en) * 2017-05-12 2020-09-29 Jinghui Zhu Methods and system for providing software defined microcontroller unit (MCU)
WO2019090247A1 (en) 2017-11-06 2019-05-09 Pensando Systems Inc. Network system including match processing unit for table-based actions
WO2019164827A1 (en) * 2018-02-22 2019-08-29 Pensando Systems Inc. Programmable computer io device interface

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0023568B1 (de) * 1979-07-30 1984-03-21 International Business Machines Corporation Daten-Schnittstellen-Mechanismus zum Verbinden Bit-paralleler Datensammelschienen verschiedener Bit-Breiten
DE19654588A1 (de) * 1995-12-30 1997-07-17 Samsung Electronics Co Ltd Programmierbare Ablaufsteuerung einer Plattensteuerung und ein Verfahren für eine zugehörige Kartenzuweisung
DE10005977A1 (de) * 2000-02-09 2001-08-30 Thomas Lehmann Kontaktierungsvorrichtung für ein tragbares Datenverarbeitungsger t
EP1213653A2 (de) * 2000-12-07 2002-06-12 Texas Instruments Incorporated Programmierbare Automatschnittstelle
US6490638B1 (en) * 1999-08-23 2002-12-03 Advanced Micro Devices, Inc. General purpose bus with programmable timing
EP1282041A2 (de) * 2001-07-30 2003-02-05 Agilent Technologies, Inc. (a Delaware corporation) Eingebauter Selbsttest mit eingebauten Speicher und Prozessor in einer ASIC Vorrichtung
US20030131307A1 (en) * 2002-01-10 2003-07-10 Taylor Richard D. System and method of recovering from soft memory errors

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0833685B2 (ja) 1986-07-15 1996-03-29 株式会社リコー 静電転写型記録装置
JPH0348754A (ja) 1989-07-18 1991-03-01 Dainippon Printing Co Ltd 印刷バーコード品質管理システム
US5517015A (en) * 1990-11-19 1996-05-14 Dallas Semiconductor Corporation Communication module
JPH04368875A (ja) 1991-06-15 1992-12-21 Ricoh Co Ltd 異常検出装置
US5381538A (en) * 1991-10-15 1995-01-10 International Business Machines Corp. DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
JPH05216597A (ja) * 1992-02-05 1993-08-27 Canon Inc 入出力方法及び装置
US6762733B2 (en) * 1993-06-24 2004-07-13 Nintendo Co. Ltd. Electronic entertainment and communication system
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US6029239A (en) * 1997-12-01 2000-02-22 Advanced Micro Devices, Inc. Configuring a communications system with a configurable data transfer architecture
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US7139743B2 (en) * 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
JP2002245113A (ja) * 2001-02-16 2002-08-30 Hitachi Ltd 論理コンパイルシステム及び方法及び物理モジュール
JP3895120B2 (ja) * 2001-03-07 2007-03-22 株式会社リコー プログラマブルシーケンサ内蔵asic及び画像形成装置
US20020168067A1 (en) * 2001-05-08 2002-11-14 Timofei Kouzminov Copy protection method and system for a field-programmable gate array
US6621293B2 (en) * 2001-05-31 2003-09-16 Koninklijke Philips Electronics N.V. Integrated circuit arrangement with feature control
JP3995037B2 (ja) 2001-11-28 2007-10-24 富士フイルム株式会社 走査型印刷装置およびそれによる印刷方法
JP2005111932A (ja) * 2003-10-10 2005-04-28 Fuji Photo Film Co Ltd 電子機器
US8488184B2 (en) 2004-03-18 2013-07-16 Riso Kagaku Corporation Image forming apparatus having a plurality of individually controlled recording heads

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0023568B1 (de) * 1979-07-30 1984-03-21 International Business Machines Corporation Daten-Schnittstellen-Mechanismus zum Verbinden Bit-paralleler Datensammelschienen verschiedener Bit-Breiten
DE19654588A1 (de) * 1995-12-30 1997-07-17 Samsung Electronics Co Ltd Programmierbare Ablaufsteuerung einer Plattensteuerung und ein Verfahren für eine zugehörige Kartenzuweisung
US6490638B1 (en) * 1999-08-23 2002-12-03 Advanced Micro Devices, Inc. General purpose bus with programmable timing
DE10005977A1 (de) * 2000-02-09 2001-08-30 Thomas Lehmann Kontaktierungsvorrichtung für ein tragbares Datenverarbeitungsger t
EP1213653A2 (de) * 2000-12-07 2002-06-12 Texas Instruments Incorporated Programmierbare Automatschnittstelle
EP1282041A2 (de) * 2001-07-30 2003-02-05 Agilent Technologies, Inc. (a Delaware corporation) Eingebauter Selbsttest mit eingebauten Speicher und Prozessor in einer ASIC Vorrichtung
US20030131307A1 (en) * 2002-01-10 2003-07-10 Taylor Richard D. System and method of recovering from soft memory errors

Also Published As

Publication number Publication date
DE102005004420A1 (de) 2005-11-10
JP5366288B2 (ja) 2013-12-11
US7975094B2 (en) 2011-07-05
US20050235096A1 (en) 2005-10-20
US20110307634A1 (en) 2011-12-15
JP2005297561A (ja) 2005-10-27
US8127070B2 (en) 2012-02-28

Similar Documents

Publication Publication Date Title
DE102005004420B4 (de) Programmierbare I/O-Schnittstelle
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE60217157T2 (de) Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts
DE2456578C2 (de) Datenverarbeitungsanlage
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE69817170T2 (de) Emulation von unterbrechungsmechanismus in einem multiprozessorsystem
DE19735348A1 (de) Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern
DE10297597T5 (de) Suspendieren der Ausführung eines Threads in einem Mehrfach-Thread-Prozessor
DE4018481C2 (de)
DE19729618C2 (de) Mikroprozessor und Mehrprozessorsystem
DE102013113262A1 (de) Auslöser-Leitwegeinheit
DE102022107800A1 (de) Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform
DE112019000460T5 (de) Adapter für direkten speicherzugriff
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE2717700C2 (de) Speicherzugriffsanordnung
DE19580638B4 (de) Computersystem und Verfahren zum Steuern eines Peripheriegeräts in einem Computersystem
DE19802868C2 (de) Verfahren und Vorrichtung zur Datenakquisition
DE69737168T2 (de) DMA-Sklavenemulationsgerät in einem Rechnersystembus
DE69938017T2 (de) Datenprozessor mit robuster Unterbrechungsverzweigung und Betriebsverfahren dazu
DE102007015507A1 (de) Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb
DE102014111305A1 (de) Prozessor-Modell, das ein einziges großes, lineares Register verwendet, mit FIFO-basierten I/O-Ports unterstützenden neuen Interface-Signalen und unterbrechungsgesteuerten Bus-Transfers, die DMA, Brücken und einen externen I/O-Bus eliminieren
DE10140675A1 (de) Echtzeit-Betriebsystem und Prozessorkarte mit einem solchen Echtzeit-Betriebsystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: AVAGO TECHNOLOGIES GENERAL IP ( SINGAPORE) PTE. LT

8128 New person/name/address of the agent

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELLSCHA

8127 New person/name/address of the applicant

Owner name: MARVELL INTERNATIONAL TECHNOLOGY LTD., HAMILTO, BM

8128 New person/name/address of the agent

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,

R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130411

R081 Change of applicant/patentee

Owner name: MARVELL ASIA PTE, LTD., SG

Free format text: FORMER OWNER: MARVELL INTERNATIONAL TECHNOLOGY LTD., HAMILTON, BM

R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee