2.2.1 SoC 芯片选型与说明
基于集成式运动控制平台的使用需求,需选用一款集成高性能处理器的多核 SoC
芯片。同时,芯片选取时,需要对芯片功能的完整性、市场应用范围、生命周期、使
用成本以及芯片功耗等多方面进行评估。根据综合评估,选择 Xilinx 公司的 Zynq
7020 作为多轴运动控制平台的 SoC 中央处理器。
Zynq 7020 是一款高度集成的 SoC 处理器芯片,其系统内部互联结构如图 2.3 所
示。 Zynq 7020 片内集成双核 ARM Cortex-A9 MPCore 处理系统( Processing System ,
简称 PS )和高达 85k 的可编程逻辑单元( Programmable logic ,简称 PL )。 PS 的主要
特点有:
( 1 ) PS 具有两个 Cortex-A9 处理器核,可进行双核系统设计;
(2)集成 DDR 、 SDIO 、千兆以太网、 USB 2.0 、 UART 等多种设备控制器,可
实现 SoC 最小系统功能,并进行主流的通信接口设计;
(3)片内支持 AMBA AXI4 高速总线接口,可实现系统单元间的高速通信。
(4)集成 256K 的片上 RAM ( On Chip Memory ,简称 OCM ),可用系统共享数
据的保存;
(5)每个处理器核独自拥有 32KB 的 1 级缓存(简称 L1 Cache ),并且共享
512KB 的 2 级缓存(简称 L2 Cache ),提高了 CPU 的数据访问速度,进一步提升了
系统性能;
同时, PL 采用 28nm 可编程逻辑单元,保证了芯片的低功耗和低成本;丰富的
逻辑单元和 DSP 资源可用于实现多种应用功能;提供 125 到 200 的 IO 引脚选择方
案,可方便实现 IO 控制; Xilinx 提供大量的第三方 IP 核模块支持,方便用户进行
使用,可有效减少开发周期。因此, Zynq 7020 芯片可以满足本方案的开发需求。
2.2.1 平台架构设计与功能说明
基于功能需求,本文设计了基于 Zynq 7020 双核 SoC 的多轴运动控制平台架构。
如图 2.4 所示,多轴运动控制平台主要由 SoC 最小系统和平台接口两部分组成,可
实现四轴的同步运动控制。
其中, SoC 最小系统由处理器 0 、处理器 1 和 FPGA 组成,各部分具体功能如
下:
( 1 )处理器 0 ( CPU0 )搭载实时操作系统。具体功能为:运行机器人控制软件,
完成运动规划和指令生成;通过系统通信接口,实现与伺服系统的多任务通信,完成
数据交互;管理 SoC 外设资源,提供外设驱动支持,实现与外部设备的连接通信。
(2)处理器 1 ( CPU1 )搭载运行伺服裸机系统。具体功能为:运行伺服控制软
件,完成四轴的三环控制;通过系统通信接口,实现与操作系统的多任务通信,完成
数据交互;管理 SoC 外设,实现外部设备的连接和信号的采集。
(3) FPGA 中实现自定义功能模块。具体功能为:设计硬件中断发生器,为处
理器 0 和处理器 1 提供固定周期的中断信号,用于实现双核系统间多任务通信。同
时, FPGA 中还包含 PWM 生成器、电流采样、编码器解析等多轴驱动模块。
同时,多轴运动平台接口分为通信接口和系统接口。其中通信接口主要为: RS232
串口,用于控制平台的系统开发和测试,以及系统后期维护; USB 2.0 接口,用于连
接外部键盘、鼠标和 U 盘等设备,方便用户操作,并且可实现系统在线升级;千兆
以太网接口,用于平台连接手持盒或 PC 机,实现上位机通信;工业以太网接口,用
于连接外部伺服驱动器或工业摄像头等设备,实现平台功能扩展。系统接口用于完成
四轴的伺服驱动、系统监控和 IO 控制等功能。
根据 SoC 平台的功能需求,本文主要进行如下关键技术的开发和设计:
( 1 ) SoC 硬件系统设计,包括 SoC 最小系统设计、资源分配和通信时序设计;
(2)平台通信接口技术研发,包括 UART 、 USB 和千兆以太网接口设计;
(3) AMP 双系统设计,包括实时操作系统和伺服裸机系统的设计与实现;
(4)双核间多任务通信技术研发,包括通信模块设计和多任务通信机制设计。
同时,本文对平台的实时性和同步性进行研究和设计,实现系统的实时通信与多
轴同步控制功能。
2.3 双核系统多任务实现策略
本文采用 AMP 双核系统设计,分别为 CPU0 操作系统和 CPU1 伺服裸机系统,
双核间采用片内共享内存 OCM 进行数据交互。
2.3.1 嵌入式操作系统的选型
CPU0 操作系统主要用于运行机器人控制软件,需要快速完成轨迹规划并将指令
及时下发,实现多轴实时运动控制。同时,操作系统需要提供通用外设的驱动支持,
方便用户开发,减少开发难度。
因此,适用于本平台设计的的操作系统应该具有实时处理能力、良好的设备驱动
支持、易开发、成本低等特点,同时进一步考虑系统的开放性、人机界面功能和可靠
性等方面问题。在选型过程中,保证所选系统能够满足设计要求,同时达到简化开发
流程,降低系统开发难度和使用成本的目标。现在流行的嵌入式实时操作系统主要有
uC/OS-II 、 Linux+Xenomai 、 Wince 和 VxWorks ,表 2.1 对四种操作系统进行比较分析。
其中, Vxworks 和 Wince 具有很强的实时性,但是其源码不对外开放,因此开
发难度无法预测,可能产生后续跨平台系统移植问题,系统在使用时需要支付许可费
用。 µC/OS-II 系统开源免费、可以提供系统实时性功能,但是无法满足人机界面的
使用要求,不方便产品后续升级。 Linux+Xenomai 操作系统, Linux 系统在 Xenomai
实时拓展后可以提供实时性功能,同时系统具有软件开源、可移植性强,可提供人机
界面等等优点。综合考虑,选用 Linux+Xenomai 实时操作操作系统。
2.3.2 系统多任务实现策略设计
本文采用基于共享内存 OCM 的通信方案,实现运动控制平台双核系统间的任务
通信,任务通信的实现过程如图 2.5 所示。
在 CPU0 的 Linux 实时操作系统上,运行机器人控制软件,建立 Xenomai 实时
运动任务。在多轴运动控制中,双核系统间需要进行周期通信和非周期通信的两类任
务,通过服务函数实现具体通信。其中,周期任务完成固定周期的控制指令下发和反
馈读取,非周期任务完成包括伺服参数读写与系统命令下发等操作。在服务函数中,
通过系统调用提供 OCM 访问服务,实现数据的交互
CPU1 搭建伺服裸机系统,用于伺服控制应用程序的直接加载和运行。应用程序
中提供任务通信函数,用于系统间的任务通信。在任务通信函数中,通过调用 Xilinx
官方提供的 API 接口,实现对共享内存 OCM 的数据访问。
同时, PS 与 PL 之间通过 AXI4 高速总线进行互联通信。 Xilinx 提供 PL 外设内
存映射机制,可将 PL 的功能模块映射到 PS 系统内存空间中,进而实现 PS 系统对
PL 模块的数据访问。
信迈提供ZYNQ+运动控制器的软硬件方案。