【高速接口-RapidIO】1、RapidIO协议概述

本文详细介绍了RapidIO协议,一种高性能的嵌入式系统互连技术,用于芯片到芯片、板到板通信。文章阐述了RapidIO的背景、协议概述,包括包格式、事务类型、消息传递、全局共享存储器、流量控制以及串行物理层等内容,旨在理解其在嵌入式设备中的应用和通信机制。
摘要由CSDN通过智能技术生成

一、RapidIO背景介绍

       RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、 低引脚数、 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。

  RapidI0采用三层分级体系结构,该分级结的如下图所示

 

  其中逻辑层位于最高层.定又全部协议和包的格式,它们为端点器件发起和完成事务提供必要的信息;传输层规范位于中间层,定义了RapidIO地址空间和在端点器件间传输包所需要的路由信息,物理层规范在整个分级结构的底部,包括器件级接口的细节,如包传输机制、流量控制、电气特性和低级错误管理等功能.

  Rapid IO分为并行Rapid IO标准和串行Rapid IO标准,串行RapidIO是指物理层采用串行差分模拟信号传输的RapidIO标准。在Xilinx的一部分FPGA里面已经集成了GTP,GTX或GTZ等高速串行收发电路,这些是FPGA实现RapidIO高速传输的物理层基础。

二、RapidIO协议概述

2.1 包与控制符号

  RapidIO操作是基于请求和响应事务的。

  包是系统中端点器件间的基本通信単元。发起器件或主控器件产生一个请求事务,该事务被发送至目标器件。目标器件于是产生一个响应事务返回至发起器件来完成该次操作。 RapidIO事务被封装在包中,而包则包含确保将事务可靠传送至目标端点的所有必需的位字段。通常不会将RapidIO端点相互直接连在一起,而是通过介于其间的交换结构(fabric)连接。名词“交换结构”指的是提供系统互连的单个或多个交换器件的集合。

  控制符号用于管理RapdIO物理层互连的事务流,也用于包确认、流量控制信息和维护功能。下图显示了如何在 RapidIO系统中传送事务。

 

  上图中,系统中的发起器件(Initiator)通过产生一个请求事务(Request)开始一次操作。该请求包传送至交换结构器件(Fabric),通常是一个交换机,交换结构器件发出控制符号确认收到了该请求包,然后交换结构将该包转发至目标器件(Target),这就完成了此次操作的请求过程。目标器件(Target)完成要求的操作,产生响应事务(Response)。通过交换结构(Fabric)将承载该事务的响应包传送回发起器件(Initiator).传送时使用控制符号对每一跳(hop)进行确认。一旦响应包到达发起器件(Initiator)并得到确认,就可认为此次操作已经完成。

2.2 包格式

  RapidIO包由代表3级规范体系结构的多个字段组成。下图显示了典型的请求包和响应包的格式,这些包的格式属于并行物理层包格式,串行物理层包的格式与此稍有不同。某些字段是依赖于具体的上下文的, 并不会在所有的包中出现。

  请求包以物理层字段开始, S位指示这是一个包还是一个控制符号(S=0表示是一个包,S=1表示是控制符号), AckID表明交换结构器件将用控制符号来确认哪一个包。PRIO字段指示用于流量控制的包优先级。TT、目标地址( Target Address)和源地址( Source Address)字段指示传输地址的机制类型、包应被传送到的器件的地址和产生包的器件的地址。Ftype和事务(Transation)指示正被请求的事务。长度(Size)字段等于编码后事务的长度, RapidIO事务数据的有效裁荷(Payload)长度从1到256字节不等。SrcTID(源事务ID)指示事务ID, RapidIO器件在两个端点器件间最多允许有256个未完成的事务。对于存储器映射事务,跟随在srcTID后面的是器件偏移地址 (Device Offset Address ) 字段。写事务必须附带数据的有效裁荷,所有包以16位(2个字节)循环冗余校验码(CRC)结束。

  响应包与请求包类似。状态(Status)字段指示是否成功完成了事务。目标TID(目标事务ID)字段的值与请求包中源事务 ID字段的值相等。下图是请求包与响应包的包格式示意图

 

  对于用户来说,最需要关注的就是逻辑层(上图中蓝色部分)各个字段的含义,逻辑层中Ftype与Ttype(Ttype字段和上图中的Transaction字段是同一个字段,只不过叫法不同而已)两个字段唯一的确定了这个请求包的功能。下表列出了Ftype与Ttype所确定的包含义

Ftype

(Format Type)

Ttype

(Transaction Type)

包类型

 

功能

0~1

——

Reserve

2

4’b0100

NREAD

读指定的地址

4’b1100

ATOMIC increment

先往指定的地址中传递数据,在把传递的数据加1,此操作为原子操作,不可打断

4’b1101

ATOMIC decrement

先往指定的地址中传递数据,在把传递的数据减1,此操作为原子操作,不可打断

4’b1110

ATOMIC set

把指定地址中的数据每个bit全部写1

4’b1111

ATOMIC clear

把指定地址中的数据清0(每个bit全部清零)

3~4

——

Reserve

5

4’b0100

NWRITE

往指定的地址写数据

4’b0101

NWRITE_R

往指定的地址写数据,写完成以后接收目标器件(Target)的响应

4’b1101

ATOMIC test/swap

对指定地址中的数据进行测试并交换,此操作为原子操作,不可打断

6

4’bxxxx

SWRITE

以流写方式写指定的地址,与NWRITE以及NWRITE_R相比,此方式效率最高

7

——

Reserve

8

4’b0000

MAINTENANCE read request

发起读配置,控制,状态寄存器请求

4’b0001

MAINTENANCE write request

发起写配置,控制,状态寄存器请求

4’b0010

MAINTENANCE read response

产生读配置,控制,状态寄存器响应

4’b0011

MAINTENANCE write response

产生写配置,控制,状态寄存器响应

4’b0100

MAINTENANCE write resquest

端口写请求

9

——

Reserve

10

4’bxxxx

DOORBELL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值