COM载板设计之七:PCIe

2.2 PCIe一般介绍

PCIe提供了一种可裁减高速串行I/O点到点的总线连接。PCIe的LAN是一个全双工的通道,由一对接收差分对和一对发送差分对构成。PCIe的带宽可以通过增减LANE数来调整。PCIe规范定义了x1,x4,x8,x16和x32的连接宽度。每个LAN的原始数据传输速率是2.5Gbps @ 1.25GHz。

PCIe易于使用,但必须满足设计规则。最重要的规则是PCIe LAN必须以差分对形式布线。PCIe设计规则在PCB设计一节中有详细讨论。显然PCIe的布线要比PCI容易的多,因为线少多了。

2.2.1 COM Express A-B连接器和C-D连接器的PCIe组

COM Express类型2模块有两组PCIe LANE,一组PCIe由6个LANE构成,用于通用目的。另一组由16个LANE组成,用于图形显示接口,我们称之为PEG接口。某些PEG接口在不用作外部图形接口时可以作为通用PCIe接口使用,但是这样看COM模块的芯片集是否支持这种用法。

2.3 通用目的的PCIe通道

2.3.1 通用目的的PCIe信号定义

通用目的的PCIe接口由6个LANE组成,如表4:

信号

描述

I/O

注释

PCIE_RX0+

PCIE_RX0-

B68

B69

PCIe通道0,接收输入差分对

I PCIE

PCIE_TX0+

PCIE_TX0-

A68

A69

PCIe通道0,发送输出差分对

O PCIE

PCIE_RX1+

PCIE_RX1-

B64

B65

PCIe通道1,接收输入差分对

I PCIE

PCIE_TX1+

PCIE_TX1-

A64

A65

PCIe通道1,发送输出差分对

O PCIE

PCIE_RX2+

PCIE_RX2-

B61

B62

PCIe通道2,接收输入差分对

I PCIE

PCIE_TX2+

PCIE_TX2-

A61

A62

PCIe通道2,发送输出差分对

O PCIE

PCIE_RX3+

PCIE_RX3-

B58

B59

PCIe通道3,接收输入差分对

I PCIE

PCIE_TX3+

PCIE_TX3-

A58

A59

PCIe通道3,发送输出差分对

O PCIE

PCIE_RX4+

PCIE_RX4-

B55

B56

PCIe通道4,接收输入差分对

I PCIE

PCIE_TX4+

PCIE_TX4-

A55

A56

PCIe通道4,发送输出差分对

O PCIE

PCIE_RX5+

PCIE_RX5-

B52

B53

PCIe通道5,接收输入差分对

I PCIE

PCIE_TX5+

PCIE_TX5-

A52

A53

PCIe通道5,发送输出差分对

O PCIE

PCIE_CLK_REF+

PCIE_CLK_REF-

A88

A89

PCIe参考时钟,所有的LAN包括PEG

O PCIE

COM模块仅这一个参考时钟

EXCD0_CPPE#

A49

PCIe卡0能力请求,低有效

I CMOS

EXCD0_PERST#

A48

PCIe卡0复位,低有效

O CMOS

EXCD1_CPPE#

B48

PCIe卡1能力请求,低有效

I CMOS

EXCD1_PERST#

B47

PCIe卡1复位,低有效

O CMOS

CB_RESET#

B50

模板对载板的复位输出。低有效,由模板芯片集发出。可能是由于SYS_RESET#事件、PWR_OK事件、VCC_12V降到规定值以下事件、看门狗超时事件,软件发布的复位载板命令事件

O CMOS

PCI_RESET#

C23

PCI复位输出,低有效

O CMOS

Suspend

WAKE0#

B66

PCIe唤醒信号

I CMOS

2.3.2 PCIe LANE配置-按照COM Express规格

按照COM Express规范,PCIe LANE可以配置成6个x1的PCIe连接,或者是x1,x2,x4连接的组合。这些配置依赖于COM Express模块的芯片组性能。

COM Express规范定义了一个“fill order”规则,例如L规则要求x4的PCI连接必须映射到LAN0、1、2、3。

注:所有PCIe设备除了能工作在全速模式外,都要求能工作在x1模式,例如:一个x4的PCIe卡,可以使用在x4或x1模式,这种情况下的中间模式(x2)是可选的。

2.3.3 PCIe LANE配置-模块和芯片组间的依赖

PCIe接口的LANE配置方案取决于COM Express模块所用的芯片组。某些模块和芯片组允许软件配置连接宽度(x1,x4)。某些需要硬件来进行x4选项的配置。COM Express对此并没有规定,具体应该见厂家提供的模块用户手册

2.3.4 Device Up/Device Down及PCIe Rx/Tx耦合电容

图3:PCIe Rx耦合电容

“Device Down”指PCIe目标设备实现在载板上;“Device Up”指目标设备实现在插座上(或mini-PCIe卡、ExpressCard、AMC Card)。在“Device Down”和“Device up”实现上,有一些区别:

Device Down:

l 目标设备PCIe的TX线的耦合电容在载板上,尽可能距离设备的TX近。

l 在载板上允许的PCIe的线长度比Device Up长。见PCB布线规则。

Device Up:

l 目标设备PCIe的TX线的耦合电容在插卡上。

l 在载板上允许的PCIe的线长度比Device Down短,因为卡上还有一段PCIe线。见PCB布线规则。

耦合电容的大小应该符合COM Express规范。

2.3.5 参考设计

2.3.5.1 参考时钟缓冲

COM Express规范仅定义了一个PCIe的参考时钟,这个100MHz的差分时钟是的目标PCIe设备能够更快速地锁定到PCIe位流内嵌的时钟上。

如果载板上只有一个PCIe设备,那么直接把这个脚连过去就可以了,如果有多个PCIe设备,则需要通过“0延迟”缓冲来获得多个时钟。这样fed1芯片有IDT、Cypress等。

图4 PCIe参考时钟缓冲器

每个时钟对点到点地连接到插座上或中断设备上,布线规则按照差分信号布线规则。

推荐在ICS9DB102缓冲器的时钟输出脚最近处串联一个33欧姆电阻和一个49.9欧姆对地的终端电阻。

SMBUS软件能够使能和禁止时钟缓冲输出,以减少EMI。

CLKREQ0和CLKREQ1应该下拉以便允许时钟缓冲输出,对于功耗要求不严格的应用,时钟可以永久接到低电平,永久是能时钟输出。

2.3.5.2 复位

PCI接口和PCIe接口,共享PCI_RESET#信号。CB_RESET#信号也可以代替PCI_RESET#。对于类型1、4、5的COM Express模块,由于没有PCI_RESET#信号,所以只能用CB_RESET#。

2.3.5.3 x1插座例子

图5,PCIe x1插座例子:

上面的例子显示PCIe的LANE0连接到这个插座,别的LANE是否可以被使用取决于模板。

没有耦合电容,因为PCIe TX的耦合电容在COM模块上,PCIe的耦合电容在卡上。

插座的REFCLK+和REFCLK-由时钟缓冲驱动,见图4,如果仅这一个PCIe设备,则只需把COM Express模块的REFCLOCK接过来就可以。

插座的PWRGD信号有COM Express的PCI_RESET#信号驱动,CB_RESET#也能使用。如果载板仅一个或两个目标设备,PCI_RESET#或CB_RESET#可以直接使用。

PRSNT1#和PRSNT2#是热插拔机制的一部分,然而大部分系统并不支持完整的热插拔功能,如果使用,方案如下:PRSNT1#(A1)下拉,在卡上,被路由到PRSNT2#(B17),B17的状态由BIOS读回。如果有卡插入,B17为0,无卡,则为1。软件使用这个信息给卡加电。但是COM Express并没有做什么规范性的规定,也没有任何硬件上的支持。系统如果试着实现这个热插拔功能,也没有必要读回PRSNT2#的状态。因此,这在图5上仅仅是作为一个测试点。

SMB_CK和SMB_DAT源自COM Express模块的B13和B14。SMBUS支持卡的管理功能,SMBUS软件能保存卡进入Suspend状态前的上下文,报告错误,接收控制参数,返回状态信息和卡信息(如卡的序列号)。卡对SMBUS的支持是可选的。

JTAG一般不用。

2.3.5.4 x4插座的例子

图6 PCIe x4插座的例子

2.3.5.5 PCIe x1通用Device Down例子

图7 PCIe x1 通用 Device Down例子:

图5仅显示在全电源ON状态(S0)的信号。如果载板器件支持电源管理特征,那么还有一些信号要起作用,如:为了支持唤醒功能,载板器件必须可以断言WAKE0#。

某些具备电源管理能力的器件还有CLKREQ#信号,见图4。

载板PCIe设备还可能要求支持SMBUS,如果载板器件使用Suspend电源,那么器件的SMBUS脚可以直接路由到COM Express的SMBUS脚(SMB_CK, SMB_DAT, SMB)ALERT#),如果载板SMBUS脚不是由Suspend电源供电,那么必须使用FET或总线开关隔离。见SMBUS总线的介绍。

2.3.5.6 PCIe x4通用Device Down例子

图8 PCIe x4通用Device Down例子

图6仅显示在全电源ON状态(S0)的信号。如果载板器件支持电源管理特征,那么还有一些信号要起作用,如:为了支持唤醒功能,载板器件必须可以断言WAKE0#。

某些具备电源管理能力的器件还有CLKREQ#信号,见图4。

载板PCIe设备还可能要求支持SMBUS,如果载板器件使用Suspend电源,那么器件的SMBUS脚可以直接路由到COM Express的SMBUS脚(SMB_CK, SMB_DAT, SMB)ALERT#),如果载板SMBUS脚不是由Suspend电源供电,那么必须使用FET或总线开关隔离。见SMBUS总线的介绍。

2.3.5.7 PCIe Mini Card

PCIe Mini Card是一个小型的卡,用于移动计算或嵌入式平台,它不支持热交换能力。

PCIe Mini Card接口包括一个x1的PCIe连接和一个USB2.0通道,Host两个接口都应该支持。

图9 PCI Mini Card尺寸:

图10 PCIe Mini Card 连接器

表5 PCIe Mini Card连接器管脚

信号

描述

信号

描述

1

WAKE#

唤醒信号

2

+3.3V

主电源3.3V

3

RSVD

保留

4

GND

5

RSVD

保留

6

+1.5V

第二电源1.5V

7

CLKREQ#

时钟请求

8

UIM_PWR

UIM用的电源

9

GND

10

UIM_DATA

UIM用的数据信号

11

REFCLK-

参考时钟-

12

UIM_CLK

UIM用的时钟

13

REFCLK+

参考时钟+

14

UIM_RESET

UIM用的复位

15

GND

16

UIM_VPP

UIM用的可变电压

定位KEY

17

RSVD

保留

18

GND

19

RSVD

保留

20

W_DISABLE

系统使用的禁止无线操作

21

GND

22

PERST#

PCIe复位

23

PERn0

LANE0接收差分对的-

24

3.3VVaux

辅助电源3.3V

25

PERp0

LANE0接收差分对的+

26

GND

27

GND

28

+1.5V

第二电源1.5V

29

GND

30

SMB_CLK

系统管理总线时钟

31

PETn0

LANE0发送差分对的-

32

SMB_DATA

系统管理总线数据

33

PETp0

LANE0发送差分对的+

34

GND

35

GND

36

USB_D-

USB数据-

37

RSVD

保留

38

USB_D+

USB数据+

39

RSVD

保留

40

GND

41

RSVD

保留

42

LED_WWAN#

系统提供的状态指示灯

43

RSVD

保留

44

LED_WLAN#

系统提供的状态指示灯

45

RSVD

保留

46

LED_WPAN#

系统提供的状态指示灯

47

RSVD

保留

48

+1.5V

第二电源1.5V

49

RSVD

保留

50

GND

51

RSVD

保留

52

+3.3V

主电源3.3V

图11 PCIe Mini Card参考设计电路

图中使用了PCIe的LANE1和USB0。也可以使用别的端口,但是这要看模板。

如果不需要支持Suspend模式,那么3.3VAUX可以直接接到VCC_3V3,这种情况下,WAKE#脚应该悬空。

PERST#可以使用CB_RESET#或PCI_RESET#,或者是这些信号缓冲后的信号。

2.3.5.8 ExpressCard

ExpressCard支持热插拔,体积也很小巧。可以通过x1的PCIe或者USB2.0接口。按照ExpressCard规范,作为HOST应该提供PCIe和USB连接。可以支持一个或者多个ExpressCard设备。COM Express有4个信号专用于支持2个ExpressCard插座

表6 ExpressCard支持的信号

信号

描述

I/O

EXCD0_CPPE#

A49

ExpressCard0请求

I 3.3V CMOS

EXCD1_CPPE#

B48

ExpressCard1请求

I 3.3V CMOS

EXCD0_PERST#

A48

ExpressCard0复位

O 3.3V CMOS

EXCD1_PERST#

B47

ExpressCard1复位

O 3.3V CMOS

图12 ExpressCard尺寸

图13 ExpressCard插座

图14 PCe:ExpressCard例子

图中使用了PCIe的LANE2和USB1,也可以使用其它通道,但要看模板情况。

PCIE_TX2+和PCIE_TX2-源自COM Express模块,这些线驱动ExpressCard上的PCIe接收器。载板上没有耦合电容,耦合电容在COM Express模块上。

PCIE_RX2+和PCIE_RX2-源自ExpressCard,载板上没有耦合电容,耦合电容在ExpressCard上。

PCIE_REF_CLK1+和PCIE_REF_CLK-源自PCIe的参考时钟缓冲器。

CPPE#在ExpressCard上被下拉,以表示卡存在并有一个PCIe接口。CPUSB#在ExpressCard上被下拉,以表示卡存在并有一个USB2.0接口。CPPE#或CPUSB#为低会引起TPS2231 ExpressCard电源控制芯片给ExpressCard供电。

TPS2231集成了一定数目的上拉电阻,其他解决方案可能需要外部上拉电阻。

CLKREQ#用作动态时钟管理,当这个信号为低的时候,表示不支持时钟动态管理功能。

ExpressCard PCIe复位信号,PERST#由TPS2231驱动,PERST#在电源超出规定范围的时候断言,或者如果COM Express 的EXCD0_PERST#为低的时候。

WAKE#由ExpressCard断言,会引起COM Express模块唤醒。WAKE0#在模块中是上拉的,其他WAKE0#源是“线或”关系。

SMBUS支持客户报警、无线RF管理、边带信号管理。这个功能在EXpressCard上是可选的。

2.3.6 PCIe布线考虑

PCIe信号是高速差分对,差分阻抗是100欧姆。布线时一定要以差分对形式走线,最好参考一个连续的地平面,做到过孔最少。

PCIe差分对的正负两个线长度的匹配要满足规定,但是差分对之间的长度并不需要匹配。

PCB设计请参考PCB设计指南。

2.3.6.1 极性反转

每个LANE都支持极性的反转,这就意味着布线的时候,不必去考虑两点之间的极性关系,意味着你可以将模块的PCIE_TX0+连接到插座的-脚,把PCIE_TX0-连接到插座的+脚。这样避免线的交叉,降低了按照规则布线的难度。

2.3.6.2 LANE反转

PCIe并不支持LANE的翻转。

你可能感兴趣的:(嵌入式)