毛主席说:世上无难事,只要肯登攀。
这次STC32G96K256的诞生必定会是单片机中国创造史上的一个里程碑事件。
一、CORTEX-M4的DSP指令集 CORTEX-M4是一种32位的嵌入式处理器架构,它具有一些特殊的指令集扩展,包括DSP(数字信号处理)指令集。 这些DSP指令可以加速数字信号处理相关的计算,提高处理器的性能和效率。 CORTEX-M4处理器的DSP指令集被称为CMSIS-DSP库 (Cortex MicrocontrollerSoftware Interface Standard - Digital Signal Processing)。 这个DSP库提供了许多信号处理函数,包括但不限于以下几个方面(每个方面被称为一个独立的指令集): (1)基本数学函数:包括加法、减法、乘法、除法等基本运算函数。 (2)快速傅里叶变换(FFT):用于将时域信号转换为频域信号,包括一维和二维FFT函数。 (3)冲击滤波器函数:包括FIR(有限脉冲响应)滤波器和IIR(无限脉冲响应)滤波器函数。 (4)矩阵函数:包括矩阵乘法、矩阵转置、矩阵求逆等矩阵运算函数。 (5)向量函数:包括向量加法、向量减法、向量乘法等向量运算函数。 (6)统计函数:包括均值、方差、协方差等统计计算函数。 (7)数字滤波器函数:包括低通滤波器、高通滤波器、带通滤波器等数字滤波器函数。 (8)均衡器函数:用于音频均衡器的设计和实现。 (9)声音处理函数:包括音频编解码、音频特效处理等声音处理函数。 CORTEX-M4的DSP指令集需要硬件上的支持,依赖其片上的硬件DPU32/64以下几个方面的功能: (1)整数乘法和累加指令(MAC):用于执行乘法和累加操作,常用于滤波、卷积等数字信号处理算法。 (2)饱和运算指令:用于处理溢出情况,确保计算结果在指定范围内。 (3)浮点数矢量处理(FVP)指令:用于高效地执行傅里叶变换操作,常用于频域分析和信号处理。 (4)位操作指令:包括位移、位扩展、位反转等操作,用于位级运算和数据处理。
二、STC单片机的DSP发展之路 (1)一旦STC32G96K256问世,首先其DPU32具备了M4的绝大部分的整数乘法和累加指令(MAC)、浮点数处理(FP)指令、位操作指令,这已经是一个很好的DSP库硬件基础了,其余的可以再逐渐增加。 (2)STC32G96K256的32K EDATA和64K XDATA数据空间已经可以支持一定规模的科学数据处理了,加上片上的ADC等设备,已经可以进行一定规模的数据采集、图像处理和音频流、视频流处理了。这就为建立DSP库提供了实验和开发条件。 (3)从现在开始专门按专题建立STC32位单片机DSP指令集(用我那个年代的术语是建立STC32位单片机DSP专题数学库): 1)首先建立基本数学函数DSP指令集,比如三角函数。这实际上是改造C251的基本函数库,继续将C251作为STC32位单片机的主流编译器。 2)其次建立统计函数、冲击滤波器函数、数字滤波器函数、均衡器函数和声音处理函数这几个DSP指令集。这实际上是为STC32位单片机上的ADC、DMA、IIS等开发应用标准库,为STC用户提供规范支持和逐渐建立STC DSP生态打下基础。 3)然后建立向量函数、快速傅里叶变换、矩阵函数等DSP指令集。 (4)在建立基础DSP指令集的同时,从语音识别开始,探索STC32位单片机的将DSP用于AI之路。
|