DE102013021107B4 - Steuerung einer input/output schnittstelle - Google Patents

Steuerung einer input/output schnittstelle Download PDF

Info

Publication number
DE102013021107B4
DE102013021107B4 DE102013021107.7A DE102013021107A DE102013021107B4 DE 102013021107 B4 DE102013021107 B4 DE 102013021107B4 DE 102013021107 A DE102013021107 A DE 102013021107A DE 102013021107 B4 DE102013021107 B4 DE 102013021107B4
Authority
DE
Germany
Prior art keywords
interface circuit
commands
terminal
interface
controller
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.)
Active
Application number
DE102013021107.7A
Other languages
English (en)
Other versions
DE102013021107A1 (de
Inventor
Xiaohui Wang
Paul Zavalney I.
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.)
Silicon Laboratories Inc
Original Assignee
Silicon Laboratories Inc
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 Silicon Laboratories Inc filed Critical Silicon Laboratories Inc
Publication of DE102013021107A1 publication Critical patent/DE102013021107A1/de
Application granted granted Critical
Publication of DE102013021107B4 publication Critical patent/DE102013021107B4/de
Active 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M1/00Details of apparatus for conversion
    • H02M1/0003Details of control, feedback or regulation circuits
    • H02M1/0012Control circuits using digital or numerical techniques
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M1/00Details of apparatus for conversion
    • H02M1/38Means for preventing simultaneous conduction of switches
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M7/00Conversion of ac power input into dc power output; Conversion of dc power input into ac power output
    • H02M7/42Conversion of dc power input into ac power output without possibility of reversal
    • H02M7/44Conversion of dc power input into ac power output without possibility of reversal by static converters
    • H02M7/48Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode
    • H02M7/53Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal
    • H02M7/537Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters
    • H02M7/539Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters with automatic control of output wave form or frequency
    • H02M7/5395Conversion of dc power input into ac power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only, e.g. single switched pulse inverters with automatic control of output wave form or frequency by pulse-width modulation

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)
  • Human Computer Interaction (AREA)

Abstract

Eine Vorrichtung, die eine Input/Output (I/O) Schnittstellenschaltung aufweist, die einen Speicher und einen Controller aufweist. Der Speicher speichert eine Mehrzahl von Befehlen, um eine Input/Output (I/O) Schnittstelle zu steuern. Die Befehle geben wenigstens einen I/O-Zustand von wenigstens einem I/O-Terminal der I/O-Schnittstellenschaltung und eine Zeitdauer, welche mit dem I/O-Zustand in Verbindung steht, an. Der Controller führt die Befehle aus, um die I/O-Schnittstelle in einer vordefinierten Abfolge in die I/O-Zustände zu versetzen.

Description

  • Hintergrund
  • Ein typischer Microcontroller kann eine Universal-Input/Output (I/O) Schnittstelle zur Kommunikation mit Geräten, welche sich außerhalb des Microcontrollers befinden, enthalten. In diesem Zusammenhang können die I/O-Terminals der I/O-Schnittstelle beispielsweise für folgende Zwecke verwendet werden: zum Abtasten von analogen Signalen; zum Übermitteln von digitalen Signalen; zum Erzeugen von Wellenformen; zum Bereitstellen von Signalen, welche im Zusammenhang mit zweiseitig gerichteten Kommunikationslinien stehen (eine zweiseitig gerichtete Kommunikationslinie eines seriellen Buses, zum Beispiel); und zum Bereitstellen von Signalen, welche für Kontrollanwendungen verwendet werden.
  • In spezielleren Beispielen kann die I/O-Schnittstelle Signale zur Kommunikation über ein Serial Peripheral Interface(SPI)-Bus, zur Kommunikation über ein Systemmanagement Bus (SMB) oder zum Bereitstellen einer Universal Asynchronous Receiver/Transmitter-(UART)-Schnittstelle erzeugen. In einem weiteren Beispiel kann der Microcontroller Puls Width Modulation (PWM) Signale erzeugen, die zur Motorkontrolle oder zum Wechseln von Steuerkontrollanwendungen verwendet werden können.
  • US 7,937,520 B2 offenbart einen sog. GPI-Controller (General Purpose Interface Controller), der einen Slave-Interfacecontroller und einen Master-Interfacecontroller umfasst, die für einen Austausch von Daten zwischen Master-Geräten und Slave-Geräten in einem elektronischen Gerät verwendet werden. Der Slave-Interfacecontroller empfängt von einem der Master-Geräte Daten und ein erstes Steuersignal und wandelt das erste Steuersignal in ein Anforderungssignal um. Der Master-Interfacecontroller empfängt von dem Slave-Interfacecontroller die Daten und das Anforderungssignal, wandelt das Anforderungssignal in ein zweites Steuersignal um, das von zumindest einem der Slave-Geräte erkannt wird, und leitet die Daten und das zweite Steuersignal an das Slave-Gerät weiter.
  • In dem Wikipedia-Artikel über ”Channel I/O” vom 28.10.2012 ist eine I/O Schnittstellenschaltung mit einem Channel-Prozessor beschrieben, der einen Speicher zur Abarbeitung von I/O Anweisungen aufweist.
  • Demgegenüber schafft die vorliegende Erfindung eine Vorrichtung umfassend: eine programmierbare Input/Output (I/O) Schnittstellenschaltung, die einen Controller und einen Speicher umfasst, wobei der Speicher dazu geeignet ist, eine Mehrzahl von Befehlen zu speichern, um die I/O Schnittstellenschaltung zu steuern, wobei die Befehle I/O Zustände der I/O Schnittstellenschaltung und Zeitdauern der I/O Zustände angeben, wobei wenigstens einer der Befehle ein Format hat, welches ein erstes Feld umfasst, um zu kontrollieren, ob ein dazugehöriges I/O Terminal einer I/O-Schnittstellenschaltung angesteuert wird und zum Abtasten während der Zeitdauer verwendet wird, ein zweites Feld, um zu kontrollieren, ob eine Datenrichtung für ein dazugehöriges I/O Terminal einer I/O Schnittstellenschaltung invertiert ist, ein drittes Feld, um die Zeitdauer zu kontrollieren, und ein viertes Feld, um den logischen Wert für ein dazugehöriges I/O Terminal der I/O Schnittstellenschaltung zu kontrollieren, wobei der Controller dazu geeignet ist, die Befehle auszuführen, um die I/O Schnittstellenschaltung in einer vordefinierten Abfolge in die I/O Zustände zu versetzen.
  • Nach einem weiteren Aspekt schafft die vorliegende Erfindung ein Verfahren zur Steuerung einer vorgenannten Vorrichtung, umfassend: Speichern einer Mehrzahl von Befehlen, um eine Input/Output (I/O) Schnittstellenschaltung zu steuern, wobei jeder Befehl wenigstens einen I/O Zustand für wenigstens einen I/O Terminal der I/O-Schnittstellenschaltung und eine Zeitdauer des I/O-Zustandes angibt; und Ausführen der Befehle unter Verwendung eines Controllers der I/O Schnittstellenschaltung, um den wenigstens einen I/O Zustand gemäß einer vordefinierten Abfolge zu steuern, wobei wenigstens einer der Befehle ein Format hat, welches ein erstes Feld umfasst, um zu kontrollieren, ob ein dazugehöriges I/O Terminal einer I/O-Schnittstellenschaltung angesteuert wird und zum Abtasten während der Zeitdauer verwendet wird, ein zweites Feld, um zu kontrollieren, ob eine Datenrichtung für ein dazugehöriges I/O Terminal einer I/O Schnittstellenschaltung invertiert ist, ein drittes Feld, um die Zeitdauer zu kontrollieren, und ein viertes Feld, um den logischen Wert für ein dazugehöriges I/O Terminal der I/O Schnittstellenschaltung zu kontrollieren.
  • Ferner ist die vorliegende Erfindung nach einem weiteren Aspekt gerichtet auf eine Vorrichtung mit einem integrierten Schaltkreis (IC) umfassend einen Prozessorkern, eine programmierbare Input/Output (I/O) Schnittstellenschaltung, die einen Controller und einen Speicher umfasst, wobei der Speicher dazu geeignet ist, eine Mehrzahl von Befehlen zu speichern, um die I/O Schnittstellenschaltung zu steuern, wobei die Befehle I/O Zustände der I/O Schnittstellenschaltung und Zeitdauern der I/O Zustände angeben, wobei wenigstens einer der Befehle ein Format hat, welches ein erstes Feld umfasst, um zu kontrollieren, ob ein dazugehöriges I/O Terminal einer I/O-Schnittstellenschaltung angesteuert wird und zum Abtasten während der Zeitdauer verwendet wird, ein zweites Feld, um zu kontrollieren, ob eine Datenrichtung für ein dazugehöriges I/O Terminal einer I/O Schnittstellenschaltung invertiert ist, ein drittes Feld, um die Zeitdauer zu kontrollieren, und ein viertes Feld, um den logischen Wert für ein dazugehöriges I/O Terminal der I/O Schnittstellenschaltung zu kontrollieren, wobei der Controller dazu geeignet ist, die Befehle auszuführen, um die I/O Schnittstellenschaltung in einer vordefinierten Abfolge in die I/O Zustände zu versetzen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung ergeben sich aus den abhängigen Ansprüchen, der nachfolgenden Beschreibung und den Zeichnungen.
  • Figurenbeschreibung
  • 1 zeigt ein schematisches Diagramm eines Systems gemäß einem Ausführungsbeispiel.
  • 2 zeigt ein schematisches Diagramm einer Mikrocontrollereinheit (MCU) gemäß einem Ausführungsbeispiel.
  • 3 zeigt ein Flussdiagramm, welches eine Technik zum Steuern einer Input-/Output (I/O)-Schnittstelle der MCUs nach 2 zeigt, gemäß einem Ausführungsbeispiel.
  • 4 zeigt eine Abbildung einer Struktur eines I/O-Schnittstellen-Befehls gemäß einem Ausführungsbeispiel.
  • 5 zeigt eine Abbildung einer Verwendung des I/O-Schnittstellen-Befehls, um ein Signal auf einem I/O-Terminals der I/O-Schnittstelle anzusteuern, gemäß einem Ausführungsbeispiel.
  • 6 zeigt eine Abbildung der Verwendung des I/O-Schnittstellen-Befehls, um ein I/O-Terminal der I/O-Schnittstelle für eine zweiseitig gerichtete Kommunikation einzurichten, gemäß einem Ausführungsbeispiel.
  • 7 zeigt ein schematisches Diagramm des I/O-Schnittstellen-Controllers von 2 gemäß einem Ausführungsbeispiel.
  • 8 zeigt ein Zustandsdiagramm des I/O-Schnittstellen-Controllers gemäß einem Ausführungsbeispiel.
  • 9 zeigt ein schematisches Diagramm eines Motorkontrollsystems gemäß einem Ausführungsbeispiel.
  • Detaillierte Beschreibung
  • Im Folgenden werden Techniken und Systeme offenbart, welche es erlauben, Input-/Output(I/O)-Schnittstellenbefehle auszuführen, um eine Universal I/O-Schnittstelle einer Mikrocontrollereinheit (MCU) zu kontrollieren. In diesem Zusammenhang ermöglichen es die Kontrolltechniken und Systeme, die im Folgenden offenbart sind, eine I/O-Schnittstelle zu verwenden, beispielsweise um deterministisch Wellenformen zu erzeugen, ein Abtastprotokoll zu kontrollieren, zur Durchlaufkontrolle einer zweiseitig gerichteten Kommunikation, zum Abtasten von Eingangssignalen, und zu vielem mehr. Außerdem können die I/O-Schnittstellenbefehle durch einen Universal-I/O-Controller der MCU ausgeführt werden, ohne dass der MCU-Prozessorkern in die Ausführung der Befehle involviert ist. Somit kann, als einer der möglichen Vorteile dieser Anordnung, der Zeitablauf einer Signalwellenform, die durch die MCU erzeugt wird, genau gesteuert werden, ohne unter dem Einfluss von beispielsweise unsicheren Verzögerungen oder Latenzen (Systembusverzögerungen, zum Beispiel) zu stehen, welche ansonsten durch die Ausführung von I/O-Befehlen durch den Prozessorkern auftreten können. Außerdem können die hier offenbarten Techniken und Systeme verwendet werden, um relativ präzise Wellenformen zu erzeugen, und sie können ebenso zur Erzeugung von zufälligen oder pseudozufälligen Wellenformen verwendet werden. Weitere Vorteile sind beabsichtigt und werden durch die nun folgende Beschreibung offensichtlich.
  • Als ein spezielleres Beispiel ist in 1 eine MCU 24 in einem Beispielsystem 10 abgebildet. In diesem Beispiel kontrolliert die MCU 24 verschiedene Aspekte von einer oder mehreren Komponenten 70. Die Komponenten 70 können beispielsweise eine oder mehrere der nun folgenden Vorrichtungen sein, abhängig von der speziellen Anwendung: ein Elektromotor, ein Haushaltsgerät, ein Warenbestandskontrollterminal, ein Computer, ein Tablet, ein intelligenten Stromzähler, eine kabellose Schnittstelle, eine Mobilfunkschnittstelle, eine interaktive Touchscreen-User Schnittstelle, und vieles mehr. Alle oder Teile der Komponenten der MCU 24 können Teil eines integrierten Schaltkreises (IC) oder eines Halbleiterpaketes 30, sein. Beispielsweise können alle oder Teile der Komponenten der MCU 24 auf einem einzelnen Die oder mehreren Dies (ein Multichipmodul, zum Beispiel) des Halbleiterpakets 30 hergestellt werden.
  • Wie in 1 gezeigt, weist die MCU 24 eine Universal I/O (GPIO) Schnittstelle 140 zum Zwecke der Erzeugung und des Empfangen von Input- und Output-Signalen über die I/O-Terminals 40 zur Kommunikation mit den Komponenten auf. Bezugnehmend auf 2 weist die MCU 24 unter ihren Komponenten einen Prozessorkern 150 und die GPIO-Schnittstelle 140 auf. Abhängig vom speziellen Ausführungsbeispiel kann es sein, dass die MCU 24 keine der Komponenten, die in 2 gezeigt werden, enthält, mit Ausnahme des Prozessorkerns 150 und der GPIO-Schnittstelle 140. Ebenso kann es sein, dass eine oder mehrere der Komponenten, die in 2 abgebildet sind, zusätzlich zum Prozessorkern 150 und der GPIO-Schnittstelle enthalten sind; weiterhin kann es sein, dass andere und/oder zusätzliche Komponenten als diese, die in 2 abgebildet sind, enthalten sind; usw. Somit können viele Ausführungsbeispiele erdacht werden, welche innerhalb des Schutzbereichs der angehängten Ansprüche liegen.
  • In einem Beispiel kann der Prozessorkern 150 ein 32-Bit Kern, wie zum Beispiel der Advanced RISC Machine (ARM) Prozessorkern, sein, welcher einen Reduced Instruction Set Computer (RISC) Befehlssatz ausführt. Im Allgemeinen kommuniziert der Prozessorkern 150 mit verschiedenen anderen Systemkomponenten der MCU 24, wie zum Beispiel mit einem Speicher-Controller oder Manager 160, über einen Systembus 130. Im Allgemeinen kontrolliert der Speichermanager 160 den Zugriff auf verschiedene Speicherkomponenten der MCU 24, wie z. B. einen Cache 172, einen nicht-flüchtigen Speicher 168 (einen Flash-Speicher, zum Beispiel) und einen flüchtigen Speicher 164 (einen Static Random Access Memory (SRAM), zum Beispiel).
  • Es sei angemerkt, dass 2 eine beispielhafte oder vereinfachte Darstellung der MCU-Architektur darstellt, da die MCU 24 viele andere Komponenten, Brücken, Busse und vieles mehr, in Übereinstimmung mit weiteren Ausführungsbeispielen, aufweisen kann, die nicht in 2 abgebildet sind. Beispielsweise kann die MCU 24, in Übereinstimmung mit einigen Ausführungsbeispielen, ein Bus-Matrix-Modul aufweisen, welches eine Arbitration auf der Slave-Seite implementiert und welches verwendet wird, um den Zugriff auf die Speichergeräte der MCU 24 zu steuern.
  • In Übereinstimmung mit einigen Ausführungsbeispielen weist die MCU 24 analoge und digitale Komponenten 90 auf, welche analoge und digitale Signale an das I/O-Terminal 90 übermitteln. Die Analogkomponenten können verschiedene Komponenten beinhalten, die analoge Signale empfangen, wie z. B. Analog zu Digital Umwandler (ADCs) und Vergleicher; ebenso kann die MCU 24 analoge Komponenten beinhalten, die ein Analogsignal zur Verfügung stellen, wie zum Beispiel einen Steuerungsstrom.
  • Die digitalen Komponenten der MCU 24 können mit dem Prozessorkern 150 über das Systembus 130 kommunizieren. Beispielsweise können die digitalen Komponenten eine Universal Series Bus (USB) Schnittstelle, einen Universal Asynchronous Receiver/Transmitter (UART), ein System Management Bus (SMB) Schnittstelle, ein Serial Peripheral Interface (SPI) und vieles mehr beinhalten. Im Allgemeinen kommunizieren diese digitalen Komponenten mit Geräten, welche außerhalb der MCU 24 liegen, mittels des I/O-Terminals 91.
  • In Übereinstimmung mit einem Ausführungsbeispiel beinhaltet die MCU-Einheit 24 einen Multiplexer 94, welcher das programmierbare Zuweisen der ausgewählten I/O-Terminals an die GPIO-Terminals 40, 50 ermöglicht. In diesem Zusammenhang kann die MCU 24 ein oder mehrere Register beinhalten, um das selektive Zuweisen der I/O-Terminals 40 an die Terminals 91 und die Konfiguration der Terminals als entweder fest zugeordnete Eingangs- oder Ausgangsterminals mittels der Bits der Register zu ermöglichen.
  • Wie in 2 abgebildet, kann die MCU 24 auch eine GPIO-Schnittstelle 140 aufweisen, welche selektiv zu einem oder mehreren der I/O-Terminals 91 zugewiesen werden kann (mittels einem oder mehreren Register), zur Steuerung von zu diesen Terminals 91 dazugehörigen Zuständen an den dazugehörigen I/O-Terminals 40, 50. In diesem Zusammenhang kann die GPIO-Schnittstelle 140, in Übereinstimmung mit Ausführungsbeispielen, ein oder mehrere Register 148 aufweisen, welche zur Festlegung der Flussrichtung der I/O-Kommunikation und zur Konfiguration von verschiedenen Aspekten des I/O-Terminals 91 programmiert werden können, wie im Folgenden genauer ausgeführt. Im Allgemeinen bildet die GPIO-Schnittstelle 140 ein vorgegebenes I/O-Terminal 91 auf ein vorgegebenes I/O-Terminal 149 ab und steuert den Zustand des I/O-Terminals 149, so wie es hierin offengelegt wird. Die I/O-Terminals 149 können, in Übereinstimmung mit Ausführungsbeispielen, an einem Multiplexer 94 eingerichtet sein, der verwendet werden kann, um die I/O-Terminals 149 selektiv auf die externen Terminals 40, 50 abzubilden. Für die beispielhaften Ausführungsformen, welche hier offengelegt werden, wird angenommen, dass vorgegebene I/O-Terminals 91 durch die Register 148 so konfiguriert sind, als dass sie zu der GPIO-Schnittstelle 140 geroutet werden, welche die I/O-Zustände der dazugehörigen I/O-Terminals 49 und 50 steuert.
  • In Übereinstimmung mit einem Ausführungsbeispiel weist die GPIO-Schnittstelle 140 einen Speicher 144 (einen First In-First Out (FIFO) basierten Speicher, zum Beispiel) auf, welcher die I/O-Schnittstellenbefehle 146 speichert, um die I/O-Zustände der I/O-Terminals 149 zu kontrollieren. In diesem Zusammenhang, und in Übereinstimmung mit einem Ausführungsbeispiel, speichert der Speicher 144 die Befehle 146 in einer vorgegebenen Reihenfolge, so dass die Befehle 146 durch einen Controller 142 der GPIO-Schnittstelle 140 in einer vordefinierten Ausführungsreihenfolge oder Sequenz empfangen und ausgeführt werden.
  • Wie hierin weiterhin offengelegt wird, kontrolliert jeder I/O-Schnittstellen-Befehl 146, sobald er durch den Controller 142 ausgeführt wird, die I/O-Zustände der Sätze von I/O-Terminals 149, für welche es vorgesehen ist, dass sie durch die GPIO-Schnittstelle 140 kontrolliert werden (durch die dazugehörigen Konfigurationsregisterbits). Für jedes I/O-Terminal 149, das kontrolliert werden soll, enthält jeder I/O-Schnittstellen-Befehl 146 sowohl Daten, welche einen dazugehörigen I/O-Zustand für den I/O-Terminal 149 repräsentieren oder angeben, als auch Daten, die eine Zeitdauer für diesen I/O-Zustand repräsentieren oder angeben. Wie hierin weiterhin hierin offengelegt wird, kann der I/O-Zustand ein Zustand sein, in welchem der I/O-Terminal 149 auf einen speziellen Logikwert angesteuert wird; ein Abtastzustand sein, in welchem der I/O-Terminal 149 ein externes Signal nach einer vordefinierten Zeitdauer abtastet; ein Zustand sein, der ein Abtastprotokoll definiert; ein Zustand sein, der ein zweiseitig gerichtetes Kommunikationsprotokoll definiert; und vieles mehr.
  • Die zeitlich aufeinander folgende Ausführung der I/O-Schnittstellenbefehle 146 durch den Controller 142, in Übereinstimmung mit Ausführungsbeispielen, geschieht ohne einen Eingriff durch den Prozessorkern 150. In diesem Zusammenhang und in Übereinstimmung Ausführungsbeispielen ruft der Controller 142 die I/O-Schnittstellenbefehle 146 in einer vordefinierten Ausführungsreihenfolge ab, so dass die dazugehörigen I/O-Zustände in einer vordefinierten Abfolge auftreten. Ein spezieller Vorteil dieser Anordnung ist, dass der Controller 142 keinen Bus verwenden muss, der eine unvorhersehbare Latenz aufweist, wie zum Beispiel den Systembus 130; und dass die I/O-Zustände der I/O-Terminals 149 als solche in einer vorbestimmten Art und Weise gesteuert werden können.
  • In Übereinstimmung mit Ausführungsbeispielen ist die GPIO-Schnittstelle 140, wie im Weiteren offenbart, so konstruiert, um einen Direct Memory Access (DMA) auf dem flüchtigen Speicher 164 auszuführen, um die Befehle 146 abzurufen und die Befehle 146 auf dem Speicher 144 zu speichern. Auf diese Art und Weise kann die GPIO-Schnittstelle 140, in Übereinstimmung mit Ausführungsbeispielen, einen solchen DMA-Zugriff ausführen, um die Befehle 146 wieder aufzufüllen, sobald die Anzahl der eingeleiteten I/O-Schnittstellenbefehle 146 auf dem Speicher 144 unter einen vordefinierten Grenzwert fällt.
  • Beispielsweise kann der Prozessorkern 150 die Befehle auf dem nicht flüchtigen Speicher 146 einreihen. In einem weiteren Ausführungsbeispiel kann der Prozessorkern 150 periodisch, oder auf den Empfang einer Unterbrechung (beispielsweise) vom GPIO-Schnittstellen-Controller 140 hin, welche angibt, dass ein Nachfüllen der Befehle 146 verlangt wird, mehr I/O-Schnittstellenbefehle 146 (falls verfügbar) vom flüchtigen Speicher 164 abfragen und die Befehle 146 mittels Schreiboperationen über den Systembus 130 auf dem Speicher 144 speichern. Somit ergeben sich viele Variationen, welche sich innerhalb des Schutzbereichs der sich im Anhang befindlichen Ansprüche befinden.
  • Somit beinhaltet eine Technik 250, unter Bezugnahme auf 3 und in Übereinstimmung mit Ausführungsbeispielen, die Verwendung (Block 254) eines Speichers, um Befehle zu speichern, um eine I/O-Schnittstelle zu steuern, wobei jeder Befehl wenigstens einen I/O-Zustand von wenigsten einem I/O-Terminal der I/O-Schnittstelle für eine Zeitdauer angibt, die ebenso durch den Befehl angegeben wird. Gemäß dieser Technik 250 werden die Befehle ohne das Eingreifen durch den Prozessorkern ausgeführt (Block 258), um die I/O-Zustände in einer vordefinierten Abfolge zu steuern.
  • 4 bildet eine Beispielstruktur für einen I/O-Schnittstellen-Befehl 146 ab, in Übereinstimmung mit Ausführungsbeispielen. Beispielsweise kann der Befehl 146 ein Wort sein, oder 32 Bits, obwohl der Befehl 146 auch, in Übereinstimmung mit anderen Ausführungsbeispielen, weniger oder mehr als 32 Bits enthalten kann. In dem Beispiel von 4 weist der Befehl 146 ein Count-Feld 284 auf, welches Daten enthält, die die Dauer eines dazugehörigen I/O-Zustandes angeben. In manchen Ausführungsbeispielen enthält das Count-Feld 284 Daten, welche die Anzahl der Perioden eines festgelegten Takts wiedergeben. Der I/O-Schnittstellen-Befehl 146 weist des Weiteren ein Value-Feld 286 auf, welches Daten enthält, die die Werte wiedergeben oder anzeigen, zu welchen die I/O-Terminals 149 (siehe 2) angesteuert werden sollen.
  • Beispielsweise ist, in Übereinstimmung mit Ausführungsbeispielen, für den Fall, dass der MCU 24 16 I/O Terminals 149 aufweist, das Value-Feld 286 ein 16-Bit-Datenfeld, wobei jeder Bit entweder eine „1” (d. h. eine logische 1) oder eine „0” (d. h. eine logische 0) ist. Diese logischen Zustände kontrollieren abwechselnd die I/O-Zustände der dazugehörigen I/O-Terminals 149. Falls das Value-Feld 286 einen „1”-Bit beinhaltet, soll beispielsweise das dazugehörige I/O-Terminal 149 während der entsprechenden Dauer, welche im Count-Feld 284 angegeben wird, auf eine logische 1 angesteuert werden.
  • Zusätzlich zu den I/O-Zuständen und den Zeitdauern, welche durch das Value-Feld 286 und das Count-Feld 284 angegeben werden, kann der I/O-Schnittstellen-Befehl 146 weiterhin eine oder mehrere Kontrollbits beinhalten, um die I/O-Zustände der I/O-Terminals 149 genauer zu spezifizieren. Beispielsweise, und in Übereinstimmung mit Ausführungsbeispielen, kann der Befehl 146 ein Feld 282 (ein 1-Bit-Feld, zum Beispiel) beinhalten, welches angibt oder wiedergibt, ob die Richtungen des Kommunikationsflusses von bestimmten I/O-Terminals 149 während der dazugehörigen Dauer, welche in dem Count-Feld 284 angegeben wird, umgekehrt werden soll oder invertiert werden soll.
  • Im Speziellen und in Übereinstimmung mit Ausführungsbeispielen wird das Invertierungsfeld 282 in Kombination mit einem oder mehreren anderen statischen Registern 148 (siehe 2) der GPIO-Schnittstelle 140 verwendet, wie zum Beispiel einen Register 148, das auf einem bitweisen Niveau angibt, ob die dazugehörigen I/O-Terminals 149 von der Inversion, welche durch das Feld 282 vorgegeben wird, betroffen sind; und ein Kommunikationsflussrichtungsregister 148, welches im Allgemeinen statisch die Richtung des Kommunikationsflusses für die dazugehörigen I/O-Terminals 149 auf einer bitweisen Basis angibt.
  • In Übereinstimmung mit Ausführungsbeispielen beschreibt die folgende Wertetabelle den Befehlssyntax, der in Verbindung mit den I/O-Schnittstellenbefehlen 146 und den oben beschriebenen Registern verwendet wird:
    invdiren invdir dir value gpio gpio_out gpio_oe
    0 X 1 0 Drive 0 0 1
    0 X 1 1 Drive 1 1 1
    0 X 0 0 High Z X 0
    0 X 0 1 High Z X 0
    1 1 0 0 Drive 0 0 1
    1 1 0 1 Drive 1 1 1
    1 0 0 0 High Z X 0
    1 0 0 1 High Z X 0
    1 1 1 0 High Z X 0
    1 1 1 1 High Z X 0
    1 0 1 0 Drive 0 0 1
    1 0 1 1 Drive 1 1 1
    Tabelle 1
  • In Tabelle 1 repräsentiert ein „X” einen Zustand hoher Impedanz, eine „1” repräsentiert einen Zustand einer logischen 1 und eine „0” repräsentiert einen Zustand einer logischen 0; „ INVDIREN” repräsentiert ein Bit, das zu dem statischen Register 149 gehört und welches angibt, ob eine Inversion für das dazugehörige I/O-Terminal 149 erlaubt ist; ”INVDIR” repräsentiert den Wert des Feldes 282 (siehe 4); ”DIR” repräsentiert die durch das Register 148 angegebene Richtung des statischen Kommunikationsflusses; ”VALUE” repräsentiert den Wert des I/O-Zustandes des Feldes 286; ”GPIO” repräsentiert den zum I/O-Terminal 149 gehörigen I/O-Zustand; ”GPIO_OUT” repräsentiert das dazugehörige Signal, welches auf dem I/O-Terminal 149 erscheint; und ”GPIO_OE” repräsentiert einen Zustand des I/O-Terminals 149, der einen Output ermöglicht (das Repräsentieren des Zustandes des dazugehörigen Buffers oder Treibers, der einen Output ermöglicht). Somit beeinflusst, in dem Beispiel der vierten Reihe der Tabelle 1, das Invertierungsfeld 282 nicht den I/O-Zustand, wenn das Bit, das die INVDIREN-Inversion ermöglicht, eine „0” ist. Umgekehrt sorgt im Beispiel der Linie 10 der Tabelle 1 ein aktiver INVDIR-Wert für das Feld 282 dafür, dass das I/O-Terminal 149 als ein Input-Terminal agiert, obwohl der DIR-Bit angibt, dass das Terminal 149 ein Output-Terminal ist, wenn der INVDIREN-Bit, der eine Inversion ermöglicht, aktiv ist.
  • Der Befehl 146 kann, in Übereinstimmung mit weiteren Ausführungsbeispielen, verschiedene andere Kontrollfelder beinhalten. Beispielsweise kann das Feld 286 (4) des Befehls 146 für ein Verzögerung-Feature verwendet werden. Auf diese Art kann das Feld 286 als ein Wert dienen, mit dem übereingestimmt werden muss, und der Controller 142 kann die I/O-Terminals 149 beobachten und die Ausführung des Befehls 146 wo lange zurückhalten, bis die Übereinstimmung auftritt. Ein externer Controller leitet die Übereinstimmung ein, indem er den Übereinstimmungswert (als Signal) an die I/O-Terminals 149 übermittelt. Die Übereinstimmung kann durch ein weiteres statisches Register (ein Verzögerungsmaskenregister) konfiguriert werden, um zu bestimmen, welches eine oder welche I/O-Terminals im Zuge der Werteübereinstimmung beobachtet werden müssen.
  • 5 zeigt eine Abbildung 300, in der beispielhafte die I/O-Schnittstellenbefehle 146-1, 146-2 und 146-3 verwendet werden, um eine Wellenform auf einem dazugehörigen I/O-Terminal 149 zu erzeugen. Dabei werden, wie in 5 dargestellt, die I/O-Schnittstellenbefehle 146-1, 146-2 und 146-3 in einer vordefinierten Ausführungsreihenfolge ausgeführt (die zum Beispiel festgelegt ist durch die Reihenfolge, in der I/O-Schnittstellenbefehle 146 auf dem Speicher 144 gespeichert sind), so dass der I/O-Schnittstellen-Befehl 146-1 als erster ausgeführt wird, der I/O-Schnittstellen-Befehl 146-2 als zweites ausgeführt wird, und der I/O-Schnittstellen-Befehl 146-3 als letztes ausgeführt wird. Zum Zeitpunkt T0 führt der Controller 142 den I/O-Schnittstellenbefehl 146-1 aus, welcher angibt, dass der Terminal 149 für eine Zeitdauer von „5” (5 Taktperioden, zum Beispiel) auf eine logische 1 angesteuert werden soll. Somit vergehen vom Zeitpunkt T0 zum Zeitpunkt T1 fünf Taktperioden, und zur Zeit T1 fuhrt der Controller 142 den nächsten I/O-Schnittstellen-Befehl 146-2 aus, welcher von nun an den I/O-Zustand des I/O-Terminals 149 kontrolliert.
  • Wie für dieses Beispiel gezeigt, gibt der I/O-Schnittstellen-Befehl 146-2 an, dass der I/O-Terminal 149 für einen Count von „10” (beispielsweise 10 Taktperioden) auf eine logische 0 angesteuert werden soll, welche zwischen dem Zeitpunkt T1 und dem Zeitpunkt T2 auftritt. Mit dem Ablauf der 10 Taktperioden zum Zeitpunkt T2 führt der Controller 142 den I/O-Schnittstellen-Befehl 146-3 aus, welcher angibt, dass das I/O-Terminal 149 für ein Count von „7” auf einen logischen 1-Wert angesteuert werden soll. Somit demonstriert 5, als nicht-einschränkendes Beispiel, wie eine spezielle Wellenform, so wie eine PWM-Wellenform (als ein Beispiel) an einem bestimmten I/O-Terminal 149 unter Verwendung der I/O-Schnittstellenbefehle 146 für ein bestimmtes Output-Terminal erzeugt werden kann.
  • Andere I/O-Terminals 149 können als Input-Terminals gekennzeichnet sein. In diesem Zusammenhang können die I/O-Schnittstellenbefehle 146 ausgeführt werden, um ein Abtastintervall zu steuern, so dass der MCU 24 nach einer vordefinierten Count-Periode den Wert, der am I/O-Terminal 149 vorliegt, abtastet. Ein bestimmtes I/O-Terminal 149 kann, in Übereinstimmung mit Ausführungsbeispielen, hin- und herwechseln zwischen dem Zustand, ein gekennzeichnetes Input-Terminal zu sein, und dem Zustand, ein gekennzeichnetes Output-Terminal zu sein. Auf diese Art kann ein I/O-Terminal 149 zur zweiseitig gerichteten Kommunikation, wie zum Beispiel zur Kommunikation mittels eines seriellen Busses, mittels Handshaking, oder mittels anderer Wege, verwendet werden.
  • 6 zeigt eine Abbildung 310 eines I/O-Zustandes für ein dazugehöriges I/O-Terminal, das sowohl als Input-Terminal als auch als Output-Terminal verwendet wird. In diesem Beispiel führt der Controller 142 nacheinander drei I/O-Schnittstellenbefehle 146 in der folgenden Reihenfolge aus: I/O-Schnittstellen-Befehl 146-4; I/O-Schnittstellen-Befehl 146-5; und I/O-Schnittstellenbefehl 146-6. Die Ausführung des I/O-Schnittstellen-Befehls 146-4 legt das I/O-Terminal 149 für die Zeit zwischen T0 und T1 als ein Input-Terminal fest, wobei der Zeitpunkt T0 und der Zeitpunkt T1 durch einen Count von „3” getrennt sind. In diesem Zusammenhang, abhängig von der speziellen Ausführungsform, kann die Ausführung des I/O-Schnittstellen-Befehls 146-4 die Richtung des Kommunikationsflusses des I/O-Terminals 149 invertieren oder nicht, abhängig von der statisch definierten Definition des statischen GPIO Registers.
  • Zu einem Zeitpunkt T1 führt der Controller 142 in diesem Beispiel den I/O-Schnittstellenbefehl 146-5 aus, welcher dafür sorgt, dass der GPIO-Schnittstellen-Controller 140 den I/O-Terminal 149 für ein Count von „6” auf einen logischen 0-Wert ansteuert, von einem Zeitpunkt T1 zum einem Zeitpunkt T2. Somit ist das I/O-Terminal 149 für eine Zeitdauer von T1 zu T2 ein Output-Terminal. Dies kann durch eine Invertierung der Flussrichtung des I/O-Terminals 149 (falls dieses statisch als Input-Terminal konfiguriert ist) festgelegt werden, abhängig von der speziellen Konfiguration. Zum Zeitpunkt T2 führt der Controller 142 den Befehl 146-6 aus, welcher dafür sorgt, dass das I/O-Terminal 149 ein Output-Terminal bleibt, jedoch den Wert, der angesteuert wird, für ein Count von „6” auf eine logische 1 ändert.
  • Beispielsweise kann der GPIO-Schnittstellen-Controller 140 das I/O-Terminal 149 von einem Zeitpunkt T0 zu einem Zeitpunkt T1 nutzen, um ein Signal, welches von einer anderen Einheit gesteuert wird, zu detektieren; und die zwei aufeinanderfolgenden logische 0 und logische 1 Levels können verwendet werden, um das detektierte Signal zu bestätigen. Somit kann die Darstellung 310 als ein Beispiel des Handshaking verstanden werden, obwohl es auch andere Anwendungsmöglichkeiten der Verwendung desselben I/O-Terminals 149 als beides sowohl Input als auch Output-Terminal in Übereinstimmung mit weiteren Ausführungsbeispielen geben kann.
  • Unter Bezugnahme auf 7 und in Übereinstimmung mit Ausführungsbeispielen weist der GPIO-Schnittstellen-Controller 140 zwei First In-First Out, (FIFO) Buffer auf: einen Befehls FIFO Buffer 360, der zumindest einen Teil des Speichers 144 bildet und die I/O-Schnittstellenbefehle 146 speichert, so dass sie durch den Controller 142 ausgeführt werden können; und ein Abtast-FIFO-Buffer 346, welcher die Daten, die durch die Input I/O-Terminals 149 erhalten worden sind, speichert. Im Allgemeinen sind die FIFO-Buffer 360 und 364 zwischen einer Systembus-Schnittstelle 366 und den Controller 142 gekoppelt, so wie es in 7 abgebildet ist, in Übereinstimmung mit Ausführungsbeispielen. Somit bieten die FIFO-Buffer 360 und 364, zum Beispiel, verschiedenen Taktraten zwischen dem Systembus 130 (siehe 2) und dem Controller 142 Platz.
  • In Übereinstimmung mit Ausführungsbeispielen weist der GPIO-Schnittstellen-Controller 140 weiterhin eine DMA-Schnittstelle 350 auf. Im Allgemeinen ist die DMA-Schnittstelle 350 so konstruiert, dass sie auf den nicht-flüchtigen Speicher 164 (siehe 2) zugreift, sobald die Anzahl der Befehle in dem FIFO-Buffer 360 unter einen vordefinierten Grenzwert fällt, um weitere Befehle in den FIFO-Buffer 360 einzubringen bzw. für den Buffer abzurufen. In diesem Zusammenhang kann die DMA-Schnittstelle 350 verschiedene Empfangs- und Übertragungs-DMA-Request verwenden und die Kommunikationslinien 352 aktivieren. In Übereinstimmung mit Ausführungsbeispielen können die Linien 352 mit einem Arbiter (nicht gezeigt) kommunizieren. In weiteren Ausführungsbeispielen kann die Systembusschnittstelle 366 so konstruiert sein, dass sie es dem Prozessorkern 150 ermöglicht, auf den Befehls-FIFO-Buffer 360 zuzugreifen, um die Speicherbefehle 146 in dem FIFO-Buffer 360 wieder aufzustocken oder zu speichern. Abhängig vom speziellen Ausführungsbeispiel kann die DMA-Schnittstelle 350 oder der Prozessorkern 150 auf den Abtast-FIFO-Buffer 364 zugreifen, um ein Flash-Furnishing der abgetasteten Daten von der GPIO-Schnittstelle abzurufen. Somit sind viele Variationen vorgesehen, welche alle vom Schutzbereich der sich im Anhang befindlichen Ansprüche abgedeckt werden.
  • In Übereinstimmung mit Ausführungsbeispielen wird der Controller 142 mit einem Taktsignal (genannt ”CLK” in 7) synchronisiert, welches wiederum selbst mit dem Takt des Systembusses 130 synchronisiert werden kann (mit derselben Frequenz oder einer anderen, wie gewünscht). Der Controller 142 empfängt des Weiteren ein Signal, welches ”KILL” genannt wird und welches dafür sorgt, dass der Controller 142 in asynchroner Art und Weise den Übergang der I/O-Zustände der I/O-Terminals 149 in vordefinierte ”sichere” Niveaus verursacht, sobald es ausgeführt wird (durch Ansteuerung auf ein logisches 1-Level, zum Beispiel). In diesem Zusammenhang und in Übereinstimmung mit Ausführungsbeispielen kann ein Register 148 des GPIO-Schnittstellen-Controllers 140 mit Bits programmiert sein, die mit einem vordefinierten sicheren Niveau für die dazugehörigen I/O-Terminals 149 korrespondieren. Im Allgemeinen verursachen die sicheren Niveaus keinen Schaden an dem System für den Fall, dass ein Fehlerzustand eintritt. Beispielsweise kann ein sicheres Niveau für ein Signal, welches verwendet wird, um einen Schalttransistor anzusteuern, eine logisches 1-Level sein, ein Level, welche in diesem Beispiel den Schalttransistor ausschalten würde. In anderen Anwendungen könnte ein sicheres Niveau für einen gegebenen I/O-Terminal 149 ein logisches 1-Level sein oder, alternativ, eine Bedingung bestehend aus drei Zuständen.
  • In manchen Ausführungsbeispielen ist der Controller 142 so konstruiert, dass er in Antwort auf die Detektion eines aktiven KILL-Signals die I/O-Terminals 149 in den jeweiligen sicheren Niveaus belässt, solange bis der nächste I/O-Schnittstellen-Befehl 146 ausgeführt wird. Somit bleiben die sicheren Niveaus erhalten für die Zeitdauer des aktuellen Zeitintervalls des zuletzt ausgeführten I/O-Schnittstellenbefehls 146. In anderen Ausführungsformen kann das KILL-Signal einen andauernden KILL-Zustand auslösen, einen sicheren Zustand, in welchem der Controller 142 die I/O-Terminals in ihren jeweiligen sicheren Niveaus belässt, solange bis der Prozessorkern 150 die GPIO-Schnittstelle 140 zurücksetzt. Somit ist der GPIO-Schnittstellen-Controller 140 in diesem andauernden sicheren Zustand effektiv deaktiviert, bis eine weitere korrektiv eingreifende Aktion durch den Prozessorkern 150 ausgeführt wird.
  • Der sichere Zustand kann intern durch den Controller 142 ausgelöst werden, in Übereinstimmung mit Ausführungsbeispielen. Beispielsweise und in Übereinstimmung mit Ausführungsbeispielen kann der Controller 142 den KILL-Zustand initiieren, sobald er eine logische Kombination von einem oder mehreren Input-Zuständen detektiert (wie an den I/O-Terminals 149 bemerkt, zum Beispiel). Somit sind viele Variationen beabsichtigt, welche alle durch den Schutzbereich der sich im Anhang befindlichen Ansprüche abgedeckt sind.
  • In Übereinstimmung mit einigen Ausführungsbeispielen kann der Controller 142 ein externes Signal, welches ”TRIGGER” genannt wird, empfangen, welches, wenn es aktiviert ist (angesteuert durch ein logisches 1-Level, zum Beispiel), die Controller 142 dazu veranlasst, mit der Ausführung der Befehle 146, welche in dem Befehls FIFO-Buffer 360 gespeichert sind, zu beginnen. Es sei angemerkt, dass, in Übereinstimmung mit einigen Ausführungsbeispielen, der Controller 142 beginnen kann, die Befehle 146 in Antwort auf ein internes Triggersignal, wie zum Beispiel ein Triggersignal, welches als Antwort auf eine bestimmte Kombination von logischen Levels erzeugt wurde, auszuführen.
  • Bezugnehmend auf 8 und in Übereinstimmung mit einigen Ausführungsbeispielen kann der Controller 142 ein dazugehöriges Zustanddiagramm 400 haben. Wenn er eingeschaltet wird, nimmt der Controller 142 einen IDLE Zustand ein, in welchem der Controller 142 verbleibt, bis ein Auslöseereignis auftritt, welches den Startpunkt der I/O-Wellenform auf einer Takt-zu-Takt-Basis kontrolliert. Es ist für den Fachmann offensichtlich, dass die Takt-zu-Takt-Kontrolle der I/O-Wellenform sehr akkurat durchgeführt werden kann, in Übereinstimmung mit Ausführungsbeispielen. In manchen Ausführungsbeispielen kann der Controller 142 so konstruiert sein (wie durch ein spezielles Registerbit konfiguriert, zum Beispiel), das ein ”Stillstandszeit” Intervall zu Beginn eines speziellen Taktes eingefügt wird. Dieses kann, zum Beispiel, verwendet werden, wenn Schaltsignale erzeugt werden, um sicherzustellen, dass spezielle Schaltsignale nicht zeitlich überlappen. Somit wird der Controller 142, wenn einige Befehle ausgeführt werden, die eine spezielle Kombination von I/O-Leveln erfüllen, anfänglich in einen DEAD TIME-Zustand übergehen, um die Stillstandszeit zu Beginn des Taktes zu gewährleisten.
  • Ausgehend vom DEAD TIME-Zustand oder vom IDLE-Zustand geht der Controller 142, auf die Ausführung eines I/O-Schnittstellen-Befehls 146 hin, in den ACTIVE Zustand über, welcher der Zustand ist, in dem der Controller 142 die I/O-Schnittstellenbefehle 146 ausführt, falls keine Probleme auftreten. Falls ein Problem auftritt, kann der Controller 142, beispielshalber und abhängig vom speziellen Ausführungsbeispiel, von dem ACTIVE TIME-Zustand in einen PERSIST KILL-Zustand übergehen, einen Zustand, in welchem der Controller 142 solange bleibt, bis der durch den Prozessorkern 150 zurückgesetzt wird.
  • Weiterhin kann der Controller 142 am Ende einer Taktdauer vom ACTIVE TIME-Zustand in einen WAIT TIME-Zustand übergehen, um auf ein spezielles Logik-Niveau zu warten (um beispielsweise ein spezielles Handshaking-Protokoll zu implementieren). Sobald er einen Input erhält, geht der Controller 142 von dem WAIT TIME Zustand zurück in den ACTIVE TIME Zustand über. Somit kann der Controller 142, wie in 8 dargestellt, von dem ACTIVE TIME Zustand in den DEAD TIME Zustand, den STALL Zustand, den WAIT TIME Zustand oder den PERSIST KILL Zustand übergehen.
  • Der Controller 142 geht in den STALL-Zustand über, sobald der FIFO-Buffer 360 am Ende der Zustandsdauer leer ist. In dem STALL-Zustand werden alle gültigen Befehle fortgeführt und somit Übergänge entweder in den DEAD TIME oder den ACTIVE TIME Zustand kontrolliert. Jedoch kann es auch sein, dass der Controller 142 im STALL-Zustand so konfiguriert ist, dass er deaktiviert ist, wodurch der Controller 142 zurück in den IDLE-Zustand übergeht. Es sei angemerkt, dass der PERSIST KILL-Zustand von jedem der Zustände ACTIVE TIME, DEAD TIME, WAIT TIME oder STALL erreicht werden kann, wie in 8 dargestellt.
  • Die MCU 24 kann in einer Vielzahl verschiedener Anwendungen verwendet werden. Zum Beispiel zeigt 9 eine Motorkontrollanwendung, in welcher ein MCU 24 eines Motorkontrollsystems 400 Input und Output Signale (I/O-Signale) generiert/empfängt, um einen Motor 474 zu kontrollieren. Dabei kann die GPIO-Schnittstelle 140 der MCU 24 Signale an ihren I/O-Terminals 40 generieren, um mit der Motorschnittstelle 470 zu kommunizieren (eine Schnittstelle, welche Treiber, Sensoren, und vieles mehr enthält); und im Zusammenhang mit dieser Kommunikation können die I/O-Terminals 40 Wellenformen mit der Motorschnittstelle kommunizieren (Pulse Width Modulation(PWM)-Signale, zum Beispiel), detektierte Ströme und Spannungen empfangen, Daten mittels einem oder mehreren seriellen Bussen kommunizieren, und vieles mehr. Die I/O-Terminals 40 der GPIO-Schnittstelle 140 können weiterhin Signale erzeugen/empfangen, um mit einer Nutzerkontrollschnittstelle 470 des Systems 400 zu kommunizieren, um den Zustand des Motors 474 oder der Motorschnittstelle 470 zu kommunizieren, detektierte Fehlerzustände zu kommunizieren, an den Nutzer gerichtete Befehle und Signale zu empfangen, und vieles mehr.
  • Auch wenn nur eine begrenzte Anzahl von Ausführungsbeispielen offenbart wurde, ist es für einen Fachmann klar, dass, ausgehend von den hier enthaltenen Offenbarungen, eine große Reihe von Modifikationen und Variationen möglich sind. Diese Modifikationen und Variationen sollen auch vom Schutzbereich der anhängigen Ansprüche abgedeckt sein.

Claims (18)

  1. Vorrichtung umfassend: eine programmierbare Input/Output (I/O) Schnittstellenschaltung (140), die einen Controller (142) und einen Speicher (144) umfasst; wobei der Speicher (144) dazu geeignet ist, eine Mehrzahl von Befehlen (146) zu speichern, um die I/O Schnittstellenschaltung (140) zu steuern, wobei die Befehle (146) I/O Zustände der I/O Schnittstellenschaltung (140) und Zeitdauern der I/O Zustände angeben, wobei wenigstens einer der Befehle (146) ein Format hat, welches ein erstes Feld umfasst, um zu kontrollieren, ob ein dazugehöriges I/O Terminal einer I/O-Schnittstellenschaltung angesteuert wird und zum Abtasten während der Zeitdauer verwendet wird, ein zweites Feld, um zu kontrollieren, ob eine Datenrichtung für ein dazugehöriges I/O Terminal einer I/O Schnittstellenschaltung (140) invertiert ist, ein drittes Feld, um die Zeitdauer zu kontrollieren, und ein viertes Feld, um den logischen Wert für ein dazugehöriges I/O Terminal der I/O Schnittstellenschaltung (140) zu kontrollieren; wobei der Controller (142) dazu geeignet ist, die Befehle (146) auszuführen, um die I/O Schnittstellenschaltung (140) in einer vordefinierten Abfolge in die I/O Zustände zu versetzen.
  2. Vorrichtung nach Anspruch 1, wobei wenigstens einer der Befehle (146) aus der Mehrzahl von Befehlen (146) angibt, ob einer der I/O Zustände invertiert werden soll, und der Controller (142) dazu geeignet ist, den wenigstens einen Befehl auszuführen, um den I/O Zustand in Antwort auf die Ausführung des wenigstens einen Befehls selektiv zu invertieren.
  3. Vorrichtung nach Anspruch 1, wobei wenigstens einer der Befehle (146) ein Abtastprotokoll für einen der I/O Zustände angibt, und der Controller (142) dazu geeignet ist, das Abtastprotokoll in Antwort auf die Ausführung des wenigstens einen Befehls zu steuern.
  4. Vorrichtung nach Anspruch 1, wobei wenigstens einer der Befehle (146) einen Wert angibt, der an dem dazugehörigen I/O Terminal angesteuert werden soll, und der Controller (142) dazu geeignet ist, den Befehl auszuführen, um das Terminal auf diesen Wert anzusteuern.
  5. Vorrichtung nach Anspruch 1, wobei die I/O Schnittstellenschaltung (140) weiterhin umfasst: eine Direct Memory Access (DMA) Schnittstelle, die dazu geeignet ist, die Befehle (146) von einem anderen Speicher, der an die I/O Schnittstellenschaltung (140) gekoppelt ist, abzurufen.
  6. Vorrichtung nach Anspruch 1, wobei die I/O Schnittstelle weiter umfasst: eine Schnittstelle, welche geeignet ist, es einem Prozessorkern, der an die I/O Schnittstelle gekoppelt ist, zu ermöglichen, die Befehle (146) auf dem Speicher (144) zu speichern.
  7. Verfahren zur Steuerung einer Vorrichtung nach Anspruch 1, umfassend: Speichern einer Mehrzahl von Befehlen (146), um eine Input/Output (I/O) Schnittstellenschaltung (140) zu steuern, wobei jeder Befehl wenigstens einen I/O Zustand für wenigstens einen I/O Terminal der I/O-Schnittstellenschaltung und eine Zeitdauer des I/O-Zustandes angibt; und Ausführen der Befehle (146) unter Verwendung eines Controllers (142) der I/O Schnittstellenschaltung (140), um den wenigstens einen I/O Zustand gemäß einer vordefinierten Abfolge zu steuern, wobei wenigstens einer der Befehle (146) ein Format hat, welches ein erstes Feld umfasst, um zu kontrollieren, ob ein dazugehöriges I/O Terminal einer I/O-Schnittstellenschaltung angesteuert wird und zum Abtasten während der Zeitdauer verwendet wird, ein zweites Feld, um zu kontrollieren, ob eine Datenrichtung für ein dazugehöriges I/O Terminal einer I/O Schnittstellenschaltung (140) invertiert ist, ein drittes Feld, um die Zeitdauer zu kontrollieren, und ein viertes Feld, um den logischen Wert für ein dazugehöriges I/O Terminal der I/O Schnittstellenschaltung (140) zu kontrollieren.
  8. Verfahren nach Anspruch 7, wobei das Ausführen der Befehle (146) weiterhin das selektive Invertieren einer Kommunikationsrichtung, die mit einem I/O Terminal der I/O Schnittstellenschaltung (140) in Verbindung steht, in Antwort auf das Ausführen eines Befehls aus der Mehrzahl der Befehle (146) umfasst.
  9. Verfahren nach Anspruch 7, wobei das Ausführen der Befehle (146) weiterhin die Steuerung eines Abtastprotokolls, welches mit einem I/O-Terminal der I/O Schnittstellenschaltung (140) in Verbindung steht, umfasst.
  10. Verfahren nach Anspruch 7, wobei das Ausführen der Befehle (146) weiterhin das selektive Ansteuern eines I/O Terminals der I/O Schnittstellenschaltung (140) auf einen vordefinierten Wert umfasst.
  11. Verfahren nach Anspruch 7, wobei das Speichern der Befehle (146) die Verwendung eines Prozessorkerns oder einer Direct Memory Access (DMA) Schnittstelle umfasst, um die Befehle (146) auf dem Speicher (144) zu speichern.
  12. Vorrichtung umfassend: einen integrierten Schaltkreis (IC) umfassend: einen Prozessorkern; eine programmierbare Input/Output (I/O) Schnittstellenschaltung (140), die einen Controller (142) und einen Speicher (144) umfasst; wobei der Speicher (144) dazu geeignet ist, eine Mehrzahl von Befehlen (146) zu speichern, um die I/O Schnittstellenschaltung (140) zu steuern, wobei die Befehle (146) I/O Zustände der I/O Schnittstellenschaltung (140) und Zeitdauern der I/O Zustande angeben, wobei wenigstens einer der Befehle (146) ein Format hat, welches ein erstes Feld umfasst, um zu kontrollieren, ob ein dazugehöriges I/O Terminal einer I/O-Schnittstellenschaltung angesteuert wird und zum Abtasten während der Zeitdauer verwendet wird, ein zweites Feld, um zu kontrollieren, ob eine Datenrichtung für ein dazugehöriges I/O Terminal einer I/O Schnittstellenschaltung (140) invertiert ist, ein drittes Feld, um die Zeitdauer zu kontrollieren, und ein viertes Feld, um den logischen Wert für ein dazugehöriges I/O Terminal der I/O Schnittstellenschaltung (140) zu kontrollieren; wobei der Controller (142) dazu geeignet ist, die Befehle (146) auszuführen, um die I/O Schnittstellenschaltung (140) in einer vordefinierten Abfolge in die I/O Zustände zu versetzen.
  13. Vorrichtung nach Anspruch 12, weiterhin umfassend: einen Systembus, der zwischen den Prozessorkern und den Speicher (144) gekoppelt ist; und eine Direct Memory Access (DMA) Schnittstelle, die dazu geeignet ist, auf den Systembus zuzugreifen, um die Mehrzahl der Befehle (146) abzurufen, um diese im Anschluss daran auf dem Speicher (144) zu speichern.
  14. Vorrichtung nach Anspruch 12, weiterhin umfassend: einen Systembus, der zwischen den Speicher (144) und den Prozessorkern gekoppelt ist, wobei der Prozessorkern dazu geeignet ist, auf den Systembus zuzugreifen, um die Mehrzahl der Befehle (146) in den Speicher (144) zu schreiben.
  15. Vorrichtung nach Anspruch 12, wobei der Controller (142) weiterhin dazu geeignet ist, wenigstens einen der Befehle (146) auszuführen, um selektiv eine Kommunikationsrichtung zu invertieren, welche mit einem I/O Terminal der I/O Schnittstellenschaltung (140) in Verbindung steht.
  16. Vorrichtung nach Anspruch 12, wobei der Controller (142) weiterhin dazu geeignet ist, wenigstens einen der Befehle (146) auszuführen, um ein Abtastprotokoll zu steuern, welches mit einem I/O Terminal der I/O Schnittstellenschaltung (140) in Verbindung steht.
  17. Vorrichtung nach Anspruch 12, wobei der Controller (142) weiterhin dazu geeignet ist, wenigstens einen der Befehle (146) auszuführen, um selektiv ein I/O Terminal der I/O Schnittstellenschaltung (140) auf einen vordefinierten Wert anzusteuern.
  18. Vorrichtung nach Anspruch 12, wobei der Controller (142) weiterhin dazu geeignet ist, die I/O Schnittstellenschaltung (140) in Antwort auf einen Trigger von außerhalb des IC asynchron in einen sicheren Zustand überzuführen.
DE102013021107.7A 2012-12-31 2013-12-10 Steuerung einer input/output schnittstelle Active DE102013021107B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/731,253 US8954632B2 (en) 2012-12-31 2012-12-31 System method for regulating an input/output interface by sampling during a time duration associated with I/O states
US13/731,253 2012-12-31

Publications (2)

Publication Number Publication Date
DE102013021107A1 DE102013021107A1 (de) 2014-07-03
DE102013021107B4 true DE102013021107B4 (de) 2015-10-29

Family

ID=50928512

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013021107.7A Active DE102013021107B4 (de) 2012-12-31 2013-12-10 Steuerung einer input/output schnittstelle

Country Status (3)

Country Link
US (1) US8954632B2 (de)
CN (1) CN103914415B (de)
DE (1) DE102013021107B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542230B2 (en) * 2013-05-15 2017-01-10 Apple Inc. System and method for selective timer coalescing
US9904575B2 (en) 2013-05-15 2018-02-27 Apple Inc. System and method for selective timer rate limiting
US9958933B2 (en) 2015-06-04 2018-05-01 Apple Inc. Opportunistic waking of an application processor
JP6953211B2 (ja) * 2017-07-18 2021-10-27 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
CN108508812B (zh) * 2018-05-15 2024-04-09 广东嘉腾机器人自动化有限公司 一种agv控制器io端口复用配置系统及其方法
US20220414051A1 (en) * 2021-06-28 2022-12-29 Silicon Laboratories Inc. Apparatus for Array Processor with Program Packets and Associated Methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937520B2 (en) * 2008-01-11 2011-05-03 Mediatek Inc. General purpose interface controller of resoure limited system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802019B2 (en) * 2005-06-14 2010-09-21 Microsoft Corporation Hard disk drive condition reporting and error correction
US7571266B2 (en) * 2006-02-06 2009-08-04 Carlson Lance R Peripheral device in a computerized system and method
CN101483768B (zh) * 2008-01-11 2012-04-25 联发科技股份有限公司 电子装置
CN101572107A (zh) * 2008-04-28 2009-11-04 卓然公司 单一通用输入/输出(gpio)管脚的电动机控制电路
US8390949B2 (en) * 2009-05-18 2013-03-05 Dell Products L.P. Data loss prevention during a fall of a storage device
US9824056B2 (en) * 2009-11-05 2017-11-21 Rambus Inc. Handshake signaling for interface clock management
US8131889B2 (en) * 2009-11-10 2012-03-06 Apple Inc. Command queue for peripheral component
US8291126B2 (en) * 2010-03-23 2012-10-16 Spansion Llc Variable read latency on a serial memory bus
CN102054370B (zh) * 2010-10-29 2013-06-05 鸿富锦精密工业(深圳)有限公司 Usb线控器及应用所述usb线控器的电子阅读设备
US8990449B2 (en) * 2012-05-15 2015-03-24 Dell Products L.P. Systems and methods for out of band notification of hard drive status change

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937520B2 (en) * 2008-01-11 2011-05-03 Mediatek Inc. General purpose interface controller of resoure limited system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Wikipedia, Channel I/O. 28.10.2012(recherchiert am 21.11.2014) *
Wikipedia, Channel I/O. 28.10.2012<http://en.wikipedia.org/w/index.php?title=Channel_I/O&oldid=520253111>(recherchiert am 21.11.2014)

Also Published As

Publication number Publication date
CN103914415A (zh) 2014-07-09
US8954632B2 (en) 2015-02-10
DE102013021107A1 (de) 2014-07-03
US20140189162A1 (en) 2014-07-03
CN103914415B (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
DE102013021107B4 (de) Steuerung einer input/output schnittstelle
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE102013113262B4 (de) Auslöser-Leitwegeinheit
DE69828074T2 (de) Direkt-speicherzugriff / transaktionen auf ein bus mit niedriger pinanzahl
DE102015115080A1 (de) Konfigurierbare digitale Schnittstelle für Schaltspannungsregler
DE102013224101A1 (de) Verbinden mehrerer Slave-Vorrichtungen mit einem einzigen Master
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE3933849A1 (de) Prozessorgesteuerte schnittstelle
DE112005000219T5 (de) Verfahren und Vorrichtung zum Verwalten von Speicherzugriffsanforderungen
DE102019107849A1 (de) 424-Kodierungsschemata zur Reduzierung von Kopplung und Leistungsrauschen auf PAM-4-Datenbussen
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE4018481A1 (de) Mikroprozessor hold- und lock-schaltung
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102016206170B4 (de) Serielle draht-debug-brücke
EP2411921B1 (de) Schaltungsanordnungen und verfahren zur steuerung eines datenaustauschs in einer schaltungsanordnung
DE112020000167T5 (de) Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen
DE60032805T2 (de) Vorrichtung zur arbitrierung eines speicherressources basiert auf zuteilung von zeitschlitzen
DE102010028227A1 (de) Coprozessor mit Ablaufsteuerung
DE10056152B4 (de) Verfahren zur Durchführung von Busarbitration zwischen Steuerchips eines Chipsatzes mit preemptiver Fähigkeit
DE112011106017T5 (de) Energiemanagement in einem diskreten Speicherabschnitt
DE112020005466T5 (de) Bussystem und verfahren zum betrieb eines bussystems
DE102012010558A1 (de) Hardwarevorrichtung für ein system,system und speicherzugriffsverfahren
DE102014207422A1 (de) Busschnittstelleneinheit und Betriebsverfahren hierfür
DE112021003136T5 (de) Verfahren zum durchführen von system- und energieverwaltung über eine serielle datenkommunikationsschnittstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final