微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 机器人技术 > Zynq SoC推动无人机平台高速发展

Zynq SoC推动无人机平台高速发展

时间:05-25 来源:互联网 点击:
Aerotenna 借助赛灵思 Zynq SoC 器件的处理能力和 I/O 功能,实现首次 ArduPilot 兼容无人机 (UAV) 飞行

作者:Zongbo Wang
Aerotenna 创始人
zongbo@aerotenna.com

Bruno Camps Aerotenna 创始人

Yan Li
Aerotenna 嵌入式设计工程师

Joshua Fraser   
Aerotenna 嵌入式设计工程师

Lianying Ji
Muniu Technology
首席技术官

Jie Zhang Muniu  

人机 (UAV) 和无人机行业正在迅猛发展并成功进军新的商业和消费市场。无人机的发展潜力不断推动新的创新型应用发展,例如 3D 建模、军事援助和交付服务。

问题在于这些应用正日渐复杂化,要求越来越高的处理能力和越来越多的 I/O(输入 / 输出)接口,但可用的无人机平台并没有以相同的步伐发展。随着飞行所需的软硬件的持续发展,大多数无人机平台的功能已经达到极限。

Aerotenna 的研究小组已经成功试飞一款无人机,该无人机采用赛灵思 Zynq®-7000 All Programmable SoC 构建的板件。这次飞行标志着 Aerotenna 实施高计算强度微波传感产品发布计划的开始。该小组选用 Zynq SoC 的原因是其他同类解决方案无法提供所需的处理能力。采用这种新的平台(图 1),Aerotenna 计划通过部署自己的微波型防撞系统来改善无人飞行体验。

当今无人机技术的局限

无人机行业发展的主要动力一直源于飞行变得尽量经济实惠价,简化和删除一切不必要的功能。若用户想要购买的产品恰恰是能以最简单的方式满足用户需求的产品,这便是件好事。但是,对 Aerotenna 这样的开发商来说,其任务是寻求新的、复杂的应用,因此有必要开发和构建属于自己的无人机平台,使其能够为自己的创意提供处理速度支持。

当今的标准无人机平台受到的另一个重大局限是,缺乏对处理器的输入输出连接。因此,飞行控制系统很容易占用处理器的最大容量和 I/O 功能,给新传感器和新应用留下的空间很小。

标准处理器板所包含的大部分 I/O 已经被飞行所需的各种组件占用殆尽。这些功能组件包括用于量化飞行器方向的惯性测量传感器、用于判断高度的气压计和高度计以及用于对用户输入进行解码的 RC 接收器。任何用于添加更多特性的剩余 I/O 不能提供太多选择,一般局限于满足最常见的需求,比如摄像头或用于导航的 GPS。市场上目前尚不存在一种能够兼容多种不同类型传感器和外部接口的单个平台。

Aerotenna 的研发团队认为突破这些局限的途径是全新开发一种板件设计。Aerotenna 一直在优化一种新的无人机平台,该平台将在其他平台表现差强人意的方面崭露头角。Aerotenna 使用赛灵思提供的 Zynq SoC 器件来实现这一目标。其优异的设计将提供新一代 UAV 所需的显著增强的处理器速度和 I/O 功能。

为什么选择 Zynq SoC?

Aerotenna 选择 All Programmable Zynq SoC 作为构建我们强大平台的基础。Zynq SoC 芯片内部的双核 ARM® Cortex™-A9 APU 能实现无与伦比的处理器速度。在芯片结构、多处理器功能及 I/O 访问速度方面,市场上的廉价无人机平台解决方案均无法与 Zynq SoC 匹敌。因此 Zynq SoC 是新一代平台的理想选择。

目前,市场上的大部分飞行控制平台均基于微控制器单元 (MCU)。由于处理能力及 I/O 扩展能力有限,该架构会制约传感器融合的潜力。

Zynq SoC 在处理能力和 I/O 功能方面具有明显优势:双核 ARM 处理器与 FPGA 逻辑相结合,可实现一种软硬件协同设计方法,从而能够将一部分时序关键型处理任务交付给可编程逻辑来处理。与基于 MCU 的平台相比,Zynq SoC 具有更丰富的 I/O 外设和存储器接口功能。选择 Zynq SoC 的另一个原因是,飞行控制程序可能会相当庞大,并且要求极为高速的 CPU,而 Zynq SoC 能够轻松地驾驭飞行控制程序的复杂性。同时,该器件还有大量剩余功能,为飞行控制程序的扩展留出了充裕的空间。

目前存在多种类型的飞行软件程序,它们都行为各异且复杂性不同。Aerotenna 决定使用的飞行控制软件名为 ArduPilot,这是由运行在 Dronecode 上的 APM(自动驾驶仪)提供的。它比大多数飞行控制软件复杂,但提供大量较简单程序所不具备的功能,例如路点导航和多种飞行模式,以满足用户的特定应用。


图 1 - Aerotenna 一直以来开发的概念无人机采用先进的传感技术及 Zynq SoC 支持的强大处理平台。

ArduPilot 飞行控制系统的复杂性随着开源社区为 APM 项目添加的内容越来越多而不断增加。

什么是 ARDUPILOT?

ArduPilot 是一种专为无人机构建的开源自动驾驶仪软件程序。该软件程序由开发人员和爱好者组成的庞大群体不断更新和改进。从最初为开源 Arduino 微处理器构建的相当简单的软件起步,不断壮大和复杂化,APM 项目如今已经兼容众多无人机平台。目前,该程序内含超过 70 万行代码,是一种非常精细的飞行控制系统。

该代码分为两个部分:高层次层和硬件抽象层 (HAL)。高层次层负责调度任务及根据输入的数据做出决策。HAL 是用于访问硬件的存储器的低层次代码。只需调整用于平台专用存储器访问的 HAL,这种代码结构划分就能将整个系统移植到其他平台。   而且,不管采用什么样的平台,上层次的代码只负责以相同的方式从 HAL 中提取数据。

随着开源社区为 APM 项目添加的内容越来越多,ArduPilot 飞行控制系统日趋复杂。因此,行业已经达到硬件的极限,正期待新一代能够推动持续增长的平台问世。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top