本发明涉及通信技术领域,特别是一种基于树莓派和fpga的配置电路及方法。
背景技术:
现在的电路系统要求利用更少的空间及更低的成本来实现更多的功能,此外xilinx每一代的fpga都有更高的性能和更丰富的功能,给这种电路系统要求带来了可能。随着嵌入式系统越来越受欢迎,众多设计师想要减少使用的元件数并且增加灵活性。为了实现这些目标,使用微处理器来配置fpga慢慢流行了起来。
尽管flashprom为xilinxfpga提供了易于使用的预构建配置解决方案,但使用固化flash程序后,一旦做成产品,修改程序变得繁琐,从而难以对产品进行后期的维护和更新。
技术实现要素:
本发明的目的在于提供一种基于树莓派和fpga的配置电路及方法,使得系统更加灵活和通用。
实现本发明目的的技术解决方案为:一种基于树莓派和fpga的配置电路,包括一块树莓派raspberrypi3的板子、一片flash芯片和xilinx系列的fpga芯片;采用两种配置方式配置fpga芯片,并且利用树莓派raspberrypi3自带的wifi固件和以太网口实现在线的系统升级;
树莓派raspberrypi3配置fpga芯片总计用到了20个gpio口,其中17个连接到fpga,分别是m[2:0]、
进一步地,采用两种配置方式配置fpga芯片,具体为:
通过树莓派raspberrypi3的gpio口直接配置fpga芯片,或者是树莓派raspberrypi3将文件传输到flash芯片,再由flash芯片在上电的时候加载到fpga。
进一步地,利用树莓派raspberrypi3自带的wifi固件和以太网口实现在线的系统升级,具体为:
通过树莓派raspberrypi3自带的wifi固件,联网即可下载安装包,再由树莓派raspberrypi3下载到fpga芯片,实现版本的升级;
在没有wifi的情况下,通过网线接入以太网口实现联网。
一种基于树莓派和fpga的配置方法,采用两种配置方式配置fpga芯片,
第一种配置方式为:采用从并配置模式,通过树莓派raspberrypi3的gpio口直接配置fpga芯片;该模式下,树莓派实现的功能:产生时钟cclk、传送配置数据到fpga和检测fpga回传的done信号;
第二种配置方式为:采用spi配置模式,通过先由树莓派raspberrypi3传给flash芯片,再由flash芯片加载到fpga芯片;该模式下,树莓派raspberrypi3通过spi传输方式将.mcs文件传到flash芯片,然后再由flash芯片在上电的时候加载到fpga。
进一步地,所述第一种配置方式,具体如下:
树莓派raspberrypi3配置fpga采用的是从并模式,m[2:0]=110,占用了14根引脚,包括数据线8根,6根配置线:
(1)如果从并总线上只有一个器件,拉低
(2)如果不需要读反馈,拉低
(3)
(4)
(5)
(6)
(7)后续字节流在每个cclk的上升沿加载;
(8)当最后一个字节加载完毕后,器件进入startup流程;
(9)startup流程持续至少8个cclk周期;
(10)startup流程期间,done信号被拉高;
(11)配置完成后,拉高
(12)
进一步地,所述第二种配置方式,具体如下:
树莓派raspberrypi3写串行flash芯片,再由flash芯片上电加载配置fpga芯片,flash芯片的4个spi引脚全部与树莓派raspberrypi3相连,所有指令都通过这4个脚串行移位输入,在spi串行flash芯片配置模式下,m[2:0]=001,fpga上电后,通过外部spi串行flash芯片prom完成配置,配置时钟由fpga芯片提供,流程如下:
(1)先拉低
(2)
(3)
(4)mosi开始发送命令到flash,先写8bit的readcmd,再写24bit的address;
(5)miso开始接收flash发送过来的bit流;
(6)配置完成后,拉高
本发明与现有技术相比,其显著优点为:(1)设计灵活,两种配置方案使得该信号处理板适用的场合更加广泛;(2)可以实现远程的系统升级,实现在线更新下载,方便完善和改进工作。
附图说明
图1是本发明基于树莓派和fpga的配置电路的连接框图。
图2是本发明中树莓派配置fpga所用的时序图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
基于嵌入式处理器的配置解决方案可以支持高级fpga配置应用程序,并减少电路板的设计面积,因而深受开发工程师的欢迎。树莓派是一款基于arm的微型电脑主板,它的外形只有一张信用卡的大小。以microsd卡为内存硬盘,卡片主板周围有4个usb接口和一个以太网接口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和hdmi高清视频输出接口,具备所有pc的基本功能。同时树莓派自带的wifi固件和以太网口能够方便地将微处理器连接到网络,继而可以实现在线的下载。
结合图1,本发明基于树莓派和fpga的配置电路,包括一块树莓派raspberrypi3的板子、一片flash芯片和xilinx系列的fpga芯片;采用两种配置方式配置fpga,并且利用树莓派带的wifi固件和以太网口实现在线的系统升级;
树莓派配置fpga总计用到了20个gpio口,其中17个连接到fpga,分别是m[2:0]、
进一步地,采用两种配置方式配置fpga芯片,具体为:
通过树莓派raspberrypi3的gpio口直接配置fpga芯片,或者是树莓派raspberrypi3将文件传输到flash芯片,再由flash芯片在上电的时候加载到fpga。。
进一步地,利用树莓派raspberrypi3自带的wifi固件和以太网口实现在线的系统升级,具体为:通过树莓派raspberrypi3自带的wifi固件,联网即可下载安装包,再由树莓派raspberrypi3下载到fpga芯片,实现版本的升级;
在没有wifi的情况下,通过网线接入以太网口实现联网。
本发明基于树莓派和fpga的配置方法,采用两种配置方式配置fpga芯片,
第一种配置方式为:采用从并配置模式,通过树莓派raspberrypi3的gpio口直接配置fpga芯片;该模式下,树莓派实现的功能:产生时钟cclk、传送配置数据到fpga和检测fpga回传的done信号;
第二种配置方式为:采用spi配置模式,通过先由树莓派raspberrypi3传给flash芯片,再由flash芯片加载到fpga芯片;该模式下,树莓派raspberrypi3通过spi传输方式将.mcs文件传到flash芯片,然后再由flash芯片在上电的时候加载到fpga。
实施例1
本实施例中,树莓派是一款基于linux系统的、体积较小的卡片计算机。
它的主要硬件设施包含:
4个usb接口,拥有更好地热插拔支持;
40芯的gpio口,可用于复杂的电子项目;
microsd卡卡槽;
1个以太网接口;
wifi固件;
1个高清多媒体接口(hdmi),提供高分辨率的视频以及数字音频号。
在本发明中,主要用到的是树莓派wifi模块和gpio端口,树莓派的wifi模块使得微处理器能连接到网络,实现下载,满足了我们在线系统更新的要求,在没有wifi的情况下也可以通过网线接入以太网口实现联网。树莓派联网的方式也非常容易,接上键盘鼠标和显示器,就可以把它当做一台电脑,跟pc联网的方式一样。
树莓派提供了丰富的gpio口资源,其内部工作电压为3.3v,使得用树莓派来配置fpga成为可能。这40个gpio口中,有17个是通用引脚,配置fpga用的信号线就主要用的这些引脚。除此之外还有一些特别的总线专用引脚:2根uart串行总线,提供了一个简单的两线串行接口,用于简单的信息传递;2根i2c总线,为多个集成电路之间提供通信用的;5根spi总线,其中包含两个芯片选择信号,使得它能与多个目标设备进行通信,与flash相连就采用的这种spi传输方式。
fpga配置流程如下:
1、上电
上电是当电源给fpga供电时,内部的状态机被复位,器件被唤醒。同时
2、器件初始化
器件上电后,内部的配置存储器需要被复位,在清空完配置寄存器后,
3、加载配置数据
当
4、start-up
start-up阶段是fpga由配置状态过渡到用户状态的过程。在start-up完成后,fpga便可实现用户编程的功能。在start-up阶段,fpga会进行以下操作:
(1)将done信号置高电平,若done信号没有置高,则说明数据加载过程失败;
(2)在配置过程中,器件的所有i/o引脚均为三态,此时,全局三态信号gts置低电平,这些i/o脚将会从三态切换到用户设置状态;
(3)全局复位信号gsr置低电平,所有触发器进入工作状态;
(4)全局写允许信号gwe置低电平,所有内部ram有效。
整个过程需要8个时钟周期c0-c7。在默认的情况下,这些操作都和配置时钟cclk同步。在done信号置高电平之前,gts、gsr、gwe都保持高电平。
将树莓派与fpga连接起来后,严格按照上述流程,控制各个配置线传输数据,即可完成树莓派对fpga的配置,详细的各个引脚的信号时序图见具体实施方式。另外,树莓派与flash的连接,就按照正常的spi传输方式通信。
树莓派配置fpga采用的是从并模式,m[2:0]=110,占用了14根引脚,包括数据线8根,6根配置线:
整个流程如下:
(1)如果从并总线上只有一个器件,拉低
(2)如果不需要读反馈,拉低
(3)
(4)
(5)
(6)
(7)后续字节流在每个cclk的上升沿加载;
(8)当最后一个字节加载完毕后,器件进入startup流程;
(9)startup流程持续至少8个cclk周期;
(10)startup流程期间,done信号被拉高。也可能需要额外的cclk周期来完成startup流程。
(11)配置完成后,拉高
(12)
树莓派写串行flash,再由flash芯片上电加载配置fpga。flash芯片的4个spi引脚全部与树莓派相连,所有指令都通过这4个脚串行移位输入。在spi串行flash配置模式下,m[2:0]=001,fpga上电后,通过外部spi串行flashprom完成配置,配置时钟由fpga芯片提供。整个流程如下:
(1)先拉低
(2)
(3)
(4)mosi开始发送命令到flash,先写8bit的readcmd,再写24bit的address;(5)miso开始接收flash发送过来的bit流。
(6)配置完成后,拉高