2.16 通用目的的I2C总线接口
COM Express定义5个I2C接口到模板连接器上供载板使用,5个接口中的3个用于特殊目的(VGA、LVDS及DVO),第4个接口用于SMBus,用于管理,第5个接口市通用目的的I2C接口,通用目的的I2C接口也可用于支持载板上的ROM,ROM里包含BIOS使用的载板PCIe映像信息。注意,并不是所有的COM Express模块支持这个特征。
对于这个通用的I2C总线接口,可能会由于软件支持上的问题限制了用户的使用,因为这需要驱动!
2.16.1 信号定义
信号 | 脚 | 描述 | I/O | 电源 |
I2C_CK | B33 | I2C时钟 | O CMOS | 3.3V |
I2C_DAT | B34 | I2C数据 | I/O CMOS | 3.3V |
I2C的时钟和数据线的上拉电阻在模板上已经有了。载板上不要有上拉电阻。
2.16.2 参考设计
如在载板上扩展一个EEPROM:
2.16.3 布线考虑
因为I2C总线是低速信号,所以,布线要求并不严格。
2.17 系统管理总线
SMBus主要用作管理外设,比如对RAM的串行存在检测(SPD)、温度传感器、PCI/PCIe设备、智能电池等。这些载板上的设备可以通过SMBus连接到模板上。设计者需要考虑一些因素以确保SMBus的操作。SMBus其实就是I2C总线,所以在传输信息时有可能会出现数据线死锁,这要求一个上电周期来清除这个错误条件。SMB器件包含一个超时电路,以监视和纠正这个错误。为了在系统S0-S5状态期间能够进行控制,模板上要求给SMBus总线设备提供Suspend电源,而载板上通常使用3.3V主电源供电。为避免载板上的主电源和模块Suspend电源间的漏电流,载板上的SMBus必须通过一个总线开关将模块的SMBus总线分离开。图43显示了这个电路。然而,如果载板也使用Suspend电源给SMBus器件供电,那么这些器件必须连接到SMBus侧的Suspend电源,也就是说,在COM Express模块和总线开关之间。
因为SMBus由模块和载板使用,所以必须注意确保载板上的器件地址不要覆盖模板上的地址空间。一般模块定义SMBus器件和它们的地址包括存储器SPD(串行存在检测:1010 000x,1010 001x),可编程时钟综合(1101 001x)、时钟缓冲(1101 110x)、温度传感器(1001 000x),管理控制器(厂家定义的地址)。请参考模块手册。
图43 SMBus分离:
2.17.1 信号定义
信号 | 脚 | 描述 | I/O | 电源 |
SMB_CK | B13 | SMBus时钟线 | I/O OD CMOS | 3.3VSuspend电源 |
SMB_DAT | B14 | SMBus数据线 | I/O OD CMOS | 3.3VSuspend电源 |
SMB_ALERT# | B15 | SMBus报警 | I CMOS | 3.3VSuspend电源 |
2.17.2 参考设计
2.17.3 布线考虑
SMBus应当要不连接到所有的PCIe/PCI设备和插座上,要不一个也不要连接。通常并不推荐将这些设备连接到SMBus上。
SMBus最多连接3个外部器件。请参考模块的技术资料。
因为是低速信号,所以,布线要求并不严格。
2.18 其他信号
表32 其他类型的信号
信号 | 脚 | 描述 | I/O | 注释 |
Type0# | C54 | 指示COM板管脚的类型,为了指示模块的脚类型,这些脚在模块上悬空或者拉到地上。载板必须有附加的逻辑,在管脚不兼容的时候,防止系统打开电源。 | O 5V PDS | |
Type1# | C57 | |||
Type2# | D57 | |||
SPKR | B32 | 输出,用来控制外部FET或一个逻辑门,用来驱动一个外部喇叭 | O 3.3V CMOS | |
BIOS_DISABLE# | A34 | 输入,禁止模块BIOS Flash内存芯片,这个信号提供实现:安装在外部载板上的BIOS FLASH内存芯片的可能。 | I 3.3V CMOS | 参考2.15.2.3 LPC固件HUB |
WDT | B27 | 输出,指示看门狗超时事件发生。 | O 3.3V CMOS | |
KBD_RST# | A86 | 模块的输入信号,来自外部键盘控制器,强制系统复位 | I 3.3V CMOS | |
KBD_A20GATE | A87 | 输入,外部键盘控制器控制CPU A20地址线的使用。A20地址线限制对系统最低1兆字节内存的存取。在模块内部上拉。 | I 3.3V CMOS | |
GPO0 | A93 | 通用目的的输出脚,用于系统特定的用处 | O 3.3V CMOS | 参考模块的用户手册 |
GPO1 | B54 | |||
GPO2 | B57 | |||
GPO3 | B63 | |||
GPI0 | A54 | 通用目的的输入脚,用于系统特定的用处。这些信号,模块内部都上拉 | I 3.3V CMOS | 参考模块的用户手册 |
GPI1 | A63 | |||
GPI2 | A67 | |||
GPI3 | A85 |
2.18.1 模块类型检测
表33:模块类型的检测
模块类型 | TYPE0# | TYPE1# | TYPE2# | |
模块Type1 | X(无关) | X(无关) | X(无关) | |
模块Type2 | NC | NC | NC | |
模块Type3 | NC | NC | GND | 无IDE接口 |
模块Type4 | NC | GND | NC | 无PCI接口 |
模块Type5 | NC | GND | GND | 无IDE、PCI接口 |
图45 模块类型2检测电路
如果模块不是类型2,那么PS_ON#信号不会变低,电源不会打开。注意,检测逻辑使用的电源是VCC_5V_SBY。
2.18.2 喇叭输出
PC-AT结构,提供一个喇叭控制信号,用来产生Beep响声,这个信号是一个数字逻辑信号,可以通过系统定时器来产生,当产生错误的时候,可以产生BEEP以作为报警提示,BIOS通常提供一个BEEP代码,用来指示硬件测试时候出现的故障类型,应用软件通常也使用BEEP声来提示一个错误。
这里的喇叭信号不要与音频CODEC产生的模拟音频信号相混淆,在许多系统中,PC-AT的喇叭信号送到音频CODEC输入中的一个,允许同别的音频信号混合在一起,可以在CODEC驱动下耳机音响里听到。
COM Express模块提供的喇叭输出被称为“SPKR”,由外部的FET或逻辑门驱动连接到一个PC喇叭上。这个喇叭可以是个蜂鸣器。
2.18.3 RTC电池
RTC(实时时钟)用来在COM板没有连接主电源的时候,提供时间和日期时钟电路的正常工作,通常使用+3V锂电池为RTC的时钟。COM Express定义了一个额外的电源脚“VCC_RTC”,用作将外部电池连接到RTC模块的电源上,规定电池的输入电压范围是+2.0V到+3.0V,“VCC_RTC”信号在A47脚上。
RTC电池电路需要有一个反接保护,可以通过一个SCHOTTKY二极管来实现,如下图。
这个电路的一个缺点是,由COM Express模块显示的电池电源监视结果可能会不正确,因为当系统允许的时候,漏电流的负载是电池电路的电容,这会导致在“VCC_RTC”脚上有一个较高的电压,从而引起监视结果的错误。
2.18.3.1 RTC电池寿命
RTC电池寿命决定系统电池替换的间隔时间。RTC电池电路的漏电流对电池的寿命影响是很大的,所以设计的时候,必须仔细考虑。
2.18.4 电源管理信号
COM Express定义了一些控制信号,用来控制系统的状态,比如上电和复位条件,这使得系统设计者能够实现ACPI全兼容系统。支持系统状态从S0到S5。一个ACPI兼容系统的最小硬件要求是一个ATX电源和电源按钮。
下面的表提供一个简洁的描述。
表34 系统状态S0-S5定义
系统状态 | 描述 | 电源状态 |
S0全部上电 | 系统全部工作,所以单元均供电 | 所有电源均上电 |
S1待机(PSO) | 休眠状态,系统上下文不丢失,硬件维持所有系统上下文,在S1器件,系统地一些元器件处于低功耗状态 | 所有电源均上电 |
S2 | 不支持 | |
S3 RAM待机(STR) | 当前的系统状态和上下文存于主内存中,所有不必要的系统逻辑断电 | 仅主存和唤醒系统需要的逻辑由Suspend电源供电,所有其它电源均关闭。 |
S4磁盘待机(STD) | 当前的系统状态和上下文存于磁盘中,所有不必要的系统逻辑断电。S4类似于S5,仅由OS支持 | 类似S5,所有其它电源均关闭 |
S5软件关机 | 在S5状态,系统切断电源,仅可能通过电源按钮或一个系统唤醒事件(比如WAKE ON LAN或者RTC报警)来重新启动, | Suspend电源供电,所有其它电源均关闭。 |
表35 电源管理信号描述
信号 | 脚 | 描述 | I/O | 注释 |
PWRBTN# | B12 | 电源按钮,低有效信号,用来将系统从S5状态唤醒,这个信号的下降沿触发。 | I 3.3V Suspend CMOS | 驱动>=10mA |
SYS_RESET# | B49 | 复位输入信号,由外部电路驱动,比如一个复位按钮,用来作为硬件复位 | I 3.3V Suspend CMOS | 驱动>=10mA |
CB_RESET# | B50 | 复位输出信号,由模块到载板,这个信号可以由模块驱动为低,用来复位载板上的元件 | O 3.3V Suspend CMOS | |
PWR_OK | B24 | 由ATX电源产生,通知模块DC操作电压已经达到规定的值。 | I 3.3V CMOS | |
SUS_STAT# | B18 | 休眠状态信号,表示系统很快就会进入一个低功耗模式,它能被载板上其它外设用作指示应该进入节电模式 | O 3.3V Suspend CMOS | |
SUS_S3# | A15 | S3休眠控制信号,表示系统停留在S3状态(RAM待机) | O 3.3V Suspend CMOS | 这个信号能用作控制ATX电源的PS_ON#信号 |
SUS_S4# | A18 | S4休眠控制信号,表示系统停留在S4状态(磁盘待机) | O 3.3V Suspend CMOS | |
SUS_S5# | A24 | S5休眠控制信号,表示系统停留在S5状态(Soft Off) | O 3.3V Suspend CMOS | |
WAKE0# | B66 | PCIe唤醒事件信号 | I 3.3V Suspend CMOS | |
WAKE1# | B67 | 通用目的唤醒信号 | I 3.3V Suspend CMOS | |
BATLOW# | A27 | 电池低输入,这个信号可以由外部电路来驱动为低,表示系统电池低,它也可以用作表示某些其它外部电源管理事件 | I 3.3V Suspend CMOS |
2.18.5 看门狗
图48 看门狗定时器事件锁存原理图
看门狗事件信号由COM Express模块提供,WDT输出是高有效,它源自COM Express模块的B27脚。
WDT事件可以通过载板上的适当连接来产生系统的复位。也可能配置模块复位WDT事件,详见厂家的模块用户手册。
如果WDT输出引起系统复位,WDT输出会被系统复位清楚。
WDFT能被锁存以驱动LED显示,如上图,注意锁存器由一个在所有电源状态下(包括软件关机状态)都有效的电源来供电,锁存器仅由上电复位来清除,冷开机由RSMRST#来产生,载板复位监视器(没有显示在这个图上)需要产生RSMRST#信号,复位监视器电路监视5V或3.3V Suspend电源(V5.0_S5或V3.3V_S5)。
2.18.6 通用目的的GPIO
表36 GPIO信号定义
信号 | 脚 | 描述 | I/O |
GPI0 | A54 | 通用目的输入脚,在COM Express模块内部上拉 | I 3.3V COMS |
GPI1 | A63 | 通用目的输入脚,在COM Express模块内部上拉 | I 3.3V COMS |
GPI2 | A67 | 通用目的输入脚,在COM Express模块内部上拉 | I 3.3V COMS |
GPI3 | A85 | 通用目的输入脚,在COM Express模块内部上拉 | I 3.3V COMS |
GPI0 | A93 | 通用目的输出脚,复位后应该为低电平输出 | O 3.3V COMS |
GPO1 | B54 | 通用目的输出脚,复位后应该为低电平输出 | O 3.3V COMS |
GPO2 | B57 | 通用目的输出脚,复位后应该为低电平输出 | O 3.3V COMS |
GPO3 | B63 | 通用目的输出脚,复位后应该为低电平输出 | O 3.3V COMS |
图49 通用目的I/O回环原理图
2.18.7 温度检测报警接口
COM Express提供“THRM#”和“THRMTRIP#”信号,用于系统温度管理,当前大部分系统平台,温度管理与系统电源密切相关,更详细的信息见COM模块的温度管理能力,参考厂家的模块用户手册。
表37 温度管理信号描述
信号 | 脚 | 描述 | I/O |
THRM# | B35 | 超温报警,低有效,由外部硬件产生,这个信号用来激发温度保护。 | I 3.3V CMOS |
THRMTRIP# | A35 | 指示处理器超温了,如果这个信号有效,系统应该立刻进入S5状态(软件关闭)。 | O 3.3V CMOS |