CN105045753B - 基于fpga的pci总线控制器及控制方法 - Google Patents
基于fpga的pci总线控制器及控制方法 Download PDFInfo
- Publication number
- CN105045753B CN105045753B CN201510409195.XA CN201510409195A CN105045753B CN 105045753 B CN105045753 B CN 105045753B CN 201510409195 A CN201510409195 A CN 201510409195A CN 105045753 B CN105045753 B CN 105045753B
- Authority
- CN
- China
- Prior art keywords
- pci bus
- pci
- bus
- avalon
- equipment
- 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
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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
基于FPGA的PCI总线控制器及控制方法,涉及PCI总线控制技术领域。解决了现有基于PCI总线的板卡设备应用场所需要脱离PC机和相关的控制机箱系统才能应用的问题。本发明的处理器用于通过Avalon总线、总线控制器和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号;存储器DDR2用于对处理器发送的控制信号和PCI总线设备发回的响应信号进行缓存;总线控制器用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线。本发明适用于PCI总线控制使用。
Description
技术领域
本发明涉及PCI总线控制技术领域。
背景技术
现阶段,基于PCI总线的FPGA板卡设备一般是直接放在PC机的PCI总线插槽,PC机可以提供PCI总线的母板环境和总线控制器来管理板卡设备,许多板卡设备放在CPCI或者PXI机箱内部组成一些测试和控制系统,在系统中一般存在处理器(例如PC104)用来管理和仲裁基于PCI总线的板卡设备。PC机或一些类似处理器提供PCI总线控制器,每个PCI总线板卡设备可以方便进行数据的交换。
但是,目前有些基于PCI总线的板卡设备应用场所需要脱离PC机和相关的控制机箱系统,例如,基于PCI总线的IEEE1394b链路层芯片TSB82AA2直接用一个FPGA控制,实现IEEE1394b总线的嵌入式开发;多个基于PCI总线的板卡设备之间相互通讯脱离相关处理器来管理,这样可以节省很多体积空间和成本等。
发明内容
本发明是为了解决现有基于PCI总线的板卡设备应用场所需要脱离PC机和相关的控制机箱系统才能应用的问题,提出了一种基于FPGA的PCI总线控制器及控制方法。
本发明所述的基于FPGA的PCI总线控制器,它包括处理器、存储器DDR2和PCI总线控制器;
处理器1用于通过Avalon总线、总线控制器3和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号;
存储器DDR2用于对处理器发送的控制信号和PCI总线设备发回的响应信号进行缓存;
总线控制器用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线。
基于FPGA的PCI总线的控制方法,该方法包括:
采用FPGA构建总线控制器的步骤,该步骤中的用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线;
该步骤还包括分配Avalon总线至PCI总线的映射是静态转换表格的子步骤和配置PCI IP核参数的子步骤;所述PCI IP核参数包括系统选项配置、PCI配置和Avalon配置;所述系统选项配置包括系统选项1和系统选项2,所述系统选项1包括PCI设备模式、PCI从设备性能、最大从设备突发传输量和PCI主设备性能;系统选项2包括PCI总线速度、PCI总线数据位宽、PCI时钟设置、是否允许独立Avalon系统复位、PCI总线仲裁和PCI支持仲裁设备个数。
用于通过Avalon总线、总线控制器和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号的步骤;该步骤还包括:对PCI总线设备的配置空间进行读写和配置的子步骤;
用于对存储控制信号和PCI总线设备发回的响应信号进行缓存的步骤。
本发明的效果:
1)用FPGA构建PCI总线控制器,可以方便实现一些带有PCI总线接口芯片的嵌入式应用开发。
2)用FPGA内部构建PCI总线控制器,并构建PCI总线母版环境,可以方便的管理多个PCI总线设备相互通讯。
3)构建PCI总线控制器的FPGA设备可以作为PCI总线上的协处理器使用。
附图说明
图1为本发明所述的基于FPGA的PCI总线控制器的电气原理框图;
图2为构建PCI总线控制器的FPGA与其他PCI设备数据传输框图;
图3为嵌入式FPGA板卡构建PCI总线的母板环境框图。
具体实施方式
具体实施方式一、结合图1说明本实施方式,本实施方式所述的基于FPGA的PCI总线控制器,它包括处理器1、存储器DDR2和PCI总线控制器3;
处理器1用于通过Avalon总线、总线控制器3和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号;
存储器DDR2用于对处理器1发送的控制信号和PCI总线设备发回的响应信号进行缓存;
总线控制器3用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线.
不同的PCI总线设备之间数据传输不能脱离PCI总线控制器,任何两个PCI设备之间进行通讯都需要PCI总线控制器对PCI总线的管理和仲裁。
具体实施方式二、本实施方式是对具体实施方式一所述的本实施方式所述的基于FPGA的PCI总线控制方法,该方法包括:
采用FPGA构建总线控制器3的步骤,该步骤中的总线控制器3用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线;
用于通过Avalon总线、总线控制器3和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号的步骤;
用于对处理器1发送的控制信号和PCI总线设备发回的响应信号进行缓存的步骤;
本实施方式应用的FPGA为Altera公司的Cyclone III系列的EP3C120F780I7,模仿PC机内部PCI总线设备的体系结构,处理器1采用Nios II,挂载到Avalon总线上,可以作为Host Bridge处理器,同时调用PCI IP核,把此IP核设置为Host bridge,可以实现Avalon总线与PCI总线之间的数据交换,这样软核Nios II通过Avalon总线访问到PCI总线,用来直接管理多个PCI设备。
具体实施方式三、本实施方式是对具体实施方式一所述的基于FPGA的PCI总线控制方法的进一步说明,采用FPGA构建总线控制器3的步骤还包括分配Avalon总线至PCI总线的映射是静态转换表格的子步骤和配置PCI IP核参数的子步骤;所述PCIIP核参数包括系统选项配置、PCI总线配置和Avalon总线配置;所述系统选项配置包括系统选项1和系统选项2,所述系统选项1包括PCI设备模式、PCI从设备性能、最大从设备突发传输量和PCI主设备性能;系统选项2包括PCI总线速度、PCI总线数据位宽、PCI时钟设置、是否允许独立Avalon系统复位、PCI总线仲裁和PCI支持仲裁设备个数。
采用FPGA构建总线控制器3建立嵌入式系统控制PCI总线设备的渠道;实现PCI总线与Avalon总线的数据转换。
配置PCI IP核的各个参数,见表1所示。
表1 PCI IP核配置参数表
分配Avalon总线至PCI总线的映射静态转换表格;静态转换表格见表2所示;
第一个地址转换类型是配置读写,用于PCI总线控制器对PCI总线的设备进行配置空间各个寄存器读写操作,命令寄存器、基址寄存器的配置,地址转换类型是存储空间映射,用于处理器Nios II对PCI总线设备上的存储空间进行访问。Avalon总线至PCI总线的映射个数以及每个空间映射地址大小都是根据需求进行设置,但为了Nios II通过PCI总线控制器管理PCI总线,第一个地址转换类型是配置读写必不可少。
表2静态地址转换表
选择不同PCI总线设备配置空间是通过控制设备的IDSEL信号实现的;PCI地址/数据线的AD[31:11]连接到每个PCI设备的IDSEL信号上,可以把配置空间地址与每个设备一一对应。总线AD[31:11]与设备地址线IDSEL连接在FPGA内部用逻辑实现,这样也很方便后续修改。
例如:AD[11]连接到PCI总线上设备1;
AD[12]连接到PCI总线上设备2;
AD[13]连接到PCI总线上设备3;
则每个PCI总线设备的PCI配置空间分配完成。
设备1在PCI总线上的配置地址空间是0x00000800~0x00000FFF;
设备2在PCI总线上的配置地址空间是0x00001000~0x000017FF;
设备3在PCI总线上的配置地址空间是0x00002000~0x000027FF;
嵌入式系统Nios II配置PCI总线设备流程
软核Nios II对PCI总线设备的配置空间读写方法;
确定Avalon总线与PCI总线直接对应关系。
Avalon总线=PCI_Bus_Access基址+PCI总线地址
若Nios II启用cache,则总线之间的对应关系为:
Avalon总线=PCI_Bus_Access基址+PCI总线地址+0x80000000
例如:在Nios II中使用函数IOWR_32DIRECT(0x90100000,0x0C,0x00008080),且Nios II中使用cache,则访问的PCI总线地址空间为0x00100000。
2、软核Nios II对PCI总线设备的配置流程
Nios II可以直接访问PCI总线,已明确PCI总线配置空间的地址,可以实现配置过程。
假设PCI总线上一个设备IDSEL信号与AD[12]连接。需要注意,嵌入式系统Nios II在配置写PCI总线设备的配置地址空间转换Avalon总线转换PCI总线时,用于IDSEL选择的地址AD[31:11]会左移一位,若进行访问PCI总线上的设备PCI总线配置地址空间是0x00001000~0x000017FF,则在Avalon总线端访问的地址空间是0x90000800~0x90000FFF,而存储器空间和I/O空间的地址映射是正常的映射关系。因此,Nios II配置该设备的基本指令。
Nios II配置该设备的流程:
IOWR_32DIRECT(0x90000800,0x10,0x00100000);//配置该PCI设备Bar0基址寄存器
IOWR_32DIRECT(0x90000800,0x0C,0x00008080);//配置该PCI设备快取线大小缓存器Bar0基址寄存器
IOWR_32DIRECT(0x90000000,0x04,0x00000006);///配置该PCI设备命令寄存器FPGA构建PCI总线控制器,并实现挂接在PCI总线上的设备配置后,总线上的挂接的设备可以根据分配的地址空间相互访问,构建PCI总线控制器的FPGA也可以与总线上的每一个设备相互访问,图2构建PCI总线控制器的FPGA与其他PCI设备数据传输框图,PCI compiler(桥)就是PCI总线控制器,
(1)构建PCI总线控制器的FPGA访问PCI总线上设备的存储器和I/O空间的方法与配置总线上的设备空间的过程一样,只是在静态配置地址转换配置表格时,后面的类型要选择memory或者I/O类型,通过Control Register Access动态配置Avalon总线至PCI总线映射也可以,配置的类型根据访问的空间类型进行动态寄存器配置。然后,通过配置PCI总线上设备的基址寄存器后,并开启memory或I/O访问使能后,构建PCI总线控制器的FPGA内的Nios II就可以通过PCI Bus Access接口来读写总线上的设备的空间。
(2)构建的总线上的PCI主设备也可以读写PCI总线控制器FPGA内部存储空间,不能通过图1中PCI compiler(桥)的bar0、bar1等空间来访问,此桥设备虽然存在这些空间,但不能作为总线上其他主设备的访问空间。需要在此FPGA内部构建一个新的PCI compiler(从)设备,处理器通过PCI总线控制器配置好这个FPGA内部PCI设备的空间映射后,比如映射到与Host Bridge相关联的DDR2地址空间,这样总线上的PCI主设备可以自由的对构建Host Bridge的FPGA的DDR2空间读写操作。
嵌入式FPGA板卡构建PCI总线的母板环境框图如图3所示,构建的是32位PCI总线。母板环境的构建需要注意以下几点。
(1)嵌入式板卡上需要提供两条PCI总线的系统信号,一个是PCI总线系统复位RST#,一个是PCI总线时钟线,此时钟由FPGA内部时钟模块产生,需要注意的是时钟模块提供给PCI总线控制器的时钟CLK和提供到外部总线的时钟信号PCI_CLK必须一致,为33MHz或者66MHz,而且这两个时钟需要存在一定的相位差。
(2)地址数据线AD[31:0]、C/BE[3:0]#直接与每个设备挂接在一起即可。作为母版,PCI总线的控制信号要求有上拉电阻,这是为了保证它们在没有设备驱动总线的情况下仍具有稳定的值,在途中可以看出,控制信号FRAME#、TRDY#、IRDY#、STOP#、DEVSEL#、SERR#、INTA#、PERR#具有330Ω上拉电阻,而控制信号PAR具有330Ω下拉电阻。
(3)对于设备选择信号IDSEL信号,PCI接口的地址/数据信号线的AD[31:11]来控制IDSEL信号,因此需要在FPGA内部用逻辑把对应地址线连接到每个PCI设备的IDSEL信号上。
(4)PCI总线的仲裁信号是由PCI总线控制器提供的,只有PCI总线主设备才存在仲裁信号线,从设备不存在,仲裁信号GNT#和REQ#不能复用,一个设备就要有单独的一对仲裁信号。
Claims (1)
1.基于FPGA的PCI总线的控制方法,其特征在于,该方法包括:
采用FPGA构建总线控制器(3)的步骤,该步骤中的总线控制器(3)用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线;
用于通过Avalon总线、总线控制器(3)和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号的步骤;
用于对处理器(1)发送的控制信号和PCI总线设备发回的响应信号进行缓存的步骤;
采用FPGA构建总线控制器(3)的步骤还包括分配Avalon总线至PCI总线的映射是静态转换表格的子步骤和配置PCI IP核参数的子步骤;所述PCI IP核参数包括系统选项配置、PCI配置和Avalon配置;所述系统选项配置包括系统选项1和系统选项2,所述系统选项1包括PCI设备模式、PCI从设备性能、最大从设备突发传输量和PCI主设备性能;系统选项2包括PCI总线速度、PCI总线数据位宽、PCI时钟设置、是否允许独立Avalon系统复位、PCI总线仲裁和PCI支持仲裁设备个数;
采用FPGA构建总线控制器(3)建立嵌入式系统控制PCI总线设备的渠道;实现PCI总线与Avalon总线的数据转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510409195.XA CN105045753B (zh) | 2015-07-13 | 2015-07-13 | 基于fpga的pci总线控制器及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510409195.XA CN105045753B (zh) | 2015-07-13 | 2015-07-13 | 基于fpga的pci总线控制器及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105045753A CN105045753A (zh) | 2015-11-11 |
CN105045753B true CN105045753B (zh) | 2017-11-03 |
Family
ID=54452311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510409195.XA Active CN105045753B (zh) | 2015-07-13 | 2015-07-13 | 基于fpga的pci总线控制器及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045753B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109599048A (zh) * | 2019-01-09 | 2019-04-09 | 惠科股份有限公司 | 一种显示装置及其驱动方法和显示器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086727A (zh) * | 2007-07-13 | 2007-12-12 | 上海大学 | 一种用于图像处理器的pci适配器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100445636B1 (ko) * | 2002-06-17 | 2004-08-25 | 삼성전자주식회사 | 에프피지에이와 다수개의 프로그램 가능한 메모리모듈들을 이용한 컴퓨터 시스템 테스트 장치 및 그 테스트방법 |
-
2015
- 2015-07-13 CN CN201510409195.XA patent/CN105045753B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086727A (zh) * | 2007-07-13 | 2007-12-12 | 上海大学 | 一种用于图像处理器的pci适配器 |
Non-Patent Citations (1)
Title |
---|
基于SOPC的1553B IP核的设计;曲新春等;《计算机工程与设计》;20071031;第28卷(第19期);第1.1、1.2节,图1、2 * |
Also Published As
Publication number | Publication date |
---|---|
CN105045753A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11953981B2 (en) | Memory module register access | |
US7660922B2 (en) | Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports | |
JP3838278B2 (ja) | コンピュータ・システムの2つのバス間のブリッジ回路 | |
CN100483373C (zh) | Pvdm(分组语音数据模块)通用总线协议 | |
KR101035832B1 (ko) | 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템 | |
US20020087614A1 (en) | Programmable tuning for flow control and support for CPU hot plug | |
CN102388357B (zh) | 访问存储设备的方法及系统 | |
CN103559152A (zh) | 基于pcie协议的cpu访问本地总线的装置及方法 | |
US10445279B1 (en) | Automatic PCIe operating mode configuration | |
US7212961B2 (en) | Interface for rapid prototyping system | |
DE102021121490A1 (de) | Annähernde datenbusinversionstechnik für latenzempfindliche anwendungen | |
US10261699B2 (en) | Systems and methods for hardware-based RAID acceleration | |
CN105045753B (zh) | 基于fpga的pci总线控制器及控制方法 | |
CN102419739A (zh) | 多主总线仲裁共享装置以及仲裁方法 | |
US20160188472A1 (en) | Distributed implementation for cache coherence | |
US6954809B2 (en) | Apparatus and method for accessing computer system resources via serial bus | |
CN109491949B (zh) | 基于Zynq的动态可重构框架及方法 | |
NZ519577A (en) | Fault tolerant virtual VMEbus backplane design between two independently capable VMEbuses | |
CN112612741B (zh) | 一种多路服务器 | |
US7299427B2 (en) | Radio prototyping system | |
CN207650799U (zh) | 一种cpci模块和主板 | |
CN101777035A (zh) | 一种amba ahb总线实现方法及装置 | |
US6675252B1 (en) | Accelerated graphics port (AGP) controller supporting fast write transactions | |
CN109656478A (zh) | 一种存储服务器 | |
CN100538618C (zh) | 高存取效率的接口电路及方法 |
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 |