CN105045753A - 基于fpga的pci总线控制器及控制方法 - Google Patents

基于fpga的pci总线控制器及控制方法 Download PDF

Info

Publication number
CN105045753A
CN105045753A CN201510409195.XA CN201510409195A CN105045753A CN 105045753 A CN105045753 A CN 105045753A CN 201510409195 A CN201510409195 A CN 201510409195A CN 105045753 A CN105045753 A CN 105045753A
Authority
CN
China
Prior art keywords
bus
pci bus
pci
avalon
data
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.)
Granted
Application number
CN201510409195.XA
Other languages
English (en)
Other versions
CN105045753B (zh
Inventor
马云彤
梁军
周学安
李攀
潘大为
彭宇
彭喜元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201510409195.XA priority Critical patent/CN105045753B/zh
Publication of CN105045753A publication Critical patent/CN105045753A/zh
Application granted granted Critical
Publication of CN105045753B publication Critical patent/CN105045753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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

基于FPGA的PCI总线控制器及控制方法
技术领域
本发明涉及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总线的映射是静态转换表格的子步骤和配置PCIIP核参数的子步骤;所述PCIIP核参数包括***选项配置、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公司的CycloneIII系列的EP3C120F780I7,模仿PC机内部PCI总线设备的体系结构,处理器1采用NiosII,挂载到Avalon总线上,可以作为HostBridge处理器,同时调用PCIIP核,把此IP核设置为Hostbridge,可以实现Avalon总线与PCI总线之间的数据交换,这样软核NiosII通过Avalon总线访问到PCI总线,用来直接管理多个PCI设备。
具体实施方式三、本实施方式是对具体实施方式一所述的基于FPGA的PCI总线控制方法的进一步说明,采用FPGA构建总线控制器3的步骤还包括分配Avalon总线至PCI总线的映射是静态转换表格的子步骤和配置PCIIP核参数的子步骤;所述PCIIP核参数包括***选项配置、PCI总线配置和Avalon总线配置;所述***选项配置包括***选项1和***选项2,所述***选项1包括PCI设备模式、PCI从设备性能、最大从设备突发传输量和PCI主设备性能;***选项2包括PCI总线速度、PCI总线数据位宽、PCI时钟设置、是否允许独立Avalon***复位、PCI总线仲裁和PCI支持仲裁设备个数。
采用FPGA构建总线控制器3建立嵌入式***控制PCI总线设备的渠道;实现PCI总线与Avalon总线的数据转换。
配置PCIIP核的各个参数,见表1所示。
表1PCIIP核配置参数表
分配Avalon总线至PCI总线的映射静态转换表格;静态转换表格见表2所示;
第一个地址转换类型是配置读写,用于PCI总线控制器对PCI总线的设备进行配置空间各个寄存器读写操作,命令寄存器、基址寄存器的配置,地址转换类型是存储空间映射,用于处理器NiosII对PCI总线设备上的存储空间进行访问。Avalon总线至PCI总线的映射个数以及每个空间映射地址大小都是根据需求进行设置,但为了NiosII通过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;
嵌入式***NiosII配置PCI总线设备流程
软核NiosII对PCI总线设备的配置空间读写方法;
确定Avalon总线与PCI总线直接对应关系。
Avalon总线=PCI_Bus_Access基址+PCI总线地址
若NiosII启用cache,则总线之间的对应关系为:
Avalon总线=PCI_Bus_Access基址+PCI总线地址+0x80000000
例如:在NiosII中使用函数IOWR_32DIRECT(0x90100000,0x0C,0x00008080),且NiosII中使用cache,则访问的PCI总线地址空间为0x00100000。
2、软核NiosII对PCI总线设备的配置流程
NiosII可以直接访问PCI总线,已明确PCI总线配置空间的地址,可以实现配置过程。
假设PCI总线上一个设备IDSEL信号与AD[12]连接。需要注意,嵌入式***NiosII在配置写PCI总线设备的配置地址空间转换Avalon总线转换PCI总线时,用于IDSEL选择的地址AD[31:11]会左移一位,若进行访问PCI总线上的设备PCI总线配置地址空间是0x00001000~0x000017FF,则在Avalon总线端访问的地址空间是0x90000800~0x90000FFF,而存储器空间和I/O空间的地址映射是正常的映射关系。因此,NiosII配置该设备的基本指令。
NiosII配置该设备的流程:
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设备数据传输框图,PCIcompiler(桥)就是PCI总线控制器,
(1)构建PCI总线控制器的FPGA访问PCI总线上设备的存储器和I/O空间的方法与配置总线上的设备空间的过程一样,只是在静态配置地址转换配置表格时,后面的类型要选择memory或者I/O类型,通过ControlRegisterAccess动态配置Avalon总线至PCI总线映射也可以,配置的类型根据访问的空间类型进行动态寄存器配置。然后,通过配置PCI总线上设备的基址寄存器后,并开启memory或I/O访问使能后,构建PCI总线控制器的FPGA内的NiosII就可以通过PCIBusAccess接口来读写总线上的设备的空间。
(2)构建的总线上的PCI主设备也可以读写PCI总线控制器FPGA内部存储空间,不能通过图1中PCIcompiler(桥)的bar0、bar1等空间来访问,此桥设备虽然存在这些空间,但不能作为总线上其他主设备的访问空间。需要在此FPGA内部构建一个新的PCIcompiler(从)设备,处理器通过PCI总线控制器配置好这个FPGA内部PCI设备的空间映射后,比如映射到与HostBridge相关联的DDR2地址空间,这样总线上的PCI主设备可以自由的对构建HostBridge的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 (3)

1.基于FPGA的PCI总线控制器,其特征在于,它包括处理器(1)、存储器DDR2(2)和总线控制器(3);
处理器(1)用于通过Avalon总线、总线控制器(3)和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号;
存储器DDR2(2)用于对处理器(1)发送的控制信号和PCI总线设备发回的响应信号进行缓存;
总线控制器(3)用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线。
2.基于FPGA的PCI总线的控制方法,其特征在于,该方法包括:
采用FPGA构建总线控制器(3)的步骤,该步骤中的总线控制器(3)用于接收Avalon总线向PCI总线发送的数据,并将接收的Avalon总线数据转换为PCI总线数据,并将转换后PCI总线数据发送至PCI总线;同时接收PCI总线向Avalon总线发送的数据,并将接收的PCI总线数据转换为Avalon总线数据,并将转换后Avalon总线数据发送至Avalon总线;
用于通过Avalon总线、总线控制器(3)和PCI总线向PCI总线设备发送控制信号,并接收PCI总线设备发回的响应信号的步骤;
用于对处理器(1)发送的控制信号和PCI总线设备发回的响应信号进行缓存的步骤。
3.根据权利要求2所述的基于FPGA的PCI总线的控制方法,其特征在于,采用FPGA构建总线控制器(3)的步骤还包括分配Avalon总线至PCI总线的映射是静态转换表格的子步骤和配置PCIIP核参数的子步骤;所述PCIIP核参数包括***选项配置、PCI配置和Avalon配置;所述***选项配置包括***选项1和***选项2,所述***选项1包括PCI设备模式、PCI从设备性能、最大从设备突发传输量和PCI主设备性能;***选项2包括PCI总线速度、PCI总线数据位宽、PCI时钟设置、是否允许独立Avalon***复位、PCI总线仲裁和PCI支持仲裁设备个数;
采用FPGA构建总线控制器(3)建立嵌入式***控制PCI总线设备的渠道;实现PCI总线与Avalon总线的数据转换。
CN201510409195.XA 2015-07-13 2015-07-13 基于fpga的pci总线控制器及控制方法 Active CN105045753B (zh)

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 true CN105045753A (zh) 2015-11-11
CN105045753B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109599048A (zh) * 2019-01-09 2019-04-09 惠科股份有限公司 一种显示装置及其驱动方法和显示器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233207A1 (en) * 2002-06-17 2003-12-18 Samsung Electronics Co., Inc. Apparatus and method for testing a computer system by utilizing FPGA and programmable memory module
CN101086727A (zh) * 2007-07-13 2007-12-12 上海大学 一种用于图像处理器的pci适配器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233207A1 (en) * 2002-06-17 2003-12-18 Samsung Electronics Co., Inc. Apparatus and method for testing a computer system by utilizing FPGA and programmable memory module
CN101086727A (zh) * 2007-07-13 2007-12-12 上海大学 一种用于图像处理器的pci适配器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曲新春等: "基于SOPC的1553B IP核的设计", 《计算机工程与设计》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109599048A (zh) * 2019-01-09 2019-04-09 惠科股份有限公司 一种显示装置及其驱动方法和显示器

Also Published As

Publication number Publication date
CN105045753B (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
US20020087614A1 (en) Programmable tuning for flow control and support for CPU hot plug
US9952643B2 (en) Device power management state transition latency advertisement for faster boot time
CN105260331B (zh) 一种双总线内存控制器
US7327370B2 (en) Memory controller hub interface
CN102511039A (zh) 将不可预取存储单元映射到存储器映射输入/输出空间中
US9213656B2 (en) Flexible arbitration scheme for multi endpoint atomic accesses in multicore systems
US20130173837A1 (en) Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex
CN101436171B (zh) 模块化通信控制***
CN107194257B (zh) 一种基于国产tcm芯片的可信***
CN104298628A (zh) 一种用于并发访问的数据存储器仲裁电路及仲裁方法
CN109783416A (zh) Spi从设备和i2c从设备共用gpio的方法、电路和电子设备
CN102033818A (zh) 媒体缓冲和流水线式处理组件
CN102388357A (zh) 访问存储设备的方法及***
TW201303789A (zh) 具有高速傳輸功能之基板管理控制器及其傳輸方法
US9372796B2 (en) Optimum cache access scheme for multi endpoint atomic access in a multicore system
US6002883A (en) System with intersystem information links for intersystem traffic having I/O traffic being transmitted to and from processor bus via processor means
CN204390227U (zh) 计算设备扩展装置、以及可扩展的计算***
US6954809B2 (en) Apparatus and method for accessing computer system resources via serial bus
US6701387B1 (en) Adaptive data fetch prediction algorithm
CN104598404A (zh) 计算设备扩展方法和装置、以及可扩展的计算***
CN105045753A (zh) 基于fpga的pci总线控制器及控制方法
US10445240B2 (en) Bus-based cache architecture
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN101777035A (zh) 一种amba ahb总线实现方法及装置
CN102902647B (zh) 设置在i2c从机印刷电路板的asic芯片和印刷电路板

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