通MCU实现Altera FPGA线升级.问题背景
实际工程应中时常会遇解决某老产品BUG需工程现场更新设备FPGA代码者参加电信测试时需现场升级设备FPGA程序便调试公司现阶段Altera FPGA程序代码般存放芯片配套FLASH存储器中常见印制板FLASH编程种方法原始方法编程器种方法需芯片取十分便者通JTAG接口连接PC机需专载软件(般芯片生产厂商提供)测试现场调测机房现场找FPGA专载线较困难Altera FPGA专载软件PC设备时仅更新FPGA程序需研发客服员亲现场烧写程序便捷设备维护成增加
行性成考虑找种方便实低成方法实现FPGA程序线现升级MCU中(单片机ARM均)软件模拟XModem协议程序文件传输FPGAFLASH中种方法WINDOWS带超级终端软件传送文件需安装专软件硬件支持仅需根通串口线目标板MCU增加段实现XModem协议传输代码方便实现FPGA程序载种特点仅方便客服员研发生产员现场调试软件升级修改中带极方便
二.XModem协议简介
XModem协议种串口通信中广泛异步文件传输协议协议128字节块形式传输数块校验程进行错误检测标准XModem协议帧格式图1 示:
________________________________________________________________
| | | | | |
| SOH | 信息包序号 | 信息包序号补码 | 数区段 | 校验 |
|_______ |___________ |___________________ |___________ |___________ |
图1 标准XModem协议帧格式
XModem协议传输逻辑:
标准XModem协议说果传送文件128整数倍数包效容肯定帧长足部分需CTRLZ填充
传输接收方启动方法发送方发送C者NAK(注:里提NAK启动传输)XModem协议支持2种校验接收方发送NAK信号表示接收方算累加校验发送字符C表示接收方想算CRC校验接收方发送第C者NAK达发送方发送方认发送第数包传输已启动发送方接着应该数次128字节数加包头包序号包序号补码末尾加校验包成帧格式传送
发送方发第包等接收方确认字节ACK收接收方传ACK确认认数包接收方正确接收接收方求发送方继续发送包接收方首先确认数包序号完整性通数包序号取补然数包序号补码异结果0表示正确结果0发送NAK请求重传(注:里NAK告诉发送方重传启动传输)接收方确认数包序号正确然检查否期序号果期数包序号说明发生严重错误发送CAN条件中止传输果接收数包包序号前包相接收方会忽略重复包发送方发出ACK准备接收包接收方确认信息包序号完整性正确期128字节数区段进行算术校验结果帧中字节较相发送ACK发送 NAK
果发送方正常传输完全部数需结束传输正常结束需发送方发送EOT字节通知接收方接收方回ACK进行确认然数包SOH标志信息包起始SOH位置果出现EOT表示数传输结束没数传然接收方强制停止传输接收方发送CAN字节发送方表示接收方想条件停止传输发送方收CAN需发送EOT确认XModem协议相关控制字符含义详见附录1
三.Altera FPGA线升级硬件实现
Altera FPGAJTAGAS模式程序烧写先程序文件*pof载芯片FLASH中存储起次重新电程序文件会重新FLASH载入FPGA芯片中Altera FPGA常FLASH芯片EPCS1EPCS4两FLASH芯片容量样方面完全相引脚完全兼容
图2 FPGA AS模式烧写硬件连接图
图2示FPGAJTAGAS模式烧写程序文件硬件连接图需MCU模拟AS模式硬件操作方式通XModem协议FPGA代码文件传输FLASH中AS模式烧写FPGA时7信号相关中DATADCLKnCSASDIFLASH四SPI信号分代表FLASH数输出读写时钟片选数输入MCU需通四引脚数传输FLASH中外三信号CONF_DONEnCONFIGnCE分烧写FLASH时需FPGA进行控制三信号
nCEFPGA芯片信号nCONFIG低电时复位FPGA信号CONF_DONEFLASH载入FPGA完成信号AS烧写模式nCONFIG0 FPGA复位nCE1FPGA芯片选中CONF_DONE0载开始载结束时nCONFIG1nCE0进入代码FLASHFPGA载入程载入完毕CONF_DONE1
FLASH读写时需注意EPCS1EPCS4区般FLASH身应操作码操作码代表FLASH进行操作表1示写写禁止读芯片状态读字节读芯片ID写芯片状态写字节擦整片擦片区操作码EPCS1EPCS4进行操作需片选变低首先写入应操作码然址数外写字节写状态片区擦整片擦前必须先进行写操作电写字节写状态片区擦整片擦完成需进行写禁止操作
表1 EPCS1EPCS4操作码
四.MCU中软件实现
1 软件流程
MCU软件实现FPGA线升级程中FLASH读写部分通模拟XModem协议文件传输FLASH中整传输程需时遵循XModem传输逻辑EPCS1EPCS4读写规软件流程图3示:
图3 MCU模拟XModem协议流程图
2 *pof*bin文件转换
FPGA通编译软件QuartusⅡ生成烧写文件*pof文件文件末尾量全FF实际代码含义*pof文件没*bin文件兼容烧写工具节约文件传输时间*pof文件中代码掉保存*bin文件具体方法:(1)*pof文件UltraEdit编译软件开图4示QuartusⅡ生成*pof烧写文件中前面段Quartus版等代码关信息图4中红色方框部分删直第行全FF’开始前第行全FF’代码起始行
图4 *pof烧写文件起始
(2)图5示*pof文件中代码结束片全FF’代码全FF’保留15~20行保证XModem传输128字节完整性余余全FF’全部删
图5 *pof烧写文件结束
(3)效代码删新文件定义命名存’缀*bin文件
3 反相传输
通常读写惯SPI读写字节MSB开始LSB结束种方式Altera FPGAFLASH进行XModem传输传输成功FPGA确没启动通JTAG烧写FLASH代码编程器读出发现问题
图6图7示序列段代码截取图6QuartusⅡ生成*pof烧写文件代码图7通烧片器FLASH中读出代码通观察难发现两段代码中字节均互反MSBLSB位置相反
图6 QuartusⅡ生成*pof烧写文件
图7 通烧片器FLASH中读出代码
FLASH进行XModem传输中改LSB开始传输传输完成FPGA运行正常需注意EPCS1EPCS4进行XModem传输时应先LSB开始MSB结束
4 线升级示例
面列举线升级操作示例供家参考示例中XModem传输采CRC校验方式
l XModem协议传输预备阶段:开超级终端选串口波特率设置先擦FLASH然发送C’校验码启动传输
l 启动传输选择发送文件
l 浏览’中选择传输文件路径协议’中选择XModem
l 开始传输
l 传输结束提示
结:作Altera FPGA配套FLASH芯片烧写定特殊性文描述MCU实现XModem协议升级FPGA程序方法种方法仅FPGA芯片程序升级变非常简便客服研发生产员现场调试软件升级修改中带极方便
五附录
标准XModem协议控制字符符合 ASIC II 标准定义长度均1字节具体含义:
字符 应十六进制数 含义
ACK 0x06 认响应
C 0x43 CRC校验
CAN 0x18 撤销传送
CTRLZ 0x1A 填充
EOT 0x04 发送结束
NAK 0x15 认响应启动传输时累加校验
SOH 0x01 数块开始
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档