最新LPC总线介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在NB电路的架构框图中,我们可以看到PCH和EC之间通过LPC总线连接,在1
2
MB板上也会看到EC芯片旁边有一个JDEBUG的connector,其也与LPC总线相连,3
用于主板诊断。

下面将对LPC总线做一些简单介绍,希望能够帮助大家了解LPC 4
的工作原理:
5
1、LPC总线
6
LPC(Low Pin Count)是基于 Intel 标准的33 MHz4 bit 并行总线协议(但目前NB系统中LPC的时钟频率为24MHz,可能是由于CPU平台的不断发展导致7
8
的,后面会具体分析),用于代替以前的 ISA 总线协议,但两者性能相似,都用9
于连接南桥和Super I/O芯片、FLASH BIOS、EC等设备(由于目前EC芯片中整合了Super I/O功能,所以我们在NB系统中看不到LPC总线上挂有Super I/O
10
11
芯片了)。

12
传统ISA BUS速率大约在7.159~8.33MHz,提供的理论尖峰传输值为16MB/s,13
但是ISA BUS与传统的PCI BUS的电气特性、信号定义方式迥异,使得南桥芯片、14
Super I/O芯片浪费很多针脚来做处理,主板的线路设计也显得复杂。

为此,Intel 15
定义了LPC接口,将以往ISA BUS的地址/数据分离译码,改成类似PCI的地址/ 16
数据信号线共享的译码方式,信号线数量大幅降低,工作速率由PCI总线速率17
同步驱动(时钟同为33MHz),虽然改良过的LPC接口一样维持最大传输值16MB/s,18
但信号管脚却大幅减少了25~30个,以LPC接口设计的Super I/O芯片、Flash 19
芯片都能享有脚位数减少、体积微缩的好处,主板的设计也可以简化,这也是取名LPC——Low Pin Count的原因。

20
21
2、LPC总线的接口管脚
LPC总线由7个必选信号和6个可选信号组成,具体如下表所示:
22
23
表 3-2 LPC总线可选信号列表
24
信号外
设Host设

信号描述
LDRQ#O I外设进行DMA or bus mastering操作的总线
请求信号,一对一,外设之间不能共享同一个
LDRQ#
SERIR
Q
I/O I/O中断请求信号
CLKRU N#OD I/OD外设进行DMA or bus mastering操作才会需
要该信号,用于停止PIC bus,同PCI CLKRUN
信号
LPME#OD I/OD电源管理唤醒,与PCI PME相似
LPCPD
I O Power Down
#
LSMI#OD I SMI信号系统管理中断
25
MB板上的JDEBUG connector有12pin,没有连接LRESET#信号,只连接了
26
27
其余的6个必选信号,为主板诊断提供接口,其中CLK_DEBUG由PCH提供,24MHZ:
28
29
EC与PCH连接的LPC总线中除了包含7个必选信号,还包含SEEIRQ和
30
CLKRUN#信号。

这里需要注意的是JDEBUG的CLK信号与连接EC和PCH的LPC总31
线中CLK信号并非同一个信号。

PCH提供了2个输出24MHz时钟的管脚,但每个32
时钟只能驱动一个LPC设备,故EC和JDEBUG各连接一个。

33
34
3.LPC总线的通信协议
35
LPC总线支持多种事务类型的操作,例如IO读写、内存读写、DMA读写、Firmware
36
memory读写等。

一个cycle通常一下流程:
37
总线host拉低LFRAME#信号,指示cycle开始,同时将相关信息38
输出到LAD[3:0]上
39
主机Host根据Cycle类型驱动相应的信息到LAD[3:0]上,比如当前操作的事务类型、数据传输方向及size大小、访问地址等。

40
41
host根据Cycle类型的不同选择进行驱动数据或者是移交总线控42
制权。

43
外设获取总线控制权后,将相应的数据驱动到LAD[3:0]上。

表示44
该Cycle完成。

45
外设释放总线控制权。

至此该Cycle结束。

一个典型cycle通常由Start、Cyctype+Dir、ADDR 、Size(DMA only)、
46
47
Channel(DMA only)、TAR、Sync、DATA状态组成,下图是一个典型的cycle示48
例流程,该cycle类似于IO读或内存读操作中的cycle,DATA字段由外设驱动49
发送给host.
50
51
图4.1 cycle示意流程图
52
3.1 Start
53
Start用于指示一个传输的开始或者结束。

当FRAME#信号有效时,所有的
54
外设都要监视LAD[3:0]信号,并在FRAME#信号有效的最后一个时钟进入
55
START状态。

LAD[3:0]的值编码如下表
56
表4.1 Start状态 LAD[3:0]定义
57
58
3.2 Cycle Type/Direction(CYCTYPE+DIR)
59
该状态由Host驱动,对Cycle的传输类型(Memory、IO、DMA)以及传输方
向进行说明。

LAD[0]在该场中被保留,作为外设应该忽略。

具体定义值见下表
60
61
表4.2 Cyctype+DIR状态 LAD[3:0]定义
62
63
3.3 Size
64
该状态表示传输数据DATA字段的大小,由host驱动,当数数据为16或32bits,65
将分成多个DATA转态发送,Size只存在于DMA类型cycle中。

而在IO和内存66
类型cycle中,每个cycle只能传输8bits数据。

Size状态LAD[1:0]有效,LAD[3:2] 67
被忽略,LAD[3:0]具体定义如下
表4.3 Size状态 LAD[3:0]定义
68
Bits[1:0]定义
00传输的数据大小为8bits
01传输的数据大小为16bits
10保留
11传输的数据大小为32bits
69
70
3.4 ADDR/Channel
71
ADDR状态表示地址信息,由host驱动。

在IO cycle中,地址信息为16bits 72
(4个时钟周期);在内存 cycle中,地址信息为32bits(8个时钟);而在DMA 73
cycle中,则没有ADDR状态,取代的则是Channel状态(1个时钟)。

LAD[2:0] 74
表示channel的序号,其中channel 0~3为8bit channels, channel 5~7为16 75
bit channels, channel4一般被保留作为bus master 的请求信号。

ADDR的地76
址信息先从高位发送。

77
3.5 TAR(Turn-around)
78
TAR用于交换总线的控制权(2个时钟),当host要将总线转交给外设时,79
TAR由host驱动;当外设要将总线交还给host时,TAR由外设驱动。

TAR两个80
时钟周期的第一个时钟周期有host或外设驱动,LAD[3:0]=1111;第二时钟周期81
host或外设则将LAD[3:0]置为三态,但由于LAD[3:0]管脚内部有弱上拉,
82
LAD[3:0]还都是处于高逻辑电平,所以TAR的两个时钟LAD[3:0]都为1111.
83
84
3.6 Sync
85
Sync用来加入等待状态,持续时间为1~N个时钟周期。

在target或
86
者DMA传输操作时,Sync由外设驱动;在bus master操作时,Sync由Host 87
驱动。

可能的组合见表
88
表4.4 Sync状态 LAD[3:0]定义
89
90
当外设还没准备好时,可以插入一些等待周期0101(短等待)或0110(长等91
待),等到Ready状态来到时,可以选择驱动为“0000"(准备好),“1010”(错92
误)或者“1001"(Ready More)。

93
4.6.1 Sync Timeout
94
总线上通常可能发生以下几种潜在的错误:
95
1.当Host发起一个Cycle(Memory、IO、DMA)后,但是,总线上没有设备驱96
动SYNC场,当Host检测到3个连续的时钟内都没有响应时,便可以认为总线上97
没有外设响应此次Cycle操作。

98
2.Host驱动一个Cycle(Memory,IO,DMA),一个设备驱动了一个有效的SYNC
场来插入等待(LAD[3:0]=’0101b’或者’0110b’),但是却不能完成该
99
100
Cycle,这种情况在外设锁定的时候就发生了。

此时,Host应采取以下措施以解除总线死锁:
101
102
●假如SYNC是’0101b’,那么SYNC时钟周期最多为8个。

当Host检测103
到有多于8个时钟周期的SYNC场,那么Host将取消这个Cycle。

104
●假如SYNC是’0110b’,那么这里将没有最大SYNC长度的限制。

外设必105
须设计有保护机制来完成这个Cycle。

106
当由Host来驱动SYNC时,因为延迟的原因,它可能不得不插入大量的等待107
周期,但外设不应该认为有time out发生。

下图为SYNC的周期过长引起timeout,此时LFRAME#会拉低4个LCLK周期,进108
109
入start状态,来终止这个C
110
ycle.
111
图4.2 LFRAME终止cycle
112
113
4.7 DATA
114
DATA状态占用两个时钟周期,用于传送一个字节数据。

当数据流向外设115
时,该场由Host驱动;反之,当数据流向Host时,则该场由外设驱动。

在传116
输过程的时候,低4位最先被驱动到总线上,在第一个时钟,Data[3:0]被驱动,117
第二个时钟,Data[7:4]被驱动。

4.8 各事务类型操作举例
118
119
120
121
图4.3 memory read/write 122
123
124
图4.4 I/O read/write 125
126
127
图4.5 DMA read/write(16bits)
128
4、LPC总线的测量(逻辑分析仪)
129
130
用逻辑分析仪TLA5202测得LPC总线中LCLK、LFRAME#、LAD[3:0]信号,下面131
为测量的几组数据波形:
132
下面是测的是两个cycle的总体波形图,由于我在测试时外接的测试线过长,133
在cycle结束后的末期引入了串扰,图中的黄色框图中便为串扰信号波形,理想134
状态应该是LAD[3:0]统一保持高逻辑,后面再统一变为低逻辑。

这里我们可以看到时钟信号LCLK并不是一直输出的,只有当cycle开始时,PCH才会输出LCLK 135
136
信号,cycle结束后,若一段时间内不再有cycle传输,LCLK便不再输出。

137
138
图5.1 Cycle总体波形图
139
下图测试的是一组I/O read cycle,host要读取IO地址为0064H的数据,140
外设接管总线后,经过11个时钟周期的长等待SYNC状态(0110)后,变为ready 141
状态(sync为0000),然后外设将数据1CH发送给host,驱动TAR状态(FF),142
将总线控制权交还给host,这个cycle结束。

143
144
图5.2 I/O read cycle
145
下图测试的是一组I/O write cycle,host向IO地址025AH写入数据93H,146
外设接管总线后,经过8个时钟周期的长等待SYNC状态(0110)后,变为ready 147
状态(sync为0000),表明外设接收到数据,之后外设驱动TAR状态(FF),将148
总线控制权交还给host,这个cycle结束。

149
150
图5.3 I/O write cycle
151
下图测试的是time out情况,host向IO地址0080H写入数据01H,然后host 驱动TAR状态来移交纵向,但无外设驱动sync状态来接管总线,LAD一直处于152
153
弱上拉的高状态,经过5个时钟周期的无响应后,host拉低LFRAME#,保持4 154
个LCLK,进入start状态,LAD[3:0]=1111,则host将该cycle终结。

155
图5.4 time out
156
157。

相关文档
最新文档