首页> 中国专利> 一种基于DSP硬件平台的IEEE1394数据发送/接收方法

一种基于DSP硬件平台的IEEE1394数据发送/接收方法

摘要

一种基于DSP硬件平台的IEEE1394数据发送/接收方法,涉及基于IEEE1394标准的数据传输方法。它解决了现有IEEE1394高速传输接口的通用性不强的问题。本发明的DSP硬件平台中的FLASH存储器用于扩展DSP的数据存储空间;DSP用于控制数据发送/接收过程;链路层控制器用于实现DSP与物理层控制器的连接和完成通信协议链路层的支持和管理,物理层控制器用于连接链路层控制器和IEEE1394传输线缆。本方法采用DSP作为主控单元,采用高速处理和实时控制电路使DSP与IEEE1394协议层及物理层控制器获得直接连接。该方法通过直接控制底层处理器,获得更快的处理能力,适合高速数据流传输的应用场合。

著录项

  • 公开/公告号CN101493802A

    专利类型发明专利

  • 公开/公告日2009-07-29

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN200910071500.3

  • 发明设计人 王岩;

    申请日2009-03-06

  • 分类号G06F13/38(20060101);G06F9/445(20060101);G06F9/48(20060101);

  • 代理机构23109 哈尔滨市松花江专利商标事务所;

  • 代理人张宏威

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2023-12-17 22:18:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-04-24

    未缴年费专利权终止 IPC(主分类):G06F13/38 授权公告日:20110824 终止日期:20120306 申请日:20090306

    专利权的终止

  • 2011-08-24

    授权

    授权

  • 2009-09-23

    实质审查的生效

    实质审查的生效

  • 2009-07-29

    公开

    公开

说明书

技术领域

本发明涉及到一种基于IEEE1394标准的数据传输方法。

背景技术

IEEE1394数据传输标准是一种高速串行数据传输标准,以下简称 IEEE1394,可以提供400M/S-800M/S的高速传输,目前应用该标准的数据 传输方法和产品都是以通用计算机(PC机)或视频影像设备(数码摄像机等) 为基础和应用目标的,缺少通用性,且在工业控制等专业领域无法实现与各类 专业设备的接口。

发明内容

为了解决现有的IEEE1394高速传输接口的通用性不强的问题,本发明提 供了一种基于DSP硬件平台的IEEE1394数据发送/接收方法,

本发明所述的方法是基于下述DSP硬件平台实现的,该DSP硬件平台包 括FLASH存储器、链路层控制器、物理层控制器、DSP和IEEE1394接口, 其中FLASH存储器是DSP的外部存储器,用于扩展DSP的数据存储空间; 所述DSP用于控制数据的传输/接收过程;链路层控制器用于实现DSP与物理 层控制器的连接,并完成通信协议链路层的支持和管理,物理层控制器用于连 接链路层控制器和IEEE1394传输线缆;

基于上述DSP硬件平台的IEEE1394数据传输方法包括:

用于DSP上电程序自引导的步骤;

用于系统及总线初始化的步骤;

用于分配DSP内各存储空间的地址范围(包括起始地址、地址长度)的 步骤;

用于IEEE1394数据包发送/接收的步骤;

其中,用于系统及总线初始化的步骤中进一步包括:

用于设置DSP的工作时钟频率为160MHz的步骤;

用于设置输出时钟频率为40MHz的步骤;

用于初始化并分配中断向量表的步骤;

用于配置地址空间上的等待周期的步骤;

用于初始化链路层控制器内部寄存器和物理层控制器的内部寄存器的步 骤。

本发明所述的方法能够实现全功能的IEEE1394数据传输,并能够方便的 与各类专用嵌入式工业系统设备连接,同时能够在IEEE1394传输协议底层操 作传输功能,实现高速数据传输。

说明书附图

图1是本发明的DSP硬件平台的结构示意图;图2是本发明的DSP与链 路层控制器的连接示意图;图3具体实施方式二所述的DSP与FLASH存储器 的连接示意图;图4是IEEE1394链路层控制器和物理层控制器的连接示意图; 图5是具体实施方式一中所述的用于程序DSP上电自引导的步骤的具体过程。

具体实施方式

具体实施方式一:本实施方式所述的基于DSP硬件平台的IEEE1394数据 发送/接收方法的DSP硬件平台包括FLASH存储器、链路层控制器、物理层 控制器、DSP和IEEE1394接口,其中FLASH存储器是DSP的外部存储器, 用于扩展DSP的数据存储空间;所述DSP用于控制数据的传输/接收过程;链 路层控制器用于实现DSP与物理层控制器的连接,并完成通信协议链路层的 支持和管理,物理层控制器用于连接链路层控制器和IEEE1394传输线缆;

基于上述DSP硬件平台的IEEE1394数据传输方法包括:

用于DSP上电程序自引导的步骤;

用于系统及总线初始化的步骤;

用于分配DSP内各存储空间的地址范围(包括起始地址、地址长度)的 步骤;

用于IEEE1394数据包发送/接收的步骤;

其中,用于系统及总线初始化的步骤中进一步包括:

用于设置DSP的工作时钟频率为160MHz的步骤;

用于设置输出时钟频率为40MHz的步骤;

用于初始化并分配中断向量表的步骤;

用于配置地址空间上的等待周期的步骤;

用于初始化链路层控制器内部寄存器和物理层控制器的内部寄存器的步 骤。

本实施方式中的用于IEEE1394数据包发送/接收的步骤中进一步包括:

用于把要发送/接收的数据打包成IEEE1394数据形式的步骤;

用于将打包后的数据通过链路层和物理层控制器发送/接收的步骤。

本实施方式中的用于系统及总线初始化的步骤中,将DSP的工作时钟设 置为160MHz,以确保IEEE1394传输带宽的实现。

在用于系统及总线初始化的步骤中所述的地址空间上的等待周期要根据 所选择硬件存储器的类型来配置,最高可设置为零等待状态。

本实施方式中的用于系统及总线初始化的步骤的实现方法可以采用通过 DSP加载存储于FLASH存储器中的程序,该程序控制DSP读写和改变相应的 DSP、链路层控制器的内部寄存器和物理层控制器的内部寄存器,以实现DSP 及IEEE1394总线的初始化。

本实施方式中的用于分配DSP内各存储空间的地址范围的步骤中,可以 采用使DSP的MP/MC引脚为低电平,同时在系统初始化时设置PMST寄存 器的OVLY位等于1,DROM位等于0,编写相应的CMD文件,使DSP空间 得到分配。

本实施方式中的用于IEEE1394数据包发送/接收的步骤中,可以采用通 过程序控制DSP操作链路层和物理层控制器的相应寄存器实现。

本实施方式中的用于DSP程序上电自引导的步骤,可以通过硬件电路设 计,使预先保存在存储器中的程序自动加载到DSP中来实现的,其具体过程 参见图5:

在上电之后,判断是否有非法读写的中断请求;如果有,则启动HPI-8引 导模式,否则判断是否有数据发送中断请求;如果有,则启动串行EEPROM 引导模式,否则读取I/O空间FFFFH地址的信息,如果所述信息是正确的并 行引导方式的信息,则启动并行EEPROM引导模式,否则,读取数据空间的 FFFFH地址的信息,如果所述信息是正确的并行引导方式的信息,则启动并 行EEPROM引导模式,否则采用其它引导模式。

具体实施方式二:本实施方式是具体实施方式一所述的基于DSP硬件平 台的IEEE1394数据发送/接收方法的一个具体实施例,本实施方式的DSP硬 件平台中的DSP采用TMS320VC5416,FLASH存储器采用SST39VF400,链 路层控制器采用TSB12LV32,物理层控制器采用TSB41AB3,它们的连接关 系为:

DSP与FLASH存储器的连接参见图3:DSP的外部数据空间选通信号/DS 连接FLASH存储器的使能引脚/CE,DSP的存储器选通信号/MSTRB与DSP 的读写信号R/W相或后输出给FLASH存储器的写使能信号/WE,DSP的R/W 取反后与DSP的存储器选通信号/MSTRB相或输出给FLASH存储器的使能引 脚/OE,FLASH的地址总线DA[0:14]与DSP的地址线总线DA[0:14]相连接, FLASH的地址线A[15:17]接地。

本实施方式中的DSP与FLASH存储器连接方式,使FLASH存储器的地 址映射到DSP的数据空间,并将DSP中的数据空间的前32K安排在片内的存 储器中。

DSP与链路层控制器的连接参见图2,使DSP采用中断的方式监控总线 运行和接收IEEE1394数据包,将链路层控制器的片内地址映射到DSP的I/O 空间。具体连接方式可以采用下述连接方式:链路层控制器的内部寄存器和内 置FIFO的7根地址线MA[0:6]连接DSP的地址线DA[0:6],所述链路层控制 器的数据线MD[0:15]连接DSP的数据线D[0:15],链路层控制器的/MCS引脚 连接DSP的/IOSTRB引脚,即:将链路层控制器的片内地址映射到DSP的I/O 空间,链路层控制器的BCLK引脚连接DSP的外部接口时钟引脚CLKOUT, 该接口时钟最大可达60MHz,链路层控制器的接口配置引脚MB接地,链路 层控制器的COLDFIRE引脚接地,链路层控制器的接口模式配置 MCMODE/SIZ1引脚接3.3V高电平,链路层控制器的/MWR引脚连接DSP的 读/写控制R/W引脚,链路层控制器的/TEA引脚连接DSP的第二外部中断引 脚/INT2,用于通知DSP该接口发生非法的读写访问,链路层控制器的/INT 引脚连接DSP的第三外部中断引脚/INT3,链路层控制器的DIRECT引脚接高 电平。

本实施方式中的DSP与链路层控制器的连接方法能够保证DSP对 IEEE1394总线的直接控制。链路层控制器内部含有接口,并允许DSP配置和 控制寄存器组(CSR)、异步传送FIFO(ATF)、等时接收FIFO(GRF)进行 数据交换。DSP通过/IOSTRB引脚向链路层控制器输入接口访问周期开始的 应答信号,用来向链路层控制器通知访问的开始,在DSP接口的数据传输都 同步BCLK信号是上升沿。

链路层控制器与物理层控制器的连接,物理层控制器(PHY)和链路层控 制器不经过电隔离相连,并且链路层控制器的接口模式设置成握手 (Handshake)模式,链路层控制器采用内部时钟信号,具体连接关系参见图 4。

链路层控制器的数据线D[0:7]连接物理层控制器(PHY)的数据线D[0:7], 物理层控制器(PHY)的链路层开启信号C/LKON引脚和链路层控制器的 LINKON引脚之间串联一个1k欧的电阻,物理层控制器(PHY)的PD引脚 接地,以保证在复位期间物理层控制器的电源不关断,物理层控制器(PHY) 的Ctl[0:1]连接链路层控制器的Ctl[0:1],构成了双向控制总线,以控制物理层 控制器(PHY)与链路层控制器之间的信息数据流,链路层控制器的Lreq引 脚连接物理层控制器的Lreq引脚,链路层控制器的Lps引脚连接物理层控制 器的Lps引脚,链路层控制器的接口模式配置引脚MCMODE/SIZ1接3.3V高 电平,链路层控制器的COLDFIRE引脚接地,链路层控制器的DIRECT引脚 接高电平,链路层控制器的复位引脚连接系统复位信号端,物理层控制器 (PHY)的/ISO引脚接高电平。

系统时钟SYSCLK采用49.152MHz,所有的控制信号和数据信号都被同 步采样于系统时钟SYSCLK的上升沿。物理层控制器(PHY)与链路层控制 器之间的数据线D[0:7]构成了双向数据总线,用来传送物理层控制器(PHY) 与链路层控制器之间的状态信息、控制信息、数据包。链路层控制器的Lreq 引脚连接物理层控制器(PHY)的Lreq引脚,用来发送串行服务请求,以便 访问总线来进行包发送、读写物理层控制器(PHY)的寄存器以及加速控制。 链路层控制器通过Lps控制物理层/链路层接口,Lps表明链路层控制器的电源 状态,并可用来复位PHY-LLC接口或禁止SYSCLK。通常由链路层控制器的 来控制Ctl[0:1]和D[0:7]双向总线,只有链路层控制器被物理层控制器(PHY) 允许才能驱动这些总线。

物理层控制器中的CPS引脚被用来检测线缆电源,对于安装了六针 IEEE1394连接器L的节点(如果电源等级不为000),CPS引脚必须通过一个 390K欧电阻与线缆电源端V1相连,使节点不使用线缆电源。当某个IEEE1394 通讯端口不使用的时候,其TPB+和TPB-引脚连到一起并接地,TPBIAS通过1μF 的电容接地,TPA+和TPA-悬空。FILTER0和FILTER1作为内部PLL锁相环的 滤波器电容输入端,0.1μf的电容连到这两个引脚作为滤波器的外部器件。物 理层控制器采用24.576MHz的晶振,在晶振的每个引脚配置一个22pf的电容, 用于产生芯片内部时钟。通过电源级别配置引脚(PC0-PC2)可以编程自标示 包里的电源级别域(PWR),来向总线上的其他节点通知该节点的电源要求。

链路层控制器的接口模式配置引脚MCMODE/SIZ1接3.3V高电平,使该 接口为握手(Handshake)模式。链路层控制器的CONTNDR引脚在硬件复位 时默认为输入,接高电平用来告诉链路层该节点在IEEE1394总线上是等时资 源管理器的竞争者,然而在上电复位之后,这个管脚的输出电平用来反映链路 层控制寄存器CTNDRSTAT位的值。在本实施方式中,所述COLDFIRE引脚 接地表示采用的不是冷线微控制器。

由于在系统工作时,CCD摄像机不能做为等时资源管理器,所以本节点 理所当然竞争成为等时资源管理器。将链路层控制器的DIRECT引脚置高, 说明物理层控制器和链路层控制器之间不经过电隔离连接。链路层控制器的 /RESET连接系统复位信号端。链路层控制器的STAT[0:2]为通用的状态输出 信号端,令其悬空。链路层控制器的TESTMODE引脚在非测试环境下接低。 链路层控制器的CYSTART引脚为等时循环开始指示输出端,令其悬空。当结 点作为等时资源管理器时该节点必须实现8KHz的等时循环时钟,用作等时循 环开始触发信号,所述CYCLEIN引脚可以外接8KHz的时钟信号作为等时循 环时钟,但在本实施方式中通过对链路层控制器内部的计数器分频来实现 8KHz的等时时钟信号,所以将该引脚接高电平。由于本实施方式的链路层控 制器的数据转移功能不需要实现,所以其相关的引脚均悬空,即DMD[0:15], DMCLK,DMDONE,DMERROR,DMPRE,DMREADY,DMRW,PKTFLAG 悬空。在每个电源引脚附近都接一个104作为去藕电容,以抗干扰。

物理层控制器(PHY)和链路层控制器之间不采用电隔离,二者共地。为 了减少在系统时钟SYSCLK信号线上的电磁干扰和信号反射,需要连接一系 列的衰减电阻,设计其为0欧。由于本系统传输带宽设计成400Mbps, TSB12LV32和TSB41AB3均支持最大400Mbps的传输速度,物理层控制器通 过链路层开启信号控制链路层控制器的上电并激活。所述链路层开启信号是一 个周期大约为163ns(8个IEEE1394系统时钟周期)的方波。一旦Lps输入终 端激活,则链路层开启信号置低。物理层控制器的C/LKON引脚和链路层控 制器的LINKON引脚之间串联一个1k欧的电阻,用来在硬件复位期间防止可 能的总线竞争,该竞争状态可由自标识包指示。

基于本实施方式所述的DSP硬件平台的IEEE1394数据传输方法中的:

用于程序DSP上电自引导的步骤;它进一步包括:

用于设置DSP的工作时钟频率为160MHz的步骤;

用于设置输出时钟信号CLKOUT为40MHz的步骤;

用于初始化并分配中断向量表的步骤;

用于配置地址空间上的等待周期的步骤;

用于初始化链路层控制器TSB12LV32内部寄存器和物理层控制器 TSB41AB3的内部寄存器的步骤,该步骤采用DSP对链路层控制器寄存器进 行设置,设置目的为对IEEE1394传输方式、传输速度等进行初始化配置。在 设置寄存器之前,首先要清空链路层控制器的中断寄存器,然后设置接收自标 示包中断,DSP对链路层控制器设置;该过程是IEEE1394总线初始化中自标 示的重要过程,该过程中每一个IEEE1394设备都要对自己进行声明,数据通 过自标示包传输,采用中断形式接收。设置接收等时数据寄存器,为IEEE1394 等时数据传输做准备。清空FIFO寄存器。

链路层控制器的控制寄存器的设置直接决定了总线的工作性能,它作为一 个32位的寄存器在链路层控制器的内部地址为08H,初始化时设定其值为 C3FD0A0EH。

本实施方式所述的链路层控制器的寄存器的每个位的含义参见表1。

表1:链路层控制器的控制寄存器配置

  位数   位名   说明   0   FISHERR   置1,当检测到接收数据包CRC校验错误时禁止   其存入GRF

  位数   位名  说明   1   RXSID  置1,允许自标识包存入GRF   2   FULLSID  置0,只允许自标识包存入GRF,其反禁止存入   3   PHY_PKT_ENA  置0,除自标识包外拒绝所有的物理层数据包,因  为在本系统中不需要CCD发送物理层数据包   4   BSYCTRL  置0,正常忙控制   5   TXEN  置0时,发送器不仲裁并发送数据包,总线复位  后TXEN清零,在发送器重新工作前须置该位   6   RXEN  置1,接收使能,不受总线复位的影响   7   ENA_ACCEL  置1,根据IEEE1394a-2000协议,加速仲裁使能   8   ENA_CONCAT  置1,根据IEEE1394a-2000协议,包串联发送使  能   9   ENA_INSERT_IDLE  置1,根据IEEE1394a-2000协议,插入空闲周期   10   RSTTX  置1,发送器同步复位,该位自清零   11   RSTRX  置1,接收器同步复位,该位自清零     12     CTNDRSTAT  竞争状态位,13位CTNDRISIN置1时,该位一  直反映CONTNDR引脚状态。由于物理层满足  IEEE1394a-2000协议,可以通过设置物理层寄存  器来设置节点的竞争状态。   13   CTNDRISIN  置1,CTNDRSTAT位反映CONTNDR引脚状态   14   RESERVED  保留   15   BUSNRST  置1,总线复位时34H的总线复位寄存器的总线  标识域为3FFH   16-17   BDIV0,BDIV1  设为00H,将BCLK时钟信号16分频作为Lps  信号发给物理层   18-19  00H     20     CYMAS  置1,当本节点成为根节点时,使能循环管理器功  能。当循环定时器的循环计数域增加时发送循环  开始包   21   CYSRC  置0,利用cycle_offset field溢出驱动cycle_count  field计数,从而产生8KHz的循环时钟   22   CYTEN  置1,使能cycle_offset field计数   23   CLSIDER  置1,24-27位的自标识错误代码清空,该位自清  除   24-27   SID ERROR CODE  自标识错误代码

  位数   位名  说明   28   CMAUTO  置1,如果在总线复位后本节点成为根节点则自动  使能CYMAS   29   IRP1EN  置1,等时通道1使能   30   IRP2EN  置1,等时通道2使能   31   RESERVED  保留

DSP对链路层控制器的运行状态的监控主要是通过链路层控制器内部的 中断机制来实现的。通过在系统运行的不同阶段设置链路层控制器的中断屏蔽 寄存器允许相应的中断信号输出给DSP,并执行相应的中断服务程序。链路层 控制器内部含有的中断和中断屏蔽寄存器,其地址分别为0CH和10H。中断 屏蔽寄存器某位置1且INT位为1,允许相应中断发生,向中断寄存器写1, 可清空相应中断位。本实施方式的链路层控制器的中断/中断屏蔽寄存器中的 各位具体含义参见表2。

表2:链路层控制器中断/中断屏蔽寄存器配置

  位数   位名   说明   0   INT   对于中断寄存器,是所有中断位的或   1   PHINT   置位时,PHY经物理层接口发中断   2   PHRRX   置位时,物理层寄存器的值已经传给12LV32的物理层   访问寄存器(24H)   3   PHRST   置位时,一个物理层-链路层配置开始即总线复位发生     4     SELFIDEND   置位时,自标示结束,位于34H的总线复位寄存器值   有效,如果08H寄存器的RXSID置1,则此时自标识   包进入GRF   5   ATSTARTED   置位时,表示异步传输开始,异步数据包将要从ATF   传送出去   6   RXGRFPKT   置位时,GRF接收到完整的数据包   7   CMDRST   CSR寄存器复位请求   8   DMERROR   数据转移端口错误中断,本系统不用   9   RXDMPKT   数据转移端口接收中断,本系统不用   10   SELFIDER   自标示包错误中断,如在自表示包中错误被链路层检测   到置该位   11   LINKON   当linkon输入端检测到一个link-on脉冲时置该位     12     ATSTK   置位时,发送器在异步发送-FIFO接口检测到无效数   据,如果异步包的第一个四字节没被写进   ATF_frist&update或者ATF下溢,该中断发生,进入该

  位数   位名   说明   中断时任何异步包均不能被发送,直到ATF被清空,   可通过设置FIFO状态寄存器(30H)ATFCLR位来清   空ATF。等时包不受该中断的影响   13   ATFEMPTY   ATF空中断,置1时,ATF空   14   SNTRJ   置位时,说明GRF溢出,接收器自动对任何寻址到本   节点的数据包发出忙确认   15   HDRERR   头错误,置位时,接收器检测到一个寻址到本节点的数   据包包头CRC错误,该包被自动放弃   16   TCERR   置位时,发送器在FIFO-发送器接口检测到要发送的   数据包含有错误的事务代码   17   DMACKERR   DM端口确认错误   18   FIFOACK   FIFO确认中断,当从ATF发出的数据包的确认包被收   到时置该位   19   MCERROR   非法读写微处理器器接口时,置该位   20   CYSEC   循环秒计数器运行时,置该位   21   CYST   循环开始中断,发送器每发送一个循环开始包置该位   22   CYDNE   置位时,说明在循环开始包发送后一个子事务间隔被检   测到,指示一个等时循环的完成   23   RESERVED   保留   24   CYLST   循环丢失中断,由于本节点是循环控制器,该中断不会   产生   25   CARBF   循环仲裁失败中断,置位时,发送一个循环开始包的仲   裁失败   26   ARBGP   置位时,总线上出现仲裁复位间隔   27   SUBGP   子事务间隔中断   28~30   RESERVED   保留   31   IARBFL   置位时,等时仲裁失败

软件总线复位后,IEEE1394总线开始树标识和自标识。当自标识结束之 后,自标识包进入GRF,通过数据包接收中断DSP可以读取自标识包,同时 DSP通过访问链路层控制器的总线复位寄存器(地址34H),可获得复位后的 总线信息,本实施方式所述的链路层控制器总线复位寄存器的参数设置为: 82C1FFC1H。本实施方式所述的链路层控制器的总线复位寄存器的各位的说 明参见表3。

表3:链路层控制器的总线复位寄存器

位数  位域名称   数据  说明 0  NRIDVAL   1H  NODEID,IRM NODE ID,NODE COUNT,  ROOT INFORMATION位域值有效 1  REV   0H  保留 2~7  NODECNT   2H  总线中节点个数 8  ROOT   1H  根节点标志,说明本节点是根节点 9  CONTENDER   1H  CONTENDER引脚的状态 10~15  IRMNODEID   1H  等时资源管理器的物理标识 16~25  BUS NUMBER   3FFH  总线标识 26~31  NODE NUMBER   1H  本节点的物理标识

设置DSP内部的PMST寄存器的OVLY位等于0,将数据地址空间中的 8000H~FFFFH映射到片外;

设置DSP的软件等待周期寄存器(SWWSR),使访问外部数据空间时加 入7个软件等待周期;

本实施方式的初始化模块中,将数据地址空间中的8000H~FFFFH映射到 片外,使得当DSP寻址片外数据空间的8000H~FFFFH区间时,就可以访问到 Flash的片内地址空间的0000H~7FFFH区间内的数据,因此FLASH的前32K 对DSP是透明的可以用来存储程序。

本实施方式中的DSP与外部器件的接口时钟CLKOUT为40MHz,其周 期为25ns,通过设置DSP的软件等待周期寄存器,使访问外部数据空间时加 入7个软件等待周期,以解决时序匹配问题。

在用于分配DSP内各存储空间的地址范围(包括起始地址、地址长度) 的步骤中,首先使DSP的MP/MC引脚为低电平,同时在系统初始化时设置 PMST寄存器的OVLY位等于1,DROM位等于0,编写相应的CMD文件, 使DSP空间得到分配。

设置DSP的PMST寄存器的OVLY位等于1,DROM位等于0,然后将 程序空间存储空间分成128页,每页64K,具体分配原则如下:

0x0000~0x007F:保留;

0x0080~0x7FFF:DARAM0~3;

0x8000~0xBFFF:片外;

0xC000~0xFFFF:片内掩模ROM,含自引导程序以及其它应用代码;

0xFF00~0xFF7F:保留;

0xFF80~0xFFFF:片内中断向量表;

DARAM0~3始终安排到每页的前32K;

DARAM4~7地址为0x018000~0x1FFFF;

SARAM0~3地址为0x028000~0x2FFFF;

SARAM4~7地址为0x038000~0x3FFFF;

剩余的为外部程序空间;

数据空间的设置为:

0x0000~0x005F:存储器映像寄存器区(MMR);

0x0060~0x007F:数据暂存区;

0x0080~0x7FFF:DARAM0~3;

0x8000~0xFFFF:片外,对应FLASH芯片39VF400A的0x0000~0x7FFF 地址。

I/O空间的设置为:对应于12LV32的内部寄存器和FIFO地址空间。

在程序自引导完成之后,可利用置DROM位为1,将该空间分配给片内 的DARMA4~7从而扩大了片内的数据存储空间。

用于IEEE1394数据包发送/接收的步骤中数据发送的过程为:

将待发送的异步数据包的第一个四字节写入12LV32的50H和52H地址;

将所述待发送的异步数据包的第二个至第N-1个四字节依次写入54H和 56H地址;

将所述待发送的异步数据包的第N个四字节写入58H和5AH地址;

所述待发送的异步数据包通过链路层控制器的CRC校验,

如果物理层控制器检测到总线上出现子事务间隔并仲裁总线,并仲裁成 功,则物理层控制器的发送器将所述待发送的异步数据包发送到1349数据总 线上。

数据接收的过程为:

接收到的数据包通过链路层控制器的CRC校验;

链路层控制器中的GRF有足够的空间存放所述接收到的数据包(不包括 CRCS校验码);

链路层控制器中的硬件触发接收中断状态位RXGRFPKT(位于OCH的中 断寄存器)置位;

DSP响应链路层控制器的中断请求,然后连续读取链路层控制器的60H 和62H地址,直至从链路层控制器中的GRF中读出整个数据包,所述数据包 中包括8个字节的包头部分,所述包头部分是由链路层控制器的内核根据物理 层控制器传输过来的数据检测并生成的。

本实施方式中的用于程序DSP上电自引导的步骤中,设计FLASH的片内 地址0x0000~0x7FFF映射到DSP的外部数据空间0x8000~0xFFFF,在DSP对 FLASH访问时需要加一个地址偏移量0x8000。地址对应关系为:DSP访问地 址=FLASH内部地址+0x8000。

通过设计执行相应的命令字序列实现擦除或编程FLASH,下表为擦除序 列:

  周期  1解锁  2解锁  3擦除命  令  4解锁  5解锁  6扇区擦除   6   块擦除   6   片擦除   地址  5555H  2AAAH  5555H  5555H  2AAAH  扇区地址   块地址   5555H   数据  AAH  55H  80H  AAH  55H  30H   50H   10H

编程命令为:

  周期  1(解锁)  2(解锁)  3(编程)   4(烧写)   地址  5555H  2AAAH  5555H   WA(编程地址)   数据  AAH  55H  A0H   Data(编程数据)

对FLASH的地址为WA烧写数据Data的代码如下所示:其中Flash Write 为写FLASH宏。

#define OFFSET 0x8000

Flash Write((0x5555+OFFSET),0x00AA);/*周期1,解锁*/

Flash Write((0x2AAA+OFFSET),0x0055);/*周期2,解锁*/

Flash Write((0x5555+OFFSET),0x00A0);/*周期3,编程*/

Flash Write((WA+OFFSET,Data);/*周期4,烧写*/

本方法的程序自引导设计为并口模式。DSP的自引导流程参见图6所示。 当判断为FLASH并行引导时,自举加载程序读数据空间FFFFH地址。下表 为编写的自举表:

  数据空间地址   内容   含义   8000H   10AA   16位自举   8001H   7FFF   SWWSR

  数据空间地址   内容   含义   8002H   F000   BSCR   8003H   0   程序入口XPC   8004H   Addr1   程序入口地址   8005H   n   程序段长度   8006H   00   存放目标XPC   8007H   Addr2   存放目标地址   Addr1   Code1   程序代码1   Addr1+1   Code2   程序代码2   ...   ...   ...   Addrn   Coden   程序代码n   Addrn+1   0000   代码结束   FFFFH   8000   自举表存放首地址

并行自举引导过程为:DSP上电复位后,从片内ROM的0FF80H处执行 中断向量表的分支转移指令(BD 0F800H),使程序跳转至自举引导程序。完 成初始化后,读取数据空间的0FFFFH地址的内容,找到自举表首地址8000H, 从8000H处开始读取内容。首先是16位自举标记(10AA)。然后分别是寄存 器SWWSR及BSCR的内容,程序入口地址、代码段长度、存放代码段的目 标地址等信息。最后,根据这些信息把FLASH的Addr1~Addrn的程序搬运到 片内RAM的Addr2开始的地址中。然后跳转至片内RAM的Addr1地址,即 PC为Addr1,XPC为0处,开始执行用户程序,完成用户程序的并行自举过 程。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号