本发明涉及dsp升级,具体涉及一种dsp网口在线升级方法、dsp、上位机及系统。
背景技术:
1、dsp(digital signal processor,数字信号处理器)是一种专门用于处理批量数字信号的微处理器,由于其特有的硬件运算优势,被广泛应用于数字图像处理、数字通信等领域。在dsp的使用过程中,会需要对其内置程序进行更新或升级。
2、一般而言,dsp升级主要是采用专门的仿真工具调试接口。但对于量产设备而言,预留调试接口会占用大量的硬件资源,与紧凑型电路板目标不匹配。再者,一般dsp电路板安装在设备内部,采用调试接口升级相对困难,与便捷性存在矛盾。因此,采用各种通信接口的在线升级方式受到越来越多的关注。
3、其中,串口升级已经得到广泛的应用。但是,随着科技的进步,串口作为一种低速接口已经很难满足大容量升级包的需求。因此,网口在线升级是一种更优的选择,其具有传输速度快、传输数据稳定等优势,并且网口作为大多数应用场合必备接口,不需要占用额外的硬件资源。
4、在现有dsp网口在线升级方案中,可以实现利用网口传输升级包,然后dsp接收到传输包之后进入烧写程序。然而,这种升级方式仍然具备一些缺陷:首先,该方案传输技术没有根据硬件特性做优化,只是基于通用协议,升级前需要执行一定的操作进入升级模式,操作流程比较繁琐。其次,该方案传输数据后,pc端与dsp是失联的状态,需要在dsp端增加显示器或者指示灯指示操作完成,也无法在升级过程中实时操控dsp。最后,该方案没有配套系统升级包的数据处理工具,需要额外的工具才能生成嵌入式端适用的boot image文件(即启动映像文件),上下位机协同性不高,代码优化程度不高。
技术实现思路
1、有鉴于此,本发明提供了一种dsp网口在线升级方法、dsp、上位机及系统,以解决现有dsp网口升级技术中操作流程繁琐、无法实时操控dsp、上下位机协同性不高以及代码优化程度不高的问题。
2、本发明提供了一种dsp网口在线升级方法,应用于dsp,所述方法包括:
3、预先获取dsp的自定义协议栈;
4、通过网口与上位机建立通信,接收所述上位机发送的dsp版本号协议信息,根据所述自定义协议栈和所述dsp版本号协议信息,确定dsp版本号,并将所述dsp版本号返回至所述上位机;
5、等待接收所述上位机基于所述dsp版本号所得到的boot映像文件;
6、当接收到所述boot映像文件后,根据所述自定义协议栈和所述boot映像文件进行升级,并在预设存储区写入升级数据;
7、在所述升级数据正确的情况下,向所述上位机发送升级成功协议信息,完成dsp网口在线升级。
8、可选地,dsp配置有ram存储器;
9、所述boot映像文件的头部携带有第一升级包标识协议信息,所述boot映像文件的尾部携带有第二升级包标识协议信息;
10、当接收到所述boot映像文件后,根据所述自定义协议栈和所述boot映像文件进行升级,并在预设存储区写入升级数据,包括:
11、当接收到所述boot映像文件头部携带的所述第一升级包标识协议信息时,根据所述自定义协议栈和所述第一升级包标识协议信息,确定是否进入升级流程;
12、当确定进入升级流程时,对接收到的所述boot映像文件进行实时数据转换,得到小端模式下的缓存数据,并将所述缓存数据实时写入所述ram存储器中;
13、当接收到所述boot映像文件头部携带的所述第二升级包标识协议信息时,根据所述自定义协议栈和所述第二升级包标识协议信息,确定是否进入烧写流程;
14、当确定进入烧写流程时,根据所述ram存储器中存储的所述缓存数据进行烧写,并在所述预设存储区中写入烧写流程中产生的所述升级数据。
15、可选地,当接收到所述boot映像文件后,根据所述自定义协议栈和所述boot映像文件进行升级,还包括:
16、等待接收所述上位机发送的停止升级协议信息;
17、当接收到所述停止升级协议信息时,根据所述自定义协议栈和所述停止升级协议信息,进入停止升级流程,并确定dsp网口在线升级失败。
18、可选地,在根据所述自定义协议栈和所述boot映像文件进行升级,并在预设存储区写入升级数据之后,所述方法还包括:
19、将所述预设存储区中存储的所述升级数据与所述ram存储器中存储的所述缓存数据进行比对;
20、若比对一致,则判定所述升级数据正确;否则判定所述升级数据不正确,并确定dsp网口在线升级失败。
21、可选地,预先获取dsp的自定义协议栈,包括:
22、配置dsp的协议栈存储规则;
23、对配置好协议栈存储规则的dsp进行初始化,得到所述自定义协议栈。
24、可选地,dsp配置有spi接口;
25、配置dsp的协议栈存储规则,包括:
26、基于spi协议,在所述spi接口下挂flash存储器;
27、将所述flash存储器的闲置分区确定为协议栈分区,并在所述协议栈分区内写入预先编好的协议栈,完成dsp的协议栈存储规则的配置。
28、可选地,dsp还配置有ram存储器,所述ram存储器包括二级缓存和/或ddr存储器;
29、对配置好协议栈存储规则的dsp进行初始化,得到所述自定义协议栈,包括:
30、初始化dsp中的所述ram存储器;
31、根据所述flash存储器的地址映射,对所述flash存储器中的所述协议栈分区进行定位;
32、利用所述ram存储器,从定位到的所述协议栈分区内读取协议栈,得到所述自定义协议栈。
33、可选地,根据所述自定义协议栈和所述dsp版本号协议信息,确定dsp版本号,包括:
34、将所述自定义协议栈与所述dsp版本号协议信息进行比对;
35、若所述自定义协议栈中存在与所述dsp版本号协议信息相同的信息,则比对成功,并对所述dsp版本号协议信息进行解析,得到所述dsp版本号;否则继续等待接收所述上位机发送的所述dsp版本号协议信息,直至接收到的所述dsp版本号协议信息比对成功。
36、可选地,在通过网口与上位机建立通信之后,以及在根据所述自定义协议栈和所述boot映像文件进行升级之前,所述方法还包括:
37、等待接收所述上位机发送的调试协议信息;
38、当接收到所述调试协议信息时,根据所述自定义协议栈和所述调试协议信息,进入调试流程,生成调试数据,并通过网口向所述上位机返回所述调试数据。
39、此外,本发明还提供了一种dsp网口在线升级方法,应用于与dsp通过网口连接的上位机,与前述的dsp网口在线升级方法对应配合,所述方法包括:
40、在dsp预先获取自身的自定义协议栈后,通过网口与dsp建立通信;
41、向dsp发送dsp版本号协议信息,并等待接收dsp基于所述自定义协议栈和所述dsp版本号协议信息返回的dsp版本号;
42、当接收到返回的所述dsp版本号后,根据所述dsp版本号获取dsp升级包,并对所述dsp升级包进行数据处理,生成boot映像文件;
43、将所述boot映像文件发送至dsp,等待dsp基于所述自定义协议栈和所述boot映像文件进行升级,并等待接收dsp返回的升级成功协议信息;
44、当接收到所述升级成功协议信息时,完成dsp网口在线升级。
45、可选地,对所述dsp升级包进行数据处理,生成boot映像文件,包括:
46、对所述dsp升级包进行16进制转换和大端模式转换,得到所述boot映像文件;其中,所述boot映像文件的头部携带有第一升级包标识协议信息,所述boot映像文件的尾部携带有第二升级包标识协议信息。
47、可选地,所述上位机配置有文件存储区;
48、当接收到返回的所述dsp版本号后,根据所述dsp版本号获取dsp升级包,包括:
49、当接收到返回的所述dsp版本号后,根据所述dsp版本号得到升级包存储地址和升级包文件名;
50、根据所述升级包存储地址和所述升级包文件名,在所述文件存储区中提取所述dsp升级包。
51、此外,本发明还提供了一种dsp,应用于前述的用于dsp的dsp网口在线升级方法中,包括:
52、协议栈定义模块,用于预先获取dsp的自定义协议栈;
53、第一通信连接模块,用于通过网口与上位机建立通信;
54、第一信息接收模块,用于接收所述上位机发送的dsp版本号协议信息;
55、版本号获取模块,用于根据所述自定义协议栈和接收到的所述dsp版本号协议信息,确定dsp版本号;
56、第一信息发送模块,用于将所述dsp版本号返回至所述上位机;
57、第一信息接收模块,还用于等待接收所述上位机基于所述dsp版本号所得到的boot映像文件;
58、dsp升级模块,用于当所述第一信息接收模块接收到所述boot映像文件后,根据所述自定义协议栈和所述boot映像文件进行升级,并在预设存储区写入升级数据;
59、第一信息发送模块,还用于在所述升级数据正确的情况下,向所述上位机发送升级成功协议信息,完成dsp网口在线升级。
60、此外,本发明还提供一种上位机,与前述的dsp对应配合,包括:
61、第二通信连接模块,用于在dsp预先获取自身的自定义协议栈后,通过网口与dsp建立通信;
62、第二信息发送模块,用于向dsp发送dsp版本号协议信息;
63、第二信息接收模块,用于等待接收dsp基于所述自定义协议栈和所述dsp版本号协议信息返回的dsp版本号;
64、映像文件生成模块,用于当所述第二信息接收模块接收到返回的所述dsp版本号后,根据所述dsp版本号获取dsp升级包,并对所述dsp升级包进行数据处理,生成boot映像文件;
65、所述第二信息发送模块,还用于将所述boot映像文件发送至dsp,等待dsp基于所述自定义协议栈和所述boot映像文件进行升级;
66、所述第二信息接收模块,还用于等待接收dsp返回的升级成功协议信息,当接收到所述升级成功协议信息时,完成dsp网口在线升级。
67、此外,本发明还提供了一种dsp网口在线升级系统,包括前述的dsp和前述的上位机,所述dsp和所述上位机通过网口通信连接。
68、本发明的有益效果:
69、dsp引入自定义协议栈技术,在dsp网口在线升级的过程中,利用自定义协议栈去识别和解析上位机发送的每个协议信息(包括dsp版本号协议信息、boot映像文件等),无需执行一定的操作即可进入当前的升级流程;同时,基于自定义协议栈技术,在方便实现dsp网口在线升级的基础上,既能在升级过程中实时操控dsp,又能以最优代码量设计,在保证稳定可靠高速的同时,方便用户验证及移植到自由项目中去;在整个升级过程中,dsp和上位机协同交互,协同性较高,速度快,可靠性高,操作流程简单;此外,当上位机接收到dsp反馈的dsp版本号,能自动生成boot映像文件,嵌入了boot image生成工具,嵌入大小端处理能优化代码,简化用户操作流程,具有较高的应用价值。
1.一种dsp网口在线升级方法,应用于dsp,其特征在于,所述方法包括:
2.根据权利要求1所述的dsp网口在线升级方法,其特征在于,dsp配置有ram存储器;
3.根据权利要求2所述的dsp网口在线升级方法,其特征在于,当接收到所述boot映像文件后,根据所述自定义协议栈和所述boot映像文件进行升级,还包括:
4.根据权利要求2所述的dsp网口在线升级方法,其特征在于,在根据所述自定义协议栈和所述boot映像文件进行升级,并在预设存储区写入升级数据之后,所述方法还包括:
5.根据权利要求1所述的dsp网口在线升级方法,其特征在于,预先获取dsp的自定义协议栈,包括:
6.根据权利要求5所述的dsp网口在线升级方法,其特征在于,dsp配置有spi接口;
7.根据权利要求6所述的dsp网口在线升级方法,其特征在于,dsp还配置有ram存储器,所述ram存储器包括二级缓存和/或ddr存储器;
8.根据权利要求1所述的dsp网口在线升级方法,其特征在于,根据所述自定义协议栈和所述dsp版本号协议信息,确定dsp版本号,包括:
9.根据权利要求1至7任一项所述的dsp网口在线升级方法,其特征在于,在通过网口与上位机建立通信之后,以及在根据所述自定义协议栈和所述boot映像文件进行升级之前,所述方法还包括:
10.一种dsp网口在线升级方法,应用于与dsp通过网口连接的上位机,其特征在于,用于dsp与如权利要求1至9任一项所述的dsp网口在线升级方法的对应配合,所述方法包括:
11.根据权利要求10所述的dsp网口在线升级方法,其特征在于,对所述dsp升级包进行数据处理,生成boot映像文件,包括:
12.根据权利要求10所述的dsp网口在线升级方法,其特征在于,所述上位机配置有文件存储区;
13.一种dsp,其特征在于,应用于如权利要求1至9任一项所述的dsp网口在线升级方法中,包括:
14.一种上位机,其特征在于,与权利要求13所述的dsp对应配合,包括:
15.一种dsp网口在线升级系统,其特征在于,包括如权利要求13所述的dsp和如权利要求14所述的上位机,所述dsp和所述上位机通过网口通信连接。