HOLTEK lógó HT32 CMSIS-DSP bókasafn
Notendahandbók
D/N: AN0538EN

Inngangur

CMSIS er hugbúnaðarstaðalviðmót þróað af ARM sem ber fullt nafn Cortex Microcontroller Software Interface Standard. Með þessu staðlaða viðmóti geta verktaki notað sama viðmótið til að stjórna örstýringum frá mismunandi birgjum og stytta þannig þróunar- og námstíma þeirra til muna. Nánari upplýsingar er að finna hjá embættismanni CMSIS websíða: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Þessi texti lýsir aðallega CMSIS-DSP forritinu í HT32 röð örstýringa sem inniheldur uppsetningu umhverfisins, notkunarleiðbeiningar o.s.frv.

Virkni lýsing

CMSIS-DSP eiginleikar
CMSIS-DSP, sem er einn af CMSIS íhlutunum inniheldur eftirfarandi eiginleika.

  1. Veitir safn af almennum merkjavinnsluaðgerðum sem eru tileinkaðar Cortex-M.
  2. Aðgerðarsafnið sem ARM býður upp á hefur yfir 60 aðgerðir.
  3. Styður q7, q15, q31
    (Athugið) og fljótandi punkta (32-bita) gagnategundir
  4. Útfærslur eru fínstilltar fyrir SIMD leiðbeiningasettið sem er fáanlegt fyrir Cortex-M4/M7/M33/M35P.

Athugið: Nafnirnar q7, q15 og q31 í aðgerðasafninu tákna 8, 16 og 32bita fasta punkta í sömu röð.
CMSIS-DSP aðgerðasafnsatriði
CMSIS-DSP aðgerðasafnið er skipt í eftirfarandi flokka:

  1. Grunn stærðfræðiaðgerðir, hraðar stærðfræðiaðgerðir og flóknar stærðfræðiaðgerðir
  2. Merkjasíunaraðgerðir
  3. Fylkisaðgerðir
  4. Umbreyta aðgerðum
  5. Mótorstýringaraðgerðir
  6. Tölfræðilegar aðgerðir
  7. Stuðningsaðgerðir
  8. Interpolation aðgerðir

Umhverfisuppsetning

Þessi hluti mun kynna vélbúnaðinn og hugbúnaðinn sem notaður er í forritinu tdample.
Vélbúnaður
Þrátt fyrir að CMSIS-DSP styðji alla HT32 röðina, er mælt með því að nota MCU með SRAM getu sem er stærri en 4KB sem CMSIS-DSP forritið td.ample krefst stærri SRAM stærð. Þessi texti tekur ESK32-30501 sem fyrrverandiample sem notar HT32F52352.
Hugbúnaður
Áður en forritið er notað tdampfyrst skaltu ganga úr skugga um að nýjasta Holtek HT32 vélbúnaðarsafnið hafi verið hlaðið niður frá Holtek embættismanni websíða. Niðurhalsstaðurinn er sýndur á mynd
Þjappaðu niður file eftir niðurhal.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd

Sæktu CMSIS-DSP forritskóðann í gegnum tengilinn hér að neðan. Forritskóðinn er pakkaður sem zip file með nafninu HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Sækja slóð: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
The file nafnareglu er sýnd á mynd 2.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 2

Þar sem forritskóðinn inniheldur ekki vélbúnaðarsafn files, notendur þurfa að setja afþjappaða forritskóðann og vélbúnaðarsafnið files inn á réttan hátt áður en söfnun hefst. Umsóknarkóði file inniheldur tvær möppur, sem eru forritið og bókasafnið þar sem staðsetningin er sýnd á mynd 3. Settu þessar tvær möppur í rótarskrá fastbúnaðarsafnsins til að klára file slóðarstillingar eins og sýnt er á mynd 4. Notendur geta einnig þjappað niður forritakóðann og fastbúnaðarsafnið þjappað files inn á sömu braut til að ná sömu áhrifum. Fyrir þetta frvample, skráin fyrir CMSIS_DSP mun sjást undir forritamöppunni eftir afþjöppun.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 3

File Uppbygging

Tvær aðalmöppurnar sem fylgja með forritskóðanum file, bókasafn\CMSIS og forrit\CMSIS_DSP, er lýst sérstaklega hér að neðan.
Innihald bókasafns\CMSIS möppunnar er sem hér segir.

Nafn möppu Lýsing
DSP_Lib Forrit FW frumkóði
DSP_Lib\Examples Inniheldur marga staðlaða tdamples af CMSIS-DSP virknisafninu sem eru veitt af ARM. Stillingar fyrir þessi verkefni eru framkvæmdar á herma hátt án þess að þurfa MCU. Notendur geta fljótt lært hvernig á að nota þetta tdamples með því að framkvæma þær.
DSP_Lib\Source CMSIS-DSP virkni bókasafn frumkóði
Taka með Nauðsynlegur haus file þegar CMSIS-DSP virknisafnið er notað
Hafa\arm_common_tables.h Yfirlýsing um ytri fylkisbreytur (ytri)
Hafa\arm_const_structs.h Yfirlýsing um ytri fasta
Hafa\arm_math.h Þetta file er mjög mikilvægt sem viðmót til að nota CMSIS-DSP aðgerðasafnið. Símtöl í hvaða forritaskil aðgerðasafns sem er eru útfærð í gegnum arm_math.h.
Lib\ARM CMSIS-DSP virknisafn fyrir ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian)
Lib\GCC CMSIS-DSP virknisafn fyrir GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

Forritið\CMSIS_DSP mappan inniheldur mörg CMSIS_DSP tdamples, sem nota HT32 seríuna af MCU og styðja alla HT32 seríuna. Verkefnin eru þróuð með Keil MDK_ARM.

Nafn möppu Lýsing
arm_class_marks_example Sýnir hvernig á að fá hámarksgildi, lágmarksgildi, væntanlegt gildi, staðalfrávik, dreifni og fylkisföll.
arm_convolution_example Sýnir umbrotssetninguna með flóknu FFT og stuðningsaðgerðum.
arm_dotproduct_example Sýnir hvernig á að fá punktaafurð með margföldun og samlagningu vigra.
arm_fft_bin_example Sýnir hvernig á að reikna út hámarksorkugluggann (bin) í tíðnisviði inntaksmerkja með því að nota flókna FFT, flókna stærðargráðu og hámarkseiningsaðgerðir.
arm_fir_example Sýnir hvernig á að innleiða lágpassasíun með FIR.
arm_graphic_equalizer_example Sýnir hvernig á að breyta hljóðgæðum með því að nota grafíska tónjafnarann.
arm_linear_interp_example Sýnir notkun á línulegri innskotseiningu og hraðvirkri stærðfræðieiningu.
arm_matrix_example Sýnir fylkisfylgniútreikning þar á meðal fylkisumbreytingu, fylkisföldun og fylkisöfug.
arm_signal_converge_example Sýnir sjálfstillanlegu FIR lágpassasíuna með því að nota NLMS (Normalised Least Mean Square), FIR og grunn stærðfræðieiningum.
arm_sin_cos_example Sýnir hornafræðilega útreikninga.
arm_variance_example Sýnir hvernig á að reikna út dreifni með grunn stærðfræði og stuðningsaðgerðum.
filter_iir_high_pass_example Sýnir hvernig á að innleiða hápassasíun með IIR.

Próf
Þessi texti mun nota forritið\CMSIS_DSP\arm_class_marks_example sem prófið fyrrvample. Áður en þú byrjar að prófa skaltu athuga hvort ESK32-30501 hafi verið tengdur eða ekki og tryggja að forritskóðinn og vélbúnaðarsafnið hafi verið komið fyrir á réttum stað. Opnaðu forritið\CMSIS_DSP\arm_class_marks_example möppuna og keyrðu _CreateProject.bat  file, eins og sýnt er hér að neðan. Eftir þetta, opnaðu MDK_ARMv5 (eða MDK_ARM fyrir Keilv4), til að komast að því að þetta fyrrverandiample styður alla HT32 seríuna. Opnaðu Project_52352.uvprojx verkefnið vegna þess að ESK32-30501 er notað.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 4

Eftir að verkefnið hefur verið opnað skaltu safna saman (flýtivísa "F7"), hlaða niður (flýtivísa "F8"), kemba (flýtileiðarlykill "Ctrl+F5") og keyra síðan (flýtilykil "F5"). Hægt er að fylgjast með framkvæmdarniðurstöðum með því að nota breyturnar sem taldar eru upp hér að neðan.

Breytilegt Nafn Gögn Stefna Lýsing Framkvæmd Niðurstaða
testMarks_f32 Inntak Ein 20×4 fylki
testUnity_f32 Inntak Ein 4×1 fylki
prófunarútgangur Framleiðsla Varan af testMarks_f32 og testUnity_f32 {188,229,210…}
hámarksmerki Framleiðsla Hámarksgildi þáttanna í prófunarúttaksfylki 364
lágmarksmerki Framleiðsla Lágmarksgildi þáttanna í prófunarúttaksfylki 156
meina Framleiðsla Áætlað gildi frumefna í prófunarúttaksfylki 212.300003
std Framleiðsla Staðalfrávik frumefna í prófunarúttaksfylki 50.9128189
var Framleiðsla Dreifni þáttanna í prófunarúttaksfylki 2592.11523

Notkunarleiðbeiningar 

Samþætting
Þessi hluti mun kynna hvernig á að samþætta CMSIS-DSP í verkefnum notenda.
Skref 1
Fyrst skaltu bæta við nýju Define tákni þegar þú stillir verkefnið, „ARM_MATH_CM0PLUS“ fyrir M0+ og „ARM_MATH_CM3“ fyrir M3. Stillingaraðferð: (1) Valmöguleikar fyrir Target flýtilykla “Alt+F7”), (2) Veldu C/C++ síðu, (3) Bættu við nýrri skilgreiningu í Skilgreina valmöguleikann, eins og sýnt er hér að neðan.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 5

Skref 2
Til að bæta við slóð, smelltu á hnappinn við hliðina á „Include Paths“ valmöguleikann á C/C++ síðunni. Þá birtist möppuuppsetningargluggi þar sem hægt er að bæta við nýrri slóð ..\..\..\..\library\CMSIS\Include“, eins og sýnt er hér að neðan.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 6

Skref 3 (Valfrjálst)
Til að bæta við aðgerðasafninu, smelltu á hnappinn „Stjórna verkþáttum“ eins og sýnt er hér að neðan. Ef hnappurinn sést ekki skaltu smella á „Window → Reset View í sjálfgefnar stillingar → Endurstilla“, þannig að stillingar IDE gluggans fara aftur í sjálfgefnar stillingar. Eftir þetta birtist hnappurinn „Stjórna verkefnahlutum“.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 7

Bættu CMSIS-DSP möppunni við með því að nota hnappana eins og sýnt er í rauða reitnum hér að neðan og færðu hana undir CMSIS möppuna með því að nota „Færa upp“ hnappinn. Lokaðu glugganum Stjórna verkefnistíma þegar því er lokið.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 8

Skref 4
Tvísmelltu á CMSIS-DSP möppuna til vinstri (ef 3. skrefi er sleppt skaltu velja hvaða möppu sem er eins og User eða CMSIS osfrv.), bættu síðan CMSIS-DSP aðgerðasafninu inn í hana. Veldu \library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib fyrir M0+ eða \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib fyrir M3. Þegar því er lokið mun aðgerðarsafnið arm_cortexMxl_math.lib birtast í CMSIS-DSP möppunni, eins og sýnt er hér að neðan.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 9

Skref 5
Bætið hausnum við file „arm_math.h“ í main.c, eins og sýnt er hér að neðan. Nú hefur öllum samþættingarstillingum verið lokið

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 10

Low-Pass sía - FIR

Þessi hluti, með því að kynna forritið\CMSIS_DSP\arm_fir_example, mun sýna hvernig á að stilla FIR síuna og fjarlægja hátíðnimerki með því að nota FIR. Inntaksmerkið er samsett úr 1kHz og 15kHz sinusbylgjum. Merkið sampling tíðni er 48kHz. Merki yfir 6kHz eru síuð af FIR og 1kHz merki eru send út. Umsóknarkóðanum er skipt í nokkra hluta.

  1. Frumstilling. Til að frumstilla FIR er eftirfarandi API notað.
    ógilt arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
    S: FIR síu uppbygging
    tölur: Fjöldi sía stages (fjöldi síustuðla). Í þessu frvample, numTaps=29.
    Coffs: Síustuðull. Það eru 29 síustuðlar í þessu frvample sem er reiknað af MATLAB.
    ástand: Stöðuvísir
    blockSize: Táknar fjölda samples unnin í einu.
  2. Lágrásarsía. Með því að hringja í API FIR, 32 samples eru unnin í hvert sinn og það eru 320 sekamples samtals. API sem notað er er sýnt hér að neðan.
    ógilt arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: FIR síu uppbygging
    pSrc: Inntaksmerki. Blandað merki 1kHz og 15kHz er inntak í þessu dæmiample. pDst: Úttaksmerki. Væntanlegt úttaksmerki er 1kHz. blockSize: Táknar fjölda samples unnin í einu.
  3. Staðfesting gagna. Síuniðurstaðan sem fæst með MATLAB er talin viðmiðunin og síunarniðurstaðan sem fæst með CMSIS-DSP er raunverulegt gildi. Berðu saman þessar tvær niðurstöður til að sannreyna hvort úttaksniðurstaðan sé rétt eða ekki. float arm_snr_f32(float *pRef, flot *pTest, uint32_t buffSize)
    Pref: Viðmiðunargildi myndað af MATLAB.
    færsla: Raunverulegt gildi myndað af CMSIS-DSP.
    blockSize: Táknar fjölda samples unnin í einu.
    Eins og sýnt er hér að neðan sýna inntaksgögn að merkið er ekki enn síað og úttaksgögn sýna síuðu niðurstöðuna. Y-ásinn táknar amplitude merkisins og sampling tíðni er 48kHz, þannig að X-ás talan plús einn táknar tíma plús 20.833μs. Það má finna á mynd 12 og mynd 13 að 15kHz merkið er eytt og aðeins 1kHz merkið er eftir.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 11

Hápassasía – IIR
Þessi hluti, með því að kynna forritið\CMSIS_DSP\filter_iir_high_pass_example, mun sýna hvernig á að stilla IIR síuna og fjarlægja lágtíðnimerki með því að nota IIR. Inntaksmerkið er samsett úr 1Hz og 30Hz sinusbylgjum. Merkið sampling tíðni er 100Hz og samtals 480 punktar eru sampleiddi. Merki undir 7Hz eru fjarlægð af IIR.
Umsóknarkóðanum er skipt í nokkra hluta. 

  1.  Það eru 480 samples. Sample 0~159 eru 30Hz sinusbylgjur, sample 160~319 eru 1Hz sinusbylgjur og sample 320~479 eru 30Hz sinusbylgjur.
  2. Frumstilling. Til að frumstilla IIR er eftirfarandi API notað. ógilt arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *state));
    S: IIR síu uppbygging
    summa stages: Fjöldi annars stigs stager í síunni. Í þessu frvample, numStages=1.
    Coffs: Síustuðull. Það eru 5 síustuðlar í þessu frvample.
    ástand: Stöðuvísir
  3. Hárásarsía. Með því að hringja í API IIR, 1 sampLeið er unnið í hvert sinn og eru 480 samples samtals. API sem notað er er sýnt hér að neðan. ógilt arm_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: IIR síu uppbygging
    pSrc: Inntaksmerki. Blandað merki 1Hz og 30Hz er inntak í þessu dæmiample.
    pDst: Úttaksmerki. Væntanlegt úttaksmerki er 30Hz.
    blockSize: Táknar fjölda samples unnin í einu.
  4. Niðurstaða framleiðsla. Inntaks- og úttaksmerkin eru send út á tölvuna í gegnum prentun. Eins og sýnt er hér að neðan sýna inntaksgögn að merkið er ekki enn síað og úttaksgögn sýna síuðu niðurstöðuna. Y-ásinn táknar amplitude merkisins og sampling tíðni er 100Hz, þannig að X-ás talan plús einn táknar tíma plús 10ms. Það má finna á mynd 14 og mynd 15 að 1Hz merkið er eytt og aðeins 30Hz merkið er eftir.

HOLTEK HT32 CMSIS-DSP bókasafn - mynd 12

Hugleiðingar

Notendur ættu að huga sérstaklega að minnisstærðinni eftir samantekt þegar þeir nota CMSIS-DSP virknisafnið. Gakktu úr skugga um að ekkert minnisflæði eigi sér stað fyrir prófun.
Niðurstaða
CMSIS-DSP hefur mikla hæfileika í merkjavinnslu og stærðfræðilegum útreikningum og er vert að íhuga alvarlega af notendum.
Viðmiðunarefni
Tilvísun websíða: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Útgáfur og breytingarupplýsingar

Dagsetning Höfundur Útgáfa Upplýsingar um breytingar
2022.06.02 Að skrifa, Liu V1.10 Breyttu niðurhalsslóðinni
2019.09.03 Allen, Wang V1.00 Fyrsta útgáfa

Fyrirvari

Allar upplýsingar, vörumerki, lógó, grafík, myndbönd, hljóðinnskot, tengla og önnur atriði sem birtast á þessu websíða ('Upplýsingar') eru eingöngu til viðmiðunar og geta breyst hvenær sem er án fyrirvara og að eigin vali Holtek Semiconductor Inc. og tengdra fyrirtækja þess (hér á eftir 'Holtek', 'fyrirtækið', 'okkur', ' við' eða 'okkar'). Þó Holtek reyni að tryggja nákvæmni upplýsinganna um þetta websíðu er engin bein eða óbein ábyrgð veitt af Holtek á nákvæmni upplýsinganna. Holtek ber enga ábyrgð á röngum eða leka. Holtek ber ekki ábyrgð á neinu tjóni (þar á meðal en ekki takmarkað við tölvuvírus, kerfisvandamál eða gagnatap) af neinu tagi sem verður við notkun eða í tengslum við notkun þessa. websíða af hvaða aðila sem er. Það kunna að vera tenglar á þessu svæði sem gera þér kleift að heimsækja websíður annarra fyrirtækja. Þessar websíður eru ekki undir stjórn Holtek. Holtek ber enga ábyrgð og enga ábyrgð á neinum upplýsingum sem birtar eru á slíkum síðum. Tenglar á annað websíður eru á eigin ábyrgð.
Takmörkun ábyrgðar
Í öllum tilvikum þarf fyrirtækið ekki að taka ábyrgð á tjóni eða tjóni sem verður þegar einhver heimsækir websíðuna beint eða óbeint og notar innihald, upplýsingar eða þjónustu á websíða.
Stjórnarlög
Þessi fyrirvari er háður lögum lýðveldisins Kína og undir lögsögu dómstóls lýðveldisins Kína.
Uppfærsla á fyrirvari
Holtek áskilur sér rétt til að uppfæra fyrirvarana hvenær sem er með eða án fyrirvara, allar breytingar taka gildi strax við birtingu á websíða.

HOLTEK lógó

Skjöl / auðlindir

HOLTEK HT32 CMSIS-DSP bókasafn [pdfNotendahandbók
HT32, CMSIS-DSP bókasafn, HT32 CMSIS-DSP bókasafn, bókasafn

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *