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

文档序号:9471324阅读:654来源:国知局
一种pci总线控制器及其控制方法
【技术领域】
[0001]本发明涉及基于PCI总线架构的计算机系统领域,具体为一种PCI总线控制器及其控制方法。
【背景技术】
[0002]基于PCI总线的计算机系统构成包括主设备和从设备两类,主设备发起PCI总线操作,从设备响应操作,并将PCI总线时序转换为本地总线时序,完成对本地设备的访问,PCI总线控制器是这种计算机系统的核心模块。
[0003]—种基于PCI总线的高速数据传输方法(中国专利CN102495817A)从应用角度介绍基于PCI总线进行高速数据传输的驱动程序的设计方法;一种PCI总线DMA高速数据传输方法(中国专利CN101916237A)通过PCI总线进行DMA数据传输的实现方法;应用于高速运行控制系统的PCI从设备核心控制模块(中国专利CN103729165)针对具体应用进行PCI总线的协议处理;一种从PCI总线扩展LBE总线的设计方法(中国专利CN103678220A)将PCI总线转换为特定的LBE总线。
[0004]PCI总线技术的研究及相关专利成果,主要是针对PCI总线技术的应用进行总线传输效率的提高、或者针对具体应用进行PCI协议处理,不能满足通用、可灵活配置、高效的系统应用需求。

【发明内容】

[0005]针对现有技术中存在的问题,本发明提供一种通用、配置灵活、高效的PCI总线控制器及其控制方法。
[0006]本发明是通过以下技术方案来实现:
[0007]—种PCI总线控制器,包括接口单元、控制单元和数据存储单元;
[0008]所述的接口单元包括SPI接口模块,PCI总线接口模块,Local总线接口模块,以及通用1模块;所述的控制单元包括SPI主控制器模块、数据加载控制模块、配置空间访问控制模块、PCI总线控制模块、fifo访问控制模块、Local总线控制模块、Local仲裁模块;所述的数据存储单元包括PCI配置空间寄存器模块、Local配置空间寄存器模块和fifo模块;
[0009]SPI总线接口模块、SPI主控制器模块、数据加载控制模块和配置空间访问控制模块依次连接;配置空间访问控制模块的输出端分别连接PCI配置空间寄存器模块和Local配置空间寄存器模块的控制端;Local配置空间寄存器模块的输出端连接通用10模块的配置端;SPI总线接口模块用于SPI接口信号的选择,作为10接口或者作为SPI总线;SPI主控制器模块用于检测外部EEPROM是否存在,并根据检测结果以及SPI总线接口信号的输入,对PCI配置空间寄存器模块和Local配置空间寄存器模块中的寄存器进行加载或不加载配置信息的初始化控制;PCI总线接口模块、PCI总线控制模块、fifo访问控制模块、fifo模块、Local总线控制模块和Local总线接口模块依次连接;
[0010]通过Local配置空间寄存器模块对Local配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给Local总线控制模块、通用1模块和Local仲裁模块;通过PCI配置空间寄存器模块对PCI配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给PCI总线控制模块;fifo模块用于PCI时钟域与Local时钟域的同步、传递地址/数据/控制信息;Local仲裁模块用于根据Local总线仲裁请求,在PCI总线控制器空闲时将Local总线控制模块的控制权交给其他Local主设备。
[0011 ] 优选的,控制单元还包括分别与PCI总线控制模块(⑶)和fifo访问控制模块((10))相互连接的DMA控制器模块((9));其用于完成DMA传输的启动与关闭、DMA中断、错误状态的产生和传输长度计数器的改变,并将读写控制信号及地址数据传递到Local端。
[0012]优选的,控制单元还包括输入端接入Local配置空间寄存器模块传递的配置信息的中断管理模块,其用于根据配置信息,完成PCI总线和Local总线中断使能与屏蔽控制,以及不同触发方式的Local总线中断响应与状态清除,提供PCI总线软中断控制。
[0013]优选的,所述的fifo模块包括写数据同步fifo模块、操作同步fifo模块和读数据同步fifo模块;写数据同步fifo模块用于实现32-Lword的写数据缓存,将PCI时钟域的写数据同步到Local时钟域;读数据同步fifo模块用于实现16-Lword的读数据缓存,将Local时钟域的读数据同步到PCI时钟域;操作同步fifo模块用于缓存读写操作地址、命令和字节使能,将该地址及控制信息从PCI时钟域同步到Local时钟域;写数据同步fifo模块的输入端接入PCI配置空间寄存器模块传递的配置信息。
[0014]—种PCI总线控制器的控制方法,基于上述的PCI总线控制器,包括,
[0015]—、进行EEPROM加载或不加载配置信息初始化的步骤;
[0016]系统上电后,数据加载控制模块检测SPI接口模块上接入的SPI总线接口信号,判断是否连接EEPROM的步骤;
[0017]不连接EEPROM时,产生控制信号给PCI配置空间寄存器模块和Local配置空间寄存器模块,并在两者内部进行配置信息的初始化;
[0018]连接EEPROM时,启动EEPROM自动加载,产生控制信号给SPI主控制器模块,由SPI主控制器模块产生SPI总线时序,通过SPI接口模块给对外部EEPROM进行连续读,并将读到的串行数据在SPI主控制器模块中进行串并转换,将转换后的并行数据在数据加载控制模块中进行EEPROM检测、数据有效性检测、连续读数据位数控制和地址编址操作完成地址和数据的加载配置,然后在配置空间访问控制模块中对加载配置的地址和数据进行选择控制和地址转换后,在PCI配置空间访问控制模块中对PCI配置空间寄存器进行加载配置访问,并将相关配置信息传递给PCI总线控制模块和写数据同步fifo模块;在Local配置空间寄存器模块中对Local配置空间寄存器进行加载配置访问,并将相关配置信息传递给通用10模块和Local仲裁模块;
[0019]二、进行PCI总线控制的步骤;
[0020]通过PCI总线接口模块将PCI总线操作传递给PCI总线控制模块,在PCI总线控制模块内部进行命令解析、地址译码、奇偶校验,并产生PCI总线访问应答信号给PCI总线接口模块;同时,在PCI总线控制模块内部完成PCI总线对PCI配置寄存器的读写访问;
[0021]如果PCI总线控制模块内部的地址译码是对Local配置寄存器访问,将PCI访问地址、数据及读写控制信号传递给配置空间访问控制模块,在配置空间访问控制模块内部进行PCI访问的选择控制,在PCI配置空间寄存器模块中完成PCI总线对Local配置寄存器的访问,并返回应答信号给PCI总线控制模块;
[0022]如果PCI总线控制模块内部的地址译码是对Local空间的访问,将访问地址、命令、写数据、控制信号传递到fifo访问控制模块,在fifo访问控制模块内部进行PCI访问的选择控制,将PCI地址映射成Local地址,产生写数据同步fifo模块和操作同步fifo模块的写控制信号,将映射后的地址、控制信号存入操作同步fifo模块,写数据存入写数据同步fifo模块,并将访问应答信号返回给PCI总线控制模块;
[0023]如果为读操作,在fifo访问控制模块内部产生读数据同步fifo模块的读控制信号,并将读出的数据、应答信号传递到PCI总线控制模块。
[0024]优选的,还包括进行DMA数据传输的步骤,该步骤下所述的PCI总线控制器作为PCI主设备;
[0025]当对DMA读时,启动DMA操作后,DMA控制器模块传递请求信号给PCI总线控制模块,PCI总线控制模块通过PCI总线接口模块向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块;DMA控制器模块收到应答后,将PCI操作地址、数据和命令控制信息传递给PCI总线控制模块,由PCI总线控制模块产生PCI总线读操作,通过PCI总线接口模块对外部从设备进行访问;将从外部从设备读回的数据通过DMA控制器模块传递到f i f ο访问控制模块;在内部进行DMA访问的选择控制,产生写数据同步f i f ο模块和操作同步fifo模块的写控制信号,将从相关寄存器中得到的Local地址和控制信号存入操作同步fifo模块,写数据存入写数据同步fifo模块;
[0026]当对DMA写时,启动DMA操作后,DMA控制器模块传递控制信号给fifo访问控制模块;在f i f ο访问控制模块内部进行DMA访问控制选择,产生操作同步f i f ο模块的写控制信号,将从相关寄存器得到的Local地址和控制信号存入操作同步fifo模块;Local端返回数据存入读数据同步fifo模块后,在fifo访问控制模块内部产生读控制信号,读出数据传递到DMA控制器模块;DMA控制器模块发起操作请求给PCI总线控制模块,PCI总线控制模块通过PCI总线接口模块向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块;DMA控制器模块收到应答后,将PCI操作地址、读出的数据和命令控制信息传递给PCI总线控制模块;由
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1