0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TI TCI6488 3内核DSP的bootload程序

电子工程师 2018-04-06 08:18 次阅读

多核DSPBootloader代码加载方法,引言无线通信产业不断推进创新,像WCDMA、WiMAX、MIMO和4G都需要增强的性能.性能增强,提供更大通信带宽的同时意味着越来越大的数据流量。多内核DSP强大的处理能力,兼具FPGA的扩展特性和阵列优点以及DSP的相似性和

无线通信产业不断推进创新,像WCDMA、WiMAX、MIMO和4G都需要增强的性能.性能增强,提供更大通信带宽的同时意味着越来越大的数据流量。多内核DSP强大的处理能力,兼具FPGA的扩展特性和阵列优点以及DSP的相似性和效率。提供了一种高效、易于开发的解决方案,倍受设备商的青睐。而无线协议标准从2G的GSM到3G的WCDMA,冉到4G的LTE,其协议标准的不断更新,以及运营商、设备商对低硬件成本的要求,需要实现一种平滑的协议标准软升级方案,即不改变硬件平台就可实现协议标准的升级。TI公司推出的3内核DSP芯片TCl6488以其强大的数据处理能力,同时支持多种代码加载方式,在满足数据处理要求的同时,支持网络式代码加载,正迎合了这种软升级需求。

1 协议介绍

TI公司推出的DSP芯片TCl648718 (Faraday)具有3个内核,每个内核工作频率均为1GHz.其支持的boot load模式有12C EEPROM、EMAC(以太网口)、SRIO(Serial Rapid IO.即串行快速10)i种模式[3].其中EMAC支持IOM/IOOM/I 000M bit/s传输速率,SRIO支持1.25G/2.5G/3.125G bit/s传输速率.以太网口EMAC支持IPV4,因此可以实现远程、快速的加载代码.SRIO支持内存代码的直接读写,外部主机可以将DSP内存视为本地内存进行直接的读写.SRIO boot load模式时,外部主机直接写DSP本地内存.其3.125G biffs的线上速率,可以达到2.5G bit/s的传输带宽,效率高达80%,加载代码速度极快.采用EMAC和SRIO相结合的方式可以实现一点到多点的快速代码加载。

1.1 EMAC boot load传输协议

以太网口EMAC支持的拓扑结构有星型、总线型、树型、混合型.其boot load帧格式分为以下几个部分分别讨论:DIX Ethernet、IPV4、Boot Table Frame. Header、Boot Table Frame. Payload。如表1所示。

(1)DIX Ethenet:14 bytes

该部分占用14 bytes,分别为6 byte8的DMAC。目的MAC地址、6 bytes的SMAC.源MAC地址和2 bytes的类型参数Type.该部分固定为Ox0080.目的MAC地址(DMAC)为DSP芯片自身的MAC地址.源MAC地址(SMAC)为主机MAC地址。

(2)IPV4

支持的IP协议类型为IPV4,可选长度为20 bytes或84bytes.本文中采用20 bytes。

1.2 SRIO协议

TCl6488支持的SRIO协议1.2版本link rate速率为1x, 2x,4x。即1.25G,2.5G,3.125G bit/s.支持的拓扑结构有星型、环型等。

SRIO协议规定有两种传输方式:Direct IO与Message方式.当DSP处于SRIO boot load模式时,利用外部引脚进行配置其NODE ID,根据配置的不同,采用Direct IO方式对不同NODE ID的DSP内存直接进行读写,将代码直接写入到DSP内存.类似于外部主设备将DSP内存视为自身内存进行写操作,以此完成boot load.当代码加载完毕时发送Doorbell中断到不同NODE ID的DSP主核(即核0).DSP立即从boot模式跳转到正常模式。执行加载的代码。

2 现有方案分析

代码加载主要依靠DSP芯片的各个接口实现.TI公司C64x系列主要接口有12C、HPI、EMIF等接口,C64x+系列主要接口有12C、EMAC、SRIO等。

I2C传输速率为lOkbps到400kbps,外接EEPROM,常用于固化代码的boot load,不利于升级.

HPI接口有效带宽往往最多只能达到20~30Mbps.操作较复杂,且不易组网.在多核DSP系列里已经去掉HPI接口.

EMAC接口支持10M/100M/1000Mbps三种速率,支持总线形、星形拓扑组网结构.

SRIO接口支持1.25G12.5G/3.125G bps三种速率,支持星形、环形、U形菊花链等拓扑结构.

利用EMAC与SRIO结合的方式可以实现基于IP、可远程控制的局部传输网络,组网灵活可控.

3 原理框图

利用DSP EMAC接口支持IPV4的网络特性,以及SRIO接口使DSP间可以形成的U形菊花链或星形拓扑结构,可以灵活组网。原理框图如图I所示。其中基带处理板与主控板之间由背板连接,主控板通过网线与交换机或路由器连接。主控板与基带板之间组建局域网,由主控板分配IP。远程PC可以通过主控板IP访问到任何一块基带板的CPU。对CPU进行操作,可以对任意一块基带板上的DSP进行代码加载。


4 加载流程

流程图如图2所示。CPU加载DSPl的详细过程说明如下:基带板上电后主控板为背板上各槽位上的基带板的CPU分配IP地址.CPU通过EPLD加载自身程序,与主控板通过SGMII接口获取自身IP地址。远程PC机telnet登录到CPU,下发命令加载CPU底层驱动程序;CPU底层驱动加载成功后,远程Pc下发加载DSP程序命令.以加载DSP1为例,详细说明加载DSP1的过程.CPU加载DSP1时首先给该DSP1复位获取DSP1的MAC地址,成功获取到DSP1的MAC地址后,利用ftp协议从远程PC上获取DSP1的代码,将DSP1的代码存到CPU的内存.此时DSP1一直处于boot load的EMAC加载模式.CPU将DSP1的代码根据EMAC加载协议往DSP1发送代码.当发送完毕代码后,向DSP1发送一包长度为0的加载代码,作为结束包.DSP1根据EMAC加载协议,当收到该包后则从加载模式跳转为正常模式,PC指针从OxOOS00000开始运行.因此对于DSP而言,Ox00800000地址开始的一段空间,必须存放中断向量表.

否则程序将不会正确运行.此时DSP的3个内核同时从Ox00800000开始运行。

加载DSP2至加载DSPn时,首先由CPU根据ftp协议从PC端获取DSPk(k=2?3.n)的代码.根据EMAC发送协议,将DSPk代码发送到DSP1.DSP1收到DSPk的代码后,根据SRIO加载协议加载DSPk的代码.DSPk代码加载完毕后,DSP1向DSPk发送一个SRIO中断。标志加载结束.DSPk响应该SRIO中断。从SRIO加载模式跳转到正常模式,开始从Ox00800000地址开始运行.整个加载过程结束。

5 结束语

通过方案的比较,选择了易于组网,且可控、方便,利于软升级的方案.很方便的设计了TI TCI6488 3内核DSP的bootload程序.完成了DSP系统自举加载.按照该设计思路编制的boot load程序已在WCDMA基站的基带处理板中得到应用,DSP系统能很好的复位及快速、方便的自举加载,更换版本容易,系统运行稳定可靠。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7681

    浏览量

    344331
收藏 人收藏

    评论

    相关推荐

    使用bootload启动,app程序采用ucosiii,接收发送数据n次后app程序就进入了HardFault_Handler的原因?

    使用bootload启动,只要在bootload或者app运行程序中设置SCB->AIRCR后,app程序采用ucosiii,接收发送数据n次后(接收发送采用中断),app
    发表于 04-15 06:34

    stm32h745 bootload升级老跳转不了怎么解决?

    bootload升级老跳转不了 需要注意些啥呀
    发表于 03-22 08:06

    CCES烧写adsp-21589,程序烧写进FLASH重新上电没有正常BOOTLOAD是为什么?

    CCES烧写adsp-21589的问题困扰我好多天了。可用的资料太少,能交流的人太少。目前的问题,程序烧写进FLASH,但是重新上电没有正常BOOTLOAD。思来想去,CCES设置有几处不是很明白
    发表于 11-28 08:00

    PIC单片机的BootLoad文件在哪里存放着?

    PIC单片机的BootLoad文件在哪里存放着,查找到实在C18中,但是没有在安装文件找到,请问有知道的吗
    发表于 11-02 06:07

    使用M3内核MCU的库和AT Pack造成hardfault的解决方案

    使用M3内核MCU的库和AT Pack造成hardfault使用其他M3 内核MCU 的库,AT32 的pack 文件,程序会进入hardf
    发表于 10-23 07:00

    TIDSP烧写方法介绍

    由于 TIDSP 烧写要比单片机略微复杂,很多客户对烧写不是很熟悉,所以我们将烧写方法做一个简单的介绍。DSP 一般采用的是在线烧写方法,即在电路板上有连接的 JTGA接口。
    发表于 10-07 14:22 732次阅读
    <b class='flag-5'>TI</b>、<b class='flag-5'>DSP</b>烧写方法介绍

    使用APROM (IAP) 模式,ICP下载无法启动到主程序如何解决?

    使用的是ARPOM(IAP)模式, 0-0x3800 是BOOTLOAD 下载程序APP1,从0x3800 开始是MainApp 如果使用KEIL单独下载两个文件是可以正常从BOOTLOAD APP 切换到 MainAPP 但
    发表于 08-18 15:49

    TI DSP实时操作系统

    DSP/BIOS™是一个可定标的实时作业核心(kernel),特地为TMS320C5000™ 及 TMS320C6000™ DSP 的平台所设计。 DSP/BIOS 已被数以千计的客户研究证实
    的头像 发表于 08-07 16:55 648次阅读

    TIDSP烧写方法介绍

    由于 TIDSP 烧写要比单片机略微复杂,很多客户对烧写不是很熟悉,所以我们将烧写方法做一个简单的介绍。DSP 一般采用的是在线烧写方法,即在电路板上有连接的 JTGA接口。烧写工具是用
    的头像 发表于 08-02 10:23 944次阅读
    <b class='flag-5'>TI</b>的<b class='flag-5'>DSP</b>烧写方法介绍

    linux内核中的driver_register介绍

    向linux内核注册驱动由driver_register()完成。它将驱动程序的信息添加到内核的驱动程序列表中,使得内核能够在需要时与该驱动
    的头像 发表于 07-14 09:17 1209次阅读
    linux<b class='flag-5'>内核</b>中的driver_register介绍

    N76E003官方的ISP Bootload怎么还没有放到ICP软件中去?

    N76E003 已出了一年多了吧! 新唐其的IC ARM-M0都有ISP Bootload 了. N76E003 还没有出来. BBS上要人传的 \"N76E003-ISP方式烧录程序资料\", 写入后用最新的2.04, 2.00的ISP软件根本就边连不上.
    发表于 06-26 08:34

    N76E003 BOOTLOADER问题求解

    代码运行在LDROM,向APROM烧代码,修改BS位,然后使能软件复位,但是程序还是从LDROM启动了,之前搞过M0的BOOTLOAD,修改BS后还得改一个复位向量的地址,不知道是不是这里
    发表于 06-25 08:42

    ZYNQ(FPGA)与DSP之间GPIO通信实现

    功能简介实现DSP与ZYNQ PL端之间GPIO接口传输功能。DSP与ZYNQ PL端之间有3根GPIO信号相连,如下原理图标注所示: DSP示例通信
    发表于 06-16 16:02

    什么是Linux内核 Linux内核体系结构

    如果Windows已经安装了所有可用的驱动程序,而您只需要打开所需的驱动程序怎么办?这本质上就是内核模块为Linux所做的。内核模块,也称为可加载
    发表于 06-01 09:59 910次阅读
    什么是Linux<b class='flag-5'>内核</b> Linux<b class='flag-5'>内核</b>体系结构

    如何使用RT685的DSP搭配Zephyr OS?

    找到 DSP 部分的任何内容。 那么,我如何将 DSP 内核与 Zephyr 一起使用呢?是否可以在没有 Xplorer 的情况下编译 DSP 应用
    发表于 05-18 08:04