ISD9160 - system audio w pojedynczym chipie

| Technika

Układy scalone do bezpośredniego zapisu i odtwarzania dźwięku są znane od dawna i do dzisiaj z powodzeniem stosowane w urządzeniach przemysłowych i konsumenckich wykorzystujących dźwiękowy interfejs użytkownika. Przykładem może być znana seria ISD o handlowej nazwie ChipCorder, produkowana przez firmę Nuvoton, a wcześniej przez jej firmę matkę - Winbond.

ISD9160 - system audio w pojedynczym chipie

Rys. 1. Schemat blokowy układu ISD9160

Układy ISD ewoluowały na przestrzeni lat od układów wykonywanych wyłącznie w technologii MLS (Multilevel Storage Technology - technologia pamięci wielopoziomowej), poprzez układy cyfrowe z pamięcią Flash aż do bardzo rozbudowanych układów SoC łączących funkcje standardowego mikrokontrolera ARM i procesora dźwiękowego. Przykładem tego ostatniego rozwiązania firmy Nuvoton jest układ dźwiękowy ISD9160, który jest pierwszym ChipCorder'em wyposażonym w 32-bitowy rdzeń ARM Cortex-M0. Na rysunku 1 przedstawiono jego budowę blokową, z której wynika, że właściwie jest to specjalizowany mikrokontroler ARM wyposażony w cyfrowy tor audio i liczne peryferie.

Ten zoptymalizowany pod kątem niskiego poboru mocy i małej liczby niezbędnych elementów zewnętrznych, układ jest przeznaczony do szerokiego zakresu aplikacji dźwiękowych realizujących nagrywanie i odtwarzanie dźwięku. Z powodzeniem znajduje zastosowanie w takich obszarach, jak urządzenia przemysłowe i konsumenckie, gdzie pełni funkcję interfejsu dźwiękowego człowiek-maszyna, bezprzewodowe systemy monitorowania ze sprzężeniem dźwiękowym, przenośne urządzenia medyczne wykorzystujące powiadomienia dźwiękowe w formie informacji dla pacjentów lub instruktażu dla operatora oraz systemy zabezpieczeń z alarmami dźwiękowymi. Ze względu na niski pobór mocy jest szczególnie przydatny w urządzeniach zasilanych bateryjnie. Przykładowe zastosowania układu ISD9160 pokazano na rysunku 2.

32-bitowa architektura procesora umożliwia projektantom tworzenie skomplikowanych algorytmów, takich jak np. rozpoznawanie mowy, konwersja tekstu na mowę czy obsługa pojemnościowych paneli dotykowych. Dzięki temu jest możliwa prosta realizacja powyższych funkcji jako urządzenia high-end, które w innych przypadkach wymagałyby zastosowania niezależnego procesora ARM, oddzielnego toru audio czy sterownika czujników pojemnościowych.

Układ ISD9160 jest procesorem bazującym na rdzeniu ARM Cortex-M0, taktowanym do 50 MHz, pracującym w szerokim zakresie napięcia zasilania 2,4-5,5 V. W ramach podstawowego wyposażenia zawiera:

  • 145 KB wewnętrznej pamięci Flash programowanej w trybach ISP i ICP oraz 12 KB pamięci SRAM,
  • 24 wielofunkcyjne końcówki I/O, z których 8 może pracować w trybie analogowym,
  • dwa 24-bitowe układy czasowe z 8-bitowym preskalerem, watchdog, zegar czasu rzeczywistego (RTC),
  • dwa 16-bitowe generatory PWM, interfejsy: UART, SPI, I2C i I²S,
  • opcjonalne interfejsy pamięci zewnętrznej (SPI Flash, karty SD).

System zegarowy składa się z 3 oscylatorów:

  • wewnętrznego strojonego oscylatora RC o częstotliwości w zakresie 16-50 MHz,
  • energooszczędnego (<1 µA) wewnętrznego oscylatora 16 kHz dla funkcji watchdog oraz budzenia z trybów wyłączenia i uśpienia,
  • oscylatora 32,768 kHz z zewnętrznym rezonatorem kwarcowym dla zegara RTC i pracy w trybie energooszczędnym.

Układ zawiera rozbudowany system zarządzania zasilaniem z czterema trybami obniżonego poboru mocy (wartości prądu podane dla napięcia zasilania 3,3 V):

  • tryb głębokiego wyłączenia (Deep Power Down) polegający na odłączeniu zasilania rdzenia i praktycznie całej logiki - pobór prądu <1 µA,
  • tryb wyłączenia (Standby Power Down) przy zasilaniu tylko części logiki, w tym portów I/O, RTC, oscylatora 32,768 kHz i części pamięci RAM - pobór prądu ok. 3 µA,
  • tryb głębokiego uśpienia (Deep Sleep Mode), w którym rdzeń i cała logika są zasilane, wyłączony jest główny oscylator, a układ pracuje przy niskiej częstotliwości zegara 32,768 kHz - pobór prądu ok. 8 mA,
  • tryb uśpienia (Sleep Mode) z bramkowaniem sygnałów zegarowych rdzenia w celu ograniczenia pobieranej mocy - pobór prądu ok. 9 mA.

Rys. 2. Zastosowania układu ISD9160

Zgodnie ze swoim przeznaczeniem układ ma wysokiej jakości tor audio, którego trzon stanowi 16-bitowy przetwornik A/C typu ΣΔ o odstępie sygnału od szumu SNR = 90 dB i zakresie częstotliwości próbkowania 8-32 kHz. Takie parametry umożliwiają przetwarzanie dźwięku w jakości audio. Przetwornik współpracuje ze wzmacniaczem wejściowym o wzmocnieniu regulowanym w zakresie 12-35 dB, do którego można podłączyć sygnały z wejść mikrofonowych lub z analogowych końcówek I/O.

Przetwornik wraz ze współpracującymi z nim wzmacniaczami jest objęty pętlą automatycznej regulacji poziomu. Zakończeniem toru audio jest wzmacniacz mocy klasy D z wyjściem różnicowym (DPWM) o mocy 1 W/8 Ω przy zasilaniu 5 V. Elementem toru audio jest również 4-przewodowy cyfrowy interfejs I²S umożliwiający komunikację z zewnętrznym kodekiem lub procesorem DSP. Jak już napisano wcześniej, zastosowanie rdzenia Cortex-M0 daje możliwość zaimplementowania w układzie wielu interesujących funkcji, wymagających znacznej mocy obliczeniowej.

Przykładem może być, mocno eksponowana przez producenta, funkcja rozpoznawania mowy obejmująca zestaw poleceń głosowych, za pomocą których można sterować działaniem różnych urządzeń. Dla tych potrzeb producent opracował odpowiednie algorytmy programowe oraz biblioteki poleceń głosowych w następujących językach: angielskim, włoskim, francuskim, niemieckim, hiszpańskim, portugalskim, rosyjskim, japońskim i chińskim.

Obsługa tej funkcji jest wspomagana firmowym oprogramowaniem Voice Sensor SDK, w którym użytkownik ma m.in. możliwość stworzenia własnego zestawu poleceń. Proces rozpoznawania mowy jest w tym przypadku oparty na fonemach, dzięki czemu jest niezależny od mówcy. Na zaadaptowanym modelu językowym zawierającym do 10 poleceń jego dokładność przewyższa 95%.

Rys. 3. Moduł demonstracyjny ISD-DEMO9160 z podłączonym panelem dotykowym

W celu adaptacji do warunków otoczenia algorytm realizuje także redukcję szumu. Praktyczny zasięg działania sięga 5 metrów. Układ ISD9160 jest elastyczny w projektowaniu i łatwy w użyciu. Może być programowany, jak typowy procesor ARM, w języku C za pomocą środowiska programistycznego firmy Keil. Na potrzeby projektowania aplikacji wykorzystujących ten układ firma Nuvoton stworzyła szereg narzędzi programowych (na komputery PC) i sprzętowych, tworzących swoiste środowisko badawczo-projektowe. W jego skład wchodzą poniższe elementy:

  • moduł demonstracyjny ISD-DEMO9160 (rys. 3) do prezentacji podstawowych funkcji układu, który może pracować albo jako samodzielne urządzenie, albo można nim sterować z komputera PC przez sprzętowy debugger ICE (In-Circuit Emulator) typu ISD-Nu-Link z interfejsem USB;
  • rozbudowany moduł ewaluacyjny ISD-ES9160_USB z wbudowanym debuggerem ICE, interfejsem UART, gniazdem kart SD i wyświetlaczem LCD;
  • program ICP Tool do programowania procesora układu ISD9160 w trybie ICP (In-Circuit Programming), czyli bezpośrednio w urządzeniu;
  • środowisko programistyczne Keil µVision4, w którym dostęp do układu ISD9160 uzyskuje się przez wspomniany wcześniej debugger ICE i sterownik programowy Keil Nu-Link;
  • sterownik Keil-Nu-Link umożliwiający rozpoznanie układu ISD9160 przez środowisko Keil µVision4;
  • sterowniki do układów peryferyjnych, takich jak przetwornik A/C czy PDMA oraz biblioteki gotowych procedur programowych do realizacji określonych funkcji lub do obsługi urządzeń zewnętrznych, np. pamięci SPI Flash, kart SD, kodeków Siren7, pojemnościowych paneli dotykowych itp;
  • program VPE9160 umożliwiający tworzenie i edycję plików dźwiękowych, zawierających określone sekwencje (komunikaty) dźwiękowe na potrzeby projektowanej aplikacji. Te pliki mogą być zapisane w pamięci Flash układu ISD9160 za pomocą środowiska Keil µVision4 lub oprogramowania ICP Tool.

Większość elementów tego środowiska projektowego firma Nuvoton dostarcza w pakiecie. Pakiet nie zawiera jednak programu VPE9160, który musi być instalowany oddzielnie oraz środowiska programistycznego Keil µVision4, które użytkownik powinien zainstalować we własnym zakresie.

Potencjalny zakres zastosowania układu ISD9160 jest oczywiście znacznie szerszy, niż to przedstawiono na początku artykułu. Wszystko zależy od inwencji projektantów.

PDW Marthel
www.marthel.pl