CN105045753A - 基于fpga的pci总线控制器及控制方法 - Google Patents
基于fpga的pci总线控制器及控制方法 Download PDFInfo
- 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
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总线的映射是静态转换表格的子步骤和配置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总线的数据转换。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109599048A (zh) * | 2019-01-09 | 2019-04-09 | 惠科股份有限公司 | 一种显示装置及其驱动方法和显示器 |
Citations (2)
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适配器 |
-
2015
- 2015-07-13 CN CN201510409195.XA patent/CN105045753B/zh active Active
Patent Citations (2)
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)
Title |
---|
曲新春等: "基于SOPC的1553B IP核的设计", 《计算机工程与设计》 * |
Cited By (1)
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 |