MCU实现Altera FPGA在线升级技术

需积分: 47 29 下载量 89 浏览量 更新于2024-08-11 1 收藏 631KB PDF 举报
"通过MCU实现Altera FPGA在线升级,利用XModem协议进行FPGA程序的串口传输,简化现场升级流程,降低维护成本。" 在电子工程领域,特别是在产品开发和维护阶段,FPGA(Field-Programmable Gate Array)的在线升级是一个常用的需求,通常用于修复程序错误(BUG)或进行功能调整。传统的FPGA升级方式包括使用编程器物理接触芯片或通过JTAG接口连接到个人计算机,但这两种方法在某些情况下并不理想,如现场升级或缺乏专用设备。 本资料提出了一种基于MCU(Microcontroller Unit)的FPGA在线升级解决方案,适用于搭载Altera FPGA的系统。这种方法利用MCU中的软件模拟XModem协议,将FPGA程序文件通过串行接口传输到FPGA内部的FLASH存储器。XModem协议是一种简单的异步文件传输协议,适合低带宽的串口通信,它以128字节的数据块为单位进行传输,并包含校验机制以检测和纠正传输错误。 XModem协议的帧格式由以下几个部分组成:起始字符SOH(表示一个新块的开始),信息包序号(用于跟踪数据包的顺序),信息包序号的补码(用于确认接收端正确接收到数据包),数据区段(包含128字节的数据),以及校验字段(通常是奇偶校验或CRC校验)。当传输文件大小不是128的整数倍时,最后一个数据包会根据剩余数据的长度进行调整,可能小于128字节。 通过MCU实现的XModem协议传输,只需要Windows操作系统自带的超级终端软件和一根通用串口线,大大降低了现场升级的复杂性和成本。在目标板的MCU上添加相应代码后,即可通过串口实现FPGA程序的下载,这对于客服、研发和生产人员来说,无论是现场调试还是软件升级,都提供了极大的便利性。 这种方法的优势在于其灵活性和易用性。它不需要专门的FPGA下载软件或硬件设备,减少了对现场环境的依赖,同时减轻了研发和维护团队的工作负担,提高了工作效率。因此,通过MCU实现的FPGA在线升级是一种高效且经济的解决方案,尤其适用于那些需要频繁更新或调试的嵌入式系统。
2018-12-10 上传
在实际工程应用中,我们时常会遇到为解决某个老产品的BUG,需要在工程现场更新设备的FPGA代码,或者参加电信测试时需要现场升级设备FPGA程序以便于调试。公司现阶段所用的Altera FPGA程序代码一般存放于芯片配套的FLASH存储器中,而常见的对印制板上FLASH编程有几种方法,原始的方法是使用编程器,这种方法需要要将芯片取下,十分不便,或者通过JTAG接口连接到PC机上,但需要专用下载软件(一般由芯片生产厂商提供)。在测试现场或调测机房现场,要找到FPGA的专用下载线是比较困难的,且Altera FPGA的专用下载软件并不是每个PC设备上都有的。有时仅为了更新一个FPGA的程序就需要研发或客服人员亲自到现场去烧写程序,这既不便捷,也使得设备维护成本大大增加。  经过可行性与成本的考虑,我们找到一种既方便实用又低成本的方法来实现FPGA程序的在线现升级。即在MCU中(单片机或ARM均可)用软件来模拟XModem协议,将程序文件传输到FPGA的FLASH中。这种方法使用WINDOWS自带的超级终端软件来传送文件,无需安装专用软件,硬件支持仅需要一根通用串口线,只要在目标板MCU上增加一段实现XModem协议传输的代码,就可以方便的实现FPGA程序下载了。这种特点不仅方便了客服人员,也给研发和生产人员在现场调试和软件升级、修改中带来极大方便。