硬件设计说明
文章目录
- 硬件设计说明
- 前言
- 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 | 时钟/PLL | 49.152 MHz、98.304 MHz、PLL Lock | P0 |
| F03 | PHY-LINK接口 | LREQ、PINT、CTL、D[0:7] | P0 |
| F04 | PHY寄存器 | Register Read/Write、Page切换 | P0 |
| F05 | Port连接检测 | Cable Detect、Bias Detect、Port Status | P0 |
| F06 | Bus Reset | Bus Reset检测、传播、重新初始化 | P0 |
| F07 | Bus Arbitration | Fair、Priority、Isochronous、Async | P0 |
| F08 | 数据收发 | S100/S200/S400、Packet TX/RX | P0 |
| F09 | IEEE1394a特性 | Connection Debounce、Short Reset等 | P1 |
| F10 | IEEE1394b特性 | Beta、Bilingual、速率协商 | P1 |
| F11 | 异常/容错 | Cable拔插、掉电、超时、非法请求 | P0 |
| F12 | 低功耗/电气 | PD、Suspend、Resume、TPBIAS、Leakage | P1 |
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 核心器件选型
| 序号 | 核心器件 | 主要功能 | 数量 |
|---|---|---|---|
| F01 | XC7Z030(FPGA) | 负责各1394 Link芯片的初始化配置、寄存器访问、状态监测以及通信数据收发 | 1 |
| F02 | PEX8114(桥片) | PCIE转PCIX接口,用于连接4片PHY-Linkb MAC芯片TSB82AA2B | 1 |
| F03 | TSB82AA2B(MAC) | PHY-Linkb MAC芯片 | 4 |
| F04 | TSB12LV32(MAC) | PHY-Linka MAC芯片 | 1 |
| F05 | TSB41BA3(PHY) | 1394接口PHY芯片,三端口引出 | 5 |
| F06 | KSZ9031(网口PHY) | FPGA PS侧网口引出,用于调试,下载和版本升级等 | 1 |
| F07 | MT41J256M16(DDR3) | FPGA的内存扩展,运行Linux内核 | 2 |
| F08 | 9FG108EFILF(PLL) | 输出HCSL差分PCIE时钟和PEX8114时钟 | 1 |
| F09 | MTFC32GAKAEJP(EMMC) | 存放Linux内核镜像 | 1 |
| F10 | TMUX1574PWR(模拟开关) | Phy_Linka和Phy_Linkb接口切换 | 8 |
| F11 | MT25QL512A(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) | 1 | VCCIO:0.5 | VCCPLL:0.1 VCCAUX:0.3 VCCPAUX:0.3 VCCIO:0.3 VCCADC:0.02 MGTXVCC: 0.5 | VCCO_DDR:0.2 | MGTXVTT | VCCINT:3 VCCPINT:1 VCCBRAM:0.8 MGTXVCC:0.4 3 | 1.0V > 1.8V > (1.2V 1.5V) > 3.3V | |
| PEX8114(桥片) | 1 | VDD33: VDD3A: 0.1 | VTT_PEX: 0.03 | VDD10: VDD10A: VDD10S: 1.9 | 1.0V先上电,先下电,其余电源在50ms内完成上电 | |||
| TSB82AA2B(MAC) | 4 | VCC VCCP 0.2 | ||||||
| TSB12LV32(MAC) | 1 | VDD_5V VDD: 0.1 | ||||||
| TSB41BA3(PHY) | 5 | AVDD DVDD-3.3 PLLVDD-3.3 0.2 | PLLVDD-CORE DVDD-CORE: 0.1 | 无明确要求 | ||||
| KSZ9031(网口PHY) | 1 | AVDDH: 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) | 2 | VDD VDDQ: 0.36 | VREFDQ VREFCA 几乎不消耗功率 | 同时上电 | ||||
| 9FG108EFILF(PLL) | 1 | VDD:0.1 VDDA:0.02 0.12 | ||||||
| MTFC32GAKAEJP(EMMC) | 1 | VCC: 0.08 | VCCQ: 0.08 | 无明确要求 | ||||
| TMUX1574PWR(模拟开关) | 8 | VDD: 68uA | ||||||
| MT25QL512A(QSPI FLASH) | 1 | VCC: 0.4 | ||||||
| 总电流/A | 3.16 | 1.1 | 0.95 | 0.5 | 4.9 | 0 | ||
| 总功耗/W | 10.48 | 1.98 | 1.425 | 0.6 | 4.9 | 0 | ||
| 总功耗/W | 18.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-Link | 1394b PHY-Link |
|---|---|---|
| 外部晶振 XI/XO | 49.152 MHz | 49.152 MHz |
| BMODE | 0 | 1 |
| PHY→Link 的 PCLK | 49.152 MHz | 98.304 MHz |
| PHY-Link 数据宽度 | 2/4/8 bit | 8 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)