一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于GigEVision接口的相机远程固件升级系统和方法与流程

2021-11-09 22:34:00 来源:中国专利 TAG:

一种基于gige vision接口的相机远程固件升级系统和方法
技术领域
1.本发明涉及固件升级领域,尤其涉及一种基于gige vision接口的相机远程固件升级系统和方法。


背景技术:

2.现有设备固件升级需要通过读卡器替换flash中的文件、通过线缆连接上位机和开发板来替换flash中的文件或者通过ftp工具来替换flash中的文件来升级,通过读卡器升级需要频繁插拔sd卡,在这个过程中还要给设备断电,升级完又要重新上电,相对较为复杂;相机后续将取消sd卡的使用,采用qspi emmc的flash存储介质,采用板载的flash后,这样只能通过大量线缆连接上位机和开发板来进行升级,十分不便;通过ftp工具来进行升级需要借助第三方的工具,并且还要提前确认相机的ip地址。通过以上三种方式进行设备的固件升级都会大大降低升级的效率,无法给用户提供良好的用户体验。故有必要提供一种远程固件升级系统和方法,集成于相机的应用软件中,在固件传输的过程中,既能保证相机软件的正常运行,又能保证升级固件的完整性。


技术实现要素:

3.发明目的:本发明的目的是提供一种基于gige vision接口的相机远程固件升级系统。能够方便地对相机进行固件升级,避免繁琐的过程,节省时间成本。本发明的另一目的在于提供一种基于gige vision接口的相机远程固件升级方法。
4.技术方案:一种基于gige vision接口的相机远程固件升级系统,该系统包括服务器、上位机、以太网、基于gige vision接口的相机,其中,基于gige vision接口的相机与上位机连接,上位机与服务器连接;系统升级时,相机和上位机连接到同一个局域网内,相机上电初始化、上位机读取相机配置文件、上位机发现设备和产生相机配置接口;所述服务器存储通过哈夫曼编码对提供的固件升级文件进行压缩产生的文件,产生一个至少包括两个文件的固件升级包:一个是配置文件,一个是待升级的文件;上位机获取固件升级包传输至相机,相机根据获取数据包,经过解析和预处理进行格式封装,最终在上位机和相机通信指令交互结束后,收到一个完整的固件升级包,上位机实时显示传输的进度,相机收到固件升级包对相机的固件进行升级。
5.优选的,所述相机收到固件升级包对相机的固件进行升级的方法如下:相机收到的固件升级包后通过哈夫曼编码解压,相机重启,对升级前的固件版本进行备份,并将待升级的文件移动到根文件系统中指定的目录,通过配置文件校验升级文件的完整性,相机再次重启,完成固件升级。
6.优选的,所述以太网为千兆以太网。
7.优选的,上位机获取固件升级包通过gvcp协议传输至相机。
8.优选的,所述基于gige vision接口的相机与上位机连接的方式为:基于gige vision接口的相机包括zynq7000芯片,zynq7000芯片与phy芯片连接;phy芯片与上位机连
接。
9.固件升级使用的是千兆网通信,千兆网通信通过emac(ethernet access controller,以太网接收控制器)基于tcp/ip协议栈实现gige vision协议用于传输文件和命令。
10.优选的,上位机pc对相机的远程固件升级过程,包括有上位机pc发现设备、上位机产生相机配置接口、上位机与相机信令交互,以及相机中固件升级包的存储与上位机pc实时传输进度显示。
11.本发明提出一种基于gige vision接口的相机远程固件升级方法,该方法包括以下步骤:
12.1)相机和上位机pc连接到同一局域网内,系统上电初始化,相机和上位机建立连接;
13.2)相机和上位机pc连接后,相机进入gvcp控制通道监听线程;
14.3)上位机pc对相机进行初始化后,给相机发送固件升级命令;
15.4)在服务器中预存好经过哈夫曼编码压缩后产生的固件升级包;
16.5)上位机pc向相机先发送一个命令数据包,相机向上位机pc返回一个命令确认的ack数据包;
17.6)上位机pc接收到确认发送的ack数据包后从服务器获取固件升级包,上位机pc每次读取固件升级包536个字节产生文件数据包,上位机pc向相机发送文件数据包;
18.7)相机对收到的文件数据包经过解析和预处理进行格式封装,当相机接收的最后一个文件数据包的字节小于536个字节时,给上位机pc发送ack数据包,并结束文件接收;
19.8)相机接收完上位机pc发送的固件升级包;
20.9)通过哈夫曼编码解压相机收到的固件升级包。
21.10)相机重启,对固件升级之前的固件版本进行备份,并将待升级的文件移动到到根文件系统中指定的目录;
22.11)通过配置文件校验升级文件的完整性;
23.12)相机重启,完成固件升级。
24.优选的,上位机与相机的固件升级信令交互流程包括:
25.1)首先上位机pc需要发送一个命令数据包给相机,告知相机需要接收一个固件升级包。命令数据包的包内结构用一个结构体writemem_cmd_msg来填充,即:
[0026][0027]
这个结构体中,ckeyvalue是固定值0x42,ncommand用于当前的功能关键字是mv_gev_writemem_cmd,相机应用程序接收到这个关键字时知道是要接收固件升级包,nreqid的值用于记录发出的包数。nmemaddress成员作为传输当前数据的地址,由于对于传输连续的数据,所述地址将自动递增,所以该成员可以对应传输文件的累计大小。chwritememdata数组成员携带的是固件升级包文件实际的二进制数据。
[0028]
在上位机pc发现设备的过程中,上位机pc已经保存了相机的网络地址,所以当上位机pc发送命令数据包时可以直接取用保存的网络地址。上位机pc向相机发送命令数据包,此时命令数据包中成员nmemaddress为0,相机收到命令数据包后解析包中成员nmemaddress,如果nmemaddress为0,即此时传输文件的累计大小为0,相机判断此时上位机pc发送的是一个命令数据包,则相机做好接收固件升级包的准备,并向上位机pc发送一个确认的ack数据包。这里要说明的是,在上位机pc给相机发送第一个命令包并等待ack数据包的过程中,将重传次数设置为5次,即如果相机没有回应相应的ack数据包或者接收函数超时,则最多重试5次,失败则放弃此次传输尝试重新开始。相机回应的ack数据包的包内结构由结构体ack_msg_header填充,即
[0029][0030]
在这个结构体中,nstatus表示请求操作的状态,nackmsgvalue表示确认消息值,nlength表示该结构体之后的负载数据长度,nackld表示响应id,即相机响应上位机pc的次
数。
[0031]
上位机pc接收到ack数据包后,解析包中成员nackmsgvalue确认消息值,可以通过指针直接取该成员的值,如果该成员的值是mv_gev_writemem_ack,说明该次的命令数据包发送成功。
[0032]
2)命令数据包发送成功后,上位机pc开始准备向相机发送文件数据包,文件数据包的包内结构与步骤1中命令数据包的包内结构一致,都是用一个结构体writemem_cmd_msg来填充,结构体内容参照步骤1。在上位机pc向相机发送文件数据包之前,上位机pc使用c函数fopen()以二进制读的形式打开需要发送的固件升级包,上位机pc使用c函数fread()读取固件升级包中的内容,每次最多读取536个字节,将这些数据存入发送缓存的结构体writemem_cmd_msg中的chwritememdata数组成员里,同时记录下此次读取到实际数据值,将该值累加到结构体writemem_cmd_msg的nmemaddress成员变量中,表示已经发送了多少字节的数据。这里要说明的是,文件数据包的重试次数为3,3次重传失败则终止此次传输过程,尝试重新开始。
[0033]
上位机pc向相机发送文件数据包,相机收到上位机pc发送的文件数据包后,解析并存储文件数据包中chwritememdata数组成员所携带的二进制数据,并向上位机pc发送ack数据包。ack数据包的结构参照步骤1。上位机pc接收到ack数据包后,解析包中成员nackmsgvalue确认消息值,可以通过指针直接取该成员的值,如果该成员的值是mv_gev_writemem_ack,说明该次的文件数据包发送成功。
[0034]
3)重复步骤2,在上位机pc向相机发送文件数据包之前,当上位机pc使用fread()函数读取到文件的最后部分时,即读取到的数据小于536字节,这时候返回实际读取的字节数,上位机pc判断为最后一个文件数据包,停止下一次向相机发送文件数据包。相机解析上位机pc发送的文件数据包中的nmemaddress这个成员,通过与保存的上一个文件数据包nmemaddress成员相减,计算当前文件数据包传输数据的大小,判断传输的数据大小小于536个字节,向上位机pc发送ack数据包,并结束文件接收。固件升级信令交互流程结束。
[0035]
有益效果:与现有技术相比,本发明的技术方案具有以下有益技术效果:
[0036]
(1)本发明基于zynq7000芯片,并通过在zynq7000芯片驱动内部设计了各部分模块(包括有配置解析模块、系统管理模块、通信模块,每个模块又分为多个小模块组成),有效降低了开发成本、降低了运行功耗。
[0037]
(2)传输固件升级包基于gige vision协议中的gvcp协议,gvcp协议用来后端管理应用程序发送命令控制和配置智能相机,应用程序通过gvcp协议发送命令并且需要等待相机的回复,以此来保证传输的可靠性。实现了对固件升级包的可靠传输。
[0038]
(3)gvcp协议中数据包最大长度为576字节,由于gvcp协议是基于udp协议,所以数据链路层、网络层、传输层跟udp协议是相同的,包含ip报头20字节和udp报头8字节,另外加上gvcp报头8字节和gvcp负载最大长度540字节共为576字节,将固件升级包基于哈夫曼编码进行解压缩,有效缓解了gvcp协议每个数据包传输字节的限制。
[0039]
(4)基于嵌入式操作系统,在应用程序中添加新的模块较为容易,不需要改变程序的框架,大大降低了开发成本。通过本发明的方法,无需使用大量线缆连接上位机和开发板,减少了升级成本,同时体现了固件升级的便捷性和灵活性。
[0040]
(5)采用根文件系统,只需知道固件升级包的文件名、文件路径等简单信息特征,
就可以方便地对固件升级包进行操作,不必知道它在具体物理存储空间的运作过程。
[0041]
(6)升级的固件包括boot.bin、uimage、uramdisk.image.gz、devicetree.dtb、zync_cmd、3dcam.xml等文件,所述配置文件包括升级的类型,升级文件名,升级文件的md5值和版本号,通过配置文件对不同的升级固件进行验证,提高了固件升级的可靠性。
附图说明
[0042]
图1为本发明实施例提供的相机应用软件框架示意图;
[0043]
图2为本发明实施例提供的固件升级通信流程示意图;
[0044]
图3为本发明实施例提供的解析固件升级命令所需的writemem命令帧结构示意图;
[0045]
图4为本发明实施例提供的固件升级整体方案示意图。
具体实施方式
[0046]
下面结合实例和附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0047]
本发明提出一种基于gige vision接口的相机远程固件升级系统,包括:服务器、上位机、千兆以太网、基于gige vision接口的相机,其中基于gige vision接口的相机为系统的核心设备,包括zynq7000芯片;其中zynq7000芯片与phy芯片连接;phy芯片与上位机连接;上位机与服务器连接;固件升级使用主要是千兆网通信,千兆网通信通过emac(ethernet access controller,以太网接收控制器)基于tcp/ip协议栈实现gige vision协议用于传输文件和命令。
[0048]
上位机pc对相机的远程固件升级过程,包括有上位机pc发现设备、上位机pc产生相机配置接口、上位机与相机信令交互,以及相机中固件升级包的存储与上位机pc实时传输进度显示。系统的工作过程为:
[0049]
1)相机和上位机pc连接到同一个局域网内,相机上电初始化、上位机pc读取相机配置文件、上位机pc发现设备和产生相机配置接口,相机开始工作;
[0050]
2)通过哈夫曼编码对提供的固件升级文件进行压缩,产生一个至少包括两个文件的固件升级包:一个是配置文件,一个是待升级的文件,将所述固件升级包存放于服务器的固定目录下;
[0051]
3)上位机pc获取固件升级包,通过gvcp协议传输至相机,相机根据获取数据包,经过解析和预处理进行格式封装,最终在上位机pc和相机通信指令交互结束后,收到一个完整的固件升级包。这个过程中上位机pc实时显示传输的进度。
[0052]
4)通过哈夫曼编码解压相机收到的固件升级包。相机重启,对之前的固件版本进行备份,并将待升级的文件移动到到根文件系统中指定的目录;通过配置文件校验升级文件的完整性;相机重启,完成固件升级。
[0053]
相机固件升级系统中的芯片选用zynq7000,zynq系列芯片将arm处理器和fpga逻辑单元集成在单个芯片中,这种设计灵活的异构多核的处理器方案首先要解决的是两个不同结构核心之间的通信以体现其优越性,xilinx使用amba协议实现两者之间高带宽、低延迟的连接。amba协议是一个片上互联规范,主要用于soc内功能模块的连接和管理。
[0054]
相机固件升级系统中的上位机pc采用项目组基于mfc开发的上位机软件。
[0055]
参照图1,一种基于gige vision接口的相机远程固件升级系统实现方案,总体操作流程为:
[0056]
1)相机和上位机pc连接到同一局域网内,系统上电初始化,相机和上位机建立连接;
[0057]
2)相机和上位机pc连接后,相机进入gvcp控制通道监听线程;
[0058]
3)上位机pc对相机进行初始化后,给相机发送固件升级命令;
[0059]
4)在服务器中预存好经过哈夫曼编码压缩后产生的固件升级包;
[0060]
5)上位机pc向相机先发送一个命令数据包,相机向上位机pc返回一个命令确认的ack数据包;
[0061]
6)上位机pc接收到确认发送的ack数据包后从服务器获取固件升级包,上位机pc每次读取固件升级包536个字节产生文件数据包,上位机pc向相机发送文件数据包;
[0062]
7)相机对收到的文件数据包经过解析和预处理进行格式封装,当相机接收的最后一个文件数据包的字节小于536个字节时,给上位机pc发送ack数据包,并结束文件接收;
[0063]
8)相机接收完上位机pc发送的固件升级包;
[0064]
9)通过哈夫曼编码解压相机收到的固件升级包。
[0065]
10)相机重启,对之前的固件版本进行备份,并将待升级的文件移动到到根文件系统中指定的目录;
[0066]
11)通过配置文件校验升级文件的完整性;
[0067]
12)相机重启,完成固件升级。
[0068]
参照图2,上位机pc与相机的信令交互流程:
[0069]
(1)相机上电启动操作系统,运行应用软件,新建gvcp对象并初始化;
[0070]
(2)启动gvcp控制通道监听线程;
[0071]
(3)打开控制通道;
[0072]
(4)上位机pc通过gvcp协议向相机发送控制命令信息;
[0073]
(5)相机接收并解析命令信息。
[0074]
相机解析命令帧的格式参照图3。
[0075]
固件升级系统所需要的功能模块为通信模块,通信模块又细分很多的小模块,包括系统管理模块下的网络配置和参数文件管理、数据传输模块,参考图4。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献