CN105224488B - 一种pci总线控制器及其控制方法 - Google Patents
一种pci总线控制器及其控制方法 Download PDFInfo
- Publication number
- CN105224488B CN105224488B CN201510684941.6A CN201510684941A CN105224488B CN 105224488 B CN105224488 B CN 105224488B CN 201510684941 A CN201510684941 A CN 201510684941A CN 105224488 B CN105224488 B CN 105224488B
- Authority
- CN
- China
- Prior art keywords
- module
- local
- control
- modules
- pci
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000012546 transfer Methods 0.000 claims abstract description 14
- 230000001360 synchronised effect Effects 0.000 claims description 47
- 238000011068 loading method Methods 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 210000000352 storage cell Anatomy 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000000465 moulding Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 235000008409 marco Nutrition 0.000 claims description 2
- 244000078446 marco Species 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明一种PCI总线控制器及其控制方法,通过SPI接口信号复用,提供EEPROM加载或者不加载两种配置信息初始化方式,使用灵活;其通过多个接口模块的设置,能够实现SPI总线、PCI总线、Local总线与相应管脚接口。能够作为PCI主从设备,应用范围广,满足系统的不同要求;作为PCI主设备时,进行DMA数据传输,无需CPU干预,提高系统效率。当PCI总线控制器作为PCI总线主设备发起总线操作,完成系统内存与Local设备之间的数据交互;非DMA传输时,该PCI总线控制器作为PCI总线从设备响应总线操作。提供8位、16位、32位复用/非复用Local总线接口,且可配置实现突发、预取、内部等待、外部等待、写周期保持、读写选通延迟、大小端对齐、本地片选、本地中断等多种工作方式,通用性强。
Description
技术领域
本发明涉及基于PCI总线架构的计算机系统领域,具体为一种PCI总线控制器及其控制方法。
背景技术
基于PCI总线的计算机系统构成包括主设备和从设备两类,主设备发起PCI总线操作,从设备响应操作,并将PCI总线时序转换为本地总线时序,完成对本地设备的访问,PCI总线控制器是这种计算机系统的核心模块。
一种基于PCI总线的高速数据传输方法(中国专利CN102495817A)从应用角度介绍基于PCI总线进行高速数据传输的驱动程序的设计方法;一种PCI总线DMA高速数据传输方法(中国专利CN101916237A)通过PCI总线进行DMA数据传输的实现方法;应用于高速运行控制系统的PCI从设备核心控制模块(中国专利CN103729165)针对具体应用进行PCI总线的协议处理;一种从PCI总线扩展LBE总线的设计方法(中国专利CN103678220A)将PCI总线转换为特定的LBE总线。
PCI总线技术的研究及相关专利成果,主要是针对PCI总线技术的应用进行总线传输效率的提高、或者针对具体应用进行PCI协议处理,不能满足通用、可灵活配置、高效的系统应用需求。
发明内容
针对现有技术中存在的问题,本发明提供一种通用、配置灵活、高效的PCI总线控制器及其控制方法。
本发明是通过以下技术方案来实现:
一种PCI总线控制器,包括接口单元、控制单元和数据存储单元;
所述的接口单元包括SPI接口模块,PCI总线接口模块,Local总线接口模块,以及通用IO模块;所述的控制单元包括SPI主控制器模块、数据加载控制模块、配置空间访问控制模块、PCI总线控制模块、fifo访问控制模块、Local总线控制模块、Local仲裁模块;所述的数据存储单元包括PCI配置空间寄存器模块、Local配置空间寄存器模块和fifo模块;
SPI总线接口模块、SPI主控制器模块、数据加载控制模块和配置空间访问控制模块依次连接;配置空间访问控制模块的输出端分别连接PCI配置空间寄存器模块和Local配置空间寄存器模块的控制端;Local配置空间寄存器模块的输出端连接通用IO模块的配置端;SPI总线接口模块用于SPI接口信号的选择,作为IO接口或者作为SPI总线;SPI主控制器模块用于检测外部EEPROM是否存在,并根据检测结果以及SPI总线接口信号的输入,对PCI配置空间寄存器模块和Local配置空间寄存器模块中的寄存器进行加载或不加载配置信息的初始化控制;PCI总线接口模块、PCI总线控制模块、fifo访问控制模块、fifo模块、Local总线控制模块和Local总线接口模块依次连接;
通过Local配置空间寄存器模块对Local配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给Local总线控制模块、通用IO模块和Local仲裁模块;通过PCI配置空间寄存器模块对PCI配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给PCI总线控制模块;fifo模块用于PCI时钟域与Local时钟域的同步、传递地址/数据/控制信息;Local仲裁模块用于根据Local总线仲裁请求,在PCI总线控制器空闲时将Local总线控制模块的控制权交给其他Local主设备。
优选的,控制单元还包括分别与PCI总线控制模块和fifo访问控制模块相互连接的DMA控制器模块;其用于完成DMA传输的启动与关闭、DMA中断、错误状态的产生和传输长度计数器的改变,并将读写控制信号及地址数据传递到Local端。
优选的,控制单元还包括输入端接入Local配置空间寄存器模块传递的配置信息的中断管理模块,其用于根据配置信息,完成PCI总线和Local总线中断使能与屏蔽控制,以及不同触发方式的Local总线中断响应与状态清除,提供PCI总线软中断控制。
优选的,所述的fifo模块包括写数据同步fifo模块、操作同步fifo模块和读数据同步fifo模块;写数据同步fifo模块用于实现32个长字的写数据缓存,将PCI时钟域的写数据同步到Local时钟域;读数据同步fifo模块用于实现16个长字的读数据缓存,将Local时钟域的读数据同步到PCI时钟域;操作同步fifo模块用于缓存读写操作地址、命令和字节使能,将该地址及控制信息从PCI时钟域同步到Local时钟域;写数据同步fifo模块的输入端接入PCI配置空间寄存器模块传递的配置信息。
一种PCI总线控制器的控制方法,基于上述的PCI总线控制器,包括,
一、进行EEPROM加载或不加载配置信息初始化的步骤;
系统上电后,数据加载控制模块检测SPI接口模块上接入的SPI总线接口信号,判断是否连接EEPROM的步骤;
不连接EEPROM时,产生控制信号给PCI配置空间寄存器模块和Local配置空间寄存器模块,并在两者内部进行配置信息的初始化;
连接EEPROM时,启动EEPROM自动加载,产生控制信号给SPI主控制器模块,由SPI主控制器模块产生SPI总线时序,通过SPI接口模块给对外部EEPROM进行连续读,并将读到的串行数据在SPI主控制器模块中进行串并转换,将转换后的并行数据在数据加载控制模块中进行EEPROM检测、数据有效性检测、连续读数据位数控制和地址编址操作完成地址和数据的加载配置,然后在配置空间访问控制模块中对加载配置的地址和数据进行选择控制和地址转换后,在PCI配置空间访问控制模块中对PCI配置空间寄存器进行加载配置访问,并将相关配置信息传递给PCI总线控制模块和写数据同步fifo模块;在Local配置空间寄存器模块中对Local配置空间寄存器进行加载配置访问,并将相关配置信息传递给通用IO模块和Local仲裁模块;
二、进行PCI总线控制的步骤;
通过PCI总线接口模块将PCI总线操作传递给PCI总线控制模块,在PCI总线控制模块内部进行命令解析、地址译码、奇偶校验,并产生PCI总线访问应答信号给PCI总线接口模块;同时,在PCI总线控制模块内部完成PCI总线对PCI配置寄存器的读写访问;
如果PCI总线控制模块内部的地址译码是对Local配置寄存器访问,将PCI访问地址、数据及读写控制信号传递给Local配置空间寄存器模块,在Local配置空间寄存器模块内部进行PCI访问的选择控制,在PCI配置空间寄存器模块中完成PCI总线对Local配置寄存器的访问,并返回应答信号给PCI总线控制模块;
如果PCI总线控制模块内部的地址译码是对Local空间的访问,将访问地址、命令、写数据、控制信号传递到fifo访问控制模块,在fifo访问控制模块内部进行PCI访问的选择控制,将PCI地址映射成Local地址,产生写数据同步fifo模块和操作同步fifo模块的写控制信号,将映射后的地址、控制信号存入操作同步fifo模块,写数据存入写数据同步fifo模块,并将访问应答信号返回给PCI总线控制模块;
如果为读操作,在fifo访问控制模块内部产生读数据同步fifo模块的读控制信号,并将读出的数据、应答信号传递到PCI总线控制模块。
优选的,还包括进行DMA数据传输的步骤,该步骤下所述的PCI总线控制器作为PCI主设备;
当对DMA读时,启动DMA操作后,DMA控制器模块传递请求信号给PCI总线控制模块,PCI总线控制模块通过PCI总线接口模块向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块;DMA控制器模块收到应答后,将PCI操作地址、数据和命令控制信息传递给PCI总线控制模块,由PCI总线控制模块产生PCI总线读操作,通过PCI总线接口模块对外部从设备进行访问;将从外部从设备读回的数据通过DMA控制器模块传递到fifo访问控制模块;在内部进行DMA访问的选择控制,产生写数据同步fifo模块和操作同步fifo模块的写控制信号,将从相关寄存器中得到的Local地址和控制信号存入操作同步fifo模块,写数据存入写数据同步fifo模块;
当对DMA写时,启动DMA操作后,DMA控制器模块传递控制信号给fifo访问控制模块;在fifo访问控制模块内部进行DMA访问控制选择,产生操作同步fifo模块的写控制信号,将从相关寄存器得到的Local地址和控制信号存入操作同步fifo模块;Local端返回数据存入读数据同步fifo模块后,在fifo访问控制模块内部产生读控制信号,读出数据传递到DMA控制器模块;DMA控制器模块发起操作请求给PCI总线控制模块,PCI总线控制模块通过PCI总线接口模块向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块;DMA控制器模块收到应答后,将PCI操作地址、读出的数据和命令控制信息传递给PCI总线控制模块;由PCI总线控制模块产生PCI总线写操作时序,通过PCI总线接口模块将数据写入外部从设备。
优选的,还包括进行Local总线控制的步骤;Local总线控制模块检测到操作同步fifo模块非空后,产生操作同步fifo模块的读控制信号;将从操作同步fifo模块读出的数据进行解析,判断读写操作类型,并根据Local配置空间寄存器模块传递的Local寄存器配置,产生相对应的Local总线时序,并通过通用IO模块将操作传递到本地设备;
Local写操作时,在Local总线控制模块内部产生写数据同步fifo模块的读控制信号,从写数据同步fifo模块中读出写数据到Local的数据总线上;
Local读操作时,在Local总线控制模块内部产生读数据同步fifo模块的写控制信号,将从Local数据总线上读回的数据写入读数据同步fifo模块。
优选的,还包括产生PCI中断使能和进行软中断的步骤;中断管理模块根据Local配置空间寄存器模块传递的中断触发方式,根据两个本地中断和DMA中断输入产生PCI中断,通过PCI总线接口模块传递到总线上。
优选的,还包括对通用IO进行输入输出使能控制的步骤;通用IO模块根据Local配置空间寄存器模块传递的通用IO的输入输出配置方式进行输入输出的使能控制;输入时将Local总线接口模块传递的相应管脚状态传递给Local配置空间寄存器模块;输出时将Local配置空间寄存器模块传递的对应寄存器位的值通过Local总线接口模块反映到相应的管脚上。
优选的,还包括对Local总线进行仲裁的步骤;Local仲裁模块根据Local配置空间寄存器模块传递的仲裁抢占方式和Local总线控制模块传递的Local总线状态,在Local总线请求信号有效时,给出仲裁应答信号,并通过Local总线接口模块传递到Local总线上。
与现有技术相比,本发明具有以下有益的技术效果:
(1)本发明中通过SPI接口信号复用,提供EEPROM加载或者不加载两种配置信息初始化方式,使用灵活;其通过多个接口模块的设置,能够实现SPI总线、PCI总线、Local总线与相应管脚接口。
(2)本发明可以作为PCI主从设备,应用范围广,可以满足系统的不同要求;作为PCI主设备时,进行DMA数据传输,无需CPU干预,提高系统效率。当PCI总线控制器作为PCI总线主设备发起总线操作,完成系统内存与Local设备之间的数据交互;非DMA传输时,该PCI总线控制器作为PCI总线从设备响应总线操作。
(3)本发明提供8位、16位、32位复用/非复用Local总线接口,且可配置实现突发、预取、内部等待、外部等待、写周期保持、读写选通延迟、大小端对齐、本地片选、本地中断等多种工作方式,能够根据需求挂接不同的Local设备,具有很强的通用性。
(4)本发明支持预取预读模式,该模式下,当PCI访问连续地址时,可直接从内部FIFO取出数据,提高PCI总线效率。
(5)本发明支持延迟读模式,该模式下,以重试方式结束本次PCI读操作,控制器在不占用PCI总线的情况下进行Local访问并返回读数据到内部fifo模块,主设备重试本次读操作时,直接读出数据,提高PCI总线效率。
附图说明
图1为本发明实例中所述控制器的结构框图。
图中:1为SPI接口模块、2为SPI主控制器模块、3为数据加载控制模块、4为配置空间访问控制模块、5为PCI配置空间寄存器模块、6为Local配置空间寄存器模块、7为PCI总线接口模块、8为PCI总线控制模块、9为DMA控制器模块、10为fifo访问控制模块、11为写数据同步fifo模块、12为操作同步fifo模块、13为读数据同步fifo模块、14为Local总线控制模块、15为Local总线接口模块、16为中断管理模块、17为通用IO模块、18为Local仲裁模块。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明所述的PCI总线控制器,是一款通用的PCI总线控制器,能够提供标准的PCI总线接口、SPI总线接口、以及配置灵活的Local总线接口,适用于基于PCI总线的计算机系统。
控制器具体功能包括:通过SPI总线接口对本发明控制器配置信息的自动/手动加载;SPI接口信号复用为普通IO,根据SPI接口的不同输入,无需加载配置信息对控制器进行初始化,完成设备选择;作为PCI从设备,响应主设备发起的配置/Memory/IO读写访问,读访问时支持预读预取和延迟读模式,减少读操作占用PCI总线的时间,提高总线效率;作为主设备,发起PCI总线操作,进行DMA数据传输;将PCI总线操作转换为可灵活配置的Local总线操作,可挂接不同的本地设备。
为实现以上功能,本发明控制器包括18个模块,具体包括:SPI总线接口模块1、SPI主控制器模块2、数据加载控制模块3、配置空间访问控制模块4、PCI配置空间寄存器5、Local配置空间寄存器6、PCI总线接口模块7、PCI总线控制模块8、DMA控制器模块9、fifo访问控制模块10、写数据同步fifo模块11、读数据同步fifo模块12、操作同步fifo模块13、Local总线控制模块14、Local总线接口模块15、中断管理模块16、通用IO模块17和Local仲裁模块18。
SPI总线接口模块1,主要用于SPI接口信号的选择,作为普通IO使用或者作为SPI总线使用,并SPI主控制器与相应管脚的接口。
SPI主控制器模块2,主要用于产生SPI总线时序,通过SPI总线接口对外部SPI从设备EEPROM进行访问,加载控制器的配置数据;
数据加载控制模块3,主要用于控制SPI主控制器,完成外部EEPROM检测、数据有效性检测、连续读数据控制、加载数据到配置空间,同时还提供PCI端通过Local配置寄存器进行重新加载操作。
配置空间访问控制模块4,主要用于数据加载模块对PCI和Local配置寄存器的访问、PCI总线对PCI配置寄存器和Local配置寄存器的访问、访问接口的切换控制;当SPI接口信号作为普通IO使用时,完成对PCI配置寄存器和Local配置寄存器的初始化。
PCI/Local配置空间寄存器模块5、6,主要用于实现控制器支持的PCI/Local配置寄存器,同时输出相应的控制位,并根据控制器的工作情况返回相应的状态。
PCI总线接口模块7,主要用于PCI总线控制模块与相应管脚的接口。
PCI总线控制模块8,主要用于产生或响应PCI总线的各种访问时序,包括PCI配置访问、PCI总线的Memory/IO方式访问等,并对地址和数据进行奇偶校验,返回相应的控制及状态信息。
DMA控制器模块9,主要用于完成DMA传输的启动与关闭、DMA中断、错误状态的产生、传输长度计数器的改变,并将读写控制信号及地址数据传递到Local端。
写数据同步fifo模块11,主要用于实现32个长字的写数据缓存,将PCI时钟域的写数据同步到Local时钟域。
读数据同步fifo模块13,主要用于实现16个长字的读数据缓存,将Local时钟域的读数据同步到PCI时钟域。
操作同步fifo模块12,主要用于缓存读写操作地址、命令、字节使能,将这些地址及控制信息从PCI时钟域同步到Local时钟域。
fifo访问控制模块10,主要用于PCI总线控制模块8和DMA控制器9对内部fifo模块的访问控制,并根据Local控制寄存器的配置产生结束PCI总线的控制信号,实现控制器延迟读功能。非DAM传输时,PCI总线控制模块访问内部fifo,并在该模块内进行PCI地址到Local地址的映射;DMA传输时DMA控制器访问内部fifo。
Local总线接口模块15,主要用于Local总线控制模块与相应管脚的接口。
Local总线控制模块14,对操作同步fifo模块12传递Local地址进行地址译码,根据译码结果对不同的Local空间进行访问;并根据Local相关配置寄存器的设置,产生的8/16/32位Local总线时序,并完成对突发、预取、外部等待、五种内部等待、读写信号、四个本地片选、复用/非复用、大小端对齐的控制。
中断管理模块16,根据配置空间设置,完成PCI和Local中断使能与屏蔽控制,以及不同触发方式的Local中断响应与状态清除等,同时也提供了PCI软中断控制。
通用IO控制模块17,主要根据Local配置寄存器关于通用IO的设置,对9个通用IO进行控制,包括输出控制和输入状态检测。
Local仲裁模块18,主要根据Local总线的工作状态以及Local总线仲裁请求信号状态,对Local总线控制权进行仲裁,在控制器空闲时,可以将控制权移交给其他Local主设备。
具体的在进行PCI总线控制时,通过如下方法实现上述功能控制;本发明控制器结构如图1所示。
系统上电后,数据加载控制模块3检测SPI总线接口信号,判断是否连接EEPROM。不连接EEPROM时,产生控制信号给PCI配置空间寄存器模块5和Local配置空间寄存器模块6,在PCI配置空间寄存器模块5和Local配置空间寄存器模块6内部进行配置信息的初始化。连接EEPROM时,启动EEPROM自动加载,产生控制信号给SPI主控制器模块2,由SPI主控制器模块2产生SPI总线时序,通过SPI接口模块1模块给对外部EEPROM进行连续读,并将读到的串行数据在SPI主控制器模块2中进行串并转换,将转换后的并行数据在SPI主控制器模块3中进行EEPROM检测、数据有效性检测、连续读数据位数控制、地址编址操作,加载配置的地址和数据在配置空间访问控制模块4中进行选择控制和地址转换后,在PCI配置空间寄存器模块5中对PCI配置空间寄存器进行加载配置访问,在Local配置空间寄存器模块6中对Local配置空间寄存器进行加载配置访问,并将相关配置信息传递给PCI总线控制模块8、写数据同步fifo模块11、中断管理模块16、通用IO模块17和Local仲裁模块18。
本发明控制器通过PCI总线接口模块7将PCI总线操作传递给PCI总线控制模块8,在PCI总线控制模块8内部进行命令解析、地址译码、奇偶校验,并产生PCI总线访问应答信号给PCI总线接口模块7。同时,在PCI总线控制模块8内部完成PCI总线对PCI配置寄存器的读写访问。如果PCI总线控制模块8内部的地址译码是对Local配置寄存器访问,将PCI访问地址、数据及读写控制信号传递给Local配置空间寄存器模块6。在Local配置空间寄存器模块6内部进行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。
对于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。
对于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将数据写入外部从设备。
Local总线控制模块14检测到操作同步fifo模块12非空后,产生操作同步fifo模块12的读控制信号。将从操作同步fifo模块12读出的数据进行解析,判断读写操作类型,并根据Local配置空间寄存器模块6传递的Local寄存器配置,产生相对应的Local总线时序,并通过通用IO模块17将操作传递到本地设备。Local写操作时,在Local总线控制模块14内部产生写数据同步fifo模块11的读控制信号,从写数据同步fifo模块11中读出写数据到Local的数据总线上。Local读操作时,在Local总线控制模块14内部产生读数据同步fifo模块13的写控制信号,将从Local数据总线上读回的数据写入读数据同步fifo模块13。
中断管理模块16根据Local配置空间寄存器模块6传递的中断触发方式,根据两个本地中断和DMA中断输入产生PCI中断,通过PCI总线接口模块7传递到总线上,并提供PCI中断使能和软中断功能。
通用IO模块17根据Local配置空间寄存器模块6传递的通用IO的输入输出配置方式进行输入输出的使能控制。输入时将Local总线接口模块15传递的相应管脚状态传递给Local配置空间寄存器模块6;输出时将Local配置空间寄存器模块6传递的对应寄存器位的值通过Local总线接口模块15反映到相应的管脚上。
Local仲裁模块18根据Local配置空间寄存器模块6传递的仲裁抢占方式和Local总线控制模块14传递的Local总线状态,在Local总线请求信号有效时,给出仲裁应答信号,并通过Local总线接口模块15传递到Local总线上。
根据上述方案,用Verilog HDL语言对控制器的逻辑设计进行描述,仿真验证后,在Altera公司的FPGA器件EP1C20F400I7上进行了原型验证和测试。测试结果表明本发明SPI加载正常、能够响应各种PCI总线操作、DMA数据传输正常,具有很好的可实施性。
Claims (10)
1.一种PCI总线控制器,其特征在于,包括接口单元、控制单元和数据存储单元;
所述的接口单元包括SPI接口模块(1),PCI总线接口模块(7),Local总线接口模块(15),以及通用IO模块(17);
所述的控制单元包括SPI主控制器模块(2)、数据加载控制模块(3)、配置空间访问控制模块(4)、PCI总线控制模块(8)、fifo访问控制模块(10)、Local总线控制模块(14)、Local仲裁模块(18);
所述的数据存储单元包括PCI配置空间寄存器模块(5)、Local配置空间寄存器模块(6)和fifo模块;
SPI总线接口模块(1)、SPI主控制器模块(2)、数据加载控制模块(3)和配置空间访问控制模块(4)依次连接;配置空间访问控制模块(4)的输出端分别连接PCI配置空间寄存器模块(5)和Local配置空间寄存器模块(6)的控制端;Local配置空间寄存器模块(6)的输出端连接通用IO模块(17)的配置端;SPI总线接口模块(1)用于SPI接口信号的选择,作为IO接口或者作为SPI总线;
SPI主控制器模块(2)用于检测外部EEPROM是否存在,并根据检测结果以及SPI总线接口信号的输入,对PCI配置空间寄存器模块(5)和Local配置空间寄存器模块(6)中的寄存器进行加载或不加载配置信息的初始化控制;
数据加载控制模块(3)用于检测SPI接口模块(1)上接入的SPI总线接口信号,判断是否连接EEPROM;并用于进行EEPROM检测、数据有效性检测、连续读数据位数控制和地址编址操作完成地址和数据的加载配置;
配置空间访问控制模块(4)用于对在数据加载控制模块(3)中加载配置的地址和数据进行选择控制和地址转换;
PCI总线接口模块(7)、PCI总线控制模块(8)、fifo访问控制模块(10)、fifo模块、Local总线控制模块(14)和Local总线接口模块(15)依次连接;
通过Local配置空间寄存器模块(6)对Local配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给Local总线控制模块(14)、通用IO模块(17)和Local仲裁模块(18);
通过PCI配置空间寄存器模块(5)对PCI配置空间寄存器进行加载配置访问,并将相应的控制位、配置工作模式和返回工作状态的配置信息传递给PCI总线控制模块(8);
fifo模块用于PCI时钟域与Local时钟域的同步、传递地址/数据/控制信息;
Local仲裁模块(18)用于根据Local总线仲裁请求,在PCI总线控制器空闲时将Local总线控制模块(14)的控制权交给其他Local主设备。
2.根据权利要求1所述的一种PCI总线控制器,其特征在于,控制单元还包括分别与PCI总线控制模块(8)和fifo访问控制模块(10)相互连接的DMA控制器模块(9);其用于完成DMA传输的启动与关闭、DMA中断、错误状态的产生和传输长度计数器的改变,并将读写控制信号及地址数据传递到Local端。
3.根据权利要求1所述的一种PCI总线控制器,其特征在于,控制单元还包括输入端接入Local配置空间寄存器模块(6)传递的配置信息的中断管理模块(16),其用于根据配置信息,完成PCI总线和Local总线中断使能与屏蔽控制,以及不同触发方式的Local总线中断响应与状态清除,提供PCI总线软中断控制。
4.根据权利要求1所述的一种PCI总线控制器,其特征在于,所述的fifo模块包括写数据同步fifo模块(11)、操作同步fifo模块(12)和读数据同步fifo模块(13);写数据同步fifo模块(11)用于实现32个长字的写数据缓存,将PCI时钟域的写数据同步到Local时钟域;读数据同步fifo模块(12)用于实现16个长字的读数据缓存,将Local时钟域的读数据同步到PCI时钟域;操作同步fifo模块(13)用于缓存读写操作地址、命令和字节使能,将该地址及控制信息从PCI时钟域同步到Local时钟域;写数据同步fifo模块(11)的输入端接入PCI配置空间寄存器模块(5)传递的配置信息。
5.一种PCI总线控制器的控制方法,基于权利要求4中所述的PCI总线控制器,其特征在于,包括,
一、进行EEPROM加载或不加载配置信息初始化的步骤;
系统上电后,数据加载控制模块(3)检测SPI接口模块(1)上接入的SPI总线接口信号,判断是否连接EEPROM的步骤;
不连接EEPROM时,产生控制信号给PCI配置空间寄存器模块(5)和Local配置空间寄存器模块(6),并在两者内部进行配置信息的初始化;
连接EEPROM时,启动EEPROM自动加载,产生控制信号给SPI主控制器模块(2),由SPI主控制器模块(2)产生SPI总线时序,通过SPI接口模块(1)给对外部EEPROM进行连续读,并将读到的串行数据在SPI主控制器模块(2)中进行串并转换,将转换后的并行数据在数据加载控制模块(3)中进行EEPROM检测、数据有效性检测、连续读数据位数控制和地址编址操作完成地址和数据的加载配置,然后在配置空间访问控制模块(4)中对加载配置的地址和数据进行选择控制和地址转换后,在PCI配置空间访问控制模块(5)中对PCI配置空间寄存器进行加载配置访问,并将相关配置信息传递给PCI总线控制模块(8)和写数据同步fifo模块(11);在Local配置空间寄存器模块(6)中对Local配置空间寄存器进行加载配置访问,并将相关配置信息传递给通用IO模块(17)和Local仲裁模块(18);
二、进行PCI总线控制的步骤;
通过PCI总线接口模块(7)将PCI总线操作传递给PCI总线控制模块(8),在PCI总线控制模块(8)内部进行命令解析、地址译码、奇偶校验,并产生PCI总线访问应答信号给PCI总线接口模块(7);同时,在PCI总线控制模块(8)内部完成PCI总线对PCI配置寄存器的读写访问;
如果PCI总线控制模块(8)内部的地址译码是对Local配置寄存器访问,将PCI访问地址、数据及读写控制信号传递给Local配置空间寄存器模块(6),在Local配置空间寄存器模块(6)内部进行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)。
6.根据权利要求5所述的一种PCI总线控制器的控制方法,其特征在于,还包括进行DMA数据传输的步骤,该步骤下所述的PCI总线控制器作为PCI主设备;
当对DMA读时,启动DMA操作后,DMA控制器模块(9)传递请求信号给PCI总线控制模块(8),PCI总线控制模块(8)通过PCI总线接口模块(7)向系统申请占用PCI总线,并将获得总线控制权的应答信号传递给DMA控制器模块(9);DMA控制器模块(9)收到应答后,将PCI操作地址、数据和命令控制信息传递给PCI总线控制模块(8),由PCI总线控制模块(8)产生PCI总线读操作,通过PCI总线接口模块(7)对外部从设备进行访问;将从外部从设备读回的数据通过DMA控制器模块(9)传递到fifo访问控制模块(10);在(10)内部进行DMA访问的选择控制,产生写数据同步fifo模块(11)和操作同步fifo模块(12)的写控制信号,将从相关寄存器中得到的Local地址和控制信号存入操作同步fifo模块(12),写数据存入写数据同步fifo模块(11);
当对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)将数据写入外部从设备。
7.根据权利要求5所述的一种PCI总线控制器的控制方法,其特征在于,还包括进行Local总线控制的步骤;Local总线控制模块(14)检测到操作同步fifo模块(12)非空后,产生操作同步fifo模块(12)的读控制信号;将从操作同步fifo模块(12)读出的数据进行解析,判断读写操作类型,并根据Local配置空间寄存器模块(6)传递的Local寄存器配置,产生相对应的Local总线时序,并通过通用IO模块(17)将操作传递到本地设备;
Local写操作时,在Local总线控制模块(14)内部产生写数据同步fifo模块(11)的读控制信号,从写数据同步fifo模块(11)中读出写数据到Local的数据总线上;
Local读操作时,在Local总线控制模块(14)内部产生读数据同步fifo模块(13)的写控制信号,将从Local数据总线上读回的数据写入读数据同步fifo模块(13)。
8.根据权利要求5所述的一种PCI总线控制器的控制方法,其特征在于,还包括产生PCI中断使能和进行软中断的步骤;中断管理模块(16)根据Local配置空间寄存器模块(6)传递的中断触发方式,根据两个本地中断和DMA中断输入产生PCI中断,通过PCI总线接口模块(7)传递到总线上。
9.根据权利要求5所述的一种PCI总线控制器的控制方法,其特征在于,还包括对通用IO进行输入输出使能控制的步骤;通用IO模块(17)根据Local配置空间寄存器模块(6)传递的通用IO的输入输出配置方式进行输入输出的使能控制;输入时将Local总线接口模块(15)传递的相应管脚状态传递给Local配置空间寄存器模块(6);输出时将Local配置空间寄存器模块(6)传递的对应寄存器位的值通过Local总线接口模块(15)反映到相应的管脚上。
10.根据权利要求5所述的一种PCI总线控制器的控制方法,其特征在于,还包括对Local总线进行仲裁的步骤;Local仲裁模块(18)根据Local配置空间寄存器模块(6)传递的仲裁抢占方式和Local总线控制模块(14)传递的Local总线状态,在Local总线请求信号有效时,给出仲裁应答信号,并通过Local总线接口模块(15)传递到Local总线上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510684941.6A CN105224488B (zh) | 2015-10-20 | 2015-10-20 | 一种pci总线控制器及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510684941.6A CN105224488B (zh) | 2015-10-20 | 2015-10-20 | 一种pci总线控制器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224488A CN105224488A (zh) | 2016-01-06 |
CN105224488B true CN105224488B (zh) | 2017-11-14 |
Family
ID=54993468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510684941.6A Active CN105224488B (zh) | 2015-10-20 | 2015-10-20 | 一种pci总线控制器及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224488B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955897B (zh) * | 2016-05-23 | 2018-01-16 | 深圳市华星光电技术有限公司 | 数据存储器访问方法、装置和系统 |
CN106201967B (zh) * | 2016-07-20 | 2018-12-28 | 东南大学 | 一种通用总线分配与级联装置及其应用系统 |
CN106501651A (zh) * | 2016-12-02 | 2017-03-15 | 深圳供电局有限公司 | 一种总线结构的多传感器配电设备检测装置 |
CN108052468A (zh) * | 2017-12-04 | 2018-05-18 | 北京控制与电子技术研究所 | 一种基于fpga的自主可控pci总线控制器 |
CN109977061B (zh) * | 2017-12-28 | 2023-04-11 | 中兴通讯股份有限公司 | 一种中断处理方法及中断处理装置 |
CN109522252B (zh) * | 2018-11-15 | 2021-12-07 | 天津津航计算技术研究所 | 一种用于高速总线通讯控制器的存储器访问方法 |
CN113190400B (zh) * | 2021-04-19 | 2022-11-04 | 思澈科技(上海)有限公司 | 一种适用于ahb协议的总线监控模块与监控方法 |
CN113553101B (zh) * | 2021-07-27 | 2022-09-02 | 上海信昊信息科技有限公司 | 加载频率可变的pcie交换芯片端口寄存器初始化方法 |
CN114894046B (zh) * | 2022-05-23 | 2023-11-10 | 西安微电子技术研究所 | 一种通用开关量脉冲智能接口测试卡 |
US12112165B2 (en) * | 2022-09-29 | 2024-10-08 | Macronix International Co., Ltd. | Managing status information of logic units |
CN115858431B (zh) * | 2023-02-21 | 2023-05-30 | 北京国科环宇科技股份有限公司 | 数据传输控制方法、控制器及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002116998A (ja) * | 2000-10-05 | 2002-04-19 | Matsushita Electric Ind Co Ltd | 周辺機器内蔵型usbコントローラ |
CN100405345C (zh) * | 2005-01-18 | 2008-07-23 | 威盛电子股份有限公司 | 计算机系统中的总线控制器及其方法 |
CN101986613B (zh) * | 2010-08-26 | 2012-04-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用异步串行通信控制器 |
-
2015
- 2015-10-20 CN CN201510684941.6A patent/CN105224488B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105224488A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224488B (zh) | 一种pci总线控制器及其控制方法 | |
US5805842A (en) | Apparatus, system and method for supporting DMA transfers on a multiplexed bus | |
US5440751A (en) | Burst data transfer to single cycle data transfer conversion and strobe signal conversion | |
JP3302357B2 (ja) | Cpuバス制御器 | |
US7062587B2 (en) | Unidirectional bus architecture for SoC applications | |
US5925118A (en) | Methods and architectures for overlapped read and write operations | |
CN105095254B (zh) | 一种实现数据一致性的方法及装置 | |
JPH06348647A (ja) | システム・バスと周辺バスの間でのデータ転送を最適化する複数バス情報処理システム用のバス間ブリッジ | |
US6892266B2 (en) | Multicore DSP device having coupled subsystem memory buses for global DMA access | |
JP7709971B2 (ja) | メモリと分散計算アレイとの間のデータ転送 | |
Ahmed et al. | Design and implementation of a direct memory access controller for embedded applications | |
JPH0954746A (ja) | コンピュータシステム | |
CN1892632B (zh) | 总线系统和仲裁其的方法 | |
US11392533B1 (en) | Systems and methods for high-speed data transfer to multiple client devices over a communication interface | |
CN103440215B (zh) | 基于fpga实现主设备对sdram存储器快速猝发访问的方法及装置 | |
CN102591817B (zh) | 一种多总线桥控制器及其实现方法 | |
CN102609380A (zh) | 基于axi总线的sdram控制器写数据快速响应方法 | |
Slogsnat et al. | A versatile, low latency HyperTransport core | |
US6789153B1 (en) | Bridge for coupling digital signal processor to on-chip bus as slave | |
US6754779B1 (en) | SDRAM read prefetch from multiple master devices | |
CN100517283C (zh) | 先进高性能系统总线连接装置及先进高性能系统总线装置 | |
US7006521B2 (en) | External bus arbitration technique for multicore DSP device | |
US6845418B2 (en) | Bus system for master-slave device accesses, has multiple pseudo-delayer connected to controllers which delay and output access commands to slave devices for having longer latency periods | |
CN101777035A (zh) | 一种amba ahb总线实现方法及装置 | |
US7031337B2 (en) | Data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |