高速信号SRio总结,逻辑层和传输层。第七天
1、传输速率和时钟:1x、2x、4x的通信方式,支持速度1.25G/2.5G/3.125G/5.0G和6.25G,分别支持125M和156.25M时钟
- 主要用途:最主要的优势是系统内互联可靠,增加了带宽和传输的总线速度。
- Ip包装:RapidIo分为三层。物理层、传输层和逻辑层。逻辑层主要定义整体协议和数据包格式,包括端点启动和完成事务所必须的信息。传输层提供数据包的路由信息。物理层描述设备及接口细节,比如传输机制,流控制,电器特性和低级错误。(待整合理解)
- 交互方式:逻辑层主要利用axi往ip写入数据,物理层通过输出的差分串行接口serdes,经过gtx bank与外界进行交互。
接下来是ip介绍(对于一个ip核的使用,最主要的是必须要了解他的时钟和复位。)
对于接口介绍,主要有数据传输通道(标志位通道),信息报通道、维护包通道,调试通道以及调试信息窗口。框图如下
主要对IO口进行操作所以需要了解io都有哪些管教,并且了解包括包格式,doorbell等信息。其中主要对input信息进行构造,而对output进行监测。
逻辑层:
第一步,知道发什么,怎么发。了主要解包格式和接口类型,以及该怎么操作用户接口。
Io主要会有发送treq,发送应答tresp。接收,接收应答。Condent Io,用一个axi_stream处理发送和接收,即四个部分都在一起,而initiator/target 把事务分开,分别发送搭配。并且消息事务既能再i/o上发送也可以再消息端口发送。并且每个通道都有发送和接受缓冲,按我的理解就是内部fifo。一般也就是先进先出,且必须有数据包被接受,下一个数据才能更新缓冲区。如果有多个数据没有发送,会按照优先级和类型,发出响应后并积极发出请求,还是按照设置优先级发送。(有时候温度原因会造成某几包后未发送。)
并且srio支持最低八个字节的传输,当小于8个字节时,需要按照设置size和addr相配合的方式发送。
上图中0-6对应1-7个字节。以0字节为例,写的是一个字节,如果地址位7,就在最高的一个字节,如果为0,就在最后一个字节。之所有有这个,是因为位传输的关系。所以尽量还是保证八字节。
第二步,怎么该怎么配置自己的发送和接受模式。(寄存器)维护包和csr忽略。
第三步,怎么知道自己成功了。Link_initialized /port_error已发送至少 15 个状态控制符号,并且 已接收到 8 个无错误状态控制符号。(主要通过control和status 来了解。)
第四步,怎么知道自己有没有错。表示端口收到不可恢复的错误并处于错误状态。此信号反映物理层配置 中端口 n 错误和状态 CSR 中的端口错误位的值。并通过debug监测。
传输层:
其他:重传、乱序传输。首先srio禁止乱序包,也就是说,每一包数据过来都会按优先级定义。Srio通过ackId和优先级来决定发送数据的先后。也就是如果优先级太低,会通过提升ackId的方式来确认当前数据集的优先级。
而重传就是如果两个包,a包被接收,会自动不断提升b的优先级来发送b。
乱序传输、相当于通过缓存设置多通道,先发的给优先级级别高。但是如果第一个通道没有第一个优先级数据,会将核心倒带将下一包c数据与当前ackId1关联先发出去,之后再发高优先级B并与ackId2对齐,保证数据一致。
第三种是严重堵塞,重新定义优先级传输。根据事务类型和优先级而重设发送顺序,也就是发送通道。并且不同缓存空间也有不同优先级。
物理层:
初始化‘通道数、功能、重置等功能。具体不了解
参考:https://blog.****.net/qq_22168673/article/details/102955594