logo sa HOLTEK HT32 CMSIS-DSP Library
Giya sa Gumagamit
D/N: AN0538EN

Pasiuna

Ang CMSIS usa ka software standard interface nga gimugna sa ARM nga adunay tibuok nga ngalan sa Cortex Microcontroller Software Interface Standard. Uban niining standard nga interface, ang mga developers makagamit sa samang interface aron makontrol ang mga microcontroller gikan sa lain-laing mga suppliers sa ingon makapamubo pag-ayo sa ilang kalamboan ug panahon sa pagkat-on. Para sa dugang nga impormasyon, tan-awa ang opisyal sa CMSIS website: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. Kini nga teksto nag-una nga naghulagway sa CMSIS-DSP nga aplikasyon sa HT32 nga serye sa mga microcontrollers nga naglakip sa environment setup, direksyon sa paggamit, ug uban pa.

Functional nga Deskripsyon

Mga Feature sa CMSIS-DSP
Ang CMSIS-DSP, nga usa sa mga sangkap sa CMSIS naglakip sa mosunod nga mga bahin.

  1. Naghatag og usa ka hugpong sa mga generic signal processing functions nga gipahinungod sa Cortex-M.
  2. Ang librarya sa function nga gihatag sa ARM adunay sobra sa 60 ka mga gimbuhaton.
  3. Nagsuporta sa q7, q15, q31
    (Note) ug floating-point (32-bit) nga mga tipo sa datos
  4. Ang mga pagpatuman gi-optimize alang sa SIMD instruction set nga magamit alang sa Cortex-M4/M7/M33/M35P.

Mubo nga sulat: Ang pagngalan sa q7, q15, ug q31 sa librarya sa function nagrepresentar sa 8, 16, ug 32bit nga fixed-points.
CMSIS-DSP Function Library Items
Ang CMSIS-DSP function library gibahin ngadto sa mosunod nga mga kategoriya:

  1. Basic maths functions, fast maths functions, ug complex maths functions
  2. Mga gimbuhaton sa pagsala sa signal
  3. Mga gimbuhaton sa matrix
  4. Pag-usab sa mga gimbuhaton
  5. Mga gimbuhaton sa pagkontrol sa motor
  6. Mga gimbuhaton sa estadistika
  7. Mga gimbuhaton sa pagsuporta
  8. Mga gimbuhaton sa interpolation

Setup sa Kalikopan

Kini nga seksyon magpaila sa hardware ug software nga gigamit sa aplikasyon example.
Hardware
Bisan kung gisuportahan sa CMSIS-DSP ang tibuuk nga serye sa HT32, gisugyot nga mogamit usa ka MCU nga adunay kapasidad nga SRAM nga mas dako sa 4KB ingon ang aplikasyon sa CMSIS-DSP example nagkinahanglan sa usa ka mas dako nga SRAM gidak-on. Kini nga teksto nagkuha sa ESK32-30501 isip usa ka example nga naggamit sa HT32F52352.
Software
Sa wala pa gamiton ang aplikasyon exampUna, siguroha nga ang pinakabag-o nga Holtek HT32 Firmware Library na-download gikan sa opisyal sa Holtek website. Ang lokasyon sa pag-download gipakita sa Figure
Decompress ang file pagkahuman sa pag-download.

HOLTEK HT32 CMSIS-DSP Library - Fig

I-download ang CMSIS-DSP application code pinaagi sa link sa ubos. Ang code sa aplikasyon giputos ingon usa ka zip file nga adunay ngalan sa HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
Pag-download nga agianan: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
Ang file Ang lagda sa pagngalan gipakita sa Figure 2.

HOLTEK HT32 CMSIS-DSP Library - Fig 2

Ingon nga ang code sa aplikasyon wala maglangkob sa librarya sa firmware files, ang mga tiggamit kinahanglan nga ibutang ang unzipped application code ug firmware library files ngadto sa husto nga dalan sa dili pa magsugod sa compilation. Ang code sa aplikasyon file adunay duha ka mga folder, nga mao ang aplikasyon ug librarya kansang lokasyon gipakita sa Figure 3. Ibutang kining duha ka mga folder ngadto sa firmware library root directory aron makompleto ang file path configuration sama sa gipakita sa Figure 4. Users mahimo usab decompress sa aplikasyon code ug firmware librarya compressed files sa parehas nga dalan aron makab-ot ang parehas nga epekto. Para ani nga example, ang direktoryo alang sa CMSIS_DSP makita sa ilawom sa folder sa aplikasyon pagkahuman sa decompression.

HOLTEK HT32 CMSIS-DSP Library - Fig 3

File Istruktura

Ang duha ka nag-unang mga folder nga gilakip sa code sa aplikasyon file, library\CMSIS, ug application\CMSIS_DSP, tagsa-tagsa nga gihulagway sa ubos.
Ang mga sulod sa library\CMSIS folder mao ang mosunod.

Ngalan sa Folder Deskripsyon
DSP_Lib Aplikasyon nga FW source code
DSP_Lib\Examples Naglangkob sa daghang standard examples sa CMSIS-DSP function library nga gihatag sa ARM. Ang mga setting alang sa kini nga mga proyekto gipatuman sa usa ka simulate nga paagi nga wala magkinahanglan usa ka MCU. Ang mga tiggamit dali nga makakat-on kung giunsa paggamit kini nga mga examples pinaagi sa pagpatay kanila.
DSP_Lib\Source CMSIS-DSP function library source code
Iapil Kinahanglan nga header file kon gamiton ang CMSIS-DSP function library
Iapil ang\arm_common_tables.h Deklarasyon sa external array variables (extern)
Iapil ang\arm_const_structs.h Deklarasyon sa mga eksternal nga makanunayon
Ilakip ang\arm_math.h Kini file importante kaayo isip interface sa paggamit sa CMSIS-DSP function library. Ang mga tawag sa bisan unsang function library API gipatuman pinaagi sa arm_math.h.
Lib\ARM CMSIS-DSP function library para sa ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Gamay nga ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Gamay nga endian)
Lib\GCC CMSIS-DSP function library para sa GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

Ang aplikasyon\CMSIS_DSP folder adunay daghang CMSIS_DSP examples, nga naggamit sa serye sa HT32 sa mga MCU ug nagsuporta sa tibuok serye sa HT32. Ang mga proyekto gihimo gamit ang Keil MDK_ARM.

Ngalan sa Folder Deskripsyon
arm_class_marks_example Nagpakita kon unsaon pagkuha ang pinakataas nga bili, minimum nga bili, gipaabot nga bili, standard deviation, variance ug matrix functions.
arm_convolution_example Nagpakita sa convolution theorem pinaagi sa komplikadong FFT ug mga function sa pagsuporta.
arm_dotproduct_example Nagpakita kung giunsa pagkuha ang produkto nga tuldok pinaagi sa pagpadaghan ug pagdugang sa mga vector.
bukton_fft_bin_example Nagpakita unsaon pagkuwenta ang maximum energy window (bin) sa frequency domain sa input signal gamit ang complex FFT, complex magnitude, ug maximum module functions.
bukton_fir_example Nagpakita kung giunsa pagpatuman ang low-pass nga pagsala gamit ang FIR.
arm_graphic_equalizer_example Nagpakita kung giunsa pagbag-o ang kalidad sa tunog gamit ang graphic equalizer.
arm_linear_interp_example Nagpakita sa paggamit sa linear interpolation module ug fast maths module.
bukton_matrix_example Nagpakita sa matrix correlation kalkulasyon lakip na ang matrix transform, matrix multiplication, ug matrix inverse.
arm_signal_converge_example Nagpakita sa self-adjustable FIR low-pass filter gamit ang NLMS (Normalised Least Mean Square), FIR, ug basic maths modules.
bukton_sin_cos_example Nagpakita sa mga kalkulasyon sa trigonometriko.
arm_variance_example Nagpakita kon unsaon pagkalkulo sa kalainan pinaagi sa batakang matematika ug mga gimbuhaton sa pagsuporta.
filter_iir_high_pass_example Nagpakita kung giunsa pagpatuman ang high-pass nga pagsala gamit ang IIR.

Pagsulay
Kini nga teksto mogamit sa aplikasyon\CMSIS_DSP\arm_class_marks_example ingon sa pagsulay example. Sa dili pa magsugod sa pagsulay, susiha kung ang ESK32-30501 konektado o wala ug siguroha nga ang aplikasyon code ug firmware librarya nabutang sa husto nga lokasyon. Ablihi ang aplikasyon\CMSIS_DSP\arm_class_marks_example folder ug ipatuman ang _CreateProject.bat  file, ingon sa gipakita sa ubos. Pagkahuman niini, ablihi ang MDK_ARMv5 (o MDK_ARM para sa Keilv4), aron mahibal-an nga kini nga exampGisuportahan sa le ang tibuuk nga serye sa HT32. Ablihi ang Project_52352.uvprojx nga proyekto tungod kay ang ESK32-30501 gigamit.

HOLTEK HT32 CMSIS-DSP Library - Fig 4

Human sa pag-abli sa proyekto, pag-compile (shortcut key "F7"), download (shortcut key "F8"), debug (shortcut key "Ctrl + F5") ug dayon i-execute (shortcut key "F5"). Ang mga resulta sa pagpatuman mahimong maobserbahan gamit ang mga variable nga gilista sa ubos.

Variable Ngalan Direksyon sa Data Deskripsyon Resulta sa Pagpatay
testMarks_f32 Input Usa ka 20 × 4 array
testUnity_f32 Input Usa ka 4 × 1 array
pagsulay output Output Ang produkto sa testMarks_f32 ug testUnity_f32 {188…}
max_marks Output Ang pinakataas nga bili sa mga elemento sa test output array 364
min_marks Output Ang minimum nga bili sa mga elemento sa test output array 156
nagpasabot Output Ang gipaabot nga bili sa mga elemento sa test output array 212.300003
std Output Ang standard deviation sa mga elemento sa test output array 50.9128189
var Output Ang kalainan sa mga elemento sa test output array 2592.11523

Direksyon sa Paggamit 

Paghiusa
Kini nga seksyon magpaila kung giunsa ang pag-integrate sa CMSIS-DSP sa mga proyekto sa mga tiggamit.
Lakang 1
Una, pagdugang og bag-ong Define nga simbolo sa dihang magbutang sa proyekto, “ARM_MATH_CM0PLUS” para sa M0+ ug “ARM_MATH_CM3” para sa M3. Pamaagi sa pag-set: (1) Mga Opsyon sa Target nga shortcut key “Alt+F7”), (2) Pilia ang C/C++ nga panid, (3) Pagdugang og bag-ong kahulugan sa Define option, sama sa gipakita sa ubos.

HOLTEK HT32 CMSIS-DSP Library - Fig 5

Lakang 2
Aron makadugang og Ilakip nga dalan, i-klik ang buton sunod sa opsyon nga “Ilakip ang mga Dalan” sa C/C++ nga panid. Dayon usa ka window sa Folder Setup ang mo-pop up, diin ang usa ka bag-ong dalan ..\..\..\..\library\CMSIS\Include” mahimong idugang, sama sa gipakita sa ubos.

HOLTEK HT32 CMSIS-DSP Library - Fig 6

Lakang 3 (Opsyonal)
Aron idugang ang librarya sa function, i-klik ang "Pagdumala sa Mga Butang sa Proyekto" sama sa gipakita sa ubos. Kung ang buton dili makita, i-klik ang "Window → Reset View ngadto sa Defaults → Reset", aron ang IDE window configuration mobalik sa iyang default settings. Human niini, ang "Pagdumala sa Mga Butang sa Proyekto" ipakita.

HOLTEK HT32 CMSIS-DSP Library - Fig 7

Idugang ang CMSIS-DSP folder gamit ang mga buton sama sa gipakita sa pula nga kahon sa ubos ug ibalhin kini sa ilawom sa CMSIS folder gamit ang "Move Up" nga buton. Isira ang window sa Manage Project tems kung nahuman na.

HOLTEK HT32 CMSIS-DSP Library - Fig 8

Lakang 4
Doble-klik ang CMSIS-DSP folder sa wala (kon Lakang 3 malaktawan, pilia ang bisan unsang folder sama sa User o CMSIS, ug uban pa), unya idugang ang CMSIS-DSP function library niini. Pilia ang \ library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib para sa M0+ o \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib para sa M3. Sa pagkompleto, ang function library arm_cortexMxl_math.lib ipakita sa CMSIS-DSP folder, sama sa gipakita sa ubos.

HOLTEK HT32 CMSIS-DSP Library - Fig 9

Lakang 5
Idugang ang ulo file "arm_math.h" ngadto sa main.c, sama sa gipakita sa ubos. Karon ang tanan nga mga setting sa panagsama nahuman na

HOLTEK HT32 CMSIS-DSP Library - Fig 10

Ubos nga Pass Filter - FIR

Kini nga seksyon, pinaagi sa pagpaila sa aplikasyon\CMSIS_DSP\arm_fir_example, magpakita kon unsaon pag-set sa FIR filter ug pagtangtang sa high-frequency signal gamit ang FIR. Ang input signal gilangkuban sa 1kHz ug 15kHz sine waves. Ang signal sampling frequency mao ang 48kHz. Ang mga signal nga labaw sa 6kHz gisala sa FIR ug ang mga signal sa 1kHz kay output. Ang code sa aplikasyon gibahin sa daghang mga bahin.

  1. Inisyalisasyon. Aron masugdan ang FIR, gigamit ang mosunod nga 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 filter nga istruktura
    numero: Ang gidaghanon sa filter stages (ang gidaghanon sa mga filter coefficients). Niining exampug, numTaps=29.
    Coffs: Filter coefficient. Adunay 29 ka mga filter coefficient niini nga example nga gikalkula sa MATLAB.
    estado: Indikasyon sa kahimtang
    blockSize: Nagrepresentar sa gidaghanon sa samples giproseso sa usa ka higayon.
  2. Ubos nga pass filter. Pinaagi sa pagtawag sa API sa FIR, 32 samples giproseso sa matag higayon ug adunay 320 samples sa kinatibuk-an. Ang gigamit nga API gipakita sa ubos.
    void arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: FIR filter nga istruktura
    pSrc: Input nga signal. Usa ka sinagol nga signal sa 1kHz ug 15kHz ang input niini nga example. pDst: Output signal. Ang gipaabot nga output signal mao ang 1kHz. blockSize: Nagrepresentar sa gidaghanon sa samples giproseso sa usa ka higayon.
  3. Pagpamatuod sa datos. Ang resulta sa pagsala nga nakuha sa MATLAB giisip nga reperensiya ug ang resulta sa pagsala nga nakuha sa CMSIS-DSP mao ang aktuwal nga kantidad. Itandi ang duha ka mga resulta aron masuta kung ang resulta sa output husto ba o dili. float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
    Pref: Reference value nga gihimo sa MATLAB.
    post: Aktuwal nga bili nga namugna sa CMSIS-DSP.
    blockSize: Nagrepresentar sa gidaghanon sa samples giproseso sa usa ka higayon.
    Sama sa gipakita sa ubos, ang Input Data nagpakita nga ang signal wala pa nasala ug ang Output Data nagpakita sa nasala nga resulta. Ang Y-axis nagrepresentar sa amplitude sa signal ug sa sampling frequency mao ang 48kHz, mao nga ang X-axis nga numero plus usa nagrepresentar sa panahon plus 20.833μs. Makita gikan sa Figure 12 ug Figure 13 nga ang 15kHz signal giwagtang ug ang 1kHz signal na lang ang nahabilin.

HOLTEK HT32 CMSIS-DSP Library - Fig 11

High-Pass Filter- IIR
Kini nga seksyon, pinaagi sa pagpaila sa aplikasyon\CMSIS_DSP\filter_iir_high_pass_example, magpakita kon unsaon pag-set sa IIR filter ug pagtangtang sa mga low-frequency signal gamit ang IIR. Ang input signal gilangkuban sa 1Hz ug 30Hz sine waves. Ang signal sampling frequency mao ang 100Hz ug sa kinatibuk-an nga 480 puntos mao ang sampgipangulohan. Ang mga signal nga ubos sa 7Hz gikuha sa IIR.
Ang code sa aplikasyon gibahin sa daghang mga bahin. 

  1.  Adunay 480 samples. Sample 0~159 mao ang 30Hz sine waves, sample 160~319 mao ang 1Hz sine waves ug sampAng 320 ~ 479 mao ang 30Hz sine waves.
  2. Inisyalisasyon. Aron masugdan ang IIR, gigamit ang mosunod nga 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: IIR filter nga istruktura
    suma stages: Ang gidaghanon sa ikaduhang-order stagnaa sa filter. Niining example, numerotages=1.
    Coffs: Filter coefficient. Adunay 5 ka mga filter coefficient niini nga example.
    estado: Indikasyon sa kahimtang
  3. High-pass nga filter. Pinaagi sa pagtawag sa API sa IIR, 1 sample giproseso sa matag higayon ug adunay 480 samples sa kinatibuk-an. Ang gigamit nga API gipakita sa ubos. 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 filter nga istruktura
    pSrc: Input nga signal. Usa ka sinagol nga signal sa 1Hz ug 30Hz ang input niini nga example.
    pDst: Output signal. Ang gipaabot nga output signal mao ang 30Hz.
    blockSize: Nagrepresentar sa gidaghanon sa samples giproseso sa usa ka higayon.
  4. Output sa resulta. Ang input ug output signal kay output sa PC pinaagi sa print. Sama sa gipakita sa ubos, ang Input Data nagpakita nga ang signal wala pa nasala ug ang Output Data nagpakita sa nasala nga resulta. Ang Y-axis nagrepresentar sa amplitude sa signal ug sa sampling frequency mao ang 100Hz, mao nga ang X-axis nga numero plus usa nagrepresentar sa panahon plus 10ms. Makita gikan sa Figure 14 ug Figure 15 nga ang 1Hz signal giwagtang ug ang 30Hz signal na lang ang nahabilin.

HOLTEK HT32 CMSIS-DSP Library - Fig 12

Mga konsiderasyon

Ang mga tiggamit kinahanglan nga maghatag espesyal nga pagtagad sa gidak-on sa memorya pagkahuman sa pag-compile kung gigamit ang librarya sa function sa CMSIS-DSP. Siguroha nga walay memory overflow nga mahitabo sa dili pa ang pagsulay.
Panapos
Ang CMSIS-DSP adunay daghang mga abilidad sa pagproseso sa signal ug pagkalkula sa matematika ug takus sa seryoso nga konsiderasyon sa mga tiggamit.
Reperensya nga Materyal
Reperensya website: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
Mga Bersyon ug Impormasyon sa Pagbag-o

Petsa Awtor Isyu Impormasyon sa Pagbag-o
2022.06.02 Pagsulat, Liu V1.10 Usba ang dalan sa pag-download
2019.09.03 Allen, Wang V1.00 Una nga Bersyon

Disclaimer

Ang tanan nga impormasyon, mga marka sa pamatigayon, mga logo, mga graphic, mga video, mga audio clip, mga link ug uban pang mga butang nga makita niini website ('Information') kay alang lamang sa pakisayran ug mahimong usbon sa bisan unsang oras nga walay una nga pahibalo ug sa pagkabuotan sa Holtek Semiconductor Inc. kami' o 'among'). Samtang ang Holtek naningkamot sa pagsiguro sa katukma sa Impormasyon bahin niini website, walay gipahayag o gipasabot nga garantiya nga gihatag sa Holtek sa katukma sa Impormasyon. Ang Holtek walay responsibilidad sa bisan unsang sayup o pagtulo. Ang Holtek dili manubag sa bisan unsang mga kadaot (lakip apan dili limitado sa virus sa kompyuter, mga problema sa sistema o pagkawala sa datos) bisan unsa nga motumaw sa paggamit o kalambigitan sa paggamit niini. website sa bisan unsang partido. Mahimong adunay mga link sa niini nga lugar, nga nagtugot kanimo sa pagbisita sa website sa ubang mga kompanya. Kini webAng mga site dili kontrolado sa Holtek. Ang Holtek walay responsibilidad ug walay garantiya sa bisan unsang Impormasyon nga gipakita sa maong mga site. Mga hyperlink sa uban webAng mga site naa sa imong kaugalingon nga peligro.
Limitasyon sa Tulubagon
Sa bisan unsa nga kaso, ang Kompanya dili kinahanglan nga manubag sa bisan unsang kapildihan o kadaot nga nahimo kung adunay mobisita sa website direkta o dili direkta ug naggamit sa mga sulod, impormasyon o serbisyo sa website.
Nagamandong Balaod
Kini nga disclaimer gipailalom sa mga balaod sa Republika sa China ug ubos sa hurisdiksyon sa Korte sa Republika sa China.
Pag-update sa Disclaimer
Gireserba sa Holtek ang katungod sa pag-update sa Disclaimer sa bisan unsang oras nga adunay o wala’y una nga pahibalo, ang tanan nga mga pagbag-o epektibo dayon sa pag-post sa website.

logo sa HOLTEK

Mga Dokumento / Mga Kapanguhaan

HOLTEK HT32 CMSIS-DSP Library [pdf] Giya sa Gumagamit
HT32, CMSIS-DSP Library, HT32 CMSIS-DSP Library, Library

Mga pakisayran

Pagbilin ug komento

Ang imong email address dili mamantala. Ang gikinahanglan nga mga natad gimarkahan *