DSP6678 RapidIO基本原理之一
一、 RapidIO简介
RapidIO是一种非私有的、高带宽的、系统级的互联方式。它是一个包交换的互联,主要作为片间和板件的互联接口。
可用于微处理器、内存、内存映射的IO设备间的连接。RapidIO的基本特征如下:
a、灵活的系统架构,支持点对点通信;
b、带有错误检测的健壮的通信机制;
c、频率及端口宽度的可扩展性;
d、非软件密集型的操作(门铃机制,避免了轮询查看数据)
e、拥有高带宽及低开销的特点
f、低引脚数
g、低功耗
h、低延迟
二、 RapidIO的三层结构
RapidIO共有三层结构,分别是逻辑层、传输层、物理层。
1、逻辑层:指定用于处理事务的端点需要的协议,包括包格式。(端点处理事务所需的信息, 包括传输类型、大小、物理地址)
2、传输层:定义寻址方案,以便正确地在系统中路由数据包。(在系统中传输数据包的信息, 如路由地址)
3、物理层:包括设备级接口信息,如电气特性、错误管理数据、基本流控数据。(在两个物理设备之间移动数据包所需的信息, 如电气接口,流控)
三、 RapidIO数据流
1、外围数据流
a、RapidIO外围设备是一个外部驱动的从模块,它可以在DSP芯片中起主控作用。这意味着一个外部设备可以根据需要向DSP写入数据,
并在写入过程中,没必要产生中断,或依赖EDMA。这有几点好处,它减少了中断的总数,减少了与只读外部设备相关的延迟,并且节省了EDMA的使用。
b、SRIO专用的数据包最多可以携带256个字节。很多时候,事务可以跨多个包。RapidIO指定每条消息最多16个包。尽管为每个包事务生成一个请求,
以便DMA可以将数据传输到L2内存,但是只有在消息的最后一个包之后才会生成一个中断。这个中断通知CPU,L2中的数据已经到达,等待处理。
c、作为端点设备,外设根据设备ID接收数据。共有两种接收模式,一种是只接收目标ID与本设备ID相同的数据包;另一种是接收多播组的数据包。
2、SRIO数据包
a、逻辑层中,数据包包括头部(定义了连接的类型),以及负载数据。
b、传输层依赖系统中的物理层,包括源和目的设备的ID编号;
c、物理层依赖与物理接口(即串行与并行RapidIO),并包含优先级、确认和错误检查的字段。
3、操作流程
a、SRIO传输基于请求和响应数据包。数据包是在系统中端点设备间的通信单元。一个主控或者发起者产生并发送一个请求包。
对方随后会产生并返回响应包给主控或发起者,以完成事务。
b、SRIO端点通常不会直接连在一起,而是通过中间连接的交换设备。控制符号用于管理SRIO物理互联中的事务流。控制符号用于包确认、流控制信息和维护功能。
4、门铃机制
当对方将数据传输到本地内存后,会收到门铃中断,用于通知DSP有数据到达,等待处理。随后在中断处理函数中,提取门铃消息,并可以将消息提交给工作队列处理。
本文地址:https://blog.csdn.net/li5830/article/details/108857230
下一篇: redis 多实例监控