1、9054 简介: PCI9054 的主要功能就是实现 PCI 总线和本地总线(一般为哈佛结构)之间的数据通信,一共有三种数据传输方式:主模式、从模式、DMA 方式。PCI9054 芯片内部主要由两路数据 FIFO 通道、内部寄存器、EEPROM 和控制电路构成。两个通道分别为 DMA0 和 DMA1,他们的功能基本相同,其中 DMA0 还可以传输命令指令。PCI9054 有三种工作模式:M,J,CM 模式,直接为 Motorola 公司的 MPC850 和 MPC860 准备的非复用接口;C 模式,地址,数据线不复用;J 模式,地址数据线复用。由于 M 模式使用范围比较小,J 模式使用起来控制
2、比较复杂,一般使用 C 模式。PIN 定义:所有模式AD31:0(Address and Data)地址和时钟复用,首先是一个地址段,后面跟着一个或多个数据段,支持突发模式的读写;C/BE3:0#(Bus Command and Byte Enables)总线命令和数据使能复用管脚,在 AD 为地址线的时候作为总线命令,在 AD 为数据线的时候作为数据使能;DEVSEL#(Device Select)有效的时候表示当前设备被选中,作为输入端口;FRAME#(Cyclone Frame)由主设备驱动,用来表示当前设备已经开始接入,总线开始传输数据。有效:传输数据。无效:完成最后一个数据的传输;G
3、NT#(Grant)用来表示当前接入的设备已经被接受;IDSL(Initialization Device Select)在配置寄存器读写的时候用做片选信号;INTA#(Interrupt A)PCI 中断请求;IRDY#(Initiator Ready)说明当前数据有效,可以并要完成传输;LOCK#(Lock)提示有自动操作,需要消耗若干个时钟来完成操作;PAR(Parity)作为 AD 和 C/BE 两部分总线的基偶校验,在传输地址的时候 PAR 要在地址传输完毕后一个时钟周期保持稳定。对于数据段,PAR 要在 IRDY#或者 TRDY#有效以后一个时钟周期保持稳定。一旦 PAR 数据有效
4、,将保持有效到当前数据或地址段传输结束;PCLK(Clock)系统时钟,9054 工作在 33MHz;PERR#(Parity Error)用来报告奇偶校验错误,不包括特殊周期;PME#(Power Management Event)唤醒中断;REQ#(Request)请求信号,通知总线判决器,当前设备必须使用总线;RST#(Reset)系统复位;SERR#(System Error)用来报告特殊周期的奇偶校验错误和其他系统错误;STOP#(Stop)要求主系统,停止当前设备的数据传输;TRAY#(Target Ready)目标设备准备完毕,可以传输当前数据;BIGEND#(Big Endia
5、n Select)CCS#(Configuration Register Select)低有效的片选信号;EECS(Serial EEPROM Chip Select)选择串行 EEPROM;EEDI/DDEO(Serial EEPROM Data In/ Serial EEPROM Data Out)控制串行 EEPROM 读写数据;EESK(Serial Data Clock)EEPROM 读写时钟;ENUM#(Enumeration)突发输出,用来表示一个使用 PCI9054 芯片的适配器刚刚从一个CPI 总线通道里面加入或者移出;LCLK(Local Processor Clock)本
6、地时钟输入;LEDon/LEDin LED 控制;LFRAME#(PCI Buffered FRAME# Signal)指示 PCI 总线的状态;LINT#(Local Interrupt)本地总线中断。输入到 9054,低有效,触发一个 PCI 中断。作为输出,等待到一个触发发生;LRESETo#(Local Bus Reset Out)当 PCI9054 芯片被复位以后,该管脚可以用来驱动其他芯片的 RESET#信号;MDREQ#/MDPAF/EOT#MODE1:0(Bus Mode)11:M 模式;10:J 模式;01:保留;00:C 模式;TEST(Test Pin)芯片检测管脚,高为
7、检测,低为工作,平时置低;USERi/BACK0#/LLOCKi# 复用管脚USERo/DREQ0#/LLOCKo# 复用管脚VDD 电源VSS 地C 模式:ADS#(Address Strobe)说明地址有效,总线有新设备接入;BLAST#(Burst Last)该信号由本地总线控制,表示最后一个字符的传输;BREQi(Bus Request In)本地总线控制,数据从本地总线输入;BREQo(Bus Request Out)PCI 总线控制,数据从 PCI 总线输出;BTERM#(Burst Terminate)作为输入,表示当前突发操作结束,开始下一个突发地址的读写,和 PCI9054
8、内部的可编程等待状态生成器一起使用。作为输出,和 READY#一起使用,中断当前突发操作,开始下一个突发操作地址周期;DP3:0(Data Parity)奇偶校验数据;LA31:2(Address Bus)地址总线;LBE3:0#(Byte Enable)控制数据有效,不同的模式有不同的控制方法;LD31:0(Data Bus)数据总线;LHOLD(Hold Request)发送要求使用本地总线,本地总线决定分配给当前装置以后,判决器发送 LHOLDA 信号反馈;LHOLDA(Hold Request)反馈信号;LSERR#(System Error Interrupt Output)系统错误
9、中断;LW/R#(Write/?Read)低电平读,高电平写;READY#(Ready Input/Output)无论主还是从模式,表示数据准备好,有效;WAIT#(Wait Input/Output)作为输入,控制 PCI9054 插入等待状态。作为输出,PCI9054处于 Ready 状态。J 模式:ADS#(Address Strobe)说明地址有效,总线有新设备接入;ALE(Address Latch Enable)地址传输时有效,数据传输时无效;BLAST#(Burst Last)该信号由本地总线控制,表示最后一个字符的传输;BREQi(Bus Request In)本地总线控制,数
10、据从本地总线输入;BREQo(Bus Request Out)PCI 总线控制,数据从 PCI 总线输出;BTERM#(Burst Terminate)作为输入,表示当前突发操作结束,开始下一个突发地址的读写,和 PCI9054 内部的可编程等待状态生成器一起使用。作为输出,和 READY#一起使用,中断当前突发操作,开始下一个突发操作地址周期;DEN#(Data Enable)和 DT/R#连接在一起使用,用来控制和本地总线连接的数据收发器;DP3:0(Data Parity)奇偶校验数据;DT/R#(Data Transmit/Receive)与 DEN#连接在一起使用,有效的时候 PCI
11、9054 接收数据;LA28:2(Local Address Bus)本地总线地址;LAD31:0(Address/Data Bus)地址周期:该总线包括了物理地址总线的上位。数据周期:该总线传输位数据;LBE3:0#(Byte Enable)控制数据有效,不同的模式有不同的控制方法;LHOLD(Hold Request)发送要求使用本地总线,本地总线决定分配给当前装置以后,判决器发送 LHOLDA 信号反馈;LHOLDA(Hold Request)反馈信号;LSERR#(System Error Interrupt Output)系统错误中断;LW/R#(Write/Read)低电平读,高电
12、平写;READY#(Ready Input/Output)无论主还是从模式,表示数据准备好,有效;WAIT#(Wait Input/Output)作为输入,控制 PCI9054 插入等待状态。作为输出,PCI9054 处于 Ready 状态。C 模式总线周期PCI 总线周期:PCI Target Command CodesPCI Master Command Modes当 PCI 作为主动控制方的时候有两种传输方式:DMA 和 Local-to-PCI 两种,其中 DMA 不能控制 I/O 和配置管脚,它们的命令分别如下:DMALocal-to-PCIPCI9054 芯片主要通过 REQ#这个
13、信号来取得 PCI 总线的使用权。当 FRAME#有效的时候将REQ#失效,否则 REQ#一直保持有效。另外 PCI 也可以写延迟模块,通过 DMPBAM14:15来控制分别使用 0,4,8,16 个延迟在 PCI 总线从本地总线获得写的第一个数据以后,也就是开始要写所有数据之前。这种情况适用于本地总线做主,本地时钟比较慢的情况,可以首先在 FIFO 里面存储一定量的数据,保持 DMA 的利用率。本地总线周期:PCI9054 与本地总线之间有 M、C 和 J 三种连接方式,有 MODE1:0来控制。PCI9054 通过LHOLD 信号向本地总线发送请求,并通过 LHOLDA 信号回映。当 BR
14、EQi 信号被置为有效以后,PCI9054 将要在两个 LWORD 周期以内释放本地总线。接下来本地总线释放 LHOLDA 以后,如果还需要使用本地总线,PCI9054 再将 LHOLD 置有效请求本地总线。在本地总线操作中 BLAST#信号用来截止操作的,如果在传输第一个字节的时候将 BLAST#信号置有效,就只传送一个字节,否则 BLAST#信号一直无效,直到传送完毕最后一个字节以后,将 BLAST#置有效,停止突发传输。等待控制:PCI-PCI9054:TRDY#&IRDY#;LOCAL-PCI9054:READY#&WAIT#。在 PCI 启动阶段,PCI9054 作为被动状态,由本地
15、总线写入控制寄存器数据,这个时候 PCI9054 通过延迟READY#的置有效来产生延迟,而本地总线通过 WAIT#信号来通知 PCI9054 需要等待。相反,在 PCI 传输和 DMA 模式阶段,PCI9054 作为本地总线的控制器,通过将 WAIT#信号置有效在插入等待状态,而本地处理器通过延迟 READY#信号实现等待。可以控制等待时间,并插入第一个地址和数据信号之间。在 PCI 启动状态,必须将 WAIT#信号置有效,确保在 ADS 阶段 PCI9054 芯片可以检测到等待状态。在 PCI 传输和 DMA 模式的时候,READY#信号没有用途直到等待状态计数器减到零,这个时候才可以通过在数据传输的过程中将 READY#信号置为无效来控制等待时间。PCI 和 PCI9054 之间的连接可以由芯片控制。 C 模式时序:PCI initiator:PCI target: