单片机与DSP结合的dsPIC芯片
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一定会得到广大用户的青睐。