电子说
在当今的电子技术领域,高性能音频处理一直是一个备受关注的方向。而ADI公司的ADSP - 21477/ADSP - 21478/ADSP - 21479处理器,无疑是该领域的一款明星产品。今天,我们就来深入探讨一下这款处理器的特点、架构以及应用。
文件下载:ADSP-21479.pdf
ADSP - 2147x系列处理器属于SIMD SHARC家族的DSP,采用了ADI的Super Harvard架构。它是32位/40位浮点处理器,专为高性能音频应用而优化,具有大尺寸的片上SRAM、多个内部总线以消除I/O瓶颈,还有创新的数字应用接口(DAI)。该系列处理器与ADSP - 2126x、ADSP - 2136x等多款DSP在源代码上兼容,并且在SISD模式下与第一代ADSP - 2106x SHARC处理器也兼容。
在性能方面,该系列处理器表现出色。以300 MHz运行时,1024点复FFT仅需30.59 μs,FIR滤波器(每抽头)为1.66 ns,IIR滤波器(每双二阶)为6.65 ns等。不同型号在频率、RAM、ROM等方面存在差异,例如ADSP - 21477频率为200 MHz,RAM为2 Mbits;ADSP - 21478频率可达300 MHz,RAM为3 Mbits,ROM为4 Mbits;ADSP - 21479的RAM则高达5 Mbits。
处理器包含两个计算处理单元PEX和PEY,作为单指令多数据(SIMD)引擎工作。PEX始终处于活动状态,PEY可通过设置MODE1寄存器中的PEYEN模式位来启用。SIMD模式下,处理器能在两个处理单元中执行相同指令,但每个单元处理不同数据,这种架构在执行数学密集型DSP算法时效率极高。同时,进入SIMD模式会使内存和处理单元之间的带宽翻倍,使用DAGs传输数据时,每次内存或寄存器文件访问会传输两个数据值。不过需要注意的是,SIMD模式在外部SDRAM中支持,但在AMI中不支持。
每个处理单元内有算术逻辑单元(ALU)、乘法器和移位器,这些单元能在单周期内完成所有操作,且三个单元并行排列,最大化计算吞吐量。单多功能指令可执行并行的ALU和乘法器操作,在SIMD模式下,这种并行操作会在两个处理单元中同时发生。这些计算单元支持IEEE 32位单精度浮点、40位扩展精度浮点和32位定点数据格式。
处理器包含一个核心定时器,可生成周期性软件中断,还能配置为使用FLAG3作为定时器过期信号。
每个处理单元都有一个通用数据寄存器文件,用于在计算单元和数据总线之间传输数据,并存储中间结果。这些10端口、32寄存器(16个主寄存器,16个辅助寄存器)的寄存器文件,结合处理器的增强哈佛架构,允许计算单元和内部内存之间无约束的数据流。
处理器的许多寄存器都有辅助寄存器,在中断服务期间可激活以实现快速上下文切换。数据寄存器、DAG寄存器和乘法器结果寄存器都有辅助寄存器,主寄存器在复位时激活,辅助寄存器由模式控制寄存器中的控制位激活。
通用寄存器可用于通用任务。USTAT(4)寄存器允许对所有外设控制和状态寄存器进行简单的位操作(设置、清除、切换、测试、异或)。数据总线交换寄存器(PX)允许在64位PM数据总线和64位DM数据总线之间,或在40位寄存器文件和PM/DM数据总线之间传递数据,这些寄存器包含处理数据宽度差异的硬件。
处理器采用增强哈佛架构,数据内存(DM)总线传输数据,程序内存(PM)总线传输指令和数据。凭借独立的程序和数据内存总线以及片上指令缓存,处理器能在单周期内同时获取四个操作数(每个数据总线两个)和一条指令(从缓存中)。
处理器的片上指令缓存支持三总线操作,用于获取一条指令和四个数据值。缓存是选择性的,仅缓存与PM总线数据访问冲突的指令,这使得核心循环操作(如数字滤波器乘累加和FFT蝶形处理)能够全速执行。
处理器的两个数据地址生成器(DAGs)用于间接寻址和在硬件中实现循环数据缓冲区。循环缓冲区可高效编程延迟线和其他数字信号处理所需的数据结构,常用于数字滤波器和傅里叶变换。两个DAGs包含足够的寄存器,可创建多达32个循环缓冲区(16个主寄存器集,16个辅助寄存器集),并自动处理地址指针回绕,减少开销,提高性能,简化实现。
48位指令字可容纳各种并行操作,便于简洁编程。例如,处理器能在两个处理单元中有条件地执行乘法、加法和减法,同时分支并从内存中获取多达四个32位值,所有这些都在一条指令中完成。
除了支持以前SHARC处理器的标准48位指令外,处理器还支持16位和32位的新指令。这种可变指令集架构(VISA)通过去除48位指令中的冗余/未使用位,创建更高效、紧凑的代码。程序序列器支持从内部和外部SDRAM内存中获取这些16位和32位指令,但这种支持不扩展到异步内存接口(AMI)。要使用VISA选项构建源模块,以便代码生成工具创建更高效的操作码。
处理器包含不同数量的内部RAM和内部ROM,每个块可配置为不同的代码和数据存储组合。每个内存块支持核心处理器和I/O处理器的单周期独立访问。处理器的SRAM可配置为最多160k字的32位数据、320k字的16位数据、106.7k字的48位指令(或40位数据),或不同字大小的组合,最大可达5 Mbits。所有内存都可作为16位、32位、48位或64位字访问,还支持16位浮点存储格式,能有效使片上存储的数据量翻倍,32位浮点和16位浮点格式之间的转换可在单指令中完成。
外部内存接口支持通过核心和DMA访问外部内存,外部内存地址空间分为四个银行,任何银行都可编程为异步或同步内存。外部端口由异步内存接口(AMI)、SDRAM控制器和仲裁逻辑组成。AMI可与SRAM、FLASH等设备通信,支持Bank 0中的6M字外部内存和Bank 1、2、3中的8M字外部内存;SDRAM控制器支持与标准SDRAM的无缝接口,Bank 0支持62M字外部内存,Bank 1、2、3支持64M字外部内存;仲裁逻辑用于协调内部和外部内存之间的核心和DMA传输。
外部端口为各种行业标准内存设备提供高性能、无缝接口,仅在196球CSP_BGA封装上可用。它可通过独立的内部内存控制器连接到同步和/或异步内存设备,四个内存选择引脚可使多达四个独立设备共存,支持同步和异步设备类型的任意组合。
SDRAM控制器支持在64位外部端口数据总线(EPD)上进行SIMD访问,可访问PEy单元在正常字空间(NW)中的互补寄存器,提高了性能。
SDRAM控制器支持VISA代码操作,减少了内存负载,因为VISA指令被压缩,且总线获取减少,在最佳情况下,一个48位获取包含三条有效指令。同时也支持传统ISA操作的代码执行,但无论VISA/ISA,代码执行仅支持从Bank 0进行。
DAI提供了将各种外设连接到任何DAI引脚的能力,通过信号路由单元(SRU)实现。SRU是一个矩阵路由单元,可在软件控制下互连DAI提供的外设,使DAI相关外设能用于更广泛的应用。相关外设包括八个串行端口、四个精密时钟发生器(PCG)、一个S/PDIF收发器、四个异步采样率转换器(ASRC)和一个输入数据端口(IDP)。
处理器有八个同步串行端口,为各种数字和混合信号外设提供廉价接口。串行端口由两条数据线、一个时钟和帧同步组成,数据线可编程为发送或接收,每个数据线都有专用的DMA通道。串行端口可支持多达16个发送或16个接收DMA通道的音频数据,或四个每帧128通道的全双工TDM流。
S/PDIF收发器无单独的DMA通道,接收串行格式的音频数据并将其转换为双相编码信号。串行数据输入可格式化为左对齐、I2S或右对齐,字宽为16、18、20或24位。
SRC包含四个模块,与AD1896 192 kHz立体声异步采样率转换器使用相同的核心。SRC模块提供高达128 dB的SNR,可在不使用内部处理器资源的情况下对独立立体声通道进行同步或异步采样率转换,四个SRC模块还可配置为一起工作,以转换多通道音频数据而无相位失配,还可用于清理来自抖动时钟源(如S/PDIF接收器)的音频数据。
IDP提供多达八个串行输入通道,每个通道都有自己的时钟、帧同步和数据输入。八个通道自动多路复用到一个32位×8深度的FIFO中,数据始终格式化为64位帧并分为两个32位字。串行协议设计用于接收I2S、左对齐采样对或右对齐模式的音频通道。IDP还提供一个并行数据采集端口(PDAP),可用于接收并行数据,支持最大20位数据和四种不同的打包模式。
PCG由四个单元组成,每个单元从时钟输入信号生成一对信号(时钟和帧同步)。四个单元功能相同且相互独立,PCG A和B的输出可通过DAI引脚路由,PCG C和D的输出可驱动到DAI和DPI引脚。
DPI提供与两个串行外设接口端口(SPI)、一个通用异步接收器 - 发送器(UART)、12个标志、一个2线接口(TWI)、三个PWM模块和两个通用定时器的连接。
SPI是行业标准的同步串行链路,支持主从模式,可在多主环境中工作,具有可编程波特率、时钟相位和极性,使用开漏驱动器支持多主配置,避免数据冲突。
UART端口是全双工的,与PC标准UART兼容,支持全双工、DMA支持的异步串行数据传输,具有多处理器通信能力,支持5到8个数据位、1或2个停止位以及无、偶或奇校验。UART端口支持PIO和DMA两种操作模式,波特率、串行数据格式、错误代码生成和状态以及中断均可编程。
PWM模块是灵活的可编程波形发生器,可生成电机和发动机控制或音频功率控制所需的开关模式。PWM发生器可生成中心对齐或边缘对齐的PWM波形,整个PWM模块有四组四个PWM输出,共产生16个PWM输出。PWM发生器在生成中心对齐PWM波形时可工作在单更新模式或双更新模式。
处理器共有三个定时器,一个核心定时器可生成周期性软件中断,两个通用定时器可生成周期性中断,并可独立设置为三种模式之一:脉冲波形生成模式、脉冲宽度计数/捕获模式和外部事件看门狗模式。
TWI是双向2线串行总线,用于移动8位数据,符合I2C总线协议,具有7位寻址、同时控制器和目标操作、数字滤波和定时事件处理、100 kbps和400 kbps数据速率以及低中断率等特点。
移位寄存器可作为串行到并行数据转换器,由18级串行移位寄存器、18位锁存器和三态输出缓冲器组成,移位寄存器和锁存器有单独的时钟。
DMA控制器独立于处理器核心运行,允许在核心执行程序指令的同时进行DMA操作。处理器上最多有65个DMA通道,可在处理器的内部内存和串行端口、SPI端口、IDP、PDAP或UART之间进行传输。DMA功能还包括DMA传输完成时的中断生成和自动链接DMA传输的DMA链。
处理器提供延迟线DMA和散列/聚集DMA功能,分别允许处理器以有限的核心交互读写外部延迟线缓冲区(即外部内存),以及读写非连续内存块。
处理器包含FFT、FIR和IIR加速器,分别用于实现基 - 2复/实输入、复输出FFT,有限脉冲响应(FIR)滤波和无限脉冲响应(IIR)滤波,这些加速器在外部时钟频率下运行。
处理器包含一个32位看门狗定时器,可用于实现软件看门狗功能,提高系统可靠性。当定时器到期前未被软件重新加载时,会强制处理器进入已知状态。
RTC提供强大的数字手表功能,包括当前时间、秒表和闹钟。RTC由SHARC处理器外部的32.768 kHz晶体提供时钟,有专用的电源引脚,即使处理器的其余部分处于低功耗状态,RTC也能保持供电和时钟运行。RTC提供多种可编程中断选项,还提供一个1 Hz的RTCLKOUT信号用于校准。
内部内存可在系统上电时从8位EPROM通过外部端口、SPI主设备或SPI从设备启动,启动方式由BOOT_CFG2 - 0引脚决定。此外,还有运行复位功能,可在不复位PLL和SDRAM控制器或执行启动的情况下复位处理器核心和外设。
处理器的内部(VDD_INT)和外部(VDD_EXT)电源有单独的连接,内部和模拟电源必须满足VDD_INT规格,外部电源必须满足VDD_EXT规格。为减少噪声耦合,PCB应使用VDD_INT和GND的平行电源和接地平面。
ADI的JTAG仿真器使用处理器的IEEE 1149.1 JTAG测试访问端口来监控和控制目标板处理器,提供全处理器速度的仿真,允许检查和修改内存、寄存器和处理器堆栈,且不会影响目标系统的负载或时序。
ADI为其处理器提供了完整的软件和硬件开发工具,包括集成开发环境(CrossCore® Embedded Studio和VisualDSP++®)、评估产品、仿真器和各种软件插件。
CrossCore Embedded Studio基于EclipseTM框架,支持大多数ADI处理器家族,是未来处理器(包括多核设备)的首选IDE,可无缝集成软件插件以支持实时操作系统、文件系统、TCP/IP堆栈、USB堆栈、算法软件模块和评估硬件板支持包。VisualDSP++支持在CrossCore Embedded Studio发布之前推出的处理器家族,包括ADI的VDK实时操作系统和开源TCP/IP堆栈,但不支持未来的ADI处理器。
ADI提供各种EZ - KIT Lite评估板,包括处理器和关键外设,支持片上仿真功能和其他评估与开发功能。还有各种EZ - Extenders子卡,提供额外的专业功能,如音频和视频处理。EZ - KIT Lite评估套件是一种经济有效的方式,可用于学习ADI处理器的开发,每个套件包括评估板、IDE评估版本的下载说明、USB电缆和电源,支持在板上Flash设备中存储用户特定的启动代码,实现独立操作。
ADI提供与CrossCore Embedded Studio无缝集成的软件插件,包括评估硬件的板支持包、各种中间件包和算法模块,可扩展其功能并减少开发时间。
ADSP - 21477/ADSP - 21478/ADSP - 21479处理器凭借其高性能的核心架构、丰富的外设接口、强大的I/O处理器特性以及完善的开发工具支持,在高性能音频处理领域具有显著优势。无论是对于音频设备制造商还是电子工程师来说,这款处理器都是一个值得考虑的选择。在实际应用中,我们需要根据具体的需求和场景,合理选择处理器型号,并充分利用其各种特性,以实现最佳的性能和功能。你在使用这款处理器的过程中遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !