一种面向低管脚数的扩展总线配置系统及方法与流程

文档序号:17924548发布日期:2019-06-15 00:19阅读:136来源:国知局
一种面向低管脚数的扩展总线配置系统及方法与流程

本发明涉及电子通信技术领域,具体涉及一种面向低管脚数的扩展总线配置系统及方法。



背景技术:

总线(Bus)指通过分时复用的方式,将信息从一个或多个源部件传送到一个或者多个目的部件的一组传输线。按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。

在电子系统设计中,总线有着十分广泛的应用,如图1所示的可编程器件配置系统。这种系统由主机设备11、可擦除可编程逻辑(Erasable Programmable Logic Device,EPLD)器件12、非易失闪存(NOR Flash)存储单元13、现场可编程门阵列(Field Programmable Gate Array ,FPGA)器件14组成,能够完成FPGA的配置和加载。主机设备11将FPGA配置文件通过BUS总线的写操作传输给EPLD器件12,EPLD器件12将接收到的总线写操作转换为NOR Flash存储单元13写操作,完成配置文件的写入。主机11也可以通过BUS总线发送读操作命令给EPLD器件12,EPLD器件12将接收到的总线读操作转换为NOR Flash存储单元13读操作,完成NOR Flash存储单元13数据的读取。配置完成后,主机设备11通过BUS总线发送FPGA配置命令,EPLD器件12将接收到的总线配置命令后,将NOR Flash存储单元13中的配置文件按照FPGA器件14的配置时序,完成FPGA动态配置。

申请号201520170644.5的《复用总线的CPU和FPGA组合电路》、申请号201410313013.4的《一种FPGA的更新系统及其更新方法》、申请号201510287163.7的《可编程器件配置系统及方法》均采用了串行外设接口(Serial Peripheral Interface,SPI)总线接口向FLASH存储器中进行配置文件读写;申请号201410163022.X的《基于CPLD的FPGA加载系统》采用了本地总线(Local Bus)接口通过复杂可编程逻辑器件向FLASH存储器中进行配置文件读写。但在实际设计中发现,当FPGA的配置文件比较大,主机通过SPI总线向FLASH存储器写入配置文件时,有效传输数据的仅有数据和时钟两根线,数据串行传输时间将极大增长,加载时间已将无法满足用户需求。若采用本地总线(Local Bus)接口进行数据传输,由于是并行传输,故数据传输时间会有效缩短,但Local Bus接口会占用大量硬件管脚资源,增加了硬件成本。因此,在硬件资源不足且传输配置文件较大的情况下,总线成为了FPGA配置系统中的瓶颈。

面向低管脚数的总线传输方式,现有的总线协议主要是由飞利浦(Philips)公司定义的同步串行数据内部集成电路(Inter-Integrated Circuit,I2C)总线和英特尔(Intel)公司定义的数据地址命令多路复用低管脚数(Low Pin Count,LPC)总线。但I2C总线是一种2线串行接口总线,数据通信带宽不够,无法满足快速传输配置文件需求。而LPC总线具有串并的特性,是一种4位的并行数据标准接口,工作频率固定为33Mhz,但固定的数据带宽和频率,致使LPC总线扩展性比较差,且协议额外开销比较多,又限制了进一步提升数据通信带宽的空间。因此,针对上述总线的问题,提出了一种面向低管脚数的扩展总线配置系统及方法。



技术实现要素:

有鉴于此,本发明提供了一种频率和总线带宽可由用户自定义、协议开销少、数据通信可靠、节省硬件资源,面向低管脚数的扩展总线配置系统及方法。

一种面向低管脚数的扩展总线配置系统,所述系统包括:一个主机设备、一个EPLD器件、一个NOR Flash存储单元及一个FPGA器件,其中:

主机设备,用于通过可扩展总线发起写操作、读操作和配置操作,写操作能够将主机设备内存储的FPGA配置文件写入到存储单元,读操作能够读取已写入存储单元的配置文件数据,配置操作能够完成FPGA器件的配置加载;

EPLD器件,用于接收来自可扩展总线写操作、读操作和配置操作命令,并按照相关命令执行操作;

NOR Flash存储单元,用于存储FPGA配置文件数据;

FPGA器件,用于接收来自EPLD器件的配置操作,完成配置。

一种面向低管脚数的扩展总线配置方法,包括初始化操作、写操作、读操作和配置操作,其中:

一种面向低管脚数的扩展总线配置方法的初始化操作包括以下步骤:

1.1、上电稳定后,配置系统所有模块进行复位操作;

1.2、主机设备和EPLD器件对可扩展总线LAD数据参数N进行配置,可以配置的参数有(N = 1、2、4、8),EPLD对FPGA进行配置;

1.3、主机设备将时钟LCLK和数据线LAD置位1。

一种面向低管脚数的扩展总线配置方法的写操作包括以下步骤:

2.1、主机设备将数据位置位为start,启动总线操作;

2.2、主机设备输出写操作命令码cmd,输出32位地址addr,输出16位的数据长度len,输出len个宽度为16位的写数据;

2.3、主机设备输出完数据后数据线LAD置位1,同时释放总线控制权,等待;

2.4、EPLD器件接收到写操作命令后,接收32位地址,按照数据长度开始接收数据,并同时向NOR Flash存储单元写入数据;

2.5、EPLD器件完成存储单元写入数据后,向总线写入返回应答ack;

2.6、主机设备接收到返回应答后,收回总线控制权,将时钟LCLK和数据线LAD置位1。

一种面向低管脚数的扩展总线配置方法的读操作包括以下步骤:

3.1、主机设备将数据位置位为start,启动总线操作;

3.2、主机设备输出写操作命令码cmd,输出32位地址addr;

3.3、主机设备输出完地址后数据线LAD置位1,同时释放总线控制权,等待;

3.4、EPLD器件接收到读操作命令后,按照接收的32位地址,读取NOR Flash存储单元中的数据;

3.5、EPLD器件完成存储单元写入数据后,向总线写入返回应答ack,再输出读取的数据,再根据时钟信号输出读取的数据;

3.6、主机设备接收到返回应答和读取的数据后,收回总线控制权,将时钟LCLK和数据线LAD置位1。

一种面向低管脚数的扩展总线配置方法的配置操作包括以下步骤:

4.1、主机设备将数据位置位为start,启动总线操作;

4.2、主机设备输出配置操作命令码cmd后数据线LAD置位1,同时释放总线控制权,等待;

4.3、EPLD器件接收到配置操作命令后,向总线写入返回应答ack两个周期,同时启动配置加载,将NOR Flash存储单元中的数据写入到FPGA中,完成配置;

4.4、主机设备接收到返回应答后,收回总线控制权,将时钟LCLK和数据线LAD置位1。

与现有技术相比,本发明提供的面向低管脚数的扩展总线配置系统及方法,主机与EPLD器件通信总线不再为固定的总线宽度,可以根据实际的硬件资源进行配置,总线传输写操作和读操作相比I2C总线和LPC总线协议进行了简化,增大了数据传输速度,有效地减少了配置时间。

附图说明

图1为本发明的实施例一中面向低管脚数的扩展总线配置系统装置设备结构示意图;

图2为本发明的实施例二中面向低管脚数的扩展总线配置方法的初始化操作的执行示意图;

图3为本发明的实施例三中面向低管脚数的扩展总线配置方法的写操作时序示意图;

图4为本发明的实施例四中面向低管脚数的扩展总线配置方法的写操作的执行示意图;

图5为本发明的实施例五中面向低管脚数的扩展总线配置方法的读操作时序示意图;

图6为本发明的实施例六中面向低管脚数的扩展总线配置方法的读操作的执行示意图;

图7为本发明的实施例七中面向低管脚数的扩展总线配置方法的配置操作时序示意图;

图8为本发明的实施例八中面向低管脚数的扩展总线配置方法的配置操作的执行示意图。

具体实施方式

下面结合说明书附图对本发明实施例进行详细描述。

如图1所示,为本发明实施例一中的面向低管脚数的扩展总线配置系统设备结构示意图,所述的总线配置系统包括主机设备11、可擦除可编程逻辑(Erasable Programmable Logic Device,EPLD)器件12、非易失闪存(NOR Flash)存储单元13、现场可编程门阵列(Field Programmable Gate Array ,FPGA)器件14,其中主机设备11通过总线与EPLD器件12连接,EPLD器件12通过FLASH读写信号线与NOR Flash存储单元13连接,EPLD器件12通过FPGA配置信号线与FPGA器件14连接。

主机设备11与EPLD器件12连接的总线,由一根时钟线LCLK和若干数据线LAD组成。在实际设计中,根据硬件资源可以选取相应的数据线数量N,可扩展的总线支持数量N为1、2、4、8。若超过最大数目8,则说明硬件资源比较丰富,可以考虑使用更高速率的本地总线进行通信,该情况不再考虑使用面向低管脚数目总线配置系统。

本实施例一中,主机设备11用于通过总线发起写操作、读操作和配置操作,写操作能够将主机设备内存储的FPGA配置文件写入到存储单元,读操作能够读取已写入存储单元的配置文件数据,配置操作能够完成FPGA器件的配置加载;EPLD器件12用于接收来自可扩展总线写操作、读操作和配置操作命令,并按照相关命令执行操作;NOR Flash存储单元13用于存储FPGA配置文件数据;FPGA器件14用于接收来自EPLD器件的配置操作,完成配置。

如图2所示,为本发明实施例二中的面向低管脚数的扩展总线配置方法的初始化操作的执行示意图,所述总线配置方法的初始化操作包括以下步骤:

步骤21:上电稳定后,配置系统所有模块进行复位操作。

步骤22:主机设备和EPLD器件对可扩展总线LAD数据线数量N进行配置,可以配置的参数有(N = 1、2、4、8),EPLD对FPGA进行配置。

配置LAD数据线数量N需要根据实际硬件资源来确定,主机设备和EPLD器件的数据线数量N设置相同。

系统上电后,EPLD器件将按照存储单元的地址从低到高依次读取存储的数据,并转换为FPGA配置时序写入到FPGA中,从而完成FPGA的上电配置。

步骤23:主机设备将时钟LCLK和数据线LAD置位1。

在本实施例二中,总线配置的初始化过程采用自身的参考时钟,一旦电源和时钟稳定后会进行设备内部所有模块进行复位。

如图3所示,为本发明实施例三中的面向低管脚数的扩展总线配置方法的写操作时序示意图,所述写操作时序包括开始(start)、命令(cmd)、地址(addr)、长度(len)、数据(data)、应答(ack)和停止(stop)。其中:开始(start)用于表示操作的起始状态,为特定的8比特数据(例如“10101010”);命令(cmd)用于表示当前操作类型,写操作为特定的8比特数据(例如“00000001”),读操作为特定的8比特数据(例如“00000000”),配置操作为特定的8比特数据(例如“00000010”);地址(addr)用于表示命令操作的地址值,地址长度为32比特;长度(len)用于表示写入数据的长度,数据长度为16比特;数据(data)用于表示需要写入或者读出的数据,每一个数据均为16比特;应答(ack)用于表示底层硬件已经接收到主机发出的命令,给予特定的8比特应答数据(例如“00000000”);停止(stop)用于结束操作,为特定的8比特数据(例如“11111111”)。

图3所给出的写操作时序是LAD数据线为8情况的写时序图,若N为其他值的情况下,完成写操作时序则需要更多时钟周期。例如:start为固定的8比特数据“10101010”,若LAD的数量N为8,LAD[7:0]可以在LCLK一个周期的上升沿传送数据“10101010”;若LAD的数量N为4,LAD[3:0]则需要LCLK两个周期的上升沿分别传送数据“1010”;若LAD的数量N为2,LAD[1:0]则需要LCLK四个周期的上升沿分别传送数据“10”;若LAD的数量N为1,LAD[0]则需要LCLK八个周期的上升沿分别进行单比特数据传送。

在本实施例三中,LAD数据在LCLK下降沿时写入,在LCLK上降沿时读出。时钟信号由主机设备输出,EPLD器件根据时钟信号对数据进行采样。

如图4所示,为本发明实施例四中的面向低管脚数的扩展总线配置方法的写操作的执行示意图,所述总线配置方法的写操作包括以下步骤:

步骤41:主机设备将数据位置位为start,启动总线操作。

步骤42:主机设备输出写操作命令码cmd,输出32位地址addr,输出16位的数据长度len,输出len个宽度为16位的写数据。

步骤43:主机设备输出完数据后数据线LAD置位1,同时释放总线控制权,等待。

主机设备等待时间不低于10us,等待时间主要由NOR Flash存储单元写入速度决定,用户可以根据实际工程中的存储单元写入时间适当调整等待时间。

步骤44:EPLD器件接收到写操作命令后,接收32位地址,按照数据长度开始接收数据,并同时向NOR Flash存储单元写入数据。

EPLD器件向NOR Flash存储单元写数据采用块数据写入方式,接收的32为地址为基地址,每写入16位数据,基地址增加一位,直到写完数据长度len。因此,一次写操作最大可以写入128Kbytes的数据。

EPLD器件从总线接收数据与NOR Flash存储单元写数据同时进行,每接收16位数据则会向NOR Flash存储单元执行写操作,减少写操作等待时间。

步骤45:EPLD器件完成存储单元写入数据后,向总线写入返回应答ack。

步骤46:主机设备接收到返回应答后,收回总线控制权,时钟LCLK和数据线LAD置位1。

在本实施例四中,写操作过程的start、cmd、addr、len、data状态,LAD总线上均为主机设备向EPLD器件发送数据,主机设备输出完数据后数据线LAD置位1,此时主机设备进入了监听状态,此时LAD总线上的数据方向为EPLD器件向主机设备发送ack应答数据,接收到应答后,恢复总线控制权,重置时钟LCLK和数据线LAD为1。

如图5所示,为本发明实施例五中的面向低管脚数的扩展总线配置方法的读操作时序示意图,所述读操作时序包括开始(start)、命令(cmd)、地址(addr)、应答(ack)、数据(data)和停止(stop)。其中:开始(start)用于表示操作的起始状态,为特定的8比特数据(例如“10101010”);命令(cmd)用于表示当前操作类型,读操作为特定的8比特数据(例如“00000000”);地址(addr)用于表示命令操作的地址值,地址长度为32比特;应答(ack)用于表示底层硬件已经接收到主机发出的命令,给予特定的8比特应答数据(例如“00000000”);数据(data)用于表示需要写入或者读出的数据,每一个数据均为16比特;停止(stop)用于结束操作,为特定的8比特数据(例如“11111111”)。

在本实施例五中,主机设备在接收到应答信号后,需要输出时钟信号,EPLD器件根据时钟信号输出从存储单元读取数据。

如图6所示,为本发明实施例六中的面向低管脚数的扩展总线配置方法的读操作的执行示意图,所述总线配置方法的读操作包括以下步骤:

步骤61:主机设备将数据位置位为start,启动总线操作。

步骤62:主机设备输出写操作命令码cmd,输出32位地址addr。

步骤63:主机设备输出完数据后数据线LAD置位1,同时释放总线控制权,等待。

主机设备等待时间不低于10us,等待时间主要由NOR Flash存储单元读取速度决定,用户可以根据实际工程中的存储单元读取时间适当调整等待时间。

步骤64:EPLD器件接收到写操作命令后,接收32位地址,读取NOR Flash存储单元中的数据。

EPLD器件向NOR Flash存储单元读取数据不再是块数据读取,而是每一个地址读取16位数据。

步骤65:EPLD器件完成存储单元读取数据后,向总线写入返回应答ack,再根据时钟信号输出读取数据。

步骤66:主机设备接收到返回应答和读取的数据后,收回总线控制权,将时钟LCLK和数据线LAD置位1。

在本实施例六中,读操作过程的start、cmd、addr状态,LAD总线上均为主机设备向EPLD器件发送数据,主机设备输出完数据后数据线LAD置位1,此时主机设备进入了监听状态,此时LAD总线上的数据方向为EPLD器件向主机设备发送ack应答数据和data读取数据,接收到应答和数据后,恢复总线控制权,重置时钟LCLK和数据线LAD为1。

读取NOR Flash存储单元数据主要为了验证写入文件的与原文件的一致性,如需减少配置时间,读操作步骤可以省略,所以本实施例四不是实现本发明的必要目的。

如图7所示,为本发明实施例七中的面向低管脚数的扩展总线配置方法的配置操作时序示意图,所述配置操作时序包括开始(start)、命令(cmd)、应答(ack)和停止(stop)。其中:开始(start)用于表示操作的起始状态,为特定的8比特数据(例如“10101010”);命令(cmd)用于表示当前操作类型,配置操作为特定的8比特数据(例如“00000010”);应答(ack)用于表示底层硬件已经接收到主机发出的命令,给予特定的8比特应答数据(例如“00000000”);停止(stop)用于结束操作,为特定的8比特数据(例如“11111111”)。

在本实施例七中,主机设备在接收到应答信号后,需要给出两个时钟周期的时钟信号。

如图8所示,为本发明实施例八中的面向低管脚数的扩展总线配置方法的配置操作的执行示意图,所述总线配置方法的配置操作包括以下步骤:

步骤81:主机设备将数据位置位为start,启动总线操作。

步骤82:主机设备输出写操作命令码cmd后,数据线LAD置位1,同时释放总线控制权,等待。

步骤83:EPLD器件接收到配置操作命令后,向总线写入返回应答ack两个周期,同时启动配置加载,将NOR Flash存储单元中的数据写入到FPGA中,完成配置。

EPLD器件将按照存储单元的地址从低到高依次读取存储的数据,并转换为FPGA配置时序写入到FPGA中,从而完成FPGA的在线配置。

步骤84:主机设备接收到返回应答后,收回总线控制权,将时钟LCLK和数据线LAD置位1。

本发明实施例八中的步骤83不是本发明的必要目的。

综合以上实施例,本发明实施例提出的扩展总线配置系统,可以适用于不同的低管脚设计环境,总线传输带宽相比常用的I2C总线和LPC总线有了明显的提升,实现了总线的写、读、配置操作流程;并且,通过本发明记载的总线配置系统的实现方案,保证了主机设备能够通过总线配置FPGA器件。

显然,本领域的技术人员可以根据本发明的技术构思对本发明进行各种改动和变形,而这些修改和变形属于本发明权利要求及等同技术范围之内,则都应属于本发明权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1