DSP SRIO接口收发配置

一,SRIO介绍:

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

3,KeyStone设备中的SRIO

二,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寄存器中的中断请求位。

三,写操作

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

四,读操作

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

后续修改和补充

猜你喜欢

转载自blog.csdn.net/wangjie36/article/details/117915746
dsp
今日推荐