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

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

Info

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
Application number
CN201510409195.XA
Other languages
English (en)
Other versions
CN105045753A (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总线的映射是静态转换表格的子步骤和配置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总线的数据转换。
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 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)

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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086727A (zh) * 2007-07-13 2007-12-12 上海大学 一种用于图像处理器的pci适配器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445636B1 (ko) * 2002-06-17 2004-08-25 삼성전자주식회사 에프피지에이와 다수개의 프로그램 가능한 메모리모듈들을 이용한 컴퓨터 시스템 테스트 장치 및 그 테스트방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086727A (zh) * 2007-07-13 2007-12-12 上海大学 一种用于图像处理器的pci适配器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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