• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于TMS320C6455的高速SRIO接口设计

基于TMS320C6455的高速SRIO接口设计

录入:edatop.com     点击:

2.3 SRIO基本读写和门铃操作

根据包的格式的不同,将事务划分成很多类型,其中最重要的类型有三种:NREAD(基本读操作)、NWRITE(基本写操作)、DOORBELL(门铃操作)。 通过这三种类型的组合就可以完成所有的存储器读写操作。在介绍读写操作之前,先介绍一下与SRIO有关的DMA操作。

在C6455上,SRIO数据传输和DMA传输是结合的。此DMA与EDMA方式是独立的,当进行SRIO传输时,DMA以自动方式启动。对与发送方来说,DMA将数据从L2 SRAM搬移到SRIO端口,对于接收方来说,DMA将数据从SRIO端口搬移到L2 SRAM内存。因此,在进行传输时,读写地址是直接显示在包里的,而且此地址就是被读写的DSP的地址。换句话说,DSP可以对另一片DSP的L2 SRAM直接进行读写操作。图4就是自动DMA的传输操作。

读写操作和门铃操作主要由图5中的7个寄存器进行控制,这些寄存器里的值会自动加入到包中。在SRIO总线上,每个SRIO设备都有一个相应的设备地址,设备地址好比一个SRIO设备的ID,用于区别不同的SRIO设备。当SRIO总线上的一个SRIO设备进行读写访问时,它发送的包就含有设备地址,只有自身设备地址与包的设备地址符合的SRIO设备才会对此次传输做出响应。SRIO Address MSB和SRIO Address LSB共同构成64-bit寻址,指示的是被访问SRIO设备的地址。开发板上只用到32-bit寻址,因此,SRIO Address MSB为0,SRIO Address LSB指示的是被访问的DSP的地址。DSP address指示的是本地DSP的地址。Byte_count这一项给出的是传输字节数,一次读写操作(可以是很多包)最多可以传送4Kbytes的数据。DestID是目标设备的ID号,用来区分SRIO总线上的设备。Drbll Info用于门铃事件,通过此位段的设置,从而向目标DSP产生中断。Packet Type用来指示此次传输的类型,例如NREAD、NWRITE和DOORBELL等。

图6是SRIO模块的NREAD、NWRITE和DOORBELL程序编写流程图。首先初始化SRIO端口,此过程主要需要配置和使能PLL模块,使能并配置接收模块,使能并配置发送模块,使能并配置中断模块。配置这些模块特别要注意的是使主DSP和从DSP的时钟模块工作在相同的波特率。初始化完成后,查询SRIO链路是否成功建立,如果SRIO链路没有建立,则重新初始化SRIO端口,直到SRIO链路建立为止。链路建立后就可以进行读写操作和门铃操作,两片DSP之间可以进行高速的数据传输。实际测试表明,DSP间的数据传输可工作于1x和4x模式,每种模式可以正常工作于每通道3.125Gbps 的传输速率。

3 C6455间的SRIO加载

3.1 C6455引导模式

在C6455的地址空间0x00100000到0x00107FFF集成了32K的内部ROM。此ROM中固化了一段 "boot loader"的引导代码,它主要作用是在DSP上电时,对DSP进行必要的配置,以便辅助HPI/PCI/SRIO等接口进行加载;另外,它还可以将代码从外部存储器读到内部L2 SRAM,以完成代码加载。

C6455复位和上电时的引导模式主要有:NO BOOT模式,主机引导模式,FLASH引导模式,主I2C引导模式,从I2C引导模式,SRIO引导模式。C6455的EMIFA端口引脚EMIFA [0:19]和ABA[1:0]被复用作配置引脚,和专用引脚PCI_EN一起构成C6455的硬件配置引脚。采用哪种引导模式,由复位或上电时采样管脚 BOOTMOOD[3:0]来决定[7-9]。表1是引导模式选择方式。

对被加载的从DSP来说,设置BOOTMOOD[3:0]=1x00,此时为SRIO引导模式,SRIO被配置成四个1x端口,由port0对从DSP进行加载。另外,差分晶振选择125M的时钟源。上电后,固化在从DSP内部ROM的"boot loader"对从DSP进行一些必要的初始化配置:

使能全局中断,SRIO的中断管脚被使能,使从 DSP可以接收来自主DSP的中断;

boot loader配置PLL1模块为15倍频,也就是使内核工作在750MHz;

boot loader初始化从 DSP的SRIO端口,使SRIO的时钟模块配置成1.25G。

主DSP对SRIO端口进行初始化配置,并将时钟模块配置成1.25G。此时主DSP与从DSP之间互相发送同步信息,直到链路建立。链路成功建立以后,主DSP执行NWRITE操作,将待加载程序装载到L2 SRAM内存中。代码装载完成后,执行门铃操作,向从DSP发送中断,从DSP收到中断后脱离"挂起"状态,从地址0x800000处运行程序,加载过程结束。图7便是SRIO引导过程。实测表明,主DSP通过FLASH加载完成后,可通过SRIO接口对从DSP完成加载。

作者:黄克武,吴海洲 北京理工大学 来源:电子测量技术

上一篇:实用的中小型企业VOIP解决方案
下一篇:校园VOIP解决方案

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图