- 本课程为精品课,您可以登录eeworld继续观看:
- (三) 基于 AM57xx 和 AMIC110-120 工业现场总线 EtherCAT 主从解决方案
- 登录
- 课程目录
- 相关资源
- 课程笔记
下面由我为大家介绍TI的EtherCAT Solution在Sitara平台上的实现
这个是我们当前工业自动化的一个
工业通讯的一个大概路图
然后我们可以看到 大概有几个模块
一个是PLC 然后里面有sensor
然后底下有个马达控制这块的东西
然后还有HMI的这块
然后这系列的一些单元呢我们都是通过工业通信的
总线连到一起的
然后我们今天讲的工业通信的这块呢
通信的这个协议栈
所以工业通信这块来说呢 互联互通
也是我们工业器件的一个核心的内容
当前主流的工业通信的标准呢 大概有
下面的这几种 一个是
Profinet
这个是我们工厂自动化做的 主要是在欧洲这边
比较流行一些
还有我们今天介绍的EtherCAT
EtherCAT 主要是对于这种大量IO的系统
还有驱动方面做的比较好一些
还有一个Ethernet/IP
Ethernet/IP是IEEE的一个标准
做的标准的一个协议
还有一个Powerlink
Powerlink是开放的一个技术 还有一个
Sercos 它就是一个
主要可以支持冗余的一些技术
我们今天主要介绍的是EtherCAT的输出的以太网协议
这一页就是我们EtherCAT整体的一个overview
首先 它是2003年由倍福(Beckholf)公司起草
开始做的一个协议栈
然后现在的标准呢 它有一个叫做ETG的组织
就是大家可以加入这个组织
然后可以获取它的协议栈 EtherCAT是免费的
它的拓扑关系呢 有线性的
有环形的 还有星形的拓扑
网络接口这块它是百兆的 全双工
一些规范呢 像EtherCAT Master呢
主要是产生frames
然后发送frames
然后Slaves会接收这个frames
它会一边把这包数据收到
收到后呢 然后再从另外一个端口把数据抛出去
这样它有一个标准
就是Slave从这个端口到另外一个端口的时间必须小于
1微秒 就是说
那么实时以太网的实时性就是体现在这个地方
这边呢 Master呢
刚才也说了 它会把数据forward
然后会产生frame的这个数据
它是标准的Ethernet的MAC发出去之后
Master可以用我们的PC机或者我们的
通用的以太网都可以做EtherCAT Master
来使用 而Master呢
要支持TTS的这么一个协议
这个就需要我们通过用PRU-ICSS单元来支持
PRU这块就是我们 Sitara 的一个
可编程的实时单元 它的实时性主要通过PRU来实现
Slave呢就是说这边
它首先是一个on the fly frame的处理
意思就是 可以这么理解
EtherCAT的数据包过来 它会通过
各个Slave的节点
就像一辆火车这样开过
然后经过Slave这个地方的窗口里面
把你当前与我本节点
和Slave有关系的数据取下来
把我需要上传的数据再从这个窗口丢进去
就是说这个车一直在开 速度非常快
保证必须实时地从这个口传到这个口
在这么一个过程中
我可以把数据交互做完 所以这个
on the fly的技术可以简单这么理解
然后就是标准的EtherCAT
Ethernet MAC
是不适用的 因为我们要求一个实时性
要求一个口到口的实时的数据传输
所以标准的网口可能不一定能满足这种需求
所以一般来说 市面上常用的
TI的就是通过PRU-ICSS
来做 也有厂商会用ASIC的方案
还有的可能用FPGA来做
这边呢 就是说
处理起来 处理的时间是限制的
它的jitter比较小
然后会有同步的一些处理
EtherCAT Slave的这个协议栈呢
是免费的 是ETG 组织提供的
所以大家如果用EtherCAT Slave呢
想下载这个协议栈的话
需要到ETG的网页上注册一个会员
这个会员也是免费注册
然后就可以得到这个协议栈
然后 EtherCAT这个协议呢
是在TCP/IP协议上面的
就是它的网络数据包呢
还是TCP/IP的包
只是TCP/IP的数据包里面会有一些空格字段
表明当前是EtherCAT的一个数据包
然后我们针对这种在做一个更加
这种详细定义 所以它的外面
的包是一个TCP/IP的数据包
这个就是我们在Sitara处理器上
对EtherCAT Slave实现的一个
框图
从这边可以看到 这是一个
软件的这么一个构架
上面的这一部分是ARM
中间是我们的PRU-ICSS单元
然后底下是硬件的这个PHY
硬件的这块
首先在我们的ARM上面呢
首先会有一个industrial application的这么一个
应用程序 这个程序也可以是客户自己的
自己在上面开发一些
一些代码 也可以用TI的demo
这上面是EtherCAT Slave的stack
就是EtherCAT slave的这个协议栈
就是我刚才说的需要在那个ETG的网站上
去下载协议栈 协议栈的代码也是有
我们TI的demo里面也有这些协议栈扣在里面
集中在我们的demo里面
下面呢 就是EtherCAT的这个
PRU SS的这个驱动
这个驱动就是为了操作我们的这种
操作PRU进行的一些数据包的收发
所以我们在PRU上面 PRU是一个
我们SoC里面的一个可编程实时单元
这上面会有一个固件
也是TI开发 这个固件呢
会给ARM提供一些接口 API
然后通过我们PRU的驱动
去和API进行一些交互
就是我们上传的这个协议栈可以通过API
去获取数据包或者发送数据包
然后PRU呢 可以和这个
ARM 我们的操作系统在一起
大概就是这么一个软件的构架
然后 PRU呢 我们有自己专门的
这个MI接口
就是一个网络接口
它可以有一个收一个发的EtherCAT支持
所以 我们刚才说的普通的网口
比如说335 也有一个CPSW的网口
通用的网口不太适合做这种
实时的以太网
所以我们的PRU有一个专门的
MI的网口的支持
所以这是实时以太网的一个硬件的基础
一个就是PRU
一个就是我们有自己专门的网口
因为我们的PRU是一个实时单元呢
也可以简单介绍一下 就是
它一个是没有Cache
没有流水线 所以它的
每条指令执行的时间都是固定的
这样 当一个网络数据包进来后
它会直接被PRU拿到
因为它的指定时间是固定的
所以它可以在固定的时间内
获取数据包 解析数据包
然后执行相应的动作
但如果网口不是这个网口
而是用我们系统上的网口的话
中间会有很多总线 一些桥
所以这样速度 时间上就没有保证
我们这边的这个
当前呢 就是说
ASIC方案比较流行的 有一个叫做ET1100
这么的一个ASIC
是倍福做的一个芯片
然后我们的AMIC110
就是我们Sitara专门做EtherCAT的一个器件
它会针对这个做一个
就是一个统一的标准 它会
做和ET1100一样的寄存器的标准
因为很多厂家
可能以前是用ET1100
所以 如果以后要用AMIC110的话
其实这个编程的方法是一样的
然后我们这边呢 就是端到端的
Delay时间是700纳秒
是小于1微秒
我们还有一个同步的时间
是小于100纳秒
还有我们是有很多的这种协议栈
的支持 比如刚才说到ETG
的EtherCAT的协议栈 其实我们还有
其他第三方
像第三方的一些协议栈也可以支持
所以我们的平台是相对比较开放一些
这边是我们一个
工厂自动化的一个平台
就是针对EtherCAT的一个解决方案呢
还有TI的产品 大概分为
三层 最上面是一个操作层
主要是工业的PC或者HMI的设备
然后中间呢 是一个控制层
控制层重要是PLC
还有Motion control的CNC的一些设备
最下面是一个现场操作层
主要是以电机驱动啊
就是现场具体做动作的一些小设备
然后在每个设备上 其实都有我们TI合适的产品
去做这种应用 比如像这种比较高端的
可以用我们AM57系列的产品
主要是它的性能比较强
然后主频也比较高
A15的核
然后在HMI这边呢 我们可以有
AM57 或者我们的335X
系列的产品 然后
在中层这块 PLC这块呢
可以用我们AM57的4系列还有3系列的产品
都可以做中间的PLC
这种motion control呢 这种57
和K2G系列的产品都适合应用
底下具体的动作呢 也可以用我们的335或者是AMIC110
我们的AMIC110是针对3357的今年的一个版本
主频是300兆
所以它的成本相对比较低一些
这边呢 就是说介绍一下我们的PRU-ICSS
这个单元 我们的PRU-ICSS呢
是一个可编程的实时单元 ICSS是工业通信的一个缩写
像我们Sitara的处理器呢
有的是只有ARM的 像335 437 只有ARM
像我们的AM57里面呢
还会带DSP
但我们的Sitara处理器呢 都会带一个叫做PRU-ICSS的单元
这个单元呢 刚才也介绍过了
它是一个可以取代ASIC的
或FPGA
可以用在我们的实时通信里面用
它是集成在里面 所以它会很好的这种
节省包括Power size cost这些成本
同时呢因为它是面向软件的
所以这个东西是可以编程的
就是可以用我们TI提供的方案做一个实时的以太网
也可以自己写一点代码在里面
而且我们是用C来编程的
所以可以自己写一些代码在里面 进行接口方面的扩展
这些都是我们TI已经做好的协议的支持
就相当于EtherCAT 刚才已经介绍的协议
都可以通过PRU来支持
我们TI呢 还有一个特点
它有自己专有的一些接口
比如刚刚说的这种网口
就是它通过自己的专用网口
可以做实时以太网
而且它还有专有的一些IO口
就可以通过做一些
实时的一些IO的操作
比如可以输出一些PWM频波
可以进行电机的一些驱动
或者它可以进行一些
通过实时IO进行一些采样
比如外面接上一些传感器之类的
可以通过我们的专用IO把数据采进来
这个是我们工业软件的一个大概的框图
我们这种Sitara产品呢
主要是针对工业领域做的一系列的产品吧
它呢 主要就是
像这边 我们的软件大概分为这几块吧
一个就是客户的软件 就是说
客户开发的一些东西
然后还有第三方的软件
还有一些TI的软件
这边红色的这块就是客户的软件
就是深红色的这块
就是你在上面进行一些开发 做一些应用之类的
然后这块 浅红色的就是第三方软件
各种各样的协议栈 比如刚才说的
EtherCAT Stack
还有其他的一些比如Profinet等等
各种协议栈 这些都是第三方来提供
然后其他就是一些TI提供的
主要是驱动 底层的一些 包括操作系统 bootloader
工具的各种各样的支持
这块都是由TI来提供的
而且因为我们的可编程性比较好
所以我们的一颗芯片 可以支持多种协议
就是根据烧的不同的固件
可以支持EZMac等各种各样的协议
TI已经做好了各种各样的软件包的一个
开发和评估
所以这个就可以设计一套硬件
应用于不同的场合
这个是我们PRU软件的一个
一个软件包打开以后是什么样子
大概就是这些东西
首先呢 这边呢 就是一个
板子支持的一些组件 包括
Processor SDK等
各种各样的软件都是在这里面
还有一些文档 包括user gudie
各种各样软件开发的一些指南
都在这里面
这边看的不太清楚
应该是最上面的这个文档
还有一些example
Example就是我们的一些代码
比如刚才说的客户开发的深红色的软件
就是我们example的一个范畴
所以这是会把整个协议
协议栈给套进来
然后下面有这个Protocols 这是我们的固件
和驱动
像firmware呢是TI提供的
驱动也是TI提供的
还有third party就是我们第三方提供的软件
就是刚才说的那个EZMac Stack
协议栈之类的
就是第三方提供的专门的一个软件包
这个软件呢 可以直接在我们TI的
网站上可以下载得到
我们各种各样的通信呢
协议栈都是通过官方认证的
就是比如像我们这些EtherCAT Powerlink
等等的IP
所有这些协议栈都是经过官方认证的
所以大家可以放心使用
就是不会有不合格的情况存在
对于就是我们通过
像这个EtherCAT的话 我们的
所有设备就是通过EtherCAT组织的一个
认证 是满足EtherCAT标准的
这边我们
我们有从站 也有主站 都有
主站也有
我想问一下 比如EtherCAT啊
因为它是倍福发起的
那么里面就是这个IP也好
是不是需要从倍福得到授权
不是这样的 现在是
一个叫ETG的组织
就是原始是倍福
但现在不是倍福自己的东西
就是说现在跟倍福没关系 对吧
对 就是我们授权不是倍福授权 而是ETG组织的一个协议栈
所以 刚刚也看到了 我们很多第三方的
其实大部分都是TI的
包括光模块网 包括socket这些东西
中间有一个stack
stack可以通过ETG的网站上下载的
所以 那块是ETG授权的
就是客户买的话 不需要缴授权费吧
ETG EtherCAT不需要
因为ETG这个组织 它的授权是免费的
但有一些 比如像这种
Profinet这个
有可能是 prospect是某家公司开发的
可能如果你选择这家公司的话 它可能会收费
就是说EtherCAT你们是开放的 对吧
对 EtherCAT是免费的
这个是我们的TI design
就是我们会有一些参考的demo之类的
就是包括它的软件
它怎么安装 怎么编译
使用 等等这些
我们会有一些使用的指南
所以大家可以在这个
链接上会下载到各种实时以太网的这种
这些 指南 这些设计的一些
参考设计
这页的话 就是以Profibus为例
就是我们可以在我们的主页上下载到
Profibus的demo 包括这种原理图啊
包括PCB的file
之类的 还有一些软件的所有东西
都是用这个硬件
所有东西都可以通过我们的TI网站上获取
我们有一个叫做PRU ICSS Industrial 的software
我们的实时性是通过PRU来保证的
所以针对这个我们会有各种各样的软件
我们在这里就可以下载PRU的这些软件
包括EtherCAT这个软件
EtherCAT IP
HSR/PRP 还有工业driver
Profibus
Profibus Slave/Master
还有一个Profinet Slave等等这些软件
都可以在TI网站上下载到
下面就介绍一下我们最新的这种
Sitara的芯片 叫做AMIC110
AMIC110呢 实际上是
针对AM3357做的一个
简化的一个版本
它就是主要做一个Low cost 它的主频
是一个300兆
然后它会把一些
就是不太用到的外设 比如
显示接口等等
可以把它给删除掉
所以这个成本相对比较低一些
比335系列
它呢 首先是支持多协议的
支持多协议 通过我们刚才说到PRU
通过不同的去固件
不同的协议栈可以支持各种实时的以太网协议
它的成本比较低 是因为
我们精简了 所以它的
相对成本比较低一些
然后它简单易用 就是
我们所有的软件都是TI提供好
都可以下到 包括硬件什么之类的
所有PCB设计的东西都可以下到
如果不愿意去自己做的话
我们有自己TI的硬件板
也可以把这些demo都搭起来
啊 这样 就是说
ET1100呢
现在用的比较多的EtherCAT 从的方案
很多厂家都用它
比较习惯于这一套寄存器的编码
就是另外编程的话
它会针对某个寄存器 代表什么意思的话
是约定俗成的这么一个东西
所以我们这个AMIC110呢
也会做和ET1100一模一样的替换
就是说这可以完全替换ET1100
对于上层开发来说 都是一样的
所以我问你 倍福知道这件事情吗
用什么协议吗
这个寄存器是一个开放的
它可以处理这块 我们也可以处理这块
就没有知识产权的问题
这个不是被保密的东西
所以这个都没关系
可以作为主站 我们后面会介绍主站
这是我们最新的AMIC110
这么一个参考板的硬件
大概就这个样子 然后
我们是5伏供电
然后中间会有些电源芯片
包括两个网口
然后其他的 包括一些接口
然后我们通过一个扩展口 接触两方 扩展口在这个地方
然后我们可以接一个C2000的板子
然后这样的话
这样设计呢 不仅我们
通过AMIC110做了EtherCAT的通信
比如它是一个通信的单元
然后再接C2000
C2000作为电机的控制口
把它驱动起来
我们把它和C2000搭在一起
这样来做
这就是我刚才说的AMIC110+C2000的
工业驱动的这么一个框图
这边我们的AMIC110就可以做
各种各样实时的工业以太网的
这种协议的支持
这是一个通信板 相当于一个
通信单元
这边是控制单元 是C2000 MCU
进行电机的这么一些控制
我们还有一个 就是说我们的AM43系列
43系列呢它的性能更强
第一 它附带的运算单元
比A8 335系列呢
有所提升
其次 它还有一些比较好的比如PWM波
Sigma Delta等各种各样的
各种脉宽调制控制
各种各样的马达控制的接口
所以我们的43系列对于做
一个集成的方案 就是说
既做EtherCAT的这种实时以太网的通信
同时还可以做一个电机驱动
就是我一个芯片 把我这一页两个芯片的事情
都搞定
这个就是介绍我们EtherCAT Master的一个方案
我们这边呢 就是EtherCAT Master呢
我们刚才说了 有两个网口可选
一个是CPSW 就是普通的网口
千兆网口
还有一个就是我们
PRU-ICSS的网口
这就是EtherCAT Master
然后 我们现在这边 有一个
可以做EtherCAT Master的有335 437 AM57
都可以做 但我们当前TI
推荐的呢都是我们通过第三方
提供Master的协议代码
Stack那块是第三方提供的
所以我们这一块有一个叫Acontis的
一个公司 会给我们做EtherCAT Master的
协议栈的支持
还有一个叫做3S的公司 它也可以
给我们提供EtherCAT Master的支持
这边呢 有一个叫做CODESYS的demo
AM57的IDK上面
就是我们这边 PC机上面跑的是
CODESYS的IDE
然后在我们的AM57上面是A15
A15主要跑CODESYS的application
还有一个EtherCAT Master的一个协议栈
都在我们的57的IDK上面跑
然后它通过CPSW做的
这个网口
然后底下的这个335呢
就是相当于做了这个EtherCAT Slave的
协议 所以说
我们的这个Master和Slave
这两种demo都有
我们的335 ICE板呢 就是相对成本会高一点
也可以用我们的这个AMIC110来做
我们的这Acontis呢 主要是
跑在这个Linux-RT的
这么一个版本上面
就是我们有一个实时的
Remix的一个支持
我们这边的topic呢
EtherCAT Master呢主要是我们
在A8 A9 A15上面呢
都可以支持
然后它的软件是可以选配的
同时呢就是说
它通过PRU呢
这些软件 也可以支持Slave
然后我们也可以支持多个操作系统
比如像这种RTOS啦
或者Linux啊 我们都可以在上面配EtherCAT Master
而且我们的这些操作系统都是免费的
还有就是比较简单易用
这下面有一些链接 就是说
点击这些链接 就可以到我们第三方的网页上面去
获取相应的评估软件
这边有我们EtherCAT Master的benchmark
我们在三个平台上都测试了
一个是335 57 还有一个57是通过
PRU-ICSS来做的
这么一个测试
那么主频呢 分别是设到600兆
1G 1G的
然后这个CPU Load呢
大概平均是在39微秒
RTOS是稍微快一些 是20 Linux是36
这个RTOS是25 这样一个情况
然后还有一个循环的jitter的时间
分别是15 11 11这样
这边就是我们的这些测试报告呢
可以满足常规的这些需求
我们现在的这个Acontis的Master呢
现在主要跑的是CPSW这个
这样一个网口上面
我们在AM57上面的这个Master
可以跑在CPSW和ICSS-PRU的这个网口上面都可以做
而且可以支持多种的操作系统
这边呢 是我们Master软件的一个大概的框图
首先上面就是一个操作系统
然后这边是一个工业的应用
然后这是一个Master stack
第三方提供的一些Master的协议栈
下面就是我们以太网的一些驱动
所以说 这块呢 就是说
这个地方是第三方的 其实它全部都是TI的
我们这边就是说
Sitara现在主要就是
三个系列的产品
一个是335 一个是437
还有一个是AM57
我们这三个产品的定位呢 就是
低 中 高
这么三种应用吧
像335呢 主要适合
做这种IO audio或者Slave PLC
入门的HMI功能的这些设备
它的主要特点是集成性比较高
功耗相对比较低一些
它主要是A8 从300兆到1G赫兹的这么一个
A8的处理器 然后其他的各种
PRU的协议
都支持
我们的437就是性能比335要好一些
然后它有一些特殊的接口可以做马达驱动
然后它是个A9的处理器
也是从300兆到1G
我们的57是性能最强大的一个产品
然后它是两个A15的ARM
最高可以达到1.5G
然后内部集成M4的DSP
算法的东西可以放到DSP上面做
它有些控制类的东西可以放到M4上面做
然后它也支持PRU啊 Profinet等
或者其他的一些接口
这边是我们的一些开发工具
上面有AMIC110的
ICE的开发板 335的ICE板 437的IDK 571的IDK 572的IDK
还有K2G的ICE
这些板子都可以用来评估我们的EtherCAT
包括Master和Slave
都也可以来评估
根据大家的需要
在一些高端场合呢
可能选择571 或者572
低端 成本比较敏感的地方呢 可以选择
我们的AMIC110
或者335
做一个评估
这个是我们的这个
57的EtherCAT Master的
一个参考设计
就是一个叫做AM57 IDK的板子
这边就不再详细介绍了
它就是和335类似的
它软件的这边也是
它可以跑Master 也可以跑Slave
在Slave的情况下呢 它是跑
ETG的Stack
Master的话 它跑那个
Acontis的stack
这个是AMIC110的支持
刚才大家应该也看到了
这边是一个110加上一个C2000
做一个主控器 一个做控制用
这边有我们的一些链接
包括TI Design的一些链接
这个链接主要是面对硬件的
就比如你点击这个链接 就可以获取
EtherCAT通信平台的一个TI design
然后里面会有一个Vocation Notes
就是一个文档
在这个文档上面呢 会告诉大家一步一步的
怎么去下载软件
怎么去把它编译 然后怎么去测试
都有很详细的一些文档
然后同时 在这些链接里头
还有硬件的一些资源 就比如说
它涉及到硬件的原理图
PCB等等
这些资料都可以在链接上面下载得到
这边呢就是有一个成功案例吧
就比如我们像在
3357来做一个
驱动的通信板
我们主要用3357 那主要选择
3357的原因呢 就是说
首先它的PRU可以支持多协议
有的客户可能就是做了一个板
可能要求在不同的场合下都能用得到
它可能支持的协议可能不太一样
所以我们的一套硬件设计可以支持
多种协议的这么一个特点
经常会被客户比较看重
这边还有一个也是3357做的
机器手臂的这么一个案例
这边呢 它的主要特点呢就是说
这个3357呢
是一个ARM有Cortex-A的处理器
同时呢 还支持EtherCAT的这种
这个协议 所以说
比起之前说的其他的ASIC方案
我们这个处理器的性能
会比较强
所以说在这个应用里面呢
我们的ARM处理器呢 会协助这种
C2000 我们是用C2000来做
它会协助C2000做一些算法方面的加速
比如说有一些关于速度啊
各种各样的算法啊
可以放到我们的ARM上面来跑
这样的话 就是说
可以提高我们系统总体的性能
好 大概就这些内容
猜你喜欢
换一换
推荐帖子
- 5v直流转交流 木有看懂 请大家帮助
- 本帖最后由 dontium 于 2015-1-23 11:34 编辑 电路图如何理解 ...
- TISJ 模拟与混合信号
- C6747连接问题,求指教
- 我用的是CCS3.3,仿真器是seed-xds560plus; 我用的是一个c6747的开发板;我用仿真器连不上板子,出现下面的错误: ------------------------------------------------------------------------------------ Error connecting to the target: Error 0x800...
- gymowen DSP 与 ARM 处理器
- msp430F169当程序中都使用TimeA与P1口的中断服务程序
- msp430F169当程序中都使用TimeA与P1口的中断服务程序,为什么跳转不到P0口的中断服务函数...
- 叶子。。。 微控制器 MCU
- Turbo码的DSP和FPGA实现之比较
- Turbo码以其优异的纠错性能,在移动通信系统中倍受重视。为了能在工程实践中更准确地控制信号处理所需要的时间,更有效地优化硬件资源的分配布局,选择以哪种方式实现Turbo码成为引人关注的问题。针对该问题,在介绍Turbo码的编译码算法原理基础上,对编码器和基于Max—Log—Map算法的译码器分别进行了FPGA和DSP设计与实现,并比较了这2种方式在处理时间、资源占用以及实...
- Aguilera 微控制器 MCU