1.一种基于arm的fpga启动方法,包括上位机、arm控制模块、flash存储模块、电源模块和fpga模块;所述fpga包括管脚cclk、prog_b、din、done和init_b;其特征在于包括如下步骤:系统上电后,arm控制模块将prog_b输出为低电平,复位fpga内部逻辑并重新配置内存清除状态;
复位fpga后,将prog_b输出为高电平;
fpga开始清除配置内存,将init_b输出为低电平,arm控制模块将prog_b高电平保持300us后,fpga将init_b输出为高电平,并采样配置模式;
当arm控制模块采样到init_b为高电平后,开始向fpga模块发送配置时钟cclk和数据din;
在cclk的上升沿,传输数据到din,配置过程如发生错误,则fpga输出init_b为低电平;所有数据传输完成并经crc校验无误后,fpga输出done信号为高电平;
当arm控制模块采样到done为高电平后,结束fpga启动。
2.一种基于arm的fpga在线升级方法,包括上位机、arm控制模块、flash存储模块、电源模块和fpga模块;其特征在于:在fpga模块启动正常工作后,arm控制模块接收上位机发送的fpga升级程序,通过flash存储模块写入存储器中,实现fpga的在线升级。
3.根据权利要求2所述基于arm的fpga在线升级方法,其特征在于包括如下步骤:系统上电后,arm控制模块配置fpga启动过程完成后,进入fpga在线升级程序,循环等待上位机发送的fpga在线升级指令;
上位机运行后,加载fpga升级程序,并向arm控制模块发送fpga升级通讯指令;
arm控制模块在收到fpga升级通讯指令后,清除flash存储器所有存储数据,并回复升级准备完成数据指令;
然后,通过上位机发送开始更新指令,并向arm控制模块逐个发送每一帧通讯数据;arm控制模块在收到每一帧通讯数据并进行crc校验后,回复对应帧数据接收正确的指令,并将通讯数据按顺序写入flash存储器中;
当crc校验错误时,回复对应帧数据接收错误指令,上位机重新发送对应帧通讯数据;
当arm控制模块在接收完成最后一帧数据后,回复所有数据接收正确指令,上位机停止数据发送,实现的fpga在线升级。