基于MPC8260处理器和FPGA的DMA接口设计
时间:11-09
来源:互联网
点击:
在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号经过变频器处理和A/D变换之后,经过高速通道把采集的信号送入主控板进行数据分发处理。系统的结构框图如图1所示。
图1 主控板的系统结构框图
主控板的硬件核心是嵌入式微处理器MPC8260,负责系统软件的加载、数据的分发以及与外界命令控制的交互。软件上,采用高性能的VxWorks嵌入式实时操作系统。从天线接收到的射频信号经过变频和A/D变换之后作为数据源连接到FPGA,FPGA对接收到的数据进行中频变换和信道估计等预处理后,在CPU的控制下将数据传输到本地内存,最后CPU对数据打包后进行快速分发。因此,将40~50 Mbps的高速数据流从FPGA传给CPU成为系统设计的一个关键。
如果每传递一个字节的数据都需要CPU的介入,那么不论是采用中断驱动还是采用程序查询的方式,数据传输速率都会很低,无法满足系统需求。DMA(直接存储器存取)和一般的程序控制传送方式相比具有数据传送速度高、I/O响应时间短和CPU额外开销小的优点,因此,选择DMA的传输模式,使FPGA中的数据不经过CPU内部寄存器的中转而直接存放到本地内存。MPC8260支持多种DMA实现方式,分别适用于不同数据传输源/目的设备、不同传输数据块大小和存储模式的需要,因此需要根据主控板的系统特点设计出合适的DMA传输接口。
1 MPC8260的 DMA系统结构
图2 CPM原理框图
MPC8260是Freescale公司主要针对数据通信领域而设计的一种嵌入式PowerPC微处理器,具有双核结构:1个高性能的MPC603e 64位RISC微处理器内核和1个专为通信设计的32位RISC通信处理模块(Communication Processor Module,CPM)。CPM能够分担PowerPC内核大部分的外围通信任务,其中就包含两个DMA控制器,即串行直接存储器存取通道(Serial Direct Memory Access,SDMA),所以这种双处理器的体系结构比单处理器具有更强的通信控制功能。CPM的原理框图如图2所示。除了PowerPC内核和CPM之外,MPC8260还包含一个灵活的系统接口单元(System Interface Unit,SIU)主要用于控制与外部总线的接口。
图2中, CPM内除了SDMA模块以外,还包括通信控制器(Communications Processor,CP)、双口RAM和一些串行外围设备的控制接口等。SDMA和60x总线、本地总线相连,并且可以直接访问CPM内部的双口RAM。CP利用这两个SDMA为每个外围串行控制器提供了两个虚拟SDMA通道:一个用于输入,一个用于输出。同时,CPM还用这2个物理的SDMA通道模拟4个可编程控制的、独立的DMA (Independent DMA,IDMA)通道,用于存储器—存储器及外设—存储器之间的数据传输。
主控板上的FPGA和SDRAM都是挂接在MPC8260的60x总线上的,所以只能利用IDMA来实现二者之间的DMA传输。根据传输启动的触发方式不同,IDMA可分为握手信号控制的IDMA传输和CP命令控制的IDMA传输两种。下面分别介绍两种方式的特点。
1.1 握手信号控制的IDMA传输
握手信号控制的IDMA传输主要用于外设和内存之间的数据传输。每个IDMA通道都有3个握手信号用于传输握手控制:DMA请求信号DREQ[1"4]、DMA应答信号DACK[1"4]和DMA结束信号DONE[1"4]。
在这种方式下,PowerPC内核只需要参与IDMA通道初始化,之后的传输过程全部由CP按照通道参数设置和握手信号控制数据的收发,在最大程度上释放内核。握手信号控制的缺点在于:① SDRAM中的数据和MPC8260的数据同步比较复杂。② 每次发出请求信号后都要进行总线仲裁,并且在得到总线使用权之后一次只能够传输外设端口大小或者32位的数据,总线利用率低。③ 握手控制逻辑和时序比较复杂,加重了FPGA内部控制逻辑设计的负担。
虽然这种传输方式基本上不占用内核资源,但是由于总线带宽有限且利用率较低,所以在连续高速的通信条件下会造成内核长时间得不到总线使用权而一直处于等待状态。因此,握手信号控制的IDMA一般只适用于由外设发起的、数据不是太频繁的传输使用。
1.2 CP命令控制的IDMA传输
MPC8260的IDMA还可以通过向CP命令寄存器中写入START_IDMA命令进行内部触发。每次启动传输以后PowerPC内核就被释放,传输的源地址、目的地址和传输数据长度等参数由CP按照在IDMA通道初始化的信息控制执行。每次传输的最大长度为4 GB。
相比握手信号控制的IDMA传输,在这种方式下,PowerPC内核除了需要初始化IDMA通道以外还要以命令的形式启动每一次的传输,所以要占用多一些的内核资源。不过,在一次传输启动之后最多可以传输4 GB的数据,所以只要每次传输的数据长度比较长,内核写一个寄存器的额外开销就完全可以忽略不计。同时,由于内部命令触发方式不需要握手信号,不需要频繁地每几个字节就竞争一次总线控制权,所以这种方式的传输效率更高、传输速度更快。内部命令触发方式是以空间换时间——用前端大的缓冲区来换取传输速度的提升。
考虑到主控板上软硬件系统的瓶颈都在于总线带宽,而存储资源相对比较丰富,所以选择CP命令控制的IDMA传输作为数据流从FPGA到SDRAM的传输方式。
图1 主控板的系统结构框图
主控板的硬件核心是嵌入式微处理器MPC8260,负责系统软件的加载、数据的分发以及与外界命令控制的交互。软件上,采用高性能的VxWorks嵌入式实时操作系统。从天线接收到的射频信号经过变频和A/D变换之后作为数据源连接到FPGA,FPGA对接收到的数据进行中频变换和信道估计等预处理后,在CPU的控制下将数据传输到本地内存,最后CPU对数据打包后进行快速分发。因此,将40~50 Mbps的高速数据流从FPGA传给CPU成为系统设计的一个关键。
如果每传递一个字节的数据都需要CPU的介入,那么不论是采用中断驱动还是采用程序查询的方式,数据传输速率都会很低,无法满足系统需求。DMA(直接存储器存取)和一般的程序控制传送方式相比具有数据传送速度高、I/O响应时间短和CPU额外开销小的优点,因此,选择DMA的传输模式,使FPGA中的数据不经过CPU内部寄存器的中转而直接存放到本地内存。MPC8260支持多种DMA实现方式,分别适用于不同数据传输源/目的设备、不同传输数据块大小和存储模式的需要,因此需要根据主控板的系统特点设计出合适的DMA传输接口。
1 MPC8260的 DMA系统结构
图2 CPM原理框图
MPC8260是Freescale公司主要针对数据通信领域而设计的一种嵌入式PowerPC微处理器,具有双核结构:1个高性能的MPC603e 64位RISC微处理器内核和1个专为通信设计的32位RISC通信处理模块(Communication Processor Module,CPM)。CPM能够分担PowerPC内核大部分的外围通信任务,其中就包含两个DMA控制器,即串行直接存储器存取通道(Serial Direct Memory Access,SDMA),所以这种双处理器的体系结构比单处理器具有更强的通信控制功能。CPM的原理框图如图2所示。除了PowerPC内核和CPM之外,MPC8260还包含一个灵活的系统接口单元(System Interface Unit,SIU)主要用于控制与外部总线的接口。
图2中, CPM内除了SDMA模块以外,还包括通信控制器(Communications Processor,CP)、双口RAM和一些串行外围设备的控制接口等。SDMA和60x总线、本地总线相连,并且可以直接访问CPM内部的双口RAM。CP利用这两个SDMA为每个外围串行控制器提供了两个虚拟SDMA通道:一个用于输入,一个用于输出。同时,CPM还用这2个物理的SDMA通道模拟4个可编程控制的、独立的DMA (Independent DMA,IDMA)通道,用于存储器—存储器及外设—存储器之间的数据传输。
主控板上的FPGA和SDRAM都是挂接在MPC8260的60x总线上的,所以只能利用IDMA来实现二者之间的DMA传输。根据传输启动的触发方式不同,IDMA可分为握手信号控制的IDMA传输和CP命令控制的IDMA传输两种。下面分别介绍两种方式的特点。
1.1 握手信号控制的IDMA传输
握手信号控制的IDMA传输主要用于外设和内存之间的数据传输。每个IDMA通道都有3个握手信号用于传输握手控制:DMA请求信号DREQ[1"4]、DMA应答信号DACK[1"4]和DMA结束信号DONE[1"4]。
在这种方式下,PowerPC内核只需要参与IDMA通道初始化,之后的传输过程全部由CP按照通道参数设置和握手信号控制数据的收发,在最大程度上释放内核。握手信号控制的缺点在于:① SDRAM中的数据和MPC8260的数据同步比较复杂。② 每次发出请求信号后都要进行总线仲裁,并且在得到总线使用权之后一次只能够传输外设端口大小或者32位的数据,总线利用率低。③ 握手控制逻辑和时序比较复杂,加重了FPGA内部控制逻辑设计的负担。
虽然这种传输方式基本上不占用内核资源,但是由于总线带宽有限且利用率较低,所以在连续高速的通信条件下会造成内核长时间得不到总线使用权而一直处于等待状态。因此,握手信号控制的IDMA一般只适用于由外设发起的、数据不是太频繁的传输使用。
1.2 CP命令控制的IDMA传输
MPC8260的IDMA还可以通过向CP命令寄存器中写入START_IDMA命令进行内部触发。每次启动传输以后PowerPC内核就被释放,传输的源地址、目的地址和传输数据长度等参数由CP按照在IDMA通道初始化的信息控制执行。每次传输的最大长度为4 GB。
相比握手信号控制的IDMA传输,在这种方式下,PowerPC内核除了需要初始化IDMA通道以外还要以命令的形式启动每一次的传输,所以要占用多一些的内核资源。不过,在一次传输启动之后最多可以传输4 GB的数据,所以只要每次传输的数据长度比较长,内核写一个寄存器的额外开销就完全可以忽略不计。同时,由于内部命令触发方式不需要握手信号,不需要频繁地每几个字节就竞争一次总线控制权,所以这种方式的传输效率更高、传输速度更快。内部命令触发方式是以空间换时间——用前端大的缓冲区来换取传输速度的提升。
考虑到主控板上软硬件系统的瓶颈都在于总线带宽,而存储资源相对比较丰富,所以选择CP命令控制的IDMA传输作为数据流从FPGA到SDRAM的传输方式。
无线电 嵌入式 VxWorks 射频 FPGA Freescale 总线 DAC Xilinx 相关文章:
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 赛灵思详解新近推出的FPGA领域设计平台(12-16)
- 选择合适的FPGA千兆位收发器至关重要(10-28)
- Virtex-5推动超宽带通信和测距的发展(01-06)
- QPSK调制器的FPGA实现(03-22)
- 基于CPLD与单片机的高速数据采集系统(04-08)