标签:
文档版本 | 开发工具 | 测试平台 | 工程名字 | 日期 | 作者 | 备注 |
---|---|---|---|---|---|---|
V1.0 | ise14.7 | DBF板 | Day2/PCIETest1 | 2016.03.31 | lutianfei | none |
PCI配置空间
:主要用于向系统提供设备自身的基本信息,并接受系统对设备全局状态的控制和查询。I/O空间
:主要包括设备的控制寄存器和状态寄存器,一般用于控制和查询设备的工作状态以及少量数据的交换。存储器空间
:主要包括内存、显存、扩展ROM、设备缓冲区等,一般用于存放大量数据和进行数据块交换。消息空间
: 传递消息的时间信号机制空间。BAR
(Base Address Register)寄存器所描述的空间。TLP
(Transaction Layer Sepcification) 有三部分组成,帧头
、数据
、摘要
(或者称 ECRC)。 TLP 头标长 3 或者 4 个 DW,格式和内容随事物类型变化;数据端为 TLP 帧头定义下的数据段,如果该 TLP 不携带数据,那该段为空。 Digest段( Optional)是基于头标、数据字段计算出来的 CRC,成为 ECRC,一般 Digest 段由 IP 核填充。所以, PCIe 的处理在用户层表现为处理 TLP 中头标和数据段。
Fmt与Type:规定事物类型、头标长度和是否有数据载荷。
Posted与Non-Posted包
Non-posted
:即请求需要返回completion的响应包;Posted
:即不需要completion返回响应包。例如上面的存储器写入请求
包和Message
包都隶属于posted包。** Length : 1~1024DW,当值为**0:表示1024DW
DW BE:
Requester ID : 包含“生成这个TLP报文”的PCIe设备的总线号(Bus Number)、设备号(Device Number)、功能号(Function Number)
Tag:Requester ID、Tag合起来组成Transaction ID,在同一时间段内,PCIe设备发出的每一个Non-Posted数据请求TLP,其Transaction ID必须唯一。也就是Tag必须唯一。
* Byte0~3 与存储器、配置请求报文对应字段含义一致。
* Completer ID:该字段存放“发送完成报文”的PCIe设备的ID号。
* Byte Count 记录源设备还需要从目标设备中获得多少字节的数据就能完成全部数据传递。
* Lower Address:接收端必须使用存储器读写完成TLP的Low Address 字段,识别一个TLP中包含数据的起始地址。
PCIe总线规定了一下几类消息报文:
INTx 中断消息报文
标签:
原文地址:http://blog.csdn.net/lutianfeiml/article/details/51025557