实现PCIe接口转CF卡接口的FPGA芯片及方法

文档序号:9432501阅读:1142来源:国知局
实现PCIe接口转CF卡接口的FPGA芯片及方法
【技术领域】
[0001 ] 本发明涉及PCIe接口转CF卡接口领域,具体来讲涉及实现PCIe接口转CF卡接口的FPGA芯片及方法。
【背景技术】
[0002]随着PCIe (Peripheral Component Interconnect express,外设部件互连标准接口)技术的日趋成熟和高性能特点,CPU外设接口有限,使用PCIe接口挂载外部设备的应用越来越广泛。CF(Compact Flash,便携式电子设备的数据存储设备)卡作为一种通用可靠的可移动便携存储器,在通信设备和工业设备中具有广泛的需求,CF卡接口符合PATA(Parallel Advanced Technology Attachment,并行硬盘接口技术)接口协议的定义。
[0003]PCIe接口转CF卡接口的桥接功能芯片种类较少,现有的PCIe接口转CF卡接口的芯片,均是统一生产,而对于不同使用场景中的一些特殊需求,例如定时启动数据传输,DMA模块主动发起数据传输,CF卡接口时序可配置等功能,无法一一满足要求,灵活性低,不能够适应多种使用场景。

【发明内容】

[0004]针对现有技术中存在的缺陷,本发明的目的在于提供一种实现PCIe接口转CF卡接口的FPGA芯片及方法,能够适用不同使用场景的不同需求,灵活性高。
[0005]为达到以上目的,本发明采取一种实现PCIe接口转CF卡接口的FPGA芯片,分别连接CPU和CF卡,包括:PCIe IP核模块,用于向CPU提供标准PCIe接口 ;适配模块,用于PCIe IP核模块的接口总线到本地总线的适配;直接内存访问模块,与PCIe IP核模块连接,用于发起CF卡与CPU之间的数据传输;CF卡接口协议模块,与直接内存访问模块连接,用于向CF卡提供满足并行硬盘接口技术的接口 ;控制寄存器,通过适配模块挂接在PCIe基地址空间下,用于控制直接内存访问模块和CF卡接口协议控模块。
[0006]在上述技术方案的基础上,所述PCIe IP核模块的接口总线为Avalon总线或AXI总线。
[0007]在上述技术方案的基础上,所述控制寄存器包括控制直接内存访问模块的直接内存访问控制器,以及控制CF卡接口协议控模块的CF卡控制器。
[0008]在上述技术方案的基础上,所述直接内存访问模块包括发送方向控制器、接收方向控制器和先入先出队列模块,发送方向控制器用于控制直接内存访问模块由PCIe IP核模块读取需要写入CF卡的数据,接收方向控制器用于控制直接内存访问模块,读取CF卡接口协议模块从CF卡中读取的数据,先入先出队列模块包括两个先入先出队列,分别用于存储所述需要写入CF卡的数据和所述从CF卡中读取的数据。
[0009]在上述技术方案的基础上,在用于存储需要写入CF卡的数据的先入先出队列中,当数据量达到总线突发传输长度时,向CF卡接口协议模块发起数据传输。
[0010]在上述技术方案的基础上,在用于存储从CF卡中读取的数据的先入先出队列中,当数据量达到与PCIe IP核模块对应的接口总线长度时,由直接内存访问模块通过PCIe IP核模块写入数据到CPU。
[0011]在上述技术方案的基础上,所述控制寄存器中的CF卡控制器还包括模块寄存器、指令先入先出队列寄存器、读先入先出队列寄存器和与先入先出队列寄存器,模块控制寄存器用于配置接口时序、各个先入先出队列深度、先入先出队列阀值。
[0012]本发明还提供一种实现PCIe接口转CF卡接口的方法,包括:
[0013]对于P1类指令,控制寄存器控制CF卡接口协议模块,将指令内容组成相应的CF卡接口指令时序,若是P1读指令,将CF卡返回的数据存放在控制寄存器中,通过读取控制寄存器获取数据;若是P1写指令,将该数据反映在接口时序;
[0014]对于Ultra直接内存访问类指令,通过控制寄存器控制直接内存访问模块,设置最大总线突发传输长度、CPU侧存储地址和本次传输数据长度,直接内存访问模块等待CF卡接口协议模块给出的数据/空间准备好的请求,控制寄存器控制CF卡接口协议模块发送Ultra直接内存访问传输指令;若是向CF卡写数据的指令,在控制寄存器存储数据量低于阀值时,直接内存访问模块从CPU侧读取数据,并存储在控制寄存器,通过CF卡接口协议模块按照CF接口时序写入CF卡;若是CF卡读数据的指令,则CF卡接口协议模块读取CF卡中目的地址的数据,并储存在控制寄存器中,当储存数据量高于阀值时,内存访问模块直接分次读取目的地址的数据,并写到CPU侧。
[0015]在上述技术方案的基础上,所述控制寄存器包括控制CF卡接口协议控模块的CF卡控制器,CF卡控制器包括模块寄存器、指令先入先出队列寄存器、读先入先出队列寄存器和写先入先出队列寄存器;若是P1读指令,将CF卡返回的数据存放在读先入先出队列寄存器中;若是P1写指令,由软件先配置指令先入先出队列寄存器,再配置写先入先出队列寄存器,最后该数据反映在接口时序。
[0016]在上述技术方案的基础上,所述控制寄存器包括控制CF卡接口协议控模块的CF卡控制器,CF卡控制器包括模块寄存器,对于Ultra直接内存访问类指令,通过控制CF卡控制器配置直接内存访问模块最大总线突发传输长度、CPU侧存储地址和本次传输数据长度。
[0017]本发明的有益效果在于:
[0018]1、CF Master (CF卡接口协议)模块实现PATA的接口功能,在控制寄存器中的CF卡控制器控制下,组合出P10(parallel input output,并行输入输出)、DMA (DirectMemory Access,直接内存访问)等指令对应的接口时序,实现标准的PATA模式,从而实现了对CF卡设备的控制,可用于其他ATA/ATAPI设备。
[0019]2、控制寄存器中的CF卡控制器包括模块寄存器、指令FIF0(First Input FirstOutput,先入先出队列)寄存器、读FIFO寄存器和写FIFO寄存器,模块寄存器用于配置接口时序、各个FIFO深度、FIFO阀值,以及具有传输完成、异常结束传输等状态上报的功能;各个FIFO寄存器是访问各个FIFO的接口,用来连续写入指令,缓存传输数据,提高传输效率。
[0020]3,DMA模块能够实现并主动发起CF卡内数据与CPU侧内存中数据的交互,能够支持一段时间的空闲后,定时发起数据更新。
【附图说明】
[0021]图1为本发明实现PCIe接口转CF卡接口的FPGA芯片使用状态示意图;
[0022]图2为本发明实现PCIe接口转CF卡接口的FPGA芯片的结构示意图;
[0023]图3为图2中DMA模块的详细结构示意图。
[0024]附图标记:
[0025]FPGA 芯片 1,CPU 2,CF 卡 3,
[0026]PCIe IP核模块11,适配模块12,DMA模块13,CF Master模块14,控制寄存器15 ;
[0027]第一接口 131,第二接口 132,发送方向控制器133,FIFO模块134,接收方向控制器135,DMA控制器151,CF控制器152。
【具体实施方式】
[0028]以下结合附图及实施例对本发明作进一步详细说明。
[0029]如图1所示,本发明实现PCIe接口转CF卡接口的FPGA芯片I,分别连接CPU 2和CF卡3,用于实现PCB板上CPU 2的PCIe接口下挂载CF卡存储设备,或者单独PCB小板卡实现PCIe接口转CF接口功能。其中,CPU2通过PCIe接口与FPGA芯片I相连,CF卡3通过CF卡接口与FPGA芯片I相连,CF卡接口符合PATA(接口协议的定义。为了方便CF卡3的连接,CF卡接口通常采用CF卡插槽的形式,内插CF卡3,可以连接PCB信号与CF卡3管脚信号。
[0030]如图2所示,本发明实现PCIe接口转CF卡接口的FPGA芯片I,可以采用带有PCIeIP硬核的FPGA型号作为基础,如Altera、Xilinx公司的多款不同档次的FPGA均满足要求。所述FPGA芯片I包括PCIe IP核模块11、适配模块12、DMA (Direct Memory Access,直接内存访问)模块13、CF Master模块14和控制寄存器15,PCIe IP核模块11与CPU 2连接,用于向CPU提供标准PCIe接口。其中,PCIe IP核模块11的接口总线根据所选的基础FPGA有所不同,对于Altera公司的FPGA,接口为Avalon总线;对于Xilinx公司的FPGA,接口为AXI总线,本实施例中以Altera公司的FPGA为例。所述适配模块12挂接在PCIeBarO (PCIe基地址)空间,用于PCIe IP核模块11的接口总线到本地总线的适配。DMA模块13连接PCIe IP核模块11模块,用于发起CF卡与CPU之间的数据传输。CF Master模块14分别与DMA模块13相连,用于向CF卡提供满足PATA的接口。控制寄存器15通过适配模块12挂接在PCIe BarO下,用于接收适配模块12发来的寄存器命令,还用于连接并控制DMA模块13和CF Master模块14。更详细的,控制寄存器15包括控制DMA模块13的DMA控制器151,还包括控制CF Master模块14的CF卡控制器152。
[0031]如图3所示,所述DMA模块13包括与PCIe IP核模块11对应的第一接口131(Master 为 AXI/Avalon)、与 CF Master 模块 14 对应的第二接口 132 (Master 为 AHB),还包括发送方向控制器133 (TX Ctrl)、接收方向控制器135和FIF0(First Input FirstOutput,先入先出队列)模块134,FIFO模块134包含两个FIFO,分别是发送方
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1