拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

1394接口设计

1394接口设计

硬件设计说明


文章目录

  • 硬件设计说明
  • 前言
  • 1. 背景概述
    • 1.1 IEEE-1394接口
    • 1.3 IEEE-1394工作模式
      • 1.3.1 IEEE-1394a模式
      • 1.3.2 IEEE-1394b模式
    • 1.4 IEEE-1394协议层次
      • 1.4.1 事物层(Transaction Layer)
      • 1.4.2 链路层(Link Layer)
      • 1.4.3 物理层
      • 1.4.3 串行总线管理
    • 1.2 IEEE-1394接口特点
    • 1.2 TSB41BA3芯片
  • 2 需求说明
    • 2.1 功能点拆解
  • 2.2 系统方案设计
    • 2.2.1 核心器件选型
    • 2.2.2 电源设计
        • 2.2.2.1 电源树
    • 2.2.3 时钟设计
    • 2.2.4 详细设计
      • 2.2.4.1 XC7Z030设计
      • 2.2.4.2 1394电路设计

前言

记录设计过程,总结经验。

1. 背景概述

1.1 IEEE-1394接口

IEEE-1394是一种高性能计算机及其外设串行接口标准.

  • Apple公司将其命名为FireWire(火线)
  • Sony公司称之为i.Link Texas
  • Instruments公司则称之为Lynx

1394接口信号共有9个引脚,可分为4部分:差分数据对A,差分数据对B,两路参考地,电源和状态检测;具体如下图。

1.3 IEEE-1394工作模式

1.3.1 IEEE-1394a模式

半双工通信,任意时刻只有一个方向传输。TPA和TPB实际上组成Data/Strobe编码,接收端采用Data XOR Strobe恢复时钟。在1394a模式中,PHY-Link接口主要依靠CTL[0:1]、D[0:7]、LREQ、LPS、S5_LKON和PCLK信号线来传输物理层和链路层之间的控制信号和数据包,接口连接方式见下图。
其中,D[0:7]是双向数据线。PHY-Link接口支持S100、S200和S400三种传输速度,根据传输速度分别使用D[0:1]、D[0:3]、D[0:7]数据线,未使用的数据线置为低电平,传输方向由CTL[0:1]控制。CTL[0:1]是双向控制线。LREQ是链路层用来给物理层发送访问串行总线的请求,LREQ请求分为四种类型,包括总线请求、寄存器读请求、寄存器写请求和加速控制请求。LPS指示链路层工作状态,高电平表示链路层开启;低电平表示链路层关闭。S5_LKON是链路层开启信号,通知链路层加电,链路层检测到S5_LKON信号后,LPS信号输出为高电平。PCLK是物理层向链路层提供的时钟,1394a模式下频率为49.152MHz。

1.3.2 IEEE-1394b模式

全双工通信,速度更高,采用8B/10B编码,接收端使用CDR恢复时钟。HY-Link接口主要依靠CTL[0:1]、D[0:7]、LREQ、LPS、S5_LKON、LCLK_PMC、PCLK和PINT信号线来传输物理层和链路层之间的控制信号和数据包,接口连接方式见下图。
1394b模式下增加了信号PINT和LCLK_PMC。其中,PINT是物理层用来给链路层发送串行状态传输和中断信息。而LCLK_PMC端口给物理层PHY提供一个时钟信号。链路层从PCLK信号获得时钟,并与PCLK信号锁相,成LCLK_PMC。所有从链路层到物理层的数据传输都与LCLK_PMC同步。PCLK端口向链路层提供一个98.304MHz的接口时钟。物理层传输的所有的控制、数据、物理层中断信号都与PCLK的上升沿同步。

1.4 IEEE-1394协议层次

IEEE-1394可分为总线管理层,事务层,链路层,物理层。协议框图如下图:

1.4.1 事物层(Transaction Layer)

事物层定义了一个支持CSR(Command and Status Register)体系结构的完整的请求/响应协议。提供3种基于请求响应的服务(读、写和锁定)来支持异步事务。

  • 读事务(read):从目标节点读取数据到源节点
  • 写事务(write):操作向响应节点送出数据
  • 锁定事务(lock):源节点发送数据到目标节点,用于执行一种不可分割的操作,并返回结果到源节点

1.4.2 链路层(Link Layer)

异步事务
(1)链路层提供了事物层和物理层交互的接口,为异步数据包提供面向事物层的各种服务,包括:寻址、数据校验、以及对发送数据包编码成帧、对接收数据包解码解包等服务
(2)请求者通过链路层,将来自事物层的事务请求转换成数据包,再通过物理层发送给响应者。响应者接收到数据包后,再将包转换回数据并传递给事务层
等时事务
(1)链路层提供驱动程序和物理层间的接口,为等时数据传输提供直接面向应用层的服务
(2)在传输等时数据时,发送方链路层负责生成等时包。在接收方,链路层通过将包的信号号码解码,将传给本节点的数据包直接传递给驱动程序

1.4.3 物理层

物理层(Physical Layer)执行系统初始化工作,提供了串行总线上数据包传输和接收时所必需的物理和机械接口,参与配置进程,处理数据的传输和接收。输入数据使用本地时钟进行重同步,提供数据的编码和解码。另外还实现仲裁服务,以确保同一时刻总线上只有一个节点在发送数据。

1.4.3 串行总线管理

提供串行总线的基本控制功能并实现总线配置和节点活动的管理。串行总线管理部分由节点控制器、总线管理器和等时资源管理器三部分组成。
节点控制器:实现了CSR寄存器,并实现了节点和总线的自动配置。
总线管理器:充当了总线管理器的节点可以实现对网络中其他节点的控制,包括循环控制器的激活、总线性能的优化、电源管理、速度管理和拓扑管理等。
等时资源管理器:在电缆环境下,等时资源管理器是串行总线管理层的一部分,为总线节点有顺序的执行等时操作分配和释放等时资源、信道和带宽等必需的资源。

1.2 IEEE-1394接口特点

小巧的物理设计:纤细的串行电缆可取代体积较大、成本较高的接口;
热插拔:用户在任何时候对IEEE-1394网络添加或移除设备,即使不关机,也不会干扰整个总线通信;
即插即用:每次加入或删除IEEE-1394网络设备时,总线节点会自动配置,并且配置不需要主机干预;
配置灵活:拓扑结构可以是除环形以外的树形、星型、菊花链或其他混合方式,最多可连接63个设备;
速度极快:1394a支持100、200和400Mb/s;1394b支持100、200、400、800、1600和3200Mb/s;
巨大的映射至内存的地址空间:每个节点拥有256TB字节的地址空间;

1.2 TSB41BA3芯片

TSB41BA3是一款IEEE-1394总线物理层芯片,兼容1394a和1394b协议。TSB41BA3拥有三个线缆端口,提供了串行总线上数据包传输和接收时必需的物理接口。TSB41BA3还负责执行系统初始化工作,参与配置进程,处理数据的发送和接收。另外TSB41BA3还实现了仲裁服务,以确保同一时刻总线上只有一个节点在发送数据。
PHY-Link接口提供1394物理层与链路层之间的信息交互。其中时钟信号PCLK由内部锁相环产生,负责链路层和物理层之间的数据同步。当PHY-Link接口兼容1394a-2000标准,PCLK输出49.152MHz频率的时钟;当PHY-Link接口兼容1394b-2002标准,PCLK输出98.304MHz频率的时钟。
三个线缆端口都可以兼容1394a-2000和1394b协议,每个端口所工作的模式取决于S0_PC2~S5_LKON配置情况和与其相连的节点物理层的端口模式。当端口连接的是一个兼容1394a-2000的设备,那么这个端口将只能工作在1394a-2000的数据-选通模式,速度为S100、S200或S400;当双模式接口或Beta模式连接的是兼容1394b节点,那么这个端口将遵循1394b标准,工作速度为S100B、S200B或S400B。原理图框图如下:

协议角度:TSB41BA3实现IEEE 1394协议栈中的物理层(PHY),负责总线初始化、仲裁、编码/解码和电气接口。
原理角度:内部集成PLL、差分收发器、仲裁引擎、Bus Reset逻辑、PHY寄存器和三路端口,实现高速串行通信与时钟恢复。
应用角度:通常与LLC(如TSB12LV32、TSB82AA2等)配合组成完整1394节点,用于工业相机、DV设备、专业音视频、工业控制和医疗设备等高速实时数据传输系统。

2 需求说明

2.1 功能点拆解

ID一级功能主要验证内容优先级
F01上电/复位POR、RESET、SWR、初始化P0
F02时钟/PLL49.152 MHz、98.304 MHz、PLL LockP0
F03PHY-LINK接口LREQ、PINT、CTL、D[0:7]P0
F04PHY寄存器Register Read/Write、Page切换P0
F05Port连接检测Cable Detect、Bias Detect、Port StatusP0
F06Bus ResetBus Reset检测、传播、重新初始化P0
F07Bus ArbitrationFair、Priority、Isochronous、AsyncP0
F08数据收发S100/S200/S400、Packet TX/RXP0
F09IEEE1394a特性Connection Debounce、Short Reset等P1
F10IEEE1394b特性Beta、Bilingual、速率协商P1
F11异常/容错Cable拔插、掉电、超时、非法请求P0
F12低功耗/电气PD、Suspend、Resume、TPBIAS、LeakageP1

2.2 系统方案设计

本验证平台以XC7Z030为主控,采用PEX8114实现PCIe x4至PCI总线的协议转换,并通过PCI总线扩展实现多路IEEE 1394 Link层芯片的挂载。系统配置5路1394通信节点,其中1路采用IEEE 1394A Link层芯片TSB12LV32,4路采用IEEE 1394B Link层芯片TSB82AA2,各Link层芯片分别通过PHY-Link接口连接TSB41BA3 PHY芯片,构成完整的IEEE 1394 Link+PHY协议处理链路。TSB41BA3 PHY的外部1394端口通过标准1394线缆进行节点间互联,可根据测试需求构建不同的多节点网络拓扑。

主控XC7Z030负责各1394 Link芯片的初始化配置、寄存器访问、状态监测以及通信数据收发,并通过FIFO实现主控侧与1394 Link层之间的数据缓存和速率匹配。通过该平台可对TSB41BA3及其配套Link层芯片进行系统级功能验证,覆盖PHY-Link接口、PHY寄存器访问、Cable连接检测、Bus Reset、节点发现、仲裁、速率协商、1394A/1394B兼容通信、单节点及多节点数据收发等功能。同时,通过改变TSB41BA3 PHY端口之间的线缆连接关系,可以进一步验证不同网络拓扑下的节点管理、数据转发及异常恢复能力。

2.2.1 核心器件选型

序号核心器件主要功能数量
F01XC7Z030(FPGA)负责各1394 Link芯片的初始化配置、寄存器访问、状态监测以及通信数据收发1
F02PEX8114(桥片)PCIE转PCIX接口,用于连接4片PHY-Linkb MAC芯片TSB82AA2B1
F03TSB82AA2B(MAC)PHY-Linkb MAC芯片4
F04TSB12LV32(MAC)PHY-Linka MAC芯片1
F05TSB41BA3(PHY)1394接口PHY芯片,三端口引出5
F06KSZ9031(网口PHY)FPGA PS侧网口引出,用于调试,下载和版本升级等1
F07MT41J256M16(DDR3)FPGA的内存扩展,运行Linux内核2
F089FG108EFILF(PLL)输出HCSL差分PCIE时钟和PEX8114时钟1
F09MTFC32GAKAEJP(EMMC)存放Linux内核镜像1
F10TMUX1574PWR(模拟开关)Phy_Linka和Phy_Linkb接口切换8
F11MT25QL512A(QSPI FLASH)FPGA位流文件固化和BOOT引导文件存放2

2.2.2 电源设计

各器件电源需求

器件型号数量I/A(3.3V)I/A(1.8V)I/A(1.5V)I/A(1.2V)I/A(1.0V)I/A(0.75V)上电时序 (先 > 后)
XC7Z030(FPGA)1VCCIO:0.5VCCPLL:0.1
VCCAUX:0.3
VCCPAUX:0.3
VCCIO:0.3
VCCADC:0.02
MGTXVCC:
0.5
VCCO_DDR:0.2MGTXVTTVCCINT:3
VCCPINT:1
VCCBRAM:0.8
MGTXVCC:0.4
3
1.0V > 1.8V > (1.2V 1.5V) > 3.3V
PEX8114(桥片)1VDD33:
VDD3A:
0.1
VTT_PEX: 0.03VDD10:
VDD10A:
VDD10S:
1.9
1.0V先上电,先下电,其余电源在50ms内完成上电
TSB82AA2B(MAC)4VCC
VCCP
0.2
TSB12LV32(MAC)1VDD_5V
VDD:
0.1
TSB41BA3(PHY)5AVDD
DVDD-3.3
PLLVDD-3.3
0.2
PLLVDD-CORE
DVDD-CORE:
0.1
无明确要求
KSZ9031(网口PHY)1AVDDH:
0.06
DVDDH:
0.02
DVDDL
AVDDL
AVDD_PLL:
0.2
推荐(3.3V 1.8V) > 1.2V
1.2V(<200us) > (3.3V 1.8V)
MT41J256M16(DDR3)2VDD
VDDQ:
0.36
VREFDQ
VREFCA
几乎不消耗功率
同时上电
9FG108EFILF(PLL)1VDD:0.1
VDDA:0.02
0.12
MTFC32GAKAEJP(EMMC)1VCC:
0.08
VCCQ:
0.08
无明确要求
TMUX1574PWR(模拟开关)8VDD:
68uA
MT25QL512A(QSPI FLASH)1VCC:
0.4
总电流/A3.161.10.950.54.90
总功耗/W10.481.981.4250.64.90
总功耗/W18.665
2.2.2.1 电源树

电源输入采用外部12V输入,根据器件上电时序要求和功耗情况,设计出如下电源拓扑。

2.2.3 时钟设计

板上器件XC7Z030,PEX8114,KSZ9031和TSB41BA3均需要外供时钟,其中设计CPU的工作时钟为33.3333M,内部倍频到666.666MHz,同时为DDR3提供 333.333MHz的CK时钟;9FG108EFILF接收25MHz的晶振时钟作为输入,并输出100MHz的HCSL时钟到XC7Z030的PCIE专用时钟输入管脚和PEX8114的时钟输入REFCLK管脚;供给TSB41BA3的工作时钟49.152MHz。

2.2.4 详细设计

2.2.4.1 XC7Z030设计

配置及引出的接口如下:

  • 1路千兆网口:从XC7Z030的PS端直接引出;
  • 1路RS232接口和1路RS422接口:从XC7Z030的PS端直接引出,均使用DB9的连接器,用于调试;
  • 1路microSD卡接口:从XC7Z030的PS端直接引出,用于存储Boot和系统镜像;
  • 1路Localbus接口:从PL端引出,用于连接TSB12LV32;
  • 1路PCIE X4接口:从PL端引出,连接PEX8114,扩展4个PCIX设备,用于连接4片TSB82AA2B;
  • 2路QSPI接口:用于放置XC7Z030的Boot文件;
  • 64路GPIO接口:用于连接PHY和LINK芯片复位和配置端口;
  • 2路I2C接口:用于读取当前运行状态下LINK和PHY的电压和电流信息;
    负责完成以下功能:运行操作系统,方便驱动程序的编写和移植;实现1394的LINK和PHY芯片的寄存器读取;实现1394数据包(等时传输异步传输)的收发;根据LINK和PHY芯片收发的数据,实现1394数据包校验;GPIO控制高低,改变PHY芯片的端口模式GPIO连接VID芯片,实现电源电压的输出控制,并通过I2C接口读取当前工作电压和电流。

2.2.4.2 1394电路设计

TSB41BA3BMP可由3.3V电源单电源供电,推荐使用单电源模式供电。此时VREG_PD端口接低电平。内核电压由内部电压调整器(LDO)提供给PLLVDD_CORE和DVDD_CORE。也可由双电源供电,需给器件提供3.3V电源和1.8V电源。此时VREG_PD端口接高电平。3.3V电源供给AVDD、DVDD_33、PLLVDD_33。1.8V电源供给PLLVDD_CORE和DVDD_CORE。上电时序要求:3.3V电源先上电,1.8V电源后上电。此处设计是双电源供电。
当PHY-Link工作在1394a模式时(BMODE端口设置为0),物理层PHY提供49.152MHZ的时钟信号给链路层LLC,完成时钟同步。当PHY-Link工作在1394b模式时(BMODE端口设置为1),物理层PHY提供98.304MHz的时钟信号给链路层LLC,完成时钟同步。正常工作是PD为低,当使PD端口为高时,PLL停止工作。

项目1394a PHY-Link1394b PHY-Link
外部晶振 XI/XO49.152 MHz49.152 MHz
BMODE01
PHY→Link 的 PCLK49.152 MHz98.304 MHz
PHY-Link 数据宽度2/4/8 bit8 bit
注意!!! Cable Port 不要求必须和 PHY-Link 使用同一种协议 PHY-Link=1394b,并不意味着三个 Cable Port 必须全部是1394b。

线缆端口模式如下:

DS(1394a协议,数据选通模式,速度为S100,S200,S400), B1(1394b协议,速率为S100B), B2(1394b协议,速率为S100B,S200B), B4(1394b协议,速率为S100B,S200B,S400B), Bi(双模式,同时支持1394b协议速率为S400B和1394a协议速率为S100,S200,S400)
返回列表