DE69634529T2 - Serielle schnittstelle die, in zwei unterschiedlichen modi, serielle daten zu übertragen imstande ist - Google Patents

Serielle schnittstelle die, in zwei unterschiedlichen modi, serielle daten zu übertragen imstande ist Download PDF

Info

Publication number
DE69634529T2
DE69634529T2 DE69634529T DE69634529T DE69634529T2 DE 69634529 T2 DE69634529 T2 DE 69634529T2 DE 69634529 T DE69634529 T DE 69634529T DE 69634529 T DE69634529 T DE 69634529T DE 69634529 T2 DE69634529 T2 DE 69634529T2
Authority
DE
Germany
Prior art keywords
clock
serial
bus
port
channel transistor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69634529T
Other languages
English (en)
Other versions
DE69634529D1 (de
Inventor
Jianhua Pang
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.)
NAT SEMICONDUCTOR CORP SANTA C
National Semiconductor Corp
Original Assignee
NAT SEMICONDUCTOR CORP SANTA C
National Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NAT SEMICONDUCTOR CORP SANTA C, National Semiconductor Corp filed Critical NAT SEMICONDUCTOR CORP SANTA C
Application granted granted Critical
Publication of DE69634529D1 publication Critical patent/DE69634529D1/de
Publication of DE69634529T2 publication Critical patent/DE69634529T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/40Bus structure
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • G06F13/4077Precharging or discharging

Description

  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft serielle Schnittstellen und insbesondere eine serielle Schnittstelle, die in der Lage ist, mit zwei oder mehr Schnittstellenstandards zu arbeiten.
  • 2. Beschreibung des Standes der Technik
  • Zwei Arten von synchronen seriellen Schnittstellen-Datenübertragungsstandards sind der Standard MICROWIRETM/Microwire Plus und der Systemverwaltungsbus-(SMB) Standard. Der Standard MICROWIRETM/Microwire Plus ist ein Standard mit drei Drähten und der SMB-Standard ist ein Standard mit zwei Drähten. Der SMB-Standard, der von der Intel Corporation in Santa Clara, Kalifornien, veröffentlicht wurde, ist im Wesentlichen äquivalent zu einem anderen Standard, der als I2C-Bus-Standard bekannt ist. Ferner ist der SMB-Busstandard zu einem anderen Standard ähnlich, der als Access.bus-Standard bekannt ist. Diese Schnittstellenstandards ermöglichen eine leichte Kopplung mit einem breiten Bereich von kostengünstigen Spezialspeichern und E/A-Vorrichtungen. Diese umfassen EEPROMs, SRAMs, Zeitgeber, A/D-Wandler, D/A-Wandler, Taktchips und Peripheriegeräte.
  • Um Schnittstellen sowohl des Standards MICROWIRETM/Microwire Plus als auch SMB in einem einzelnen integrierten Schaltungs-(IC) Chip aufzunehmen, müssen fünf Eingangs/Ausgangs-Anschlussstifte verwendet werden, d.h. drei Anschlussstifte für MICROWIRETM/Microwire Plus und zwei Anschlussstifte für SMB. In Anwendungen, die Begrenzungen hinsichtlich Platz und Kosten haben, wie z.B. Anwendungen von persönlichen digitalen Assistenten (PDA) der oberen Klasse, nutzen fünf Eingangs/Ausgangs-Anschlussstifte eine signifikante Menge an Platz.
  • Somit besteht ein Bedarf für eine Schaltung, die zwei oder mehr serielle Schnittstellen kombinieren kann und die relativ wenige Eingangs/Ausgangs-Anschlussstifte verwendet.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der Erfindung umfasst eine serielle Schnittstelle einen ersten Anschluss, der in der Lage ist, Daten auf serielle Weise zu senden und zu empfangen; eine mit dem ersten Anschluss gekoppelte erste Datenübertragungsstufe zum Konfigurieren des ersten Anschlusses, damit er entweder in einer ersten seriellen Datenübertragungs-Betriebsart oder einer zweiten seriellen Datenübertragungs-Betriebsart arbeitet; einen zweiten Anschluss, der in der Lage ist, ein Taktsignal zu senden und zu empfangen, das verwendet wird, um die Datenübertragung über den ersten Anschluss zu steuern; eine mit dem zweiten Anschluss gekoppelte Taktübertragungsstufe zum Konfigurieren des zweiten Anschlusses, damit er entweder in der ersten seriellen Datenübertragungs-Betriebsart oder der zweiten seriellen Datenübertragungs-Betriebsart arbeitet; einen dritten Anschluss zum Durchführen einer seriellen Datenübertragung, und eine mit dem dritten Anschluss gekoppelte zweite Datenübertragungsstufe zum Ermöglichen, dass der dritte Anschluss in der zweiten seriellen Datenübertragungs-Betriebsart arbeitet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 12 sind Blockdiagramme, die eine erfindungsgemäße serielle Schnittstelle darstellen.
  • 3 ist ein Blockdiagramm, das die in 1 gezeigte serielle Schnittstelle in einen größeren integrierten Schaltungs-(IC) Chip eingebaut darstellt.
  • 45 sind Blockdiagramme, die Beispiel-Access.bus-Konfigurationen darstellen.
  • 68 sind schematische Diagramme, die die in 1 und 2 gezeigte serielle Schnittstelle darstellen.
  • 913 sind Ablaufdiagramme, die Access.bus-Datenübertragungen darstellen.
  • 1415 sind Zustandsdiagramme, die den Betrieb der in den 1 und 2 gezeigten seriellen Schnittstelle darstellen.
  • 16 ist ein schematisches Diagramm, das eine Takterzeugungsschaltung darstellt, die in der in den 1 und 2 gezeigten seriellen Schnittstelle verwendet werden kann.
  • 1718 sind Ablaufdiagramme, die den Betrieb der in 16 gezeigten Takterzeugungsschaltung darstellen.
  • 19 ist ein schematisches Diagramm, das eine weitere Takterzeugungsschaltung darstellt, die in der in den
  • 1 und 2 gezeigten seriellen Schnittstelle verwendet werden kann.
  • 2021 sind Ablaufdiagramme, die den Betrieb der in 19 gezeigten Takterzeugungsschaltung darstellen.
  • 2223 sind Ablaufdiagramme, die den Betrieb der in den 1 und 2 gezeigten seriellen Schnittstelle darstellen.
  • 24 ist ein Blockdiagramm, das Module darstellt, die in der in den 1 und 2 gezeigten seriellen Schnittstelle enthalten sind.
  • 2529 sind Ablaufdiagramme, die den Betrieb der in den 1 und 2 gezeigten seriellen Schnittstelle darstellen.
  • AUSFÜHRLICHE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Mit Bezug auf die 1 und 2 ist eine serielle Schnittstelle 30 gemäß der vorliegenden Erfindung dargestellt. Die serielle Schnittstelle 30 kann eine vollständige Unterstützung der synchronen seriellen Schnittstellen entweder des Standards MICROWIRETM/Microwire Plus mit drei Drähten oder des Systemverwaltungsbus-(SMB) Standards mit zwei Drähten bereitstellen. Wie vorstehend erwähnt, ist der SMB-Standard zum I2C-Bus-Standard im Wesentlichen äquivalent und der SMB-Standard ist zum Access.bus-Standard ähnlich. Insbesondere kann gemäß dem SMB-Standard ein Master ein Sender und ein Empfänger sein und ein Slave kann ein Sender und ein Empfänger sein. Gemäß dem Access.bus-Standard kann ein Master nur ein Sender sein und ein Slave kann nur ein Empfänger sein. Die folgende Erörterung nimmt an, dass die serielle Schnittstelle 30 mit dem Standard MICROWIRETM/Microwire Plus mit drei Drähten und dem Access.bus-Standard mit zwei Drähten arbeitet. Es sollte jedoch durchaus selbstverständlich sein, dass der Access.bus-Standard gegen den Systemverwaltungsbus-(SMB) Standard ausgetauscht werden kann oder alternativ der Access.bus-Standard gegen den I2C-Bus-Standard ausgetauscht werden kann.
  • Da der MicrowirePlus-Standard den MICROWIRE-Standard mit der zusätzlichen Option, umzukehren, an welcher Flanke die seriellen Daten aus- und eingetaktet werden, vollständig unterstützt, wird er im Rest dieses Dokuments als MICROWIRE bezeichnet. MICROWIRE taktet Daten bei der fallenden Flanke des SK-Takts aus und taktet die Eingangsdaten bei der steigenden Flanke von SK ein; MicrowirePlus hat die Option, dies umzukehren. MICROWIRE ist in Datenblättern, die von der National Semiconductor Corporation in Santa Clara, Kalifornien, erhältlich sind, vollständig definiert.
  • Der Begriff "mit drei Drähten" bezieht sich sowohl auf die MICROWIRE- als auch die Access.bus-Schnittstelle, selbst wenn der Access.bus eine Schnittstelle mit zwei Leitungen ist. Die serielle Schnittstelle 30 verwendet nur drei Anschlussstifte, um sowohl MICROWIRETM/Microwire Plus als auch Access.bus (oder den SMB- oder I2C-Standard) zu unterstützen. Die Anschlussstifte sind: SO (oder SDA); SI (bei I2C nicht verwendet); und SCLK (oder SCL). Ein Systemsteuerregister (nachstehend erörtert) wählt entweder die MICROWIRE-(0–1 MHz) oder die Access.bus-Schnittstelle (0–100 kHz) aus und programmiert die Taktteilerkette mit drei Drähten.
  • Mit Bezug auf 3 kann die serielle Schnittstelle 30 in einen IC-Chip 32 eingebaut sein, um eine serielle Datenübertragung zum und vom IC-Chip 32 durchzuführen. Der IC-Chip 32 kann andere interne Komponenten, wie beispielsweise eine CPU 34, eine DMA-Steuereinheit 36, eine DRAM-Speicher-Steuereinheit 38, eine Busschnittstelleneinheit 40, eine LCD-Steuereinheit 42 und/oder einen parallelen Anschluss 44, umfassen. Ein CPU-Bus 46 und ein peripherer Bus 48 können verwendet werden, um Datenübertragungen zwischen allen oder einigen der Komponenten vorzusehen. Wenn die serielle Schnittstelle 30 nicht verwendet wird, können ihre Anschlussstifte für eine gewisse andere Funktion verwendet werden, wie beispielsweise Modemsteuerleitungen (CTS_z, DCD_z und RI_z).
  • Der Access.bus verwendet eine Schnittstelle mit zwei Drähten, um bidirektionale Datenübertragungen zwischen ICs zu ermöglichen. Die zwei Schnittstellenleitungen sind die serielle SDA-Datenleitung und die serielle SCL-Taktleitung. Beispiel-Access.bus-Konfigurationen sind in den 4 und 5 gezeigt. Wie dargestellt, unterstützt der Access.bus mehrere Master, wie z.B. IC-Chips 32A und 32B, und viele Slave- und Master-Sender und -Empfänger. Das Access.bus-Protokoll umfasst Softwareadressierungs- und Datenübertragungsprotokolle zusätzlich zu Hardwaredefinitionen. Die zwei seriellen Leitungen (Takt und Daten) können mit einer positiven Versorgung über einen Pull-up-Widerstand verbunden sein und können HOCH bleiben, wenn der Bus nicht belegt ist. Jede Vorrichtung weist eine eindeutige Adresse auf und kann als Sender oder Empfänger arbeiten. Man beachte, dass einige Peripheriegeräte nur Empfänger sind und die meisten Mikrocomputer und Systeme wie z.B. die IC-Chips 32A und 32B sowohl Sender als auch Empfänger sind.
  • Während Datenübertragungen kann eine Vorrichtung entweder ein Master oder ein Slave sein. Die auslösende Vorrichtung wird als Master betrachtet und sie erzeugt die Taktsignale für die Übertragung. Irgendeine adressierte Vorrichtung während dieser Übertragung wird als Slave betrachtet. Wenn der IC-Chip 32 eine Datenübertragung mit einem beigefügten Access.bus-Peripheriegerät einleitet, ist dies der Master und der Sender. Wenn jedoch das fragliche Access.bus-Peripheriegerät antwortet und Daten zum IC-Chip 32 sendet, ist es der Sender (selbst wenn es der Slave bleibt) und der Chip 32 ist der Empfänger (selbst wenn er der Master bleibt). Mit anderen Worten, der Master kann sowohl ein Sender als auch ein Empfänger sein und ein Slave kann sowohl ein Sender als auch ein Empfänger sein. Der Schlüssel ist, dass der Initiator und der Lieferant des Taktsignals der Master ist.
  • Wie in den 4 und 5 gezeigt, ist es möglich, dass mehr als ein Master auf dem Bus vorhanden ist. Aufgrund dessen wurde in die Access.bus-Implementierung eine Buszuteilung aufgenommen. Sie hängt von einer verdrahteten UND-Verbindung mit den Vorrichtungen auf dem Bus und von der Taktsynchronisation ab. In den meisten Fällen ist jedoch der IC-Chip 32 der einzige Master.
  • Unter erneutem Bezug auf 1 umfasst die serielle Schnittstelle 30 eine bidirektionale Taktübertragungsschaltung 50, eine bidirektionale Datenübertragungsschaltung 52 und eine Ausgangsdatenübertragungsschaltung 54. Die bidirektionale Taktübertragungsschaltung 50 wird für die Eingabe und Ausgabe der Taktsignale für sowohl MICROWIRE als auch I2C verwendet. Die bidirektionale Datenübertragungsschaltung 52 wird für die Dateneingabe und -ausgabe für I2C und nur die Dateneingabe für MICROWIRE verwendet. Die Ausgangsdatenübertragungsschaltung 54 wird für die Datenausgabe für MICROWIRE verwendet.
  • Mit Bezug auf 6 ist die bidirektionale Taktübertragungsschaltung 50 im Wesentlichen wie gezeigt verbunden. Um MICROWIRE auszuwählen, wird das Freigabesignal EN auf eine "1" gesetzt und das Ansteuereingangssignal I2C_uw_z wird auf "0" gesetzt. Diese Eingangssignale werden durch die Software gesteuert und werden über ein Steuerregister (nachstehend erörtert) gesetzt. Das Signal Disp_z ist gleich dem NICHT-UND des Freigabesignals EN und des Ansteuereingangssignals I2C_uw_z, das in diesem Fall eine "1" ist. Der MICROWIRE-Ausgangstakt sclk_uw_out wird von einem Puffer 56 empfangen. Sowohl das NICHT-UND-Gatter 58 als auch das NICHT-ODER-Gatter 60 werden freigegeben, was bedeutet, dass sowohl der p-Kanal-Transistor 62 als auch der n-Kanal-Transistor 64 durch den Takt sclk_uw_out in Totem-pole angesteuert werden. Das Ansteuern der Ausgangstransistoren 62 und 64 auf Totem-pole-Weise ist im MICROWIRE-Standard festgelegt. Somit wird der Ausgangstakt sclk_uw_out am Anschlussstift SCLK ausgesandt. Ein MICROWIRE-Eingangstakt sclk_uw_in wird am Anschlussstift SCLK empfangen und wird über die Puffer 66 und 68 übertragen.
  • Um I2C auszuwählen, wird das Freigabesignal EN auf eine "1" gesetzt und das Ansteuereingangssignal I2C_uw_z wird auf "1" gesetzt. Das Signal Disp_z ist gleich dem NICHT-UND von EN und I2C_uw_z, das in diesem Fall eine "0" ist. Der I2C-Ausgangstakt sclk_I2C_out wird vom Puffer 56 empfangen. Das Signal Disp_z deaktiviert das NICHT-UND-Gatter 58, was wiederum den p-Kanal-Transistor 62 sperrt. Somit bildet der Ausgang einen offenen Drainpol, wobei nur der Transistor 64 den Ausgangstakt sclk_I2C_out über den Anschlussstift SCLK treibt. Ein I2C-Eingangstakt sclk_I2C_in wird am Anschlussstift SCLK empfangen und wird über die Puffer 66 und 68 übertragen.
  • Mit Bezug auf 7 ist die bidirektionale Datenübertragungsschaltung 52 im Wesentlichen wie gezeigt verbunden. Um I2C auszuwählen, wird wiederum das Freigabesignal EN auf eine "1" gesetzt und das Ansteuereingangssignal I2C_uw_z wird auf "1" gesetzt. Das Signal Disp_z ist gleich dem NICHT-UND von EN und I2C_uw_z, das in diesem Fall eine "0" ist. Ferner ist ein I2C-Datenausgangs-Freigabesignal EN_i2cd gleich dem UND des Freigabesignals EN und des Ansteuereingangssignals I2C_uw_z, das in diesem Fall eine "1" ist. Das I2C-Ausgangsdatensignal SD_I2C_out wird vom NICHT-UND-Gatter 70 und vom NICHT-ODER-Gatter 72 empfangen. Das NICHT-UND-Gatter 70 wird jedoch gesperrt, da das Signal Disp_z gleich "0" ist. Somit wird der p-Kanal-Transistor 74 auch gesperrt und ähnlich zum obigen bildet der Ausgang einen offenen Drainpol, wobei nur der Transistor 76 die Ausgangsdaten SD_I2C_out über den Anschlussstift SO treibt. Ein I2C-Eingangsdatensignal SD_I2C_in wird am Anschlussstift SO empfangen und wird über die Puffer 78 und 80 übertragen.
  • Um MICROWIRE auszuwählen, wird das Freigabesignal EN auf eine "1" gesetzt und das Ansteuereingangssignal I2C_uw_z wird auf "0" gesetzt. Das Signal Disp_z ist gleich dem NICHT-UND von EN und I2C_uw_z, das in diesem Fall eine "1" ist, und das Freigabesignal EN_i2cd ist gleich dem UND von EN und I2C_uw_z, das in diesem Fall eine "0" ist. Ein MICROWIRE-Eingangsdatensignal SD_uw_in wird am Anschlussstift SO empfangen und wird über die Puffer 78 und 80 übertragen. Die bidirektionale Datenübertragungsschaltung 52 wird nur für die MICROWIRE-Dateneingabe und nicht die MICROWIRE-Datenausgabe verwendet.
  • Mit Bezug auf 8 ist die Ausgangsdatenübertragungsschaltung 54 im Wesentlichen wie gezeigt verbunden. Um MICROWIRE auszuwählen, wird das Freigabesignal EN wieder auf eine "1" gesetzt und das Ansteuereingangssignal I2C_uw_z wird auf "0" gesetzt. Ein MICROWIRE-Datenausgangs-Freigabesignal EN_uwd ist gleich dem UND des Freigabesignals EN und des Komplements (d.h. Negation) des Ansteuereingangssignals I2C_uw_z, das in diesem Fall das Ergebnis des UND, eine "1" ist. Das MICROWIRE-Datenausgangssignal SO_uw wird über einen Puffer 82 zum Ausgangsanschlussstift SI übertragen.
  • Um sowohl MICROWIRE als auch I2C für alle Schaltungen 50, 52 und 54 zu deaktivieren, wird das Freigabesignal EN auf eine "0" gesetzt und die Anschlussstifte SCLK, SO und SI werden alle auf drei Zustände gesetzt, d.h. auf den Zustand mit hoher Impedanz gesetzt. Zwei durch Software gesteuerte Bits, d.h. das Freigabesignal EN und das Ansteuereingangssignal I2C_uw_z und nur drei Eingangs/Ausgangs-Anschlussstifte, d.h. SCLK, SO und SI, können folglich verwendet werden, um entweder MICROWIRE oder I2C auszuwählen. Zwei der Eingangs/Ausgangs-Anschlussstifte, d.h. SCLK und SO, werden automatisch für I2C auf offenen Drainpol oder für MICROWIRE auf Totem-pole konfiguriert. Ein programmierbarer Taktteilungsbaum liefert eine angemessene Taktfrequenz für sie.
  • Während Access.bus-Datenübertragungen werden Daten während des hohen Zustands des seriellen Takts (SCL) übertragen. Die Daten müssen sich während des niedrigen Zustands des Takts ändern. Während des hohen Zustands werden die Daten gelesen und unter der Annahme, dass die Daten während der gesamten hohen Periode des Takts stabil sind, wird angenommen, dass die Daten gültig sind. Dies ist in 9 gezeigt.
  • Ein Datenbit wird während jedes Taktimpulses übertragen. Die Daten auf der SDA-Leitung müssen während der HOHEN Periode stabil bleiben, damit sie gültig sind. Dies liegt daran, dass Datenübergänge während der hohen Periode des SCL als Steuersignale interpretiert werden. Dies ermöglicht, dass eine einzelne Datenleitung sowohl eine Befehls/Steuer-Information als auch Daten unter Verwendung des synchronen seriellen Takts überträgt.
  • Ein Übergang der Datenleitung (SDA) von hoch auf niedrig, während der Takt (SCL) hoch ist, gibt eine START-Bedingung an, wie in 10 gezeigt. Ebenso gibt ein Übergang der SDA-Leitung von niedrig auf hoch, während der SCL hoch ist, eine STOP-Bedingung an.
  • Der Bus wird nach der START-Bedingung als belegt und nach einem bestimmten Zeitintervall nach der STOP-Bedingung als wieder frei betrachtet. Die START- und STOP-Bedingungen werden vom Master erzeugt.
  • Während einer Datenübertragung ist die kleinste Übertragungseinheit das Byte. Eine beliebige Anzahl von Datenbytes kann auf einmal übertragen werden. Jedes Byte wird mit dem höchstwertigen Bit zuerst übertragen und nach jedem Byte (8 Bits) muss ein Betätigungsbit folgen, wie in 11 gezeigt. Der Master muss den Bestätigungsbit-Taktimpuls erzeugen und der Empfänger muss die SDA-Leitung während des Bestätigungs-Taktimpulses herabsetzen, während der Sender die SDA-Leitung während des Bestätigungsimpulses freigibt (sie auf einen hohen Pegel schalten lässt). 12 zeigt diese Bedingung.
  • Ein Slave-Empfänger muss nach dem Empfang jedes Bytes eine Bestätigung erzeugen und ein Master muss nach dem Empfang jedes Bytes, das aus dem Slave-Sender ausgetaktet wird, eine erzeugen. Wenn die Empfangsvorrichtung die Daten nicht sofort empfangen kann, kann sie den Sender in einen Wartezustand bringen, indem sie die Taktleitung (SCL) auf einem niedrigen Pegel hält. Dies kann geschehen, wenn der Empfänger mit einer gewissen mit einem Peripheriegerät verbundenen Aufgabe beschäftigt ist oder anderweitig mit Systemaufgaben höherer Ordnung beschäftigt ist. Wenn dies geschieht, sollte der Master nach einem Zeitablauf die Übertragung durch Erzeugen einer Stopbedingung abbrechen, was ermöglicht, dass andere Übertragungen stattfinden.
  • Es gibt zwei Ausnahmen für die Regel "Bestätigung nach jedem Byte". Die erste ist, wenn der Master der Empfänger ist. Er muss dem Sender ein Datenende signalisieren, indem eine Bestätigung beim letzten Byte, das aus dem Slave ausgetaktet wurde, NICHT signalisiert wird. Diese "negative Bestätigung" umfasst immer noch den Bestätigungstaktimpuls (vom Master erzeugt), aber die SDA-Leitung wird nicht herabgesetzt. Die zweite Ausnahme ist, wenn ein Slave eine negative Bestätigung sendet, wenn er keine zusätzlichen Datenbytes mehr annehmen kann. Dies geschieht, wenn der Empfänger voll ist, anderweitig belegt ist oder ein Problem aufgetreten ist. Unter diesen Bedingungen erzeugt der Slave auch eine "negative Bestätigung".
  • Mit Bezug auf Adressierungsübertragungsformate weist jede Vorrichtung auf dem Bus eine eindeutige Adresse auf. Bevor irgendwelche Daten übertragen werden, überträgt der Master die Adresse des adressierten Slave. Die Slavevorrichtung sollte, sobald sie ihre Adresse erkennt, mit einer Bestätigung auf der SDA-Leitung bestätigen, dass die Adresse übereinstimmt.
  • Die Adresse sind die ersten sieben Bits nach einer START-Bedingung. Das 8. Bit ist der Richtungs-(R/W) Indikator. Eine vollständige Datenübertragung ist in 13 gezeigt und zeigt die Startbedingung, gefolgt von einer 7-Bit-Adresse, einem 1-Bit-RIW-Indikator, einer 1-Bit-Bestätigung, gefolgt von einem zweiten Datenbyte, einer 1-Bit-Bestätigung und so weiter. Ein Übergang von niedrig auf hoch während einer hohen SCL-Periode gab die STOP-Bedingung an und beendet die Übertragung.
  • Wenn die Adresse gesandt wird, vergleicht jede Vorrichtung in dem System ihre Adresse mit der gesandten Adresse. Wenn eine Übereinstimmung besteht, betrachtet sich die Vorrichtung als adressiert und sendet eine Bestätigung. In Abhängigkeit vom Zustand des R/(W_z)-Bits (1 = Lesen, 0 = Schreiben) wirkt die Vorrichtung als Sender (Daten senden) oder als Empfänger (Daten empfangen).
  • Wie vorstehend erwähnt, umfasst die serielle Schnittstelle 30 ein Steuerregister mit drei Drähten (3WCON). Die Schnittstellen MICROWIRE (die eine serielle Taktfrequenz von 0–1 MHz unterstützt) und Access.bus (die eine serielle Taktfrequenz von 0–10 kHz unterstützt) verwenden spezielle Taktfrequenzen und dieses Register wird verwendet, um diese Frequenzen zu steuern. Insbesondere sind die Bitzuweisungen des Steuerregisters 3WCON folgendermaßen. Bits 7–6: SL1,2, die sich mit SL0 zum ausgewählten CPU-Takt, dividiert durch 4, 8, 16 oder 32, kombinieren. Bits 6–3: Con2-0, die den 8-Bit-Zähler-Anfangswert festlegen. SL0 und SL1 sind zwei Auswahlsignale, um den CPU-Takt, dividiert durch 4, 8, 16 oder 32 auszuwählen, wie in Tabelle A gezeigt. Dieser vorskalierte Takt geht zu einem 8-Bit-Zähler, der durch Con0, Con1 und Con2 gesteuert wird, wie in Tabelle B gezeigt. Mit diesen fünf Auswahlbits kann man den CPU-Takt, dividiert durch 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448 und 512, als Taktquelle für die Schnittstellenlogik mit drei Drähten auswählen.
  • Figure 00130001
    TABELLE A
  • Con0, Con1, Con2, SL1 und SL0 sollten gemäß der Frequenz der CPU, die in der Hardware verwendet wird, programmiert werden. Sie legen die Frequenz des in diesem Block verwendeten Takts fest und werden verwendet, um die Leistung bei verschiedenen Oszillatorgeschwindigkeiten zu optimieren.
  • Figure 00140001
    TABELLE B
  • Das Bit 2 ist das vorstehend erörterte Freigabesignal EN. Dieses Bit gibt die 3-Wire-Schnittstelle frei, wenn es eine "1" ist, und sperrt die 3-Wire-Schnittstelle, wenn es eine "0" ist. Dies ist das globale Freigabebit. Das Bit 1 ist das vorstehend erörterte Ansteuereingangsbit I2C_uw_z, das hierin auch als A_UW-Bit bezeichnet wird. Wenn dieses Bit eine "0" ist, wird MICROWIRE ausgewählt, und wenn dieses Bit eine "1" ist, wird Access.bus (I2C) ausgewählt. Das Bit 0 ist ein weiches Rücksetzbit S_RESET. Auf der Basis irgendeiner Busfehlerbedingung kann die Software ein Softwarerücksetzen an diesen Block ausgeben, indem sie dieses Bit auf = "1" setzt.
  • Das Drei-Draht-Steuerregistermodul weist die folgenden Funktionen auf. Es decodiert EA-Lesen/Schreiben, CS_3wire und den Adressenbus, um alle Lese/Schreib-Freigabesignale für 3-Wire zu erzeugen. Es bearbeitet Registerlesevorgänge. Alle Module, die lesbare Register enthalten, senden den Bus zu diesem Modul. Sie werden im Lesezyklus gemischt und ausgesandt. Das Drei-Draht-Steuerregister schreibt in das scon[7:0]-Register. Es führt eine Zeitüberwachungsfunktion durch. Wenn I2C ausgewählt ist und wenn der Takt mehr als 2 ms niedrig bleibt (Access.bus erforderlich), wird ein Überlauf und eine Unterbrechung für die CPU erzeugt. Der Takt RTC_I KHZ wird verwendet, um diese Funktion zu implementieren. Die Taktteilungskette wird durch dieses Modul durchgeführt. OSC/2_clk wird durch 4, 8, 16 und 32 dividiert. Dieser vorskalierte zählende Takt inkrementiert nach jeder steigenden Flanke, bis er gleich [Con2, Con1, Con0] ist. Dies ist ein kontinuierlicher laufender Takt, wenn 3-wire aktiviert ist. Er geht in Abhängigkeit davon, welches ausgewählt ist, zu Microwire oder I2C. Schließlich wählt das Drei-Draht-Steuerregistermodul eingehende Daten/eingehenden Takt, die/der I2C-Daten/Takt sind/ist, oder Microwire-Daten/Takt in Abhängigkeit davon, welches ausgewählt ist, aus.
  • Die serielle Schnittstelle 30 umfasst MICROWIRE-Register. MICROWIRE und Microwire/Plus sind synchrone serielle Drei-Draht-Schnittstellen-Kommunikationssysteme, die ermöglichen, dass Chips wie z.B. der IC-Chip 32 mit irgendeiner anderen Vorrichtung kommunizieren, die auch die MICROWIRE- und Microwire/Plus-Schnittstelle unterstützt. Es sind zwei 8-Bit-MICROWIRE-Register vorhanden.
  • Ein serielles Eingabe/Ausgabe-Register (SIO) ist ein 8-Bit-Schieberegister, das SIO-(serielle Eingabe/Ausgabe und PIPO) Register genannt wird. Es wird sowohl zum Senden als auch Empfangen von Daten verwendet. In MICROWIRE-Systemen wird das höchstwertige Bit zuerst gesendet (empfangen) und das niedrigstwertige Bit wird zuletzt gesendet (empfangen). Die CPU 34 liest und schreibt vom bzw. in das SIO-Register über einen parallelen 8-Bit-Datenbus. Es ist ein Lese/Schreib-Register und weist eine E/A-Zuordnungsadresse von 0051h auf.
  • Das Microwire-Modul weist die folgenden Funktionen auf. Es synchronisiert UW_BUSY und verwendet dieses UW_BUSY_sync, um mit Abwärtsteilung zu steuern, lässt jedoch den Takt weiter laufen, um den Microwire-Takt zu erhalten (8 Taktimpulse als eine Gruppe), wenn es sich in der Masterbetriebsart befindet. Ein Taktzählwert wird zum Zählen von 8 Takten verfolgt. Wenn 8 Takte erreicht sind, wird UW_BUSY gelöscht und uWI wird gesetzt und der Zählwert zurückgesetzt. In die SIO-Schiebe/Laderegister-Implementierung wird geschrieben, wenn es sich im Programmierzyklus befindet, und Schieben findet statt, wenn es sich in der Microwire-Übertragungsphase befindet. Die normale SK-Betriebsart und die alternative SK-Betriebsart werden durch einen Eingangs- und Ausgangszwischenspeicher implementiert. In der normalen SK-Betriebsart ist der Ausgangszwischenspeicher durchlässig (LATZ = 1 'b1). Der Eingangszwischenspeicher ist ein verzögerter, umgekehrter CLK. Der Takt schaltet mit SLAVE_EN. In der Masterbetriebsart gilt SLAVE_EN = 1, und in der Slavebetriebsart, wenn CS_Z aktiv niedrig ist, gilt dann SLAVE_WN = 1.
  • Das andere MICROWIRE-Register ist ein MICROWIRE-Steuerregister (uWCON). Die Bitzuweisungen sind folgendermaßen. Die Bits 7–4 sind reserviert. Das Bit 3 ist ein Belegtübertragungskennzeichen BUSY. Wenn es gesetzt ist, zeigt es an, dass das Schieberegister sich in der Schiebephase befindet. Das Bit 2 ist ein SK-Taktbetriebsartbit SCTL. Wenn dieses Bit eine Null ist, was zur Standard-SK-Betriebsart führt, werden die Ausgangsdaten an SO bei der fallenden Flanke des SK-Takts ausgetaktet und die Eingangsdaten an SI werden bei der steigenden Flanke des SK-Takts abgetastet. Wenn dieses Bit eine Eins ist, was zur alternativen SK-Betriebsart führt, werden die SK-Taktflankenfunktionen umgekehrt. Das Bit 1 ist ein Konfigurationsbit CONFIG. wenn dieses Bit eine "1" ist, arbeitet die Microwire/Plus-Schnittstelle in der Masterbetriebsart. Wenn dieses Bit eine "0" ist, arbeitet die Microwire/Plus-Schnittstelle in der Slavebetriebsart. Das Bit 0 ist ein MICROWIRE-Sende/Empfangs-Unterbrechungskennzeichen uWI. Es wird am Ende der SIO-Registerverschiebung gesetzt.
  • Mit Bezug auf die serielle Access.bus-Schnittstelle übertragen zwei Drähte, serielle Daten und serieller Takt, eine Information zwischen den mit dem Access.bus verbundenen Vorrichtungen. Jede Vorrichtung wird durch eine eindeutige Adresse erkannt und kann entweder als Sender oder Empfänger in Abhängigkeit von der Funktion der Vorrichtung arbeiten. Es handelt sich um einen Mehrfachmasterbus. Vier Betriebsarten werden unterstützt: 1) Mastersenden (MT); 2) Masterempfang (MR); 3) Slavesenden (ST); und 4) Slaveempfang (SR). Innerhalb des Access.bus-Moduls befinden sich 4 Register: 1) serielles Eingabe/Ausgabe-Datenregister (SDA); 2) Access.bus-Zustandsregister; 3) Access.bus-Steuerregister; und 4) Register für eigene Adresse.
  • Das serielle Eingabe/Ausgabe-DATEN-Register (SDR) ist ein 8-Bit-Schieberegister, das sowohl zum Senden als auch Empfangen von Daten verwendet wird. Das höchstwertige Bit wird zuerst gesendet (empfangen) und das niedrigstwertige Bit wird zuletzt gesendet (empfangen). Die CPU 34 liest und schreibt SIO über einen parallelen 8-Bit-Datenbus. Es ist ein Lese/Schreib-Register und weist eine E/A-Zuordnungsadresse von 0053h auf.
  • Das Access.bus-Zustandsregister ist ein Nur-Lese-Register und weist eine Rücksetzbedingung von 000000 auf; alle Bits werden durch die Hardware gesetzt. Die Bitzuweisungen sind folgendermaßen. Die Bits 7, 6 sind reserviert. Das Bit 5 ist ein Fehlerkennzeichen Stop_ERR. Es wird durch die Hardware gesetzt, wenn während der Datenübertragung die Stopbedingung erfasst wurde (Stop = 1, wenn Busy = 1). Die Software muss ein weiches Rücksetzen ausgeben, um diesen Fehler zu löschen, und alle Access.bus-Vorrichtungen müssen geprüft werden. Das Bit 4 ist ein Fehlerkennzeichen No_ACK. In der Masterbetriebsart wird beim 9. Takt eine Übertragung nicht bestätigt. Wenn dieses Bit in der Masterbetriebsart Eins wird, erzeugt es einen Stop; wenn dieses Bit in der Slavebetriebsart Eins wird, geht die Vorrichtung in den Ruhezustand. Das Bit 3 ist ein Busbelegtkennzeichen BB. Wenn es gesetzt ist, zeigt es an, dass der Access.bus gerade belegt ist. Es wird durch die Startbedingung gesetzt und durch die Stop- oder Rücksetzbedingung gelöscht. Das Bit 2 ist ein Buszuteilungsverlustkennzeichen ARL. Wenn es gesetzt ist, zeigt es an, dass diese Vorrichtung die Buszuteilung verloren hat, während sie versucht, die Steuerung des Busses zu übernehmen. Es wird durch Rücksetzen, Stop und durch die Software gelöscht. Das Bit 1 ist ein Adressenübereinstimmungskennzeichen MATCH. In der Slaveempfangs-Betriebsart wird dieses Bit auf Eins gesetzt, wenn das Adressenbyte (das erste übertragene Byte) der 7-Bit-Adresse im Register für eigene Adresse entspricht. Es wird durch die Rücksetz-, Start-, Stop- und Softwarebedingung gelöscht. Das Bit 0 ist ein Startkennzeichen START. Es wird durch die Hardware gesetzt, wenn eine START-Bedingung erfasst wird. Es wird am Ende des ersten übertragenen Bytes und durch Rücksetzen und Stop gelöscht.
  • Neben den obigen Zustandsbits erzeugt das Access.bus-Zustandsregister auch gewisse andere Signale, die in anderen Modulen verwendet werden. Wenn eine STOP-Bedingung erfasst wird, wird zuerst ein STOP-Kennzeichen gesetzt. Es wird durch RESET und die nächste START-Bedingung gelöscht. Ein XMIT-Bit zeigt beim ersten Byte an, ob der nächste Zyklustyp Lesen oder Schreiben ist. In der MT-Betriebsart bedeutet Data = 0, dass der nächste Zyklus ein Schreibtyp ist und Data = 1 bedeutet, dass der nächste Zyklus ein Lesetyp ist. In der Slaveempfangs-Betriebsart interpretiert es das entgegengesetzte.
  • Das Access.bus-Steuerregister ist ein Schreib/Lese-Register mit einer Rücksetzbedingung von 00000000 und einer E/A-Zuordnungsadresse von 0055h. Die Bitzuweisungen sind folgendermaßen. Die Bits 7, 6 sind reserviert. Das Bit 5 ist ein Überlaufkennzeichen OVERFLOW. Dieses Bit wird auf Eins gesetzt, wenn der serielle Takt (SCLK) für mehr als 1024 Übertragungstaktperioden niedrig gehalten wird. Wenn dieses Bit in der Masterbetriebsart gesetzt ist, sollte die Übertragung abgebrochen werden und der Access.bus sollte zurückgesetzt werden. Das Bit 4, MASTRQ, wird gesetzt, um die Steuerung des Busses als Master durch die Software anzufordern. Das Bit 3 ist ein Access.bus-Unterbrechungskennzeichen ABINT. Es wird am Ende einer Übertragung durch die Hardware auf "1" gesetzt. Es muss durch die Software gelöscht werden. Das Bit 2 ist ein Stopsignal STOP_W. In der Masterbetriebsart verursacht das Setzen dieses Bits eine STOP-Handlung und erzeugt einen Stopimpuls. Das Bit 1 ist ein Belegtübertragungskennzeichen BUSY. "0" = bereit und "1" = belegt oder nicht bereit. Es wird durch die Software gesetzt, wenn das SDA-Register schiebt. Wenn es auf "0" gesetzt ist, setzt es die SCL-Leitung herab. Nach dem Übertragen von 8 Datenbits und einem 9. Bestätigungsbit löscht die Hardware dieses Bit. Das Bit 0 ist ein Bestätigungskennzeichen ACK. Dieses Bit wird durch die Hardware beim 9. Takt (wenn kein Busfehler vorliegt) nach einer empfangenen Bestätigung vom Empfänger gesetzt. Es wird durch den Wert der Empfängerbestätigung gesetzt. Es sollte durch die Benutzersoftware gelöscht werden, bevor die nächste Übertragung beginnt. In der Mastersende-Betriebsart verursacht dieses Bit, wenn ACK = 0, einen Masterabbruch (Erzeugen einer STOP-Bedingung). In der Slavesende-Betriebsart stoppt es, wenn ACK = 0, die Übertragung und geht in den Ruhezustand zurück. In der Master- und der Slaveempfangs-Betriebsart steuert die Benutzersoftware dieses Bit. Es sollte auf "1" gesetzt werden, was normalerweise verursacht, dass die Access.bus-Steuereinheit eine Bestätigung automatisch nach jedem Byte sendet. Das Bit sollte zurückgesetzt werden, wenn es sich in der Masterempfangs-Betriebsart befindet, und es erfordert, dass keine weiteren Daten vom Slavesender gesandt werden. Dies verursacht eine "negative Bestätigung" auf dem Access.bus, was jegliche weitere Übertragung vom Slave anhält. Eine Rücksetz- oder Stopbedingung setzt das Bit auf Null zurück.
  • Die Steuer- und Zustandsbits im Access.bus-Steuerregister werden von der Benutzersoftware gesetzt und alle Bits werden durch die Software und durch RESET gelöscht. Eine zweite Funktion des Access.bus-Steuerregistermoduls besteht darin, den seriellen I2C-Takt zu erzeugen. Alle Takte im I2C-Bus sind durch offenen Drainpol verbunden.
  • Mit Bezug auf 14 hat die Betriebsart-(Takt) Zustandsmaschine fünf Zustände zur Folge. Insbesondere ist der erste Zustand ein Ruhezustand T_IDLE (00001). Dies ist der Vorgabe/RESET-Zustand. Wenn die serielle Schnittstelle 30 global deaktiviert ist oder I2C nicht ausgewählt ist oder I2C aktiviert ist, aber keine START-Bedingung erfasst wird oder kein Masteranforderungsbit gesandt wurde, bleibt sie in diesem Zustand. Der zweite Zustand ist ein Mastersendezustand T_MT (00010). Wenn MASTRQ-Bits gesetzt sind, versucht der IC-Chip 32, der Busmaster zu sein. Die Zustandsmaschine schaltet von T_IDLE in diesen Zustand. Eine Startbedingung wird erzeugt und der Takt beginnt ausgesendet zu werden. Wenn jedoch die Buszuteilung beim ersten Byte (Adressenaufruf) verloren geht, schaltet sie in die Slaveempfangs-Betriebsart um, da der gewinnende Master arador_i2c aufrufen kann. Wenn die Buszuteilung beim folgenden Byte (nicht das erste Byte) verloren geht, geht sie in den T_IDLE-Zustand. Dies geschieht, wenn der IC-Chip 32 und ein anderer Chipgewinnmaster einen gewissen Slave adressiert haben, aber verschiedene Daten darstellen. Wenn die nächste Übertragung ein LESEN ist (diese Information ist in den 8. Daten des ersten Bytes enthalten), dann sollte sie zu T_MR (Masterempfangs-Betriebsart) gehen. Wenn keine der obigen drei Bedingungen auftritt, dann gewinnt der IC-Chip 32 die Buszuteilung und der nächste Zyklus ist Schreiben und sie bleibt im T_MT-Zustand.
  • Der dritte Zustand ist eine Masterempfangs-Betriebsart T_MR (00100). Wenn MASTRQ hoch ist (Startbedingung wiederholen: Sr), dann geht der Zustand zu T_MT; ansonsten bleibt er in T_MR. Der vierte Zustand ist die Slaveempfangs-Betriebsart T_SR (01000). Wenn I2C aktiviert ist und eine START-Bedingung erfasst wird, aber der IC-Chip 32 nicht MASTRQ anforderte, schaltet die Zustandsmaschine von T_IDLE auf T_SR um. Wenn die Adresse nicht mit own_address übereinstimmt (nach dem Empfangen der 7-Bit-Adresse und Vergleichen mit dem own_address-Register) oder eine Fehlerbedingung passiert, geht sie zu T_IDLE, da der Slave nicht für das Erzeugen einer "STOP"-Bedingung verantwortlich ist. wenn die Adresse übereinstimmt, aber der nächste Zyklus ein "Masterlesen/Slaveschreiben" ist, wechselt sie in die Slavesende-Betriebsart. Wenn die Adresse übereinstimmt und der nächste Zyklus "Masterschreiben/Slavelesen" ist, bleibt sie in T_SR. Der fünfte Zustand ist die Slavesende-Betriebsart T_ST (10000). Wenn die Adresse übereinstimmt und der nächste Zyklus Slaveschreiben ist, schaltet die Zustandsmaschine von T_SR auf T_ST. Wenn ein Fehler auftritt (keine Bestätigung beim 9. Takt oder vorzeitiger STOP), geht sie zu T_IDLE.
  • Mit Bezug auf 15 weist die "Taktzustands"-Zustandsmaschine zehn Zustände auf. Diese Zustandsmaschine umfasst 9 Taktzählwerte und gibt eine korrekte Taktzustandsreferenz. Mit Bezug auf 16 weisen, wenn die Takte durch eine Teilungsstruktur-Takterzeugungsschaltung 104 erzeugt werden, alle Takte im Bus mit offenem Drainpol unterschiedliche Frequenzen und Asynchronitäten auf. Wenn alle Takte durch eine Teilung vom Systemtakt erzeugt werden, laufen sie mit Bezug auf die 1718 asynchron und mit verschiedenen Frequenzen. Der Bus mit offenem Drainpol funktioniert als verdrahtetes Und. Clk-Bus kann nicht in der Lage sein, eine minimale Breite hoher Impulse zu garantieren (jeder von ihnen kann dies garantieren). Der resultierende CLK_BUS funktioniert als wire_AND und könnte zu sehr kleinen hohen Impulsen führen und die Spezifikation für minimale hohe Impulse verletzen, selbst wenn alle Takte selbst die Spezifikation für hohe Impulse nicht verletzen. Im I2C-Taktbus kann der Slave den Takt für einen Übertragungsquittungsaustausch niedrig dehnen und der Slave kann den Takt asynchron freigeben und den Störimpulstakt auch.
  • 19 stellt eine störimpulsfreie Takterzeugungsschaltung 106 mit offenem Drainpol und mehreren Quellen dar, die den Nachteil der in 16 gezeigten Schaltung 104 beseitigt. 2021 stellen den Betrieb der Takterzeugungsschaltung 106 dar. Die Takterzeugungsschaltung 106 ist eine digitale Schaltung, die ein Taktsignal mit offenem Drainpol und mehreren Quellen ansteuert, das eine minimale Taktbreite und Störimpulsfreiheit garantiert. Dieses wird verwendet, um alle mit diesem Taktsignal verbundenen Vorrichtungen zu synchronisieren.
  • In der Takterzeugungsschaltung 106 befinden sich zwei Zähler, die zum Erzeugen des Takts in dem Entwurf verwendet werden. Einer ist ein Hoch-Zählwert für die Breite hoher Impulse und ein anderer ist ein Niedrig-Zählwert für die Breite niedriger Impulse. An der fallenden Flanke von CLK_BUS, d.h. wenn eine fallende Flanke am seriellen I2C-Takt erfasst wird oder wenn der Hoch-Zähler abläuft (auf Null herabzählt oder auf eine gewünschte Zahl hochzählt), setzt die Schaltung ihren eigenen Takt auf niedrig und beginnt, den Niedrig-Zählwert abwärts zu zählen, bis der Niedrig-Zählwert abläuft und der Hoch-Zählwert zurückgesetzt wird. CLK_BUS wird niedrig gehalten, bis der Niedrig-Zählwert abläuft. Der Übergang dieses Takts von niedrig auf hoch kann jedoch den Zustand von CLK_BUS nicht ändern, wenn ein anderer Takt noch niedrig ist.
  • An der steigenden Flanke von CLK_BUS beginnt die Schaltung, den Hoch-Zähler 108 abwärts zu zählen, bis er abläuft oder CLK-BUS auf einen niedrigen Pegel schaltet. Der Zählwert muss zurückgesetzt werden 110 oder neu geladen werden, wenn CLK_BUS den Zustand ändert. CLK_BUS wird erzeugt, wobei seine niedrige Periode durch die Vorrichtung mit der längsten Taktperiode festgelegt wird und seine hohe Periode durch diejenige mit der kürzesten hohen Taktperiode festgelegt wird. Wenn alle Takte eine minimale Breite hoher Impulse garantieren, werden die Takte im Bus mit offenem Drainpol auf diese Weise synchronisiert und garantieren eine minimale Breite hoher Impulse und Störimpulsfreiheit.
  • Wenn der Niedrig-Zählwert aller Vorrichtungen abläuft, schaltet CLK_BUS auf einen hohen Pegel und der Hoch-Zählwert aller Takte startet das Zählen. Die erste Vorrichtung, die die HOHE Periode beendet, setzt CLK_BUS auf einen niedrigen Pegel und jeder Takt setzt den Hoch-Zählwert zurück und der Niedrig-Zählwert startet. Wiederum wird der hohe Zeitraum von CLK_BUS durch diejenige mit der kürzesten hohen Taktperiode festgelegt und die niedrige Periode wird durch die Vorrichtung mit der längsten niedrigen Taktperiode festgelegt. Solange jede Vorrichtung die Taktimpulsspezifikation nicht verletzt, verletzt sie CLK_BUS auch nicht.
  • Mit der Takterzeugungsschaltung 106 weist der resultierende Systemtakt folglich immer die kürzesten hohen und die längsten niedrigen der clk1- und clk2-Taktsignale auf. Sie arbeitet mit offenem Drainpol und garantiert die minimale Breite hoher Impulse. Die kleinste Impulsbreite wird normalerweise festgelegt, um die minimale Breite hoher Impulse für I2C zu erfüllen. Es sollte jedoch selbstverständlich sein, dass die Verwendung der Takterzeugungsschaltung 106 nicht auf I2C begrenzt ist. Mit anderen Worten, die Takterzeugungsschaltung 106 garantiert die minimale Breite hoher Taktimpulse, welche Datenübertragungsspezifikation auch immer verwendet wird. Der niedrige resultierende Systemtakt ist der längste niedrige von clk1 und clk2 und der hohe resultierende Systemtakt ist der kürzeste hohe. Normalerweise wird somit der kürzeste hohe gewählt, um die verwendete Spezifikation zu erfüllen. Die Takterzeugungsschaltung 106 kann in einer beliebigen Anwendung mit offenem Drainpol verwendet werden und ist nicht auf I2C begrenzt.
  • Mit Bezug auf 19 umfasst die Takterzeugungsschaltung 106 zwei Inkrementzähler: einen ersten Zähler zum Zählen der hohen System-SCLK-Periode und einen zweiten Zähler zum Zählen der niedrigen System-SCLK-Periode (wenn das Generatortakt-Tastverhältnis anders als 50% sein soll). Der vorskalierte Takt clk_mux_i2c, der bereits durch 4, 8, 16 oder 32 in Abhängigkeit von den Bits [7:6] im SCON-Register geteilt ist, geht zum zweiten Zähler. Wenn das Signal run_hi_cnt auf eine "1" gesetzt ist, dann beginnt der Drei-Bit-Hoch-Zählwert zu inkrementieren, bis die Zahl in den Bits [5:3] im SCON-Register erreicht ist (wenn eq_hi_cnt auf 1 gesetzt ist), oder der System-SCLK schaltet auf einen niedrigen Pegel (ein anderer Master steuert den Takt im I2C-Taktbus an). Wenn SCLK als niedrig erfasst wird, muss der hohe Zählwert zurückgesetzt werden und der Niedrig-Zählwert gestartet werden, um die Synchronisation mit dem System-SCLK beizubehalten.
  • Nach dem SCLK-Übergang von hoch auf niedrig, oder wenn eq_hi_cnt auf eine "1" gesetzt wird (d.h. der Hoch-Zählwert Scon-Register [5:3] erreicht) oder eine Startbedingung gerade durch Elenetari_i2c erzeugt wurde, beginnt der Niedrig-Zählwert das Zählen und das System bringt das CLK-OUT-Signal auf einen niedrigen Pegel und der System-SCLK ist niedrig. Er zählt abwärts, bis er abläuft (d.h. der Zählwert die SCON-Register-Bits [5:3] erreicht und eq_lw_cnt erzeugt wird). Wenn er abgelaufen ist, stoppt das System, in der CLK_OUT-Leitung eine "0" anzusteuern.
  • Wenn das System das Ansteuern einer "0" in der CLK_OUT-Leitung stoppt, können andere potentielle Master im Buszuteilungszyklus immer noch eine "0" in der CLK_OUT-Leitung ansteuern. SCLK kann zu diesem Zeitpunkt immer noch niedrig sein. Sowohl die Hoch- als auch die Niedrig-Zählwert-Zähler sind während dieses Zeitraums im Ruhezustand, bis der System-SCLK einen Übergang von niedrig auf hoch hat. Die zum Erfassen dieses Ereignisses verwendete Schaltung erzeugt, wenn das System gerade aktiv ist, das Signal run_hi_cnt und der Hoch-Zählwert beginnt das Zählen. Der Hoch-Zählwert wird durch das Signal eq_hi_cnt oder durch RESET oder durch die fallende Flanke von SCLK gelöscht.
  • Wenn die SCLK-Signale von einem niedrigen auf einen hohen Pegel schalten, deutet dies darauf hin, dass der SCLK-Takt nicht mehr auf einen niedrigen Pegel gebracht wird. Jeder aktuelle Master zählt dann den Hoch-Zählwert für die Breite der hohen SCLK-Impulse. Der Übergang von SCLK von niedrig auf hoch setzt das Signal run_hi_cnt im Register 114 auf einen hohen Pegel, wenn das Signal I2C_BUSY gesetzt ist. Das Signal run_hi_cnt schaltet mit clk_mux_i2c, um das Register 118 des Hoch-Zählwerts zu inkrementieren. Bei jeder steigenden Flanke von clk_mux_i2c inkrementiert der Zähler um Eins, wenn run_hi_cnt hoch ist, bis er gleich den Bits [5:2] des SCON-Registers ist. Wenn die Bits [5:2] des SCON-Registers gleich sind, ist das D-Eingangssignal des Registers 1 Eins und das Signal eq_hi_cnt schaltet auf Eins. Dieses Signal löscht auch den Hoch-Zählwert auf alle Nullen und löscht das Signal run_hi_cnt auf eine "0".
  • Im Register 114 wird das CLR-Signal nicht nur durch das Signal eq_hi_cnt beeinflusst, es wird auch durch die fallende Flanke von SCLK beeinflusst. Wenn der Hoch-Zählwert des Systems die Bits [5:3] des SCON-Registers nicht erreicht, startet der äußere Master, in SCLK auf niedrig zu steuern, und das System löscht den Hoch-Zählwert, um mit dem System-SCLK zu synchronisieren. Deshalb wird das Signal clr_run_hi auch durch die fallende Flanke von SCLK erzeugt.
  • Die zwei Register DFFC 120 und 122 und die gezeigte kombinatorische Logik erzeugen das Löschsignal clr_run_lw, um das Signal run_lw_cnt zu löschen und den Niedrig-Zählwert zu stoppen.
  • Wenn das Signal eq_lw_cnt auf eine "1" gesetzt wird, setzt die steigende Flanke das Signal set_lw auf eine "1" und das UND-Gatter 130 setzt das Signal clr_run_lw auf eine "1", was bewirkt, dass das Signal run_lw_cnt, das vom Register 116 erzeugt wird, auf eine "0" löscht. Das Niedrig-Zählwert-Taktsignal clk_mux_i2c, das ein vorskalierter Takt von der Teilungskette UND mit dem Signal run_lw_cnt ist, wird vom Takt gesperrt, um den laufenden Niedrig-Zählwert vom Zählen zu stoppen. Der Niedrig-Zählwert 124 wird auch durch das Signal eq_lw_cnt gelöscht.
  • Das Signal eq_lw_cnt wird vom Register 126 erzeugt. Bei der steigenden Flanke des Signals clk_mux_i2c wird, wenn das Signal run_lw_cnt hoch ist, der Niedrig-Zählwert 124 um Eins inkrementiert. Wenn das Ausgangssignal des Zählwerts (count_lw[2:0]) gleich den Bits [5:3] des SCON-Registers ist, ist das D-Eingangssignal in das Register 126 eine "1". An der steigenden Flanke des Signals clk_mux_i2c ist das Signal eq_lw_cntl auch eine "1". Bei der nächsten steigenden Flanke des Signals clk_mux_i2c wird, da der Niedrig-Zählwert gelöscht wurde, das D-Eingangssignal in das Register 126 auch gelöscht, um das Signal eq_lw_cnt zu löschen.
  • Der Endausgangstakt CLK_OUT wird auch durch andere Umstände beeinflusst. Wenn das Signal I2C_BUSY nicht gesetzt ist, was darauf hindeutet, dass das System nicht für den nächsten Übergang bereit ist, bleibt der Ausgangstakt CLK_OUT auch niedrig. Angesichts der Signale run_lw_cnt und I2C_BUSY bringt das System das Ausgangssignal CLK_OUT für das System auf einen niedrigen Pegel. Da der Systemtakt ein offener Drainpol ist, der mit einem Pull-up-Widerstand verbunden ist, ist er auf hoch vorgegeben, wenn er nicht auf niedrig gebracht wird.
  • Wieder mit Bezug auf 15 sind zwei Zustandsmaschinen in dem Entwurf vorhanden. Eine ist die Betriebsart-Zustandsmaschine, die als "one_hot" codiert ist. Wenn sich die Betriebsart-Zustandsmaschine im T_IDLE-Zustand befindet, bleibt die Zustandsmaschine auch in der Ruhebetriebsart. Wenn die Betriebsart-Zustandsmaschine in irgendeinen Zustand wechselt, ruft sie diese Zustandsmaschine dazu auf, zu T_clk_1 zu gehen. Jedes SCLK_I2C geht in einen anderen Zustand, abgesehen von clk_1, wenn sie sich in der Wiederholungsstartbedingung (Sr) befindet. Wenn dies geschieht, bleibt clk_1 für einen weiteren Takt.
  • Bei der ersten Datenbyteübertragung geben die dem 8. Takt zugeordneten Daten an, ob der nächsten Zyklus ein Lese- oder Schreibtyp ist. Der 9. Takt ist ein Bestätigungstakt und der Empfänger muss die Daten zur Bestätigung auf niedrig setzen. cLk8_9 wird durch Abtasten von clk_8 an der fallenden Flanke von SCLK_I2C erzeugt. Das Senden verwendet diesen Impuls, um den Datenbus freizugeben, und der Slave verwendet ihn, um die Datenleitung auf niedrig zu setzen. Der Takt legt los, wenn er sich in der Masterbetriebsart befindet und AR = 0 gilt. Der Takt bleibt in der Masterbetriebsart niedrig, aber I2C BUSY ist niedrig. In der Slavebetriebsart dehnt er den Takt auf niedrig, wenn I2C_BUSY niedrig ist.
  • Das Register für eigene Adresse ist ein Schreib/Lese-Register mit einer E/A-Zuordnungsadresse von 0056h. Die Bitzuweisungen sind folgendermaßen. Das Bit 7 ist reserviert. Die Bits 6–0 werden mit der 7-Bit-Access.bus-Adresse geladen. Wenn es als Slave adressiert wird, werden die ersten übertragenen 7 Bits mit diesem Register verglichen, um festzustellen, ob diese Vorrichtung aufgerufen wird.
  • Das Modul, das das Datenschieberegister und das Register für eigene Adresse erzeugt, erzeugt auch die START-, STOP- und Sr-Bedingungen und sieht eine Datenvorbereitungs-Haltezeitsteuerung vor. Mit Bezug auf 22 benötigt die Startbedingung gewöhnlich eine minimale Haltezeit von 4 us. Die Hälfte des Signals SCLK_I2C_CON (Fortsetzung des laufenden Takts mit der maximalen Frequenz = 100k) ist 5 us. Dieser Takt wird als Referenz verwendet, um eine minimale Haltezeit zu garantieren. Bei der steigenden Flanke tastet er MASTRQ ab. Wenn MASTRQ hoch ist, wird die Datenleitung nach der negativen Flanke für einen halben Taktzyklus auf niedrig gesetzt und dann freigegeben. Der Takt setzt danach auf niedrig und beginnt, die Takterzeugung zu synchronisieren.
  • Mit Bezug auf 23 erfordert die Datenhaltezeitsteuerung 300 ns. Eine Periode, dividiert durch 8 Taktzyklen (t = 8/25 MHz = 320 ns), liefert 320 ns. Bei der steigenden Flanke 84 tastet er den seriellen I2C-Takt SCLK_I2C ab. Bei einer zweiten steigenden Flanke 86 öffnet er, wenn er niedrig abtastet, den Ausgangszwischenspeicher und lässt SMB aus. Für Daten wird ein Halten von 320–640 ns auf diese Weise garantiert.
  • Vor dem Erzeugen einer STOP-Bedingung sollten die Daten zuerst auf niedrig gesetzt, dann auf hoch freigegeben werden, wenn SCLK_I2C hoch ist. Bei der 9. negativen Flanke von SCLK_I2C, werden die Daten, wenn STOP_W hoch ist oder NO_akc hoch ist, auf niedrig gesetzt und niedrig gehalten, bis eine minimale Haltezeit von 4,7 us erfüllt ist, nachdem der Takt auf einen hohen Pegel schaltet. Die Daten werden bei clk8_9 auf niedrig gesetzt, wenn in der MR/SR-Betriebsart befindlich und kein Fehler erfasst wird, um die Bestätigung auszusenden. Die Daten treiben durch das Schieberegister-MSB, wenn in der MT/ST-Betriebsart befindlich, von clk_1 bis clk_8.
  • Mit Bezug auf 24 besteht das obere Modul wire3_top 88 aus den folgenden drei Modulen: wire3_scon 90, wire3_uwire 92 und wire3_i2e_all 94. Das Modul wire3_i2c_all 94 besteht aus allen I2C-Modulen, nämlich wire3_i2c_sm 96, wire3_i2ccon_reg 98, wire3_i2csda_reg 100 und wire3_i2cstt_reg 102.
  • Die hierin beschriebene Erfindung kann als slave1, slave2 und mast1 simuliert werden. Der IC-Chip 32 ist mit dem BIU-Busmodul 40 und der CPU 34 verbunden. Slave1, Slave2 und Master können durch eine Verilog-Aufgabe programmiert werden. Wenn der IC-Chip 32 als Master simuliert wird, kann der Slave auf diese Weise antworten. Während eines scon_test kann der folgenden Prozedur gefolgt werden. Zuerst werden alle Lese/Schreib-Freigabesignale erzeugt. Das scon-Register und der Zeitüberwachungsfunktionstest werden programmiert. Die Taktteilungslogik wird geprüft und die Teilungskombinationen werden geprüft. während des i2c_SSr_MST-Tests werden die MT-, MR-Betriebsarten geprüft. Start, STOP und Sr werden für den IC-Chip 32 erzeugt. MT, Buszuteilungsverlust, SR, ST für mast1 werden geprüft und SR, ST für slave1 für den IC-Chip 32 werden geprüft.
  • Sowohl der IC-Chip 32 als auch mast1 geben zusammen START aus. Sowohl Aussenden von "B4" als auch Aufrufen von slave2(5a) => MT. Slave2 antwortet durch Zurücksenden einer Bestätigung und der Slave geht in den Ruhezustand. Der IC-Chip 32 sendet "79" aus, setzt STOP_W, und mast1 sendet "7A" und verliert die Buszuteilung beim 7. Bit und geht dann in den Ruhezustand => MT. STOP wird nach dem 9. Takt erzeugt. Start wird wieder erzeugt und Aussenden von "78", Aufrufen von mast1(3C) => MT. Mast1 antwortet mit Bestätigung zurück.
  • Wie vorstehend erörtert, weist die serielle Schnittstelle 30 nur drei Signalstifte auf. Der SCLK-(oder SCL-)Stift ist der Taktstift. In der MICROWIRE-Betriebsart ist dieser Stift als Eingang in der Slavebetriebsart und als Ausgang in der Masterbetriebsart konfiguriert. Im Access.bus ist er bidirektional. Der SO-(oder SDA-)Stift ist der Datenausgangs-DO-Stift. Er ist als Ausgang in der MICROWIRE-Betriebsart und als bidirektionaler Anschlussstift in der Access.bus-Betriebsart konfiguriert. Der SI-Stift ist der Dateneingangs-DI-Stift. Er ist ein Eingang in der MICROWIRE-Betriebsart und wird in der Access.bus-Betriebsart nicht verwendet.
  • Mit Bezug auf die Programmierung der seriellen Schnittstelle 30 kann dann, wenn der Wiederholungsstart (Sr) programmiert wird und wenn der aktuelle Busmaster weiterhin den Access.bus verwenden will, um mit einem anderen Slave ohne mögliche Buszuteilung zu sprechen, Sr verwendet werden. Insbesondere a) nachdem die aktuelle Übertragung beendet ist (BUSY = 0, ABINT = 1), Setzen von MASTRQ = 1 für Startwiederholung; b) Setzen von BUSY, Löschen von ABINT; und c) Programmieren von SDA (Datenregister).
  • Während einer Access.bus-Übertragung wird in das SDA-Register normalerweise nicht geschrieben, da die übertragenen Daten verfälscht werden. Die SCON-(Systemregister) Taktteilungskette wird normalerweise zwischen Byteübertragungen nicht umprogrammiert. Das SDA-Register wird normalerweise programmiert, nachdem MICROWIRE aktiviert wird. Wenn sich der IC-Chip 32 in der MICROWIRE-Slavebetriebsart befindet, muss BUSY früh gesetzt werden, um zu warten, bis der Master eine Übertragung beginnt. Der interne Takt (von der Teilungskette) muss schneller (durch das SCON-Register) programmiert werden, um BUSY zu synchronisieren. STOP_W wird gewöhnlich gesetzt, bevor die letzte Übertragung endet. STOP_W kann gesetzt werden, bevor die letzte Byteübertragung beginnt.
  • Die 2529 sind Ablaufdiagramme, die den Betrieb der seriellen Schnittstelle 30 darstellen.

Claims (6)

  1. Serielle Schnittstelle mit einem ersten Anschluss, der in der Lage ist, Daten auf serielle Weise zu senden und zu empfangen; einer mit dem ersten Anschluss gekoppelten ersten Datenübertragungsstufe (52) zum Konfigurieren des ersten Anschlusses, damit er entweder in einer ersten seriellen Datenübertragungs-Betriebsart oder einer zweiten seriellen Datenübertragungs-Betriebsart arbeitet; einem zweiten Anschluss, der in der Lage ist, ein Taktsignal zu senden und zu empfangen, welches zum Steuern der Datenübertragung über den ersten Anschluss verwendet wird; einer mit dem zweiten Anschluss gekoppelten Taktübertragungsstufe (50) zum Konfigurieren des zweiten Anschlusses, damit er entweder in der ersten seriellen Datenübertragungs-Betriebsart oder der zweiten seriellen Datenübertragungs-Betriebsart arbeitet; einem dritten Anschluss zum Durchführen einer seriellen Datenübertragung; und einer mit dem dritten Anschluss gekoppelten zweiten Datenübertragungsstufe (54) zum Ermöglichen, dass der dritte Anschluss in der zweiten seriellen Datenübertragungs-Betriebsart arbeitet.
  2. Serielle Schnittstelle nach Anspruch 1, wobei die erste Datenübertragungsstufe (52) eine bidirektionale Stufe ist, der erste Anschluss in der ersten seriellen Datenübertragungs-Betriebsart serielle Daten sowohl empfangen als auch senden kann, in der zweiten seriellen Datenübertragungs-Betriebsart der erste Anschluss serielle Daten empfangen kann, die zweite Datenübertragungsstufe (54) eine Ausgabe-Datenübertragungsstufe ist und der dritte Anschluss serielle Daten in der zweiten seriellen Datenübertragungs-Betriebsart ausgibt.
  3. Serielle Schnittstelle nach Anspruch 1 oder 2, wobei die erste Stufe (52) einen ersten p-Kanal-Transistor (74), der mit dem ersten Anschluss gekoppelt ist; einen ersten n-Kanal-Transistor (76), der mit dem ersten Anschluss gekoppelt ist; und eine mit dem ersten p-Kanal-Transistor gekoppelte erste Steuerschaltung (70, 72) zum Sperren des ersten p-Kanal-Transistors, wenn der erste Anschluss dazu konfiguriert ist, in der ersten seriellen Datenübertragungs-Betriebsart zu arbeiten, so dass der erste n-Kanal-Transistor auf eine Weise mit offenem Drainpol arbeitet, umfasst.
  4. Serielle Schnittstelle nach Anspruch 3, wobei die erste Steuerschaltung (70, 72) den ersten p-Kanal-Transistor (74) aktiviert, wenn der erste Anschluss dazu konfiguriert ist, in der zweiten seriellen Datenübertragungs-Betriebsart zu arbeiten, so dass der erste p-Kanal-Transistor (74) und der erste n-Kanal-Transistor (76) auf eine Totem-pole-Weise arbeiten.
  5. Serielle Schnittstelle nach Anspruch 3 oder 4, wobei die zweite Stufe einen zweiten p-Kanal-Transistor (62), der mit dem zweiten Anschluss gekoppelt ist; einen zweiten n-Kanal-Transistor (64), der mit dem zweiten Anschluss gekoppelt ist; und eine mit dem zweiten p-Kanal-Transistor gekoppelte zweite Steuerschaltung (58, 60) zum Sperren des zweiten p-Kanal-Transistors (62), wenn der zweite Anschluss dazu konfiguriert ist, in der ersten seriellen Datenübertragungs-Betriebsart zu arbeiten, so dass der zweite n-Kanal-Transistor (64) auf eine Weise mit offenem Drainpol arbeitet, umfasst.
  6. Serielle Schnittstelle nach Anspruch 5, wobei die zweite Steuerschaltung (58, 60) den zweiten p-Kanal-Transistor (62) aktiviert, wenn der zweite Anschluss dazu konfiguriert ist, in der zweiten seriellen Datenübertragungs-Betriebsart zu arbeiten, so dass der zweite p-Kanal-Transistor (62) und der zweite n-Kanal-Transistor (64) auf eine Totem-pole-Weise arbeiten.
DE69634529T 1995-05-26 1996-05-24 Serielle schnittstelle die, in zwei unterschiedlichen modi, serielle daten zu übertragen imstande ist Expired - Lifetime DE69634529T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/451,965 US5696994A (en) 1995-05-26 1995-05-26 Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
US451965 1995-05-26
PCT/US1996/008281 WO1996037851A1 (en) 1995-05-26 1996-05-24 Serial interface capable of operating in two different serial data transfer modes

Publications (2)

Publication Number Publication Date
DE69634529D1 DE69634529D1 (de) 2005-05-04
DE69634529T2 true DE69634529T2 (de) 2006-03-23

Family

ID=23794447

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69634529T Expired - Lifetime DE69634529T2 (de) 1995-05-26 1996-05-24 Serielle schnittstelle die, in zwei unterschiedlichen modi, serielle daten zu übertragen imstande ist

Country Status (5)

Country Link
US (1) US5696994A (de)
EP (1) EP0772833B1 (de)
KR (1) KR100387980B1 (de)
DE (1) DE69634529T2 (de)
WO (1) WO1996037851A1 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3134819B2 (ja) * 1997-06-04 2001-02-13 ソニー株式会社 データ処理装置
KR0184136B1 (ko) * 1996-06-03 1999-05-15 구자홍 범용 마이컴을 이용한 아이 스퀘어 씨 통신 장치
US5878234A (en) * 1996-09-10 1999-03-02 Sierra Wireless, Inc. Low power serial protocol translator for use in multi-circuit board electronic systems
US5925135A (en) * 1996-09-26 1999-07-20 Intel Corporation Clock rate compensation for a low frequency slave device
US6412023B1 (en) 1998-05-21 2002-06-25 Sony Corporation System for communicating status via first signal line in a period of time in which control signal via second line is not transmitted
US6167480A (en) * 1997-06-25 2000-12-26 Advanced Micro Devices, Inc. Information packet reception indicator for reducing the utilization of a host system processor unit
US6002882A (en) * 1997-11-03 1999-12-14 Analog Devices, Inc. Bidirectional communication port for digital signal processor
US6577157B1 (en) * 1997-11-14 2003-06-10 Altera Corporation Fully programmable I/O pin with memory
US6340898B1 (en) * 1997-12-18 2002-01-22 Advanced Micro Devices, Inc. Method and system for switching between a totem-pole drive mode and an open-drain drive mode
US6754209B1 (en) * 1998-08-28 2004-06-22 Intel Corporation Method and apparatus for transmitting and receiving network protocol compliant signal packets over a platform bus
US6339806B1 (en) * 1999-03-23 2002-01-15 International Business Machines Corporation Primary bus to secondary bus multiplexing for I2C and other serial buses
US6940868B1 (en) 1999-04-20 2005-09-06 Abb Inc. Digital serial communications hub
US6597197B1 (en) * 1999-08-27 2003-07-22 Intel Corporation I2C repeater with voltage translation
US6799233B1 (en) * 2001-06-29 2004-09-28 Koninklijke Philips Electronics N.V. Generalized I2C slave transmitter/receiver state machine
US20030053573A1 (en) * 2001-09-20 2003-03-20 John Bree Microcontroller having a transmission-bus-interface
US7391788B2 (en) * 2002-11-01 2008-06-24 Broadcom Corporation Method and system for a three conductor transceiver bus
WO2005083577A2 (en) * 2004-02-18 2005-09-09 Koninklijke Philips Electronics N. V. Integrated circuit with two different bus control units
CN100459612C (zh) * 2004-12-31 2009-02-04 北京中星微电子有限公司 一种通讯传输控制装置及实现通讯协议控制的方法
KR100833179B1 (ko) * 2006-02-15 2008-05-28 삼성전자주식회사 클러스터드 전압 스케일링을 위한 레벨 컨버팅 플립플롭 및펄스 발생기
US7868660B2 (en) * 2006-04-20 2011-01-11 Atmel Corporation Serial communications bus with active pullup
US8291143B1 (en) * 2009-02-11 2012-10-16 Brocade Communication Systems, Inc. Single line communication
JP5447227B2 (ja) * 2010-06-29 2014-03-19 セイコーエプソン株式会社 回路装置及びシステム
FR2969451B1 (fr) * 2010-12-17 2013-01-11 St Microelectronics Rousset Procede et dispositif de communication entre un maitre et plusieurs esclaves suivant un protocole de communication serie, en particulier du type a drain ouvert
JP5723435B2 (ja) * 2013-09-24 2015-05-27 エフシーアイ インク マルチ―チップシステム及びそのレジスタ設定方法
US10783250B2 (en) 2014-07-24 2020-09-22 Nuvoton Technology Corporation Secured master-mediated transactions between slave devices using bus monitoring
US10691807B2 (en) 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US10095891B2 (en) 2015-06-08 2018-10-09 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
JP7031961B2 (ja) 2017-08-04 2022-03-08 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
JP6953226B2 (ja) * 2017-08-04 2021-10-27 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラム、および、通信システム
KR102450296B1 (ko) * 2017-12-26 2022-10-04 삼성전자주식회사 동기식 및 비동기식 혼합 방식의 디지털 인터페이스를 포함하는 장치, 이를 포함하는 디지털 처리 시스템, 및 이들에 의해 수행되는 디지털 처리 방법
US11436315B2 (en) 2019-08-15 2022-09-06 Nuvoton Technology Corporation Forced self authentication
US11520940B2 (en) 2020-06-21 2022-12-06 Nuvoton Technology Corporation Secured communication by monitoring bus transactions using selectively delayed clock signal

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3952253A (en) * 1974-11-21 1976-04-20 The United States Of America As Represented By The United States Energy Research And Development Administration Method and means for generating a synchronizing pulse from a repetitive wave of varying frequency
DE2608265C2 (de) * 1976-02-28 1978-04-27 Deutsche Itt Industries Gmbh, 7800 Freiburg Mehrphasen-MOS-Schaltung zur Impulsdaueränderung
JPS6025929B2 (ja) * 1978-01-25 1985-06-21 ソニー株式会社 Pwm変調回路
US4330751A (en) * 1979-12-03 1982-05-18 Norlin Industries, Inc. Programmable frequency and duty cycle tone signal generator
US4490631A (en) * 1982-08-30 1984-12-25 National Semiconductor Corporation Totem pole/open collector selectable output circuit
JPH0761004B2 (ja) * 1987-10-31 1995-06-28 富士電機株式会社 クロック発生回路
US4870665A (en) * 1988-08-04 1989-09-26 Gte Government Systems Corporation Digital pulse generator having a programmable pulse width and a pulse repetition interval
US5204953A (en) * 1989-08-04 1993-04-20 Intel Corporation One clock address pipelining in segmentation unit
FR2654278B1 (fr) * 1989-11-08 1992-01-10 Alcatel Business Systems Etage de sortie sur un lien serie synchrone, en particulier pour carte d'interface numerique equipant un central telephonique, et central telephonique equipe de telles cartes d'interface.
JPH03213010A (ja) * 1990-01-18 1991-09-18 Sharp Corp クロック発生器
US5259006A (en) * 1990-04-18 1993-11-02 Quickturn Systems, Incorporated Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like
US5065042A (en) * 1990-08-01 1991-11-12 Vlsi Technology, Inc. Self-configuring clock interface circuit
US5189319A (en) * 1991-10-10 1993-02-23 Intel Corporation Power reducing buffer/latch circuit
US5254888A (en) * 1992-03-27 1993-10-19 Picopower Technology Inc. Switchable clock circuit for microprocessors to thereby save power
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor

Also Published As

Publication number Publication date
EP0772833A1 (de) 1997-05-14
EP0772833B1 (de) 2005-03-30
KR100387980B1 (ko) 2004-03-30
WO1996037851A1 (en) 1996-11-28
DE69634529D1 (de) 2005-05-04
US5696994A (en) 1997-12-09
KR970705089A (ko) 1997-09-06

Similar Documents

Publication Publication Date Title
DE69634529T2 (de) Serielle schnittstelle die, in zwei unterschiedlichen modi, serielle daten zu übertragen imstande ist
DE60219790T2 (de) Generalisierter i2c-slave sender-/empfängerautomat
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE3204905C2 (de)
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE4204148A1 (de) Schaltungsanordnung fuer eine schnittstelle zum anschluss eines computers an ein peripheriegeraet
DE102013113262B4 (de) Auslöser-Leitwegeinheit
DE112011103225B4 (de) Schaltkreisvorrichtung, System und Verfahren mit Drosseln einer integrierten Verbindung
DE60106929T2 (de) Methode und vorrichtung zur ankopplung von single master geräten an eine multimaster wired-and busumgebung
DE4125219A1 (de) Hochgeschwindigkeits-bussystem und verfahren zum betreiben desselben
DE4214303A1 (de) Kommunikationssystem
DE60120935T2 (de) Kommunikationsschnittstellesystem, verfahren und vorrichtung
DE60028992T2 (de) Leistungssteuerungsverfahren für ein rechnersystem mit einer knotenpunktarchitektur
DE69432693T2 (de) Schnitstelle zwischen unsynchronisierten Geräten
DE112008001143T5 (de) Serialisierung von Daten in einer Multi-Chip-Busimplementierung
DE60203019T2 (de) Datensynchronisation auf einem peripheriebus
DE10056152B4 (de) Verfahren zur Durchführung von Busarbitration zwischen Steuerchips eines Chipsatzes mit preemptiver Fähigkeit
US6912609B2 (en) Four-phase handshake arbitration
DE19952747B4 (de) Rechnerchipanordnung für eine Rechnerhauptplatine und Verfahren zu deren Verwendung
DE10308159B4 (de) Kommunikationsgerät mit Verwendung von Drei-Stufen-Kommunikationspuffern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 772833

Country of ref document: EP

Representative=s name: ,