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

一种异构多核的图像处理方法及装置与流程

2022-05-11 16:38:22 来源:中国专利 TAG:


1.本发明涉及一种异构多核的图像处理方法及装置。


背景技术:

2.当前高速高性能图像处理系统中的图像采集接口多数由fpga实现,无法直接使用市场现有usb3.0工业相机,需自行搭建ccd或cmos相机,并实现数据通信协议,开发周期长,人力成本高。
3.无法采用市场现有usb3.0工业相机的原因主要有以下几点:
4.如果系统采用市场现有usb3.0工业相机,则一般需采用arm来获取图像数据,再经千兆网或其他接口传输至pc端,而后pc端进行图像处理(按帧处理),最终输出所需处理结果,此过程包含了工业相机到arm的传输、arm到pc的传输、pc的处理。完整过程需要两个通信链路,且pc图像处理需接收完整张图像后才开始进行,因此处理速度远不及工业相机的帧率,达不到高速高性能的要求。
5.同时,为实现与工业相机的通信,arm端一般采用linux系统作为软件操作系统,而linux系统为非实时操作系统,对硬件信号的响应存在一定的延时,容易造成高实时信号的延误。同时linux系统内核态与用户态间大数据量的数据交互存在难题。


技术实现要素:

6.本发明提出一种异构多核的图像处理方法及装置,实现实时性与操作性的有效互补,能够高速完成图像的采集与处理,且使usb3.0工业相机可直接接入,使用者无需独立开发fpga的数据采集与处理软件,大大降低了高速图像采集与处理系统的研究成本及技术门槛。
7.本发明通过以下技术方案实现:
8.一种异构多核的图像处理方法,基于zynq ultrascale mpsoc芯片,用于控制usb3.0工业相机采集图像并对采集的图像进行处理,包括如下步骤:
9.a、linux操作系统接收用户的采集指令后,将该采集指令写入类共享内存中,并触发ipi中断至freertos操作系统,linux操作系统和freertos操作系统分别运行于zynq ultrascale mpsoc芯片的四个a53硬核和两个r5硬核;
10.b、freertos操作系统响应步骤a所述中断,从类共享内存中读取采集指令,并根据采集指令控制usb3.0工业相机进行图像采集;
11.c、usb3.0工业相机采集的图像输出至linux操作系统,linux操作系统按照当前写入地址将图像按帧放入图像缓存区,并重新计算新的当前写入地址,当新的当前写入地址超过预设边界时,则将图像缓存区的初始地址作为新的当前写入地址;
12.d、图像处理器根据linux操作系统发出的读使能信号,按照读取地址读取图像缓存区内的图像,并按帧对图像进行处理,处理结果放入fifo堆栈,图像处理器的读取和处理过程为并发执行过程,图像处理器运行于zynq ultrascale mpsoc芯片的pl单元;
13.e、图像处理器根据linux操作系统发出的写使能信号,将fifo堆栈中的处理结果搬运至结果缓存区,linux操作系统将结果缓存区的数据发送至用户,数据传输过程为:将设定帧数且帧数连续的数据作为一组数据,当本组数据发送后,若用户回复的通信结果为成功,则继续发送下一组数据,否则,重新发送本组数据。
14.进一步的,所述步骤c中的图像缓存区包括一级缓存区和二级缓存区,一级缓存区和二级缓存区均包括第一读写控制区和第一数据区,一级缓存区的第一数据区存放图像的帧号、图像信息及图像数据,二级缓存区的第一读写控制区存放处理状态,第一数据区存放图像数据,linux操作系统按照当前写入地址将图像按帧放入一级缓存区,并在二级缓存区当前写入地址数据已被处理时,将一级缓存区当前读取地址的图像数据拷贝至二级缓存区当前写入地址,图像处理器按照读取地址读取二级缓存区内的图像数据。
15.进一步的,所述类共享内存由linux操作系统和freertos操作系统未使用的ddr4内存区域构成。
16.进一步的,所述步骤a中,linux操作系统接收用户的采集指令后,采用crc16对采集指令进行校验,若校验正确则解析采集指令对应的帧类型,若该帧类型与预设的类型相同,则将该采集指令写入类共享内存中。
17.进一步的,所述类共享内存包括第二读写控制区和第二数据区,第二读写控制区用于防止freertos操作系统与linux操作系统同时写入数据,数据区用于freertos操作系统与linux操作系统的数据交互。
18.进一步的,进行所述步骤a之前,还包括如下步骤:linux操作系统启动后,创建communication_thread、camera_thread、rpmsgctrl_thread子线程:
19.在子线程communication_thread中,创建一个基于千兆网巨型帧的专用通信协议栈,用于与用户进行通信;
20.在子线程camera_thread中,建立与usb3.0工业相机的通信连接,配置usb3.0工业相机的工作模式;
21.在子线程rpmsgctrl_thread中,创建基于类共享内存 ipi中断的核间通信机制,用于与freertos操作系统的数据通信,并将采集指令传递至类共享内存中。
22.本发明还通过以下技术方案实现:
23.基于如上任一所述的一种异构多核的图像处理方法的图像处理装置,包括主控核心电路、采集控制电路和通信传输电路,主控核心电路包括zynq ultrascale mpsoc芯片、分别与zynq ultrascale mpsoc芯片连接的ddr4存储芯片、qspi flash存储芯片和emmc存储芯片,通信传输电路和采集控制电路分别与zynq ultrascale mpsoc芯片连接,用户与通信传输电路连接,采集控制电路与usb 3.0工业相机输入端连接,usb 3.0工业相机输出端与通信传输电路连接,zynq ultrascale mpsoc芯片上运行有linux操作系统、freertos操作系统和图像处理器,用户输入的采集指令经通信传输电路传输至linux操作系统,linux操作系统将采集指令共享至freertos操作系统,freertos操作系统根据采集指令控制usb 3.0工业相机采集图像,采集的图像经通信传输电路传输至linux操作系统,linux操作系统将图像共享至图像处理器,图像处理器对图像进行处理,并将处理结果共享至linux操作系统,linux操作系统将处理结果发送至用户。
24.进一步的,所述通信电路包括与usb 3.0工业相机输出端连接的usb ulpi收发单
元和与用户连接的千兆网phy单元。
25.进一步的,所述采集控制电路包括编码器信号检测单元、输入io电路和输出io电路。
26.进一步的,所述zynq ultrascale mpsoc芯片型号为zynq ultrascale mpsocs eg系列的xczu3eg-1sfvc784i,所述ddr4存储芯片型号为mt40a512m16ge,所述qspi flash存储芯片型号为mt25qu256aba1ew9,所述emmc存储芯片型号为mtfc8gakajcn-4m。
27.本发明具有如下有益效果:
28.1、本发明采用freertos操作系统 linux操作系统的双操作系统架构,linux操作系统运行于zynq ultrascale mpsoc芯片的四个a53硬核,freertos操作系统运行于zynq ultrascale mpsoc芯片的两个r5硬核,a53硬核为高性能硬核,r5硬核为实时硬核,因此实现了实时性与操作性的有效互补,解决了现有技术中单一linux系统硬件实时性不足的问题;linux操作系统接收用户的采集指令后,将该指令写入类共享内存中,并触发ipi中断至freertos操作系统,freertos操作系统响应该中断,从类共享内存中读取采集指令,usb3.0采集的图像则输出至linux操作系统并由linux操作系统将图像放入图像缓存区,同时图像处理器则按照读取地址读取图像缓存区内的图像,并按帧对图像进行处理,处理完成后,则将处理结果搬运至结果缓存区,再由linux操作系统发送至用户,通过类共享内存 ip中断通知以及图像缓存区环形缓存的设置,freertos操作系统、linux操作系统及图像处理器均能实现数据的实时共享,且图像处理器的读取和处理过程为并发执行过程,从而能够高速完成图像的采集与处理;而freertos操作系统能够根据采集指令直接控制usb3.0工业相机进行图像采集,所采集的图像又可传输至linux操作系统,从而使usb3.0工业相机能够直接接入使用,使用者无需再独立开发fpga的数据采集与处理软件,大大降低了高速图像采集与处理系统的研究成本及技术门槛。
附图说明
29.下面结合附图对本发明做进一步详细说明。
30.图1为本发明装置的原理框图。
31.图2为本发明方法的流程图。
32.其中,11、zynq ultrascale mpsoc芯片;12、qspi flash存储芯片;13、emmc存储芯片;14、ddr4存储芯片;21、编码器信号检测单元;22、输入io电路;23、输出io电路;31、usb ulpi收发单元;32、千兆网phy单元;4、usb 3.0工业相机。
具体实施方式
33.如图1所示,一种异构多核的图像处理装置,基于zynq ultrascale mpsoc芯片,包括主控核心电路、采集控制电路和通信传输电路,主控核心电路包括zynq ultrascale mpsoc芯片11、分别与zynq ultrascale mpsoc芯片11双向连接的ddr4存储芯片14、qspi flash存储芯片12和emmc存储芯片13,通信传输电路和采集控制电路分别与zynq ultrascale mpsoc芯片11连接,用户与通信传输电路连接,采集控制电路与usb 3.0工业相机4输入端连接,usb3.0工业相机4输出端与通信传输电路连接,zynq ultrascale mpsoc芯片11上运行有linux操作系统、freertos操作系统和图像处理器,用户输入的采集
指令经通信传输电路传输至linux操作系统,linux操作系统将采集指令共享至freertos操作系统,freertos操作系统根据采集指令控制usb 3.0工业相机4采集图像,采集的图像经通信传输电路传输至linux操作系统,linux操作系统将图像共享至图像处理器,图像处理器对图像进行处理,并将处理结果共享至linux操作系统,linux操作系统将处理结果发送至用户。
34.更具体地,zynq ultrascale mpsoc芯片11包括ps单元与pl单元,ps单元包括4个a53硬核(即cortex-a53硬核)和2个r5内核(即cortex-r5硬核),pl单元为可编程逻辑单元(fpga),linux操作系统运行于四个a53硬核,freertos操作系统运行于r5硬核,图像处理器运行于pl单元。通信电路包括与usb 3.0工业相机4输出端双向连接的usb ulpi收发单元31和与用户双向连接的千兆网phy单元32,usb ulpi收发单元31和千兆网phy单元32还分别与zynq ultrascale mpsoc芯片11双向连接。采集控制电路包括输出端与zynq ultrascale mpsoc芯片11连接的编码器信号检测单元21和输入io电路22,以及输入端与zynq ultrascale mpsoc芯片11连接的输出io电路23,输出io电路23输出端与usb3.0工业相机4连接。编码器信号检测单元21、输入io电路22和输出io电路23均为现有技术。
35.在本实施例中,zynq ultrascale mpsoc芯片11型号为zynq ultrascale mpsocs eg系列的xczu3eg-1sfvc784i,所述ddr4存储芯片14型号为mt40a512m16ge,所述qspi flash存储芯片12型号为mt25qu256aba1ew9,所述emmc存储芯片13型号为mtfc8gakajcn-4m,千兆网phy单元32包括的芯片型号为dp83867,usb ulpi收发单元31包括的芯片型号为usb3320c。
36.如图2所示,一种异构多核的图像处理方法包括如下步骤:
37.a、初始化:具体包括如下步骤:
38.a1、上电后对emmc芯片初始化,对zynq ultrascale mpsoc芯片11的ps端和pl端初始化;
39.a2、从emmc存储芯片13中引导linux操作系统启动,linux操作系统启动后对实时数据通信使用的类共享内存、ipi中断、互斥锁初始化,并创建communication_thread、camera_thread、rpmsgctrl_thread、period_thread四个子线程:
40.在子线程communication_thread中,创建一个基于千兆网巨型帧的专用通信协议栈,用于与用户(即pc上位机)进行通信;具体协议栈的创建过程为现有技术;
41.在子线程camera_thread中,建立与usb 3.0工业相机4的通信连接,配置usb 3.0工业相机4的工作模式;
42.在子线程rpmsgctrl_thread中,创建基于类共享内存 ipi中断的核间通信机制,用于与freertos操作系统的数据通信,并将采集指令传递至类共享内存中;
43.在子线程period_thread中,创建一个周期管理线程,用于对参数数据、日志信息等管理;
44.a3、由linux操作系统启动freertos操作系统,freertos操作系统启动后,创建triggertask、rpmsgreceivetask、rpmsgsendtask、periodtask四个子任务:
45.在子任务triggertask中,根据linux操作系统传递过来的采集指令,对输入io电路22的信号或编码器信号检测单元21的信号做响应,控制usb 3.0工业相机4的采集行为;
46.在子任务rpmsgreceivetask中,创建一个基于类共享内存 ipi中断的核间通信机
制,接收并处理来自linux操作系统的约定数据;
47.在子任务rpmsgsendtask中,接收来自triggertask及periodtask的消息队列,并通过核间通信机制转发至linux操作系统中;
48.在子任务periodtask中,创建一个周期管理任务,用于对故障告警的处理;
49.b、用户通过pc上位机设置usb3.0工业相机4采集动作的指令类型,该动作指令类型包括io信号或者通过上位机发出的采集指令,若设置的动作指令类型为io信号,则usb3.0工业相机4采集动作的启动由输入io电路的外部信号控制,输入io电路实时检测由freertos操作系统负责,若设置的动作指令类型为采集指令,则linux操作系统的communication_thread线程接收该采集指令后,采用crc16对采集指令进行校验,以确定该采集指令是否在传输过程中发生错误,若校验正确则解析采集指令对应的帧类型,若该帧类型与预设的类型相同(该类型的设置通过pc机进行),则将该采集指令写入类共享内存中,并触发ipi中断(即核间中断)至freertos操作系统,否则,不做处理;
50.c、freertos操作系统响应步骤b中所述中断,从类共享内存中读取采集指令,从而实现采集指令包含的各相参数在linux操作系统与freertos操作系统间的实时传递;并根据采集指令控制usb 3.0工业相机4进行图像采集;
51.其中,类共享内存由linux操作系统和freertos操作系统未使用的ddr4内存区域构成;该类共享内存包括第二读写控制区和第二数据区,第二读写控制区用于防止freertos操作系统与linux操作系统同时写入数据,数据区用于freertos操作系统与linux操作系统的数据交互;
52.d、usb 3.0工业相机4采集的图像输出至linux操作系统,linux操作系统按照当前写入地址将图像按帧放入图像缓存区,并重新计算新的当前写入地址,图像缓存区为环形缓存,即当新的当前写入地址超过预设边界时,则将图像缓存区的初始地址作为新的当前写入地址;预设边界根据usb 3.0工业相机4的具体采集参数的设置而设定;
53.在本实施例中,图像缓存区包括一级缓存区和二级缓存区,一级缓存区和二级缓存区均包括第一读写控制区和第一数据区,一级缓存区的第一读写控制区存放当前写入地址、当前读取地址及互斥锁等,一级缓存区的第一数据区存放图像的帧号、图像信息及图像数据,二级缓存区的第一读写控制区存放当前写入地址、当前读取地址及处理状态,二级缓存区的第一数据区存放图像数据,linux操作系统按照当前写入地址将图像按帧放入一级缓存区,并在二级缓存区当前写入地址数据已被处理(即已被图像处理器读取)时,将一级缓存区当前读取地址的图像数据拷贝至二级缓存区当前写入地址,并将图像处理器的读地址赋值,将读使能信号开启;其中,图像信息指图像行尺寸、列尺寸、图像大小等信息,图像数据指图像实际包含的数据;
54.e、图像处理器根据linux操作系统发出的读使能信号,按照读取地址读取二级缓存区内的图像,读取数据宽度为8字节每节拍,并按帧对图像进行处理,处理结果放入fifo堆栈,图像处理器的读取和处理过程为并发执行过程,即在对图像进行处理时,仍然在进行读取动作,如此能够保证数据处理的时效性;图像处理的具体过程为现有技术;
55.f、图像处理器根据linux操作系统发出的写使能信号,将fifo堆栈中的处理结果搬运至结果缓存区,搬运完成后,发出写完成中断信号至linux操作系统,linux操作系统接收到该中断信号后,将结果缓存区的数据发送至communication_thread线程,
communication_thread线程启动tcp巨型帧传输,将数据传输给用户,数据传输过程为:将设定帧数且帧数连续的数据作为一组数据,当本组数据发送后,若用户回复的通信结果为成功,则继续发送下一组数据,否则,重新发送本组数据,如此能够保证数据的传输效率及可靠性。其中,图像缓存区和结果缓存区也由ddr4内存区域构成。
56.以上所述,仅为本发明的较佳实施例而已,故不能以此限定本发明实施的范围,即依本发明申请专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明专利涵盖的范围内。
再多了解一些

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

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

相关文献