Лого на HOLTEK HT32 CMSIS-DSP библиотека
Упатство за употреба
D/N: AN0538EN

Вовед

CMSIS е стандарден софтверски интерфејс развиен од ARM кој го има целосното име Cortex Microcontroller Software Interface Standard. Со овој стандарден интерфејс, програмерите можат да го користат истиот интерфејс за да ги контролираат микроконтролерите од различни добавувачи со што значително ќе го скратат нивното време за развој и учење. За повеќе информации, погледнете го службеникот на CMSIS webсајт: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Овој текст главно ја опишува апликацијата CMSIS-DSP во серијата HT32 микроконтролери која вклучува поставување на околината, насока за користење итн.

Функционален опис

Карактеристики на CMSIS-DSP
CMSIS-DSP, кој е една од компонентите на CMSIS ги вклучува следните карактеристики.

  1. Обезбедува збир на генерички функции за обработка на сигнал посветени на Cortex-M.
  2. Функциската библиотека обезбедена од АРМ има над 60 функции.
  3. Поддржува q7, q15, q31
    (Забелешка) и типови на податоци со подвижна запирка (32-битни).
  4. Имплементациите се оптимизирани за множеството инструкции SIMD што е достапно за Cortex-M4/M7/M33/M35P.

Забелешка: Именувањето q7, q15 и q31 во библиотеката на функции соодветно ги претставуваат 8, 16 и 32 битни фиксни точки.
Ставки од библиотеката на функциите CMSIS-DSP
Функциската библиотека CMSIS-DSP е поделена на следниве категории:

  1. Основни математички функции, брзи математички функции и сложени математички функции
  2. Функции за филтрирање на сигнали
  3. Матрични функции
  4. Трансформирајте ги функциите
  5. Функции за контрола на моторот
  6. Статистички функции
  7. Функции за поддршка
  8. Функции на интерполација

Поставување на животната средина

Овој дел ќе ги претстави хардверот и софтверот што се користат во апликацијата на прampле.
Хардвер
Иако CMSIS-DSP ја поддржува целосната серија HT32, се предлага да се користи MCU со капацитет на SRAM поголем од 4KB како апликацијата CMSIS-DSP пр.ampбара поголема големина на SRAM. Овој текст го зема ESK32-30501 како прample кој користи HT32F52352.
Софтвер
Пред да ја користите апликацијата прampпрво, осигурајте се дека најновата библиотека за фирмвер на Holtek HT32 е преземена од официјалниот претставник на Holtek webсајт. Локацијата за преземање е прикажана на слика
Декомпресирај го file по преземањето.

HOLTEK HT32 CMSIS-DSP библиотека - Сл

Преземете го кодот на апликацијата CMSIS-DSP преку врската подолу. Кодот на апликацијата е спакуван како поштенски file со името на HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Патека за преземање: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
На file правилото за именување е прикажано на слика 2.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 2

Бидејќи кодот на апликацијата не содржи библиотека на фирмверот files, корисниците треба да го стават отпакуваниот код на апликацијата и библиотеката на фирмверот files во правилната патека пред да започнете со компилација. Кодот на апликацијата file содржи две папки, кои се апликацијата и библиотеката чија локација е прикажана на Слика 3. Ставете ги овие две папки во root директориумот на библиотеката на фирмверот за да го комплетирате file конфигурација на патеката како што е прикажано на слика 4. Корисниците исто така можат да го декомпресираат кодот на апликацијата и библиотеката на фирмверот компресирана fileна истиот пат за да се постигне истиот ефект. За овој ексampле, директориумот за CMSIS_DSP ќе се види под папката со апликации по декомпресија.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 3

File Структура

Двете главни папки вклучени во кодот на апликацијата file, библиотека\CMSIS и апликација\CMSIS_DSP се поединечно опишани подолу.
Содржината на папката library\CMSIS е следна.

Име на папка Опис
DSP_Lib Изворниот код на апликацијата FW
DSP_Lib\Exampлес Содржи повеќе стандардни прampделови од функционалната библиотека CMSIS-DSP кои се обезбедени од АРМ. Поставките за овие проекти се извршуваат на симулиран начин без да се бара MCU. Корисниците можат брзо да научат како да ги користат овие ексamples со нивно извршување.
DSP_Lib\Извор Изворниот код на библиотеката на функцијата CMSIS-DSP
Вклучи Неопходен заглавие file кога се користи библиотеката на функции CMSIS-DSP
Вклучи\arm_common_tables.h Декларација на променливи на надворешна низа (надворешна)
Вклучи\arm_const_structs.h Декларација на надворешни константи
Вклучи\arm_math.h Ова file е многу важен како интерфејс за користење на библиотеката на функции CMSIS-DSP. Повиците до било која функционална библиотека API се имплементираат преку arm_math.h.
Lib\ARM Библиотека со функции CMSIS-DSP за ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian)
Lib\GCC Библиотека со функции CMSIS-DSP за GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

Папката апликација\CMSIS_DSP содржи повеќе CMSIS_DSP прamples, кои ја користат серијата HT32 MCU и ја поддржуваат целосната серија HT32. Проектите се развиени со користење на Keil MDK_ARM.

Име на папка Опис
arm_class_marks_example Покажува како да се добие максимална вредност, минимална вредност, очекувана вредност, стандардна девијација, варијанса и матрични функции.
arm_convolution_example Ја демонстрира теоремата на конволуција преку сложените FFT и функциите за поддршка.
arm_dotproduct_example Покажува како да се добие производ со точки преку множење и собирање вектори.
arm_fft_bin_example Покажува како да се пресмета максималниот енергетски прозорец (канта) во доменот на фреквенција на влезните сигнали користејќи сложени функции FFT, сложена големина и максимален модул.
arm_fir_example Покажува како да се спроведе нископропусно филтрирање со помош на FIR.
arm_graphic_equalizer_example Покажува како да го промените квалитетот на звукот со помош на графичкиот еквилајзер.
arm_linear_interp_example Покажува употреба на модул за линеарна интерполација и модул за брза математика.
arm_matrix_example Покажува пресметка на корелација на матрицата вклучувајќи трансформација на матрица, множење на матрицата и инверзна матрица.
arm_signal_converge_example Го демонстрира самоприлагодливиот FIR нископропусен филтер со помош на NLMS (нормализиран најмал среден квадрат), FIR и основни математички модули.
arm_sin_cos_example Покажува тригонометриски пресметки.
arm_variance_example Покажува како да се пресмета варијансата преку основните математики и функциите за поддршка.
filter_iir_high_pass_example Покажува како да се спроведе високопропусно филтрирање со помош на IIR.

Тест
Овој текст ќе ја користи апликацијата\CMSIS_DSP\arm_class_marks_example како тест прampле. Пред да започнете со тестирање, проверете дали ESK32-30501 е поврзан или не и уверете се дека кодот на апликацијата и библиотеката на фирмверот се поставени на вистинската локација. Отворете ја апликацијата\CMSIS_DSP\arm_class_marks_example папката и извршете ја _CreateProject.bat  file, како што е прикажано подолу. После ова, отворете го MDK_ARMv5 (или MDK_ARM за Keilv4), за да откриете дека оваа ексampја поддржува целосната серија HT32. Отворете го проектот Project_52352.uvprojx бидејќи се користи ESK32-30501.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 4

По отворањето на проектот, компајлирајте (копче за кратенка „F7“), преземете (копче за кратенка „F8“), дебагирајте (копче за кратенка „Ctrl+F5“) и потоа извршете (копче за кратенка „F5“). Резултатите од извршувањето може да се набљудуваат со помош на променливите наведени подолу.

Променлива Име Насока на податоци Опис Резултат од извршувањето
testMarks_f32 Влез Една низа 20×4
testUnity_f32 Влез Една низа 4×1
тест излез Излез Производот на testMarks_f32 и testUnity_f32 {188, 229, 210…}
max_marks Излез Максималната вредност на елементите во тест излезната низа 364
min_ознаки Излез Минималната вредност на елементите во тест излезната низа 156
значи Излез Очекуваната вредност на елементите во тест излезната низа 212.300003
стд Излез Стандардното отстапување на елементите во тест излезната низа 50.9128189
var Излез Варијансата на елементите во тест излезната низа 2592.11523

Упатство за употреба 

Интеграција
Овој дел ќе воведе како да се интегрира CMSIS-DSP во проектите на корисниците.
Чекор 1
Прво, додадете нов симбол Дефинирање при поставување на проектот, „ARM_MATH_CM0PLUS“ за M0+ и „ARM_MATH_CM3“ за M3. Постапка за поставување: (1) Опции на Целното копче за кратенка „Alt+F7“), (2) Изберете страница C/C++, (3) Додајте нова дефиниција во опцијата „Дефинирај“, како што е прикажано подолу.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 5

Чекор 2
За да додадете патека за вклучување, кликнете на копчето веднаш до опцијата „Вклучи патеки“ на страницата C/C++. Потоа ќе се појави прозорец за поставување папка, каде што може да се додаде нова патека ..\..\..\..\library\CMSIS\Include“, како што е прикажано подолу.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 6

Чекор 3 (Факултативно)
За да ја додадете библиотеката со функции, кликнете на копчето „Управување со проектните ставки“ како што е прикажано подолу. Ако копчето не се гледа, кликнете „Прозорец → Ресетирај View во Стандардно → Ресетирање“, така што конфигурацијата на прозорецот IDE ќе се врати на своите стандардни поставки. После ова, ќе се прикаже копчето „Управување со проектни ставки“.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 7

Додадете ја папката CMSIS-DSP користејќи ги копчињата како што е прикажано во црвеното поле подолу и преместете ја под папката CMSIS користејќи го копчето „Премести нагоре“. Затворете го прозорецот Manage Project Tems кога ќе завршите.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 8

Чекор 4
Кликнете двапати на папката CMSIS-DSP лево (ако е прескокнат чекор 3, изберете која било папка како што се Корисник или CMSIS, итн.), а потоа додадете ја библиотеката на функции CMSIS-DSP во неа. Изберете \library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib за M0+ или \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib за M3. По завршувањето, библиотеката со функции arm_cortexMxl_math.lib ќе биде прикажана во папката CMSIS-DSP, како што е прикажано подолу.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 9

Чекор 5
Додадете ја главата file „arm_math.h“ во main.c, како што е прикажано подолу. Сега сите поставки за интеграција се завршени

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 10

Нископропусен филтер – FIR

Овој дел, со воведување на апликацијата\CMSIS_DSP\arm_fir_exampќе покаже како да го поставите филтерот FIR и да ги отстраните високофреквентните сигнали користејќи го FIR. Влезниот сигнал е составен од синусни бранови од 1 kHz и 15 kHz. Сигналот сampЛинг фреквенцијата е 48 kHz. Сигналите над 6 kHz се филтрираат со FIR и излезат сигнали од 1 kHz. Кодот на апликацијата е поделен на неколку делови.

  1. Иницијализација. За да се иницијализира FIR, се користи следниов API.
    void arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
    S: FIR филтер структура
    бројки: Бројот на филтер stages (бројот на коефициентите на филтерот). Во овој ексample, numTaps=29.
    Coffs: Коефициент на филтер. Има 29 коефициенти на филтер во овој прample кој го пресметува MATLAB.
    состојба: Индикатор за статус
    blockSize: Го претставува бројот на samples обработени во исто време.
  2. Нископропусен филтер. Со повикување на API на FIR, 32 сampлес се обработуваат секој пат и има 320 сampвкупно помалку. Користениот API е прикажан подолу.
    void arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: FIR филтер структура
    pSrc: Влезен сигнал. Мешан сигнал од 1kHz и 15kHz е влезен во овој прampле. pDst: Излезен сигнал. Очекуваниот излезен сигнал е 1 kHz. blockSize: Го претставува бројот на samples обработени во исто време.
  3. Проверка на податоци. Резултатот од филтрирањето добиен од MATLAB се смета за референца, а резултатот од филтрирањето добиен од CMSIS-DSP е вистинската вредност. Споредете ги двата резултати за да потврдите дали излезниот резултат е точен или не. float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
    Pref: Референтна вредност генерирана од MATLAB.
    пост: Вистинската вредност генерирана од CMSIS-DSP.
    blockSize: Го претставува бројот на samples обработени во исто време.
    Како што е прикажано подолу, Влезните податоци покажуваат дека сигналот сè уште не е филтриран, а излезните податоци го прикажуваат филтрираниот резултат. Y-оската го претставува ampлитуда на сигналот и сampЛинг фреквенцијата е 48 kHz, така што бројот на X-оската плус еден претставува време плус 20.833 μs. Од Слика 12 и Слика 13 може да се види дека сигналот од 15 kHz е елиминиран и останува само сигналот од 1 kHz.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 11

Високопропусен филтер - IIR
Овој дел, со воведување на апликацијата\CMSIS_DSP\filter_iir_high_pass_example, ќе покаже како да го поставите IIR филтерот и да ги отстраните сигналите со ниска фреквенција со помош на IIR. Влезниот сигнал е составен од синусни бранови од 1Hz и 30Hz. Сигналот сampЛинг фреквенцијата е 100Hz и вкупно 480 точки се sampпредводена. Сигналите под 7Hz се отстрануваат од IIR.
Кодот на апликацијата е поделен на неколку делови. 

  1.  Има 480 сampлес. Сample 0~159 се синусни бранови од 30Hz, sample 160~319 се синусни бранови од 1Hz и sample 320~479 се синусни бранови од 30Hz.
  2. Иницијализација. За иницијализирање на IIR, се користи следниов API. void arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *состојба));
    S: IIR структура на филтерот
    сума сtages: Бројот на s од втор редtagе во филтерот. Во овој ексample, numStages=1.
    Coffs: Коефициент на филтер. Има 5 коефициенти на филтер во овој прampле.
    состојба: Индикатор за статус
  3. Високопропусен филтер. Со повикување на API на IIR, 1 сampле се обработува секој пат и има 480 сampвкупно помалку. Користениот API е прикажан подолу. void arm_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: IIR структура на филтерот
    pSrc: Влезен сигнал. Мешан сигнал од 1Hz и 30Hz е влезен во овој прampле.
    pDst: Излезен сигнал. Очекуваниот излезен сигнал е 30Hz.
    blockSize: Го претставува бројот на samples обработени во исто време.
  4. Излез на резултат. Влезните и излезните сигнали се емитуваат на компјутерот преку печатење. Како што е прикажано подолу, Влезните податоци покажуваат дека сигналот сè уште не е филтриран, а излезните податоци го прикажуваат филтрираниот резултат. Y-оската го претставува ampлитуда на сигналот и сampЛинг фреквенцијата е 100Hz, така што бројот на X-оската плус еден претставува време плус 10ms. Од Слика 14 и Слика 15 може да се види дека сигналот од 1 Hz е елиминиран и останува само сигналот од 30 Hz.

HOLTEK HT32 CMSIS-DSP библиотека - Сл. 12

Размислувања

Корисниците треба да обрнат посебно внимание на големината на меморијата по компајлирањето кога ја користат библиотеката на функции CMSIS-DSP. Уверете се дека нема прелевање на меморијата пред тестирањето.
Заклучок
CMSIS-DSP има големи способности за обработка на сигнали и математичко пресметување и е достоен за сериозно разгледување од страна на корисниците.
Референтен материјал
Референца webсајт: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Информации за верзии и модификација

Датум Автор Прашање Информации за модификација
2022.06.02 Пишување, Лиу V1.10 Изменете ја патеката за преземање
2019.09.03 Ален, Ванг V1.00 Првата верзија

Одрекување

Сите информации, трговски марки, логоа, графики, видеа, аудио клипови, линкови и други ставки што се појавуваат на ова webстраницата („Информации“) се само за референца и е предмет на промена во секое време без претходна најава и по дискреција на Holtek Semiconductor Inc. и нејзините поврзани компании (во понатамошниот текст „Holtek“, „компанијата“, „нас“, „ ние“ или „наше“). Додека Holtek се труди да ја обезбеди точноста на Информациите за ова webсајт, Холтек не дава експресна или имплицитна гаранција за точноста на информациите. Холтек нема да сноси одговорност за каква било неточност или истекување. Holtek нема да биде одговорен за какви било штети (вклучувајќи, но не ограничувајќи се на компјутерски вируси, системски проблеми или загуба на податоци) што и да настане при користењето или во врска со користењето на овој webсајт од која било страна. Може да има врски во оваа област, кои ви дозволуваат да ја посетите webсајтови на други компании. Овие webсајтовите не се контролирани од Holtek. Holtek нема да сноси никаква одговорност и никаква гаранција за какви било информации прикажани на таквите страници. Хиперврски до други webсајтовите се на ваш сопствен ризик.
Ограничување на одговорноста
Во секој случај, Компанијата нема потреба да презема одговорност за каква било загуба или штета предизвикана кога некој ќе ја посети webсајт директно или индиректно и ги користи содржините, информациите или услугата на webсајт.
Управувачки закон
Ова одрекување е предмет на законите на Република Кина и под јурисдикција на Судот на Република Кина.
Ажурирање на Одрекување од одговорност
Holtek го задржува правото да го ажурира Одрекувањето од одговорност во секое време со или без претходно известување, сите промени стапуваат во сила веднаш по објавувањето на webсајт.

Лого на HOLTEK

Документи / ресурси

Библиотека HOLTEK HT32 CMSIS-DSP [pdf] Упатство за корисникот
HT32, CMSIS-DSP библиотека, HT32 CMSIS-DSP библиотека, библиотека

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *