当前位置:   article > 正文

DSP SRIO接口收发配置_dsp中srio整个配置过程

dsp中srio整个配置过程

一,SRIO协议简介

 1,两种基本操作模式:
–直接
•针对特定内存地址的读/写操作
–发送设备知道接收设备的内存映射
•功能单元:
–LSU(加载/存储单元)
–MAU(内存访问单元)
–消息传递
•邮箱和信件指示符
–发送设备不需要了解接收设备的内存映射
•功能单元:
–TXU(信息传输单元)
–RXU(信息接收单元)
•差分输入/输出端口上的数据通信
2,整体RapidIO架构分为三层:SRIO三层协议
(1)物理层:RapidIO物理层IP
(2)传输层:将数据包从物理层传输到逻辑层协议单元
(3)逻辑层:协议单元(如LSU、TXU等)

 3,SRIO包格式

(1)红色物理层:

ACKID:包传输序列号

PRIORITY:4级优先级,0-3(低到高)

CRC:

(2)绿色传输层:

DESTID

SRCID:可为8或16BIT

ID LENGTH:指定ID长度

(3)灰色逻辑层:

FORMAT TYPE:包格式

 (4)两层响应:

物理层响应(必备):每个包含ACKID,发送包后自加1

CRC效验

逻辑层响应(可选):需要逻辑层确认的包类型

4,传输类型 

DIRECT IO:直接访问

MASTER必须知道SLAVE的MEMORY MAP

包格式:NWRITE不需要响应;NWRITE_R需要响应;SWRITE不要响应包,数据包大小为8的整数倍,效率高

MESSAGE PASSING

类似以太网,无需知道SLAVE的MEMORY MAP

 

 比较:

二,SRIO中模块

1,SRIO功能模块框图

 ​​​​​

2, 串并行转换模块

3,LSU 

寄存器0和1表示目的端MEMORY地址支持64BIT地址;寄存器2表示传输端MEMORY地址支持32BIT范围;寄存器3表示一次传输的BYTE_COUNT,12个BIT表示一次传4KB数据,大于256B时物理层自动拆分;寄存器4表示输出口、目标ID、是否产生中断;寄存器5表示LSU传输的触发字,PACKET TYPE表示包类型;寄存器6状态寄存器,传输启动BUSY1,传输结束BUSY0,结束课查看COMPLETION CODE

 4,中断

5,消息描述表

6,SRIO FORWARDING:转发功能——实现菊花链

 三,

三,SRIO的使用

1,C66x DirectIO操作与C64x的比较:
•8个LSU/4个LSU
•最大事务大小(字节计数字段)为1MB/4KB
–每个LSU编程最多可提供256字节的4K数据包
•阴影寄存器概念
•总共128个未完成的未投递数据包,每个LSU 16个(不包括
•传输结束时自动生成门铃:–在发送最后一包后发送门铃。

或者-收到最后一个回复后按门铃,–如果出现错误,则不发送门铃。
•重新启动并刷新LSU事务。

2,包含了Doorbell包,Doorbell是一种快速的通知类型的短消息,包头和携带信息都很短,用于master srio设备通知slave srio设备,可用于DSP对FPGA/DSP之间的消息通知;如下图阴影处为有效位,其他为reserve位。Doorbell包payload的大小为16bit。5,6位用于选择Doorbell中断状态寄存器,对于TI DSP的srio包含了四个中断状态寄存器,即DOORBELL[0-3]_ICSR,每个寄存器仅有16位有效,即每个寄存器可以支持16个中断源,所以四个寄存器可以支持64个中断源,在TI Nyquist的4 core DSP中,我们在使用中可以为每个core分别配置一个ICSR寄存器,这样当对应的寄存器的某位置位了,相应core会相应该中断。对应于ISCR的四个寄存器的是4个DOORBELL[0-3]_ICCR寄存器,他与ICSR一一对应,用于清除ISCR寄存器中的中断请求位。

3,写操作

DSP发起WRITE操作,检测源地址0x0C000000,长度1K,发送完成后使用门铃推给另一端的FPGA或DSP通知一下。

4,读操作

另一端FPGA或DSP检测到DSP的数据后,进行缓存,检测收到门铃后延迟一段时间并回发收到的数据。DSP响应另一端回发的门铃,产生中断,如此重复上面步骤进行数据校验。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/370997
推荐阅读
相关标签
  

闽ICP备14008679号