您的位置 首页 IOT

All Programmable SoC 进军制作职业

制造领域为许多人提供了喜闻乐见的业余爱好,也激励着年轻人从事科学、技术、工程和数学方向的职业。这个领域的许多项目都使用嵌入式处理器(通常如 Ar

制作范畴为许多人供给了脍炙人口的业余爱好,也鼓励着年轻人从事科学、技能、工程和数学方向的作业。这个范畴的许多项目都运用嵌入式处理器(一般如 Arduino 或 Raspberry PI 系列),以供给体系所需的智能化。

Arduino 和 Raspberry PI 这两大系列嵌入式处理器均得到开发环境的支撑,为其供给多种软件库、模块和实例。这些软件库、模块和实例可协助开发人员敏捷便利地接口到各类型外设,如摄像头、加快计和电机等。正是这种易用性让这些处理器在制作范畴倍受青睐。

直到最近制作商都把 All Programmable SoC 扫除在制作范畴之外,以为它适用于更专业的工程师。但随着 ZynqBerry、Pynq 和 Snickerdoodle 等根据 Zynq® 的开发板的推出以及根据软件的开发办法的面世,这种状况现已产生根本性改变。

这些开发板配有赛灵思 All Programmable Zynq®-7000 SoC 系列器材。这些器材将双核 ARM® Cortex™-A9 处理器与 All Programmable Artix®-7 FPGA 系列的可编程逻辑完美结合在一起。这可加快可编程逻辑架构内的功用,然后明显提高体系功用。可是传统的开发作业将可编程逻辑的规划与软件开发作业切割开来,可编程逻辑规划的完结需求专门的开发经历。现在已不存在这种状况。

当这些开发板与能在纯软件中开发运用的最新开发环境相结合,它们对制作业就变得极为有用。特别是由于运用这些开发环境,用户不用具有FPGA专家级水平就能够开宣布可编程逻辑,然后充分发挥了软硬件的优势。

从左到右制作商开发板分别是 Arduino、ZynqBerry、Pynq、Raspberry 和 Snickerdoodle。

开发环境

有两种开发环境可用于为这些 Zynq 开发板创立运用。榜首种是根据 Eclipse 的 SDSoC™ 开发环境。这种环境能够运用 C 或 C++ 开发运用并无缝地将运转在 ARM Cortex-A9 处理器上的功用移到可编程逻辑中加快。SDSoC 环境运用高层次归纳(HLS)将选定的 C 言语功用移到可编程逻辑中。在 HLS 完结衔接后,就运用结构将 HLS 模块与软件运用集成。现在除了可编程逻辑中的功用加快带来的功用提高,该流程还对用户通明。功用在处理器和可编程逻辑间切换极为简洁并可在 SDSoC 内经过运用项目简介进行操控。

SDSoC 项目简介

SDSoC 支撑制作业常用的 Linux 操作体系,一起也支撑实时操作体系(FreeRTOS)和裸机。

第二种办法由 Pynq 供给,这种办法供给根据 Python 和 Juypter 笔记本的开发结构。二者都在运转于处理器上的 Linux 发行版上履行,一起可编程逻辑有一个已界说的叠层,用于为 Pynq 上的外设供给衔接。在用于支撑外设和硬件叠层的 Linux 发行版内有一个已界说的 Pynq 包,该包可让咱们运用 Python 直接接口外设。

由于 Pynq 供给两个 PMOD 接口,该软件包能为 ADC、DAC 等各种 PMOD 供给严重支撑,简化与 Python 运用的集成。

在 Pynq 内,用许多叠层中的一个来加载可编程逻辑以完结硬件加快。除供给的根本叠层外,还存在多个开源叠层。

用户可经过凭借 Web 浏览器衔接到 Juypter 笔记本服务器为 Pynq 编程。衔接到该笔记本电脑后,他们就能开发自己的 Python 运用并为其树立文档,以便在 Pynq 上运转。

这种运用 Python 并运用 Python 直接接口 PMOD 的才能供给了一种极为强壮的开发渠道。

嵌入式视觉

两种开发办法都供给运用 OpenCV 等开源嵌入式视觉结构来履行嵌入式视觉运用的才能。在 Linux 发行版支撑 USB 视频类或特定摄像头(例如 ZynqBerry 支撑的 Raspberry PI 摄像头)时,这些运用能够运用网络摄像头。

OpenCV 便利开发人员运用 C/C++ 或许 Python 开发,运用这一结构他们能够快捷地完结杂乱图画处理算法,发挥 Zynq 可编程逻辑的加快功用,明显提高功用。

这些运用凭借这一结构能处理图画,检测目标或面部等。

在需求完结简略的目标检测算法时,它们能在根据 Zynq 的渠道上运转 Linux、Python 和 OpenCV。下面咱们了解怎么运用 OpenCV 和网络摄像头完结简略的目标盯梢体系。他们要完结的算法是:

1.从网络摄像头捕获榜首帧。榜首帧用作基准布景帧。他们将检测从榜首帧的场景中产生的任何改变。

2.将色域从 RGB 转换为灰度。这是一种常见的图画切割技能,能用于创立二值图画。图画切割触及数种将图画划分为多个片段(常称为超像素)的办法。经过切割,更易于剖析各片段的内容。在他们的运用中,他们运用阈值化来从远景中切割出布景。这样能够生成二值图画。

3.对图画进行高斯含糊。许多用于检测目标或边际的图画处理运用的功用受抓取的帧内存在的噪声的晦气影响。在进一步处理前将图画含糊化可下降帧内的噪声。这一办法常用于图画处理,特别是边际检测算法(例如高斯边际检测算法的拉普拉斯算子)。这一运算的成果即为用于检测改变的基准图画。

4.再次重复过程1-3,从网络摄像头中捕获另一图画,从五颜六色域转换到灰度并在图画上履行高斯含糊。

5.核算基准帧和最近收集的图画间的肯定差。

6.对肯定差进行取阈,以创立二值图画。

7.展开形态学操作,扩展图画以扩大任何差异。

8.找出二值图画中剩下的等值线并疏忽面积过小的任何等值线。

9.在每个被检测出的等值线周围画一个方框,经过 HDMI 输出显现原始收集的图画。

开发人员能直接在 ZynqBerry 上或是在 Juypter 笔记本内的 Pynq 上运转成果 python 代码。他们看到的图画如下图所示,该图辨认出了与基准图画的差异并用方框高亮显现出这些差异。

图画盯梢运用的成果。

这个实例表现了开发人员运用了解的开源结构,凭借 Zynq 渠道履行他们的嵌入式视觉运用所带来的强壮功用和简洁性。

定论

本文出现的开发环境展示了开发人员发挥多个Zynq开发板的功用的简洁性。这些开发环境让用户开宣布既能在处理器内的处理内核上履行,又能运用可编程逻辑加快的规划。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/152341.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部