Zarejestruj się (technologia cyfrowa). Co to jest rejestr? Jednostki do przechowywania sald w egais

EGAIS dla gastronomii publicznej i nie tylko to dość palący temat, z którym borykają się niemal wszyscy przedsiębiorcy, gdy mają na półkach jakiekolwiek napoje alkoholowe. Globalne zmiany w systemie EGAIS zaszły już dwukrotnie, ale generalnie o drobnostkach milczę. A teraz my wszyscy, koledzy, mamy nową bestię w postaci biuletynu księgowego i pojawienia się Rejestru nr 3 w Zautomatyzowanym Systemie Informacyjnym Jednolitego Państwa.

Od 1 lipca 2018 r. Uczestnicy rynku alkoholi byli zobowiązani do przejścia na fragmentaryczne księgowanie produktów w zaktualizowanej wersji Jednolitego Państwowego Zautomatyzowanego Systemu Informacyjnego. FSRAR opublikował już na swojej stronie internetowej wyjaśnienia dla podmiotów gospodarczych ─ „Zalecenia metodologiczne dotyczące prowadzenia rachunkowości fragmentarycznej w Zautomatyzowanym Systemie Informacyjnym Jednolitego Państwa”, ale wdrożenie nowego systemu księgowego poszło nie tak, więc 289-FZ wydało zielone światło do przełożenia wprowadzenia rachunkowości typu blot na 1 października 2019 r. Generalnie Dzień X nadszedł kilka tygodni temu i warto zastanowić się jak możemy pracować w EGAIS 3.0

Co to jest EGAIS 3.0?

Zadaniem trzeciej aktualizacji Jednolitego Państwowego Zautomatyzowanego Systemu Informacyjnego jest śledzenie każdej butelki lub litra alkoholu od momentu produkcji (lub w niektórych przypadkach importu) do ostatecznej sprzedaży konsumentowi końcowemu, walki lub innego rodzaju utylizacji butelki przez sprzedawcę

Każda butelka oznaczona jest unikalnym identyfikatorem cyfrowym, który zawarty jest w kodzie kreskowym akcyzy (w przypadku alkoholu importowanego) lub federalnym znaku specjalnym (w przypadku lokalnego producenta sprzedającego na terenie Rosji).

Wszystkie dokumenty cyfrowe dotyczące przepływu alkoholu w systemie EGAIS muszą zawierać identyfikator cyfrowy. Pomaga to rządowi śledzić przepływ dowolnej butelki alkoholu i wiedzieć, komu i kiedy została sprzedana.

W nowej wersji EGAIS formularze rejestracyjne 1 i 2 (RFU 1 i RFU 2) nadal pozostają. Formularz Dokumentu nr 1 generowany jest w systemie EGAIS automatycznie, dla każdej partii alkoholu, na wniosek producenta lub importera. Zawiera informacje o każdej partii alkoholu.

RFU 2 to tak naprawdę załącznik do listu przewozowego (listu przewozowego), który wysyłany jest do odbiorcy drogą elektroniczną. Innymi słowy jest to automatycznie przydzielany identyfikator każdej pozycji z TTN.

Najważniejszą zmianą w EGAIS 3.0 jest nowy Rejestr nr 3 i rejestr nr 2 dla grupy alkoholi mocnych

Obecnie mamy trzy rejestry EGAIS

Rejestr nr 1 EGAIS─ magazyn, w celu odzwierciedlenia informacji o partii alkoholu w kontekście RFU 1 i RFU 2

Rejestr nr 2 EGAIS- sala handlowa. Obecnie używa się go tylko do produktów nieoznakowanych (piwo, cydr, poiret i miód pitny), a także mocnych napojów, które nadal są opatrzone staroświeckimi znaczkami. Można tu znaleźć informacje o producencie, nazwie produktu, a także kodzie kreskowym

I oczywiście zagrożenie dla wszystkich uczestników rynku alkoholi Rejestr nr 3 EGAIS– tutaj doprecyzowane są informacje z pierwszego rejestru oraz zawarty jest unikalny identyfikator każdej butelki alkoholu. Dane z tego rejestru są powiązane z unikalnym numerem partii i nie można ich w żaden sposób rozdzielić.

Funkcje rozliczania piwa i mocnego alkoholu

Istnieją tylko dwa rodzaje produktów: oznakowane i nieetykietowane. Jest to uwzględniane przez system EGAIS i wszechmocny FSRAR w następujący sposób:

— nieoznaczone w pierwszym i/lub drugim rejestrze. Całkowite saldo obu to cały alkohol na sali sprzedaży

- oznaczony (tj. każdy alkohol z wyjątkiem piwa, cydru, miodu pitnego i poire) - wpisany tylko do pierwszego i trzeciego rejestru. Tutaj sytuacja jest inna, reszta w pierwszym rejestrze musi dokładnie odpowiadać reszcie w trzecim. Jeśli numer się nie zgadza, masz tylko 30 dni na znalezienie przyczyny, w przeciwnym razie witaj Kodeks wykroczeń administracyjnych

Stare znaczki w EGAIS 3.0?

Jeżeli alkohol został wyprodukowany przed 1 lipca 2018 r. (a jak podaje 289-FZ przed 1 października), to nie jest wymagane, aby zawierał zaktualizowaną markę. Księgowość prowadzona jest w pierwszych dwóch rejestrach i możesz pracować z tym pijakiem, dopóki całkowicie nie wyjdzie z obiegu. Spisujemy to i akceptujemy w sposób, w jaki jesteśmy do tego przyzwyczajeni

Skanowanie każdej butelki w EGAIS

Kiedy na rynku pojawią się nowe marki, będziemy musieli zeskanować każdą butelkę, która jest z nimi dołączona. W zasadzie nie trzeba tego robić, jednak tutaj może nastąpić „przeklasyfikowanie”, tj. marka będzie zarejestrowana w jednej organizacji, ale w rzeczywistości będzie w innej. Jeśli tak się stanie, to w krótkim czasie trzeba wszystko załatwić z przyłączem FSRAR, czego nie chciałby zrobić żaden szanujący się przedsiębiorca, dlatego najlepiej skanować każdą butelkę, która przychodzi przez EGAIS, za pomocą skanera 2D. Skanując natychmiast każdą otrzymaną butelkę i każdą sprzedaną butelkę, uchronisz się przed rozbieżnościami. To prawda, że ​​​​dopóki w obiegu będą stare znaczki, będzie wiele zamieszania.

Co zrobić, jeśli znaczek jest uszkodzony lub nie można go odczytać?

Jeśli otrzymałeś alkohol i widzisz, że znaczek jest uszkodzony lub nie można go odczytać po odebraniu, to moja rada dla branży gastronomicznej jest taka, aby odmówić przyjęcia całej dostawy, w przeciwnym razie będziesz musiał albo sporządzić raport rozbieżności, albo poprosić o duplikat od EGAIS , który następnie należy przykleić do butelki. Kto tego potrzebuje?

Jak pić alkohol (EGAIS)

Po zeskanowaniu marek otrzymanego alkoholu możesz wykonać następujące operacje:

1) Zaakceptuj towar. Pijak stoi w Rejestrze nr 1, po czym łączy markę z Rejestrem nr 3.

2) Częściowo przyjąć towar. Oznacza to, że umożliwienie działowi księgowości sporządzenia raportu rozbieżności dotyczącego niedopuszczalnych stanowisk.

3) Nie przyjmuj towaru

Nieco później zamieszczę instrukcję krok po kroku dotyczącą pracy w systemie EGAIS dla gastronomii.

Kiedy złożyć deklarację dotyczącą alkoholu w 2019 roku?

Deklaracje alkoholu i piwa składane są kwartalnie w następujących terminach:

  • IV kwartał 2018 od 01.01.2019 do 21.01.2019 włącznie
  • I kwartał 2019 od 01.04.2019 do 22.04.2019 włącznie
  • II kwartał 2019 od 01.07.2019 do 22.07.2019 włącznie.
  • III kwartał 2019 od 10.01.2019 do 21.10.2019 włącznie.
  • IV kwartał 2019 od 01.01.2020 do 20.01.2020 włącznie

W 2019 roku termin składania deklaracji dla alkoholu i piwa przypada na dzień wolny od pracy dla wszystkich kwartałów sprawozdawczych z wyjątkiem IV kwartału. Tym samym ostatni dzień sprawozdawczy weekendu zostaje przeniesiony na pierwszy dzień roboczy.

Czy EGAIS można anulować?

Zakończenie EGAIS to mit. Zawsze będziemy z tego powodu cierpieć, ale mam nadzieję, że system zostanie w końcu odbugowany i będzie jak najbardziej dostępny dla ludzi. No cóż, albo przynajmniej przestań tak kłamać

I ostatnia z planowanych innowacji

Nowy Rok 2019 będzie początkiem wprowadzenia eksperymentalnego systemu monitorowania wirtualnej sprzedaży alkoholu. Planuje się przeprowadzić etapowo:

  • 2019 – początek kontroli sklepów internetowych z piwami, cydrami, miodami pitnymi i winami, których butelki oznaczone są specjalnymi oznaczeniami dotyczącymi miejsca pochodzenia i położenia geograficznego;
  • 2020 – sprzedaż alkoholu będzie możliwa wyłącznie na podstawie specjalnej licencji;
  • 2022 – sprzedaż wszystkich rodzajów alkoholi będzie odbywała się wyłącznie za pośrednictwem EGAIS.

Kiedy kasjer sprzedaje butelkę mocnego alkoholu, w EGAIS jest ona pobierana z salda drugiej kasy. Zasada ta obowiązuje od dnia 1 października 2016 r. W rezultacie, jeśli ilość produktów na drugim kasie wynosi zero, jej saldo przechodzi na wartość ujemną, czyli na koniec dnia roboczego kasjer ma ujemne saldo na drugiej kasie. Aby tego uniknąć, należy przenieść produkty z pierwszego rejestru do drugiego.

Jak przenieść towar

W sekcji „Moje produkty” wybierz „Przeniesienie do II Rejestru”, a następnie „Przenieś produkty”. Jeżeli saldo nie było aktualizowane przez dłuższy czas, serwis zrobi to automatycznie. W rezultacie użytkownik zobaczy listę towarów, dla których rejestr nr 2 ma saldo ujemne.

Podczas dokonywania przelewu wskazane zostaną faktury, na których otrzymano towar. System automatycznie wybiera najwcześniejsze dokumenty, gdyż znajdujący się na nich towar najprawdopodobniej został już sprzedany.

Użytkownik powinien sprawdzić listę i kliknąć przycisk Przenieś. EGAIS przetworzy dane i potwierdzi przelew – ujemne saldo w drugim rejestrze zostanie zamknięte.

Na razie usługa umożliwia przelanie dokładnie takiej ilości towaru, jaka jest konieczna do pokrycia ujemnego salda. W późniejszym czasie twórcy planują dodać możliwość przesyłania dowolnej ilości towarów.

Ostatnim razem, gdy rozważaliśmy opcję zwiększenia mocy wyjściowej mikrokontrolera za pomocą układu dekodera, dzisiaj rozważymy bardziej zaawansowaną opcję z wykorzystaniem rejestru przesuwnego 74HC595. Używając tylko jednego mikroukładu, można mieć do dyspozycji dodatkowych 8 wyjść, wykorzystując tylko 3 nóżki mikrokontrolera. A dzięki możliwości rozbudowy, dodając drugi chip, można zwiększyć liczbę wyjść do 16. Jeśli to nie wystarczy, można dodać trzeci i otrzymać do wykorzystania 24 wyjścia, a ten trik można powtarzać tyle razy, ile lubisz. Jednocześnie liczba zajętych nóg mikrokontrolera pozostanie 3, piękna!

Przyjrzyjmy się więc bliżej celowi pinów mikroukładu i nauczmy się kontrolować rejestr przesuwny 74hc595 w Bascom-AVR.

Najpierw zapoznajmy się z wyjściami mikroukładu, a raczej z ich funkcjonalnością. Poniżej znajduje się wycinek z arkusza danych dla 74hc595 z oznaczeniem pinów mikroukładu:


  • Q0…Q7– wyjścia, którymi będziemy sterować. Może znajdować się w trzech stanach: logiczny jeden, logiczne zero i stan Hi-Z o wysokiej rezystancji
  • GND- Ziemia
  • Q7′– wyjście przeznaczone do szeregowego połączenia rejestrów.
  • PAN.– reset rejestru.
  • SH_CP– wejście dla impulsów zegarowych
  • ST_CP– wejście blokujące dane
  • OE– wejście przekształcające wyjścia ze stanu HI-Z w stan pracy
  • DS- wprowadzanie danych
  • VCC– zasilanie 5 V

Logika rejestru

Gdy jest na wejściu zegara SH_CP pojawia się bit logiczny, znajdujący się na wejściu danych DS odczytywane i zapisywane do rejestru przesuwnego. Bit ten jest zapisywany do najmniej znaczącego bitu. Kiedy na wejście zegara dotrze następny impuls wysokiego poziomu, następny bit z wejścia danych zostanie zapisany do rejestru przesuwnego. A bit, który został zapisany wcześniej, zostaje przesunięty o jeden bit w lewo, a jego miejsce zajmuje bit nowo przybyły. Następny impuls zegarowy zapisze trzeci bit, a dwa poprzednie przesuną się dalej. Kiedy wszystkie osiem bitów zostanie wypełnionych i nadejdzie dziewiąty impuls zegarowy, rejestr zaczyna się ponownie wypełniać od najmniej znaczącego bitu i wszystko powtarza się od nowa. Aby dane pojawiły się na wyjściach Q0…Q7 musisz je „złapać”. Aby to zrobić, musisz zastosować wartość logiczną do wejścia ST_CP.

- PAN. resetuje rejestr, ustawiając wszystkie wyjścia Q0…Q7 do logicznego stanu zerowego. Aby wykonać reset, należy przyłożyć logiczne zero do tego wejścia i podać dodatni impuls do wejścia ST_CP. Bardzo przydatna funkcja, ponieważ po podłączeniu zasilania do mikroukładu na wyjściu pojawia się pewna dowolna wartość. Podczas pracy z rejestrem na tym pinie musi znajdować się jednostka logiczna.

- OE(włączenie wyjścia) jeśli zostanie tu zastosowane logiczne 1, wyjścia będą w stanie HI-Z o wysokiej rezystancji. Kiedy zastosujemy logiczne 0 do tego wejścia, wyjścia będą działać.

- Q7′ przeznaczony do szeregowego łączenia rejestrów przesuwnych.

Ale lepiej raz zobaczyć, niż przeczytać dwa razy =), więc spójrzmy na animację:


Bezpośrednia praca z rejestrem

Podczas opanowywania pracy z nieznanym mikroukładem często przydaje się praca z głową, to znaczy bezpośrednie poruszanie kontrolkami stopami, co pozwala lepiej zrozumieć zasady pracy z obiektem testowym. Kierując się więc logiką pracy, napisałem program, który powinien wyprowadzić na wyjście rejestru liczbę binarną 10010010

$plik reg = „attiny2313.dat”
$kryształ = 1000000

Konfig Port = Wyjście

Sh_cpAlias Portb. 3 „noga do impulsów zegarowych
DSAlias Portb. 2 „noga wyjściowa danych
St_cpAlias Portb. 0 „noga do „zatrzaskowania” danych w rejestrze gospodarstwa


„wyjście przez rejestr liczby 146 (w reprezentacji binarnej 10010010)

St_cp= 0 „włącz stopę w tryb rejestrowania danych

DS= 1 „ustaw pierwszy bit
Sh_cp= 0 „podajemy impuls na wyjście zegara
Sh_cp= 1

DS= 0 „ustaw drugi bit
Sh_cp= 0
Sh_cp= 1

DS= 0 „ustaw trzeci bit
Sh_cp= 0
Sh_cp= 1

DS= 1 „ustaw czwarty bit
Sh_cp= 0
Sh_cp= 1

DS= 0 „ustaw piąty bit
Sh_cp= 0
Sh_cp= 1

DS= 0 „ustaw szósty bit
Sh_cp= 0
Sh_cp= 1

DS= 1 „ustaw siódmy bit
Sh_cp= 0
Sh_cp= 1

DS= 0 „ustaw ósmy bit
Sh_cp= 0
Sh_cp= 1

St_cp= 1 „zapisz wprowadzone dane

Koniec


kompilujemy, osadzamy w mikrokontrolerze lub zaglądamy do symulatora i widzimy naszą kombinację na wyjściu.


Działa, wysłany numer pojawia się na wyjściu kasy!

Praca z rejestrem w ten sposób, choć możliwa, jest zbyt uciążliwa i zajmuje dużo pamięci programu. Ale wyraźnie pokazuje całą metodologię pracy z tym mikroukładem. Rozważmy bardziej odpowiednią metodę.

Sterowanie rejestrem 74HC595 w Bascomie za pomocą komendy ShiftOut

Bascom-AVR ma świetny zespół do pracy ze wszystkimi rodzajami interfejsów szeregowych PRZESUNIĘCIE
Samo to polecenie rozłoży liczbę na składowe bitowe i wyśle ​​je sekwencyjnie na dowolny pin mikrokontrolera w tym samym czasie, może wygenerować impulsy zegarowe. W sam raz do pracy z rejestrami przesuwnymi! Składnia polecenia:

SHIFTOUT Datapin, Clockpin, var, opcja


Datapin – port mikrokontrolera do wyjścia danych

Clockpin – port mikrokontrolera do wyprowadzania impulsów zegarowych

Var – dane, które chcemy przesłać do rejestru

Opcja – liczba od 0 do 3, parametr ten określa kolejność wprowadzania danych do rejestru oraz aktywny poziom na linii Zegara, przy którym zapisywany jest bit:
opcja=0 – najbardziej znaczący bit jest pierwszy, Zegar poziom aktywny niski
opcja=1 –
najbardziej znaczący bit jest pierwszy, Zegar poziom aktywny wysoki
opcja=2 –
najmniej znaczący bit jest pierwszy, Zegar poziom aktywny niski
opcja=3 –
najmniej znaczący bit jest pierwszy, Zegar poziom aktywny wysoki

W naszym przypadku, aby móc pracować z rejestrem 74HC595, parametr opcji musi być ustawiony na 1 lub 3.

Aby zatrzasnąć dane w rejestrze, użyj polecenia PulseOut. To polecenie wysyła impuls do gałęzi mikrokontrolera o określonym czasie trwania. Konfiguracja poleceń wygląda następująco:

Wyprowadźmy teraz liczbę 10010001 (145 w systemie dziesiętnym) na wyjście rejestru podłączonego do mikrokontrolera zgodnie z powyższym schematem:

$plik reg = „attiny2313.dat”
$kryształ = 1000000

Ciemny A JakBajt
Konfig Port = Wyjście

A= 145

Gosub Hc595 „przechodzimy do podprogramu wysyłania danych

Koniec

Hc595: „Procedura wysyłania danych

Przesunięcie Portb. 2, Portb. 3, A, 1 „wyślij dane do rejestru
Puls Portb, 0, 5 „Zablokuj dane
Powrót

Po flashowaniu mikrokontrolera widać podobny obraz; wysłana kombinacja bitów jest ustawiana na wyjściu rejestru przesuwnego.


Jak widać sterowanie rejestrem przesuwnym 74HC595 w Bascomie składa się tylko z dwóch linijek kodu i nie nastręcza żadnych trudności.

Zwiększanie głębi bitowej


7.2 Rejestry transferowe

7.2.1 Rejestr zdarzeń naruszeń FIFO (FWEV)

bit 7
RXFIFO3
bit 6
RXFIFO2
bit 5
RXFIFO1
bit 4
-
bit 3
TXFIFO3
bit 2
TXFIFO2
bit 1
TXFIFO1
bit 0
-
RXWARN3-1 rezerwa TXWARN3-1 rezerwa
0 0 0 - 0 0 0 -
R - R -

TXWARN. Ostrzeżenie o zakłóceniu transmisji. Ustaw na „1”, gdy odpowiedni punkt końcowy FIFO transmisji przekroczył limit zdefiniowany przez bit TFWL w rejestrze TXCx i transmisja z odpowiedniego punktu końcowego jest włączona. Bit ten jest kasowany po usunięciu warunku ostrzeżenia o naruszeniu, albo poprzez zapisanie nowych danych do FIFO po wyczyszczeniu FIFO, albo po zakończeniu przesyłania, jak wskazuje bit TX_DONE w rejestrze TXSx.

RXWARN. Ostrzeżenie w recepcji. Ustaw na „1”, gdy odpowiedni punkt końcowy FIFO transmisji przekroczył limit określony przez bit RFWL w rejestrze EPCx. Bit ten jest kasowany po usunięciu warunku ostrzeżenia o naruszeniu, albo poprzez odczyt danych z FIFO, albo po wyczyszczeniu FIFO.

7.2.2 Rejestr masek naruszeń FIFO (FWMSK)

Gdy ustawiony jest odpowiedni bit w rejestrze FWEV, ustawiony jest WARN w rejestrze MAEV. Po wyczyszczeniu odpowiedni bit w rejestrze FWEV nie powoduje ustawienia WARN.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Taki sam opis bitu jak w rejestrze FWEV
0 0 0 0 0 0 0 0
r/w

7.2.3 Rejestr znaczący numeru ramki (FNH)

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
M.F. ul RFC Skryty FN10-8
1 1 0 - 0 0 0
R R z/o - R

FN. Numer ramki. Jest to numer aktualnie odebranej ramki w ostatnim pakiecie SOF. Jeżeli prawidłowy numer ramki nie zostanie odebrany podczas 12060 bitów (maksymalna długość ramki, FLMAX) poprzedniej wymiany, wówczas numer ramki jest sztucznie zwiększany. Jeśli dwie kolejne ramki zostaną pominięte lub nieprawidłowe, bieżący FN zostanie zatrzymany i załadowany numerem ramki z pakietu SOF.

Jeśli młodszy bajt numeru ramki został odczytany przez oprogramowanie sprzętowe przed odczytaniem rejestru FNH, wówczas użytkownik w rzeczywistości czyta zawartość rejestru bufora, który zawiera wartość trzech bitów numeru ramki tego rejestru, gdy młodszy bajt został Czytać. Prawidłowa sekwencja odczytu numeru ramki to: FNL, FNH. Operacje odczytu rejestru FNH, bez uprzedniego czytania rejestru dolnobajtowego numeru ramki (FNL), wczytaj rzeczywistą wartość trzech najmniej znaczących bitów do numeru ramki. Po zresetowaniu FN jest ustawiane na „0”.

RFC. Zresetuj licznik klatek. Ustawienie tego bitu resetuje numer ramki do 0x0000, po czym bit ten zostaje wyzerowany. Ten bit jest zawsze odczytywany jako „0”.

ul. Odblokuj flagę. Bit ten wskazuje, że odebrano co najmniej dwie ramki bez oczekiwanego numeru ramki lub że prawidłowy SOF nie został odebrany w ciągu 12060 bitów od czasu nadejścia. Jeśli ten bit jest ustawiony, numer ramki z następnego ważnego pakietu jest ładowany do FN. Po zresetowaniu flaga ta jest ustawiana na „1”.

M.F. Zagubiona flaga SOF. Bit ten jest ustawiany, gdy numer ramki w odebranym pakiecie SOF nie jest równy oczekiwanej wartości lub gdy SOF nie zostanie odebrany w ciągu 12060 bitów od czasu przybycia. Po zresetowaniu flaga ta jest ustawiana na „1”.

7.2.4 Rejestr dolnobajtowy numeru ramki (FNL)

Rejestr ten zawiera młodszy bajt numeru ramki, jak opisano powyżej. Aby zapewnić spójność, odczytanie tego młodszego bajtu powoduje zablokowanie trzech bitów numeru ramki w rejestrze FNH podczas odczytu rejestru. Prawidłowa kolejność odczytu numeru ramki to: FNL, FNH. Po zresetowaniu FN jest ustawiane na „0”.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
FN7-0
0 0 0 0 0 0 0 0
R

7.2.5 Funkcjonalny rejestr adresowy (FAR)

Rejestr ten ustala adres funkcjonalny urządzenia. Różne numery punktów końcowych są ustawiane indywidualnie poprzez rejestr kontroli punktów końcowych.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
AD_EN AD6-0
0 0 0 0 0 0 0 0
r/w r/w

OGŁOSZENIE. Adres. Pole to zawiera 7-bitowy adres funkcjonalny używany do wysyłania i odbierania wszystkich znaków adresowanych do urządzenia.

AD_EN. Pozwolenie na adresowanie. Gdy bit jest ustawiony na „1”, do porównywania adresów używane są bity AD6-0 (więcej szczegółów można znaleźć w rozdziale 6.2). Po wyczyszczeniu urządzenie nie reaguje na żaden znak na magistrali.

Notatka: Jeśli bit DEF w rejestrze kontrolnym punktu kontrolnego 0 jest ustawiony, wówczas punkt końcowy 0 odpowiada na swój adres domyślny.

7.2.6 Rejestr kontrolny DMA (DMACNTRL)

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
LEGOWISKO IGNNRXTGL DTGL ADMA DMOD DSRC2-0
0 0 0 0 0 0 - 0
r/w r/w r/w r/w r/w r/w

DSRCŹródło DMA. Pole Bity źródła DMA zawiera wartość binarną, która określa, który z punktów końcowych (1...6) jest dostępny do obsługi DMA. Bity DSRC są kasowane podczas resetowania. Tabela 7 przedstawia ustawienia bitów DSRC.

Tabela 7. Opis bitów DSRC

DSRC Numer punktu końcowego
2 1 0
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
1 0 1 6
1 1 X Skryty

DMOD. Tryb DMA. Ten bit określa, kiedy pojawia się żądanie DMA. Jeśli jest wyczyszczone, żądanie DMA pojawi się po zakończeniu transferu. W przypadku transmisji punktów końcowych EP1, EP3 i EP5 dane są przesyłane w całości, jak wskazuje bit TX_DONE (aby wypełnić FIFO nowymi przesyłanymi danymi). W przypadku odbierania punktów końcowych EP2, EP4 i EP6 jest to odzwierciedlane przez bit RX_LAST. Gdy ustawiony jest bit DMOD, żądanie DMA pojawia się, gdy ustawiony jest odpowiedni bit ostrzeżenia o naruszeniu FIFO. Bit DMOD jest kasowany podczas resetowania.

Żądanie DMA z wysyłającego punktu końcowego jest aktywowane do momentu wyczyszczenia stanu żądania. Jeśli DMOD jest ustawiony na „0”, żądania DMA będą pojawiać się albo do czasu, gdy oprogramowanie sprzętowe odczyta odpowiedni rejestr stanu transmisji (TXSx), usuwając w ten sposób bit TX_DONE, lub jeśli bit TX_LAST w rejestrze poleceń transmisji (TXCx) jest zainstalowany sprzętowo- wdrożone oprogramowanie. Jeśli bit DMOD jest ustawiony na „1”, żądania DMA będą pojawiać się do czasu, aż stany ostrzegawcze o naruszeniu FIFO spowodowane albo wysłaniem wystarczającej liczby bajtów do punktu końcowego, albo ustawieniem bitu TX_DONE w wyniku transferu nie zostaną usunięte.

Żądanie DMA z wysyłającego punktu końcowego jest aktywowane do momentu wyczyszczenia stanu żądania. Jeśli DMOD jest ustawiony na „0”, żądania DMA będą pojawiać się do czasu, gdy oprogramowanie sprzętowe odczyta odpowiedni rejestr stanu odbioru (RXSx), usuwając w ten sposób bit RX_LAST, lub jeśli FIFO stanie się puste z powodu wystarczającej liczby cykli odczytu. Jeśli bit DMOD jest ustawiony na „1”, żądania DMA będą pojawiać się do czasu, aż stany ostrzeżeń o naruszeniu FIFO zostaną usunięte lub jeśli punkt końcowy FIFO stanie się pusty z powodu wystarczającej liczby cykli odczytu.

Jeśli DMOD jest ustawione na „0”, a punkt końcowy i DMA są włączone, wówczas pojawia się żądanie DMA, o ile oprogramowanie sprzętowe odczytuje odpowiedni rejestr TXSx lub RXSx, usuwając w ten sposób bit TX_DONE/RX_LAST. Jeśli bit DMOD jest ustawiony na „1”, a punkt końcowy i DMA są włączone, wówczas żądanie DMA występuje tak długo, jak długo występuje alert o naruszeniu FIFO.

ADMA. Automatyczny DMA. Ustawienie tego bitu automatycznie włącza wybrany punkt końcowy odbioru lub transmisji. Przed włączeniem trybu ADMA należy wyczyścić bit DEN w rejestrze kontrolnym DMA (DMACNTRL). Tryb ADMA działa tak długo, jak ustawiony jest dowolny bit inny niż NTGL w rejestrze zdarzeń DMA (DMAEV). Aby zainicjować tryb ADMA, wszystkie bity z wyjątkiem NTGL w rejestrze DMAEV muszą zostać wyczyszczone.

W przypadku operacji odbioru odbiornik jest włączany automatycznie; Po odebraniu pakietu jest on przesyłany poprzez DMA do pamięci.

W przypadku operacji przesyłania pakiet danych jest wysyłany z pamięci za pośrednictwem DMA; nadajnik włącza się automatycznie.

Gdy urządzenie przejdzie w tryb ADMA, istniejący stan punktu końcowego może zostać utracony. Jeśli w FIFO znajdują się już dane, są one resetowane. Bieżący stan RX_EN i TX_EN może również ulec zmianie.

Wyczyszczenie ADMA powoduje wyjście urządzenia z trybu ADMA. DEN może zostać rozliczony w tym samym czasie lub później. Jeśli w tym samym czasie, wszystkie operacje DMA zostaną natychmiast zatrzymane, a oprogramowanie sprzętowe będzie musiało wysłać wszelkie pozostałe dane. Jeśli później, urządzenie zakończy dowolną bieżącą operację DMA przed wyjściem z trybu ADMA (patrz opis bitu DSHL w rejestrze DMAEV).

DTGL. Przełącznik DMA. Bit ten służy do określenia stanu operacji ADMA po inicjalizacji. Podczas inicjalizacji oprogramowanie sprzętowe ustawia ten bit na „1”, jeśli rozpoczyna się od operacji DATA1, i na „0”, jeśli zaczyna się od operacji DATA0.

Zapisanie tego bitu aktualizuje również bit NTGL w rejestrze DMAEV.

IGNNRXTGL. Ignorowanie przełączania RX. Jeśli ten bit jest ustawiony, porównanie pomiędzy bitem NTGL w rejestrze DMAEV i bitem TOGGLE w odpowiednim rejestrze RXSx jest ignorowane podczas operacji odbioru. W takim przypadku niedopasowanie obu bitów podczas operacji odbioru nie zatrzyma operacji ADMA. Jeżeli ten bit nie jest ustawiony, ADMA zatrzymuje się w przypadku niezgodności bitów. Po zresetowaniu bit ten jest ustawiany na „0”.

7.2.7 Rejestr zdarzeń DMA (DMAEV)

Bity w tym rejestrze są używane w trybie ADMA. Bity 0...3 mogą powodować przerwanie, jeśli nie zostaną wyczyszczone, nawet jeśli urządzenie nie ustawiło trybu ADMA. Dopóki wszystkie te bity nie zostaną wyczyszczone, nie można zainicjować trybu ADMA. Tryb ADMA kończy się automatycznie po ustawieniu dowolnego z tych bitów.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Skryty NTGL rezerwa DSIZ DCNT DERR DSHLT
- 0 - 0 0 - 0
- R - Krowa Krowa Krowa Krowa

DSHLT. Zatrzymanie oprogramowania DMA. Ten bit jest ustawiany, gdy operacje ADMA są zatrzymywane przez oprogramowanie sprzętowe. Bit ten jest ustawiany dopiero po zakończeniu wszystkich niezbędnych operacji czyszczenia przez silnik DMA i powrocie do stanu bezczynności. Wykonywane na następujących warunkach:

  • Jeśli bit ADMA zostanie wyczyszczony (a DEN pozostanie ustawiony). W takim przypadku bieżąca operacja została zakończona. Oznacza to, że wszelkie dane w FIFO są przesyłane do pamięci poprzez DMA. Bit DSHLT jest ustawiany dopiero po tym. Należy pamiętać, że DEN pozostaje zainstalowany i może wymagać późniejszego wyczyszczenia.
  • Jeśli DEN zostanie wyczyszczony (ADMA może pozostać ustawiony lub może zostać wyczyszczony w tym samym czasie). To zatrzymuje wszystkie operacje DMA i natychmiast ustawia bit DSHLT. Jeżeli te dane znajdują się w FIFO, to są przechowywane, ale nie przesyłane.
  • Jeśli oprogramowanie sprzętowe spróbuje odczytać, zapisz odpowiednie rejestry EPCx, TXCx, RXCx, TXCx lub RXSx (gdy w rejestrze DMACNTRL ustawione są oba DEN i ADMA). To zatrzymuje wszystkie operacje DMA i natychmiast ustawia bit DSHLT. Operacja odczytu lub zapisu nie ma żadnego efektu.

    DERR. Błąd DMA. Bit ten jest ustawiony, aby wskazać, że pakiet został odebrany lub wysłany nieprawidłowo. Jest również ustawiane, jeśli bit TOGGLE w rejestrze RXSx/TXSx nie jest równy bitowi NTGL w rejestrze DMAEV po wysłaniu/odebraniu pakietu. (Zauważ, że to porównanie ma miejsce, zanim bit NTGL zmieni stan w wyniku transmisji pakietu.)

    W przypadku odbioru DERR jest równoważne RX_ERR. W przypadku transmisji jest to odpowiednik TX_DONE (ustawione) i ACK_STAT (nieustawione). Jeśli bit AEH w rejestrze licznika błędów DMA (DMAERR) jest ustawiony, DERR nie zostanie ustawiony, dopóki DMAERRCNT w rejestrze DMAERR nie zostanie wyczyszczony i nie zostanie wykryty inny błąd. Błędy są obsługiwane w sposób określony w rejestrze DMAERR.

    DCNT. Licznik DMA. Bit ten jest ustawiany, gdy rejestr licznika DMA (DMACNT) ma wartość „0” (patrz rejestr DMACNT).

    DSIZ. Rozmiar DMA. Ten bit jest istotny tylko dla operacji odbioru DMA. Wskazuje, że odebrany pakiet jest mniejszy niż pełna długość FIFO. Zwykle oznacza koniec transmisji wielopakietowej.

    NTGL. Następny przełącznik. Bit ten określa stan przełączania podczas wysyłania następnego pakietu danych (jeśli jest wysyłany) lub stan przełączania podczas oczekiwania na następny pakiet danych (jeśli jest odbierany). Bit ten jest inicjowany poprzez zapisanie bitu DTGL w rejestrze DMACNTRL. Następnie zmienia stan z każdym pakietem wysłanym lub odebranym w punkcie końcowym aktualnie wybranym przez DSRC2-0. Jeśli operacja zapisu DTGL następuje w tym samym czasie co operacja aktualizacji bitów, operacja zapisu ma wyższy priorytet.

    Jeśli transfer nastąpi podczas operacji ADMA, bit DTGL zastępuje odpowiedni bit TOGGLE w rejestrze TXCx. Zapewnia to prawidłowe przełączanie danych USB.

    Należy zauważyć, że dla tych zdarzeń nie ma odpowiednich bitów maski, ponieważ nie są one używane do generowania przerwania.

    7.2.8 Rejestr masek DMA (DMAMSK)

    Dowolny bit w tym rejestrze ustawiony na „1” automatycznie ustawia bit DMA w rejestrze ALTEV, gdy w rejestrze DMAEV wystąpi odpowiednie zdarzenie. W przeciwnym razie ustawienie bitu DMA jest wyłączone. Opis bitów 0…3 można znaleźć w rejestrze DMAEV.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    DSIZ DCNT DERR DSHLT
    - 0 0 - 0
    - r/w r/w r/w r/w

    7.2.9 Rejestr lustrzany (MIR)

    Rejestr ten jest tylko do odczytu. Samo jego odczytanie nie powoduje zmiany stanu rejestru TXSx lub RXSx; oprogramowanie sprzętowe może swobodnie sprawdzić stan kanału.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    STAT
    -
    R
  • STAT. Państwo. Pole to odzwierciedla bity stanu nadajnika lub odbiornika wybrane w polu DSRC2-0 rejestru DMACNTRL (DMA nie musi być aktywne ani włączone). Odpowiada TXSx lub RXSx.

    7.2.10 Rejestr liczników DMA (DMACNT)

    Rejestr ten definiuje maksymalną liczbę określoną dla operacji ADMA.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    AEH DMAERRCNT
    0 0 0 0 0 0 - 0
    r/w r/w

    DCOUNT. Licznik DMA. To pole jest zmniejszane po zakończeniu operacji DMA, aż osiągnie wartość 0. Bit DCNT w rejestrze zdarzeń DMA jest wówczas ustawiany dopiero po pomyślnym zakończeniu następnej operacji DMA. Rejestr ten nie traci na znaczeniu.

    W przypadku operacji odbierania licznik ten jest zmniejszany po pomyślnym odebraniu pakietu, a następnie przesłany do pamięci poprzez DMA.

    W przypadku operacji przesyłania licznik ten jest zmniejszany, gdy pakiet jest przesyłany z pamięci przez DMA, a następnie pomyślnie wysyłany.

    DCOUNT należy ustawić następująco: DCOUNT = (nr pakietu do przesłania) -1

    Jeśli operacja zapisu DMACNT następuje w tym samym czasie co operacja zmniejszania, operacja zapisu ma wyższy priorytet.

    7.2.11 Rejestr błędów DMA (DMAERR)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    FHT HOS TRYB WK rezerwa ENUC ENUSB PNDUC PNDUSB
    0 0 0 - 1 1 1 1
    z/r0 z/o z/o - z/o z/o Krowa Krowa

    DMAERRCNT. Licznik błędów DMA. W połączeniu z możliwością obsługi błędów arytmetycznych licznik ten określa maksymalną liczbę kolejnych błędów magistrali przed zatrzymaniem trybu ADMA. Oprogramowanie sprzętowe może ustawić 7-bitowy licznik na zadaną wartość. Po uruchomieniu ADMA, licznik jest zmniejszany o 1 od ustawionej wartości za każdym razem, gdy na magistrali zostanie wykryty błąd. Każde pomyślne przejście resetuje licznik z powrotem do ustawionej wartości. Po zatrzymaniu trybu ADMA licznik również powraca do ustawionej wartości.

    Jeżeli licznik osiągnie 0 i zostanie wykryty kolejny błędny pakiet, ustawiany jest bit DERR w rejestrze zdarzeń DMA. Szczegóły w rozdziale 7.2.7. Rejestr ten nie traci na znaczeniu.

    DMAERRCNT należy ustawić następująco: DMAERRCNT = 3D (Maksymalna liczba wykonanych prób wysłania) - 1

    Dostęp do zapisu do tego rejestru jest możliwy tylko wtedy, gdy ADMA jest nieaktywna. W przeciwnym razie jest ignorowane. Odczyt tego rejestru przy aktywnym ADMA zwraca aktualną wartość licznika. Odczyt rejestru przy nieaktywnym ADMA zwraca zadaną wartość. Licznik jest zmniejszany tylko wtedy, gdy ustawiono AEH (włączona jest automatyczna obsługa błędów).

    Automatyczna obsługa błędów. Bit ten ma dwa różne znaczenia w zależności od bieżącego trybu przejścia:

  • Tryb nieizochroniczny

    Ten tryb służy do przesyłania dużych tablic, przerwań i sterowania. Ustawienie AEH w tym trybie umożliwia automatyczne przetwarzanie pakietów zawierających błędy CRC lub dopasowanie bitów.

    Jeśli ten bit jest ustawiony podczas operacji transmisji, urządzenie automatycznie ponownie ładuje FIFO i ponownie umieszcza w kolejce pakiet, dla którego kontroler hosta nie zwrócił potwierdzenia. Jeśli ten bit zostanie wyczyszczony, automatyczna obsługa błędów jest wyłączona.

    Jeśli ten bit jest ustawiony podczas operacji odbierania, pakiet odebrany z błędem (zgodnie z definicją bitu DERR w rejestrze DMAEV) jest automatycznie usuwany z FIFO w celu ponownego odebrania pakietu. Jeśli ten bit zostanie wyczyszczony, automatyczna obsługa błędów jest wyłączona.

  • Tryb izochroniczny

    Ustawienie tego bitu pozwala urządzeniu ignorować pakiety odebrane z błędem (zgodnie z definicją bitu DERR w rejestrze DMAEV).

    Jeśli ten bit jest ustawiony podczas operacji odbierania, urządzenie automatycznie czyści i resetuje FIFO w celu odebrania następnego pakietu. Błędny pakiet jest ignorowany i nie jest wysyłany przez DMA. Jeśli ten bit zostanie wyczyszczony, automatyczna obsługa błędów jest wyłączona.

    7.2.12 Rejestr włączenia zasilania (WKUP)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    STOISKO OBR Skryty EP3-0
    0 0 - 0 0 0 0 0
    r/w r/w - R; sprzęt na „0”

    PNDUSB. Oczekiwana obsługa USB. Ten bit wskazuje, że to urządzenie zostanie włączone przez aktywność USB. Wysyła również sygnał żądania przerwania oczekiwania na włączenie zasilania. Bit PNDUSB musi zostać wyczyszczony przez kontroler hosta poprzez zapisanie „0”. Reset sprzętowy ustawia ten bit.

    PNDUC. Czekam na włączenie mikrokontrolera. Bit ten wskazuje, że urządzenie zostanie włączone na żądanie mikrokontrolera. Wysyła również sygnał żądania przerwania oczekiwania na włączenie zasilania. Bit PNDUC musi zostać wyczyszczony przez kontroler hosta poprzez zapisanie „0”. Reset sprzętowy ustawia ten bit.

    ENUSB. Rozdzielczość USB. Gdy jest ustawiony na „1”, bit ten umożliwia włączenie urządzenia po wykryciu aktywności USB.

    ENUC. Rozdzielczość mikrokontrolera. Gdy jest ustawiony na „1”, bit ten umożliwia włączenie urządzenia, gdy mikrokontroler uzyskuje dostęp do urządzenia.

    TRYB WK. W trybie. Ten bit wybiera odstęp, po którym urządzenie generuje przerwanie zasilania (jeśli jest włączone), gdy wystąpi zdarzenie podczas włączania zasilania, jak pokazano poniżej:

    0 - Generuje natychmiastowe przerwanie włączenia

    1 - Generuje przerwanie włączenia po opóźnieniu włączenia

    HOS. Zatrzymaj się przy zawieszeniu. Gdy ten bit jest ustawiony, urządzenie przechodzi w tryb Halt natychmiast po wejściu w stan zawieszenia. Wpisanie „1” w stanie zawieszenia nie ma żadnego efektu.

    FHT. Wymuszone zatrzymanie. Gdy węzeł nie jest podłączony (NAT w rejestrze MCNTRL jest ustawiony na „0”), ustawienie tego bitu powoduje przejście węzła w tryb zatrzymania. Gdy host jest podłączony (NAT na „1”), wpis „1” jest ignorowany.

    7.2.13 Rejestr kontroli punktu końcowego 0 (EPC0)

    Rejestr ten kontroluje punkt końcowy 0.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    rezerwa ACK_STAT TX_DONE TCOUNT4-0
    - 0 0 0 0 0 0 0
    - KR KR R

    PE. Punkt końcowy. To pole zawiera 4-bitowy adres punktu końcowego. Dla punktu końcowego 0 bity te są sprzętowo ustawione na 0000b.

    OBR. Adres domyślny. Gdy ten bit jest ustawiony, urządzenie odpowiada na adres domyślny, niezależnie od zawartości pól FAR6-0/EP03-0. Po wysłaniu znaku IN dla punktu końcowego bit DEF jest automatycznie kasowany.

    Bit ten pomaga w przejściu z adresu domyślnego na adres wyznaczony. Przejście z adresu domyślnego 00000000000b na adres podany podczas numerowania magistrali może zakończyć się niepowodzeniem w środku sekwencji sterującej SET_ADDRESS. Jest to konieczne do zakończenia sekwencji kontrolnej. Jednakże adres musi zostać zmieniony natychmiast po zakończeniu tej sekwencji, aby uniknąć błędów, gdy następna sekwencja sterująca bezpośrednio następuje po poleceniu SET_ADRESS.

    W przypadku resetu USB oprogramowanie sprzętowe ma 10 ms na skonfigurowanie i musi zapisać 0x80 do rejestru FAR i 0x00 do rejestru EPC0. Po otrzymaniu polecenia SET_ADRESS oprogramowanie musi zapisać 0x40 do rejestru EPC0 i 0x80 do rejestru FAR.

    STOISKO.

    1. - Transmisja FIFO jest włączona i odbierany jest symbol IN.

    2. - Odbiór FIFO jest włączony i odebrany zostaje znak OUT.

    Notatka:

    Po przesłaniu potwierdzenia sygnału STALL bity RX_LAST i TX_DONE są ustawiane w odpowiednich rejestrach stanu nadawania/odbioru.

    7.2.14 Rejestr stanu transmisji 0 (TXS0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Skryty IGN_IN SPŁUKAĆ PRZEŁĄCZNIK rezerwa TX_EN
    - 0 0 0 0 0 - 0
    - r/w r/w HW r/w - r/w HW

    TCOUNT. Licznik transferów. Bit ten wskazuje liczbę pustych bajtów dostępnych w FIFO. To pole nigdy nie przekracza 8 dla punktu końcowego 0.

    TX_DONE. Transfer zakończony. Gdy bit jest ustawiony, oznacza to, że pakiet został całkowicie przesłany. Jest kasowany po odczycie tego rejestru.

    ACK_STAT. Stan potwierdzenia. Bit ten wskazuje otrzymany od głównego kontrolera status potwierdzający odebranie wcześniej wysłanego pakietu. Bit ten jest interpretowany, gdy TX_DONE jest ustawione na „1”. Jest ustawiany w momencie otrzymania potwierdzenia; w przeciwnym razie pozostaje oczyszczony. Bit ten jest również kasowany podczas odczytu tego rejestru.

    7.2.15 Rejestr poleceń transmisji 0 (TXC0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Skryty IGN_IN SPŁUKAĆ PRZEŁĄCZNIK rezerwa TX_EN
    - 0 0 0 0 0 - 0
    - r/w r/w HW r/w - r/w HW

    TX_EN. Pozwolenie na przeniesienie. Bit ten umożliwia przesyłanie danych z FIFO. Jest kasowany przez chip po przesłaniu pojedynczego pakietu lub potwierdzeniu STALL w odpowiedzi na symbol IN. Aby rozpocząć transmisję pakietu, należy ustawić tę opcję w oprogramowaniu sprzętowym. Bit RX_EN w rejestrze poleceń odbiorczych 0 (RXC0) ma pierwszeństwo przed tym bitem; ponieważ jeśli ustawione jest RX_EN, bit TX_EN jest ignorowany do momentu wyczyszczenia RX_EN.

    Pakiety o zerowej długości są wyświetlane, gdy ten bit jest ustawiony bez zapisywania jakichkolwiek danych FIFO.

    PRZEŁĄCZNIK.

    SPŁUKAĆ. Zapisanie wartości 1 na tym bicie usuwa wszystkie dane z kontrolnego punktu kontrolnego FIFO, resetuje punkt końcowy do stanu bezczynności, czyści wskaźniki odczytu i zapisu FIFO, a następnie sam się kasuje. Jeśli punkt końcowy używa obecnie FIFO0 do przesyłania danych na USB, czyszczenie jest opóźniane do momentu zakończenia przesyłania. Bit ten jest kasowany po zresetowaniu. Jest to odpowiednik bitu FLUSH w rejestrze RXC0.

    IGN_IN. Ignoruje znak IN. Kiedy ten bit jest ustawiony, punkt końcowy zignoruje każdy znak IN skierowany na jego skonfigurowany adres.

    7.2.16 Rejestr danych transmisji 0 (TXD0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    TXFD
    -
    r/w

    TXFD. Transfer bajtów danych FIFO. Aby zapoznać się z opisem przetwarzania danych, zobacz „Dwukierunkowe operacje punktu końcowego kontroli FIFO0” w sekcji 6.2.2.

    Oprogramowanie sprzętowe oczekuje, że zostanie zapisany tylko użyteczny pakiet danych. PID i CRC16 są generowane automatycznie.

    7.2.17 Odbierz rejestr stanu 0 (RXS0)

    Jest to rejestr stanu odbioru dla punktu końcowego sterowania dwukierunkowego 0. Aby odebrać pakiet SETUP po odebraniu pakietu OUT/SETUP o zerowej długości, dostępne są dwie kopie sprzętowe tego rejestru. Jedna zawiera stan odebrania pakietu o zerowej długości, a druga zawiera stan kolejnego pakietu SETUP z danymi. Jeśli po pakiecie SETUP następuje pakiet o zerowej długości, to pierwszy odczyt tego rejestru pokazuje status pakietu o zerowej długości (z RX_LAST ustawionym na 1 i RCOUNT ustawionym na 0), a drugi odczytuje status pakietu SETUP .

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    rezerwa ORGANIZOWAĆ COŚ PRZEŁĄCZNIK RX_LAST RCOUNT3-0
    - 0 0 0 0 0 0 0
    - KR KR KR R

    RCOUNT. Recepcja. Bit ten wskazuje liczbę bajtów obecnych w RX FIFO. To pole nigdy nie przekracza 8 dla punktu końcowego 0.

    RX_LAST.

    PRZEŁĄCZNIK. Bit ten określa, czy podczas transmisji pakietu używany jest PID. Wartość „0” generuje PID DATA0, a wartość „1” generuje PID DATA1. Ten bit nie jest zmieniany sprzętowo.

    ORGANIZOWAĆ COŚ. Ten bit wskazuje, że pakiet instalacyjny został odebrany. Bit ten nie zmienia się dla pakietu o zerowej długości. Bit ten jest kasowany podczas odczytu tego rejestru.

    7.2.18 Odbierz rejestr poleceń 0 (RXC0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    Skryty SPŁUKAĆ IGN_SETUP IGN_OUT RX_EN
    - 0 0 0 0
    - r/w r/w r/w r/w HW

    RX_EN. Pozwolenie na odbiór. Odbiór znaku OUT jest blokowany po każdym odebraniu pakietu danych lub po zwróceniu potwierdzenia STALL w odpowiedzi na znak OUT. Pakiety o zerowej długości są wyświetlane, gdy ten bit jest ustawiony bez zapisywania jakichkolwiek danych FIFO. Aby ponownie umożliwić odbiór danych, należy wpisać „1” do tego bitu. Odbiór pakietu SETUP jest zawsze dozwolony. W przypadku pakietów SETUP przesyłanych w obie strony (dla danego punktu końcowego), gdy odebrany zostanie ważny pakiet SETUP z innymi znakami innymi niż SETUP, kontroler punktu końcowego odrzuca nowy pakiet SETUP i zwraca potwierdzenie. Zapewnia to przywrócenie stanu, w którym kontroler hosta utracił potwierdzenie pierwszego znaku SETUP.

    SPŁUKAĆ. Zapisanie 1 na tym bicie usuwa wszystkie dane z kontrolnego punktu kontrolnego FIFO, resetuje punkt końcowy do stanu bezczynności, czyści wskaźniki odczytu i zapisu FIFO, a następnie sam się kasuje. Jeśli punkt końcowy używa obecnie FIFO0 do przesyłania danych na USB, czyszczenie jest opóźniane do momentu zakończenia przesyłania. Bit ten jest kasowany po zresetowaniu. Jest on odpowiednikiem bitu FLUSH w rejestrze TXC0.

    IGN_OUT. Ignoruje znak OUT. Gdy ten bit jest ustawiony, punkt końcowy zignoruje każdy znak OUT skierowany na jego skonfigurowany adres.

    IGN_SETUP.

    7.2.19 Rejestr danych transferu 0 (RXD0)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    RXFD
    -
    r/w

    RXFD. Odbierz bajt danych FIFO. Aby zapoznać się z opisem przetwarzania danych, zobacz „Dwukierunkowe operacje punktu końcowego kontroli FIFO0” w sekcji 6.2.2.

    Oprogramowanie sprzętowe oczekuje, że odczyta tylko użyteczny pakiet danych. PID i CRC16 są automatycznie usuwane z przychodzącego strumienia danych.

    7.2.20 Rejestr kontroli punktu końcowego 0 (EPC1…EPC6)

    Każdy jednokierunkowy punkt końcowy ma rejestr EPCx z bitami opisanymi poniżej.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    STOISKO rezerwa ISO EP_EN EP3-0
    0 - 0 0 0 0 0 0
    r/w - r/w r/w r/w

    PE. Punkt końcowy. To pole zawiera 4-bitowy adres punktu końcowego.

    EP_EN. Rozdzielczość punktu końcowego. Gdy ten bit jest ustawiony, pole EP3-0 jest używane do porównywania adresów w połączeniu z polem AD6-0 w rejestrze FAR. Opis w punkcie 6.2. Po wyczyszczeniu punkt końcowy nie reaguje na żaden znak na magistrali USB.

    Notatka: AD_EN w rejestrze FAR umożliwia porównanie globalnego adresu urządzenia. Jeśli odznaczone, urządzenie nie odpowiada na żaden adres, niezależnie od stanu EP_EN.

    ISO. Izochroniczny. Gdy ten bit jest ustawiony na „1”, punkt końcowy jest izochroniczny. Zakłada się, że NAK zostanie wysłany, jeśli punkt końcowy nie jest gotowy, ale jest dozwolony; ponieważ jeśli odebrany zostanie znak IN, a w FIFO nie będzie dostępnych danych do transmisji, lub jeśli odebrany zostanie znak OUT, a FIFO będzie pełne, wówczas nie będzie uzgadniania USB dla transmisji izochronicznej.

    STOISKO. Ustawienie tego bitu powoduje, że chip generuje potwierdzenia sygnału STALL w następujących warunkach:

    3. Transmisja FIFO jest włączona i odbierany jest symbol IN.

    4. Odbiór FIFO jest włączony i odebrany zostaje znak OUT.
    Notatka: Znak SETUP nie powoduje załączenia sygnału STALL, gdy ten bit jest ustawiony.

    7.2.21 Rejestr stanu transmisji X (TXS1, TXS2, TXS3)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    TX_URUN ACK_STAT TX_DONE TCOUNT4-0
    0 0 0 0 0 0 0 0
    KR KR KR R

    TCOUNT. Licznik transferów. Bit ten wskazuje liczbę pustych bajtów dostępnych w FIFO. Jeśli liczba ta jest większa niż 31, zgłaszana jest wartość 31.

    TX_DONE. Transfer zakończony. Gdy bit jest ustawiony, oznacza to, że punkt końcowy odpowiedział na pakiet USB. Trzy warunki mogą spowodować ustawienie bitu:

    1. Cały pakiet danych jest przesyłany w odpowiedzi na symbol IN przy operacji innej niż ISO.

    2. Punkt końcowy wysłał potwierdzenie w odpowiedzi na znak IN.

    3. Ustalona kolejka usług ramek ISO została wysłana lub odrzucona.
    Bit ten jest kasowany podczas odczytu tego rejestru.

    ACK_STAT. Stan potwierdzenia. Bit ten jest interpretowany, gdy ustawiony jest TX_DONE.

    W przypadku operacji innych niż ISO bit ten wskazuje status ACK poprzednio wysłanego pakietu. Ten bit jest sam ustawiany po odebraniu potwierdzenia; w przeciwnym razie zostanie wyczyszczony.

    W przypadku operacji ISO bit ten jest ustawiany, jeśli miało miejsce porównanie młodszych bajtów numeru ramki (patrz „IGN_ISOMSK” w rozdziale 7.2.22) i dane zostały wysłane w odpowiedzi na znak IN. W przeciwnym razie bit ten jest kasowany, FIFO jest kasowane i ustawiane jest TX_DONE.

    Bit ten jest również kasowany podczas odczytu tego rejestru.

    TX_URUN. Wcześniejsze zatrzymanie transmisji FIFO. Bit ten jest ustawiany, jeśli transmitowane FIFO stanie się puste podczas transmisji i nie zostaną zapisane żadne nowe dane do FIFO. Jeśli tak, kontroler architektury sieci (MAC) generuje błąd dopasowania bitów po EOP. Bit ten jest kasowany podczas odczytu tego rejestru.

    7.2.22 Rejestr poleceń transmisji X (TXC1, TXC2, TXC3)

    Każdy punkt końcowy transmisji (1, 3 i 5) posiada rejestr poleceń transmisji z bitami opisanymi poniżej.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    IGN_ISOMSK TFWL1-0 RFF SPŁUKAĆ PRZEŁĄCZNIK OSTATNI TX_EN
    0 0 0 0 0 0 0 0
    r/w r/w r/w HW r/w HW r/w r/w HW r/w HW

    TX_EN. Pozwolenie na przeniesienie. Bit ten umożliwia przesyłanie danych z FIFO. Jest kasowany przez chip po przesłaniu pojedynczego pakietu lub potwierdzeniu STALL w odpowiedzi na symbol IN. Aby rozpocząć transmisję pakietu, należy ustawić tę opcję w oprogramowaniu sprzętowym.

    OSTATNI. Ustawienie tego bitu wskazuje, że pakiet wejściowy został zapisany w FIFO. Służy do wprowadzania strumienia danych do FIFO w trakcie rzeczywistego przesyłania. Jeśli bit LAST nie jest ustawiony i FIFO transmisji stanie się puste podczas transmisji, po EOP nastąpi błąd spójności magistrali. Pakiety o zerowej długości są wskazywane poprzez ustawienie tego bitu bez zapisywania danych do FIFO.

    PRZEŁĄCZNIK. Działanie tego bitu różni się w zależności od tego, czy używane są operacje ISO, czy inne.

    W przypadku operacji innych niż ISO określa użycie PID podczas przesyłania pakietu. Wartość „0” generuje PID DATA0, a wartość „1” generuje PID DATA1. Ten bit nie jest zmieniany sprzętowo.

    W przypadku operacji ISO ten bit i dolne bity licznika ramek (FNL0) działają jako maksimum dla bitu TX_EN w celu zastosowania wstępnego określenia kolejności pakietów dla specjalnych numerów ramek; ponieważ transmisja jest możliwa tylko wtedy, gdy bit 0 w rejestrze FNL jest ustawiony na TOGGLE. Jeśli znak IN nie zostanie odebrany, gdy ten warunek jest spełniony, wówczas zawartość FIFO zostanie wyczyszczona kolejnym SOF. Jeśli punkt końcowy jest ustawiony na ISO, dane są zawsze przesyłane z PID DATA0.

    Ten bit nie jest zmieniany sprzętowo.

    SPŁUKAĆ. Zapisanie 1 na tym bicie usuwa wszystkie dane z odpowiedniego FIFO transmisji, resetuje punkt końcowy do stanu bezczynności i czyści wskaźniki FIFO odczytu i zapisu. Jeśli kontroler architektury sieci (MAC) aktualnie używa FIFO0 do przesyłania danych, dane zostaną usunięte po zakończeniu przesyłania. Po wyczyszczeniu danych bit ten jest resetowany sprzętowo.

    RFF. Uzupełnianie FIFO. Ustawienie OSTATNIEGO bitu powoduje automatyczne zapisanie wskaźnika odczytu transmisji (TXRP) w buforze. Kiedy bit RFF jest ustawiony, buforowany TXRP jest ponownie ładowany do TXRP. Pozwala to użytkownikowi powtórzyć ostatnie przejście, jeśli nie otrzymano potwierdzenia z głównego kontrolera. Jeżeli kontroler warstwy architektury sieci (MAC) aktualnie korzysta z transferu FIFO, protokół TXRP zostanie ponownie załadowany dopiero po zakończeniu transferu. Po ponownym uruchomieniu bit ten jest resetowany sprzętowo.

    TFWL. Przesyłanie limitu ostrzeżenia o naruszeniu FIFO. Bity te określają, ile bajtów można przesłać z odpowiedniego FIFO, zanim wystąpi warunek przedwczesnego zatrzymania. Jeżeli liczba bajtów pozostałych w FIFO jest równa lub mniejsza od wybranego limitu ostrzeżenia o naruszeniu, wówczas ustawiany jest bit TXWARN w rejestrze FWEV. Aby uniknąć przerwań spowodowanych ustawieniem tego bitu (podczas wypełniania FIFO przed rozpoczęciem przesyłania), bit TXWARN jest ustawiany tylko wtedy, gdy włączona jest transmisja z punktu końcowego (w rejestrze TXCx ustawione jest TX_ENx). Patrz tabela 8.

    Tabela 8. Ustawianie limitu ostrzeżenia o naruszeniu FIFO transmisji

    IGN_ISOMSK. Ignoruj ​​​​maskę ISO. Ten bit jest skuteczny tylko wtedy, gdy punkt końcowy jest ustawiony jako izochroniczny. Jeśli bit jest ustawiony, wyłącza blokowanie niektórych numerów ramek za pomocą funkcji przeplatania bitów TOGGLE. W ten sposób dane są przesyłane po odebraniu następnego znaku IN. Jeśli bit jest czysty, dane są przesyłane, gdy FNL0 jest równe TOGGLE. Bit ten jest kasowany po zresetowaniu.

    7.2.23 Rejestr danych transmisji X (TXD1, TXD2, TXD3)

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    TXFD
    -
    w

    TXFD. Transfer bajtów danych FIFO. Opis przetwarzania danych punktu końcowego FIFO można znaleźć w sekcji „Operacje przesyłania danych na punkcie końcowym (TXFIFO1, TXFIFO2, TXFIFO3)” w sekcji 6.2.2. Oprogramowanie sprzętowe oczekuje, że zostanie zapisany tylko użyteczny pakiet danych. PID i CRC16 są automatycznie wstawiane do przychodzącego strumienia danych.

    7.2.24 Odbierz rejestr statusu X (RXS1, RXS2, RXS3)

    Każdy odbierający kanał punktu końcowego (2, 4 i 6) ma jeden rejestr stanu odbioru z bitami zdefiniowanymi poniżej. Aby odebrać pakiet SETUP po odebraniu pakietu OUT o zerowej długości, istnieją dwie kopie sprzętowe tego rejestru. Jedna zawiera stan odebrania pakietu o zerowej długości, a druga zawiera stan kolejnego pakietu SETUP z danymi. Jeśli po pakiecie SETUP następuje pakiet o zerowej długości, wówczas pierwszy odczyt tego rejestru wskazuje status pakietu o zerowej długości, a drugi odczytuje status pakietu SETUP.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    RE_ERR ORGANIZOWAĆ COŚ PRZEŁĄCZNIK RX_LAST RCOUNT3-0
    0 0 0 0 0 0 0 0
    KR KR CoR HW KR R

    RCOUNT. Recepcja. Bit ten wskazuje liczbę bajtów obecnych w punkcie końcowym odbierającego FIFO. To pole nigdy nie przekracza 15 dla punktu końcowego 0.

    RX_LAST. Otrzymano ostatnie bajty. Wskazuje, że potwierdzenie zostało wysłane po pomyślnym zakończeniu operacji odbioru. Jest kasowany po odczycie tego rejestru.

    PRZEŁĄCZNIK. Działanie tego bitu różni się w zależności od tego, czy używana jest operacja ISO, czy nie.

    W przypadku operacji innych niż ISO wartość „0” oznacza, że ​​pakiet z PID DATA0 został pomyślnie odebrany, a wartość „1” oznacza, że ​​ten pakiet ma PID DATA1.

    W przypadku operacji ISO bit ten jest wskazywany przez dolne bity licznika ramek (FNL0) po pomyślnym odbiorze dla tego punktu końcowego.

    Bit ten jest resetowany do „0” podczas odczytu rejestru RXSx.

    ORGANIZOWAĆ COŚ. Ten bit wskazuje, że pakiet instalacyjny został odebrany. Bit ten jest kasowany podczas odczytu tego rejestru.

    RX_ERR. Błąd odbioru. Gdy bit jest ustawiony, oznacza to błąd warstwy sieciowej, taki jak błąd dopasowania bitu lub CRC. Jeśli ten bit jest ustawiony, oprogramowanie sprzętowe musi wyczyścić odpowiedni FIFO.

    7.2.25 Rejestr poleceń odbioru X (RXC1, RXC2, RXC3)


    Każdy z odbierających punktów końcowych (2,4 i 6) ma jeden rejestr poleceń odbiorczych z bitami opisanymi poniżej.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    rezerwa RFWL rezerwa SPŁUKAĆ IGN_SETUP rezerwa RX_EN
    - 0 0 - 0 0 - 0
    - r/w - r/w r/w - r/w

    RX_EN. Pozwolenie na odbiór. Odbiór znaku OUT jest blokowany po każdym odebraniu pakietu danych lub po zwróceniu potwierdzenia STALL w odpowiedzi na znak OUT. Aby ponownie umożliwić odbiór danych, należy wpisać „1” do tego bitu. Odbiór pakietu SETUP jest zawsze dozwolony. W przypadku pakietów SETUP przesyłanych w obie strony (dla danego punktu końcowego), gdy odebrany zostanie prawidłowy pakiet SETUP z innymi znakami innymi niż SETUP, odbierający punkt końcowy odrzuca nowy pakiet SETUP i zwraca potwierdzenie. Jeśli w jakimkolwiek innym przypadku odbierająca maszyna stanu nie może zaakceptować pakietu SETUP, wówczas nie można wygenerować HANDSHAKE.

    IGN_SETUP. Ignorowanie symbolu SETUP. Gdy ten bit jest ustawiony, punkt końcowy zignoruje każdy znak SETUP skierowany na jego skonfigurowany adres.

    SPŁUKAĆ. Zapisanie 1 na tym bicie usuwa wszystkie dane z kontrolnego punktu kontrolnego FIFO, resetuje punkt końcowy do stanu bezczynności i czyści wskaźniki odczytu i zapisu FIFO. Jeśli kontroler architektury sieci (MAC) aktualnie używa FIFO0 do odbierania danych, opróżnianie jest opóźniane do momentu zakończenia odbioru.

    RFWL1-0. Odbieranie limitu ostrzeżenia o naruszeniu FIFO. Bity te określają, ile bajtów można odebrać z odpowiedniego FIFO, zanim wystąpi warunek przerwania. Jeżeli liczba pustych bajtów pozostałych w FIFO jest równa lub mniejsza od wybranego limitu ostrzeżenia o naruszeniu, wówczas ustawiany jest bit RXWARN w rejestrze FWEV.

    Tabela 9: Ustawienie limitu otrzymywania alertów o naruszeniu FIFO

    7.2.26 Transmisja rejestru danych X (RXD1, RXD2, RXD3)

    Każdy z trzech odbiorczych punktów końcowych FIFO ma jeden rejestr danych odbiorczych z bitami opisanymi poniżej.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
    RXFD
    -
    r/w

    RXFD. Odbierz bajt danych FIFO. Aby zapoznać się z opisem przetwarzania danych punktu końcowego FIFO, zobacz „Operacje odbierania punktu końcowego (RXFIFO1, RXFIFO2, RXFIFO3)” w sekcji 6.2.2.

    Oprogramowanie sprzętowe oczekuje, że odczyta tylko użyteczny pakiet danych. PID i CRC16 są przerywane przez odbierającą maszynę stanu.

    7.3 Umieszczenie rejestru

    Tabela 10 zawiera listę wszystkich rejestrów urządzeń, ich adresy i skróty.

    Tabela 10. Karta pamięci USBN9603/4

    Adres Zarejestruj mnemonik Zarejestruj nazwę
    0x00 MCNTRL Siedziba
    0x01 CCONF Konfiguracja zegara
    0x02 Skryty
    0x03 ELIMINOWAĆ Identyfikator modyfikacji
    0x04 DALEKO Adres funkcjonalny
    0x05 NFSR Stan funkcjonalny węzła
    0x06 MAEV Główne wydarzenie
    0x07 MAMSK Główna maska
    0x08 ALTEW Wydarzenie alternatywne
    0x09 ALTMSK Przeplatająca się maska
    0x0A TXEV Wydarzenie transferowe
    0x0B TXMSK Maska transmisyjna
    0x0C RXEV Impreza powitalna
    0x0D RXMSK Maska recepcyjna
    0x0E NAKEW Wydarzenie NAK
    0x0F NAKMSK Maska NAK
    0x10 FWEV Zdarzenie ostrzegające o naruszeniu FIFO
    0x11 FWMSK Maska ostrzegająca o naruszeniach FIFO
    0x12 FNH Wysoki bajt numeru ramki
    0x13 FNL Junior kupuje numer ramy
    0x14 DMACNTRL Zarządzanie DMA
    0x15 DMAEV Wydarzenie DMA
    0x16 DMAMSK Maska DMA
    0x17 MIR Lustro
    0x18 DMACNT Licznik DMA
    0x19 DMAERR Licznik błędów DMA
    0x1A Skryty
    0x1B W.K.U.P. Włączenie
    0x1C - 0x1F Skryty
    0x20 EPC0 Zarządzanie punktami końcowymi 0
    0x21 TXD0 Transfer danych 0
    0x22 TXS0 Status przelewu 0
    0x23 TXC0 Polecenie przeniesienia 0
    0x24 Skryty
    0x25 RXD0 Odbierz dane 0
    0x26 RXS0 Odbierz stan 0
    0x27 RXC0 Odbierz polecenie 0
    0x28 EPC1 Zarządzanie punktami końcowymi 1
    0x29 TXD1 Transfer danych 1
    0x2A TXS1 Stan przeniesienia 1
    0x2B TXC1 Polecenie przeniesienia 1
    0x2C EPC2 Zarządzanie punktami końcowymi 2
    0x2D RXD1 Odbierz dane 1
    0x2E RXS1 Odbierz stan 1
    0x2F RXC1 Odbierz polecenie 1
    0x30 EPC3 Zarządzanie punktami końcowymi 3
    0x31 TXD2 Transfer danych 2
    0x32 TXS2 Stan przeniesienia 2
    0x33 TXC2 Polecenie przeniesienia 2
    0x34 EPC4 Zarządzanie punktami końcowymi 4
    0x35 RXD2 Odbierz dane 2
    0x36 RXS2 Odbierz stan 2
    0x37 RXC2 Odbierz polecenie 2
    0x38 EPC5 Zarządzanie punktami końcowymi 5
    0x39 TXD3 Przesyłanie danych 3
    0x3A TXS3 Stan przeniesienia 3
    0x3B TXC3 Polecenie przeniesienia 3
    0x3C EPC6 Zarządzanie punktami końcowymi 6
  • Rejestr. Rejestr zmianowy

    Rejestr to urządzenie składające się z przerzutników, służące do wykonywania szeregu działań na liczbach binarnych. Tym, którzy nie wiedzą co to jest wyzwalacz, polecamy zapoznać się z najprostszym wyzwalaczem RS.

    Najprostszą funkcją rejestrów jest zapamiętywanie liczby i przechowywanie jej przez długi czas. Urządzenia te nazywane są rejestrami pamięci. Oto prosty przykład.

    Liczba do zapisania podawana jest na wejścia D0 - D2. Gdy tylko na wejściu C pojawi się impuls synchronizacyjny, do wyzwalacza zostaje wpisany numer, zmieniając ich stan. Rysunek przedstawia trzybitowy rejestr przechowujący. Gdy na wejścia zostanie podana liczba 111 2, pojawi się ona także na bezpośrednich wyjściach wyzwalaczy ( Pytanie 0 - Pytanie 2). Przy odwrotnych wyjściach ( Pytanie 0 - Pytanie 2) będzie naturalnie wynosić 000 2 . Sygnał R ( Resetowanie) lub reset, przerzutniki ustawiane są w stan zerowy.

    Zazwyczaj używane są rejestry składające się z 4, 8 lub 16 przerzutników. Obraz rejestru czterobitowego na schematach obwodów może wyglądać następująco.

    Na rysunku nie pokazano odwrotnych wyjść wyzwalaczy i sygnału R. Rejestry są zawsze oznaczone literami łacińskimi RG. Jeśli rejestr się przesuwa, pod oznaczeniem rysowana jest strzałka skierowana w lewo, w prawo lub podwójnie.

    Rejestry przesuwne lub rejestry przesuwne.

    Rejestr przesuwny to urządzenie składające się z kilku połączonych szeregowo przerzutników, których liczba określa pojemność rejestru. Rejestry są szeroko stosowane w informatyce do konwersji kodów. Równolegle do szeregowego i odwrotnie.

    Ponadto podstawą są rejestry przesuwne ( ALU) urządzenia arytmetyczno-logicznego, gdyż przy przesunięciu liczby binarnej zapisanej w rejestrze o jedną cyfrę w lewo liczba ta jest mnożona przez dwa, a przy przesunięciu liczby o jedną cyfrę w prawo liczba ta jest dzielona przez dwa . Dlatego najbardziej rozpowszechniony odwracalny Lub dwukierunkowy rejestruje.

    Rozważmy czterobitowy rejestr przesuwny, który konwertuje szeregowy kod binarny na równoległy kod binarny. Zastosowanie kodu seryjnego jest uzasadnione faktem, że jedną linią można przesłać ogromną ilość informacji. Przykładem tego jest uniwersalna magistrala szeregowa - port USB dowolnego urządzenia. Liczba wyzwalaczy w tym rejestrze może być dowolna. Wystarczy podłączyć wyjście bezpośrednie Pytanie 3 Z D wejście następnego wyzwalacza i tak dalej, aż do osiągnięcia wymaganej wydajności.

    Rejestr działa w następujący sposób. Na wejściu pojawia się pierwszy bit informacji D0. Jednocześnie z tym bitem na wejście pojawia się impuls zegarowy Z. Wejścia Z wszystkie wyzwalacze zawarte w rejestrze są ze sobą łączone. Wraz z nadejściem pierwszego impulsu zegarowego poziom na wejściu D0 zapisywane do pierwszego wyzwalacza i z wyjścia Pytanie 0 dochodzi do wejścia następnego wyzwalacza, ale zapis do drugiego wyzwalacza nie następuje, ponieważ impuls zegarowy już się zakończył.

    Kiedy nadejdzie kolejny impuls zegarowy, poziom obecny na wejściu drugiego przerzutnika jest w nim zapisywany i trafia na wejście trzeciego przerzutnika. Jednocześnie w pierwszym przerzutniku zapisywany jest kolejny bit informacji. Po nadejściu czwartego impulsu zegarowego poziomy logiczne, które zostały kolejno odebrane na wejściu, zostaną zapisane w czterech przerzutnikach rejestru D0.

    Powiedzmy, że są to poziomy 0110 2. Tę liczbę binarną można następnie wyświetlić, podłączając diody LED do wyjść przerzutników. W ten sposób rozważany rejestr jest przedstawiony na schemacie.

    Widać, że na konwencjonalnym obrazie znajduje się strzałka - wskaźnik, że jest to rejestr przesuwny.

    Przyjrzyjmy się, jak działa czterobitowy uniwersalny rejestr przesuwny. K155IR1(analogowy - SN7495N). Oto jego wewnętrzna struktura.

    Rejestr zawiera cztery przerzutniki typu D, które połączone są ze sobą za pomocą dodatkowych elementów logicznych AND - OR, co pozwala na realizację różnych funkcji. Na schemacie:

      V2 - wejście sterujące. Służy do wyboru trybu pracy rejestratora.

      Q1 - Q4 wyjścia wyzwalaczy, z których usuwany jest kod równoległy.

      V1 - wejście do podania kodu seryjnego.

      C1, C2 - impulsy zegarowe.

      D1 - D4 - wejścia do zapisu kodu równoległego.

    Algorytm działania rejestru jest następujący. Jeśli do wejścia V2 zostanie przyłożony niski potencjał, do C1 zostaną przyłożone impulsy zegarowe, a do wejścia V1 zostaną podane bity informacyjne, wówczas rejestr przesunie się w prawo. Po otrzymaniu czterech bitów na wyjściach przerzutników Q1 - Q4 otrzymujemy kod równoległy. W ten sposób kod seryjny jest konwertowany na kod równoległy.

    W przypadku konwersji odwrotnej kod równoległy jest zapisywany na wejściach D1 - D4, przykładając wysoki potencjał do wejścia V2 i impulsy zegarowe do wejścia C2. Następnie, przykładając niski potencjał do wejścia V2 i impulsy zegarowe do wejścia C1, przesuwamy zarejestrowany kod, a kod seryjny jest usuwany z wyjścia ostatniego wyzwalacza.

    Pod względem budowy jest to jeden z najprostszych rejestrów przesuwnych.

    Rejestry przesuwne w technologii cyfrowej mogą służyć jako podstawa do montażu zespołów o ciekawych właściwościach. Są to na przykład liczniki pierścieniowe, które nazywane są licznikami Johnsona. Taki licznik ma liczbę stanów dwukrotnie większą niż liczba tworzących go przerzutników. Na przykład, jeśli licznik pierścieniowy składa się z trzech przerzutników, to będzie miał sześć stabilnych stanów. Na wejście licznika nie jest dostarczane nic poza impulsami zegarowymi. W stanie początkowym wszystkie przerzutniki są „resetowane”, to znaczy na bezpośrednich wyjściach wyzwalaczy znajdują się zera logiczne, ale na wejściu D pierwszy wyzwalacz z odwrotnego wyjścia trzeciego wyzwalacza jest jednostką logiczną. Zacznijmy wysyłać impulsy zegarowe i proces się rozpocznie.

    Tabela prawdy wyraźnie pokazuje, jak zmienia się kod binarny, gdy nadejdzie sześć impulsów zegarowych.

    N Pytanie 2 Pytanie 1 Pytanie 0
    1 0 0 1
    2 0 1 1
    3 1 1 1
    4 1 1 0
    5 1 0 0
    6 0 0 0

    Teraz już wiesz, czym jest rejestr i jak można go wykorzystać w praktyce. Podstawą każdego rejestru jest wyzwalacz. Liczba przerzutników w rejestrze określa jego pojemność. Ci, którzy interesują się mikrokontrolerami, wiedzą, że najważniejszym elementem każdego mikrokontrolera, czy to PIC, AVR, STM czy MSP, jest rejestr.

    Ładowanie...Ładowanie...