Logo HOLTEK Knižnica HT32 CMSIS-DSP
Používateľská príručka
D/N: AN0538EN

Úvod

CMSIS je softvérové ​​štandardné rozhranie vyvinuté spoločnosťou ARM, ktoré má celý názov Cortex Microcontroller Software Interface Standard. Pomocou tohto štandardného rozhrania môžu vývojári použiť rovnaké rozhranie na ovládanie mikrokontrolérov od rôznych dodávateľov, čím sa výrazne skráti čas ich vývoja a učenia. Bližšie informácie nájdete u predstaviteľa CMSIS webmiesto: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Tento text popisuje hlavne aplikáciu CMSIS-DSP v rade mikrokontrolérov HT32, ktorá zahŕňa nastavenie prostredia, smer použitia atď.

Popis funkcie

Vlastnosti CMSIS-DSP
CMSIS-DSP, ktorý je jednou z komponentov CMSIS, obsahuje nasledujúce funkcie.

  1. Poskytuje súbor všeobecných funkcií spracovania signálu určených pre Cortex-M.
  2. Knižnica funkcií poskytovaná ARM má viac ako 60 funkcií.
  3. Podporuje q7, q15, q31
    (Poznámka) a dátové typy s pohyblivou rádovou čiarkou (32-bit).
  4. Implementácie sú optimalizované pre inštrukčnú sadu SIMD, ktorá je dostupná pre Cortex-M4/M7/M33/M35P.

Poznámka: Pomenovanie q7, q15 a q31 v knižnici funkcií predstavuje 8, 16 a 32 bitové pevné body.
Položky knižnice funkcií CMSIS-DSP
Knižnica funkcií CMSIS-DSP je rozdelená do nasledujúcich kategórií:

  1. Základné matematické funkcie, rýchle matematické funkcie a zložité matematické funkcie
  2. Funkcie filtrovania signálu
  3. Maticové funkcie
  4. Transformačné funkcie
  5. Funkcie ovládania motora
  6. Štatistické funkcie
  7. Podporné funkcie
  8. Interpolačné funkcie

Nastavenie prostredia

Táto časť predstaví hardvér a softvér použitý v aplikácii naprample.
Hardvér
Hoci CMSIS-DSP podporuje plnú sériu HT32, odporúča sa použiť MCU s kapacitou SRAM väčšou ako 4 KB ako aplikácia CMSIS-DSP napr.ample vyžaduje väčšiu veľkosť SRAM. Tento text berie ESK32-30501 ako example, ktorý používa HT32F52352.
softvér
Pred použitím aplikácie naprampNajprv sa uistite, že bola stiahnutá najnovšia knižnica firmvéru Holtek HT32 z oficiálnej stránky spoločnosti Holtek webstránky. Miesto sťahovania je znázornené na obrázku
Dekomprimovať file po stiahnutí.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Stiahnite si kód aplikácie CMSIS-DSP prostredníctvom odkazu nižšie. Kód aplikácie je zabalený ako zips file s názvom HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Cesta na stiahnutie: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
The file pravidlo pomenovania je znázornené na obrázku 2.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Pretože kód aplikácie neobsahuje knižnicu firmvéru files, používatelia musia umiestniť rozbalený aplikačný kód a knižnicu firmvéru files na správnu cestu pred spustením kompilácie. Kód aplikácie file obsahuje dva priečinky, ktorými sú aplikácia a knižnica, ktorých umiestnenie je znázornené na obrázku 3. Umiestnite tieto dva priečinky do koreňového adresára knižnice firmvéru, aby ste dokončili file konfigurácia cesty, ako je znázornené na obrázku 4. Užívatelia môžu tiež dekomprimovať kód aplikácie a komprimovanú knižnicu firmvéru files na rovnakú cestu, aby sa dosiahol rovnaký efekt. Pre túto example, adresár pre CMSIS_DSP sa po dekompresii zobrazí pod priečinkom aplikácie.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

File Štruktúra

Dva hlavné priečinky zahrnuté v kóde aplikácie file, knižnica\CMSIS a aplikácia\CMSIS_DSP, sú jednotlivo popísané nižšie.
Obsah priečinka library\CMSIS je nasledujúci.

Názov priečinka Popis
DSP_Lib Zdrojový kód FW aplikácie
DSP_Lib\Examples Obsahuje viacero štandardných exampsúbory knižnice funkcií CMSIS-DSP, ktoré poskytuje ARM. Nastavenia pre tieto projekty sa vykonávajú simulovaným spôsobom bez potreby MCU. Používatelia sa môžu rýchlo naučiť používať tieto exampich vykonaním.
DSP_Lib\Source Zdrojový kód knižnice funkcií CMSIS-DSP
Zahrnúť Nevyhnutná hlavička file pri použití knižnice funkcií CMSIS-DSP
Include\arm_common_tables.h Deklarácia externých premenných poľa (externé)
Include\arm_const_structs.h Deklarácia vonkajších konštánt
Zahrnúť\arm_math.h Toto file je veľmi dôležité ako rozhranie na používanie knižnice funkcií CMSIS-DSP. Volania akejkoľvek knižnice funkcií API sú implementované cez arm_math.h.
Lib\ARM Knižnica funkcií CMSIS-DSP pre ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian)
Lib\GCC Knižnica funkcií CMSIS-DSP pre GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

Priečinok application\CMSIS_DSP obsahuje viacero CMSIS_DSP napramplesov, ktoré používajú sériu MCU HT32 a podporujú celú sériu HT32. Projekty sú vyvinuté pomocou Keil MDK_ARM.

Názov priečinka Popis
arm_class_marks_example Ukazuje, ako získať maximálnu hodnotu, minimálnu hodnotu, očakávanú hodnotu, štandardnú odchýlku, rozptyl a maticové funkcie.
arm_convolution_example Demonštruje konvolučný teorém prostredníctvom komplexných FFT a podporných funkcií.
arm_dotproduct_example Ukazuje, ako získať bodový súčin pomocou násobenia a sčítania vektorov.
arm_fft_bin_example Ukazuje, ako vypočítať maximálne energetické okno (bin) vo frekvenčnej doméne vstupných signálov pomocou komplexných funkcií FFT, komplexnej magnitúdy a maximálneho modulu.
arm_fir_example Ukazuje, ako implementovať dolnopriepustné filtrovanie pomocou FIR.
arm_graphic_equalizer_example Ukazuje, ako zmeniť kvalitu zvuku pomocou grafického ekvalizéra.
arm_linear_interp_example Ukazuje použitie modulu lineárnej interpolácie a modulu rýchlej matematiky.
arm_matrix_example Demonštruje výpočet maticovej korelácie vrátane transformácie matice, násobenia matice a inverzie matice.
arm_signal_converge_example Demonštruje samonastaviteľný dolnopriepustný filter FIR pomocou modulov NLMS (Normalised Least Mean Square), FIR a základných matematických modulov.
arm_sin_cos_example Demonštruje trigonometrické výpočty.
arm_variance_example Ukazuje, ako vypočítať rozptyl pomocou základných matematických a podporných funkcií.
filter_iir_high_pass_example Ukazuje, ako implementovať vysokopriepustné filtrovanie pomocou IIR.

Test
Tento text bude používať aplikáciu\CMSIS_DSP\arm_class_marks_example ako test example. Pred začatím testovania skontrolujte, či je ESK32-30501 pripojený alebo nie, a uistite sa, že kód aplikácie a knižnica firmvéru boli umiestnené na správnom mieste. Otvorte aplikáciu\CMSIS_DSP\arm_class_marks_example a spustite súbor _CreateProject.bat  file, ako je uvedené nižšie. Potom otvorte MDK_ARMv5 (alebo MDK_ARM pre Keilv4), aby ste zistili, že tento example podporuje celú sériu HT32. Otvorte projekt Project_52352.uvprojx, pretože sa používa ESK32-30501.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Po otvorení projektu skompilujte (klávesová skratka “F7”), stiahnite (klávesová skratka “F8”), odlaďte (klávesová skratka “Ctrl+F5”) a potom spustite (klávesová skratka “F5”). Výsledky vykonania možno pozorovať pomocou premenných uvedených nižšie.

Variabilné Meno Smer údajov Popis Výsledok vykonania
testMarks_f32 Vstup Jedno pole 20×4
testUnity_f32 Vstup Jedno pole 4×1
testovací výstup Výstup Produkt testMarks_f32 a testUnity_f32 {188, 229, 210...}
max_marks Výstup Maximálna hodnota prvkov v testovacom výstupnom poli 364
min_marks Výstup Minimálna hodnota prvkov v testovacom výstupnom poli 156
priemerný Výstup Očakávaná hodnota prvkov v testovacom výstupnom poli 212.300003
std Výstup Štandardná odchýlka prvkov v testovacom výstupnom poli 50.9128189
var Výstup Rozptyl prvkov v testovacom výstupnom poli 2592.11523

Návod na použitie 

integrácia
Táto časť predstaví, ako integrovať CMSIS-DSP do projektov používateľov.
Krok 1
Najprv pridajte nový symbol definície pri nastavovaní projektu, „ARM_MATH_CM0PLUS“ pre M0+ a „ARM_MATH_CM3“ pre M3. Postup nastavenia: (1) Možnosti klávesovej skratky Target “Alt+F7”), (2) Vyberte stránku C/C++, (3) Pridajte novú definíciu vo voľbe Define, ako je uvedené nižšie.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Krok 2
Ak chcete pridať cestu Zahrnúť, kliknite na tlačidlo vedľa možnosti „Zahrnúť cesty“ na stránke C/C++. Potom sa zobrazí okno Nastavenie priečinka, kde je možné pridať novú cestu ..\..\..\..\library\CMSIS\Include”, ako je uvedené nižšie.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Krok 3 (Voliteľné)
Ak chcete pridať knižnicu funkcií, kliknite na tlačidlo „Spravovať položky projektu“, ako je uvedené nižšie. Ak sa tlačidlo nezobrazuje, kliknite na „Okno → Obnoviť View na Predvolené → Obnoviť“, takže konfigurácia okna IDE sa vráti na predvolené nastavenia. Potom sa zobrazí tlačidlo „Spravovať položky projektu“.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Pridajte priečinok CMSIS-DSP pomocou tlačidiel, ako je znázornené v červenom poli nižšie, a presuňte ho pod priečinok CMSIS pomocou tlačidla „Posunúť nahor“. Po dokončení zatvorte okno Spravovať položky projektu.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Krok 4
Dvakrát kliknite na priečinok CMSIS-DSP vľavo (ak preskočíte krok 3, vyberte ľubovoľný priečinok, ako napríklad Používateľ alebo CMSIS atď.), potom doň pridajte knižnicu funkcií CMSIS-DSP. Vyberte \library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib pre M0+ alebo \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib pre M3. Po dokončení sa knižnica funkcií arm_cortexMxl_math.lib zobrazí v priečinku CMSIS-DSP, ako je uvedené nižšie.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Krok 5
Pridajte hlavu file „arm_math.h“ do main.c, ako je uvedené nižšie. Teraz sú všetky nastavenia integrácie dokončené

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Nízkopriepustný filter – FIR

Táto sekcia predstavením aplikácie\CMSIS_DSP\arm_fir_example, ukáže, ako nastaviť FIR filter a odstrániť vysokofrekvenčné signály pomocou FIR. Vstupný signál sa skladá zo sínusových vĺn 1 kHz a 15 kHz. Signál sampfrekvencia je 48 kHz. Signály nad 6 kHz sú filtrované FIR a na výstupe sú signály 1 kHz. Kód aplikácie je rozdelený do niekoľkých častí.

  1. Inicializácia. Na inicializáciu FIR sa používa nasledujúce API.
    void arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
    S: Štruktúra filtra FIR
    číslice: Počet filtrov stages (počet koeficientov filtra). V tomto example, numTaps=29.
    Coffs: koeficient filtra. V tomto príklade je 29 filtračných koeficientovample, ktorý vypočíta MATLAB.
    stav: Indikátor stavu
    blockSize: Predstavuje počet sampspracované naraz.
  2. Nízkopriepustný filter. Volaním API FIR, 32 sampsúbory sú spracované zakaždým a je ich 320 sampcelkovo. Použité API je uvedené nižšie.
    void arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: Štruktúra filtra FIR
    pSrc: Vstupný signál. V tomto príklade je na vstupe zmiešaný signál 1 kHz a 15 kHzample. pDst: Výstupný signál. Očakávaný výstupný signál je 1 kHz. blockSize: Predstavuje počet sampspracované naraz.
  3. Overenie údajov. Výsledok filtrovania získaný pomocou MATLABu sa považuje za referenčný a výsledok filtrovania získaný pomocou CMSIS-DSP je aktuálna hodnota. Porovnajte dva výsledky a overte, či je výstupný výsledok správny alebo nie. float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
    Pref: Referenčná hodnota vygenerovaná MATLABom.
    príspevok: Skutočná hodnota generovaná CMSIS-DSP.
    blockSize: Predstavuje počet sampspracované naraz.
    Ako je uvedené nižšie, vstupné dáta ukazujú, že signál ešte nie je filtrovaný a výstupné dáta zobrazujú filtrovaný výsledok. Os Y predstavuje ampšírka signálu a sampfrekvencia je 48 kHz, takže číslo na osi X plus jedna predstavuje čas plus 20.833 μs. Z obrázku 12 a obrázku 13 je možné zistiť, že 15kHz signál je eliminovaný a zostáva len 1kHz signál.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Vysokopriepustný filter – IIR
Táto sekcia zavedením aplikácie\CMSIS_DSP\filter_iir_high_pass_example, ukáže, ako nastaviť IIR filter a odstrániť nízkofrekvenčné signály pomocou IIR. Vstupný signál sa skladá zo sínusových vĺn 1Hz a 30Hz. Signál sampfrekvencia je 100 Hz a spolu 480 bodov je sampviedol. Signály pod 7 Hz sú odstránené IIR.
Kód aplikácie je rozdelený do niekoľkých častí. 

  1.  K dispozícii sú 480 samples. Sample 0~159 sú 30Hz sínusové vlny, sample 160~319 sú 1Hz sínusové vlny a sample 320~479 sú 30Hz sínusové vlny.
  2. Inicializácia. Na inicializáciu IIR sa používa nasledujúce API. void arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *state));
    S: Štruktúra filtra IIR
    súčet stages: Počet stages vo filtri. V tomto example, numStages=1.
    Coffs: koeficient filtra. V tomto príklade je 5 filtračných koeficientovample.
    stav: Indikátor stavu
  3. Vysokopriepustný filter. Volaním API IIR, 1 sample sa spracováva zakaždým a je tam 480 sampcelkovo. Použité API je uvedené nižšie. void arm_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: Štruktúra filtra IIR
    pSrc: Vstupný signál. V tomto príklade je na vstupe zmiešaný signál 1Hz a 30Hzample.
    pDst: Výstupný signál. Očakávaný výstupný signál je 30 Hz.
    blockSize: Predstavuje počet sampspracované naraz.
  4. Výstup výsledku. Vstupné a výstupné signály sa vytlačia do počítača. Ako je uvedené nižšie, vstupné dáta ukazujú, že signál ešte nie je filtrovaný a výstupné dáta zobrazujú filtrovaný výsledok. Os Y predstavuje ampšírka signálu a sampfrekvencia je 100 Hz, takže číslo na osi X plus jedna predstavuje čas plus 10 ms. Z obrázku 14 a obrázku 15 je možné zistiť, že 1Hz signál je eliminovaný a zostáva len 30Hz signál.

Knižnica HOLTEK HT32 CMSIS-DSP - Obr

Úvahy

Používatelia by mali pri používaní knižnice funkcií CMSIS-DSP venovať osobitnú pozornosť veľkosti pamäte po kompilácii. Pred testovaním sa uistite, že nedošlo k preplneniu pamäte.
Záver
CMSIS-DSP má skvelé schopnosti v oblasti spracovania signálu a matematických výpočtov a je hodný seriózneho zváženia používateľov.
Referenčný materiál
Odkaz webmiesto: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Verzie a informácie o úpravách

Dátum Autor Vydanie Informácie o úprave
2022.06.02 Píšem, Liu V1.10 Upravte cestu sťahovania
2019.09.03 Allen, Wang V1.00 Prvá verzia

Vylúčenie zodpovednosti

Všetky informácie, ochranné známky, logá, grafika, videá, zvukové klipy, odkazy a ďalšie položky, ktoré sa tu objavujú webstránky (ďalej len „informácie“) sú len orientačné a môžu sa kedykoľvek zmeniť bez predchádzajúceho upozornenia a podľa uváženia spoločnosti Holtek Semiconductor Inc. a jej pridružených spoločností (ďalej len „Holtek“, „spoločnosť“, „nás“, „ my“ alebo „naše“). Zatiaľ čo Holtek sa snaží zabezpečiť presnosť informácií o tomto webSpoločnosť Holtek neposkytuje žiadnu výslovnú ani implicitnú záruku na presnosť informácií. Holtek nenesie žiadnu zodpovednosť za akúkoľvek nesprávnosť alebo únik. Holtek nezodpovedá za žiadne škody (vrátane, ale nie výlučne, počítačového vírusu, systémových problémov alebo straty dát), bez ohľadu na to, ktoré vzniknú pri používaní alebo v súvislosti s používaním tohto webstránky ktorejkoľvek strany. V tejto oblasti môžu byť odkazy, ktoré vám umožňujú navštíviť stránku webstránky iných spoločností. Títo webstránky nie sú kontrolované spoločnosťou Holtek. Holtek nenesie žiadnu zodpovednosť a žiadnu záruku za akékoľvek informácie zobrazené na takýchto stránkach. Hypertextové odkazy na iné webstránky sú na vlastné riziko.
Obmedzenie zodpovednosti
V každom prípade Spoločnosť nemusí niesť zodpovednosť za akúkoľvek stratu alebo škodu spôsobenú, keď niekto navštívi stránku webpriamo alebo nepriamo a používa obsah, informácie alebo službu na webstránky.
Rozhodujúce právo
Toto vylúčenie zodpovednosti podlieha zákonom Čínskej republiky a podlieha jurisdikcii Súdu Čínskej republiky.
Aktualizácia Vylúčenia zodpovednosti
Holtek si vyhradzuje právo aktualizovať Vyhlásenie kedykoľvek s predchádzajúcim upozornením alebo bez neho, všetky zmeny sú účinné okamžite po zverejnení na webstránky.

Logo HOLTEK

Dokumenty / zdroje

Knižnica HOLTEK HT32 CMSIS-DSP [pdf] Používateľská príručka
HT32, CMSIS-DSP Library, HT32 CMSIS-DSP Library, Library

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *