PCIE总线协议

这篇具有很好参考价值的文章主要介绍了PCIE总线协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、pcie硬件

  1. pci是并行总线,在高速率下信号稳定性不能得到保证
  2. pcie是串行总线,差分信号传输,Tx+,Tx1,Rx+,Rx-为一条lane
  3. pcie总线是端对端的传输,之间为link

2、pcie总线的层次

  1. pcie是串行总线,类似以太网总线,pcie总线需要通过数据包来传输。
  2. 事务层,数据链接层,传输层。
  3. .事务层Tansaction Layer,传输的是TLP(tansaction Layer packer)。

3、TLP的主要字段

        Type的5位编码与Fmt字段一起用于规定事务类型、头标长度和是否有数据负载,如下图所示,只列举了一部分常用的类型

PCIE总线协议

        ftm type 来配置是config memory 读写 memory 读写,IO读写

4、pcie设备的配置过程

1.pcie设备config0,config1两种配置空间,Header Type来表示是桥设备(01)、还是一般的end point(00)。

桥设备:上一级总线号,本级总线号,下级最大的总线号

  • Pirmary Bus Number:上游总线号
  • Secondary Bus Number:自己的总线号
  • Subordinate Bus Number:下游总线号的最大数值 EP

需要的地址空间的size, 深度优先

  1. Read Config读配置空间,外设需要申请多大的地址空间
  2. alloc addr分配出一段空间(pci_addrA~100)
  3. 把分配出来的pci_addrA 写入config配置空间
  4. cpu就可以读某个cpu_addr来访问外设

5、pcie region转换 目的

  • CPU读写某个地址,就可以读写某个PCIe设备的配置空间
  • CPU读写某个地址,就可以读写某个PCIe设备的内存、寄存器

地址空间--分成两部分

  • CPU本身pcie控制器的配置寄存器
  • 后面的部分,就是用来访问pcie外设的

CPU想访问这个设备:Bus=bus,Dev=dev,Fun=fun,Reg=reg,那么CPU读写这个地址即可

0xF8000000 + (bus<<20) | (dev<<15) | (fun<<12) | (reg)

cpu再读写这个地址,这个地址在这些寄存器控制下构建出对应的TLP包文章来源地址https://www.toymoban.com/news/detail-406824.html

pci_addr = cpu_addr[19:0] | (addr0[31:20] << 20) | (addr1<<32)
         = 0x????? + (0xFA0 << 20) | (0 << 32) 
         = 0xFA0????? 

到了这里,关于PCIE总线协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 操作系统原理 — PCIe 总线标准

    2023年04月24日
    浏览(82)
  • PCIe 总线基础 驱动接口 和 BAR空间详解

    PCIe 总线基础 PCIe扫盲系列 原版PDF PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥,PCI总线上只允许有一个PCI主设备(同一时刻),其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需

    2023年04月09日
    浏览(34)
  • HyperLynx(三十二)高速串行总线仿真(四)

    高速串行总线仿真(四) 在上节的基础上 1.通过导出到LineSim验证一个串行通道 2.快速眼图仿真 3.高速串行总线设计注意事项 接下来,将导出网络到LineSim,并为电容分配SPICE模型。然后,将添加封装和串行电容模型,进一步对不同的终端方案进行假设分析。 (1)选择“Export”

    2023年04月17日
    浏览(66)
  • 基于Zynq的雷达10Gbps高速PCIE数据采集卡方案(一)总体设计

    2.1 引言 本课题是来源于雷达辐射源识别项目,需要对雷达辐射源中频信号进行采集传输 和存储。本章基于项目需求,介绍采集卡的总体设计方案。采集卡设计包括硬件设计 和软件设计。首先对采集卡的性能和指标进行分析,接着提出硬件的总体设计,在硬 件设计基础上提

    2024年02月05日
    浏览(49)
  • DELL R730XD服务器因PCIE板卡风扇高速运转的处置

    问题现象: 当DELLR730 XD服务器插入PCIE板卡设备时,服务器风扇出现高速运转的问题。直接通过BIOS调节风扇设置,重启后仍然无效。   解决办法: 1、下载IDRAC维护工具(IPMITool) Windows 系统: 下载安装 Dell EMC iDRAC Tools for Microsoft Windows Server维护工具。 DELL EMC iDRAC Tools   工具

    2024年02月04日
    浏览(69)
  • FPGA模块——AD高速转换模块(并行输出转换的数据)

    AD9280/3PA9280芯片的引脚功能: 工作电压2.7到5.5v 数据对应: AD9280 支持输入的模拟电压范围是 0V 至 2V,0V 对应输出的数字信号为 0,2V 对应输出的数字信号为 255。而 AD9708 经外部电路后,输出的电压范围是-5V到+5V,因此在 AD9280 的模拟输入端增加电压衰减电路,使-5V到+5V 之间的

    2024年02月04日
    浏览(50)
  • 【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

    👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容  目录  PCIE总线结构 PCI总线结构组成  HOST主桥  PCI总线  PCI设备  HOST处理器  PCI负载  PCIE体系结构组成  RC  Endpoint  Switch  PCIE层次结构 事务层 数据链路层 物理层 参考

    2024年02月10日
    浏览(47)
  • 【HDMI文章】HDMI信号带宽计算及速率表

    转载本博客文章,请注明出处 HDMI信号带宽计算及速率表 带宽计算方法 示例1:标准4K@60Hz分辨率(CVT-RB2) 解析度: 3840×2160(Htotal=3920、Vtotal=2222) 刷新率: 60Hz 色彩深度: 8bit 色彩格式: RGB(RGB乘以3,YC422乘以2,YC420乘以1.5) H D M I 数据带宽: 3920 × 2222 × 60 × 3 × 8 = 12542745600

    2024年01月23日
    浏览(42)
  • 嵌入式开发--CAN总线与高速光耦6N137

    嵌入式开发–CAN总线与高速光耦6N137 CAN总线应用时,有时候需要加光耦隔离电路,以免在雷击或遇到高压干扰时,保护设备安全。常用的有光耦隔离和专用芯片隔离。 本文介绍使用高速光耦6N137的光耦隔离方案。 6N137是10MBPS的高速光耦,而CAN总线的最高速度仅为1MBPS,用在此

    2024年01月18日
    浏览(42)
  • FPGA对高速采集ADC(8路并行数据)进行峰值检测,并记录峰值位置

              本模块主要是ADC(2Gsps)采集信号波形进行峰值检测,主要是检测单音信号或者脉冲信号中的所有峰峰值信号(对噪声大信号适用性不是很好),并记录峰值点的位置。         1. 峰值检测8路并行数据端口 2.连续3点检测峰值,被例化8次,                

    2024年02月16日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包