基于多轴运动控制平台的实时通信和同步控制需求,采用
Xilinx Zynq 7020 SoC
作为核心处理器,设计了双核
SoC
多轴运动控制平台的总体架构。结合多轴运动控
制系统与接口特征,完成了
SoC
运动控制平台的硬件设计,主要包括
SoC
最小系统
和
Ethernet
、
USB
、
UART
等主流通信接口设计。
基于运动控制的功能完整性需求,设计了
Linux+Xenomai
实时操作系统和伺服
裸机系统组成的
SOC
双核系统。在
Linux
系统下,完成了平台通信设备的驱动移植。
本章分析机器人多轴运动控制平台的使用需求,提出基于双核
SoC
的多轴运动
控制平台设计方案,并进一步完成运动控制平台的总体硬件架构设计和双核系统间
任务通信策略设计。
2.1
多轴运动控制平台设计分析
如图
2.1
所示,工业总线型运动控制系统采用分离式的系统结构。运动控制系统
由上位机、控制器、多个伺服驱动器,以及伺服电机等部件组成。分离式运动控制系
统的主要特点为:主从站间通过现场总线进行连接通信;多从站之间串联通信,通过
总线协议的同步功能保证多从站的协同控制。
![](https://i-blog.csdnimg.cn/blog_migrate/9150a269fcb8114109c089b1518a4eb5.png)
本文设计一种基于多核
SoC
的集成式多轴运动控制平台,实现控制器与多个驱
动器的硬件集成,结构如图
2.2
所示。集成式运动控制平台的主要特点为:使用片内
总线实现控制系统和驱动系统的高速互联通信,保证了信息传输的高效性和稳定性;
使用统一的伺服控制系统完成多轴的伺服功能控制,多轴间信息的可快速交互,有效
保证了多轴的同步控制。其中,运动控制系统与上位机连接,完成运动轨迹规划和运
动指令生成,并与伺服系统进行数据通信;伺服驱动系统对控制系统指令进行响应,
通过三环(位置、速度和电流)控制实现多轴同步运动。
![](https://i-blog.csdnimg.cn/blog_migrate/d4bf07275be98d86f5210a3a06a7c9ae.png)
根据上述的分析,多核
SoC
运动控制平台设计需要考虑如下需求:
(
1
)如何高效利用多核
SoC
资源,分别实现平台的控制系统和高性能伺服驱动
系统;
(2)如何利用片内总线接口,实现控制系统和伺服驱动系统的高效通信;
(3)如何设计
SoC
系统通信时序,完成多轴运动数据的同步处理和同步控制;
(4)如何利用
SoC
外设资源,完成平台接口设计,实现对外通信与驱动功能;
同时,双系统集成设计还需要考虑如下需求:
(
1
)如何设计强实时操作系统,实现运动控制任务的实时处理;
(2)如何在
AMP
架构下设计伺服驱动系统,实现伺服系统的稳定运行;
(3)如何在
AMP
架构下设计双系统间通信机制,实现系统的多任务通信,包
括用于指令
/
反馈数据交互的周期性任务和用于系统参数等数据交互的非周期性任务。
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
芯片可以满足本方案的开发需求。
![](https://i-blog.csdnimg.cn/blog_migrate/5cbd704cdeaca3173eda0e6bf91878b6.png)
2.2.1
平台架构设计与功能说明
基于功能需求,本文设计了基于
Zynq 7020
双核
SoC
的多轴运动控制平台架构。
如图
2.4
所示,多轴运动控制平台主要由
SoC
最小系统和平台接口两部分组成,可
实现四轴的同步运动控制。
![](https://i-blog.csdnimg.cn/blog_migrate/e5e36db12f3c690f3fe650bb71638f46.png)
其中,
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
对四种操作系统进行比较分析。
![](https://i-blog.csdnimg.cn/blog_migrate/3be315e4207d21faa0005f206efca1e7.png)
其中,
Vxworks
和
Wince
具有很强的实时性,但是其源码不对外开放,因此开
发难度无法预测,可能产生后续跨平台系统移植问题,系统在使用时需要支付许可费
用。
µC/OS-II
系统开源免费、可以提供系统实时性功能,但是无法满足人机界面的
使用要求,不方便产品后续升级。
Linux+Xenomai
操作系统,
Linux
系统在
Xenomai
实时拓展后可以提供实时性功能,同时系统具有软件开源、可移植性强,可提供人机
界面等等优点。综合考虑,选用
Linux+Xenomai
实时操作操作系统。
2.3.2
系统多任务实现策略设计
本文采用基于共享内存
OCM
的通信方案,实现运动控制平台双核系统间的任务
通信,任务通信的实现过程如图
2.5
所示。
![](https://i-blog.csdnimg.cn/blog_migrate/701e658d5283b925b982c85fb296a490.png)
在
CPU0
的
Linux
实时操作系统上,运行机器人控制软件,建立
Xenomai
实时
运动任务。在多轴运动控制中,双核系统间需要进行周期通信和非周期通信的两类任
务,通过服务函数实现具体通信。其中,周期任务完成固定周期的控制指令下发和反
馈读取,非周期任务完成包括伺服参数读写与系统命令下发等操作。在服务函数中,
通过系统调用提供
OCM
访问服务,实现数据的交互
CPU1
搭建伺服裸机系统,用于伺服控制应用程序的直接加载和运行。应用程序
中提供任务通信函数,用于系统间的任务通信。在任务通信函数中,通过调用
Xilinx
官方提供的
API
接口,实现对共享内存
OCM
的数据访问。
同时,
PS
与
PL
之间通过
AXI4
高速总线进行互联通信。
Xilinx
提供
PL
外设内
存映射机制,可将
PL
的功能模块映射到
PS
系统内存空间中,进而实现
PS
系统对
PL
模块的数据访问。
信迈提供ZYNQ+运动控制器的软硬件方案。