闭门造车日记 第二篇


造车日记 - 驱动板规划

总线之首选 -> EtherCAT

久闻 EtherCAT大名,想着就以帅的名义学习一番,看看能不能用作小车的内部主干总线。

经过几个晚上的学习,大概摸清了Ethercat的毛皮。

EtherCAT, 是一个以以太网为基础的工作现场总线。它完全沿用了以太网的物理层,并延续了标准的以太帧,但后面的使用上则完全不同。


常规以太网

在常规的以太网中,并没有中心节点,每个节点都可以占用网络,并相应发展出载波监听/冲突检测技术,当多个节点同时想收发信息时,必定会有不确定的延时。

此外虽然以太网的基础速率较高,但是对于高频次的短小消息来说,整体总线利用率可以说非常低(2-5%)


原理

在一个EtherCAT网络有且只有唯一的主站从站节点则可以多达六万多个。而网络利用率却可以达到~97%,同时,从站间的同步偏差小于1us,在包含100个伺服轴节点的系统中,可以以10kHz的速度更新它们的状态信息。

这对于一个有众多执行机构,并且需要可控同步的机器人系统来说太美好了。

基本上主站的网络设备可以使用常规的以太网卡。EtherCAT改造的是从站节点的“网卡”。

在EtherCAT中每个从节点都有一个特制的网卡,该卡有2个独立的port(也有的有3个)。其中一个连接上行设备(或者主站),另外一个连接下行设备(或者留空)。

EtherCAT子设备网卡,支持一种被称为“Processing On the Fly”的技术,当一个从站收到上游发来的数据时,立即在硬件上将属于自己的数据更新,并立刻从下游端口发出新的数据。

维基百科上的一个动图很好的解释了这一点。


网卡

从站的EtherCAT网络方案有大概三种

  • SOC, ARM核心带ethercat控制器
  • FPGA Core
  • 收发器

使用SoC的芯片应该是更合理的方式,不过当前支持EtherCAT的SoC并不算多,所以我重点看了两款独立的收发器芯片,这样搭配自己的处理器会灵活一些。

  • LAN9252
  • AX58100

基本大同小异吧, 以AX58100为例, 内部框图如下

典型系统构成

感觉开发从站的话应该只是工作量的问题,并没有明显障碍。


问题

目前为止,一起都很美好,除了EtherCAT的性能对于一个玩具小车来说有些overkill。

直到我大略的看了一下主站方案……问题出来了。

似乎主流的Linux主站方案都停留在2013年左右,对LinuX内核支持停留在 2.6/3.x的时代,而我电脑目前的内核版本是5.5.9……

更为头疼的是因为EtherCAT的实时性非常高,似乎如果主站不是实时操作系统的话,从节点会因为得不到及时相应而罢工……

看了一圈,似乎目前的方案是引入这个项目

Xenomai

这是一个让计算机运行双内核的东西。标准LinuX内核+实时内核。

这玩笑就开大了……完全搞定这个,似乎研究生都能毕业一回。而我要的只是一个能控制小车的总线……


最终选择

EtherCAT性能确实优异,看上去也很好玩,再合适的场景下确实相当帅。

我会继续看下去,但是恐怕不是在小车这个东西上了。

所以最终,小车的主控(暂定RK3399)和电机板之间的总线为

USB


驱动板MCU

这里先透露一下 FoC计划 的首款PCB

小车的话,打算采用同款MCU STM32F303RET6

有四个QD,在CubeMX里试了一下,有足够的资源硬件解码。

USB也靠它片上实现

此外8根PWM,驱动电机

说不定灯效也放在它身上,到时候看


电机驱动器

作为MPS脑残粉,电源、驱动之类的肯定首选MPS。

本来看中 MP6519

这是一颗28v 5A的可控恒流源。本来想着可以对付因为感抗造成的DC启动性能差的问题,不过后经高人提醒,电机的调速用电流源的话,会非常不线性。

最后基本确定为 MP6612 这颗。


不日将开工画板。

to be continued..


文章作者: chopin1998@gmail.com
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chopin1998@gmail.com !
评论
 上一篇
闭门造车日记 第三篇 闭门造车日记 第三篇
造车日记 - 驱动板预备经过几个晚上加周六断断续续的折腾, 首块驱动板终于快要问世。 下周再抽一个晚上检查检查就准备外发。实在搞不动了,明天周日好好休息一下。。 调试顺利结束后,会在github放出相关设计。 KiCAD已经用到炉火纯青原
2020-04-18
下一篇 
闭门造车日记 第一篇 闭门造车日记 第一篇
造车日记 - 开篇缘起看到大疆 RoboMaster S1之后,就有了自己也做一台小车的想法。 当然除了以后给女儿当玩具玩儿之外,目的还是非常明确的。 在硬件层面主要是尝试新技术以及为一些技术的工程化积累经验。包含但不限于 CAN/ Et
2020-03-29
  目录