一种FPGA程序更新方法及系统技术方案

技术编号:20448260 阅读:36 留言:0更新日期:2019-02-27 02:43
本申请公开了一种FPGA程序更新方法,主控板接收由调试终端发送的各个FPGA的待写入目标程序;接收所述调试终端的远程控制命令,所述主控板将所述待写入目标程序分别发送给所述FPGA;所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新,所述程序更新IP核预先设置在所述FPGA中。本申请通过远程登录主控板,将待写入目标程序发送给对应的从板的FPGA,进而由预先设置在FPGA中的程序更新IP核,将待写入目标程序写入FPGA的flash中,实现了单点程序更新,极大地简化了更新操作。本申请还公开了一种FPGA程序更新系统,同样具有上述有益效果。

A Method and System for Program Updating of FPGA

This application discloses a method for updating the program of the FPGA, in which the main board receives the target program of each FPGA sent by the debugging terminal, receives the remote control command of the debugging terminal, and sends the target program to the FPGA separately. The program updating IP core of the FPGA writes the received target program into the flash for program updating. New, the program update IP core is pre-set in the FPGA. This application sends the program to be written to the corresponding slave board's FPGA through the remote login master board, then updates the IP core by the program pre-set in the FPGA, writes the program to be written to the flash of the FPGA, realizes the single-point program updating, greatly simplifies the update operation. The application also discloses a program update system for FPGA, which also has the above beneficial effects.

【技术实现步骤摘要】
一种FPGA程序更新方法及系统
本申请涉及电子
,特别涉及一种FPGA程序更新方法及系统。
技术介绍
随着信息技术的发展,列车通信网络的智能化水平不断提高,相关产品中所使用的FPGA也越来越多。列车通信网络主要用于在列车控制、状态监视、故障诊断、车载信息服务等过程中的数据传输,被誉为是列车的“大脑”与“神经”。在开发和应用的过程中,由于需求的变化或者是FPGA中程序的自身缺陷,经常需要对FPGA程序进行优化更新。然而,列车上FPGA程序的优化更新往往是一件非常麻烦的工作。这是因为,维护人员往往需要将列车上的相关模块拆卸下来,利用模块中的控制板和FPGA专用的仿真下载器进行新程序的下载更新,并在完成下载更新之后重新安装相关模块。因此,大量的时间将消耗在拆卸和安装模块上。随着列车上FPGA应用量的增加,对于维护人员来说,FPGA程序的更新无疑将是一项巨大的工作量。针对该问题,现有技术中提出了一种解决方案。请参考图1,图1为现有技术中提供的FPGA程序更新方法的示意图,在该方法中,通过控制板的CPU,在获取到待写入目标程序(一般为*.bin文件)之后,将其写入FPGA的flash中,以便在控制板下次上电或者重启之后,FPGA从flash中加载新程序实现优化更新。图1所示的现有技术虽然可以避免大量的拆卸和安装工作,但是,每当需要更新一个FPGA的程序时,都需要在该FPGA的控制板上进行操作,因此,当控制板数量较多时,其工作量仍然很大,需要进一步提高。
技术实现思路
本申请的目的在于提供一种FPGA程序更新方法及系统,以便简捷方便地进行FPGA程序更新,减少工作量。为解决上述技术问题,本申请提供一种FPGA程序更新方法,包括:主控板接收由调试终端发送的各个FPGA的待写入目标程序;接收所述调试终端的远程控制命令,所述主控板将所述待写入目标程序分别发送给所述FPGA;所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新,所述程序更新IP核预先设置在所述FPGA中。可选地,在所述主控板将所述待写入目标程序分别发送给所述FPGA之前还包括:所述主控板与所述FPGA进行握手处理;若握手成功,则执行后续将所述待写入目标程序分别发送给所述FPGA的步骤。可选地,所述主控板将所述待写入目标程序分别发送给所述FPGA包括:所述主控板将所述待写入目标程序的帧数据发送给所述FPGA;所述FPGA的所述程序更新IP核进行CRC校验;所述主控板获取所述CRC校验的校验结果;若所述校验结果错误,则向所述FPGA重新发送校验结果错误的所述帧数据;若所述校验结果正确,则向所述FPGA继续发送下一个帧数据,直至所述FPGA的待写入目标程序发送完毕。可选地,所述主控板获取所述CRC校验的校验结果包括:所述主控板查询所述FPGA的ACK数据有效寄存器;若非空,则读取所述FPGA的ACK数据;若所述ACK数据错误,则所述校验结果错误;若所述ACK数据正确,则所述校验结果正确。可选地,所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新包括:所述FPGA的所述程序更新IP核对所述flash进行擦除操作;所述程序更新IP核将接收到的待写入目标程序的帧数据写入所述flash中;所述程序更新IP核回读所述flash中写入的帧数据;并判断所述回读的帧数据是否与接收到的帧数据一致;若否,则重新将接收到的所述帧数据写入所述flash中;若是,则继续将接收到的下一个帧数据写入所述flash中,直至所述待写入目标程序在所述flash中写入完毕。本申请还提供了一种FPGA程序更新系统,包括:主控板:用于接收由调试终端发送的各个FPGA的待写入目标程序;接收所述调试终端的远程控制命令,将所述待写入目标程序分别发送给所述FPGA;所述FPGA:用于通过程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新,所述程序更新IP核预先设置在所述FPGA中。可选地,所述主控板还用于:在将所述待写入目标程序分别发送给所述FPGA之前,与所述FPGA进行握手处理;若握手成功,则执行后续将所述待写入目标程序分别发送给所述FPGA的步骤。可选地,所述主控板具体用于:将所述待写入目标程序的帧数据发送给所述FPGA;获取所述FPGA进行CRC校验的校验结果;若所述校验结果错误,则向所述FPGA重新发送校验结果错误的所述帧数据;若所述校验结果正确,则向所述FPGA继续发送下一个帧数据,直至所述FPGA的待写入目标程序发送完毕;所述FPGA具体用于:在接收到所述主控板发送的所述帧数据之后,通过所述程序更新IP核进行CRC校验。可选地,所述主控板具体用于:在获取所述CRC校验的校验结果时,查询所述FPGA的ACK数据有效寄存器;若非空,则读取所述FPGA的ACK数据;若所述ACK数据错误,则所述校验结果错误;若所述ACK数据正确,则所述校验结果正确。可选地,所述FPGA具体用于:通过所述程序更新IP核,对所述flash进行擦除操作;将接收到的待写入目标程序的帧数据写入所述flash中;回读所述flash中写入的帧数据,并判断所述回读的帧数据是否与接收到的帧数据一致;若否,则重新将接收到的所述帧数据写入所述flash中;若是,则继续将接收到的下一个帧数据写入所述flash中,直至所述待写入目标程序在所述flash中写入完毕。本申请所提供的FPGA程序更新方法中,主控板接收由调试终端发送的各个FPGA的待写入目标程序;接收所述调试终端的远程控制命令,所述主控板将所述待写入目标程序分别发送给所述FPGA;所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新,所述程序更新IP核预先设置在所述FPGA中。相比于现有技术,本申请所提供的FPGA程序更新方法中,利用网络将FPGA的待写入目标程序发送给主控板,并通过远程登录,令主控板将其接收到的待写入目标程序分别发送给各个FPGA,由FPGA的程序更新IP核再将其接收到的待写入目标程序写入flash中以便进行程序的更新。由于远程控制和程序更新IP核的使用,本申请所提供的方法,只需在网络中的一个调试端口上进行调试即可完成所有操作,即实现了单点程序更新。由此可见,本申请所提供的FPGA程序更新方法可以有效地简化对大量从板中FPGA的程序更新任务,大大地提高工作效率。本申请所提供的FPGA程序更新系统可以实现上述FPGA程序更新方法,同样具有上述有益效果。附图说明为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。图1为现有技术中所提供的FPGA程序更新方法的示意图;图2为本申请实施例所提供的一种FPGA程序更新方法的流程图;图3为本申请实施例所提供的主控板与从板的FPGA通信过程的示例图;图4为本申请实施例所提供的程序更新IP核将待写入目标程序写入flash中的流程示例图;图5为本本文档来自技高网...

【技术保护点】
1.一种FPGA程序更新方法,其特征在于,包括:主控板接收由调试终端发送的各个FPGA的待写入目标程序;接收所述调试终端的远程控制命令,所述主控板将所述待写入目标程序分别发送给所述FPGA;所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新,所述程序更新IP核预先设置在所述FPGA中。

【技术特征摘要】
1.一种FPGA程序更新方法,其特征在于,包括:主控板接收由调试终端发送的各个FPGA的待写入目标程序;接收所述调试终端的远程控制命令,所述主控板将所述待写入目标程序分别发送给所述FPGA;所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新,所述程序更新IP核预先设置在所述FPGA中。2.根据权利要求1所述FPGA程序更新方法,其特征在于,在所述主控板将所述待写入目标程序分别发送给所述FPGA之前还包括:所述主控板与所述FPGA进行握手处理;若握手成功,则执行后续将所述待写入目标程序分别发送给所述FPGA的步骤。3.根据权利要求2所述FPGA程序更新方法,其特征在于,所述主控板将所述待写入目标程序分别发送给所述FPGA包括:所述主控板将所述待写入目标程序的帧数据发送给所述FPGA;所述FPGA的所述程序更新IP核进行CRC校验;所述主控板获取所述CRC校验的校验结果;若所述校验结果错误,则向所述FPGA重新发送校验结果错误的所述帧数据;若所述校验结果正确,则向所述FPGA继续发送下一个帧数据,直至所述FPGA的待写入目标程序发送完毕。4.根据权利要求3所述FPGA程序更新方法,其特征在于,所述主控板获取所述CRC校验的校验结果包括:所述主控板查询所述FPGA的ACK数据有效寄存器;若非空,则读取所述FPGA的ACK数据;若所述ACK数据错误,则所述校验结果错误;若所述ACK数据正确,则所述校验结果正确。5.根据权利要求3所述FPGA程序更新方法,其特征在于,所述FPGA的程序更新IP核将接收到的待写入目标程序写入flash中以便进行程序更新包括:所述FPGA的所述程序更新IP核对所述flash进行擦除操作;所述程序更新IP核将接收到的待写入目标程序的帧数据写入所述flash中;所述程序更新IP核回读所述flash中写入的帧数据;并判断所述回读的帧数据是否与接收到的帧数据一致;若否,则重新将接收到的所述帧数据写入所述flash中;若是,则继续将接收到的下一个帧数据写入所述flash...

【专利技术属性】
技术研发人员:陆琦周桂法路向阳肖家博唐军周学勋蒋国涛全清华任懋华张泰然
申请(专利权)人:中车株洲电力机车研究所有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1