单片机与DSP结合的dsPIC芯片介绍
扫描二维码
随时随地手机看文章
1 dsPIC的产生
目前,在自动检测、控制等领域正掀起应用DSP的热潮。DSP(Digital Signal Processor)即数字信号处理器,是在数字信号处理的各种理论和算法的基础上发展起来的,用于完成各种实时数字信息的处理。20世纪80年代初,随着微电子技术的展,DSP就应运而生了。DSP器件的出现,使得各种数字信号处理的算法得到了实现。DSP器件不但使数字信号处理得到了实际应用,而且还拓宽到了系统控制领域,从而诞生了一大批新型的电子产品。DSP技术的迅速普及,也为今天的信息高速公路建设奠定了基础。
DSP器件的数字信号处理大致有如下特点:①可程控,可以只设计一个硬件配置,然后设计各种软件来执行多样的信号处理任务;②稳定性好,没有时漂、温漂;③可重复性好,无论多少台计算机去计算同一序列的和,都会提供一模一样的结果;④易于实现自适应算法;⑤基于大规模的集成电路。
这样就不难看出,单片机和DSP各有特点。前者控制功能强,后者数字信号处理能力强,因而,将高性能16位单片机加上DSP功能,就产生了 dsPIC芯片。DsPIC是一种将单片机的特征同数字信号处理器(DSP)的能力结构在一起的器件。它在异步事件处理能力、精密仿真、常见的开发环境以及外围部件等方面都表现出DSP强大的性能。
为了缩小单片机同DSP之间的性能差异,使客户能方便地将单片机的功能转移到DSP上,Microchip公司推出了dsPIC。目前推出的产品主要有dsPIC30FXXX系列。考虑到DSP和单片的内部区别,dsPIC器件将高性能16位单片机的控制特点和DSP高速运算的优点相结合,为嵌入式系统设计提供了适合的,单芯片、单指令流的解决方案。它消除了目前类似设计中所需求的额外组成部分,从而减小了印制板空间,也降低了系统成本 dsPIC30FXXX高性能单片要同系列可以应用于非常广阔的范围,包括马达控制、因特网接入器件、汽车产品、功能电路、数字应答机、低速软件调制解调器、线卡、POS终端、自动售货机、生物测定安全装置、不间断电源、电源管理和自然语音输入/输出等等。
由于dsPIC兼容了单片机和DSP芯片这两类产品的优点,因此它具有下列特点:
*丰富的外围部件;
*完整的DSP引擎;
*改进的中断能力;
*Flash存储器,灵活的重编程能力;
*强大的开发环境;
*引脚数少;
*使用优化的高级语言;
*方便PIC系列单片机用户移植现有的代码;
*熟悉的类似单片机的用户开发平台。
此外,dsPIC还可以支持4M×24位的可寻址Flash程序存储体,以及32K×16位的数据存储空间。相对于其它许多单片机的5V供电及DSP的3.3V供电,dsPIC的供电电压是2.5~5.5V。
图1 dsPIC芯片内部结构图
2 dsPIC30F与PIC16F87X的比较
dsPIC30F芯片采用16位(数据)改进型——非流水线的哈佛RISC结构,芯片具体结构如图1所示。程序计数器(PC)为24位宽,可以寻址4M×24位的程序存储器空间。而PIC16F87X系列单片机采用的是8位流水线哈佛结构,有一个13位宽的程序计数器PC,最大只可寻址8K的程序存储器空间。
DsPIC30F有16个16位的工作寄存器(W0~W15)。每个工作寄存器都可以作为数据、寻址或移位寄存器来操作。其中,第16个工作寄存器(即W15)作为中断和程序调用的堆栈指针。PIC16F87X系列同其它种类的PIC机一样,只含有一个用于ALU的8位W工作寄存器,相当于一般单片机的A累加器,是不可寻址的。
dsPIC30F指令字是24位的,其指令系统有很大的增强,最大特点就是包含了对DSP的支持。因为这种DSP引擎具有1个高速的16位与 16位相乘的乘法器、1个40位的ALU、2个40位的饱和累加器(saturating accumulator)以及1个40位的双向移位器,因而能够明显提高芯片算法能力和周期。由此,这种芯片的指令系统就分成两大类——单片机类和DSP 类。这种指令系统基于高效的C编译器,支持固有寻址(无操作数)、相对寻址、立刻寻址、存储器寻址、寄存器直接寻址、间接寻址和移动寻址7种方式。每条指令都同预先定义的寻址方式有关,而这些预定义的寻址方式是由特定功能需求决定的,且每条指令都支持这7种寻址方式。对于大多数指令,dsPIC30F芯片在每个指令周期能够执行数据(或程序数据)存储器读操作、工作寄存器(数据)读操作、数据存储器写操作以及程序(指令)存储器读操作。因此,它可以支持3 操作数的指令,比如,在一个周期内可以完成A+B=C的操作。而PIC16F87X系列单片机每条指令长14位(其它系列指令字长也12位或16位的),整个指令系统共分成三类——字节操作类、位操作类以及立刻数操作和控制操作类,支持立即数寻址、寄存器间接寻址、直接寻址和位寻址四种寻址方式,但由于这样寻址种类的划分依据是操作数的来源,因此并非每条指令都可以支持这四种寻址方式,例如,位操作类的指令就只能采用位寻址方式。对PIC16F87X系列单片机,其指令的操作个数最多只能是两个,另外,再加上这种系列单片机不提供对DSP的支持,那么在数字信号处理速度方面,同dsPIC30F相比显然要慢很多。
dsPIC30F芯片的数据空间被一分为二,分别以X和Y数据存储器进行引用,可以作为32K字(word)或64KB(byte)进行寻址。每个存储器块都有自己独立的地址产生单元(AGU)。单片机类的指令仅单独通过X存储器的AGU单元进行操作,把整个存储器作为一个线性的数据空间进行寻址。而DSP类指令的乘法累加器(MAC)是通过X和Y的AGU共同操作的,这样就将数据地址空间分成相对独立的两部分。不过,这样的X和Y的数据空间边界是任意的,且是由芯片自身特性决定的。数据空间存储器高位的32KB,通过定义8位程序空间可见页面寄存器PSVPAG(Program Space Visibility Page),任意的16位程序字边界中随意地被映射到的程序空间低位(用户空间),这样就使得任何指令能够像访问数据空间一样访问程序空间。不过,采用这种方式访问的执行时间比一般的访问方式要多一个周期。而且,只有每条指令字的低16位才可以使用这种方法访问。PIC16F87X系列单片机的数据存储器分成多个存储区。每个存储区由通用寄存器和专用寄存器两部分组成。存储区之间的选择是通过定义状态寄存器STATUS的RP0和RP1位进行的,每个存储体最多只能达到128字节。
dsPIC芯片不支持多级指令流水线,而采用单级指令预取机制,就是在可利用的最大执行时间前的一个周期访问指令。因此,dsPIC芯片大多数指令是单周期的。此外,dsPIC30F芯片还有一个特征,就是含有由61个区分优先级的向量组成的矢量异常处理结构,这些异常情况包括复位(RESET)、6个捕捉以及54个中断。
结语
dsPIC器件的开发有助于缓解16位单片机和低端数字信号处理器(DSP之间的性能差,是传统16位单片机应用的理想解决方案。与此同时,随着控制技术日趋复杂化,越来越多的工业系统要使用DSP精确控制实时响应,以及现有产品要求增加更多功能,以增强I/O易用性和安全接入,dsPIC必将在高性能数字信号控制器市场占据重要一席之地。同时,随着多种dsPIC产品系列的不断迅速开发,以及愈加完善的开发工具、应用系统库、现场应用工程技术和综合技术等的产品,dsPIC一定会得到广大用户的青睐。