-
Local
Bus
总线原理
2010-10-01 21:32:09
[
上一篇
|
下一篇
]
硬件家园
/
查看
( 65
)
/
评论
( 0
)
/
评分
( 0 / 0
)
相信搞硬件的朋友都应该对
Local
Bus
总线非常熟悉,
在当今的通信电子领
< br>域中,
几乎所有的
CPU
小系统
中都有它的身影。
Local
Bus
总线又称为
CPU
总线,
根据高低位地
址线序的差异,又可分为
Motorola
CPU
总线和
Intel CPU
总线
。
古老的
CS51
单片机就是
Intel
CPU
总线的典型代表,而我们常用的
Power
PC
就是
Motorola
CPU<
/p>
总线架构,
它是从
60X
总线衍变过来的
(60X
总线支持
64
、
32
、
16
、
8
四种可选位宽模式
)
,由于
Local Bus
总线是直接从
60X
总线上通过桥片
< br>分出来的,
所以它和
60X
总线
是同步同频的,
进行数据数据读写时与
60X
< br>总线共
享带宽,不需要内核提供额外的处理。如下图所示:
Device Bus(
数据
/
地址复用总线解复用后的
Device
Bus
叫
Local Bus)
总
p>
线一般采用数据
/
地址线复用的形式,
p>
通常为
32
位宽,
使用时需要将总线的数据
和地址分离出来再分别接到目标器件的数据和地址端口,
如连接到低速设备时还
需要通过
Buffer
起来来进行驱动和隔离。在早期的设计中,通过用信号锁存器
来
分离总线中的数据和地址
(
如经典锁存器
SN74LVC16373)
,不过现在基本上都
是通过逻辑
器件
CPLD
来进行解复用的。
利用锁
存器
373
对
Device
Bus
总线数据
/
地址
解复用原理如下图所示。
在上图中,
L_ALE
是地址锁存信号
,低电平有效,当
L_ALE
出现一个低电平
< br>脉冲时,
锁存器的输入端口对
LAD[31:0]
信号进行采样、
锁存并从输出端口输出,
直到
下一个
L_ALE
低电平脉冲到来时,其输出状态才发生改变,
Device Bus
总
线在输出地址
信号时将
L_ALE
信号驱动为低电平,输出数据信号时,将<
/p>
L_ALE
驱动为高电平,锁存器正式利用这个特点轻松实现
p>
Device
Bus
总线上数据和地
址的分离。
Local
Bus
总线上的
数据读写分为同步模式和异步模式。在同步模式下,需
要一个外部时钟信号供接收端和发
送端共用,
利用时钟信号的上升沿对数据进行
采样,
SDRAM
、
SSRAM
等高速信号使用同步模式;异步传输模式下,不使用时钟
信号对数据进行采样
(
芯片内部还是需要有系统参考时钟来产生时序的
)
,
而是利
用片选信号
CS
、写使能信号
WE
和读使
能信号
OE
对数据进行采样,使用异步模
式的器件有
FLASH
、
BOOTR
OM
等。
?
Device
Bus
总线数据及控制信号列表及功能说明:
1).LAD[31:0]
:数据
/
地址复用信号,数据线宽度可设为
< br>8
、
16
、
32
为三种
模式;地址线根数可根据实际存储空间大小来选
取,比如,
16
根地址线可支持
的寻址
空间大小为
(
针对
8
< br>位宽存储器件,
16
位宽存储器件需要乘以
2
,其他类
推
)
:
2
16
=
65536Byte=64KByte
。做为地址线时是单向输出,三态总线
,
LVTTL
电
平。做为数据线时是输
入
/
输出双向信号,三态
LVTTL<
/p>
。
2).CS_L
:
Chip
Select
,器件片选信号,低电平信号,
Local Bu
s
总线上每
个器件都有一个独立的
CS
_L
信号,
某个器件上的
CS_L
p>
信号为低电平时表示这个
器件被选中,
Lo
cal Bus
总线主控制器可以对其进行读写操作;
3).WE_L
:
Write
Enable
,写使能信号,低电平有效,
Local Bus
总线上的
WE_L
信号为低电平时,表
示在进行写操作,在异步传输模式下,它与
CS_L
信号
配合对写数据进行采样;
4).OE_L
:
Output Enable
,读使能信号,跟
WE_L
类似,在异步传输模式下<
/p>
与
CS_L
信号配合对读数据进行采样;
5).ALE_L
:
地址锁存信号,
低有效,
其功能已经在前面介
绍过了,
不在赘述;
6).Rdv:
应答信号,对读写操作进行应答;
7).INT
:中断输入信号;
8).RST_L
:复位信号;
9).CLK
:参考时钟信号,只在同步传输模式下使
用,异步模式下不使用,设
计中将其悬空即可。
实际应用中,一般只使用
LD
A/CS_L/WE_L/OE_L/ALE_L
这些信号,其他信号
< br>作为选用。
上面介绍的是针对
Intel
CPU
总线的,
Motorola CPU
总线有一点点差异,
后者将
OE_L
和
WE_L
合并成一根控制信号,
称
为
R/~W
,
当其为高电平时表示
p>
“读”
操作,为低电平时表示“写”操作。另外,后者还有一个
p>
DS
控制信号,当其为
低电平时表示总线上
传输的数据是有效的,否则为无效。
如果
Local
Bus
总线上挂
SDRAM
等高速存器器件时还需要行列选
择信号
RAS
和
CAS
以及数据奇偶校验信号
DP
。
?
CPU
总线的大端模式和小端模式
Intel
系列的
CP
U
总线是小端模式,也叫
Little-endian
byte ordering
,
其特点是低有效字节在低地址位
,高有效字节在高地址位。
Motorola
CPU
及
Power
PC
架构总线是大端模式,也叫
Big-endian
byte
ordering
,其特点是低有效字节在高地址位
,高有效字节在低地址位。
所以在使用大端模式总线连接外部器件时需要将地址线
进行倒序,
即最高位
地址线与外部器件的最低地址位相连,
p>
最低地址位地址线与外部器件的最高地址
位相连,其他依次连接。<
/p>
?
Local
Bus
总线的读写时序
下图为
FLASH
器件
MX29LV002CBTI
的读时序,
p>
该
FLASH
器件提供的
< br>Local
Bus
接口,
Ad
dresses
信号是从
Local
BUS
地址信号
(
已经解复用了
)
,
Outputs
是
Local
bus
的数据信号。在
第一个时钟周期内,
Address
信号线上传输的是目标器件
的
地址信号,此时
CS#
、
OE#
、
WE#
都处于高
电平无效状态,并且
Outputs
输出的数
< br>据无效。在第二个时钟周期内,
CE#
变为低电平,表示
目标器件已经被选中,接
着
OE#
也变
为低电平
(
大多数情况下,
CS#
p>
和
OE#
几乎是同时有效的
)
,
表示开始进
行读操作,主
控制器在
CE#
和
OE#
都为低电平有效的时候对
Outputs
上的数据进
行采样
(
通常做一定的延时后再采样,
以保证采样数据的正确性
)
,
采样到的数据
即为要读取的数据。
WE#
和
OE#
不会同时变低的,因为
Local Bus
总线是半双工
工作方式,不可能
同时进行读写两种操作。
(
点开看清楚大图
)
下图为
FLASH
器件
MX29LV002CBTI
的写时序,在<
/p>
WE#
和
CS#
同时为低有效的
情况下,
Flash
器
件从数据总线上采样数据,然后写到指定的地址空间里去。对
比下这两个图,我们会发现
,读操作时,
OE#
信号差不多在
AD
D Valid
周期的中
间部分有效,而写操作时,
WE#
信号几乎在
ADD Valid
周期的开始部分有效,为
什么有这个差异呢?其实想想也不难,
因为读操作流程是:
总线控制器给目标器
件发读取
数据指令,等目标器件收到指令后再将总线控制器要读取的数据传回
来,
这中间有线路的延时及目标器件的延时。
而写操作则不然,
可以将写操作命
令和要写的数据同时传到目标器件那边去,几乎没什么延时。
?
Local
Bus
总线的典型应用如下图所示:
如上图所示,
CPLD
p>
对
Device
bus
< br>总线进行了解复用后连接到
FPGA
、
< br>FLASH
和
NVRAM(CPLD
可以对
Local
Bus
总线的
大小端模式进行切换
)
,
利用
CS0_L
、
CS1_L
和
CS2_L
三根片选信号线来区分
Local bus
总线上的三个器件。
FPGA
使用了
32
根数据线中的
1
6
根,
32
根地址线中的
26
根。
我们再仔细看一下其地址线标号,为
A[26:1]
< br>,我们也许会疑问,会不会是
搞错了啊,怎么不是从最低位地址
< br>AO
开始啊?是的,我没有写错,你也没有看
错,实际上
就是从
A1
开始的。这是因为当数据线宽度为
< br>16
位双字节模式
(
也叫
WORD
模式,四个字节叫
DWORD
模式,单字节叫
BYTE
模式
)
时,
Local
bus<
/p>
总线的
A1
变为地址的最低位
(A0
悬空不用
)
,用它
去连接器件的最低位地址线
A0
。
这其实也很好理解,因为对于同样大的存储空间来说<
/p>
(
我们可以将存储空间
想象纵横交错的棋
盘状
)
,
当数据线
D(
棋盘中的横线
)
增加一倍的情
况下
(
从
8
位
增加到
16
位
)
,
要想保持数据线和地址线的乘积不变
(
存储空间容量不变
)
,
那么
就要将地址线减少一半
(
对于译码前的数据线来说,就是减少一根线
)
。下面的
p>
NVRAM
用的是
8
位
BYTE
模式,所以最低位地址仍然用
A0
去接。
SPI4.2
总线简介
上一篇
/
下一篇
2010-09-13
22:50:43 /
个人分类:
硬件家园
查看
( 83 ) /
评论
( 0 )
SPI4.2
即
System
Packet Interface Level 4 Phase
2
的意思。是
OIF(Optical
Internetworking Forum)
组织提出的一
种并行总线,主要用于链路层和物理层之间
的包数据传输,带宽为
10Gbps
。
SPI4.2
系统参
考模型如下图所示。
SPI4.2
总线数
据收发通道独立,宽度均为
16bit
,采用
< br>LVTTL
或
LVDS
单
端电平,
每根数据线上的最小数据速率为
62
2Mbps
,
收发通道各有一路源同步参
考时钟,
在时钟信号的上升沿和下降沿都对数据进行采样,
参
考时钟的最低频率
为
311MHz
。<
/p>
SPI4.2
物理结构如下图所示。
1).TDCLK
:数据发送通道随路时钟。
TDCL
K
与
TDATE,TCTL
信号同步,
TDATE
和
TCTL
在
TDCLK
的上升沿和下降沿采样。
2).TDATE[15:0]
:发送数据和带内控制信息。
< br>
3).TCTL
:发送控制通道。
TCTL=”1”<
/p>
时,
TDATE[15:0]
上传输的是
控制字;
TCTL=”0”
时,
TDA
TE[15:0]
上传输的是数据。
4).TSCLK
:发送
FIFO
状态参考时钟。与
TSTAT
信号同步。
< br>
5).TSTAT[1:0]
:发送
FIFO
状态信号。
6).RDCLK
:数据接收通道随路时钟。
RDCLK
与
RDATE,RCTL
信号同步,
R
DATE
和
RCTL
在
RDCLK
的上升沿和下降沿采样。
7).RDATE[15:0]
:接收数据和带内控制信息。<
/p>
< br>8).RCTL
:接收控制通道。
RCTL=”1”
p>
时,
RDATE[15:0]
上传输的是控
制字;
RCTL=”0”
时,
RDAT
E[15:0]
上传输的是数据。
9).RSCLK
:接收
FIFO
状态参考时钟。与
p>
RSTAT
信号同步。
10).RSTAT[1:0]
:接收
FIFO
状态信号。
嵌入式
CP
U
与外设的总线研究
日期
:2009-5-9
9:07:41
作者
:admin
< br>来源
:
深科特集团
文字
〖
大
中
小
〗
双击滚屏
< br>当前嵌入式处理器的工作频率越来越高,
其外部总线速率也大幅提升,
当遇到读写周期十分缓慢的输
入
/
输出设备或需要定制外部总线速率时,就需要设计相应的外部硬件等逻辑
电路<
/p>
。本文针对集成通信处
理器
MPC827
2
在通信领域中的应用,讨论其与外设的总线适配问题。
MPC8272
介绍
MPC8272
是
Motorola
公司
2004
< br>年推出的第
2
代
PowerQU
C
通信。
该通信处理器采用
MPC60
3e
核心处
理器,核心处理器工作频率达
400 MHz
,外部总线工作频率达
100 MHz
,总线支持
32
位地址,
64
位数据
位宽操作。另外该通信处理器内嵌一个
32
位
RISC
处理器
的通信处理模块,集成有
MAC
、
FC
C
、
SMC
、
ATM
、
HDLC
、
< br>UART
、
T1
、
USB
、
PCI
等设备通信
接口,以及
1
个
60x
总线接口连接通用外围设备,非
常适用于通信控制领域的应用。
1
.
MPC8272
读写时序
MPC8272
总线对外部器件的读、写访问是通过控制模块来实现的,存储器控制模块
生成
8
个外部存储
器地址空间片选信号
CSO
~
CS7
,每个片选信号对应
2
个主要控制寄存器
BR
和
OR
,用它们来定义片选<
/p>
信号所定义的地址空间和对等待状态数、读写选通信号的建立时间、激活时间、保持时间等
的设置。
MPC8272
对外部器件数据读、写时序如图
1
、图
2
所示。其中
tc
是外部总线工作时钟
Clock<
/p>
的时钟周期,
tRC
和
< br>tWC
分别是读写指令周期,
tW
是读写指令周期内插入的
Clock
时钟周期。当不使用外部
输入信号
TA(
数据传输确认信号
)<
/p>
时,插入的时钟周期数由
0R
寄存器的<
/p>
SCY
值确定,其值最大为
15
个时钟周期;
当使用外部输入信号
TA
时,插入的时钟周期数由其确定;当输入信号
TA
变低时
(
即外设数据准备好时
)
p>
,
处理器即可完成此次数据的读写操作。
MPC8272
的外部总线工作频率可达
100 MHz
。当读写指令周期不插入时钟周期时,其外部总线指令周
期为
2
个时钟周期
——
p>
20
ns
,外部总线速率最高可达
(50×
N)Mbps(
其中
N
为总线数据位宽
)
。该速率
对于
一般通用外设来说是很高的,需调整
OR
< br>寄存器的
SCY
值以降低总线速率与外设进行读写操作。
插入最
大
15
个时钟周期时,外部总线
指令周期最大为
17
个时钟周期
——<
/p>
170
ns
,此时外部总线速率最低为
(5
.
8×
N
)Mbps
,该速率满足常用外设的总线读写要求。对于通信的一些特殊外设,如交换网
络电路
MT90826
、双口
RAM
IDT71V321
、
TMS320V
C5416
等接口,需采用处理器
MPC8272
的外部数据传输确
认信号
TA
并设计相应的外部硬件等待进一步降低总线速率或动态插入任何数目的等待时钟周期
t
W
,以
避免数据读写冲突,提高处理器总线效率和数据传输可靠
性。
2
.外设读写时序分析
作为语音通信产品,嵌入式处理器主要外设的工作是:
话音交换矩阵完成话音交换;完成
DTMF
收发
号、
FSK
来电号码显示以及会场话音融合等;双口<
/p>
RAM
完成嵌入式处理器与其他处理器间的数据通信;
显示器用于参数设置或功能显示等。各外设的总线接口具有读、写周期长且不确定等特点,不能直接 与
MPC8272
总线连接,需设计相应的外部硬件电路以满足
外设的读写时序要求。以下分别对各外设接口进
行介绍。
MT90826
是
4
096×
4 096
通道无阻塞大型话音交换矩阵电路,
支持
2
.
048 M
bps
、
4
.
096 Mbps
、
8
.
192Mbps
和
16
.<
/p>
384
.
Mbps
等
ST
—
BUS
格式数据流。电路采用顺序写入控制读出交换机理,每个输出通道对应一
个连接寄存
器。
嵌入式处理器通过在输出通道的连接寄存器中写入输入通道的地址,
完成输入与输出通道
话音数据流的交换。
嵌入式处理器
对
MT90826
的读写操作是否完成,
可通过
MT90826
的数据传输确认信
号
DTA
指示,其时序如图
3
p>
所示。当
DTA
信号在片选周期内由高变低
后,表示嵌入式处理器可以结束本
次总线的读写操作了。
tAK
D
时间长短并不确定,其最大值为
240 ns
,最小值为
0
。
在一个系统中,可能存在多片数字信号处理器
TMS320VC
5416
,它们分别完成
DTMF
收发
号、
FSK
来电号码显示和会场话音融合等功能。
TMS320VC5416
采用
8
< br>位
HPI
接口与嵌入式处理器进行数据交
换,其通信原理与两个处理器之间采用双口
RAM
进行
数据通信相似,即两处理器共享一段内存空间,分
不同时间对其读写操作。
当处理器
1
正在对一个内存地址操作
(
读或写
)
,
而处理器
2
也需对其进行操作
(
写
或读
)
时
,此时输出忙占用信号,处理器
2
需等待忙占用信号结束后才能
完成本次写或读操作。
TMS320VC5416
与双口
RAM IDT71V321
的不同之处在于:
嵌入式处理器操作
IDT71V321
是直接内
存
操
作,
而嵌
入式
处理
器操作
TMS32
0VC5416
是通过
HPI
接
口
地
址
、数
据寄存
器
间接
操
作
TMS320VC5416
的内存空间的。
另外,
TMS320VC5416
的
H
PI
接口忙信号
HRDY
为高电平有效
,
IDT71V321
接口忙信号
BU
SY
为低电平有效。
HRDY
和
BUSY
信号的产生均具有随机性,且随着总线
操作频率的增加而加大;忙等待时间
tRDY
和
tBUSY
也具有不确定性,与其通信的处理器运行速度的快
慢有关,读写时序如图
4
所示。
VGGl2864E<
/p>
是
128×
64
点阵
OLED
显示模块,读写时序如图
5
所示。该
OLED
模块的使能信号<
/p>
E
的周
期
tEC
最小为
1 000
ns(
相当于固定
1 Mbps
的总线
速率
)
,使能信号脉冲宽度
tEH
p>
、
tEL
最小为
4
50 ns
。嵌
入式处理器
MPC82
72
若采用总线方式直接控制
0LED
模块,则
MPC8272
的读、写周期最大值为
170 ns
,
其读、
写时序
不能满足该
OLED
模块的要求,
需设
计相应的外部硬件等待逻辑电路来扩展
MPC8272
的读、<
/p>
写周期时长,以满足
OLED
模块的要求。
3
.总线适配设计
快速嵌入式处理器与慢速外设的总线适配方法大致有<
/p>
3
种:降低外部总线频率、调整片选控制寄存器
< br>时钟周期数和使用外部输入确认信号
TA(Intel
处
理器名为数据准备好信号
RDY
,三星处理器名为总线周
期延长请求信号
nwait
,它们的工作原理
相同
)
。
降低嵌入式处理器外部总线频率可加长总线数据传输周期,达到与低速外设匹配的目的,
但大大降低
了处理器的利用率和效率。该方法不可取。
调整嵌入式处理器片选控制寄存器的插入时钟周期数,
可以满足总线周期固定且不大于处理器外部总
线周期的外设的要求,但不能满足总线周期
不确定和大于处理器外部总线周期的外设的要求。例如,
MPC8272
的外部总线工作频率为
100 MHz
,
外部总线指令周期最大为
170
ns
,
可以满足总线周期小于
170
ns
的外设的要求,但不能与
0LED
模块
(
周期为
l000 ns)
连接。由于
TMS320VC5416
和
IDT71V321
接口的
不确定性,其总线也不能与嵌入式处理器总线直接连接,需使用其外部输入确认信号
TA
并设计外部逻辑
电路进行适配,以满足稳定、可靠的外
部总线读写需要,其硬件连接如图
6
所示。
MT90826
数据总线接
口为
1
6
位宽,
设置
MPC8272
的片选
CS4
为
16<
/p>
位宽与其匹配;
其他外设数据总线均为
8
位宽,
共用
MPC8272
的片选
CS5
,并与高位地址线
< br>A18
、
A17
进行地址译码产
生其他外设的片选使能信号。
CEPM3064
的详细
设计如图
7
所示。