Maktaba ya HT32 CMSIS-DSP
Mwongozo wa Mtumiaji
D/N: AN0538EN
Utangulizi
CMSIS ni kiolesura cha kawaida cha programu kilichotengenezwa na ARM ambacho kina jina kamili la Cortex Microcontroller Software Interface Standard. Kwa kiolesura hiki cha kawaida, wasanidi programu wanaweza kutumia kiolesura sawa ili kudhibiti vidhibiti vidogo kutoka kwa wasambazaji tofauti hivyo kufupisha sana muda wao wa ukuzaji na kujifunza. Kwa maelezo zaidi, rejelea afisa wa CMSIS webtovuti: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Maandishi haya yanaelezea haswa programu ya CMSIS-DSP katika safu ya vidhibiti vidogo vya HT32 ambavyo ni pamoja na usanidi wa mazingira, mwelekeo wa matumizi, n.k.
Maelezo ya Utendaji
Vipengele vya CMSIS-DSP
CMSIS-DSP, ambayo ni mojawapo ya vipengele vya CMSIS inajumuisha vipengele vifuatavyo.
- Hutoa seti ya vitendakazi vya uchakataji wa mawimbi ya jumla yaliyotolewa kwa Cortex-M.
- Maktaba ya kazi iliyotolewa na ARM ina zaidi ya vitendaji 60.
- Inaauni q7, q15, q31
(Kumbuka) na aina za data za sehemu inayoelea (32-bit). - Utekelezaji umeboreshwa kwa seti ya maagizo ya SIMD ambayo inapatikana kwa Cortex-M4/M7/M33/M35P.
Kumbuka: Kutaja q7, q15, na q31 katika maktaba ya kazi mtawalia huwakilisha nukta 8, 16, na 32bit zisizohamishika.
Vipengee vya Maktaba ya Kazi ya CMSIS-DSP
Maktaba ya kazi ya CMSIS-DSP imegawanywa katika kategoria zifuatazo:
- Vipengele vya msingi vya hesabu, utendaji wa haraka wa hisabati, na utendaji changamano wa hisabati
- Vitendaji vya kuchuja mawimbi
- Kazi za Matrix
- Badilisha vipengele
- Kazi za udhibiti wa magari
- Kazi za takwimu
- Kazi za usaidizi
- Kazi za tafsiri
Mpangilio wa Mazingira
Sehemu hii itatambulisha maunzi na programu zinazotumika katika programu ya zamaniample.
Vifaa
Ingawa CMSIS-DSP inaauni mfululizo kamili wa HT32, inapendekezwa kutumia MCU yenye uwezo wa SRAM kubwa kuliko 4KB kama programu ya zamani ya CMSIS-DSP.ample inahitaji saizi kubwa ya SRAM. Maandishi haya yanachukua ESK32-30501 kama example ambayo hutumia HT32F52352.
Programu
Kabla ya kutumia programu ya zamaniampkwanza, hakikisha kwamba Maktaba mpya kabisa ya Holtek HT32 Firmware imepakuliwa kutoka kwa afisa wa Holtek. webtovuti. Eneo la upakuaji linaonyeshwa kwenye Kielelezo
Decompress ya file baada ya kupakua.
Pakua msimbo wa maombi wa CMSIS-DSP kupitia kiungo kilicho hapa chini. Msimbo wa maombi umejaa kama zip file kwa jina la HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Njia ya kupakua: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
The file sheria ya kutaja imeonyeshwa kwenye Mchoro 2.
Kwa kuwa nambari ya programu haina maktaba ya firmware files, watumiaji wanahitaji kuweka msimbo wa programu ambao haujafungwa na maktaba ya programu dhibiti files kwenye njia sahihi kabla ya kuanza mkusanyiko. Msimbo wa maombi file ina folda mbili, ambazo ni programu-tumizi na maktaba ambayo eneo lake limeonyeshwa kwenye Mchoro 3. Weka folda hizi mbili kwenye saraka ya mizizi ya maktaba ili kukamilisha file usanidi wa njia kama inavyoonyeshwa kwenye Mchoro 4. Watumiaji wanaweza pia kubana msimbo wa programu na maktaba ya programu dhibiti kubanwa. files kwenye njia sawa ili kufikia athari sawa. Kwa huyu exampna, saraka ya CMSIS_DSP itaonekana chini ya folda ya programu baada ya mgandamizo.
File Muundo
Folda kuu mbili zilizojumuishwa kwenye nambari ya programu file, maktaba\CMSIS, na matumizi\CMSIS_DSP, yamefafanuliwa kibinafsi hapa chini.
Yaliyomo kwenye maktaba\CMSIS folda ni kama ifuatavyo.
Jina la folda | Maelezo |
DSP_Lib | Msimbo wa chanzo wa FW wa maombi |
DSP_Lib\Exampchini | Ina nyingi za kawaida za zamaniampsehemu za maktaba ya chaguo za kukokotoa za CMSIS-DSP ambazo hutolewa na ARM. Mipangilio ya miradi hii inatekelezwa kwa njia ya kuigwa bila kuhitaji MCU. Watumiaji wanaweza kujifunza kwa haraka jinsi ya kutumia hizi examples kwa kuzitekeleza. |
DSP_Lib\Chanzo | Msimbo wa chanzo wa maktaba ya CMSIS-DSP |
Jumuisha | Kichwa cha lazima file unapotumia maktaba ya kazi ya CMSIS-DSP |
Jumuisha\arm_common_tables.h | Tamko la anuwai za safu ya nje (ya nje) |
Jumuisha\arm_const_structs.h | Tamko la mara kwa mara za nje |
Jumuisha\arm_math.h | Hii file ni muhimu sana kama kiolesura cha kutumia maktaba ya utendaji kazi wa CMSIS-DSP. Simu kwa API yoyote ya maktaba ya utendaji inatekelezwa kupitia arm_math.h. |
Lib\ARM | Maktaba ya utendaji ya CMSIS-DSP ya ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Endian kidogo) |
Lib\GCC | Maktaba ya utendaji ya CMSIS-DSP ya GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Endian kidogo) |
Folda ya programu\CMSIS_DSP ina CMSIS_DSP nyingi za zamaniamples, ambayo hutumia mfululizo wa HT32 wa MCU na kuauni mfululizo kamili wa HT32. Miradi hiyo inatengenezwa kwa kutumia Keil MDK_ARM.
Jina la folda | Maelezo |
arm_class_marks_example | Inaonyesha jinsi ya kupata thamani ya juu zaidi, thamani ya chini zaidi, thamani inayotarajiwa, mkengeuko wa kawaida, tofauti na vitendakazi vya matriki. |
arm_convolution_example | Inaonyesha nadharia ya ubadilishaji kupitia FFT changamano na vitendaji vya usaidizi. |
arm_dotproduct_example | Inaonyesha jinsi ya kupata bidhaa ya nukta kupitia kuzidisha na kuongezwa kwa vekta. |
arm_fft_bin_example | Inaonyesha jinsi ya kukokotoa kidirisha cha juu zaidi cha nishati (bin) katika kikoa cha masafa ya mawimbi ya kuingiza data kwa kutumia FFT changamano, ukubwa changamano, na vitendakazi vya juu zaidi vya moduli. |
arm_fir_example | Inaonyesha jinsi ya kutekeleza uchujaji wa pasi ya chini kwa kutumia FIR. |
arm_graphic_equalizer_example | Inaonyesha jinsi ya kubadilisha ubora wa sauti kwa kutumia kusawazisha picha. |
arm_linear_interp_example | Inaonyesha matumizi ya moduli ya tafsiri ya mstari na moduli ya haraka ya hisabati. |
arm_matrix_example | Huonyesha hesabu ya uunganisho wa matriki ikijumuisha ugeuzaji wa matriki, kuzidisha matriki na kinyume cha matriki. |
arm_signal_converge_example | Huonyesha kichujio cha FIR chenye pasi ya chini kinachoweza kujirekebisha kwa kutumia NLMS (Mraba Iliyokawaida ya Wastani Wasio na Kiasi), FIR, na moduli za msingi za hesabu. |
arm_sin_cos_example | Inaonyesha mahesabu ya trigonometric. |
arm_variance_example | Inaonyesha jinsi ya kukokotoa tofauti kupitia hesabu za msingi na vipengele vya usaidizi. |
chujio_iir_high_pass_example | Inaonyesha jinsi ya kutekeleza uchujaji wa pasi ya juu kwa kutumia IIR. |
Mtihani
Maandishi haya yatatumia programu\CMSIS_DSP\arm_class_marks_exampkama mtihani wa zamaniample. Kabla ya kuanza kufanya majaribio, angalia ikiwa ESK32-30501 imeunganishwa au la na uhakikishe kuwa msimbo wa programu na maktaba ya programu dhibiti vimewekwa katika eneo linalofaa. Fungua programu\CMSIS_DSP\arm_class_marks_example folda na utekeleze _CreateProject.bat file, kama inavyoonyeshwa hapa chini. Baada ya hayo, fungua MDK_ARMv5 (au MDK_ARM ya Keilv4), ili kujua kwamba huyu wa zamani.ample inasaidia mfululizo kamili wa HT32. Fungua mradi wa Project_52352.uvprojx kwa sababu ESK32-30501 inatumika.
Baada ya kufungua mradi, kusanya (ufunguo wa njia ya mkato "F7"), pakua (ufunguo wa njia ya mkato "F8"), rekebisha (kitufe cha njia ya mkato "Ctrl + F5") na kisha utekeleze (kitufe cha njia ya mkato "F5"). Matokeo ya utekelezaji yanaweza kuzingatiwa kwa kutumia vigezo vilivyoorodheshwa hapa chini.
Inaweza kubadilika Jina | Mwelekeo wa Data | Maelezo | Matokeo ya Utekelezaji |
testMarks_f32 | Ingizo | Safu moja ya 20×4 | – |
testUnity_f32 | Ingizo | Safu moja ya 4×1 | – |
matokeo ya mtihani | Pato | Bidhaa ya testMarks_f32 na testUnity_f32 | {188…} |
alama_max | Pato | Thamani ya juu zaidi ya vipengee katika safu ya matokeo ya jaribio | 364 |
min_alama | Pato | Thamani ya chini ya vipengee katika safu ya matokeo ya jaribio | 156 |
maana | Pato | Thamani inayotarajiwa ya vipengee katika safu ya matokeo ya jaribio | 212.300003 |
std | Pato | Mkengeuko wa kawaida wa vipengele katika safu ya matokeo ya jaribio | 50.9128189 |
var | Pato | Tofauti ya vipengele katika safu ya matokeo ya jaribio | 2592.11523 |
Mwelekeo wa Matumizi
Kuunganisha
Sehemu hii itatambulisha jinsi ya kuunganisha CMSIS-DSP katika miradi ya watumiaji.
Hatua ya 1
Kwanza, ongeza alama mpya ya Define unapoweka mradi, “ARM_MATH_CM0PLUS” kwa M0+ na “ARM_MATH_CM3” kwa M3. Utaratibu wa kuweka: (1) Chaguo za ufunguo wa njia ya mkato Lengwa "Alt+F7"), (2) Chagua ukurasa wa C/C++, (3) Ongeza ufafanuzi mpya katika chaguo la Kufafanua, kama inavyoonyeshwa hapa chini.
Hatua ya 2
Ili kuongeza njia ya Jumuisha, bofya kitufe kilicho karibu na chaguo la "Jumuisha Njia" kwenye ukurasa wa C/C++. Kisha dirisha la Kuweka Folda litatokea, ambapo njia mpya ..\..\..\..\maktaba\CMSIS\Jumuisha" inaweza kuongezwa, kama inavyoonyeshwa hapa chini.
Hatua ya 3 (Si lazima)
Ili kuongeza maktaba ya kazi, bofya kitufe cha "Dhibiti Vipengee vya Mradi" kama inavyoonyeshwa hapa chini. Ikiwa kifungo hakionekani, bofya "Dirisha → Weka Upya View kwa Chaguomsingi → Weka upya”, ili usanidi wa dirisha la IDE urejee kwa mipangilio yake ya msingi. Baada ya hayo, kitufe cha "Dhibiti Vipengee vya Mradi" kitaonyeshwa.
Ongeza folda ya CMSIS-DSP kwa kutumia vitufe kama inavyoonyeshwa kwenye kisanduku chekundu na uisogeze chini ya folda ya CMSIS kwa kutumia kitufe cha "Sogeza Juu". Funga dirisha la vipengee vya Dhibiti Mradi unapomaliza.
Hatua ya 4
Bofya mara mbili folda ya CMSIS-DSP iliyo upande wa kushoto (ikiwa Hatua ya 3 imerukwa, chagua folda yoyote kama vile Mtumiaji au CMSIS, n.k.), kisha uongeze maktaba ya utendaji wa CMSIS-DSP ndani yake. Chagua \maktaba\CMSIS\Lib\ARM\arm_cortexM0l_math.lib kwa M0+ au \maktaba\CMSIS\Lib\ARM \arm_cortexM3l_math.lib kwa M3. Baada ya kukamilika, maktaba ya kazi arm_cortexMxl_math.lib itaonyeshwa kwenye folda ya CMSIS-DSP, kama inavyoonyeshwa hapa chini.
Hatua ya 5
Ongeza kichwa file “arm_math.h” hadi main.c, kama inavyoonyeshwa hapa chini. Sasa mipangilio yote ya ujumuishaji imekamilika
Kichujio cha Pasi ya chini - FIR
Sehemu hii, kwa kutambulisha programu\CMSIS_DSP\arm_fir_example, itaonyesha jinsi ya kuweka kichujio cha FIR na kuondoa mawimbi ya masafa ya juu kwa kutumia FIR. Mawimbi ya ingizo yana 1kHz na 15kHz sine mawimbi. Ishara ya sampmzunguko wa ling ni 48kHz. Mawimbi yaliyo zaidi ya 6kHz huchujwa na FIR na mawimbi ya 1kHz hutolewa. Nambari ya maombi imegawanywa katika sehemu kadhaa.
- Uanzishaji. Ili kuanzisha FIR, API ifuatayo inatumiwa.
arm_fir_init_f32 batili (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
S: Muundo wa chujio cha FIR
nambari: Idadi ya kichujio stages (idadi ya mgawo wa chujio). Katika hii example, numTaps=29.
Coffs: Kichujio mgawo. Kuna coefficients 29 za kichujio katika ex hiiample ambayo imehesabiwa na MATLAB.
hali: Kiashiria cha hali
blockSize: Inawakilisha idadi ya sampchini kusindika kwa wakati mmoja. - Kichujio cha pasi ya chini. Kwa kupiga API ya FIR, 32 samples huchakatwa kila wakati na kuna 320 sampchini kwa jumla. API iliyotumiwa imeonyeshwa hapa chini.
tupu arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
S: Muundo wa chujio cha FIR
pSrc: Ishara ya kuingiza. Ishara iliyochanganywa ya 1kHz na 15kHz inaingizwa katika ex hiiample. pDst: Ishara ya pato. Ishara ya pato inayotarajiwa ni 1kHz. blockSize: Inawakilisha idadi ya sampchini kusindika kwa wakati mmoja. - Uthibitishaji wa data. Matokeo ya kuchuja yaliyopatikana na MATLAB yanachukuliwa kuwa marejeleo na matokeo ya kuchuja yaliyopatikana kwa CMSIS-DSP ndiyo thamani halisi. Linganisha matokeo mawili ili kuthibitisha kama matokeo ni sahihi au la. float arm_snr_f32(elea *pRef, float *pTest, uint32_t buffSize)
Pref: Thamani ya marejeleo inayotolewa na MATLAB.
chapisho: Thamani halisi inayozalishwa na CMSIS-DSP.
blockSize: Inawakilisha idadi ya sampchini kusindika kwa wakati mmoja.
Kama inavyoonyeshwa hapa chini, Data ya Ingizo inaonyesha kuwa mawimbi bado hayajachujwa na Data ya Pato inaonyesha matokeo yaliyochujwa. Mhimili wa Y unawakilisha amplitude ya ishara na sampmzunguko wa ling ni 48kHz, kwa hivyo nambari ya mhimili wa X pamoja na moja inawakilisha wakati pamoja na 20.833μs. Inaweza kupatikana kutoka kwa Mchoro 12 na Mchoro 13 kwamba ishara ya 15kHz imeondolewa na ni ishara ya 1kHz tu iliyosalia.
Kichujio cha High-Pass- IIR
Sehemu hii, kwa kutambulisha programu\CMSIS_DSP\filter_iir_high_pass_example, itaonyesha jinsi ya kuweka kichujio cha IIR na kuondoa mawimbi ya masafa ya chini kwa kutumia IIR. Mawimbi ya ingizo yana 1Hz na 30Hz sine mawimbi. Ishara ya sampmzunguko wa ling ni 100Hz na jumla ya pointi 480 ni sampiliyoongozwa. Ishara zilizo chini ya 7Hz huondolewa na IIR.
Nambari ya maombi imegawanywa katika sehemu kadhaa.
- Kuna 480 sampchini. Sample 0~159 ni 30Hz sine mawimbi, sample 160~319 ni 1Hz sine mawimbi na sample 320~479 ni mawimbi ya sine 30Hz.
- Uanzishaji. Ili kuanzisha IIR, API ifuatayo inatumiwa. arm_biquad_cascade_df1_init_f32 batili (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoefs, float32_t *state));
S: Muundo wa chujio cha IIR
jumla stages: Idadi ya mpangilio wa pili stagiko kwenye kichujio. Katika hii example, nambaritages=1.
Coffs: Kichujio mgawo. Kuna coefficients 5 za kichujio katika ex hiiample.
hali: Kiashiria cha hali - Kichujio cha kupita kiwango cha juu. Kwa kupiga API ya IIR, 1 sample huchakatwa kila wakati na kuna 480 sampchini kwa jumla. API iliyotumiwa imeonyeshwa hapa chini. arm_biquad_cascade_df1_f32 batili (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
S: Muundo wa chujio cha IIR
pSrc: Ishara ya kuingiza. Mawimbi mchanganyiko ya 1Hz na 30Hz inaingizwa katika ex hiiample.
pDst: Ishara ya pato. Ishara ya pato inayotarajiwa ni 30Hz.
blockSize: Inawakilisha idadi ya sampchini kusindika kwa wakati mmoja. - Matokeo ya pato. Ishara za pembejeo na pato hutolewa kwa Kompyuta kupitia uchapishaji. Kama inavyoonyeshwa hapa chini, Data ya Ingizo inaonyesha kuwa mawimbi bado hayajachujwa na Data ya Pato inaonyesha matokeo yaliyochujwa. Mhimili wa Y unawakilisha amplitude ya ishara na sampmzunguko wa ling ni 100Hz, kwa hivyo nambari ya mhimili wa X pamoja na moja inawakilisha wakati pamoja na milisekunde. Inaweza kupatikana kutoka kwa Kielelezo 10 na Kielelezo 14 kwamba ishara ya 15Hz imeondolewa na ni ishara ya 1Hz pekee iliyosalia.
Mazingatio
Watumiaji wanapaswa kulipa kipaumbele maalum kwa ukubwa wa kumbukumbu baada ya kukusanya wakati wa kutumia maktaba ya kazi ya CMSIS-DSP. Hakikisha kuwa hakuna kumbukumbu inayopita kabla ya majaribio.
Hitimisho
CMSIS-DSP ina uwezo mkubwa katika usindikaji wa ishara na hesabu ya hisabati na inastahili kuzingatiwa kwa uzito na watumiaji.
Nyenzo za Marejeleo
Rejea webtovuti: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Matoleo na Taarifa ya Marekebisho
Tarehe | Mwandishi | Suala | Habari ya Marekebisho |
2022.06.02 | Kuandika, Liu | V1.10 | Rekebisha njia ya upakuaji |
2019.09.03 | Allen, Wang | V1.00 | Toleo la Kwanza |
Kanusho
Taarifa zote, alama za biashara, nembo, michoro, video, klipu za sauti, viungo na vitu vingine vinavyoonekana kwenye hii. webtovuti ('Maelezo') ni ya marejeleo pekee na yanaweza kubadilishwa wakati wowote bila taarifa ya awali na kwa uamuzi wa Holtek Semiconductor Inc. na kampuni zake zinazohusiana (hapa 'Holtek', 'kampuni', 'sisi', ' sisi' au 'yetu'). Huku Holtek akijitahidi kuhakikisha usahihi wa Taarifa kuhusu hili webtovuti, hakuna dhamana ya wazi au ya kudokezwa iliyotolewa na Holtek kwa usahihi wa Habari. Holtek hatawajibika kwa makosa yoyote au uvujaji. Holtek hatawajibika kwa uharibifu wowote (pamoja na lakini sio mdogo kwa virusi vya kompyuta, shida za mfumo au upotezaji wa data) wowote utakaotokea katika kutumia au kuhusiana na matumizi ya hii. webtovuti na chama chochote. Kunaweza kuwa na viungo katika eneo hili, vinavyokuwezesha kutembelea webtovuti za makampuni mengine. Haya webtovuti hazidhibitiwi na Holtek. Holtek haitawajibika na hakuna dhamana kwa Taarifa zozote zinazoonyeshwa kwenye tovuti kama hizo. Viungo kwa zingine webtovuti ziko kwa hatari yako mwenyewe.
Ukomo wa Dhima
Kwa vyovyote vile, Kampuni haina haja ya kuwajibika kwa hasara yoyote au uharibifu unaosababishwa wakati mtu yeyote anatembelea webtovuti moja kwa moja au isiyo ya moja kwa moja na hutumia yaliyomo, habari au huduma kwenye webtovuti.
Sheria ya Utawala
Kanusho hili liko chini ya sheria za Jamhuri ya Uchina na chini ya mamlaka ya Mahakama ya Jamhuri ya Uchina.
Usasishaji wa Kanusho
Holtek inahifadhi haki ya kusasisha Kanusho wakati wowote na au bila ilani ya hapo awali, mabadiliko yote yataanza kutumika mara moja baada ya kuchapishwa kwa webtovuti.
Nyaraka / Rasilimali
![]() |
Maktaba ya HOLTEK HT32 CMSIS-DSP [pdf] Mwongozo wa Mtumiaji HT32, Maktaba ya CMSIS-DSP, Maktaba ya HT32 CMSIS-DSP, Maktaba |