本文来自电子发烧友网,作者/李宁远。
数字信号处理器DSP在工业控制、消费电子、雷达图像传感等诸多领域都有很多的应用,这得益于DSP接口简单、集成方便、可重复性好。DSP在机器人系统的应用随着数字信号处理技术的发展也在不断深入。
在此前关于DSP在机器人系统中应用的文章中我们曾了解到,DSP在视觉应用上设计弹性非常高,相比于Cortex-M4架构内建浮点运算单元只能实现低阶影像讯号处理,以及x86架构下工控平台的大功耗高成本,DSP在视觉应用上的都是性能和成本的绝佳选择。而在运控上,虽然DSP和MCU在控制上争夺还没有那么激烈,但随着机器人控制系统对实时性、数据量以及计算要求的不断提升,高速高性能的DSP也备受青睐。
机器人DSP运控设计
目前国内外的机器人大多数都采用上位机和下位机结合控制的方式,上位机发出机器人的控制命令,上位机和下位机经过通讯完成机器人的控制指令。下位机就是机器人的控制器,负责完成机器人的运动控制,在整个控制系统处于核心的地位,不仅要处理上位机发送来的命令,还要向上位机反馈传感器信息,实现精确控制机器人运动的目标。
在工业机器人系统控制设计中,DSP在数字处理部分扮演了重要角色。上位机发出控制命令(运动控制命令和机械手控制命令),DSP对接收的数据进行解析,独立(或者与FPGA一起)完成整个系统的电机控制和机械手控制。DSP控制设计中DSP运算速度直接影响整个闭环运控的精度。
这一块市场被TI、ADI、NXP等国际大厂主导,多年的硬件研发经验和完善的软件开发环境,用户生态都较为完备,在机器人应用中也多以这些大厂的DSP为主。TI的C2000系列的DSP芯片、ADI的ADSP-21xx系列都广泛应用于运动控制领域。
就TI的产品线来说,市面上最常见的就是用最普通的C2000系列DSP来做,性价比高;高端一点的用C55x系列,运算性能提升功耗更低;而TI官网推荐的C6654 DSP属于更高性能场景才会用到的DSP,850MHz的内核速度每个周期能够执行8次单精度浮点MAC运算,并且可执行双精度和混合精度运算。这种性能的内核即便是高性能的自动化运控场合也完全没有问题。
(C6654 DSP,TI)
一般来说,主机不会直接和DSP通讯,都通过共用内存来交换数据。共享内存的通信方式相对来说可以给整个控制更快的数据交换,像C6654 DSP因为采用KeyStone架构,配置了多种创新组件和技术,器件内和器件间的通信会更快一些。
机械手的控制利用DSP的ePWM模块完成,DSP根据求解出的机械手各个关节的关节角,控制各个舵机的运动以达到末端期望目标的位姿。
(32位RISC-V DSP,中科昊芯)
国内像青岛本原微电子的高端DSP芯片,中科昊芯基于开源指令集架构RISC-V的DSP芯片在机器人DSP应用上也颇有建树。上图中中科昊芯的32位RISC-V DSP基于自研的H28x内核,200MHz主频并增强了存储配置了ePWM等增强型外设,基于FPU浮点处理单元与自定义浮点指令专门支持高性能FOC、多电平控制,在控制领域应用颇多。
单芯片DSP集成进SoC成主流
从全球领先厂商TI、ADI的产品更新来看,DSP从单核发展到同构多核再到异构多核,现在要么使用单芯片DSP模式,要么以处理单元的形式集成在SoC中。
(M4内核集成浮点运算单元,ADI)
机器人应用往多核异构架构的发展才能兼顾算力和扩展性,这一趋势很明显。且不说视觉应用里DSP在性能及成本考量上应用于机器视觉的主、次系统中都较为适宜(不论是单颗DSP还是内嵌多核心DSP以及中央处理器SoC方案)。在机器人控制应用里,市面上独立DSP的方案也肉眼可见得越来越少,独立DSP正在越来越多地转向SoC的一个处理单元。
小结
运动控制的发展无疑是向着更智能更精准这一方向,机器人的快速发展也离不开控制系统的优异性能。不断复杂化智能化的控制系统,不仅对DSP厂商,对整个上游核心芯片供应商来说都是一次发展的契机。