PCIe扫盲——PCIe卡Spec(CEM)导读

前面的文章介绍过,PCIe总线除了有Base Spec,还有关于PCIe卡的Spec(又称为CEM Spec,全称为PCI Express Card Electromechanical Specification)。该Spec主要内容包括辅助信号(Auxiliary Signals)、热插拔(Add-in Card Hot Insertion and Removal)、电源传递(Power Delivery)、PCIe卡电气规范(Add-in Card Electrical Budget)、连接器规范(Connector Specification)和PCIe卡的外形与尺寸规范(Card Form Factors and Implementation)等。

注:除了标准的PCIe Add-in卡之外,还有一种PCIe Riser卡,主要用于将一个PCIe插槽扩展为多个PCIe插槽。如下图所示:

image.png

其中关于PCIe卡的热插拔功能,已经在前面的文章中介绍过,这里就不在重复了。本文主要介绍的是辅助信号与电源传递等相关内容。如需了解其他内容,还请阅读相关的CEM Spec或者相关书籍。

注:这里说的辅助信号(Auxiliary Signals)主要是针对于PCIe卡的,而非PCIe的On-Board连接。

PCIe卡的辅助信号主要有:

    ※ REFCLK(Reference Clock,参考时钟),【must be supplied by system】

    ※ PRSNT1# & PRSNT2#(Add-in Card Presence Detect Pins),【Required】

    ※ PERST# 【Required】

    ※ JTAG(调试引脚),【Optional】

    ※ SMBus(System Management Bus,基于I2C的),【Optional】

    ※ WAKE#(用于链路唤醒的功能,一般建议使用),【Optional】

    ※ +3.3V Vaux(3.3V的辅助电源),【Optional】

PCIe卡的REFCLK是一种类LVDS信号(即Low Voltage Swing,Differential Clocks),其单端摆幅为0~0.7V,时钟频率为100MHz,精度为±300ppm。对于支持扩频时钟(Spread Spectrum Clocking,一种降低系统EMI的手段)的系统,正向综合精度为300ppm+2500ppm=2800ppm。即-300ppm~2800ppm。REFCLK的详细DC Spec和AC Timing要求如下表所示:

image.png

PCIe卡的各个信号有效状态与PM State的关系图,如以下三张图所示:

image.png

image.png

image.png

WAKE#信号是一种开漏(Open Drain)结构,低电平有效的信号。主要用于唤醒插槽上的主电源和参考时钟等,进而唤醒链路(Links)。需要注意的是,WAKE#信号的电平变换操作与任何系统时钟都是异步的(Asynchronous)。

注:WAKE#和PME#是两码事,WAKE#不可以被直接连接到PME#信号上。PCI-PME#往往会产生中断信号,而WAKE#只是用于唤醒操作,一般并不会直接产生中断。

PCIe卡至少需要有两个电源:+12V和+3.3V,第三个辅助电源+3.3Vaux是可选的。各个电源的基本要求如下:

image.png

由于PCIe是一种高速串行总线,因此其链路上的信号线基本上采用的都是交流耦合(AC Coupling),也就是在传输线上加上一个电容,以过滤掉直流和低频信号。PCIe CEM Spec建议,一般将交流耦合的电容放置于发送端,如下图所示:

image.png

注:其他的信息(如Jitter,Equalization、Skew、Trace Impedance等电气信息;眼图;连接器与PCIe卡外形;信号完整性基本要求与测试流程等)将不再详细介绍,如需了解,请自行阅读PCIe CEM SPec。

 

附:PCIe卡的Pinout信息:

image.png

注:原文最早发表于本人的ChinaAET博客(http://blog.chinaaet.com/justlxy/

Fabric.js是一个强大的JavaScript库,用于创建和操作SVG和Canvas元素。它提供了丰富的API,使得在浏览器中创建可交互的图形对象、布局和动画变得简单。Fabric.js支持复杂图形的创建、选择、变换、裁剪、保存以及与其他HTML元素的交互。 中文文档通常包含以下内容: 1. **入门指南**:介绍如何安装和在HTML中引入库,以及基本的元素创建和使用方法。 2. **对象模型**:详的API列表,包括各种图形对象(如矩形、圆、文本等)、色板、变换工具、事件处理等。 3. **布局和管理**:如何组织和布局多个对象,以及如何控制它们的行为,比如响应鼠标操作。 4. **事件处理**:如何监听并响应用户的交互,如点击、拖拽、缩放等。 5. **动画和效果**:如何为对象添加平滑的过渡效果和动画。 6. **实例和示例**:提供实际应用中的代码示例,帮助理解和学习。 7. **兼容性和注意事项**:关于不同浏览器的支持情况和可能遇到的常见问题解决方案。 8. **社区资源**:开发者论坛、教程、博客文章和第三方插件的链接。 如果你需要查找特定功能的详信息或遇到问题,可以通过搜索关键词如“如何添加事件处理器”、“如何创建可拖动的元素”等来找到相关文档部分。相关问题: 1. Fabric.js是否支持跨浏览器操作? 2. 如何在Fabric.js中添加自定义交互行为? 3. 如何将Fabric.js项目打包部署到生产环境?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值