MICROCHIP-logo

MICROCHIP Core16550 universel asynkron modtager-sender

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender-produkt

Indledning

Core16550 er en standard Universal Asynchronous Receiver-Transmitter (UART), der sikrer softwarekompatibilitet med den udbredte 16550-enhed. Den håndterer seriel-til-parallel datakonvertering for input fra modemer eller andre serielle enheder og udfører parallel-til-seriel konvertering for data sendt fra CPU'en til disse enheder.
Under transmission skrives data parallelt ind i UART'ens FIFO-buffer (Transmitting First-In, First-Out). Dataene serialiseres derefter til output. Ved modtagelse konverterer UART'en indgående serielle data til parallelle data og giver processoren nem adgang.
En typisk anvendelse af 16550 UART er illustreret i den følgende figur.

Figur 1. Typisk 16550-applikation

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (2)Tabel 1. Core16550-oversigt

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (3)

Nøglefunktioner
Følgende er de vigtigste funktioner i Core16550:

  • Sender og modtager er hver især bufferet med op til 16-byte FIFO'er for at reducere antallet af afbrydelser, der præsenteres for CPU'en.
  • Tilføjer eller fjerner standard asynkrone kommunikationsbits (Start, Stop og Paritet).
  • Uafhængigt styrede transmissions-, modtagelses-, linjestatus- og datasætafbrydelser
  • Programmerbar baudgenerator
  • Modemkontrolfunktioner (CTSn, RTSn, DSRn, DTRn, RIn og DCDn).
  • Advanced Peripheral Bus (APB) registergrænseflade

Udgåede funktioner
Understøttelse af VHDL (Hardware Description Language) til Very High Speed ​​Integrated Circuit (VHSIC) udgår fra denne version.
Core16550 Ændringslogoplysninger
Dette afsnit giver en omfattende overview af de nyligt indarbejdede funktioner, startende med den seneste udgivelse.

Version Hvad er nyt
Core16550 v3.4 Core16550 bruger system-Verilog-nøgleordet "break" som registernavn, hvilket forårsagede syntaksfejl. Nøgleordet er erstattet med et andet navn for at løse dette problem.

Tilføjet PolarFire®-familieunderstøttelse

Core16550 v3.3 Tilføjet understøttelse af strålingstolerant FPGA (RTG4™)-familien
  1. Beskrivelse af funktionsblok (stil et spørgsmål)
    Dette afsnit indeholder en kort beskrivelse af hvert element i det interne blokdiagram, som vist i følgende figur.
    Figur 1-1. Core16550 blokdiagram
    MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (4)

Elementer i det interne blokdiagram (Stil et spørgsmål)
Det følgende afsnit indeholder oplysninger om elementerne i det interne blokdiagram.

  1. RWControl (Stil et spørgsmål)
    RWControl-blokken er ansvarlig for at håndtere kommunikationen med processorens (parallelle) side af systemet. Al skrivning og læsning af interne registre udføres via denne blok.
  2. UART_Reg (Stil et spørgsmål)
    UART_Reg-blokken indeholder alle enhedens interne registre.
  3. RXBlock (Stil et spørgsmål)
    Dette er modtagerblokken. RXBlock modtager det indkommende serielle ord. Den er programmerbar til at genkende databredder, såsom 5, 6, 7 eller 8 bit; forskellige paritetsindstillinger, såsom lige, ulige eller ingen paritet; og forskellige stopbits, såsom 1, 1½ og 2 bit. RXBlock kontrollerer for fejl i inputdatastrømmen, såsom overrun-fejl, framefejl, paritetsfejl og break-fejl. Hvis det indkommende ord ikke har nogen problemer, placeres det i modtager-FIFO'en.
  4. Afbrydelseskontrol (Stil et spørgsmål)
    Interrupt Control-blokken sender et afbrydelsessignal tilbage til processoren, afhængigt af FIFO'ens tilstand og dens modtagne og transmitterede data. Interrupt Identification-registeret angiver niveauet for afbrydelsen. Afbrydelser sendes ved tomme transmissions-/modtagelsesbuffere (eller FIFO'er), en fejl i modtagelsen af ​​et tegn eller andre forhold, der kræver processorens opmærksomhed.
  5. Baudhastighedsgenerator (Stil et spørgsmål)
    Denne blok tager inputtet PCLK og dividerer det med en programmeret værdi (fra 1 til 216 – 1). Resultatet divideres med 16 for at skabe transmissionsuret (BAUDOUT).
  6. TXBlock (Stil et spørgsmål)
    Transmit-blokken håndterer transmissionen af ​​data skrevet til Transmit FIFO. Den tilføjer de nødvendige start-, paritets- og stopbits til de data, der transmitteres, så den modtagende enhed kan udføre den korrekte fejlhåndtering og modtagelse.

Softwaregrænseflade (Stil et spørgsmål)
Core16550-registerdefinitionerne og adressetilknytningerne er beskrevet i dette afsnit. Følgende tabel viser Core16550-registeroversigten.

PADDR[4:0]

(Adresse)

Adgangsbit til divisorlås1

(DLAB)

Navn Symbol Standardværdi (nulstil) Antal bits Læs/skriv
00 0 Modtagerbufferregister RBR XX 8 R
00 0 Sender Holding Register THR XX 8 W
00 1 Divisorlås (LSB) DLR 01 timer 8 R/W
04 1 Divisorlås (MSB) DMR 00 timer 8 R/W
04 0 Afbryd Aktiver Register IER 00 timer 8 R/W
08 X Afbrydelsesidentifikationsregister IIR C1h 8 R
08 X FIFO kontrolregister FCR 01 timer 8 W
0C X Linjekontrolregister LCR 00 timer 8 R/W
10 X Modemkontrolregister MCR 00 timer 8 R/W
14 X Linjestatusregister LSR 60 timer 8 R
18 X Modemstatusregister MSR 00 timer 8 R
1C X Skraberegister SR 00 timer 8 R/W

Vigtig

DLAB er MSB for linjekontrolregisteret (LCR bit 7).

Modtagerbufferregister (Stil et spørgsmål)
Receiver Buffer-registeret er defineret i følgende tabel.
Tabel 1-2. Modtagerbufferregister (skrivebeskyttet) – Adresse 0 DLAB 0

Bits Navn Standardtilstand Gyldige stater Fungere
7..0 RBR XX 0..FFt Modtagne databits. Bit 0 er LSB'en og er den første modtagne bit.

Senderens holdregister (stil et spørgsmål)
Transmitter Holding-registeret er defineret i følgende tabel.
Tabel 1-3. Transmitterens holderegister – kun skrivefunktion

Bits Navn Standardtilstand Gyldige stater Fungere
7..0 THR XX 0..FFt At transmittere databits. Bit 0 er LSB og transmitteres først.

FIFO-kontrolregister (stil et spørgsmål)
FIFO-kontrolregisteret er defineret i følgende tabel.

Bits (7:0) Standardtilstand Gyldige stater Fungere
0 1 0, 1 Aktiverer både transceiveren (Tx) og modtageren (Rx) FIFO'er. Denne bit skal sættes til 1, når der skrives til andre FCR-bits, ellers vil de ikke blive programmeret.

0: Deaktiveret

1: Aktiveret

1 0 0, 1 Sletter alle bytes i Rx FIFO'en og nulstiller dens tællerlogik. Shift-registeret slettes ikke.

0: Deaktiveret

1: Aktiveret

2 0 0, 1 Sletter alle bytes i Tx FIFO'en og nulstiller dens tællerlogik. Shift-registeret slettes ikke.

0: Deaktiveret

1: Aktiveret

3 0 0, 1 0: Enkelt overførsel DMA: Overførsel foretaget mellem CPU-buscyklusser

1: Multi-transfer DMA: Overførsler foretaget indtil Rx FIFO er tom eller Transmission System Operator (TSO) Transmit (XMIT) FIFO er fyldt. FCR[0] skal sættes til 1 for at sætte FCR[3] til 1.

4, 5 0 0, 1 Reserveret til fremtidig brug.
6, 7 0 0, 1 Disse bits bruges til at indstille triggerniveauet for Rx FIFO-afbrydelsen. 7 6 Rx FIFO-triggerniveau (bytes)

0 0 01

0 1 04

1 0 08

1 1 14

Divisorkontrolregistrene (Stil et spørgsmål)
Baud Rate (BR)-uret genereres ved at dividere inputreference-uret (PCLK) med 16 og divisorværdien.

Følgende tabel viser et eksempelampaf divisorværdier for ønsket BR ved brug af et 18.432 MHz referenceur.
Tabel 1-5. Divisorlås (LS og MS)

Bits Navn Standardtilstand Gyldige stater Fungere
7..0 DLR 01 timer 01..FFt LSB af divisorværdi
7..0 DMR 00 timer 00..FFt MSB af divisorværdi

Tabel 1-6. Baudrater og divisorværdier for 18.432 MHz referenceur

Baud rate Decimaldivisor (divisorværdi) Procent fejl
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 %
Baud rate Decimaldivisor (divisorværdi) Procent fejl
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 %

Afbryd Aktiver Registrer (Stil et spørgsmål)
Interrupt Enable-registeret er defineret i følgende tabel.
Tabel 1-7. Afbrydelsesaktiveringsregister

Bits Navn Standardtilstand Gyldig stat Fungere
0 ERBFI 0 0, 1 Aktiverer "Afbrydelse af tilgængelige modtagne data" 0: Deaktiveret

1: Aktiveret

1 ETBEI 0 0, 1 Aktiverer "Afbrydelse af tom transmitterholdregister" 0: Deaktiveret

1: Aktiveret

2 ELSI 0 0, 1 Aktiverer "Afbrydelse af modtagerlinjestatus" 0: Deaktiveret

1: Aktiveret

3 EDSSI 0 0, 1 Aktiverer "Modemstatusafbrydelse" 0: Deaktiveret

1: Aktiveret

7..4 Reserveret 0 0 Altid 0

Afbryd identifikationsregister (stil et spørgsmål)
Afbrydelsesidentifikationsregisteret er angivet i følgende tabel. Tabel 1-8. Afbrydelsesidentifikationsregister

Bits Navn Standardtilstand Gyldige stater Fungere
3..0 IIR 1h 0..Ch Afbryd identifikationsbits.
5..4 Reserveret 00 00 Altid 00
7..6 Mode 11 11 11: FIFO-tilstand

Registerfeltet Afbrydelsesidentifikation er defineret i følgende tabel.

Tabel 1-9. Afbrydelsesidentifikationsregisterfelt (IIR)

IIR-værdi [3:0)] Prioritetsniveau Afbrydelsestype Afbrydelseskilde Afbryd nulstillingskontrol
0110 Højest Status for modtagerlinje Overløbsfejl, paritetsfejl, framingfejl eller break-afbrydelse Aflæsning af linjestatusregisteret
0100 Anden Modtagne data er tilgængelige Modtagerdata tilgængelige Aflæsning af receiverbufferregisteret, eller FIFO falder under triggerniveauet
Tabel 1-9. Afbrydelsesidentifikationsregisterfelt (IIR) (fortsat)
IIR-værdi [3:0)] Prioritetsniveau Afbrydelsestype Afbrydelseskilde Afbryd nulstillingskontrol
1100 Anden Indikation for tegntimeout Ingen tegn er læst fra Rx FIFO i løbet af de sidste fire tegn, og der var mindst ét ​​tegn i den i denne periode. Aflæsning af receiverbufferregisteret
0010 Tredje Transmitter Holding-register tomt Transmitter Holding-register tomt Læsning af IIR eller skrivning i Transmitter Holding-registeret
0000 Fjerde Modem status Klar til sending, datasæt klar, ringindikator eller databærerdetektering Læsning af Modern Status-registeret

 Linjekontrolregister (Stil et spørgsmål)
Linjekontrolregisteret er angivet i følgende tabel. Tabel 1-10. Linjekontrolregister

Bits Navn Standardtilstand Gyldige stater Fungere
1..0 WLS 0 0..3t Ordlængdevalg 00: 5 bit

01:6 bits

10:7 bits

11:8 bits

2 STB 0 0, 1 Antal stopbits 0: 1 stopbit

1: 1½ stopbits når WLS = 00 2: Stopbits i andre tilfælde

3 PEN 0 0, 1 Paritetsaktivering 0: Deaktiveret

1: Aktiveret. Paritet tilføjes ved transmission og kontrolleres ved modtagelse.

4 EPS 0 0, 1 Lige paritet Vælg 0: Ulige paritet

1: Lige paritet

5 SP 0 0, 1 Stick Parity 0: Deaktiveret

1: Aktiveret

Følgende er paritetsoplysningerne, når stick-paritet er aktiveret: Bits 4..3

11: 0 vil blive sendt som en paritetsbit og kontrolleret ved modtagelse.

01: 1 vil blive sendt som en paritetsbit og kontrolleret ved modtagelse.

6 SB 0 0, 1 Indstil pause 0: Deaktiveret

1: Indstil pause. SOUT tvinges til 0. Dette har ingen effekt på transmitterens logik. Pausen deaktiveres ved at indstille bitten til 0.

7 DLAB 0 0, 1 Adgangsbit til divisorlås

0: Deaktiveret. Normal adresseringstilstand i brug.

1: Aktiveret. Giver adgang til Divisor Latch-registrene under læse- eller skriveoperation til adresse 0 og 1.

Modemkontrolregister (Stil et spørgsmål)
Modemkontrolregisteret er angivet i følgende tabel.

Bits Navn Standardtilstand Gyldige stater Fungere
0 DTR 0 0, 1 Styrer Data Terminal Ready (DTRn) udgangen. 0: DTRn <= 1

1: DTRn <= 0

1 RTS 0 0, 1 Styrer outputtet for Request to Send (RTSn). 0: RTSn <= 1

1: RTSn <= 0

2 Out1 0 0, 1 Styrer Output1 (OUT1n) signalet. 0: OUT1n <= 1

1: OUT1n <= 0

3 Out2 0 0, 1 Styrer Output2 (OUT2n) signalet. 0: OUT2n <= 1

1: OUT2n <= 0

4 Løkke 0 0, 1 Loop enable bit 0: Deaktiveret

1: Aktiveret. Følgende sker i Loop-tilstand:

SOUT er indstillet til 1. SIN-, DSRn-, CTSn-, RIn- og DCDn-indgangene er frakoblet. Udgangen fra senderskiftregisteret loopes tilbage til modtagerskiftregisteret. Modemkontroludgangene (DTRn, RTSn, OUT1n og OUT2n) er

forbundet internt til modemets kontrolindgange, og modemets kontroludgangsben er indstillet til 1. I loopback-tilstand modtages de transmitterede data med det samme, hvilket giver CPU'en mulighed for at kontrollere UART'ens funktion. Afbrydelserne opererer i loop-tilstand.

7..4 Reserveret 0h 0 Reserveret

Linjestatusregister (stil et spørgsmål)
Linjestatusregisteret er defineret i følgende tabel.
Tabel 1-12. Linjestatusregister – skrivebeskyttet

Bits Navn Standardtilstand Gyldige stater Fungere
0 DR 0 0, 1 Data klar-indikator

1 når en databyte er modtaget og gemt i modtagebufferen eller FIFO. DR nulstilles til 0, når CPU'en læser dataene fra modtagebufferen eller FIFO.

1 OE 0 0, 1 Indikator for overløbsfejl

Angiver, at den nye byte blev modtaget, før CPU'en læste byten fra modtagebufferen, og at den tidligere databyte er ødelagt. OE ryddes, når CPU'en læser linjestatusregisteret. Hvis dataene fortsætter med at fylde FIFO ud over triggerniveauet, opstår der en overløbsfejl, når FIFO'en er fuld, og det næste tegn er blevet fuldstændigt læst.

modtaget i Shift-registeret. Tegnet i Shift-registeret overskrives, men det overføres ikke til FIFO.

2 PE 0 0, 1 Indikator for paritetsfejl

Angiver, at den modtagne byte havde en paritetsfejl. PE ryddes, når CPU'en læser linjestatusregisteret. Denne fejl afsløres for CPU'en, når det tilhørende tegn er øverst i FIFO'en.

3 FE 0 0, 1 Indikator for indramningsfejl

Angiver, at den modtagne byte ikke havde en gyldig stopbit. FE ryddes, når CPU'en læser linjestatusregisteret. UART'en vil forsøge at resynkronisere efter en framing-fejl. For at gøre dette antager den, at framing-fejlen skyldtes den næste startbit, så den eramplæser denne Start-bit to gange, og begynder derefter at modtage dataene. Denne fejl afsløres for CPU'en, når det tilhørende tegn er øverst i FIFO'en.

Tabel 1-12. Linjestatusregister – skrivebeskyttet (fortsat)
Bits Navn Standardtilstand Gyldige stater Fungere
4 BI 0 0, 1 Indikator for afbrydelse

Angiver, at de modtagne data er på 0, længere end en fuld ords transmissionstid (startbit

+ Databits + Paritet + Stopbits). BI ryddes, når CPU'en læser linjestatusregisteret. Denne fejl afsløres for CPU'en, når det tilhørende tegn er øverst i FIFO'en. Når der opstår et brud, indlæses kun ét nultegn i FIFO'en.

5 TRE 1 0, 1 Indikator for tomt transmitterregister (THRE)

Angiver, at UART'en er klar til at sende en ny databyte. THRE forårsager en afbrydelse til CPU'en, når bit 1 (ETBEI) i Interrupt Enable-registeret er 1. Denne bit sættes, når TX FIFO'en er tom. Den ryddes, når mindst én byte er skrevet til TX FIFO'en.

6 TEMT 1 0, 1 Indikator for tom transmitter

Denne bit sættes til 1, når både transmitterens FIFO- og Shift-register er tomme.

7 FIER 0 1 Denne bit sættes, når der er mindst én paritetsfejl, framingfejl eller brudindikation i FIFO. FIER ryddes, når CPU'en læser LSR, hvis der ikke er nogen efterfølgende fejl i FIFO.

Modemstatusregistrering (stil et spørgsmål)
Modemstatusregisteret er angivet i følgende tabel.
Tabel 1-13. Modemstatusregister – skrivebeskyttet

Bits Navn Standardtilstand Gyldige stater Fungere
0 DCTS 0 0, 1 Delta Clear to Send-indikator.

Angiver, at CTSn-inputtet har ændret tilstand siden sidste gang, det blev læst af CPU'en.

1 DDSR 0 0, 1 Delta-datasæt klar-indikator

Angiver, at DSRn-inputtet har ændret tilstand siden sidste gang, det blev læst af CPU'en.

2 TERI 0 0, 1 Bagkantsindikatordetektor for ringen. Angiver, at RI-inputtet er ændret fra 0 til 1.
3 DDCD 0 0, 1 Indikator for Delta-databærerdetektion Angiver, at DCD-indgangen har ændret tilstand.

Bemærk: Når bit 0, 1, 2 eller 3 sættes til 1, genereres en modemstatusafbrydelse.

4 CTS 0 0, 1 Ryd for at sende

Komplementet til CTSn-indgangen. Når bit 4 i modemkontrolregisteret (MCR) er indstillet til 1 (løkke), svarer denne bit til DTR i MCR.

5 DSR 0 0, 1 Datasæt klar

Komplementet til DSR-indgangen. Når bit 4 i MCR'en er indstillet til 1 (loop), svarer denne bit til RTSn i MCR'en.

6 RI 0 0, 1 Ringeindikator

Komplementet til RIn-indgangen. Når bit 4 i MCR'en er indstillet til 1 (løkke), svarer denne bit til OUT1 i MCR'en.

7 DCD 0 0, 1 Detektion af databærer

Komplementet til DCDn-indgangen. Når bit 4 i MCR'en er indstillet til 1 (løkke), svarer denne bit til OUT2 i MCR'en.

Skraberegister (Stil et spørgsmål)
Scratch-registeret er defineret i følgende tabel.

Bits Navn Standardtilstand Fungere
7..0 SCR 00 timer Læse-/skriveregister for CPU. Ingen effekt på UART-drift.

Værktøjsflow (Stil et spørgsmål)
Dette afsnit indeholder detaljer om værktøjsflowene.

 SmartDesign (Stil et spørgsmål)
Core16550 kan downloades i SmartDesign IP-implementeringsdesignmiljøet. Kernen konfigureres ved hjælp af konfigurations-GUI'en i SmartDesign, se følgende figur.
For information om, hvordan du bruger SmartDesign til at instantiere, konfigurere, forbinde og generere kerner, se SmartDesign-brugervejledningen.

Figur 2-1. Core16550-konfiguration 

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (5)
Simuleringsflows (Stil et spørgsmål)
Brugertestbænken til Core16550 er inkluderet i alle udgivelser.
For at køre simuleringer skal du vælge indstillingen Brugertestbenchflow i SmartDesign og klikke på Generer design i SmartDesign-menuen. Brugertestbenchen vælges via Core Testbench Configuration GUI.
Når SmartDesign genererer Libero SoC-projektet, installerer det brugerens testbænk. files.
For at køre brugertestbænken skal du indstille designroden til Core16550-instansieringen i Libero SoC Design Hierarchy-ruden og klikke på Simulation-ikonet i SoC Design Flow-vinduet. Dette aktiverer ModelSim® og kører automatisk simuleringen.

Syntese i Libero SoC (Stil et spørgsmål)
Klik på ikonet Syntese i Libero SoC. Syntesevinduet vises. Synplify®-projektet. Indstil Synplify til at bruge Verilog 2001-standarden, hvis Verilog bruges. For at køre Syntese skal du klikke på ikonet Kør.

Placer-og-rute i Libero SoC (Stil et spørgsmål)
For at indstille designruten korrekt og køre Synthesis skal du klikke på Layout-ikonet i Libero SoC og starte Designer. Core16550 kræver ingen særlige placerings- og ruteindstillinger.

Core16550 (Stil et spørgsmål)

Dette afsnit indeholder oplysninger om de parametre, der bruges i denne kerne.

Parametre (Stil et spørgsmål)
Core16550 understøtter ingen parametre på topniveau.

Kernegrænseflader (Stil et spørgsmål)

Dette afsnit indeholder en oversigt over input og output.

Beskrivelse af I/O-signal (stil et spørgsmål)
Følgende viser Core16550 I/O-definitionerne.

Navn Type Polaritet Beskrivelse
PRESETN Input Lav Master nulstilling
PCLK Input Master ur

PCLK divideres med værdien af divisorregistrene. Resultatet divideres derefter med 16 for at få baudhastigheden. Det resulterende signal er BAUDOUT-signalet. Den stigende flanke på dette ben bruges til at strobe alle input- og outputsignaler.

PWRITE Input Høj APB skrive/læse aktiv, aktiv-høj.

Når den er HØJ, skrives data til den angivne adresseplacering. Når den er LAV, læses data fra den angivne adresseplacering.

PADDR[4:0] Input APB-adresse

Denne bus forbinder CPU'en med adressen i registeret for Core16550, hvorfra der skal læses eller skrives til.

PSEL Input Høj APB-valg

Når denne er HØJ sammen med PENABLE, er læsning og skrivning til Core16550 aktiveret.

PWDATA[7:0] Input Dataindgangsbus

Data på denne bus vil blive skrevet ind i det adresserede register under en skrivecyklus.

STRAFBAR Input Høj APB-aktivering

Når denne er HØJ sammen med PSEL, er læsning og skrivning til Core16550 aktiveret.

PRDATA[7:0] Produktion Dataudgangsbus

Denne bus holder værdien af det adresserede register under en læsecyklus.

CTSn Input Lav Ryd for at sende

Dette aktiv-lav-signal er et input, der viser, hvornår den tilsluttede enhed (modem) er klar til at modtage data. Core16550 sender disse oplysninger til CPU'en via Modem Status-registeret. Dette register indikerer også, at hvis CTSn-signalet har ændret sig siden sidste gang, blev registeret læst.

DSRn Input Lav Datasæt klar

Dette aktiv-lav-signal er et input, der angiver, hvornår den tilsluttede enhed (modem) er klar til at oprette et link med Core16550. Core16550 sender disse oplysninger til CPU'en via Modem Status-registeret. Dette register angiver også, om DSRn-signalet har ændret sig siden sidste gang, registeret blev læst.

DCDn Input Lav Detektion af databærer

Dette aktiv-lav-signal er et input, der angiver, hvornår den tilsluttede enhed (modem) har detekteret en bærebølge. Core16550 sender disse oplysninger til CPU'en gennem Modem Status-registeret. Dette register angiver også, om DCDn-signalet har ændret sig siden sidste gang registeret blev læst.

SYND Input Serielle indgangsdata

Disse data transmitteres til Core16550. De synkroniseres med PCLK-inputpin'en.

RIn Input Lav Ringeindikator

Dette aktiv-lav-signal er et input, der viser, hvornår den tilsluttede enhed (modem) har registreret et ringesignal på telefonlinjen. Core16550 sender disse oplysninger til CPU'en via Modem Status-registeret. Dette register angiver også, hvornår RIn's bagkant blev registreret.

SYD Produktion Serielle udgangsdata

Disse data transmitteres fra Core16550. De er synkroniseret med BAUDOUT-udgangspinden.

RTSn Produktion Lav Anmodning om at sende

Dette aktivt-lave udgangssignal bruges til at informere den tilsluttede enhed (modem) om, at Core16550 er klar til at sende data. Det programmeres af CPU'en via modemkontrolregisteret.

Tabel 4-1. Oversigt over I/O-signaler (fortsat)
Navn Type Polaritet Beskrivelse
DTRn Produktion Lav Dataterminal klar

Dette aktivt-lave udgangssignal informerer den tilsluttede enhed (modem) om, at Core16550 er klar til at etablere et kommunikationslink. Det programmeres af CPU'en via modemkontrolregisteret.

UD1n Produktion Lav Output 1

Denne aktiv-lave udgang er et brugerdefineret signal. CPU'en programmerer dette signal via modemstyringsregisteret og indstilles til den modsatte værdi.

UD2n Produktion Lav Output 2

Dette aktiv-lave udgangssignal er et brugerdefineret signal. Det programmeres af CPU'en via modemkontrolregisteret og er indstillet til den modsatte værdi.

INTR Produktion Høj Afbrydelse venter

Dette aktiv-høje udgangssignal er afbrydelsesudgangssignalet fra Core16550. Det er programmeret til at blive aktivt ved bestemte hændelser og informere CPU'en om, at en sådan hændelse er opstået (for flere detaljer, se Afbrydelsesidentifikationsregister). CPU'en tager derefter passende handling.

BAUDOUTn Produktion Lav Baud ud

Dette er et udgangsursignal afledt af inputuret til synkronisering af dataudgangsstrømmen fra SOUT.

RXRDYN Produktion Lav Modtageren er klar til at modtage transmissioner.

CPU'en indikeres af dette aktiv-lave udgangssignal, at modtagersektionen af Core16550 er tilgængelig for data, der kan læses.

TXRDYN Produktion Lav Senderen er klar til at sende data.

Dette aktivt-lave signal indikerer til CPU'en, at transmittersektionen af Core16550 har plads til at skrive data til transmission.

rxfifo_tom Produktion Høj Modtag FIFO tom.

Dette signal bliver HØJ, når modtage-FIFO'en er tom.

rxfifo_fuld Produktion Høj Modtag fuld FIFO.

Dette signal går højt, når modtage-FIFO'en er fuld.

Tidsdiagrammer (stil et spørgsmål)
Dette afsnit indeholder timingdiagrammer for denne kerne.

 Dataskrivecyklus og datalæsecyklus (Stil et spørgsmål)
Figur 5-1 og figur 5-2 viser forholdet mellem skrivecyklus og læsecyklustiming i forhold til APB-systemuret, PCLK.

Registrer Skriv (Stil et spørgsmål)
Følgende figur viser, at adresse-, valg- og aktiveringssignalerne er låst og skal være gyldige før den stigende flanke af PCLK. Skrivning sker ved den stigende flanke af PCLK-signalet.

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (6)Registrer Læs (Stil et spørgsmål)
Følgende figur viser, at adresse-, valg- og aktiveringssignalerne er låst og skal være gyldige før den stigende flanke af PCLK. Aflæsning sker ved den stigende flanke af PCLK-signalet. MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (7)For yderligere oplysninger om beskrivelser og timingbølgeformer, se AMBA-specifikationen.

Modtagersynkronisering (Stil et spørgsmål)
Når modtageren registrerer en lav tilstand i den indgående datastrøm, synkroniserer den med den. Efter startkanten venter UART'en 1.5 × (den normale bitlængde). Dette får hver efterfølgende bit til at blive læst i midten af ​​dens bredde. Følgende figur viser denne synkroniseringsproces.

Figur 5-3. Modtagersynkronisering

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (8)Testbænksdrift (Stil et spørgsmål)
Kun én testbænk leveres med Core16550: Verilog brugertestbænk. Dette er en brugervenlig testbænk skrevet i Verilog. Denne testbænk er beregnet til kundetilpasning.

Brugertestbænk (Stil et spørgsmål)
Følgende figur viser blokdiagrammet for exampbrugerdesign og testbænk.
Figur 6-1. Core16550 brugertestbænk

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (1)Brugertestbænken indeholder en simpel eksempelampet design, der fungerer som reference for brugere, der ønsker at implementere deres egne designs.
Testbænken for eksempelampBrugerdesign implementerer en delmængde af den funktionalitet, der testes i verifikationstestbenchen. Se Brugertestbench for flere detaljer. Konceptuelt, som vist i figur 6-1, simuleres instantieringen af Core16550 ved hjælp af en adfærdsmikrocontroller og en simuleret loopback-forbindelse. For eksempelampLe, brugertestbænken demonstrerer transmission og modtagelse med den samme Core16550-enhed, så du kan få en grundlæggende forståelse af, hvordan man bruger denne kerne.
Brugertestbænken demonstrerer den grundlæggende opsætning, transmission og modtagelse af Core16550. Brugertestbænken udfører følgende trin:

  1. Skriv til kontrolregistrene.
  2. Tjek modtagne data.
  3. Tænd for sending og modtagelse.
  4. Læs kontrolregistrene.
  5. Send og modtag én byte.

Enhedsudnyttelse og ydeevne (stil et spørgsmål)

Følgende tabel viser Core16550's udnyttelses- og ydeevnedata. Tabel 7-1. Core16550's udnyttelses- og ydeevne PolarFire og PolarFire SoC

Enhedsdetaljer Ressourcer VÆDDER
Familie Enhed 4LUT DFF Logiske elementer μ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
Accelerator® AX125-STD 608 229 837 2

Løste problemer (Stil et spørgsmål)
Følgende tabel viser alle de løste problemer for de forskellige Core16550-udgivelser.
Tabel 8-1. Løste problemer

Version Ændringer
v3.4 Core16550 bruger System Verilog-nøgleordet "break" som registernavn, hvilket forårsagede syntaksfejl. Dette er blevet løst ved at erstatte nøgleordet med et andet navn.
Tilføjet PolarFire®-familieunderstøttelse

Revisionshistorik (stil et spørgsmål)

Revisionshistorikken beskriver de ændringer, der blev implementeret i dokumentet. Ændringerne er listet efter revision, startende med den seneste publikation.

MICROCHIP -Core16550 - Universel-asynkron-modtager-sender (2)

Mikrochip FPGA-understøttelse

Microchip FPGA-produktgruppen støtter sine produkter med forskellige supporttjenester, herunder kundeservice, teknisk kundesupportcenter, et webwebsted og salgskontorer over hele verden. Kunder anbefales at besøge Microchips online ressourcer, inden de kontakter support, da det er meget sandsynligt, at deres spørgsmål allerede er blevet besvaret.
Kontakt teknisk supportcenter via website kl www.microchip.com/support Nævn FPGA-enhedens varenummer, vælg passende sagskategori, og upload design files, mens du opretter en teknisk supportsag.
Kontakt kundeservice for ikke-teknisk produktsupport, såsom produktpriser, produktopgraderinger, opdateringsoplysninger, ordrestatus og godkendelse.

  • Fra Nordamerika, ring 800.262.1060
  • Fra resten af ​​verden, ring på 650.318.4460
  • Fax, hvor som helst i verden, 650.318.8044

Mikrochip information

Varemærker
"Microchip"-navnet og -logoet, "M"-logoet og andre navne, logoer og mærker er registrerede og uregistrerede varemærker tilhørende Microchip Technology Incorporated eller dets tilknyttede selskaber og/eller datterselskaber i USA og/eller andre lande ("Microchip" varemærker"). Oplysninger om Microchip-varemærker kan findes på https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN:

Juridisk meddelelse

  • Denne publikation og oplysningerne heri må kun bruges med Microchip-produkter, herunder til at designe, teste og integrere Microchip-produkter med din applikation. Brug af disse oplysninger
    på anden måde overtræder disse vilkår. Oplysninger om enhedsapplikationer gives kun for din bekvemmelighed og kan blive afløst af opdateringer. Det er dit ansvar at sikre, at din ansøgning lever op til dine specifikationer. Kontakt dit lokale Microchip salgskontor for yderligere support, eller få yderligere support på www.microchip.com/en-us/support/design-help/client-support-services
  • DISSE OPLYSNINGER LEVERES AF MICROCHIP "SOM DE ER". MICROCHIP GIVER INGEN REPRÆSENTATIONER ELLER GARANTIER AF NOGEN ART, HVERKEN UDTRYKKELIGE ELLER UNDERFORSTÅEDE, SKRIFTLIGE ELLER mundtlige, LOVBESTEMMET ELLER ANDEN MÅDE, RELATET TIL OPLYSNINGERNE, INKLUSIVE MEN IKKE BEGRÆNSET TIL NOGEN STILTIENDE GARANTIER, GARANTIER OG GARANTIER. EGNETHED TIL ET BESTEMT FORMÅL ELLER GARANTIER RELATET TIL DETS TILSTAND, KVALITET ELLER YDELSE.
  • MICROCHIP ER UNDER INGEN OMSTÆNDIGHEDER ANSVARLIG FOR INDIREKTE, SÆRLIGE, PØNALE, TILFÆLDIGE ELLER FØLGESKADER, OMKOSTNINGER ELLER UDGIFT AF NOGEN ART I FORBINDELSE MED INFORMATIONEN ELLER DERES BRUG, UANSET ÅRSAG, SELVOM MICROCHIP ER BLEVET UNDERRETTET OM MULIGHEDEN FOR, ELLER AT SKADERNE KAN FORUDSES. I DET OMFANG, LOVEN TILLADER DET, VIL MICROCHIPS SAMLEDE ANSVAR FOR ALLE KRAV, DER PÅ NOGEN MÅDE ER FORBUNDET MED INFORMATIONEN ELLER DERES BRUG, IKKE OVERSTIGE DET BELØB FOR GEBYRER, EVENTUELLE, SOM DU HAR BETALT DIREKTE TIL MICROCHIP FOR INFORMATIONEN.
  • Brug af Microchip-enheder i livsstøtte- og/eller sikkerhedsapplikationer er helt på købers risiko, og køberen indvilliger i at forsvare, skadesløsholde og holde Microchip skadesløs fra enhver skade, krav, sager eller udgifter som følge af sådan brug. Ingen licenser videregives, implicit eller på anden måde, under nogen af ​​Microchips intellektuelle ejendomsrettigheder, medmindre andet er angivet.

Mikrochip-enheder kodebeskyttelsesfunktion
Bemærk følgende detaljer om kodebeskyttelsesfunktionen på Microchip-produkter:

  • Microchip-produkter opfylder specifikationerne i deres særlige Microchip-datablad.
  • Microchip mener, at dens familie af produkter er sikre, når de bruges på den tilsigtede måde, inden for driftsspecifikationerne og under normale forhold.
  • Microchip værdsætter og beskytter aggressivt sine intellektuelle ejendomsrettigheder. Forsøg på at bryde kodebeskyttelsesfunktionerne i Microchip-produkter er strengt forbudt og kan være i strid med Digital Millennium Copyright Act.
  • Hverken Microchip eller nogen anden halvlederproducent kan garantere sikkerheden af ​​deres kode. Kodebeskyttelse betyder ikke, at vi garanterer, at produktet er "ubrydeligt". Kodebeskyttelse er i konstant udvikling. Microchip er forpligtet til løbende at forbedre kodebeskyttelsesfunktionerne i vores produkter.

Brugervejledning
© 2025 Microchip Technology Inc. og dets datterselskaber

Dokumenter/ressourcer

MICROCHIP Core16550 universel asynkron modtager-sender [pdfBrugervejledning
v3.4, v3.3, Core16550 universel asynkron modtager-sender, Core16550, universel asynkron modtager-sender, asynkron modtager-sender, modtager-sender, sender

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *