1.3 ADSP-BF561外设
ADSP-BF561系统外设包括并行外设接口(PPI)、串口(SPORT)、串行外设接口(SPI)、通用定时器、通用异步收发器(UART)、看门狗定时器、通用I/O(可编程标志)。这些外设通过几种高带宽总线连接到内核,如图1-4所示。除了通用I/O和定时器外,所有其他外设都有灵活的DMA支持,包括两个DMA控制器(DMA1和DMA2)和一个内部存储器DMA控制器(IMDAM)。DMA1和DMA2中都有12个可编程的外设DMA通道和两个独立的存储器DMA流专用于DSP存储器空间(包括外部SDRAM和异步存储器)中的数据传送。多个片上总线提供了足够的带宽使处理器保持运行,即使所有片上和外部设备也都在工作。
图1-4 ADSP-BF561框图
1.并行外设接口
处理器提供了两个PPI,可以直接连接并行的A/D和D/A转换器、ITU-R 601/656视频编解码器以及其他通用外设。PPI有一个专用的输入时钟引脚,有多达3个帧同步引脚、16个数据引脚。输入时钟支持并行数据率可达到系统时钟率的一半。在ITU-R 656模式下,PPI可接收和解析一个8-bit或10-bit数据元素的数据流,支持有内嵌的前同步码控制(Preamble Control)和同步信息的片上解码。PPI支持如下3种不同的ITU-R 656模式:
(1)仅有效视频模式。PPI不读取有效视频结束(EAV)和有效视频开始(SAV)前同步码符号(Preamble Symbol)之间或垂直消隐期间(VBI)提供的任何数据。在这种模式下,控制字节序列不会存储到存储器里,它们被PPI滤掉了。
(2)仅垂直消隐模式。PPI仅传送VBI数据以及水平消隐信息和VBI线上的控制字节序列。
(3)整场模式。PPI读取整个输入比特流,包括有效视频、前同步码控制序列,以及嵌入到水平和垂直消隐期间的辅助数据。
虽然没有明确地说可以支持,但PPI还是可以实现ITU-R 656输出功能的,其做法可以是通过在存储器里建立整个帧结构(包括有效视频、消隐和控制信息),然后将数据流按帧同步模式传出PPI。处理器的二维(2D)DMA特征有助于这种传送,它是通过允许将静态帧缓冲器(消隐和控制码)一次性地放置到存储器里,并简单地基于每帧更新有效视频信息。PPI通用模式是为了适合各种数据采集和传输应用而特别设计的,这些模式分成4个主要类别:用内部产生的帧同步接收数据、用外部产生的帧同步接收数据、用内部产生的帧同步发送数据、用外部产生的帧同步发送数据,每类都允许每个PPI_CLK周期传送多达16位的数据,都支持ADC/DAC连接以及用硬件发送信令的视频通信,多数模式支持不只一级帧同步,还可以在一个帧同步声明和数据接收/发送之间插入一个可编程的延迟。
2.串行接口(SPORT)
ADSP-BF561提供了两个双通道同步串行接口SPORT0和SPORT1用于串行通信和多处理器通信,SPORT具有以下特征:
(1)双向且具有I2S操作能力。每个SPORT都有两套独立的发送和接收引脚,可以使能4个I2S立体声音频双向通道。
(2)带缓冲的(8-deep)发送和接收端口。每个端口都有一个数据寄存器用于传送数据字,还有移位寄存器用于将数据移入/出数据寄存器。
(3)时钟。每个发送和接收端口都能使用外部串行时钟或它自己产生的各种频率。
(4)字长。每个SPORT都支持长度为3~32位的串行数据字,可以先传送最高有效位(MSB)或最低有效位(LSB)。
(5)成帧。对于每个数据字,每个发送和接收端口都可使用或不用帧同步信号,帧同步信号可以内部或外部产生,可以是高电平或低电平有效,也可以是提前或延迟帧同步。
(6)硬件压缩扩展。每个SPORT都能根据ITU建议G.711执行A-law或μ-law压缩扩展,发送和/或接收通道上都可以选择压缩扩展,没有附加延迟。
(7)单周期开销DMA操作。每个SPORT口都能自动地接收和发送多个缓冲器存储器数据,处理器能处理SPORT口和存储器之间多种DMA传送序列。
(8)中断。每个发送和接收端口都可以在传送完一个数据字时或通过DMA传送了整个数据缓冲或若干缓冲之后产生一个中断。
(9)多通道能力。每个SPORT口都支持1024 通道窗口中的128 个通道,并兼容H.100、H.110、MVIP-90和HMVIP标准。
3.串行外设接口
ADSP-BF561有一个SPI兼容端口,能同多个SPI兼容的设备进行通信,具有全双工、同步串行通信能力,支持主模式、从模式和多主机环境。SPI接口使用三个引脚传送数据:两个数据引脚和一个时钟引脚,它有一个SPI片选输入引脚用于允许其他SPI设备选择处理器,有7个SPI片选输出引脚允许处理器选择其他SPI设备,SPI选择引脚是可重配置的可编程标志(PF)引脚。SPI口的波特率和时钟相位/极性是可编程的,它集成了一个DMA控制器,可配置成支持发送或接收数据流,SPI DMA控制器只能服务于指定时间上的单向访问。传送期间SPI口可同时发送和接收,在它的两个串行数据线上可连续地移出和移入数据,串行时钟线同步两个串行数据线上数据的移位和采样。
4.定时器
ADSP-BF561有12个通用可编程定时器单元,每个定时器有一个外部引脚,可配置为脉冲宽度调制器(PWM)或定时输出,或者配置为定时器的输入时钟,或者配置来测量外部事件的脉冲宽度。这些定时器单元可被同步到一个连接到EXTCLK引脚上的外部输入时钟,或者是连接到PPI_CLK引脚上的外部输入时钟,或者是内部的SCLK。定时器单元可与UART联合使用来测量数据流里的脉冲的宽度,从而提供一个串行通道的自动波特率检测功能。定时器可向处理器产生中断以提供周期性事件,从而实现与处理器时钟或一个外部信号的计数的同步。每个内核还各有一个内核定时器,由内部的处理器时钟驱动,通常作为一个系统tick时钟,用于产生操作系统的周期性的中断。
5.UART端口
ADSP-BF561提供了一个全双工的通用异步收/发器(UART),完全兼容PC-standard UART。该端口提供了一个简单化的UART接口给其他外设或主机,提供全双工的、有DMA支持的串行数据异步传送。UART口的波特率、串行数据格式、错误代码产生和状态以及中断都是可编程的,可以支持多种比特率、每帧7~12位的数据格式(包括5~8个数据位,1~2个停止位,不带或带一个奇偶校验位),发送和接收操作都可产生一个可屏蔽的中断。UART口支持两种操作模式:
(1)可编程的I/O(PIO)。处理器通过写或读I/O映射的UART寄存器来发送或接收数据,在发送和接收上数据都是双缓冲的。
(2)DMA。DMA控制器能发送和接收数据,降低了读/写存储器所需要的中断次数和频率,有两个专用DMA通道,分别用于发送和接收,这些DMA通道比大多数DMA通道的优先级低一些,因为它们的服务速率相对低一些。
UART联合通用定时器功能可以支持自动波特率检测,其兼容能力还可进一步扩展,以支持红外数据协会(IrDA®)的串行红外物理层链接规范(SIR)协议。
6.看门狗定时器
每个内核包含一个32bit用于实现软件看门狗功能的定时器。软件看门狗能改善系统的有效性,若在软件复位它之前其定时期满,它就通过一个硬件复位中断、NMI或通用中断强迫处理器回到一个已知的状态。这可保护系统不停留在一个未知状态,当系统由于一个外部噪声环境或软件错误而停止了运行,看门狗能实现正常复位。程序中先初始化这个定时器的计数值,再使能适当的中断,然后使能这个定时器,之后软件必须在这个计数器递减计数到零之前重新加载可编程的值。这个定时器是由系统时钟驱动的,最大频率是fSCLK。如果配置成产生一个硬件复位,看门狗定时器将复位内核和外设。复位后,软件通过查询看门狗定时器控制寄存器里的一个状态位,可以测定这个硬件复位是否是由看门狗引起的。
7.可编程标志
ADSP-BF561有48个双向可编程标志PF或通用I/O引脚PF[47:0],每个引脚能用标志控制、状态和中断寄存器来单独配置。
(1)标志方向控制寄存器。指定每个独立的PFx引脚为输入或输出。
(2)标志控制和状态寄存器。ADSP-BF561应用一个“写1修改”机制,允许在一条指令中修改单独标志的任意组合,而不会影响到任何其他标志的电平。提供了4个控制寄存器:一个寄存器是写“1”设置标志值,一个寄存器是写“1”清除标志值,一个寄存器是写“1”切换标志值,一个寄存器是写入以指定标志值。读标志状态寄存器可以查询标志的状态。
(3)标志中断屏蔽寄存器。两个标志中断屏蔽寄存器允许每个独立的PFx引脚作为处理器的一个中断。这类似于两个标志控制寄存器用于设置和清除单独的标志值,一个标志中断屏蔽寄存器通过置位来使能中断功能,另一个标志中断屏蔽寄存器则是通过清除位来禁止中断功能。定义PFx引脚为输入引脚时可配置它,以便能够产生硬件中断,定义为输出引脚时可被软件中断触发。
(4)标志中断触发(Sensitivity)寄存器。两个标志中断触发寄存器指定单独PFx引脚是电平触发还是边缘触发,如果是边缘触发,则又可指定是仅信号的上升沿触发还是上升沿和下降沿都触发。
8.DMA支持
ADSP-BF561有多个独立的DMA控制器,支持内核最小开销的自动的数据传送。DMA传送能发生于ADSP-BF561内部存储器和任何一个具有DMA能力的外设之间。另外,DMA传送可以在具有DMA能力的外设和连接到外部存储器接口上的外部设备之间进行,包括SDRAM控制器和异步存储器控制器。具有DMA能力的外设包括SPORT、SPI、UART和PPI,每个独立的具有DMA能力的外设都至少有一个专用的DMA通道。DMA控制器支持一维(1D)和二维(2D)DMA传送,DMA传送初始化可以用寄存器来实现,或用称为描述符块的参数组来实现,2D DMA能力支持可达64K元素×64K元素的行和列,行和列的步长可达±32K元素,列步长可以小于行步长。也可以实现交叉存取的数据流的DMA,这个特征在视频应用中尤其有用,那里的数据可以被高速地去交织。所支持的DMA类型的例子包括:
(1)一个单一的线性的缓冲器,一完成就停止。
(2)一个循环的自动刷新的缓冲器,可在缓冲器每次满或部分满时产生中断。
(3)可以使用一个描述符链表的1D或2D DMA。
(4)使用一个描述符阵列的2D DMA时在一个公共页内只指定DMA基地址。
除了专用的外设DMA通道外,还有一个单独的存储器DMA通道用于各种存储器系统之间的传送,它能够传送任意两个存储器之间的数据块,包括外部SDRAM、ROM、SRAM和FLASH存储器,只需要处理器最小限度的干预。存储器DMA传送可用一个非常灵活的基于描述符的方法或一个标准的基于寄存器自动缓冲的机制进行控制。另外一个内部的存储器DMA(IMDMA)控制器只支持内部存储器间的数据传送。