MCU

ADSP起步---ADSP-2188M

0
阅读(3143)

最近想要买一块ADI的DSP开发板,于是我找了一款比较常用而又相对简单的DSP芯片先进行了解,该DSP就是ADSP-2188M啦。

ADSP-2188M是一款单芯片微电脑产品,针对数字信号处理(DSP)以及其他高速数字处理应用进行了优化。由下图可知,ADSP-2188M将ADSP-2100系列的基础架构(三个计算单元、数据地址生成器和一个程序序列器)与两个串行端口、一个16位内部DMA端口、一个字节DMA端口、一个可编程计时器、标志I/O、广泛的中断功能及片内程序和数据存储器完美地结合起来。

                          ADSP-2188M基础架构图

ADSP-2188M集成256K字节的片内存储器,其配置为48K字(24位)程序RAM和56K字(16位)数据RAM。同时配有省电电路,以满足采用电池供电的便携式设备的低功耗需求。ADSP-2188的指令周期时间为13.3ns,能够保持75MIPS的运行速度,一方面,它是单循环指令执行的,并且借助3总线架构,能在每个指令周期中实现双取操作数,速度非常快;另一方面,ADSP-2188M还具有一个双用途程序存储器,可以同时存储指令和数据,这对于片内存储器容量有限的器件来说是很有帮助的。

记得以前在学习单片机的时候看过这样一句话,“DSP最强大的功能就是它能够进行高速地运算”,于是我对ADSP-2188M的计算部分进行详细地学习。ADSP-2188M的强大的运算能力来源于它丰富的指令集,这些指令集能够提供灵活的数据移动和计算功能,并且每个指令可以在一个单一的处理器周期内完成。该处理器包含了3个独立的计算单元:ALU,MAC和移位器,能够直接处理16位的数据运算,支持多倍计算。ALU表现出标准的数学逻辑操作,简单的除法运算也有支持。而MAC能够实现单周期的乘法运算,最多的累积位数可达40位。最后,移位器负责执行逻辑和算术移位,还有高级一点的指数运算也是由移位器完成。ADSP-2188M要完成以上运算操作,除了具备以上计算单元外,还需要有一个强大的程序控制器和两个专用的数据地址发生器,以确保能够高效地提供计算单元操作数。先说程序控制器,ADSP-2188M内部具有循环计数器和循环栈,能够零开销地执行循环代码。再说地址发生器,这两个专用的数据地址发生器能够同步地提供双操作数的提取地址,每个发生器负责维护和更新四个地址指针,这样能够更快地给计算单元提供数据,从而实现真正的高速运算。当然,要实现高速的运算,跟各种内部总线也是分不开的,在ADSP内部就有五种总线在负责数据传输,分别是程序存储器地址总线,程序存储器数据总线,数据存储器地址总线,数据存储器总线,结果数据总线。这五种总线中,最特别的就是结果总线,有了结果总线,可以直接把结果送到总线上去,而不用再经过其他数据总线来传输,这样就大大提高了传输的速度。写到这里,我突然也明白了ADSP实现高速运算的方法,就是使各种运算有关的单元的功能单一化,不要复用其他功能,以保证每时每刻都在等待数据运算。

ADSP还有一点很单片机很不同的,就是它的操作模式。ADSP-2188M有三种操作模式,分别是设置内存模式,被动配置模式,主动配置模式。1.内存模式:通过编程器把数据下载到DSP的内部存储器中;2.被动配置模式和主动配置模式都是通过把应用程序下载到内部的程序存储器中,只是下载方式不同而已。以前在用单片机时,很多时候都是单模式操作,就是简单的程序下载,现在用DSP应该要多注意它的模式,不然下载出错还以为是程序问题呢。

以上就是这两天对ADSP-2188M的一个简单了解,算是开头吧,以后还会继续深入,呵呵,加油!