法律状态公告日
法律状态信息
法律状态
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:链路层控制器的控制寄存器配置
DSP对链路层控制器的运行状态的监控主要是通过链路层控制器内部的 中断机制来实现的。通过在系统运行的不同阶段设置链路层控制器的中断屏蔽 寄存器允许相应的中断信号输出给DSP,并执行相应的中断服务程序。链路层 控制器内部含有的中断和中断屏蔽寄存器,其地址分别为0CH和10H。中断 屏蔽寄存器某位置1且INT位为1,允许相应中断发生,向中断寄存器写1, 可清空相应中断位。本实施方式的链路层控制器的中断/中断屏蔽寄存器中的 各位具体含义参见表2。
表2:链路层控制器中断/中断屏蔽寄存器配置
软件总线复位后,IEEE1394总线开始树标识和自标识。当自标识结束之 后,自标识包进入GRF,通过数据包接收中断DSP可以读取自标识包,同时 DSP通过访问链路层控制器的总线复位寄存器(地址34H),可获得复位后的 总线信息,本实施方式所述的链路层控制器总线复位寄存器的参数设置为: 82C1FFC1H。本实施方式所述的链路层控制器的总线复位寄存器的各位的说 明参见表3。
表3:链路层控制器的总线复位寄存器
设置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,下表为擦除序 列:
编程命令为:
对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地址。下表 为编写的自举表:
并行自举引导过程为:DSP上电复位后,从片内ROM的0FF80H处执行 中断向量表的分支转移指令(BD 0F800H),使程序跳转至自举引导程序。完 成初始化后,读取数据空间的0FFFFH地址的内容,找到自举表首地址8000H, 从8000H处开始读取内容。首先是16位自举标记(10AA)。然后分别是寄存 器SWWSR及BSCR的内容,程序入口地址、代码段长度、存放代码段的目 标地址等信息。最后,根据这些信息把FLASH的Addr1~Addrn的程序搬运到 片内RAM的Addr2开始的地址中。然后跳转至片内RAM的Addr1地址,即 PC为Addr1,XPC为0处,开始执行用户程序,完成用户程序的并行自举过 程。
机译: IEEE1394发送设备,IEEE1394接收设备,IEEE1394发送方法和IEEE1394接收方法
机译: 用于在基于IEEE802的格式和基于IEEE1394的格式之间接收/发送数据的信息处理设备和方法
机译: 一种用于传输多个数据流的方法,一种用于对通过多个接收天线接收到的发送数据流进行解复用的方法,一种用于传输多个数据流的传输设备,一种用于通过多个接收天线进行解复用的接收设备接收天线和计算机程序单元的发送数据流的接收