Low Pin Count协议

1 概述

1.1、信号线

Low Pin Count,是Intel于2002年提出用以替代ISA总线,总线速率最高为33MHz,一般在24MHz。该通信总线由7+6共13个信号线组成,7个必选信号和6个可选信号,其信号线如表1所示。

中断(Serialized IRQ)采用PCI的中断格式,具体详见1.4 Serialized IRQ

表 1 LPC信号线

1.1.1 LFRAME#

该信号线只能由主机驱动,低有效,当拉低时,指示一个Cycle即将开始或者结束,LFRAME#拉低最少占用一个clock,不超过3个clock,如果占用多个clock,那么以最后一个clock为准,LFRAME#拉低期间,从机在时钟的上升沿开始采样LAD[3:0]上的电平作为Start信号。

LFRAME#既可以指示Cycle通信开始,也可以终止Cycle通信,即连续拉低四个clock,指示该Cycle通信终止。

图 1典型的启动Cycle通信

图 2 拓展的启动Cycle通信

图 3 终止Cycle通信

1.1.2 LAD[3:0]

数据,指令,地址通过该组信号线传输,共四根信号线,分别是LAD3,LAD2,LAD1,LAD0,即Bit3,Bit2,Bit1,Bit0.

地址和指令传输是MSB方式,数据是LSB方式。具体传输方式如下表2。

表 2 LAD[3:0]传输方式

类型

数据值

LAD3(bit3)

LAD2(bit2)

LAD1(bit1)

LAD0(bit0)

clock

地址/

指令

0066h

0

0

0

0

1th

0

0

0

0

2th

0

1

1

0

3th

0

1

1

0

4th

数据

34h

0

1

0

0

1th

0

0

1

1

2th

1.1.3 LRESET#

该信号线是复位信号线,既可以是主机复位从机,也可以是从机复位主机,开漏输出。低有效,正常运行状态下,需要保持为高,否则LPC上产生的任何通信都是无效通信。

当LRESET#拉低时,从机的内部寄存器或者Buffer需要恢复默认状态。从机LPC的内部机制也要恢复至默认状态。

1.1.4 LCLK

该信号线是时钟信号线,用以同步LAD[3:0]信号线上传输的信息。LCLK只能由主机产生,从机对LCLK只能侦测,不能控制。

时钟频率最大是33.3MHz,一般在24MHz左右。

1.1.5 LDRQ#

该信号是可选信号,如果支持DMA或者Bus Master传输机制,那么LDRQ#必须支持,用以指示从机产生通信请求。该信号线是每个LPC外设单独占有,不能多个LPC外设共享一根LDRQ#信号线。一个LPC外设的DMA和Bus Master传输机制可以共用这一个LDRQ#信号线。

1.1.6 SERIIRQ

该信号线也是可选信号线,但是在LPC通信系统中,也是一个必要的信号线,它是一个用以传递中断号的信号线,具体传输协议详见1.4 章节LPC中断。

在PC中,LPC总线的中断,一般都是从机到主机的传输形式。

1.1.7 CLKRUN#

Clock Run,即让LPC时钟运行起来,该信号线是一个可选信号线,当主机进入低功耗模式,LCLK会停止,如果从机有DMA或者Bus Master请求,需要先拉高CLKRUN#通知主机把LCLK运行起来,然后拉低LDRQ#将请求传递给主机。

1.1.8 LPME#

LPC Power Management Event,该信号线是可选信号线,类似于PCI的PME信号,主要用作于从机唤醒主机,让主机推出低功耗模式。在EC与PCH的LPC总线中,该信号线可不选。

1.1.9 LPCPD#

LPC Power Down,该信号线是一个可选信号线,用作主机关机时,可告知LPC外设,让LPC外设断电或者进入设定的低功耗模式。在EC与PCH的LPC总线中,该信号线可不选。且该信号线由主机选择。

1.1.10 LSMI#

LPC System Management Interface, LPC系统管理中断,由从机到主机的传输形式。改信号是可选信号,一般使用SERIIRQ传递中断,不使用该信号线传递中断。

1.1.11 SERIIRQ

连续中断,用在LPC的通信系统中,作用是LPC的中断号传输,传输图形示意图如下:

图 4 SERIIRQ示意图

1.2、系统框图

Host Bus一般是CPU,目前SuperIO都集成到EC里,Host直接通过LPC总线访问EC的LPC从机,EC的LPC从机将信息 bypass到SuperIO。系统框图下图所示。

图 5 LPC系统框图

1.3、LPC协议

LPC协议遵循协议规范如下,底层硬件解码在时钟的上升沿采样LAD的电平值。

LFRAME#是通信的启动信号,拉低一段低脉冲后再拉高,说明主机开始与LPC外设进行通信。LPC外设在侦测到LFRAME#的下降沿后,开始准备接收信号,LFRAME#拉高表示Start信号已传输完毕,开始传输实际信息。

下表是整个LPC协议涉及到的通信协议,5种传输通道。分别是Memory,IO,DMA,Bus Master,Firmware,12种传输类型,分别是Memory R/W,IO R/W,DMA R/W,Bus Master Memory R/W,Bus Master IO R/W,Firmware Memory R/W,具体如表3所示。

表 3 LPC支持的Cycle Type

Cycle Type

Sizes Support

描述

Memory Read

1 byte

主机对LPC外设内存的读操作

Memory Write

1 byte

主机对LPC外设内存的写操作

IO Read

1 byte

主机对LPC外设的Super IO读

IO Write

1 byte

主机对LPC外设的Super IO写

DMA Read

1,2,4 byte

DMA读操作,主机和从机均可作为发起方

DMA Write

1,2,4 byte

DMA写操作,主机和从机均可作为发起方

Bus Master Memory Read

1,2,4 byte

LPC外设对主机的外挂内存进行读操作

Bus Master Memory Write

1,2,4 byte

LPC外设对主机的外挂内存进行写操作

Bus Master

IO Read

1,2,4 byte

LPC外设对主机的IO进行读操作

Bus Master

 IO Write

1,2,4 byte

LPC外设对主机的IO进行写操作

Firmware Memory Write

1,2,4,128 byte

一般用于主机对从机内存的写操作

Firmware Memory Read

1,2,4,128 byte

一般用于主机对从机内存的读操作

1.3.1、数据帧

1.3.1.1 Start

Start是协议开始的第一帧信息,以某个clock的高电平将LFRAME#拉低开始,下一个clock高电平将LFRAME#拉高结束,LFRAME#低脉冲阶段,读取clock上升沿时LAD[3:0]的电平值。就是Start信号的信息值。具体如表4。

表 4 Start编码定义

Bits[3:0]

定义

0000

指示IO 、Memory、DMA Cycle的开始信号

0001

保留

0010

Bus Master0

0011

Bus Master1

0100-1100

保留

1101

Firmware Memory Read

1110

Firmware Memory Write

1111

停止或终止此笔Cycle

图 6 Start示意图

1.3.1.2 Cycle Types / Direction

Cycle Type/Direction占1 clock,数据由LAD[3:1]三个bit构成,LAD0保留且有Host或者从机驱动为0。具体定义如下表。相应的时序图详见1.3.2章节。

该数据帧仅定义在IO 、DMA、Memory这三种协议通道上。

表 5 Cycle Types/Direction 编码定义

Bits[3:2]

Bit1

定义

00

0

IO Read

1

IO Write

01

0

Memory Read

1

Memory Write

10

0

DMA Read

1

DMA Write

11

x

保留,无论是Host还是Slave不允许驱动LAD[3:2]全为高或者是不驱动。

1.3.1.3 IDSEL

Device Select,设备选择,该数据帧仅用在Firmware传输通道中,该数据帧占1 clock,即LAD[3:0]上的4个bit值,该值会与固件的IC引脚上的电平值比对,一致则继续Cycle通信。该数据帧仅在主机上使用,一般是主机对外挂存储固件的访问,比如EEPROM或者Flash等。从机不需要支持Firmware传输通道。

1.3.1.4 MADDR

Memory Address,内存地址,该数据帧仅用在Firmware传输通道中。它占7 clock,28bit地址,最大支持256M的寻址范围。地址传输是MSB形式。

1.3.1.5 MSIZE

Memory Size,该数据帧仅用在Firmware传输通道中,用以指示当前Cycle通信中,传输数据的个数。占1 clock,即4 bits,具体编码如下表。

表 6 MSIZE编码定义

Bits

Direction

Size

0000b

R/W

1 byte

0001b

R/W

2 Bytes,2字节对齐

0010b

R/W

4 Bytes,4字节对齐

0011b

保留

0100b

R

16 bytes,16字节对齐

0101-0110

保留

0111

R

128 Bytes,128字节对齐

1000-1111

保留

1.3.1.3 Size

Size用以表示传输的字节个数,占1 clock,该数据帧定义在Firmware,DMA,Bus Master三种传输通道上。Size在LAD[1:0]上具体定义如下表:

表 7 Size 编码定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值