autor: Ing. Robert Krejčí, kategorie: Hardware

Využití spotřební elektroniky pro DSP

Průzkum možností síťového hardwaru pro rozpoznávání řeči
Logo ČVUT

Ing. Robert Krejčí
ČVUT v Praze
Fakulta elektrotechnická
katedra teorie obvodů
robert.krejci@centrum.cz

Digital Technologies 2008- International Workshop
5. mezinárodní konference o digitálních technologiích, obvodech, systémech a zpracování signálů
kt.uniza.sk/dt/

20. - 21. 11. 2008, Žilina, Slovensko

Stručně o tématu

DSP

Na základě studia řady informačních zdrojů jsme vybrali a ověřili praktický způsob, jak vyvíjet a v praxi implementovat cenově nenáročné řešení úloh, které vyžadují jednoduché DSP, propojení na běžnou počítačovou infrastrukturu a často i nepřetržitý provoz. Výsledkem našeho výzkumu je volba vhodné hardwarové platformy pro testování a optimalizaci algoritmů rozpoznávání řeči v reálném čase a prostředí.

Volba architektury

Logo MIPS

Pro výzkum, vývoj a optimalizaci algoritmů DSP je vhodné mít pohodlnou vývojovou platformu. V současné době je na trhu spotřební elektroniky mnoho přístrojů, které mimo svou hlavní funkci také umožňují DSP. V takových zařízeních se můžeme často setkat s architekturou mikroprocesorů zvanou MIPS, někdy rozšířenou o s DSP instrukce. Vývojový modul s MIPS procesorem stojí řádově tisíce dolarů (resp. desítky tisíc Korun), ale kdybychom použili nějaké levné zařízení spotřební elektroniky, mohli bychom ušetřit značné množství finančních prostředků. Podmínkou by byla konfigurovatelnost takového zřízení.

Volba platformy

Router WL-500g Premium

Jedno z takových zařízení je síťový router od firmy ASUS s označením WL-500g Premium, který funguje na bázi operačního systému Linux, takže je pro něj k dispozici zdarma obrovské množství vývojových prostředků a softwaru. Tento produkt se těší značné oblibě především v domácích počítačových sítích, takže ho lze po úpravách využít i pro “osobní” účely, jako např. přehrávač hudby ve formátu MP3, internetové rádio atp.

Mikroprocesor

Struktura mikroprocesoru BCM4704 od firmy Broadcom

Řídicí jednotkou routeru je mikroprocesor BCM4704 od firmy Broadcom, jehož základem je architektura MIPS32 s rozšířenou instrukční sadou o DSP instrukce. MIPS je velmi výkonná 32-bitová architektura typu RISC, jejíž použití výrobce mikroprocesorů je licencováno.

DSP rozšíření architektury MIPS

DSP rozšíření architektury MIPS

Rozšíření specifické pro aplikaci („ASE“) rozšiřuje klasickou architekturu MIPS např. v těchto oblastech:

  • SIMD (8/16/32) - paralelní zpracování dat. Během jediného instrukčního cyklu tak lze získat např. čtyři výsledky násobení čtyř párů osmibitových čísel.

  • Saturační aritmetika pro práci s čísly ve zlomkovém tvaru s pevnou řádovou čárkou

  • Rozšířená práce s výsledky násobení a sčítání (MAC)

  • Instrukce pro usnadnění výpočtů skalárního součinu

  • Absolutní hodnota

  • Bitová reverze (standardně používaná např. při výpočtu FFT)

  • atd.

Firmware

Administrační webové rozhraní routeru

Výchozí verze firmwaru routeru umožňuje komunikovat s routerem pouze přes webové rozhraní, což stačí pro běžnou konfiguraci, ale přístup k operačnímu systému je uživateli skryt. Aby bylo možné plně využívat operační systém routeru, je nutné nejprve nahradit původní firmware jinou verzí. Aktualizace se provede pomocí standardní funkce ve webovém rozhraní správy routeru.

Distribuce Linuxu

Logo OpenWrt

Pro tento router připadá v úvahu několik distribucí Linuxu, např.:

  • OpenWRT: distribuce s minimální výchozí konfigurací vytvořená komunitou vývojářů, s možností doinstalování potřebných komponent; instalace a provoz této distribuce však podle internetových diskuzí nemusí být bez problémů a může vést až k trvalému zablokování routeru.

  • Oleg Firmware: distribuce, kterou vytvořil jednotlivec – počítačový odborník Oleg I. Vdovikin, ale rovněž s otevřeným kódem.

  • Koppel Firmware: distribuce vhodná především pro připojení bezdrátového CDMA modemu, který je nabízen jedním z českých mobilních operátorů.

Oleg Firmware

Okno terminálu Putty

Pro naši výzkumnou činnost jsme zvolili Oleg Firmware. Jeho funkce jsou téměř totožné s funkcemi výchozího firmwaru, ale je tu navíc možnost komunikace s routerem přes Telnet, např. pomocí programu Putty. S operačním systémem tedy lze komunikovat na úrovni příkazové řádky jako s běžným linuxovým serverem. Díky tomu lze doinstalovat programy pro pohodlnější práci, jako např. mc, screen, nano a další.

USB porty

Zadní strana routeru se dvěma USB porty

Router má kromě pěti ethernetových portů a WiFi modulu také dva porty USB. Díky tomu lze už ve výchozí verzi firmwaru připojit k routeru např. standardní externí paměťové zařízení a provozovat FTP server. Také lze např. připojit webovou kameru a využívat router jako zabezpečovací zařízení, které v případě splnění podmínek narušení objektu odešle na zvolenou e-mailovou adresu fotografii hlídaného prostoru. Router také může fungovat jako tiskový server, pokud ovšem jsou pro připojenou tiskárnu k dispozici ovladače pro Linux.

Připojení zvukové karty

USB zvuková karta

Operační systém obsahuje také ovladač pro zvuková zařízení, takže lze bez problémů připojit externí USB-zvukovou kartu. Toho lze využít pro číslicové zpracování akustických signálů, v našem případě rozpoznávání řeči, a dále např. následné ovládání nějakého vzdáleného zařízení, které je připojené k internetu.

Další možnosti

Administrační nástroj phpMyAdmin

Po doinstalování příslušných balíčků se také otevírá možnost provozovat router jako webový server s podporou Apache+PHP+MySQL pro domácí účely nebo pro využití v menší firmě.

Také je možné do routeru nainstalovat e-mailový server včetně spamového filtru.

Zdroje informací

Diskuzní fórum wl500g.info - primární zdroj informací

K funkcím routeru existuje mnoho dostupných informací, především v diskuzních fórech kolem již zmíněných distribucí. Ne vždy tu jsou přesné návody, jak zprovoznit nějakou funkci, ale po přečtení více diskuzních vláken lze většinou potřebné informace nalézt.

Za primární zdroje informací můžeme pokládat tyto weby:

Informace lze nalézt i na některých dalších webech, ale ne vždy najdeme aktuální nebo srozumitelnou odpověď.

Připojení paměťového zařízení

Připájení externího USB zařízení

Aby bylo možné do routeru doinstalovat další programy a nástroje, je nutné k němu nejprve připojit vnější paměťové zařízení, např. USB Flash disk nebo USB harddisk.

Jeden z obvodů, který je připojen k řídicímu mikroprocesoru, je obvod VIA Vectro VT6212 pro ovládání sběrnice USB 2.0 s možností připojení čtyř portů s vysokou rychlostí (480 Mbit/s). Z nich jsou v routeru využité pouze dva. K vývodům tohoto obvodu by bylo možné přímo připájet další dvě USB zařízení, např. paměť typu Flash, která by byla uzavřena v prostoru plastového boxu routeru.

Dokumentace k tomuto obvodu: Data Sheet VT6212L, 447 kB (PCI USB 2.0 Controller)

Nástroje pro kompilaci

Testovací program Hello, World!

Vzhledem k tomu, že zdrojové kódy operačního systému jsou volně přístupné, je možné si jádro Linuxu spolu s dalšími moduly libovolně upravit a zkompilovat podle své potřeby. Aby bylo možné provést kompilaci pro cílovou platformu MIPS, je potřeba si doinstalovat některé další programy a knihovny vývojového prostředí gcc, které obvykle nejsou v základní instalaci na desktopovém Linuxu, např. kompilátor uClibc.

Jeden z mála skutečně fungujících postupů, jak zprovoznit křížový kompilátor, je na této stránce: Add package to Optware. Postup je asi uprostřed stránky pod nadpisem "And what if the program I need is not available in the existing packages?"

C intrinsics

Procesor BCM4704kpbg s jádrem MIPS a rozšířenou sadou DSP instrukcí

Překladač GNU GCC umožňuje použití tzv. C intrinsics, což je téměř přímý přístup ke speciálním instrukcím konkrétní architektury procesoru, které by jinak nevyužil. Pro tento typ mikroprocesoru jsou k dispozici MIPS DSP Built-in Functions. Zde se otevírá značná možnost optimalizace algoritmů a využití sady instrukcí procesoru pro DSP.

Orientační měření

Orientační měření rychlosti výpočtů

Provedli jsme orientační měření rychlosti výpočtů. Výsledek je znázorněn na obrázku. (Syntaxe symbolického zápisu je podobná syntaxi Matlabu.)

  • První výpočet spočíval v součtu miliónu po sobě jdoucích čísel.

    ∑(1 : 1 000 000) ... 470 ms

  • Druhý výpočet generoval dvě pole náhodných koeficientů v plovoucí řádové čárce:

    a[0 : 100000] = rand();
    b[0 : 100000] = rand();

    ... 120 ms

  • Třetí výpočet představoval FIR filtr s vygenerovanými koeficienty – operace MAC (násobení a akumulace).

    c = ∑(a[0 : 100 000] * b[0 : 100 000]) ... 30 ms

Závěr

Router je mnohem menší zařízen než PC.

Zvolené zařízení – síťový router ASUS WL500g Premium se ukázal jako vhodná platforma pro výzkum a vývoj algoritmů DSP s výhledem na možnost zprovoznění rozpoznávače řeči. V následujících fázích tohoto průzkumu bychom chtěli provést podrobnější měření složitějších DSP algoritmů s využitím DSP instrukcí mikroprocesoru.

Naším cílem je zprovoznit rozpoznávač řeči na malém zařízení s malým odběrem energie, abychom pro tento účel nemuseli používat velké PC, ale pouze malou "krabičku", kterou lze provozovat např. v automobilu nebo v domácnosti.

 
{e_like}
 
 
Nahoru