不起眼的PIC单片机无法做到的dsPIC可以做什么?


10

到目前为止,我还没有使用过DSP芯片。我所知道的是,它们的体系结构使得它们可以相当快地执行计算,通常在一个时钟周期内,它们在指令集中具有乘法累加指令,并且具有DMA,因此CPU不必浪费宝贵的时间来移动数据。周围。我认为还有更多内容,但这是一些基本要点。

我可以看到Microchip的DSP芯片是dsPIC。我们不能仅使用还内置有乘法器的PIC18或PIC32来进行DSP处理吗?dsPIC与普通PIC有何不同?

我的主要问题是,为什么我们需要一个单独的,独特的DSP芯片,而不在所有微控制器上都集成高精度浮点单元计算功能?当然,利用我们现在的处理技术,这应该不会占用太多空间。

另外,我怎么知道我需要在项目中使用DSP芯片而不是普通的微控制器>


1
这里有一个类似问题的很好答案:electronics.stackexchange.com/questions/3067/…–
David

Answers:


3

通常,“ DSP ...”的意思是“ 产品推出时具有更强的功能和/或更强的硬件”。
通用处理器往往会赶上过时的专业设备。
DSPIC大概有10岁以上了-Olin会知道的。

[括号中的项目与一些DSPIC示例有关-并非详尽无遗]。

在DSP产品中,期望混合使用:
桶状移位器,
宽的快速流水线和快速的单周期执行时间,
宽的单周期指令,
DMA [6或8通道,双端口RAM缓冲区]大型线性存储器寻址范围[4 Mword程序] ,64 kB数据]
可能是面向专家算术的功能:
诸如电机控制之类的专业外设,
几种不同coms标准[CAN,IIC,UART,IIS,AC97,...]的硬件比常规coms缓冲区[4字节]更深,并且/或比通常的ADC宽[2 Msps,10或12位]

您将在DSPIC系列中找到其中的大多数-在gp处理器系列中也越来越多。
在极端情况下,您将获得用户微编码等。


1
如果我没记错的话,我最初是在1999年听说过dsPIC设计工作的,第一批样品在2002年初提供,并在2002年末或2003年初提供了生产零件。我仍然在某个地方使用28引脚陶瓷DIP封装的手工磨砂30F2010,被意外标记为30F6010。它只能以最终全速的1/3运行,并被手动标记为#55或类似的东西。
Olin Lathrop 2014年

1
它们还可以提供高达200或260MHz的时钟,而PIC线路仅支持高达4至20MHz的时钟。绝对要快10倍以上。
Havenard '18

1
@Havenard-注意到这是2014年的问答:他提到PIC32可以替代DSPIC。2007 PIC32MX的Cmax(最大时钟频率)为80 MHz。2013 PIC32MZ的Cmax为252 MHz。|| 有用的,尽管此处比较不完整{Wikipedia}。
罗素·麦克马洪

11

dsPIC相对于早期体系结构PIC(例如PIC 16和18系列)的一些优势:

  1. 16位宽的数据路径和ALU,与8。

  2. 能够直接寻址(两种体系结构的较新版本以各种混乱的方式对其进行扩展)更多的数据存储器。基本的PIC 16可以直接寻址128个字节,其中512个字节可以存储。较新的PIC 16F1xxx具有扩展的存储区,可以寻址更多的数据存储器。PIC 18体系结构限于4k字节。dsPIC体系结构可以直接寻址64k字节或32k 16位字,尽管由于各种原因,基本体系结构中只有一半可用于RAM。在某些后来的模型中,银行计划扩展了这一范围。

  3. 快点。最初的30F可以以30 MIP的速度运行,现在40 MIP已成为标准。新的E系列可以运行多达70个MIP,尽管与早期的较慢型号相比,它有更多原因可能会暂停等待。平均而言,它们仍然明显更快。

  4. DSP功能。DSP引擎具有两个40位累加器,以及用于在阵列上执行一系列MAC操作的常规硬件,每个指令周期一个MAC(请参阅Dave Tweed的答案)。MAC和相关指令将数组索引和循环终止与实际的乘累加重叠。

  5. 15个软件可用的16位“工作寄存器”,而不是8位PIC体系结构的单个8位W寄存器。

  6. 桶式移位器。

  7. 单周期16x16-> 32位乘法

  8. 硬件鸿沟。32 div 16-> 16位操作需要18个周期。

  9. 许多3操作数指令。例如,您可以在一个周期内将两个工作寄存器的内容相加并将结果放入第三个寄存器。这适用于大多数数学,逻辑和移位运算。

  10. 整体上更规则和对称的指令集。

  11. 向量中断。PIC 16具有单个中断向量,而PIC 18具有两个中断向量。在16位部分(PIC 24,dsPIC 30和33)上,每个中断源都有其自己的向量。这减少了中断例程中的等待时间,因为它不必花费时间来找出要服务的中断。

    这也允许更好的软件架构。特定外设的中断例程可以与处理该外设的其他代码位于同一模块中,而不必具有一个全局中断例程。

  12. 更大的体系结构还具有其他各种优势。


8

通常,与通用CPU相比,DSP的主要区别特征在于DSP可以执行某些信号处理操作,而很少的CPU周期(如果有的话)浪费在不计算结果的指令上。

在许多关键DSP算法中,最基本的操作之一是MAC(乘法累加)操作,这是矩阵点和叉积,FIR和IIR滤波器以及FFT使用的基本步骤。DSP通常具有寄存器和/或存储器组织,以及一条数据路径,使它能够对一行中的唯一数据对执行至少64个MAC操作,而不会浪费任何时钟,从而避免循环开销或数据移动。通用CPU通常没有足够的寄存器来完成此任务,而不使用其他指令在寄存器和内存之间移动数据。


1
+1是为了强调MAC操作。毫无疑问,这些是大多数DSP操作的核心。
马特·杨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.