Czy kiedykolwiek zastanawiałeś się, jak działają cyfrowe urządzenia audio? A może zawsze zastanawiałeś się, jak przesłać szeregowo cyfrowy dźwięk między układami? Odpowiedzi na Twoje pytania kryją się w protokole I2S.
Z wieloma technicznymi terminami i skrótami, łatwo jest myśleć o I2S jako o błędzie typograficznym wersji I2C. Ale jest to rzeczywisty protokół i to solidny.
Podobnie, większość ludzi myli I2C z I2S, co prowadzi do pewnego zamieszania wokół tych dwóch protokołów. Na szczęście jesteśmy tutaj, aby pomóc odróżnić te dwa.
Stąd w tym artykule dowiesz się wszystkiego o protokole I2S i jak zrobić obwód odtwarzacza cyfrowego z I2S.
Co to jest interfejs I2S?
Producenci potrzebowali standardowych struktur komunikacyjnych, aby zwiększyć elastyczność systemu. Tak więc firma NXP (dawniej Philips Semiconductors) opracowała protokół Inter-IC Sound (I2S) cztery lata po bardziej znanym I2C w latach 80-tych.
Obecnie podstawowym celem I2S jest ułatwienie rozwoju cyfrowego sprzętu audio poprzez standaryzowany interfejs.
Stąd magistrala I2S będzie zarządzać tylko sygnałem audio na dowolnym audio IC, podczas gdy inne sygnały, takie jak sterowanie i podkodowanie, będą przesyłane oddzielnie. Ponadto magistrala I2S posiada tylko trzy linie, co pomaga ograniczyć dostępne piny. Do linii tych należą:
SD (Serial data line)
SCK (ciągła linia zegara szeregowego)
WS (Word select line)
I2S Protocol-Charakterystyka I2S
Interfejs I2S obsługuje trzy konfiguracje: Konfiguracje nadajnika, odbiornika i kontrolera.
Sprawdź poniższe schematy ilustrujące konfiguracje:
I2S napędza dane na linii danych szeregowych (SD), natomiast linia WS jest podobna do kanału audio (lewego lub prawego), który nadajemy. Ponadto ostatnia linia (clock line) odpowiada za przenoszenie zegara szeregowego.
Jak wskazuje schemat, sygnały WS i SCK możesz generować za pomocą odbiornika, nadajnika lub komponentów kontrolera innej firmy. Komponent, który wytwarza sygnały WS i SCK jest urządzeniem podstawowym. Trudno jest zdefiniować urządzenie kontrolne dla systemu z wieloma odbiornikami i nadajnikami. Tak więc, magistrala I2S reguluje cyfrowe dane audio pomiędzy różnymi układami scalonymi.
Co więcej, każda z trzech linii I2S ma inną charakterystykę.
Przyjrzyjmy się bliżej tym charakterystykom.
I2S Protocol-Serial Data (SD)
Na tej linii I2S transmituje dane jako pierwsze MSb. Nie ma też zdefiniowanej długości słowa między nadajnikiem a odbiornikiem. Jednak nadajnik wysyła tylko długość słowa, podczas gdy odbiornik zbiera to, co jest mu potrzebne.
Możesz również taktować nowe bity danych na opadającej i rosnącej granicy zegara. Ale kluczowe jest taktowanie bitów danych na rosnącej krawędzi. Stąd najlepszą metodą taktowania bitów danych powinno być taktowanie danych na krawędzi opadającej przed taktowaniem ich na krawędzi rosnącej.
Zauważ jednak, że I2S nie zawiera nowych okresów zegarowych, które zwykle otrzymujesz między słowami. Zamiast tego, MSb jednego słowa przychodzi bezpośrednio po LSb słowa poprzedzającego.
Word Select (WS)
Rzeczywiście, linia słowa select jest sygnałem wyboru kanału. Kontroluje ona kanał, który wybiera nadajnik. Tak więc na tej linii można mieć dwa tryby, w tym logiczny wysoki i logiczny niski.
Dla logiki niskiej, wskazuje ona, że słowo, które przesyłasz na WS jest częścią strumienia danych lewego kanału audio. Jeśli jej logika jest wysoka, to wskazuje na prawy kanał audio na WS.
Jeśli jednak chcesz kontrolować przetwarzanie danych zarówno po stronie odbiorcy, jak i po stronie nadawcy, powinieneś to wiedzieć Przekształcenie sygnału w usługę WS powinno być cyklem zegara, zanim protokół zakończy słowo danych
I2S Protocol-Zegar czasu
W rzeczywistości linia zegara na I2S nigdy nie przestaje działać, dzięki temu I2S nie określa maksymalnej szybkości transmisji Gdy I2C jest w trybie sterowania, linia zegara jest również sygnałem synchronicznym dostarczanym przez urządzenie zewnętrzne Jest wygenerowany przez składniki w trybie głównym
Protokół I2S
W zależności od lokalizacji SD WS i SCK, mamy trzy tryby działania protokołu 12S
Dostępne są między innymi: Wyrównanie do prawej, Wyrównanie do lewej i Wyrównanie do lewej strony
I2S Protocol-Szablon operacji wyrównania do prawej
Ten standard jest znany również jako japoński lub Sony W tym trybie pracy lewy kanał LSB jest najpierw poprawny wzdłuż SCK/BCLK, a następnie obniża się wzdłuż efektywnego wzdłuż usługi WS W przeciwieństwie do tego, LSB prawego kanału wznosi się wzdłuż poprzedniego SCK/BCLK wzdłuż wzdłuż wcześniejszego korytarza
Jedną z wad kryteriów wyrównywania po prawej stronie jest to, że odbiorca musi wcześniej określić długość litery dla danych, które mają zostać przesłane
Szablon operacji wyrównania do lewej
Wyrównanie do lewej różni się od wyrównywania do prawej W rzeczywistości nie ma minutowego opóźnienia w kwestii BCLK
Po wszelkich zmianach w usłudze WS oba kanały mają poprawne MSB-pragnienia na głównej granicy podniesienia BCLK/SCK Dlatego w przeciwieństwie do trybu wyrównywania do prawej, nie trzeba znać długości słowa przed przesłaniem
I2S Protocol-Phillips (standard)
W rzeczywistości standard Phillipsa jest specjalnym wariantem lewego wyrównania Co ciekawe, ten standard zmienił pozycję zegara od standardowego wyrównania do lewej, co spowodowało opóźnienie, które zmieniło ją w coś innego
W tym miejscu dwa kanały MSB wznoszą się wzdłuż efektywnego korzystania z drugiego BLK/SCK tylko po jakichkolwiek zmianach w usłudze WS
Uwaga, strzały Podczas korzystania z trybu I2S należy zachować ostrożność W przypadku trybów wyrównywania do prawej i do lewej dostępna jest liczba osób

Philips działa w dwóch odwrotnych trybach
I2S obsługuje Arduino i Raspberry Pi
Interfejs I2S można używać w połączeniu z Arduino i Raspberry Pi w celu tworzenia cyfrowych projektów audio
Zobaczmy, jak to działa
I2S Protocol-I2S i Adunio
Arduino obsługuje biblioteki I2S, umożliwiając programowanie płyt Arduino opartych na SAMD21 za pomocą I2S Dzięki magistrali I2S można przesyłać dane dźwiękowe bez drżenia między urządzeniami cyfrowymi
Ponadto można użyć protokołu I2S w Arduino, aby utworzyć projekt odtwarzacza audio MIDI w czasie rzeczywistym Kliknij tutaj, aby dowiedzieć się więcej o bibliotece I2S
Interfejs I2S Raspberry Pi
Jeśli lubisz sos malinowy, możesz dołączyć do operacji I2S
Można użyć płyty rozszerzającej" 4 mikrofonowe głośniki" do obsługi protokołu Raspberry Pi Dodanie tej płyty rozszerzeń do punktu przecięcia umożliwia tworzenie aplikacji głosowych i sztucznej inteligencji
Można również stworzyć bardziej zaawansowany projekt głosowy, korzystający z różnych usług głosowych, takich jak Google sztuczna inteligencja, Alexa Amazon i inne
I2S Protocol-I2S do I2C
Nazwy są podobne, ale nie mają nic wspólnego Na przykład I2C nie skupia się na wysokiej szybkości transmisji danych, dzięki czemu może działać poprawnie w dużych sieciach układów scalonych
Ponadto w środowisku komunikacyjnym I2C różne rzeczy mogą się nie udać, a ich złożoność może wpłynąć na różne zadania
W przeciwieństwie do tego, I2S oferuje bardziej efektywną konstrukcję przenoszenia określonych typów danych cyfrowych (I2S Audio) Ponadto podkreśla się szybkość transmisji, ponieważ będziesz wykonywał zadania takie jak dwukanałowa transmisja dźwiękowa i transmisja szeregowa w czasie rzeczywistym Zadania te wymagają wyższych przepustowości niż to, czego potrzebuje większość zadań komunikacyjnych.
Budowa cyfrowego odtwarzacza muzyki z I2S
Oto jak zbudować cyfrowy odtwarzacz muzyczny z ESP32 i I2S:
I2S Protocol-Krok pierwszy
Po pierwsze, dowiedz się gdzie podłączyć piny I2S. Ponieważ nie ma konkretnych wzmianek o pinach w arkuszu danych ESP32, możesz zainstalować I2S na pinach 15, 2 i 4 i podłączyć kabel micro USB.
Krok 2
Następnie pobierz kod dla ESP32 I2S. Kod nie tylko ustawi twoją rozdzielczość na 16 bitów i częstotliwość próbkowania na 44.1kHz, ale także uruchomi twoje połączenie I2S. Plus, możesz dodać kilka linii, aby wyodrębnić dane, które otrzymasz przez monitor szeregowy.
I2S Protocol-Krok trzeci
Załaduj swój kod i otwórz swój monitor szeregowy. Następnie powinieneś zobaczyć odpowiedź w swoim monitorze szeregowym, gdy gwiżdżesz do mikrofonu lub dotykasz go.
Krok 4
Następnie przylutuj przewody do swojej płytki wzmacniacza I2S i karty Micro SD. Na koniec możesz użyć biblioteki ESP8266, aby zakodować swoje I2S i SPI.
Po zakodowaniu podłącz swój głośnik i włóż kartę Micro SD ze swoim plikiem audio. W tym momencie powinieneś usłyszeć jak gra.
Zaokrąglenie
Protokół I2S może przesyłać dane cyfrowe pomiędzy przetwornikami C/A, ADC, cyfrowymi procesorami sygnału, filtrami i innymi układami scalonymi pracującymi w systemach audio. Co ciekawe, konstrukcja interfejsu I2S działa dla dźwięków stereofonicznych, co czyni go protokołem dwukanałowym.
I2S jest bardziej podobny do SPI niż I2C. Stąd też implementacja SPI pracująca dla jednokierunkowej transmisji danych charakteryzuje się podobną konfiguracją jak I2C, która obejmuje:
jeden sygnał zegarowy
jeden sygnał danych
sygnał synchronizacji na poziomie słowa.
Jeśli masz jakiekolwiek pytania, skontaktuj się z nami, a my chętnie pomożemy.