MICROCHIP - logo

MICROCHIP Core16550 Uniwersalny odbiornik asynchroniczny nadajnik

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik-produkt

Wstęp

Core16550 to standardowy uniwersalny asynchroniczny odbiornik-nadajnik (UART), który zapewnia zgodność oprogramowania z powszechnie używanym układem 16550. Obsługuje konwersję danych z portu szeregowego na równoległy dla sygnałów wejściowych z modemów lub innych urządzeń szeregowych oraz wykonuje konwersję z portu równoległego na szeregowy dla danych przesyłanych z procesora do tych urządzeń.
Podczas transmisji dane są zapisywane równolegle do bufora transmisyjnego FIFO (First-In, First-Out) układu UART. Następnie dane są serializowane w celu ich wyprowadzenia. Podczas odbioru układ UART konwertuje przychodzące dane szeregowe na równoległe, umożliwiając procesorowi łatwy dostęp.
Typowe zastosowanie układu UART 16550 przedstawiono na poniższym rysunku.

Rysunek 1. Typowe zastosowanie 16550

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (2)Tabela 1. Podsumowanie Core16550

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (3)

Główne cechy
Oto najważniejsze cechy procesora Core16550:

  • Nadajnik i odbiornik są buforowane przy użyciu pamięci FIFO o pojemności do 16 bajtów w celu ograniczenia liczby przerwań przesyłanych do procesora.
  • Dodaje lub usuwa standardowe bity komunikacji asynchronicznej (start, stop i parzystość).
  • Niezależnie sterowane przerwania transmisji, odbioru, stanu linii i zestawu danych
  • Programowalny generator bodów
  • Funkcje sterowania modemem (CTSn, RTSn, DSRn, DTRn, RIn i DCDn).
  • Interfejs rejestru zaawansowanej magistrali peryferyjnej (APB).

Wycofane funkcje
Obsługa języka opisu sprzętu (VHDL) dla układów scalonych o bardzo dużej szybkości (VHSIC) nie zostanie ukończona w tej wersji.
Informacje o dzienniku zmian Core16550
Ta sekcja zawiera wyczerpujące informacje oview nowo wprowadzonych funkcji, począwszy od najnowszej wersji.

Wersja Co nowego
Core16550 v3.4 Core16550 używa systemowego słowa kluczowego „break” w Verilog jako nazwy rejestru, co powodowało błąd składni. Słowo kluczowe zostało zastąpione inną nazwą, aby rozwiązać ten problem.

Dodano obsługę rodziny PolarFire®

Core16550 v3.3 Dodano obsługę rodziny układów FPGA odpornych na promieniowanie (RTG4™)
  1. Opis bloku funkcjonalnego (Zadaj pytanie)
    W tej sekcji znajduje się krótki opis każdego elementu wewnętrznego schematu blokowego, jak pokazano na poniższym rysunku.
    Rysunek 1-1. Schemat blokowy Core16550
    MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (4)

Elementy wewnętrznego schematu blokowego (Zadaj pytanie)
W poniższej sekcji znajdują się informacje o elementach wewnętrznego schematu blokowego.

  1. RWControl (Zadaj pytanie)
    Blok RWControl odpowiada za obsługę komunikacji z procesorem (równoległej) systemu. Cały zapis i odczyt rejestrów wewnętrznych odbywa się za pośrednictwem tego bloku.
  2. UART_Reg (Zadaj pytanie)
    Blok UART_Reg zawiera wszystkie wewnętrzne rejestry urządzenia.
  3. RXBlock (Zadaj pytanie)
    To jest blok odbiorczy. RXBlock odbiera przychodzące słowo szeregowe. Jest programowalny do rozpoznawania szerokości danych, takich jak 5, 6, 7 lub 8 bitów; różnych ustawień parzystości, takich jak parzystość, nieparzystość lub brak parzystości; oraz różnych bitów stopu, takich jak 1, 1 i 2 bity. RXBlock sprawdza błędy w strumieniu danych wejściowych, takie jak błędy przepełnienia, błędy ramki, błędy parzystości i błędy przerwania. Jeśli słowo przychodzące nie ma problemów, jest umieszczane w kolejce FIFO odbiornika.
  4. Kontrola przerwań (Zadaj pytanie)
    Blok sterowania przerwaniami wysyła sygnał przerwania z powrotem do procesora, w zależności od stanu bufora FIFO oraz odebranych i przesłanych danych. Rejestr identyfikacji przerwania określa poziom przerwania. Przerwania są wysyłane w przypadku pustych buforów transmisji/odbioru (FIFO), błędu w odbiorze znaku lub innych sytuacji wymagających uwagi procesora.
  5. Generator szybkości transmisji (Zadaj pytanie)
    Ten blok pobiera wejściowy sygnał PCLK i dzieli go przez zaprogramowaną wartość (od 1 do 216 – 1). Wynik jest dzielony przez 16, aby utworzyć zegar transmisji (BAUDOUT).
  6. TXBlock (Zadaj pytanie)
    Blok Transmit obsługuje transmisję danych zapisanych w kolejce FIFO Transmit. Dodaje on wymagane bity startu, parzystości i stopu do przesyłanych danych, aby urządzenie odbiorcze mogło poprawnie obsłużyć błędy i je odebrać.

Interfejs oprogramowania (Zadaj pytanie)
W tej sekcji opisano definicje rejestrów Core16550 i mapowania adresów. Poniższa tabela przedstawia podsumowanie rejestrów Core16550.

PADDR[4:0]

(Adres)

Bit dostępu do zatrzasku dzielnika1

(DLAB)

Nazwa Symbol Wartość domyślna (reset) Liczba bitów Odczyt/Zapis
00 0 Rejestr bufora odbiornika RBR XX 8 R
00 0 Rejestr Nadajników THR XX 8 W
00 1 Zatrzask dzielnika (LSB) DLR 01 godz. 8 Odczyt/zapis
04 1 Zatrzask dzielnika (MSB) DMR 00 godz. 8 Odczyt/zapis
04 0 Rejestr włączający przerwanie IER 00 godz. 8 Odczyt/zapis
08 X Rejestr identyfikacji przerwań IIR C1h 8 R
08 X Rejestr kontroli FIFO FCR 01 godz. 8 W
0C X Rejestr sterowania linią LCR 00 godz. 8 Odczyt/zapis
10 X Rejestr sterowania modemem MCR 00 godz. 8 Odczyt/zapis
14 X Rejestr statusu linii LSR 60 godz. 8 R
18 X Rejestr stanu modemu MSR 00 godz. 8 R
1C X Rejestr zdrapek SR 00 godz. 8 Odczyt/zapis

Ważny

DLAB jest najistotniejszym bitem rejestru sterowania linią (bit LCR 7).

Rejestr bufora odbiornika (Zadaj pytanie)
Rejestr bufora odbiornika zdefiniowano w poniższej tabeli.
Tabela 1-2. Rejestr bufora odbiornika (tylko do odczytu) — adres 0 DLAB 0

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
7..0 RBR XX 0..FFh Odebrane bity danych. Bit 0 to najmniej znaczący bit (LSB) i jest pierwszym odebranym bitem.

Rejestr Nadajników (Zadaj Pytanie)
Rejestr Transmitter Holding zdefiniowano w poniższej tabeli.
Tabela 1-3. Rejestr pamięci nadajnika — tylko do zapisu

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
7..0 THR XX 0..FFh Do przesyłania bitów danych. Bit 0 to najmniej znaczący bit (LSB), który jest przesyłany jako pierwszy.

Rejestr kontrolny FIFO (Zadaj pytanie)
Rejestr sterujący FIFO zdefiniowano w poniższej tabeli.

Bity (7:0) Stan domyślny Ważne stany Funkcjonować
0 1 0, 1 Włącza zarówno transceiver (Tx), jak i receiver (Rx) FIFO. Ten bit musi być ustawiony na 1 podczas zapisywania innych bitów FCR, w przeciwnym razie nie zostaną one zaprogramowane.

0: Wyłączone

1: Włączone

1 0 0, 1 Czyści wszystkie bajty w kolejce FIFO Rx i resetuje logikę licznika. Rejestr przesuwny nie jest czyszczony.

0: Wyłączone

1: Włączone

2 0 0, 1 Czyści wszystkie bajty w kolejce FIFO transmisji i resetuje logikę licznika. Rejestr przesuwny nie jest czyszczony.

0: Wyłączone

1: Włączone

3 0 0, 1 0: Pojedynczy transfer DMA: Transfer wykonywany pomiędzy cyklami magistrali procesora

1: Wielotransferowy DMA: Transfery realizowane do momentu, aż FIFO Rx będzie puste lub FIFO Transmisyjne Operatora Systemu Przesyłowego (TSO) będzie zapełnione. Aby ustawić FCR[0] na 1, należy ustawić FCR[3] na 1.

4, 5 0 0, 1 Zarezerwowane do wykorzystania w przyszłości.
6, 7 0 0, 1 Te bity służą do ustawienia poziomu wyzwalania przerwania FIFO Rx. 7 6 Poziom wyzwalania FIFO Rx (bajty)

0 0 01

0 1 04

1 0 08

1 1 14

Rejestry sterujące dzielnikiem (Zadaj pytanie)
Zegar szybkości transmisji (BR) generowany jest poprzez podzielenie sygnału zegara referencyjnego wejściowego (PCLK) przez 16 i wartość dzielnika.

W poniższej tabeli wymieniono byłegoampwartość dzielnika le dla żądanego BR przy użyciu zegara referencyjnego 18.432 MHz.
Tabela 1-5. Zatrzask dzielnika (LS i MS)

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
7..0 DLR 01 godz. 01..FFh Najmniejszy bit wartości dzielnika
7..0 DMR 00 godz. 00..FFh MSB wartości dzielnika

Tabela 1-6. Prędkości transmisji i wartości dzielnika dla zegara referencyjnego 18.432 MHz

Szybkość transmisji Dzielnik dziesiętny (wartość dzielnika) Błąd procentowy
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%
Szybkość transmisji Dzielnik dziesiętny (wartość dzielnika) Błąd procentowy
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%

Rejestr włączający przerwanie (Zadaj pytanie)
Rejestr włączania przerwań jest zdefiniowany w poniższej tabeli.
Tabela 1-7. Rejestr włączania przerwań

Bity Nazwa Stan domyślny Stan ważny Funkcjonować
0 ERBFI 0 0, 1 Włącza „Przerwanie dostępności odebranych danych” 0: Wyłączone

1: Włączone

1 ETBEI 0 0, 1 Włącza „Przerwanie z powodu pustego rejestru nadajnika” 0: Wyłączone

1: Włączone

2 ELSI 0 0, 1 Włącza „Przerwanie stanu linii odbiorczej” 0: Wyłączone

1: Włączone

3 EDSSI 0 0, 1 Włącza „Przerwanie stanu modemu” 0: Wyłączone

1: Włączone

7..4 Skryty 0 0 Zawsze 0

Rejestr identyfikacji przerwań (Zadaj pytanie)
Rejestr identyfikacji przerwania jest wymieniony w poniższej tabeli. Tabela 1-8. Rejestr identyfikacji przerwania

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
3..0 IIR 1h 0..Ch Bity identyfikacyjne przerwania.
5..4 Skryty 00 00 Zawsze 00
7..6 Tryb 11 11 11: Tryb FIFO

Pole rejestru Identyfikacja przerwania jest zdefiniowane w poniższej tabeli.

Tabela 1-9. Pole rejestru identyfikacji przerwania (IIR)

Wartość IIR [3:0)] Poziom priorytetu Typ przerwania Źródło przerwania Kontrola resetowania przerwań
0110 Najwyższy Status linii odbiorczej Błąd przepełnienia, błąd parzystości, błąd ramki lub przerwanie Odczyt rejestru stanu linii
0100 Drugi Otrzymane dane są dostępne Dostępne dane odbiornika Odczyt rejestru bufora odbiornika lub spadek wartości FIFO poniżej poziomu wyzwalania
Tabela 1-9. Pole rejestru identyfikacji przerwania (IIR) (ciąg dalszy)
Wartość IIR [3:0)] Poziom priorytetu Typ przerwania Źródło przerwania Kontrola resetowania przerwań
1100 Drugi Wskaźnik przekroczenia limitu czasu znaku W ciągu ostatnich czterech odczytów znaku z kolejki Rx FIFO nie odczytano żadnego znaku, a w tym czasie znajdował się w niej co najmniej jeden znak. Odczyt rejestru bufora odbiornika
0010 Trzeci Nadajnik Trzymający rejestr pusty Nadajnik Trzymający rejestr pusty Odczytanie IIR lub zapisanie do rejestru Transmitter Holding
0000 Czwarty Stan modemu Gotowość do wysłania, gotowy zestaw danych, wskaźnik dzwonienia lub wykrycie nośnika danych Odczyt rejestru statusu nowoczesnego

 Rejestr sterowania linią (Zadaj pytanie)
Rejestr sterowania linią jest wymieniony w poniższej tabeli. Tabela 1-10. Rejestr sterowania linią

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
1..0 WLS 0 0..3h Wybierz długość słowa 00: 5 bitów

01: 6 bity

10: 7 bity

11: 8 bity

2 STB 0 0, 1 Liczba bitów stopu 0: 1 bit stopu

1: 1½ bitów stopu, gdy WLS = 00 2: bity stopu w innych przypadkach

3 PIÓRO 0 0, 1 Włącz parzystość 0: Wyłączone

1: Włączone. Parzystość jest dodawana podczas transmisji i sprawdzana podczas odbioru.

4 EPS 0 0, 1 Parzystość parzysta Wybierz 0: Parzystość nieparzysta

1: Parzystość parzysta

5 SP 0 0, 1 Parzystość pamięci 0: Wyłączona

1: Włączone

Poniżej przedstawiono szczegóły parzystości, gdy włączona jest parzystość pamięci: Bity 4..3

11: 0 zostanie wysłane jako bit parzystości i sprawdzone podczas odbioru.

01: 1 zostanie wysłane jako bit parzystości i sprawdzone podczas odbioru.

6 SB 0 0, 1 Ustaw przerwę 0: Wyłączone

1: Ustaw przerwę. SOUT jest wymuszane na 0. Nie ma to żadnego wpływu na logikę nadajnika. Przerwę wyłącza się, ustawiając bit na 0.

7 DLAB 0 0, 1 Bit dostępu do zatrzasku dzielnika

0: Wyłączone. Używany jest normalny tryb adresowania.

1: Włączone. Umożliwia dostęp do rejestrów Divisor Latch podczas operacji odczytu lub zapisu pod adresami 0 i 1.

Rejestr sterowania modemem (Zadaj pytanie)
Rejestr sterowania modemem znajduje się w poniższej tabeli.

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
0 DTR 0 0, 1 Steruje wyjściem gotowości terminala danych (DTRn). 0: DTRn <= 1

1: DTRn <= 0

1 RTS 0 0, 1 Steruje wyjściem żądania wysłania (RTSn). 0: RTSn <= 1

1: RTSn <= 0

2 Wyjście1 0 0, 1 Steruje sygnałem Output1 (OUT1n). 0: OUT1n <= 1

1: OUT1n <= 0

3 Wyjście2 0 0, 1 Steruje sygnałem Output2 (OUT2n). 0: OUT2n <= 1

1: OUT2n <= 0

4 Pętla 0 0, 1 Bit włączania pętli 0: Wyłączone

1: Włączone. W trybie pętli występują następujące zdarzenia:

Wyjście SOUT jest ustawione na 1. Wejścia SIN, DSRn, CTSn, RIn i DCDn są odłączone. Wyjście rejestru przesuwnego nadajnika jest zapętlone z powrotem do rejestru przesuwnego odbiornika. Wyjścia sterujące modemem (DTRn, RTSn, OUT1n i OUT2n) są

podłączone wewnętrznie do wejść sterujących modemem, a piny wyjściowe sterowania modemem są ustawione na 1. W trybie pętli zwrotnej przesyłane dane są natychmiast odbierane, co pozwala procesorowi sprawdzić działanie UART. Przerwania działają w trybie pętli.

7..4 Skryty 0h 0 Skryty

Rejestr statusu linii (Zadaj pytanie)
Rejestr statusu linii zdefiniowano w poniższej tabeli.
Tabela 1-12. Rejestr stanu linii — tylko do odczytu

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
0 DR 0 0, 1 Wskaźnik gotowości danych

1, gdy bajt danych został odebrany i zapisany w buforze odbiorczym lub FIFO. DR jest zerowany, gdy procesor odczytuje dane z bufora odbiorczego lub FIFO.

1 OE 0 0, 1 Wskaźnik błędu przepełnienia

Oznacza, że ​​nowy bajt został odebrany przed odczytaniem bajtu z bufora odbiorczego przez procesor, a wcześniejszy bajt danych został zniszczony. Błąd OE jest czyszczony, gdy procesor odczytuje rejestr stanu linii. Jeśli dane nadal wypełniają pamięć FIFO poza poziomem wyzwalania, po zapełnieniu pamięci FIFO i całkowitym odczytaniu kolejnego znaku wystąpi błąd przepełnienia.

Otrzymany w rejestrze przesuwnym. Znak w rejestrze przesuwnym jest nadpisywany, ale nie jest przenoszony do FIFO.

2 PE 0 0, 1 Wskaźnik błędu parzystości

Wskazuje, że odebrany bajt zawierał błąd parzystości. PE jest czyszczony, gdy procesor odczytuje rejestr stanu linii. Ten błąd jest ujawniany procesorowi, gdy powiązany z nim znak znajduje się na szczycie kolejki FIFO.

3 FE 0 0, 1 Wskaźnik błędu ramkowania

Wskazuje, że odebrany bajt nie miał prawidłowego bitu stopu. FE jest kasowane, gdy procesor odczytuje rejestr stanu linii. UART podejmie próbę resynchronizacji po wystąpieniu błędu ramkowania. W tym celu zakłada, że ​​błąd ramkowania był spowodowany kolejnym bitem startu, więc…ampUsuwa ten bit startowy dwukrotnie, a następnie rozpoczyna odbieranie danych. Ten błąd jest ujawniany procesorowi, gdy powiązany z nim znak znajduje się na szczycie kolejki FIFO.

Tabela 1-12. Rejestr stanu linii — tylko do odczytu (ciąg dalszy)
Bity Nazwa Stan domyślny Ważne stany Funkcjonować
4 BI 0 0, 1 Wskaźnik przerwania

Oznacza, że odebrane dane mają wartość 0, czyli są dłuższe niż czas transmisji pełnego słowa (bit startowy)

+ Bity danych + Parzystość + Bity stopu). BI jest czyszczone, gdy procesor odczytuje rejestr stanu linii. Ten błąd jest ujawniany procesorowi, gdy powiązany z nim znak znajduje się na szczycie kolejki FIFO. W przypadku wystąpienia przerwy, do kolejki FIFO ładowany jest tylko jeden znak zerowy.

5 TRZY 1 0, 1 Wskaźnik pustego rejestru nadajnika (THRE)

Wskazuje, że UART jest gotowy do przesłania nowego bajtu danych. THRE powoduje przerwanie procesora, gdy bit 1 (ETBEI) w rejestrze włączenia przerwania wynosi 1. Ten bit jest ustawiany, gdy pamięć FIFO TX jest pusta. Jest czyszczony, gdy co najmniej jeden bajt zostanie zapisany w pamięci FIFO TX.

6 TEMT 1 0, 1 Wskaźnik pustego nadajnika

Ten bit jest ustawiony na 1, gdy zarówno rejestr FIFO nadajnika, jak i rejestr przesuwny są puste.

7 PIERWSZY 0 1 Ten bit jest ustawiany, gdy w kolejce FIFO występuje co najmniej jeden błąd parzystości, błąd ramkowania lub wskazanie przerwy. Bit FIER jest zerowany, gdy procesor odczytuje LSR, jeśli w kolejce FIFO nie ma już kolejnych błędów.

Rejestr stanu modemu (Zadaj pytanie)
Rejestr statusu modemu znajduje się w poniższej tabeli.
Tabela 1-13. Rejestr stanu modemu — tylko do odczytu

Bity Nazwa Stan domyślny Ważne stany Funkcjonować
0 DCT 0 0, 1 Wskaźnik Delta Gotowość do wysłania.

Oznacza, że ​​stan wejścia CTSn zmienił się od czasu ostatniego odczytu przez procesor.

1 DDSR 0 0, 1 Wskaźnik gotowości zestawu danych Delta

Oznacza, że ​​stan wejścia DSRn zmienił się od czasu ostatniego odczytu przez procesor.

2 TERI 0 0, 1 Detektor wskaźnika krawędzi spływu pierścienia. Wskazuje, że sygnał wejściowy RI zmienił się z 0 na 1.
3 DDCD 0 0, 1 Wskaźnik wykrycia nośnika danych Delta Informuje o zmianie stanu wejścia DCD.

Uwaga: Za każdym razem, gdy bit 0, 1, 2 lub 3 zostanie ustawiony na 1, generowane jest przerwanie stanu modemu.

4 CTS 0 0, 1 Wyczyść do wysłania

Uzupełnienie sygnału wejściowego CTSn. Gdy bit 4 rejestru sterującego modemem (MCR) jest ustawiony na 1 (pętla), bit ten jest równoważny sygnałowi DTR w rejestrze MCR.

5 DSR 0 0, 1 Zestaw danych gotowy

Uzupełnienie sygnału wejściowego DSR. Gdy bit 4 MCR jest ustawiony na 1 (pętla), bit ten jest równoważny RTSn w MCR.

6 RI 0 0, 1 Wskaźnik dzwonka

Uzupełnienie sygnału wejściowego RIn. Gdy bit 4 MCR jest ustawiony na 1 (pętla), ten bit jest równoważny z OUT1 w MCR.

7 DCD 0 0, 1 Wykrywanie nośnika danych

Uzupełnienie wejścia DCDn. Gdy bit 4 MCR jest ustawiony na 1 (pętla), ten bit jest równoważny z OUT2 w MCR.

Rejestr zdrapek (Zadaj pytanie)
Rejestr Scratch zdefiniowano w poniższej tabeli.

Bity Nazwa Stan domyślny Funkcjonować
7..0 SCR 00 godz. Rejestr odczytu/zapisu dla procesora. Nie ma wpływu na działanie UART.

Przepływy narzędzi (Zadaj pytanie)
W tej sekcji znajdują się szczegółowe informacje na temat przepływów narzędzi.

 Inteligentny projekt (Zadaj pytanie)
Moduł Core16550 jest dostępny do pobrania w środowisku projektowania wdrożeń IP SmartDesign. Rdzeń konfiguruje się za pomocą graficznego interfejsu użytkownika w SmartDesign, patrz poniższy rysunek.
Informacje na temat korzystania z programu SmartDesign do tworzenia wystąpień, konfigurowania, łączenia i generowania rdzeni można znaleźć w Podręczniku użytkownika programu SmartDesign.

Rysunek 2-1. Konfiguracja Core16550 

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (5)
Przepływy symulacyjne (Zadaj pytanie)
W każdej wersji uwzględniono środowisko testowe Core16550.
Aby uruchomić symulacje, wybierz opcję „Przepływ testbencha użytkownika” w SmartDesign i kliknij „Generuj projekt” w menu SmartDesign. Testbench użytkownika wybiera się za pomocą graficznego interfejsu użytkownika konfiguracji testbencha głównego.
Gdy SmartDesign generuje projekt Libero SoC, instaluje środowisko testowe użytkownika files.
Aby uruchomić testbench użytkownika, ustaw korzeń projektu na instancję Core16550 w panelu Libero SoC Design Hierarchy i kliknij ikonę Symulacja w oknie SoC Design Flow. Spowoduje to wywołanie ModelSim® i automatyczne uruchomienie symulacji.

Synteza w Libero SoC (Zadaj pytanie)
Kliknij ikonę Synthesis w Libero SoC. Pojawi się okno Synthesis. Projekt Synplify®. Ustaw Synplify tak, aby używał standardu Verilog 2001, jeśli używany jest Verilog. Aby uruchomić Synthesis, kliknij ikonę Uruchom.

Place-and-Route w Libero SoC (Zadaj pytanie)
Aby odpowiednio ustawić trasę projektu i uruchomić syntezę, kliknij ikonę układu w Libero SoC i wywołaj Designera. Core16550 nie wymaga żadnych specjalnych ustawień miejsca i trasy.

Core16550 (Zadaj pytanie)

W tej sekcji znajdują się informacje o parametrach używanych w tym rdzeniu.

Parametry (Zadaj pytanie)
Core16550 nie obsługuje żadnych parametrów najwyższego poziomu.

Interfejsy główne (Zadaj pytanie)

W tej sekcji znajduje się podsumowanie danych wejściowych i wyjściowych.

Opis sygnału I/O (Zadaj pytanie)
Poniżej znajduje się lista definicji Core16550 I/O.

Nazwa Typ Biegunowość Opis
WSTĘPNE Wejście Niski Reset główny
PCLK Wejście Zegar główny

Sygnał PCLK jest dzielony przez wartość rejestrów Divisor. Wynik jest następnie dzielony przez 16, aby uzyskać szybkość transmisji. Sygnał wynikowy to sygnał BAUDOUT. Narastające zbocze tego pinu służy do strobowania wszystkich sygnałów wejściowych i wyjściowych.

NAPISZ Wejście Wysoki Włączony zapis/odczyt APB, stan aktywny-wysoki.

W stanie wysokim dane są zapisywane pod wskazanym adresem. W stanie niskim dane są odczytywane z podanego adresu.

PADDR[4:0] Wejście Adres APB

Magistrala ta zapewnia procesorowi połączenie z adresem rejestru Core16550, w celu odczytu lub zapisu.

PSEL Wejście Wysoki Wybór APB

Gdy ta wartość jest wysoka wraz z wartością PENABLE, odczyt i zapis do Core16550 jest możliwy.

DANE PW[7:0] Wejście Magistrala wejściowa danych

Dane na tej magistrali zostaną zapisane do zaadresowanego rejestru podczas cyklu zapisu.

KARNY Wejście Wysoki Włącz APB

Gdy wartość ta jest wysoka wraz z wartością PSEL, możliwy jest odczyt i zapis do Core16550.

PRDANE[7:0] Wyjście Magistrala wyjściowa danych

Ta magistrala przechowuje wartość adresowanego rejestru podczas cyklu odczytu.

CTSn Wejście Niski Wyczyść do wysłania

Ten aktywny sygnał niski to sygnał wejściowy, który informuje, kiedy podłączone urządzenie (modem) jest gotowe do odbioru danych. Układ Core16550 przekazuje tę informację do procesora poprzez rejestr stanu modemu. Rejestr ten wskazuje również, czy sygnał CTSn zmienił się od ostatniego odczytu rejestru.

DSRn Wejście Niski Zestaw danych gotowy

Ten aktywny sygnał niski to sygnał wejściowy wskazujący, kiedy podłączone urządzenie (modem) jest gotowe do nawiązania połączenia z Core16550. Core16550 przekazuje tę informację do procesora poprzez rejestr stanu modemu. Rejestr ten wskazuje również, czy sygnał DSRn zmienił się od ostatniego odczytu rejestru.

DCDn Wejście Niski Wykrywanie nośnika danych

Ten aktywny sygnał niski to sygnał wejściowy wskazujący, kiedy podłączone urządzenie (modem) wykryło nośną. Procesor Core16550 przekazuje tę informację do procesora za pośrednictwem rejestru stanu modemu. Rejestr ten wskazuje również, czy sygnał DCDn zmienił się od ostatniego odczytu.

GRZECH Wejście Dane wejściowe szeregowe

Dane te są przesyłane do układu Core16550. Są one synchronizowane z pinem wejściowym PCLK.

RIn Wejście Niski Wskaźnik dzwonka

Ten aktywny sygnał niski to sygnał wejściowy, który informuje, kiedy podłączone urządzenie (modem) wykryło sygnał dzwonienia na linii telefonicznej. Procesor Core16550 przekazuje tę informację do procesora poprzez rejestr stanu modemu. Rejestr ten wskazuje również, kiedy wykryto opadające zbocze sygnału RIn.

POŁUDNIE Wyjście Dane wyjściowe szeregowe

Dane te są przesyłane z układu Core16550. Są one synchronizowane z pinem wyjściowym BAUDOUT.

RTSn Wyjście Niski Prośba o wysłanie

Ten aktywny sygnał wyjściowy w stanie niskim służy do informowania podłączonego urządzenia (modemu), że układ Core16550 jest gotowy do wysyłania danych. Jest on programowany przez procesor za pomocą rejestru sterującego modemem.

Tabela 4-1. Podsumowanie sygnałów wejścia/wyjścia (ciąg dalszy)
Nazwa Typ Biegunowość Opis
DTRn Wyjście Niski Gotowy terminal danych

Ten aktywny sygnał wyjściowy w stanie niskim informuje podłączone urządzenie (modem), że układ Core16550 jest gotowy do nawiązania połączenia komunikacyjnego. Jest on programowany przez procesor za pomocą rejestru sterującego modemem.

WYJŚCIE 1n Wyjście Niski Wyjście 1

To aktywne, niskie wyjście jest sygnałem zdefiniowanym przez użytkownika. Procesor programuje ten sygnał za pomocą rejestru sterującego modemem i ustawia go na wartość przeciwną.

WYJŚCIE 2n Wyjście Niski Wyjście 2

Ten aktywny sygnał wyjściowy o niskim poziomie jest sygnałem zdefiniowanym przez użytkownika. Jest on programowany przez procesor za pomocą rejestru sterującego modemem i ustawiany na wartość przeciwną.

WSTĘP Wyjście Wysoki Oczekujące przerwanie

Ten aktywny sygnał wyjściowy o stanie wysokim to sygnał wyjściowy przerwania z procesora Core16550. Jest on zaprogramowany tak, aby aktywował się w przypadku wystąpienia określonych zdarzeń, informując procesor o ich wystąpieniu (więcej szczegółów w sekcji Rejestr Identyfikacji Przerwań). Procesor podejmuje wówczas odpowiednie działanie.

BAUDOUTn Wyjście Niski Wyjście bodowe

Jest to sygnał zegara wyjściowego pochodzący z zegara wejściowego służący do synchronizacji strumienia danych wyjściowych z SOUT.

RXRDYN Wyjście Niski Odbiornik gotowy do odbioru transmisji.

Aktywny, niski sygnał wyjściowy informuje procesor, że sekcja odbiorcza Core16550 jest gotowa do odczytu danych.

TXRDYN Wyjście Niski Nadajnik gotowy do transmisji danych.

Ten aktywny, niski sygnał informuje procesor, że sekcja nadawcza Core16550 ma przestrzeń do zapisu danych do transmisji.

rxfifo_pusty Wyjście Wysoki Odbierz pusty FIFO.

Sygnał ten staje się wysoki, gdy kolejka FIFO odbiorcza jest pusta.

rxfifo_full Wyjście Wysoki Odbierz FIFO w całości.

Ten sygnał staje się wysoki, gdy bufor odbiorczy FIFO jest pełny.

Diagramy czasowe (zadaj pytanie)
W tej sekcji znajdują się diagramy czasowe tego rdzenia.

 Cykl zapisu danych i cykl odczytu danych (Zadaj pytanie)
Na rysunkach 5-1 i 5-2 przedstawiono zależności czasowe pomiędzy cyklami zapisu i odczytu w odniesieniu do zegara systemowego APB, PCLK.

Zarejestruj się Napisz (Zadaj pytanie)
Poniższy rysunek pokazuje, że sygnały Address, Select i Enable są blokowane i muszą być ważne przed narastającym zboczem sygnału PCLK. Zapis następuje na narastającym zboczu sygnału PCLK.

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (6)Zarejestruj się Przeczytaj (Zadaj pytanie)
Poniższy rysunek pokazuje, że sygnały Address, Select i Enable są blokowane i muszą być prawidłowe przed narastającym zboczem sygnału PCLK. Odczyt następuje na narastającym zboczu sygnału PCLK. MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (7)Więcej szczegółów na temat opisów i przebiegów czasowych można znaleźć w specyfikacji AMBA.

Synchronizacja odbiornika (Zadaj pytanie)
Gdy odbiornik wykryje stan niski w przychodzącym strumieniu danych, synchronizuje się z nim. Po zboczu początkowym UART czeka 1.5 × (standardowa długość bitu). Powoduje to, że każdy kolejny bit jest odczytywany w połowie swojej szerokości. Poniższy rysunek przedstawia ten proces synchronizacji.

Rysunek 5-3. Synchronizacja odbiornika

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (8)Działanie stanowiska testowego (Zadaj pytanie)
Z systemem Core16550 dostarczany jest tylko jeden testbench: Verilog User Testbench. Jest to łatwy w użyciu testbench napisany w Verilogu. Testbench jest przeznaczony do modyfikacji przez klienta.

Testbench użytkownika (Zadaj pytanie)
Poniższy rysunek przedstawia schemat blokowy exampprojekt użytkownika i stanowisko testowe.
Rysunek 6-1. Testbench użytkownika Core16550

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (1)Stanowisko testowe użytkownika zawiera prosty przykładampprojekt stanowiący punkt odniesienia dla użytkowników chcących wdrażać własne projekty.
Stanowisko testowe dla exampProjekt użytkownika implementuje podzbiór funkcjonalności testowanych w środowisku testowym weryfikacji. Więcej szczegółów można znaleźć w sekcji „Współczynnik testowy użytkownika”. Koncepcyjnie, jak pokazano na rysunku 6-1, instancjacja Core16550 jest symulowana przy użyciu mikrokontrolera behawioralnego i symulowanego połączenia zwrotnego. Na przykładample, user testbench demonstruje nadawanie i odbieranie przez tę samą jednostkę Core16550, dzięki czemu można zdobyć podstawową wiedzę na temat korzystania z tego rdzenia.
Testbench użytkownika demonstruje podstawową konfigurację oraz operacje nadawania i odbioru procesora Core16550. Testbench użytkownika wykonuje następujące kroki:

  1. Zapisz do rejestrów kontrolnych.
  2. Sprawdź otrzymane dane.
  3. Włącz nadawanie i odbiór.
  4. Odczytaj rejestry sterujące.
  5. Przesyłanie i odbieranie jednego bajtu.

Wykorzystanie i wydajność urządzenia (zadaj pytanie)

W poniższej tabeli przedstawiono dane dotyczące wykorzystania i wydajności procesora Core16550. Tabela 7-1. Wykorzystanie i wydajność procesora Core16550 PolarFire i PolarFire SoC

Szczegóły urządzenia Zasoby BARAN
Rodzina Urządzenie 4LUT DFF Elementy logiczne µ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
Połączenie 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

Rozwiązane problemy (Zadaj pytanie)
W poniższej tabeli wymieniono wszystkie rozwiązane problemy dla różnych wersji procesora Core16550.
Tabela 8-1. Rozwiązane problemy

Wersja Zmiany
wersja 3.4 Core16550 używa słowa kluczowego System Verilog „break” jako nazwy rejestru, co powodowało błąd składni. Problem został rozwiązany poprzez zastąpienie słowa kluczowego inną nazwą.
Dodano obsługę rodziny PolarFire®

Historia zmian (zadaj pytanie)

Historia rewizji opisuje zmiany, które zostały wprowadzone w dokumencie. Zmiany są wymienione według rewizji, zaczynając od najnowszej publikacji.

MICROCHIP -Core16550 -Uniwersalny-asynchroniczny-odbiornik-nadajnik (2)

Obsługa mikrochipów FPGA

Grupa produktów Microchip FPGA wspiera swoje produkty różnymi usługami wsparcia, w tym Customer Service, Customer Technical Support Center, a webStrona internetowa i biura sprzedaży na całym świecie. Klientom zaleca się zapoznanie się z zasobami online Microchip przed skontaktowaniem się z pomocą techniczną, ponieważ jest bardzo prawdopodobne, że na ich pytania udzielono już odpowiedzi.
Skontaktuj się z Centrum Wsparcia Technicznego poprzez webmiejsce na www.microchip.com/support Podaj numer części urządzenia FPGA, wybierz odpowiednią kategorię obudowy i prześlij projekt files podczas tworzenia zgłoszenia do pomocy technicznej.
Skontaktuj się z działem obsługi klienta, aby uzyskać nietechniczne wsparcie dotyczące produktu, takie jak wycena produktów, aktualizacje produktów, informacje o aktualizacjach, status zamówienia i autoryzacja.

  • Z Ameryki Północnej zadzwoń pod numer 800.262.1060
  • Z reszty świata zadzwoń pod numer 650.318.4460
  • Faks z dowolnego miejsca na świecie: 650.318.8044

Informacje o mikroczipie

Znaki towarowe
Nazwa i logo „Microchip”, logo „M” oraz inne nazwy, loga i marki są zarejestrowanymi i niezarejestrowanymi znakami towarowymi Microchip Technology Incorporated lub jej podmiotów stowarzyszonych i/lub spółek zależnych w Stanach Zjednoczonych i/lub innych krajach („Znaki towarowe Microchip”). Informacje dotyczące znaków towarowych Microchip można znaleźć na stronie https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
Numer katalogowy:

Informacja prawna

  • Niniejsza publikacja i zawarte w niej informacje mogą być używane wyłącznie z produktami Microchip, w tym do projektowania, testowania i integrowania produktów Microchip z aplikacją użytkownika. Wykorzystanie tych informacji
    w jakikolwiek inny sposób narusza niniejsze warunki. Informacje dotyczące aplikacji na urządzeniu podawane są wyłącznie dla wygody użytkownika i mogą zostać zastąpione aktualizacjami. Twoim obowiązkiem jest upewnienie się, że Twoja aplikacja jest zgodna ze specyfikacjami. Aby uzyskać dodatkową pomoc, skontaktuj się z lokalnym biurem sprzedaży firmy Microchip lub uzyskaj dodatkową pomoc pod adresem www.microchip.com/en-us/support/design-help/client-support-services
  • INFORMACJE TE SĄ DOSTARCZANE PRZEZ MICROCHIP „TAKIE, JAKIE SĄ”. MICROCHIP NIE SKŁADA ŻADNYCH OŚWIADCZEŃ ANI GWARANCJI ŻADNEGO RODZAJU, WYRAŹNYCH ANI DOROZUMIANYCH, PISEMNYCH ANI USTNYCH, USTAWOWYCH ANI INNYCH, ZWIĄZANYCH Z INFORMACJAMI, W TYM MIĘDZY INNYMI ŻADNYCH DOROZUMIANYCH GWARANCJI NIENARUSZALNOŚCI, PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU LUB GWARANCJI ZWIĄZANYCH Z ICH STANEM, JAKOŚCIĄ LUB WYDAJNOŚCIĄ.
  • W ŻADNYM WYPADKU MICROCHIP NIE PONOSI ODPOWIEDZIALNOŚCI ZA ŻADNE POŚREDNIE, SPECJALNE, KARNE, PRZYPADKOWE LUB WTÓRNE STRATY, USZKODZENIA, KOSZTY LUB WYDATKI JAKIEGOKOLWIEK RODZAJU ZWIĄZANE Z INFORMACJAMI LUB ICH WYKORZYSTANIEM, NIEZALEŻNIE OD PRZYCZYNY, NAWET JEŚLI MICROCHIP ZOSTAŁ POINFORMOWANY O MOŻLIWOŚCI WYSTĄPIENIA SZKÓD LUB SĄ PRZEWIDYWALNE. W NAJSZERSZYM ZAKRESIE DOZWOLONYM PRZEZ PRAWO, CAŁKOWITA ODPOWIEDZIALNOŚĆ MICROCHIP ZA WSZYSTKIE ROSZCZENIA W JAKIKOLWIEK SPOSÓB ZWIĄZANE Z INFORMACJAMI LUB ICH WYKORZYSTANIEM NIE PRZEKROCZY KWOTY OPŁAT, JEŚLI TAKIE BYŁY, KTÓRE ZAPŁACONO BEZPOŚREDNIO MICROCHIP ZA INFORMACJE.
  • Korzystanie z urządzeń Microchip w podtrzymywaniu życia i/lub aplikacjach bezpieczeństwa odbywa się wyłącznie na ryzyko kupującego, a kupujący zgadza się bronić, zabezpieczać i chronić Microchip przed wszelkimi szkodami, roszczeniami, pozwami lub wydatkami wynikającymi z takiego użytkowania. Żadne licencje nie są przekazywane, w sposób dorozumiany lub inny, na mocy jakichkolwiek praw własności intelektualnej Microchip, chyba że zaznaczono inaczej.

Funkcja ochrony kodu mikroprocesorowego
Należy zwrócić uwagę na następujące szczegóły dotyczące funkcji ochrony kodu w produktach Microchip:

  • Produkty Microchip spełniają specyfikacje zawarte w ich konkretnych Kartach Danych Microchip.
  • Firma Microchip uważa, że ​​jej rodzina produktów jest bezpieczna, gdy jest używana zgodnie z przeznaczeniem, zgodnie ze specyfikacjami roboczymi i w normalnych warunkach.
  • Firma Microchip ceni i agresywnie chroni swoje prawa własności intelektualnej. Próby naruszenia zabezpieczeń kodowych produktów Microchip są surowo zabronione i mogą stanowić naruszenie ustawy Digital Millennium Copyright Act.
  • Ani Microchip, ani żaden inny producent półprzewodników nie może zagwarantować bezpieczeństwa swojego kodu. Ochrona kodu nie oznacza, że ​​gwarantujemy, że produkt jest „niezniszczalny”. Ochrona kodu stale ewoluuje. Microchip zobowiązuje się do ciągłego ulepszania funkcji ochrony kodu naszych produktów.

Instrukcja użytkownika
© 2025 Microchip Technology Inc. i jej spółki zależne

Dokumenty / Zasoby

MICROCHIP Core16550 Uniwersalny odbiornik asynchroniczny nadajnik [plik PDF] Instrukcja użytkownika
v3.4, v3.3, Core16550 Uniwersalny asynchroniczny odbiornik-nadajnik, Core16550, Uniwersalny asynchroniczny odbiornik-nadajnik, Asynchroniczny odbiornik-nadajnik, Odbiornik-nadajnik, Nadajnik

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *