MICROCHIP-Logo

MICROCHIP Core16550 Universeller asynchroner Empfänger-Sender

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter-Produkt

Einführung

Core16550 ist ein standardmäßiger Universal Asynchronous Receiver-Transmitter (UART), der Softwarekompatibilität mit dem weit verbreiteten Gerät 16550 gewährleistet. Er übernimmt die Seriell-Parallel-Datenkonvertierung für Eingaben von Modems oder anderen seriellen Geräten und führt eine Parallel-Seriell-Konvertierung für Daten durch, die von der CPU an diese Geräte gesendet werden.
Während der Übertragung werden die Daten parallel in den FIFO-Puffer (First-In, First-Out) des UART geschrieben. Anschließend werden die Daten für die Ausgabe serialisiert. Beim Empfang konvertiert der UART eingehende serielle Daten in parallele Daten und ermöglicht so dem Prozessor einen einfachen Zugriff.
Eine typische Anwendung des 16550 UART ist in der folgenden Abbildung dargestellt.

Abbildung 1. Typische 16550-Anwendung

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (2)Tabelle 1. Core16550-Zusammenfassung

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (3)

Hauptmerkmale
Im Folgenden sind die Hauptmerkmale von Core16550 aufgeführt:

  • Sender und Empfänger werden jeweils mit bis zu 16-Byte-FIFOs gepuffert, um die Anzahl der der CPU präsentierten Interrupts zu reduzieren.
  • Fügt standardmäßige asynchrone Kommunikationsbits (Start, Stopp und Parität) hinzu oder entfernt sie.
  • Unabhängig gesteuerte Sende-, Empfangs-, Leitungsstatus- und Datensatz-Interrupts
  • Programmierbarer Baudgenerator
  • Modem-Steuerfunktionen (CTSn, RTSn, DSRn, DTRn, RIn und DCDn).
  • Advanced Peripheral Bus (APB)-Registerschnittstelle

Eingestellte Funktionen
Die Unterstützung für Very High Speed ​​Integrated Circuit (VHSIC) Hardware Description Language (VHDL) wird ab dieser Version eingestellt.
Core16550 Änderungsprotokollinformationen
Dieser Abschnitt bietet eine umfassende Übersichtview der neu integrierten Funktionen, beginnend mit der aktuellsten Version.

Version Was ist neu
Core16550 v3.4 Core16550 verwendet das System-Verilog-Schlüsselwort „break“ als Registernamen, was zu Syntaxfehlern führte. Um dieses Problem zu beheben, wurde das Schlüsselwort durch einen anderen Namen ersetzt.

Unterstützung für die PolarFire®-Familie hinzugefügt

Core16550 v3.3 Unterstützung für strahlungstolerante FPGA-Familie (RTG4™) hinzugefügt
  1. Funktionsblockbeschreibung (Stellen Sie eine Frage)
    Dieser Abschnitt enthält eine kurze Beschreibung für jedes Element des internen Blockdiagramms, wie in der folgenden Abbildung dargestellt.
    Abbildung 1-1. Blockdiagramm des Core16550
    MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (4)

Elemente des internen Blockdiagramms (Stellen Sie eine Frage)
Der folgende Abschnitt enthält Informationen zu Elementen des internen Blockdiagramms.

  1. RWControl (Stellen Sie eine Frage)
    Der RWControl-Block ist für die Kommunikation mit der (parallelen) Prozessorseite des Systems zuständig. Das gesamte Schreiben und Lesen interner Register erfolgt über diesen Block.
  2. UART_Reg (Stellen Sie eine Frage)
    Der UART_Reg-Block enthält alle internen Register des Geräts.
  3. RXBlock (Stellen Sie eine Frage)
    Dies ist der Empfängerblock. RXBlock empfängt das eingehende serielle Wort. Er ist programmierbar und erkennt Datenbreiten wie 5, 6, 7 oder 8 Bit, verschiedene Paritätseinstellungen wie gerade, ungerade oder keine Parität sowie verschiedene Stoppbits wie 1, 1 und 2 Bit. RXBlock prüft den Eingangsdatenstrom auf Fehler wie Überlauffehler, Frame-Fehler, Paritätsfehler und Unterbrechungsfehler. Ist das eingehende Wort einwandfrei, wird es im Empfänger-FIFO abgelegt.
  4. Interrupt-Steuerung (Stellen Sie eine Frage)
    Der Interrupt-Steuerblock sendet abhängig vom Zustand des FIFOs und den empfangenen und gesendeten Daten ein Interruptsignal an den Prozessor zurück. Das Interrupt-Identifikationsregister gibt den Status des Interrupts an. Interrupts werden bei leeren Sende-/Empfangspuffern (oder FIFOs), einem Fehler beim Zeichenempfang oder anderen Bedingungen gesendet, die die Aufmerksamkeit des Prozessors erfordern.
  5. Baudratengenerator (Stellen Sie eine Frage)
    Dieser Block nimmt den Eingang PCLK und dividiert ihn durch einen programmierten Wert (von 1 bis 216 – 1). Das Ergebnis wird durch 16 geteilt, um den Übertragungstakt (BAUDOUT) zu erstellen.
  6. TXBlock (Stellen Sie eine Frage)
    Der Sendeblock übernimmt die Übertragung der in den Sende-FIFO geschriebenen Daten. Er fügt den übertragenen Daten die erforderlichen Start-, Paritäts- und Stoppbits hinzu, damit das empfangende Gerät die Fehlerbehandlung und den Empfang ordnungsgemäß durchführen kann.

Softwareschnittstelle (Stellen Sie eine Frage)
In diesem Abschnitt werden die Registerdefinitionen und Adresszuordnungen des Core16550 beschrieben. Die folgende Tabelle zeigt die Registerübersicht des Core16550.

PADDR[4:0]

(Adresse)

Divisor-Verriegelungs-Zugriffsbit1

(DLAB)

Name Symbol Standardwert (zurückgesetzt) Anzahl der Bits Lesen/Schreiben
00 0 Empfängerpufferregister RBR XX 8 R
00 0 Senderhalteregister THR XX 8 W
00 1 Teiler-Latch (LSB) DLR 01 Uhr 8 R/W
04 1 Teilerverriegelung (MSB) DMR 00 Uhr 8 R/W
04 0 Interrupt-Aktivierungsregister IER 00 Uhr 8 R/W
08 X Interrupt-Identifikationsregister IIR C1h 8 R
08 X FIFO-Steuerregister FCR 01 Uhr 8 W
0C X Leitungssteuerungsregister LCR 00 Uhr 8 R/W
10 X Modem-Steuerregister MCR 00 Uhr 8 R/W
14 X Leitungsstatusregister LSR 60 Uhr 8 R
18 X Modem-Statusregister MSR 00 Uhr 8 R
1C X Scratch-Register SR 00 Uhr 8 R/W

Wichtig

DLAB ist das MSB des Line Control Registers (LCR-Bit 7).

Empfängerpufferregister (Stellen Sie eine Frage)
Das Empfängerpufferregister ist in der folgenden Tabelle definiert.
Tabelle 1-2. Empfängerpufferregister (Nur Lesen) – Adresse 0 DLAB 0

Gebisse Name Standardzustand Gültige Zustände Funktion
7..0 RBR XX 0..FFh Empfangene Datenbits. Bit 0 ist das LSB und das erste empfangene Bit.

Sender-Halteregister (Stellen Sie eine Frage)
Das Transmitter Holding Register ist in der folgenden Tabelle definiert.
Tabelle 1-3. Senderhalteregister – Nur Schreiben

Gebisse Name Standardzustand Gültige Zustände Funktion
7..0 THR XX 0..FFh Zum Übertragen von Datenbits. Bit 0 ist das LSB und wird zuerst übertragen.

FIFO-Steuerregister (Stellen Sie eine Frage)
Das FIFO-Steuerregister ist in der folgenden Tabelle definiert.

Bits (7:0) Standardzustand Gültige Zustände Funktion
0 1 0, 1 Aktiviert sowohl die Transceiver- (Tx) als auch die Empfänger- (Rx) FIFOs. Dieses Bit muss auf 1 gesetzt sein, wenn in andere FCR-Bits geschrieben wird, sonst werden sie nicht programmiert.

0: Deaktiviert

1: Aktiviert

1 0 0, 1 Löscht alle Bytes im Rx-FIFO und setzt dessen Zählerlogik zurück. Das Schieberegister wird nicht gelöscht.

0: Deaktiviert

1: Aktiviert

2 0 0, 1 Löscht alle Bytes im Tx-FIFO und setzt dessen Zählerlogik zurück. Das Schieberegister wird nicht gelöscht.

0: Deaktiviert

1: Aktiviert

3 0 0, 1 0: Einzelübertragung DMA: Übertragung erfolgt zwischen CPU-Buszyklen

1: Mehrfachübertragungs-DMA: Übertragungen werden durchgeführt, bis der Rx-FIFO leer oder der Transmit-FIFO (XMIT) des Übertragungsnetzbetreibers (TSO) gefüllt ist. FCR[0] muss auf 1 gesetzt werden, um FCR[3] auf 1 zu setzen.

4, 5 0 0, 1 Für zukünftige Verwendung reserviert.
6, 7 0 0, 1 Diese Bits werden verwendet, um den Triggerpegel für den Rx-FIFO-Interrupt festzulegen. 7 6 Rx-FIFO-Triggerpegel (Bytes)

0 0 01

0 1 04

1 0 08

1 1 14

Die Divisor-Kontrollregister (Stellen Sie eine Frage)
Der Baudratentakt (BR) wird durch Division des Eingangsreferenztakts (PCLK) durch 16 und den Divisorwert generiert.

Die folgende Tabelle listet ein Beispiel aufampAnzahl der Teilerwerte für den gewünschten BR bei Verwendung eines Referenztakts von 18.432 MHz.
Tabelle 1-5. Divisor-Latch (LS und MS)

Gebisse Name Standardzustand Gültige Zustände Funktion
7..0 DLR 01 Uhr 01..FFh Das LSB des Divisorwerts
7..0 DMR 00 Uhr 00..FFh Das MSB des Divisorwerts

Tabelle 1-6. Baudraten und Teilerwerte für 18.432 MHz Referenztakt

Baudrate Dezimaldivisor (Divisorwert) Prozentfehler
50 23040 0.0000 %
75 15360 0.0000 %
110 10473 –0.2865 %
134.5 8565 0.0876 %
150 7680 0.0000 %
300 3840 0.0000 %
600 1920 0.0000 %
1,200 920 4.3478 %
1,800 640 0.0000 %
Baudrate Dezimaldivisor (Divisorwert) Prozentfehler
2,000 576 0.0000 %
2,400 480 0.0000 %
3,600 320 0.0000 %
4,800 240 0.0000 %
7,200 160 0.0000 %
9,600 120 0.0000 %
19,200 60 0.0000 %
38,400 30 0.0000 %
56,000 21 –2.0408 %

Interrupt Enable Register (Stellen Sie eine Frage)
Das Interrupt Enable-Register ist in der folgenden Tabelle definiert.
Tabelle 1-7. Interrupt-Freigaberegister

Gebisse Name Standardzustand Gültiger Status Funktion
0 ERBFI 0 0, 1 Aktiviert „Received Data Available Interrupt“ 0: Deaktiviert

1: Aktiviert

1 ETBEI 0 0, 1 Aktiviert den „Transmitter Holding Register Empty Interrupt“ 0: Deaktiviert

1: Aktiviert

2 ELSI 0 0, 1 Aktiviert den „Receiver Line Status Interrupt“ 0: Deaktiviert

1: Aktiviert

3 EDSSI 0 0, 1 Aktiviert den „Modem Status Interrupt“ 0: Deaktiviert

1: Aktiviert

7..4 Reserviert 0 0 Immer 0

Interrupt-Identifikationsregister (Stellen Sie eine Frage)
Das Interrupt-Identifikationsregister ist in der folgenden Tabelle aufgeführt. Tabelle 1-8. Interrupt-Identifikationsregister

Gebisse Name Standardzustand Gültige Zustände Funktion
3..0 IIR 1h 0..Ch Interrupt-Identifikationsbits.
5..4 Reserviert 00 00 Immer 00
7..6 Modus 11 11 11: FIFO-Modus

Das Feld „Interrupt Identification“-Register ist in der folgenden Tabelle definiert.

Tabelle 1-9. Feld des Interrupt-Identifikationsregisters (IIR)

IIR-Wert[3:0)] Prioritätsstufe Interrupt-Typ Interruptquelle Interrupt-Reset-Steuerung
0110 Höchste Empfängerleitungsstatus Überlauffehler, Paritätsfehler, Rahmenfehler oder Unterbrechungsunterbrechung Lesen des Leitungsstatusregisters
0100 Zweite Empfangene Daten verfügbar Empfängerdaten verfügbar Das Lesen des Empfängerpufferregisters oder des FIFO fällt unter den Triggerpegel
Tisch 1-9. Interrupt Identification Register Field (IIR) (Fortsetzung)
IIR-Wert[3:0)] Prioritätsstufe Interrupt-Typ Interruptquelle Interrupt-Reset-Steuerung
1100 Zweite Zeichen-Timeout-Anzeige Während der letzten vier Zeichenzeiten wurden keine Zeichen aus dem Rx-FIFO gelesen und es befand sich während dieser Zeit mindestens ein Zeichen darin. Lesen des Empfängerpufferregisters
0010 Dritte Senderhalteregister leer Senderhalteregister leer Lesen des IIR oder Schreiben in das Transmitter Holding Register
0000 Vierte Modemstatus Sendebereit, Datensatz bereit, Klingelanzeige oder Datenträgererkennung Lesen des Modern Status-Registers

 Leitungskontrollregister (Frage stellen)
Das Leitungssteuerungsregister ist in der folgenden Tabelle aufgeführt. Tabelle 1-10. Leitungssteuerungsregister

Gebisse Name Standardzustand Gültige Zustände Funktion
1..0 WLS 0 0..3 Stunden Wortlängenauswahl 00: 5 Bit

01: 6 Bit

10: 7 Bit

11: 8 Bit

2 STB 0 0, 1 Anzahl der Stoppbits 0: 1 Stoppbit

1: 1½ Stoppbits wenn WLS = 00 2: Stoppbits in anderen Fällen

3 STIFT 0 0, 1 Parität aktivieren 0: Deaktiviert

1: Aktiviert. Parität wird beim Senden hinzugefügt und beim Empfangen überprüft.

4 EPS 0 0, 1 Gerade Parität auswählen 0: Ungerade Parität

1: Gerade Parität

5 SP 0 0, 1 Stick-Parität 0: Deaktiviert

1: Aktiviert

Nachfolgend sind die Paritätsdetails aufgeführt, wenn die Stick-Parität aktiviert ist: Bits 4..3

11:0 wird als Paritätsbit gesendet und beim Empfang überprüft.

01:1 wird als Paritätsbit gesendet und beim Empfang überprüft.

6 SB 0 0, 1 Set Break 0: Deaktiviert

1: Unterbrechung setzen. SOUT wird auf 0 gesetzt. Dies hat keine Auswirkungen auf die Senderlogik. Die Unterbrechung wird durch Setzen des Bits auf 0 deaktiviert.

7 DLAB 0 0, 1 Divisor-Verriegelungs-Zugriffsbit

0: Deaktiviert. Normaler Adressierungsmodus wird verwendet.

1: Aktiviert. Ermöglicht den Zugriff auf die Divisor-Latch-Register während Lese- oder Schreibvorgängen an Adresse 0 und 1.

Modem-Steuerregister (Stellen Sie eine Frage)
Das Modem-Steuerregister ist in der folgenden Tabelle aufgeführt.

Gebisse Name Standardzustand Gültige Zustände Funktion
0 DTR 0 0, 1 Steuert den Data Terminal Ready (DTRn)-Ausgang. 0: DTRn <= 1

1: DTRn <= 0

1 RTS 0 0, 1 Steuert die Ausgabe des Request to Send (RTSn). 0: RTSn <= 1

1: RTSn <= 0

2 Out1 (Abzweigerport) 0 0, 1 Steuert das Output1-Signal (OUT1n). 0: OUT1n <= 1

1: OUT1n <= 0

3 Out2 (Abzweigerport) 0 0, 1 Steuert das Output2-Signal (OUT2n). 0: OUT2n <= 1

1: OUT2n <= 0

4 Schleife 0 0, 1 Schleifenaktivierungsbit 0: Deaktiviert

1: Aktiviert. Folgendes geschieht im Loop-Modus:

SOUT wird auf 1 gesetzt. Die Eingänge SIN, DSRn, CTSn, RIn und DCDn werden getrennt. Der Ausgang des Transmitter-Schieberegisters wird in das Receiver-Schieberegister zurückgeführt. Die Modem-Steuerausgänge (DTRn, RTSn, OUT1n und OUT2n) werden

Die Modem-Steuereingänge sind intern mit den Modem-Steuereingängen verbunden, und die Modem-Steuerausgangspins sind auf 1 gesetzt. Im Loopback-Modus werden die gesendeten Daten sofort empfangen, sodass die CPU die Funktion des UART überprüfen kann. Die Interrupts arbeiten im Loop-Modus.

7..4 Reserviert 0h 0 Reserviert

Leitungsstatusregister (Frage stellen)
Das Leitungsstatusregister ist in der folgenden Tabelle definiert.
Tabelle 1-12. Leitungsstatusregister – Nur Lesen

Gebisse Name Standardzustand Gültige Zustände Funktion
0 DR 0 0, 1 Datenbereit-Anzeige

1, wenn ein Datenbyte empfangen und im Empfangspuffer oder FIFO gespeichert wurde. DR wird auf 0 gelöscht, wenn die CPU die Daten aus dem Empfangspuffer oder FIFO liest.

1 OE 0 0, 1 Anzeige „Überlauffehler“

Zeigt an, dass das neue Byte empfangen wurde, bevor die CPU es aus dem Empfangspuffer gelesen hat, und dass das vorherige Datenbyte zerstört wurde. OE wird gelöscht, wenn die CPU das Zeilenstatusregister liest. Füllen die Daten den FIFO über den Triggerpegel hinaus, tritt ein Überlauffehler auf, sobald der FIFO voll ist und das nächste Zeichen vollständig gelesen wurde.

im Schieberegister empfangen. Das Zeichen im Schieberegister wird überschrieben, aber nicht in den FIFO übertragen.

2 PE 0 0, 1 Paritätsfehleranzeige

Zeigt an, dass das empfangene Byte einen Paritätsfehler aufwies. PE wird gelöscht, wenn die CPU das Zeilenstatusregister liest. Dieser Fehler wird der CPU angezeigt, wenn das zugehörige Zeichen oben im FIFO steht.

3 FE 0 0, 1 Framing-Error-Anzeige

Zeigt an, dass das empfangene Byte kein gültiges Stoppbit hatte. FE wird gelöscht, wenn die CPU das Zeilenstatusregister liest. Der UART versucht nach einem Framing-Fehler eine Neusynchronisierung. Dabei wird davon ausgegangen, dass der Framing-Fehler auf das nächste Startbit zurückzuführen ist.ampliest dieses Startbit zweimal und beginnt dann mit dem Empfang der Daten. Dieser Fehler wird der CPU angezeigt, wenn das zugehörige Zeichen oben im FIFO steht.

Tabelle 1-12. Leitungsstatusregister – Nur Lesen (Fortsetzung)
Gebisse Name Standardzustand Gültige Zustände Funktion
4 BI 0 0, 1 Unterbrechungsanzeige

Zeigt an, dass die empfangenen Daten 0 sind, länger als eine volle Wortübertragungszeit (Startbit

+ Datenbits + Parität + Stoppbits). BI wird gelöscht, wenn die CPU das Zeilenstatusregister liest. Dieser Fehler wird der CPU angezeigt, wenn das zugehörige Zeichen oben im FIFO steht. Bei einem Bruch wird nur ein Nullzeichen in den FIFO geladen.

5 DREI 1 0, 1 Anzeige „Transmitter Holding Register Empty“ (THRE)

Zeigt an, dass der UART bereit ist, ein neues Datenbyte zu übertragen. THRE löst einen Interrupt an die CPU aus, wenn Bit 1 (ETBEI) im Interrupt Enable-Register 1 ist. Dieses Bit ist gesetzt, wenn der TX-FIFO leer ist. Es wird gelöscht, wenn mindestens ein Byte in den TX-FIFO geschrieben wird.

6 TEMT 1 0, 1 Anzeige „Sender leer“

Dieses Bit wird auf 1 gesetzt, wenn sowohl das FIFO als auch die Schieberegister des Senders leer sind.

7 FIER 0 1 Dieses Bit wird gesetzt, wenn im FIFO mindestens ein Paritätsfehler, ein Rahmenfehler oder eine Unterbrechungsanzeige vorliegt. FIER wird gelöscht, wenn die CPU das LSR liest und keine weiteren Fehler im FIFO vorliegen.

Modemstatusregister (Stellen Sie eine Frage)
Das Modemstatusregister ist in der folgenden Tabelle aufgeführt.
Tabelle 1-13. Modemstatusregister – Nur Lesen

Gebisse Name Standardzustand Gültige Zustände Funktion
0 DCTS 0 0, 1 Delta-Anzeige „Bereit zum Senden“.

Zeigt an, dass der CTSn-Eingang seinen Zustand geändert hat, seit er das letzte Mal von der CPU gelesen wurde.

1 DDSR 0 0, 1 Anzeige „Delta-Datensatz bereit“

Zeigt an, dass der DSRn-Eingang seinen Zustand geändert hat, seit er das letzte Mal von der CPU gelesen wurde.

2 TERI 0 0, 1 Hinterkante des Ringindikator-Detektors. Zeigt an, dass sich der RI-Eingang von 0 auf 1 geändert hat.
3 DDCD 0 0, 1 Delta Data Carrier Detect-Anzeige Zeigt an, dass der DCD-Eingang seinen Status geändert hat.

Hinweis: Immer wenn Bit 0, 1, 2 oder 3 auf 1 gesetzt ist, wird ein Modemstatus-Interrupt generiert.

4 CTS 0 0, 1 Zum Senden freigeben

Das Komplement des CTSn-Eingangs. Wenn Bit 4 des Modem Control Registers (MCR) auf 1 (Schleife) gesetzt ist, entspricht dieses Bit DTR im MCR.

5 DSR 0 0, 1 Datensatz bereit

Das Komplement des DSR-Eingangs. Wenn Bit 4 des MCR auf 1 (Schleife) gesetzt ist, entspricht dieses Bit RTSn im MCR.

6 RI 0 0, 1 Klingelanzeige

Das Komplement des RIn-Eingangs. Wenn Bit 4 des MCR auf 1 (Schleife) gesetzt ist, entspricht dieses Bit OUT1 im MCR.

7 DCD 0 0, 1 Datenträgererkennung

Das Komplement des DCDn-Eingangs. Wenn Bit 4 des MCR auf 1 (Schleife) gesetzt ist, entspricht dieses Bit OUT2 im MCR.

Scratch Register (Stellen Sie eine Frage)
Das Scratch-Register ist in der folgenden Tabelle definiert.

Gebisse Name Standardzustand Funktion
7..0 SCR 00 Uhr Lese-/Schreibregister für die CPU. Keine Auswirkungen auf den UART-Betrieb.

Tool-Flows (Stellen Sie eine Frage)
Dieser Abschnitt enthält Einzelheiten zu den Tool-Flows.

 SmartDesign (Stellen Sie eine Frage)
Core16550 steht in der SmartDesign IP-Deployment-Designumgebung zum Download bereit. Die Konfiguration des Cores erfolgt über die Konfigurationsoberfläche von SmartDesign (siehe folgende Abbildung).
Informationen zur Verwendung von SmartDesign zum Instanziieren, Konfigurieren, Verbinden und Generieren von Kernen finden Sie im SmartDesign-Benutzerhandbuch.

Abbildung 2-1. Core16550-Konfiguration 

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (5)
Simulationsflüsse (Stellen Sie eine Frage)
Der Benutzertestbench für Core16550 ist in allen Versionen enthalten.
Um Simulationen auszuführen, wählen Sie in SmartDesign die Option „Benutzer-Testbench-Flow“ und klicken Sie im SmartDesign-Menü auf „Design generieren“. Die Auswahl der Benutzer-Testbench erfolgt über die Benutzeroberfläche „Core Testbench-Konfiguration“.
Wenn SmartDesign das Libero SoC-Projekt generiert, installiert es die Benutzertestbench files.
Um die Benutzer-Testbench auszuführen, legen Sie im Bereich „Libero SoC Design Hierarchy“ die Design-Root auf die Core16550-Instanziierung fest und klicken Sie im Fenster „SoC Design Flow“ auf das Simulationssymbol. Dadurch wird ModelSim® aufgerufen und die Simulation automatisch ausgeführt.

Synthese in Libero SoC (Stellen Sie eine Frage)
Klicken Sie in Libero SoC auf das Synthesis-Symbol. Das Synthesis-Fenster wird angezeigt. Das Synplify®-Projekt. Stellen Sie Synplify so ein, dass der Verilog 2001-Standard verwendet wird, falls Verilog verwendet wird. Um Synthesis auszuführen, klicken Sie auf das Symbol „Ausführen“.

Place-and-Route in Libero SoC (Stellen Sie eine Frage)
Um die Designroute entsprechend festzulegen und die Synthese auszuführen, klicken Sie in Libero SoC auf das Layout-Symbol und rufen Sie Designer auf. Core16550 erfordert keine speziellen Place-and-Route-Einstellungen.

Core16550 (Stellen Sie eine Frage)

Dieser Abschnitt enthält Informationen zu den in diesem Kern verwendeten Parametern.

Parameter (Stellen Sie eine Frage)
Core16550 unterstützt keine Parameter der obersten Ebene.

Kernschnittstellen (Stellen Sie eine Frage)

Dieser Abschnitt enthält eine Zusammenfassung der Eingaben und Ausgaben.

Beschreibung der E/A-Signale (Stellen Sie eine Frage)
Im Folgenden sind die Core16550-E/A-Definitionen aufgeführt.

Name Typ Polarität Beschreibung
VOREINST Eingang Niedrig Gesamtzurücksetzung
PCLK Eingang Hauptuhr

PCLK wird durch den Wert der Divisor-Register geteilt. Das Ergebnis wird dann durch 16 geteilt, um die Baudrate zu ermitteln. Das resultierende Signal ist das BAUDOUT-Signal. Die steigende Flanke dieses Pins wird zum Abtasten aller Ein- und Ausgangssignale verwendet.

PSCHREIBEN Eingang Hoch APB-Schreib-/Lesefreigabe, aktiv hoch.

Bei HIGH werden Daten an die angegebene Adresse geschrieben. Bei LOW werden Daten von der angegebenen Adresse gelesen.

PADDR[4:0] Eingang APB-Adresse

Dieser Bus stellt die Verbindung für die CPU zur Adresse des Registers des Core16550 her, aus dem gelesen oder in das geschrieben werden soll.

PSEL Eingang Hoch APB auswählen

Wenn dieser Wert zusammen mit PENABLE HIGH ist, ist das Lesen und Schreiben auf Core16550 aktiviert.

PWDATA[7:0] Eingang Dateneingangsbus

Daten auf diesem Bus werden während eines Schreibzyklus in das adressierte Register geschrieben.

STRAFBAR Eingang Hoch APB aktivieren

Wenn dieser Wert zusammen mit PSEL HIGH ist, ist das Lesen und Schreiben auf Core16550 aktiviert.

PRDATA[7:0] Ausgabe Datenausgabebus

Dieser Bus hält den Wert des adressierten Registers während eines Lesezyklus.

CTSn Eingang Niedrig Zum Senden freigeben

Dieses Active-Low-Signal zeigt an, wann das angeschlossene Gerät (Modem) bereit ist, Daten zu empfangen. Core16550 leitet diese Information über das Modemstatusregister an die CPU weiter. Dieses Register zeigt auch an, ob sich das CTSn-Signal seit dem letzten Lesen des Registers geändert hat.

DSRn Eingang Niedrig Datensatz bereit

Dieses Active-Low-Signal zeigt an, wann das angeschlossene Gerät (Modem) bereit ist, eine Verbindung mit Core16550 aufzubauen. Core16550 leitet diese Information über das Modemstatusregister an die CPU weiter. Dieses Register zeigt auch an, ob sich das DSRn-Signal seit dem letzten Lesen des Registers geändert hat.

DCDn Eingang Niedrig Datenträgererkennung

Dieses Active-Low-Signal ist ein Eingang, der anzeigt, wann das angeschlossene Gerät (Modem) einen Träger erkannt hat. Core16550 leitet diese Information über das Modemstatusregister an die CPU weiter. Dieses Register zeigt auch an, ob sich das DCDn-Signal seit dem letzten Lesen des Registers geändert hat.

SÜNDE Eingang Serielle Eingangsdaten

Diese Daten werden in den Core16550 übertragen. Sie werden mit dem PCLK-Eingangspin synchronisiert.

RIn Eingang Niedrig Klingelanzeige

Dieses Active-Low-Signal zeigt an, wann das angeschlossene Gerät (Modem) ein Klingelsignal auf der Telefonleitung erkannt hat. Core16550 leitet diese Information über das Modemstatusregister an die CPU weiter. Dieses Register zeigt auch an, wann die RIn-Rückflanke erkannt wurde.

SÜD Ausgabe Serielle Ausgabedaten

Diese Daten werden vom Core16550 übertragen. Sie werden mit dem BAUDOUT-Ausgangspin synchronisiert.

RTSn Ausgabe Niedrig Anfrage zum Senden

Dieses aktive Ausgangssignal wird verwendet, um das angeschlossene Gerät (Modem) darüber zu informieren, dass Core16550 bereit ist, Daten zu senden. Es wird von der CPU über das Modem-Steuerregister programmiert.

Tabelle 4-1. E/A-Signalübersicht (Fortsetzung)
Name Typ Polarität Beschreibung
DTRn Ausgabe Niedrig Bereit für Datenterminal

Dieses aktive Ausgangssignal informiert das angeschlossene Gerät (Modem), dass Core16550 bereit ist, eine Kommunikationsverbindung herzustellen. Es wird von der CPU über das Modem-Steuerregister programmiert.

OUT1n Ausgabe Niedrig Ausgang 1

Dieser Active-Low-Ausgang ist ein benutzerdefiniertes Signal. Die CPU programmiert dieses Signal über das Modem-Steuerregister und stellt es auf den entgegengesetzten Wert ein.

OUT2n Ausgabe Niedrig Ausgang 2

Dieses Active-Low-Ausgangssignal ist ein benutzerdefiniertes Signal. Es wird von der CPU über das Modem-Steuerregister programmiert und auf den entgegengesetzten Wert eingestellt. programmiert.

INTR Ausgabe Hoch Unterbrechung ausstehend

Dieses aktive High-Ausgangssignal ist das Interrupt-Ausgangssignal des Core16550. Es ist so programmiert, dass es bei bestimmten Ereignissen aktiv wird und die CPU über das Eintreten eines solchen Ereignisses informiert (weitere Details finden Sie im Interrupt-Identifikationsregister). Die CPU ergreift dann die entsprechenden Maßnahmen.

BAUDOUTn Ausgabe Niedrig Baud-Ausgang

Dies ist ein aus dem Eingangstakt abgeleitetes Ausgangstaktsignal zur Synchronisierung des Datenausgabestroms von SOUT.

RXRDYN Ausgabe Niedrig Der Empfänger ist bereit, Übertragungen zu empfangen.

Durch dieses Active-Low-Ausgangssignal wird der CPU angezeigt, dass der Empfängerabschnitt des Core16550 zum Lesen von Daten bereit ist.

TXRDYN Ausgabe Niedrig Sender bereit zur Datenübertragung.

Dieses Active-Low-Signal zeigt der CPU an, dass im Senderabschnitt des Core16550 Platz zum Schreiben von Daten zur Übertragung vorhanden ist.

rxfifo_empty Ausgabe Hoch Empfangs-FIFO leer.

Dieses Signal wird HIGH, wenn der Empfangs-FIFO leer ist.

rxfifo_full Ausgabe Hoch Empfangs-FIFO voll.

Dieses Signal wird hoch, wenn der Empfangs-FIFO voll ist.

Zeitdiagramme (Stellen Sie eine Frage)
Dieser Abschnitt enthält Zeitdiagramme dieses Kerns.

 Datenschreibzyklus und Datenlesezyklus (Stellen Sie eine Frage)
Abbildung 5-1 und Abbildung 5-2 zeigen die zeitlichen Beziehungen zwischen Schreib- und Lesezyklen im Verhältnis zum APB-Systemtakt PCLK.

Registrieren Schreiben (Frage stellen)
Die folgende Abbildung zeigt, dass die Signale „Address“, „Select“ und „Enable“ zwischengespeichert sind und vor der steigenden Flanke des PCLK-Signals gültig sein müssen. Der Schreibvorgang erfolgt bei der steigenden Flanke des PCLK-Signals.

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (6)Registrieren Lesen (Frage stellen)
Die folgende Abbildung zeigt, dass die Signale „Address“, „Select“ und „Enable“ zwischengespeichert sind und vor der steigenden Flanke des PCLK-Signals gültig sein müssen. Der Lesevorgang erfolgt bei der steigenden Flanke des PCLK-Signals. MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (7)Weitere Einzelheiten zu den Beschreibungen und Zeitwellenformen finden Sie in der AMBA-Spezifikation.

Empfängersynchronisierung (Stellen Sie eine Frage)
Erkennt der Empfänger einen Low-Zustand im eingehenden Datenstrom, synchronisiert er sich darauf. Nach der Startflanke wartet der UART 1.5 × (die normale Bitlänge). Dadurch wird jedes nachfolgende Bit in der Mitte seiner Breite gelesen. Die folgende Abbildung zeigt diesen Synchronisationsprozess.

Abbildung 5-3. Empfängersynchronisierung

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (8)Testbench-Betrieb (Stellen Sie eine Frage)
Mit Core16550 wird nur eine Testbench bereitgestellt: die Verilog-Benutzertestbench. Dies ist eine einfach zu bedienende Testbench, die in Verilog geschrieben ist. Diese Testbench ist für Kundenanpassungen vorgesehen.

Benutzer-Testbench (Stellen Sie eine Frage)
Die folgende Abbildung zeigt das Blockdiagramm des Example Benutzerdesign und Testbench.
Abbildung 6-1. Core16550 Benutzer-Testbench

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (1)Die Benutzer-Testbench beinhaltet eine einfache Example-Design, das als Referenz für Benutzer dient, die ihre eigenen Designs implementieren möchten.
Der Prüfstand für ExampDas Benutzerdesign implementiert eine Teilmenge der im Verifikationstestbench getesteten Funktionalität. Weitere Informationen finden Sie unter Benutzertestbench. Konzeptionell wird, wie in Abbildung 6-1 dargestellt, die Instanziierung von Core16550 mithilfe eines Verhaltensmikrocontrollers und einer simulierten Loopback-Verbindung simuliert. Zum Beispielample, der Benutzerteststand demonstriert das Senden und Empfangen durch dieselbe Core16550-Einheit, sodass Sie ein grundlegendes Verständnis für die Verwendung dieses Kerns erlangen können.
Die Benutzertestbench demonstriert die grundlegende Einrichtung sowie die Sende- und Empfangsvorgänge von Core16550. Die Benutzertestbench führt die folgenden Schritte aus:

  1. Schreiben Sie in die Steuerregister.
  2. Überprüfen Sie die empfangenen Daten.
  3. Senden und Empfangen einschalten.
  4. Lesen Sie die Steuerregister.
  5. Senden und empfangen Sie ein Byte.

Geräteauslastung und Leistung (Stellen Sie eine Frage)

In der folgenden Tabelle sind die Auslastungs- und Leistungsdaten des Core16550 aufgeführt. Tabelle 7-1. Auslastung und Leistung des Core16550 PolarFire und PolarFire SoC

Gerätedetails Ressourcen RAM
Familie Gerät 4LUT DFF Logikelemente μSRAM
PolarFire® MPF100T- FCSG325I 752 284 753 2
PolarFire®SoC MPFS250TS- FCSG536I 716 284 720 2
RTG4™ RT4G150- 1CG1657M 871 351 874 2
IGLOO® 2 M2GL050TFB GA896STD 754 271 1021 2
SmartFusion® 2 M2S050TFBG A896STD 754 271 1021 2
SmartFusion® A2F500M3G- STD 1163 243 1406 2
IGLOO®/IGLOOE AGL600- STD/AGLE600 V2 1010 237 1247 2
Fusion AFS600-STD 1010 237 1247 2
ProASIC® 3/E A3P600-STD 1010 237 1247 2
ProASIC Plus® APA075-STD 1209 233 1442 2
RTAX-S RTAX250S- STD 608 229 837 2
Axcelerator® AX125-STD 608 229 837 2

Gelöste Probleme (Stellen Sie eine Frage)
In der folgenden Tabelle sind alle behobenen Probleme für die verschiedenen Core16550-Versionen aufgeführt.
Tabelle 8-1. Gelöste Probleme

Version Änderungen
Version 3.4 Core16550 verwendet das System-Verilog-Schlüsselwort „break“ als Registernamen, was zu Syntaxfehlern führte. Dies wurde behoben, indem das Schlüsselwort durch einen anderen Namen ersetzt wurde.
Unterstützung für die PolarFire®-Familie hinzugefügt

Revisionsverlauf (Stellen Sie eine Frage)

Der Revisionsverlauf beschreibt die Änderungen, die im Dokument vorgenommen wurden. Die Änderungen werden nach Revision aufgelistet, beginnend mit der aktuellsten Veröffentlichung.

MICROCHIP -Core16550 -Universal-Asynchronous-Receiver-Transmitter (2)

Microchip FPGA-Unterstützung

Die Microchip FPGA-Produktgruppe unterstützt ihre Produkte mit verschiedenen Support-Services, darunter Kundendienst, technisches Kunden-Support-Center, a webWebsite und weltweite Vertriebsbüros. Kunden wird empfohlen, die Online-Ressourcen von Microchip zu besuchen, bevor sie sich an den Support wenden, da ihre Fragen dort höchstwahrscheinlich bereits beantwortet wurden.
Wenden Sie sich über das Technical Support Center an webSeite unter www.microchip.com/support Geben Sie die Teilenummer des FPGA-Geräts an, wählen Sie die entsprechende Fallkategorie aus und laden Sie das Design hoch files beim Erstellen eines technischen Support-Falls.
Wenden Sie sich für nicht technischen Produktsupport an den Kundendienst, z. B. Produktpreise, Produkt-Upgrades, Aktualisierungsinformationen, Bestellstatus und Autorisierung.

  • Rufen Sie aus Nordamerika die Nummer 800.262.1060 an.
  • Aus dem Rest der Welt rufen Sie 650.318.4460 an
  • Fax, von überall auf der Welt, 650.318.8044

Mikrochip-Informationen

Handelsmarken
Der Name und das Logo von „Microchip“, das „M“-Logo und andere Namen, Logos und Marken sind eingetragene und nicht eingetragene Marken von Microchip Technology Incorporated oder seinen verbundenen Unternehmen und/oder Tochtergesellschaften in den Vereinigten Staaten und/oder anderen Ländern („Microchip-Marken“). Informationen zu Microchip-Marken finden Sie unter https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN-Nummer:

Rechtliche Hinweise

  • Diese Veröffentlichung und die darin enthaltenen Informationen dürfen nur mit Microchip-Produkten verwendet werden, einschließlich zum Entwerfen, Testen und Integrieren von Microchip-Produkten in Ihre Anwendung. Verwendung dieser Informationen
    in sonstiger Weise gegen diese Bedingungen verstößt. Informationen zu Geräteanwendungen werden nur zu Ihrer Information bereitgestellt und können durch Updates ersetzt werden. Es liegt in Ihrer Verantwortung, sicherzustellen, dass Ihre Anwendung Ihren Spezifikationen entspricht. Wenden Sie sich für weitere Unterstützung an Ihr lokales Microchip-Verkaufsbüro oder erhalten Sie weitere Unterstützung unter www.microchip.com/en-us/support/design-help/client-support-services
  • DIESE INFORMATIONEN WERDEN VON MICROCHIP „WIE BESEHEN“ BEREITGESTELLT. MICROCHIP GIBT KEINE ZUSICHERUNGEN ODER GARANTIEN JEGLICHER ART, WEDER AUSDRÜCKLICH NOCH STILLSCHWEIGEND, SCHRIFTLICH ODER MÜNDLICH, GESETZLICH ODER ANDERWEITIG, IN BEZUG AUF DIE INFORMATIONEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF STILLSCHWEIGENDE GARANTIEN DER NICHTVERLETZUNG, MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK ODER GARANTIEN IN BEZUG AUF IHREN ZUSTAND, IHRE QUALITÄT ODER LEISTUNG.
  • MICROCHIP HAFTET IN KEINEM FALL FÜR INDIREKTE, SPEZIELLE, STRAFRECHTLICHE, ZUFÄLLIGE ODER FOLGESCHÄDEN, VERLUSTE, KOSTEN ODER AUFWENDUNGEN JEGLICHER ART IM ZUSAMMENHANG MIT DEN INFORMATIONEN ODER IHRER VERWENDUNG, UNGEACHTET DEREN URSACHE, SELBST WENN MICROCHIP AUF DIE MÖGLICHKEIT HINGEWIESEN WURDE ODER DIE SCHÄDEN VORHERSEHBAR SIND. SOWEIT GESETZLICH ZULÄSSIG, ÜBERSTEIGT DIE GESAMTHAFTUNG VON MICROCHIP FÜR ALLE ANSPRÜCHE, DIE IN IRGENDEINER WEISE MIT DEN INFORMATIONEN ODER IHRER VERWENDUNG ZUSAMMENHÄNGEN, NICHT DEN SUMMEN DER GEBÜHREN, DIE SIE GEGEBENENFALLS DIREKT AN MICROCHIP FÜR DIE INFORMATIONEN BEZAHLT HABEN.
  • Die Verwendung von Microchip-Geräten in lebenserhaltenden und/oder sicherheitsrelevanten Anwendungen erfolgt ausschließlich auf Risiko des Käufers. Der Käufer verpflichtet sich, Microchip von allen Schäden, Ansprüchen, Klagen oder Kosten freizustellen, die sich aus einer solchen Verwendung ergeben. Sofern nicht anders angegeben, werden keine Lizenzen im Rahmen der geistigen Eigentumsrechte von Microchip übertragen, weder implizit noch anderweitig.

Codeschutzfunktion von Microchip Devices
Beachten Sie die folgenden Details zur Codeschutzfunktion bei Microchip-Produkten:

  • Mikrochipprodukte erfüllen die in ihrem jeweiligen Mikrochip-Datenblatt enthaltenen Spezifikationen.
  • Microchip ist davon überzeugt, dass seine Produktfamilie sicher ist, wenn sie bestimmungsgemäß, innerhalb der Betriebsspezifikationen und unter normalen Bedingungen verwendet wird.
  • Microchip schätzt seine geistigen Eigentumsrechte und schützt sie aggressiv. Versuche, die Code-Schutzfunktionen von Microchip-Produkten zu verletzen, sind strengstens untersagt und können einen Verstoß gegen den Digital Millennium Copyright Act darstellen.
  • Weder Microchip noch ein anderer Halbleiterhersteller kann die Sicherheit seines Codes garantieren. Codeschutz bedeutet nicht, dass wir garantieren, dass das Produkt „unknackbar“ ist. Der Codeschutz entwickelt sich ständig weiter. Microchip ist bestrebt, die Codeschutzfunktionen unserer Produkte kontinuierlich zu verbessern.

Benutzerhandbuch
© 2025 Microchip Technology Inc. und seine Tochtergesellschaften

Dokumente / Ressourcen

MICROCHIP Core16550 Universeller asynchroner Empfänger-Sender [pdf] Benutzerhandbuch
v3.4, v3.3, Core16550 Universal Asynchronous Receiver Transmitter, Core16550, Universal Asynchronous Receiver Transmitter, Asynchronous Receiver Transmitter, Receiver Transmitter, Transmitter

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *