一种pci总线控制器及其控制方法_3

文档序号:9471324阅读:来源:国知局
在控制器空闲时,可以将控制权移交给其他Local主设备。
[0062]具体的在进行PCI总线控制时,通过如下方法实现上述功能控制;本发明控制器结构如图1所示。
[0063]系统上电后,数据加载控制模块3检测SPI总线接口信号,判断是否连接EEPR0M。不连接EEPROM时,产生控制信号给PCI配置空间寄存器模块5和Local配置空间寄存器模块6,在PCI配置空间寄存器模块5和Local配置空间寄存器模块6内部进行配置信息的初始化。连接EEPROM时,启动EEPROM自动加载,产生控制信号给SPI主控制器模块2,由SPI主控制器模块2产生SPI总线时序,通过SPI接口模块I模块给对外部EEPROM进行连续读,并将读到的串行数据在SPI主控制器模块2中进行串并转换,将转换后的并行数据在SPI主控制器模块3中进行EEPROM检测、数据有效性检测、连续读数据位数控制、地址编址操作,加载配置的地址和数据在配置空间访问控制模块4中进行选择控制和地址转换后,在PCI配置空间寄存器模块5中对PCI配置空间寄存器进行加载配置访问,在Local配置空间寄存器模块6中对Local配置空间寄存器进行加载配置访问,并将相关配置信息传递给PCI总线控制模块8、写数据同步fifo模块11、中断管理模块16、通用10模块17和Local仲裁模块18。
[0064]本发明控制器通过PCI总线接口模块7将PCI总线操作传递给PCI总线控制模块8,在PCI总线控制模块8内部进行命令解析、地址译码、奇偶校验,并产生PCI总线访问应答信号给PCI总线接口模块7。同时,在PCI总线控制模块8内部完成PCI总线对PCI配置寄存器的读写访问。如果PCI总线控制模块8内部的地址译码是对Local配置寄存器访问,将PCI访问地址、数据及读写控制信号传递给Local配置空间寄存器模块4。在Local配置空间寄存器模块4内部进行PCI访问的选择控制,在PCI配置空间寄存器模块5中完成PCI总线对Local配置寄存器的访问,并返回应答信号给PCI总线控制模块8。如果PCI总线控制模块8内部的地址译码是对Local空间的访问,将访问地址、命令、写数据、控制信号传递到fifo访问控制模块10。在fifo访问控制模块10内部进行PCI访问的选择控制,将PCI地址映射成Local地址,产生写数据同步fifo模块11和操作同步fifo模块12的写控制信号,将映射后的地址、控制信号存入操作同步fifo模块12,写数据存入写数据同步fifo模块11,并将访问应答信号返回给PCI总线控制模块8。如果为读操作,在fifo访问控制模块10内部产生读数据同步fifo模块13的读控制信号,并将读出的数据、应答信号传递到PCI总线控制模块8。
[0065]对于DMA读,启动DMA操作后,DMA控制器模块9传递请求信号给PCI总线控制模块8,PCI总线控制模块8通过PCI总线接口模块7向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块9。DMA控制器模块9收到应答后,将PCI操作地址、数据、命令等控制信息传递给PCI总线控制模块8。由PCI总线控制模块8产生PCI总线读操作,通过PCI总线接口模块7对外部从设备进行访问。将从外部从设备读回的数据通过MA控制器模块9传递到fifo访问控制模块10。在fifo访问控制模块10内部进行DMA访问的选择控制,产生写数据同步fifo模块11和操作同步fifo模块12的写控制信号,将从相关寄存器中得到的Local地址、控制信号存入操作同步fifo模块12,写数据存入写数据同步fifo模块11。
[0066]对于DMA写,启动DMA操作后,DMA控制器模块9传递控制信号给fifo访问控制模块10。在fifo访问控制模块10内部进行DMA访问控制选择,产生操作同步fifo模块12的写控制信号,将从相关寄存器得到的Local地址、控制信号存入操作同步fifo模块12。Local端返回数据存入读数据同步fifo模块13后,在fifo访问控制模块10内部产生读控制信号,读出数据传递到DMA控制器模块9。DMA控制器模块9发起操作请求给PCI总线控制模块8,PCI总线控制模块8通过PCI总线接口模块7向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块9。DMA控制器模块9收到应答后,将PCI操作地址、读出的数据、命令等控制信息传递给PCI总线控制模块8。由PCI总线控制模块8产生PCI总线写操作时序,通过PCI总线接口模块7将数据写入外部从设备。
[0067]Local总线控制模块14检测到操作同步fifo模块12非空后,产生操作同步fifo模块12的读控制信号。将从操作同步fifo模块12读出的数据进行解析,判断读写操作类型,并根据Local配置空间寄存器模块6传递的Local寄存器配置,产生相对应的Local总线时序,并通过通用10模块17将操作传递到本地设备。Local写操作时,在Local总线控制模块14内部产生写数据同步fifo模块11的读控制信号,从写数据同步fifo模块11中读出写数据到Local的数据总线上。Local读操作时,在Local总线控制模块14内部产生读数据同步fifo模块13的写控制信号,将从Local数据总线上读回的数据写入读数据同步fifo模块13。
[0068]中断管理模块I6根据Local配置空间寄存器模块6传递的中断触发方式,根据两个本地中断和DMA中断输入产生PCI中断,通过PCI总线接口模块7传递到总线上,并提供PCI中断使能和软中断功能。
[0069]通用10模块17根据Local配置空间寄存器模块6传递的通用10的输入输出配置方式进行输入输出的使能控制。输入时将Local总线接口模块15传递的相应管脚状态传递给Local配置空间寄存器模块6 ;输出时将Local配置空间寄存器模块6传递的对应寄存器位的值通过Local总线接口模块15反映到相应的管脚上。
[0070]Local仲裁模块18根据Local配置空间寄存器模块6传递的仲裁抢占方式和Local总线控制模块14传递的Local总线状态,在Local总线请求信号有效时,给出仲裁应答信号,并通过Local总线接口模块15传递到Local总线上。
[0071]根据上述方案,用Verilog HDL语言对控制器的逻辑设计进行描述,仿真验证后,在Altera公司的FPGA器件EP1C20F400I7上进行了原型验证和测试。测试结果表明本发明SPI加载正常、能够响应各种PCI总线操作、DMA数据传输正常,具有很好的可实施性。
【主权项】
1.一种PCI总线控制器,其特征在于,包括接口单元、控制单元和数据存储单元; 所述的接口单元包括SPI接口模块⑴,PCI总线接口模块(7),Local总线接口模块(15),以及通用1模块(17); 所述的控制单元包括SPI主控制器模块(2)、数据加载控制模块(3)、配置空间访问控制模块⑷、PCI总线控制模块⑶、fifo访问控制模块(10)、Local总线控制模块(14)、Local仲裁模块(18); 所述的数据存储单元包括PCI配置空间寄存器模块(5)、Local配置空间寄存器模块(6)和fifo模块; SPI总线接口模块⑴、SPI主控制器模块(2)、数据加载控制模块(3)和配置空间访问控制模块⑷依次连接;配置空间访问控制模块⑷的输出端分别连接PCI配置空间寄存器模块(5)和Local配置空间寄存器模块(6)的控制端;Local配置空间寄存器模块(6)的输出端连接通用1模块(17)的配置端;SPI总线接口模块⑴用于SPI接口信号的选择,作为1接口或者作为SPI总线; SPI主控制器模块(2)用于检测外部EEPROM是否存在,并根据检测结果以及SPI总线接口信号的输入,对PCI配置空间寄存器模块(5)和Local配置空间寄存器模块(6)中的寄存器进行加载或不加载配置信息的初始化控制; PCI总线接口模块(7)、PCI总线控制模块⑶、fifo访问控制模块(10)、fifo模块、Local总线控制模块(14)和Local总线接口模块(15)依次连接; 通过Local配置空间寄存器模块(6)对Local配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给Local总线控制模块(14)、通用10模块(17)和Local仲裁模块(18); 通过PCI配置空间寄存器模块(5)对PCI配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给PCI总线控制模块(8);fifo模块用于PCI时钟域与Local时钟域的同步、传递地址/数据/控制信息; Local仲裁模块(18)用于根据Local总线仲裁请求,在PCI总线控制器空闲时将Local总线控制模块(14)的控制权交给其他Local主设备。2.根据权利要求1所述的一种PCI总线控制器,其特征在于,控制单元还包括分别与PCI总线控制模块⑶和fifo访问控制模块(10)相互连接的DMA控制器模块(9);其用于完成DMA传输的启动与关闭、DMA中断、错误状态的产生和传输长度计数器的改变,并将读写控制信号及地址数据传递到Local端。3.根据权利要求1所述的一种PCI总线控制器,其特征在于,控制单元还包括输入端接Λ Local配置空间寄存器模块(6)传
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1