HT32 CMSIS-DSP Library
Jagorar Mai Amfani
D/N: Saukewa: AN0538
Gabatarwa
CMSIS mizanin masarrafar software ce ta ARM wacce ke da cikakken suna Cortex Microcontroller Software Interface Standard. Tare da wannan daidaitaccen keɓancewa, masu haɓakawa za su iya amfani da mahaɗa iri ɗaya don sarrafa microcontrollers daga masu samar da kayayyaki daban-daban don haka suna rage haɓakarsu da lokacin koyo. Don ƙarin bayani, koma ga jami'in CMSIS website: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Wannan rubutun ya fi bayyana aikace-aikacen CMSIS-DSP a cikin jerin HT32 na microcontrollers waɗanda suka haɗa da saitin yanayi, jagora don amfani, da sauransu.
Bayanin Aiki
Fasalolin CMSIS-DSP
CMSIS-DSP, wanda shine ɗayan abubuwan haɗin CMSIS ya haɗa da waɗannan abubuwan.
- Yana ba da saitin ayyukan sarrafa sigina na gabaɗaya da aka keɓe ga Cortex-M.
- Laburaren aikin da ARM ke bayarwa yana da ayyuka sama da 60.
- Yana goyan bayan q7,q15,q31
(bayanin kula) da nau'ikan bayanai masu iyo (32-bit). - An inganta aiwatarwa don saitin koyarwa na SIMD wanda akwai don Cortex-M4/M7/M33/M35P.
Lura: Sunan q7, q15, da q31 a cikin ɗakin karatu na aiki bi da bi suna wakiltar madaidaitan maki 8, 16, da 32bit.
Abubuwan Laburare Ayyukan CMSIS-DSP
Laburaren aikin CMSIS-DSP ya kasu kashi-kashi masu zuwa:
- Ayyukan lissafi na asali, ayyukan lissafin sauri, da hadaddun ayyukan lissafi
- Ayyukan tace sigina
- Matrix ayyuka
- Canza ayyuka
- Ayyukan sarrafa motoci
- Ayyukan ƙididdiga
- Ayyukan tallafi
- Ayyukan interpolation
Saitin Muhalli
Wannan sashe zai gabatar da kayan masarufi da software da aka yi amfani da su a cikin aikace-aikacen example.
Hardware
Kodayake CMSIS-DSP yana goyan bayan cikakken jerin HT32, ana ba da shawarar yin amfani da MCU tare da ƙarfin SRAM mafi girma fiye da 4KB azaman aikace-aikacen CMSIS-DSP ex.ample yana buƙatar girman SRAM mafi girma. Wannan rubutu yana ɗaukar ESK32-30501 azaman tsohonampwanda ke amfani da HT32F52352.
Software
Kafin amfani da aikace-aikacen example, da farko, tabbatar da cewa an sauke sabuwar Holtek HT32 Firmware Library daga jami'in Holtek. website. Ana nuna wurin zazzagewa a hoto
Decompress da file bayan saukewa.
Zazzage lambar aikace-aikacen CMSIS-DSP ta hanyar haɗin da ke ƙasa. An cika lambar aikace-aikacen azaman zip file tare da sunan HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Hanyar saukewa: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
The file Ana nuna ƙa'idar suna a hoto na 2.
Kamar yadda lambar aikace-aikacen ba ta ƙunshi ɗakin karatu na firmware ba files, masu amfani suna buƙatar sanya lambar aikace-aikacen da ba a buɗe ba da ɗakin karatu na firmware files cikin madaidaiciyar hanya kafin fara haɗawa. Lambar aikace-aikacen file ya ƙunshi manyan fayiloli guda biyu, waɗanda su ne aikace-aikacen da kuma ɗakin karatu wanda aka nuna wurin su a cikin hoto na 3. Sanya waɗannan manyan fayiloli guda biyu a cikin tushen tushen laburare na firmware don kammala karatun. file Tsarin hanya kamar yadda aka nuna a Hoto 4. Masu amfani kuma za su iya rage lambar aikace-aikacen da ɗakin karatu na firmware da aka matsa files cikin hanya guda don cimma tasiri iri ɗaya. Domin wannan exampHar ila yau, za a ga kundin adireshi na CMSIS_DSP a ƙarƙashin babban fayil ɗin aikace-aikacen bayan yankewa.
File Tsarin
Manyan manyan fayiloli guda biyu da aka haɗa a cikin lambar aikace-aikacen file, laburare\CMSIS, da aikace-aikacen\CMSIS_DSP, an kwatanta su daban-daban a ƙasa.
Abubuwan da ke cikin babban fayil ɗin laburare\CMSIS sune kamar haka.
Sunan Jaka | Bayani |
DSP_Lib | Aikace-aikacen FW lambar tushe |
DSP_Lib\Examples | Ya ƙunshi ma'auni da yawa examples na ɗakin karatu na aikin CMSIS-DSP wanda ARM ke bayarwa. Ana aiwatar da saitunan waɗannan ayyukan ta hanyar kwaikwaya ba tare da buƙatar MCU ba. Masu amfani za su iya koyon yadda ake amfani da waɗannan tsoffinamples ta hanyar aiwatar da su. |
DSP_Lib Source | CMSIS-DSP lambar tushen ɗakin karatu |
Hada | Mabuɗin kai file lokacin amfani da ɗakin karatu na aikin CMSIS-DSP |
Hada da tebur_na kowa_hannu.h | Sanarwa na masu canjin tsararru na waje (na waje) |
Hada da\arm_const_structs.h | Sanarwa na dindindin na waje |
Hada da\arm_math.h | Wannan file yana da matukar mahimmanci a matsayin haɗin kai don amfani da ɗakin karatu na aikin CMSIS-DSP. Ana aiwatar da kira zuwa kowane ɗakin karatu API ta hanyar arm_math.h. |
lib\ARM | CMSIS-DSP ɗakin karatu na aikin ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian) |
lib\GCC | CMSIS-DSP ɗakin karatu don GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian) |
Babban fayil CMSIS_DSP yana ƙunshe da CMSIS_DSP da yawaamples, waɗanda ke amfani da jerin HT32 na MCUs kuma suna tallafawa cikakken jerin HT32. Ana haɓaka ayyukan ta amfani da Keil MDK_ARM.
Sunan Jaka | Bayani |
hannu_class_marks_example | Yana nuna yadda ake samun matsakaicin ƙima, ƙima mafi ƙanƙanta, ƙimar da ake tsammani, daidaitaccen karkata, bambancin da ayyukan matrix. |
hannu_convolution_example | Yana nuna ƙa'idar juyin juya hali ta hanyar hadaddun FFT da ayyukan tallafi. |
hannu_dotproduct_example | Yana nuna yadda ake samun samfurin digo ta hanyar ninkawa da ƙari na vectors. |
hannu_fft_bin_example | Yana nuna yadda ake ƙididdige madaidaicin taga makamashi (bin) a cikin yanki mitar siginar shigarwa ta amfani da hadaddun FFT, girma mai rikitarwa, da matsakaicin ayyukan module. |
hannu_fir_example | Yana nuna yadda ake aiwatar da ƙarancin wucewa ta amfani da FIR. |
arm_graphic_equalizer_example | Yana nuna yadda ake canza ingancin sauti ta amfani da ma'aunin hoto. |
arm_linear_interp_example | Yana nuna yadda ake amfani da tsarin haɗin kai na linzamin kwamfuta da tsarin lissafi mai sauri. |
arm_matrix_example | Yana nuna lissafin daidaitawar matrix gami da canjin matrix, haɓaka matrix, da matrix inverse. |
hannu_signal_converge_example | Nuna da tace-wuce-dama-ent tace ta amfani da Nlms (ƙayyadadden ma'anar murabba'i), fir, da kuma matattun maths. |
hannu_sin_cos_example | Yana nuna lissafin trigonometric. |
hannu_variance_example | Yana nuna yadda ake lissafin bambance-bambance ta hanyar lissafi na asali da ayyukan tallafi. |
filter_iir_high_pass_example | Yana nuna yadda ake aiwatar da tacewa mai tsayi ta amfani da IIR. |
Gwaji
Wannan rubutun zai yi amfani da aikace-aikacen \CMSIS_DSP\arm_class_marks_example a matsayin gwajin example. Kafin fara gwaji, bincika ko an haɗa ESK32-30501 ko a'a kuma tabbatar da cewa an sanya lambar aikace-aikacen da ɗakin karatu na firmware a wurin da ya dace. Bude aikace-aikacen \CMSIS_DSP\arm_class_marks_example babban fayil kuma aiwatar da _CreateProject.bat file, kamar yadda aka nuna a kasa. Bayan wannan, buɗe MDK_ARMv5 (ko MDK_ARM don Keilv4), don gano cewa wannan tsohonample yana goyan bayan cikakken jerin HT32. Bude aikin Project_52352.uvprojx saboda ana amfani da ESK32-30501.
Bayan buɗe aikin, haɗa (maɓallin gajeriyar hanya "F7"), zazzage (maɓallin gajeriyar hanya "F8"), cire kuskure (maɓallin gajeriyar hanya "Ctrl+F5") sannan aiwatar da (maɓallin gajeriyar hanya "F5"). Ana iya lura da sakamakon kisa ta amfani da masu canji da aka jera a ƙasa.
Mai canzawa Suna | Hanyar Data | Bayani | Sakamakon Kisa |
testMarks_f32 | Shigarwa | Tsari ɗaya na 20 × 4 | – |
shaidaUnity_f32 | Shigarwa | Tsari ɗaya na 4 × 1 | – |
gwajin fitarwa | Fitowa | Samfurin testMarks_f32 da testUnity_f32 | {188…} |
max_marks | Fitowa | Matsakaicin ƙimar abubuwan da ke cikin tsararrun fitarwa na gwaji | 364 |
min_marks | Fitowa | Matsakaicin ƙimar abubuwan da ke cikin tsararrun fitarwa na gwaji | 156 |
nufi | Fitowa | Ƙimar da ake tsammani na abubuwan da ke cikin tsararrun fitarwar gwaji | 212.300003 |
std | Fitowa | Madaidaicin daidaitattun abubuwan abubuwa a cikin tsararrun fitarwa na gwaji | 50.9128189 |
var | Fitowa | Bambance-bambancen abubuwan da ke cikin tsararrun fitarwa na gwaji | 2592.11523 |
Hanyar Amfani
Haɗin kai
Wannan sashe zai gabatar da yadda ake haɗa CMSIS-DSP cikin ayyukan masu amfani.
Mataki na 1
Da farko, ƙara sabon Alamar Ƙira lokacin saita aikin, "ARM_MATH_CM0PLUS" na M0+ da "ARM_MATH_CM3" don M3. Hanyar saitawa: (1) Zaɓuɓɓuka na Maɓallin gajeriyar hanya "Alt+F7"), (2) Zaɓi shafi C/C++, (3) Ƙara sabon ma'ana a cikin Zaɓin Ƙayyade, kamar yadda aka nuna a ƙasa.
Mataki na 2
Don ƙara hanyar Haɗa, danna maɓallin kusa da zaɓin "Hada Hanyoyi" akan shafin C/C++. Sannan taga Saitin Jaka zai fito, inda za'a iya ƙara sabuwar hanyar .. \...\...\..\library\CMSIS\Include, kamar yadda aka nuna a ƙasa.
Mataki na 3 (Na zaɓi)
Don ƙara ɗakin karatu na aiki, danna maɓallin "Sarrafa Abubuwan Ayyuka" kamar yadda aka nuna a ƙasa. Idan ba a ga maɓallin ba, danna "Window → Sake saiti View to Defaults → Sake saitin”, ta yadda IDE taga saitin zai koma ga tsoffin saitunan sa. Bayan wannan, za a nuna maɓallin "Sarrafa Abubuwan Ayyuka".
Ƙara babban fayil na CMSIS-DSP ta amfani da maɓallan kamar yadda aka nuna a cikin akwatin ja da ke ƙasa kuma matsar da shi a ƙarƙashin babban fayil na CMSIS ta amfani da maɓallin "Move Up". Rufe taga abubuwan Sarrafa Project idan an gama.
Mataki na 4
Danna babban fayil ɗin CMSIS-DSP a hagu sau biyu (idan an tsallake mataki na 3, zaɓi kowane babban fayil kamar User ko CMSIS, da sauransu), sannan ƙara ɗakin karatu na aikin CMSIS-DSP a ciki. Zaɓi \laburare\CMSIS\Lib\ARM\arm_cortexM0l_math.lib don M0+ ko \laburare\CMSIS\Lib\ARM \arm_cortexM3l_math.lib don M3. Bayan kammalawa, za a nuna ɗakin ɗakin karatu na aikin arm_cortexMxl_math.lib a cikin babban fayil na CMSIS-DSP, kamar yadda aka nuna a ƙasa.
Mataki na 5
Ƙara kai file "arm_math.h" zuwa main.c, kamar yadda aka nuna a kasa. Yanzu an kammala duk saitunan haɗin kai
Tace mai ƙarancin wucewa - FIR
Wannan sashe, ta hanyar gabatar da aikace-aikacen \CMSIS_DSP\arm_fir_example, zai nuna yadda ake saita tacewar FIR da cire sigina mai girma ta amfani da FIR. Siginar shigarwa ta ƙunshi 1kHz da 15kHz sine tãguwar ruwa. Alamar sampmita mita ne 48 kHz. Sigina sama da 6kHz ana tace su ta FIR kuma ana fitar da sigina 1kHz. An raba lambar aikace-aikacen zuwa sassa da yawa.
- Farawa. Don fara FIR, ana amfani da API mai zuwa.
vaid arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
S: Tsarin tace FIR
lambobi: Yawan tace stages (yawan adadin masu tacewa). A cikin wannan example, numTaps=29.
Coffs: Filter coefficient. Akwai matattara guda 29 a cikin wannan tsohonample wanda aka ƙididdige ta MATLAB.
state: Alamar matsayi
blockSize: yana wakiltar adadin samples sarrafa lokaci guda. - Ƙarƙashin wucewa tace. Ta hanyar kiran API na FIR, 32 sampAna sarrafa les kowane lokaci kuma akwai 320 samples a duka. API ɗin da aka yi amfani da shi yana nunawa a ƙasa.
vaid arm_fir_f32 (const arm_fir_instance_f32 * S, float32_t * pSrc, float32_t * pDst, uint32_t blockSize);
S: Tsarin tace FIR
pSrc: Siginar shigarwa. An haɗa sigina na 1kHz da 15kHz a cikin wannan tsohonample. pDst: siginar fitarwa. Siginar fitarwa da ake tsammanin shine 1kHz. blockSize: yana wakiltar adadin samples sarrafa lokaci guda. - Tabbatar da bayanai. Sakamakon tacewa da MATLAB ya samu ana ɗaukarsa azaman tunani kuma sakamakon tacewa ta CMSIS-DSP shine ainihin ƙimar. Kwatanta sakamakon biyu don tabbatar da ko sakamakon fitarwa daidai ne ko a'a. float arm_snr_f32 (taso kan ruwa * pRef, iyo * pTest, uint32_t buffSize)
Pref: Ƙimar magana ta MATLAB.
matsayi: Ƙimar gaske ta CMSIS-DSP.
blockSize: yana wakiltar adadin samples sarrafa lokaci guda.
Kamar yadda aka nuna a ƙasa, Bayanan shigarwa yana nuna cewa har yanzu ba a tace siginar ba kuma bayanan fitarwa yana nuna sakamakon da aka tace. Y-axis yana wakiltar amplitud na sigina da sampling mita ne 48kHz, don haka X-axis lamba da daya wakiltar lokaci da 20.833μs. Ana iya samuwa daga Hoto na 12 da Hoto 13 cewa an kawar da siginar 15kHz kuma siginar 1kHz kawai ya rage.
Tace Mai Girma-IIR
Wannan sashe, ta hanyar gabatar da aikace-aikacen \CMSIS_DSP\filter_iir_high_pass_example, zai nuna yadda ake saita tacewar IIR da kuma cire sigina mara ƙarfi ta amfani da IIR. Siginar shigarwa ta ƙunshi raƙuman ruwa na 1Hz da 30Hz. Alamar sampMitar ling shine 100Hz kuma jimlar maki 480 shine sampjagoranci. IIR yana cire sigina da ke ƙasa da 7Hz.
An raba lambar aikace-aikacen zuwa sassa da yawa.
- Akwai 480 samples. Sample 0 ~ 159 raƙuman ruwa ne na 30Hz, sample 160 ~ 319 ne 1Hz sine taguwar ruwa da sample 320 ~ 479 sune raƙuman ruwa na 30Hz.
- Farawa. Don fara IIR, ana amfani da API mai zuwa. void arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *state));
S: IIR tsarin tacewa
suma stages: Adadin oda na biyu stages a tace. A cikin wannan exampku, nustagda = 1.
Coffs: Filter coefficient. Akwai matattara guda 5 a cikin wannan tsohonample.
state: Alamar matsayi - Tace ta wuce. Ta hanyar kiran API na IIR, 1 sampLe ana sarrafa kowane lokaci kuma akwai 480 samples a duka. API ɗin da aka yi amfani da shi yana nunawa a ƙasa. 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 tsarin tacewa
pSrc: Siginar shigarwa. An shigar da sigina mai gauraya na 1Hz da 30Hz a cikin wannan tsohonample.
pDst: siginar fitarwa. Siginar fitarwa da ake tsammanin shine 30Hz.
blockSize: yana wakiltar adadin samples sarrafa lokaci guda. - Fitowar sakamako. Ana fitar da siginar shigarwa da fitarwa zuwa PC ta hanyar bugawa. Kamar yadda aka nuna a ƙasa, Bayanan shigarwa yana nuna cewa har yanzu ba a tace siginar ba kuma bayanan fitarwa yana nuna sakamakon da aka tace. Y-axis yana wakiltar amplitud na sigina da sampMitar ling shine 100Hz, don haka lambar axis X da ɗaya tana wakiltar lokaci da 10ms. Ana iya samuwa daga Hoto 14 da Hoto 15 cewa an kawar da siginar 1Hz kuma kawai siginar 30Hz ya rage.
La'akari
Masu amfani yakamata su ba da kulawa ta musamman ga girman ƙwaƙwalwar ajiya bayan haɗawa lokacin amfani da ɗakin karatu na aikin CMSIS-DSP. Tabbatar cewa babu ambaton ƙwaƙwalwar ajiya da ke faruwa kafin gwaji.
Kammalawa
CMSIS-DSP yana da babban iyawa a cikin sarrafa sigina da lissafin lissafi kuma ya cancanci la'akari sosai daga masu amfani.
Abubuwan Magana
Magana website: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Siffofin da Bayanin Gyarawa
Kwanan wata | Marubuci | Batu | Bayanin Gyarawa |
2022.06.02 | Rubuce-rubucen, Liu | V1.10 | Gyara hanyar saukewa |
2019.09.03 | Allen, Wang | V1.00 | Farko Na Farko |
Disclaimer
Duk bayanai, alamun kasuwanci, tambura, zane-zane, bidiyo, shirye-shiryen sauti, hanyoyin haɗin gwiwa da sauran abubuwan da ke bayyana akan wannan website ('Bayani') don tunani ne kawai kuma ana iya canzawa a kowane lokaci ba tare da sanarwar farko ba kuma bisa ga ra'ayin Holtek Semiconductor Inc. da kamfanoni masu alaƙa (daga nan 'Holtek', 'kamfanin', 'mu',' mu ko 'namu'). Yayin da Holtek ke ƙoƙarin tabbatar da daidaiton Bayani akan wannan webGidan yanar gizon, babu wani takamaiman ko garanti mai ma'ana da Holtek ya bayar ga daidaiton Bayanin. Holtek ba zai ɗauki alhakin kowane kuskure ko yabo ba. Holtek ba zai zama alhakin duk wani lalacewa ba (ciki har da amma ba'a iyakance ga cutar kwamfuta ba, matsalolin tsarin ko asarar bayanai) duk abin da ya taso a amfani ko dangane da amfani da wannan. website ta kowace jam'iyya. Akwai yuwuwar samun hanyoyin haɗin gwiwa a wannan yanki, waɗanda ke ba ku damar ziyartar wurin webshafukan sauran kamfanoni. Wadannan webHoltek ba shi da iko akan rukunin yanar gizon. Holtek ba zai ɗauki alhaki ba kuma bashi da garanti ga kowane Bayani da aka nuna a irin waɗannan rukunin yanar gizon. Haɗin kai zuwa wasu webshafuka suna cikin haɗarin ku.
Iyakance Alhaki
A kowane hali, Kamfanin ba ya buƙatar ɗaukar alhakin duk wani asara ko lalacewa da aka yi lokacin da kowa ya ziyarci gidan webshafin kai tsaye ko a kaikaice kuma yana amfani da abubuwan ciki, bayanai ko sabis akan website.
Dokar Mulki
Wannan ƙin yarda yana ƙarƙashin dokokin Jamhuriyar Sin da kuma ƙarƙashin ikon Kotun Jamhuriyar Sin.
Sabunta Disclaimer
Holtek yana da haƙƙin sabunta Disclaimer a kowane lokaci tare da ko ba tare da sanarwa ta farko ba, duk canje-canje suna aiki nan da nan bayan aikawa zuwa ga website.
Takardu / Albarkatu
![]() |
HOLTEK HT32 CMSIS-DSP Library [pdf] Jagorar mai amfani HT32, CMSIS-DSP Library, HT32 CMSIS-DSP Library, Laburare |