本发明属于数字芯片数据传输技术领域,具体涉及一种基于uart接口的固件烧写实现方法。
背景技术:
c*core国产cpu是苏州国芯科技有限公司开发的32位高性能国产嵌入式cpu,苏州国芯在2002年引进motorola32位嵌入式cpu技术后,进行了消化吸收再创新,发展出具有自主知识产权的系列化32位嵌入式risccpu——c*core,具有高性能、低功耗和低成本的特点,为国内ic设计企业和产业化提供核心技术,在国内已有较多的应用。
c*core在产品应用中需要配套有程序固件存储器,利用c*core配套的工具将程序代码转换成程序固件,使用pc机通过工具接口将程序固件烧写至程序固件存储器中。传统烧写方式一般是采用专用接口(主要采用spi等传统接口),接口信号数量一般都是4根以上,而在实际应用中,鉴于芯片面积的局限,需要尽可能减少接口信号数量,这样,传统的程序烧写接口(4根以上的数据线)就占用了过多的数据线,对芯片的管脚资源造成了冲击。
技术实现要素:
(一)要解决的技术问题
本发明要解决的技术问题是:如何在保证减少程序固件烧写接口信号数量的基础上完成程序固件的烧写。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于uart接口的固件烧写实现方法,包括以下步骤:
1)pc主机启动一对码检测及固件发送模块的软件程序,对码检测及固件发送模块软件程序循环等待对码;
2)利用对码发送及固件接收模块通过uart接口发送对码至对码检测及固件发送模块;
3)对码检测及固件发送模块接收到正确的对码后,通知pc主机已完成对码流程;
4)pc主机发送固件文件至对码检测及固件发送模块;
5)对码检测及固件发送模块将固件文件通过uart接口发送至对码发送及固件接收模块;
6)对码发送及固件接收模块将固件文件发送给c*core模块;
7)c*core模块将程序固件烧写至程序存储模块。
优选地,所述对码检测及固件发送模块通过pc主机的软件实现。
优选地,所述对码检测及固件发送模块与uart接口的通信通过pc主机的uart硬件驱动实现。
优选地,所述对码发送及固件接收模块通过硬件设计实现。
优选地,所述对码发送及固件接收模块与uart接口的通信通过pc主机的uart硬件驱动实现。
优选地,所述对码发送及固件接收模块设计为包括对码数据发送模块、uart接口数据收发模块、固件文件接收模块,对码发送及固件接收模块的硬件工作流程,相应地,步骤“对码发送及固件接收模块将固件文件发送给c*core模块”具体为:
c*core模块配置对码数据发送模块中存储的对码数值;
对码数据发送模块发送对码数值到uart接口数据收发模块,uart接口数据收发模块将对码数据转换为uart接口通信协议发送到uart接口上;
uart接口数据收发模块通过uart通信协议接收uart接口发来的固件文件,将固件文件发送至固件文件接收模块进行缓存;
固件文件接收模块缓存完毕,将固件文件发送至c*core模块。
优选地,所述程序存储模块为程序固件存储器。
优选地,所述程序存储模块为c*core的程序固件存储器。
本发明还提供了一种用于实现所述固件烧写实现方法的系统,包括对码检测及固件发送模块、对码发送及固件接收模块。
本发明还提供了一种所述固件烧写实现方法在数字芯片数据传输技术领域中的应用。
(三)有益效果
本发明采用uart接口作为c*core的程序固件存储器的烧写接口,通过实时对码的方式实现程序固件的数据传输烧写流程,在保证减少程序固件烧写接口信号数量的基础上完成了程序固件的烧写。
附图说明
图1为改进前的固件烧写实现方法框图;
图2为本发明的改进后的固件烧写实现方法框图;
图3为本发明中的对码检测及固件发送模块软件流程图;
图4为本发明中的对码发送及固件接收模块架构图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1为改进前的固件烧写实现方法。
·改进前的方法:
1)pc主机将固件文件发送给spi接口模块;
2)spi接口模块将固件文件通过spi协议写入到程序存储模块。
图2为改进后的固件烧写实现方法,改进部分是虚线框内部分。
·改进后的方法,即本发明提供的一种基于uart接口的固件烧写实现方法包括以下步骤:
1)pc主机启动一对码检测及固件发送模块的软件程序,对码检测及固件发送模块软件程序循环等待对码;
2)利用对码发送及固件接收模块通过uart接口发送对码至对码检测及固件发送模块;
3)对码检测及固件发送模块接收到正确的对码后,通知pc主机已完成对码流程;
4)pc主机发送固件文件至对码检测及固件发送模块;
5)对码检测及固件发送模块将固件文件通过uart接口发送至对码发送及固件接收模块;
6)对码发送及固件接收模块将固件文件发送给c*core模块;
7)c*core模块将程序固件烧写至程序存储模块。
·虚线框内改进部分中的模块说明:
对码检测及固件发送模块通过pc主机的软件实现,该模块与uart接口的通信通过pc主机的uart硬件驱动实现,软件实现流程图如图3所示。
对码发送及固件接收模块通过硬件设计实现,该模块与uart接口的通信通过pc主机的uart硬件驱动实现,模块实现架构图如图4所示。
对码发送及固件接收模块包括对码数据发送模块、uart接口数据收发模块、固件文件接收模块,对码发送及固件接收模块的硬件工作流程(即对应步骤“对码发送及固件接收模块将固件文件发送给c*core模块”)为:
1)c*core模块配置对码数据发送模块中存储的对码数值;
2)对码数据发送模块发送对码数值到uart接口数据收发模块,uart接口数据收发模块将对码数据转换为uart接口通信协议发送到uart接口上;
3)uart接口数据收发模块通过uart通信协议接收uart接口发来的固件文件,将固件文件发送至固件文件接收模块进行缓存;
4)固件文件接收模块缓存完毕,将固件文件发送至c*core模块。
可以看出,本发明使用uart接口作为程序固件文件的烧写接口,采用对码收发模块实现pc主机与c*core的固件烧写指令通信,通过固件收发模块实现程序固件数据的传输,由于uart协议不能直接将程序固件写入到固件存储器,需要经过c*core的处理,将程序固件写入到固件存储器中。从而实现使用较少接口数据线完成程序固件的烧写。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。