[应用相关]

记录STM32开发一个完整的EtherCAT的过程!

[复制链接]
楼主: goodluck09876
手机看帖
扫描二维码
随时随地手机跟帖
goodluck09876|  楼主 | 2019-7-20 11:19 | 显示全部楼层
    ET 1200最多支持3个EtherCAT物理通信端口,其中一个可以作为MII接口,
用于与物理层PHY芯片交换数据。因为EtherCAT并不定义该接口的物理层,MII
接口也是和传输介质无关接口,因此这种接口方式下的数据链路层与物理层彻底
隔开,从而以太网能够选用任意的传输介质,包括无线电和光纤。ET 1200其余两
个接口均为EBUS接口,EBUS是德国倍福公司使用的LVDS  C Low  Voltage
Differental Signaling)标准定义的数据传输标准,通信速率高达100Mbit/s,能与
ESC芯片直接相连,减小PCB板体积和降低成本。EBUS的传输距离最大为1 Om o
ET 1200提供的物理设备接口有数字I/O和SPI两种,选用ARM作为从站微处理
器是一般通过SPI接口访问ET1200o ET1200采用3.3 V供电,最大工作电流约为
70mA,芯片发热量很小。表3-1为ET 1200的主要技术指标。
242615d3288449c4d6.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:19 | 显示全部楼层
    基于ET 1200芯片实现EtherCAT总线通信电路方案结构图如图3 -3所示,采
用SPI总线与主控芯片STM犯F427进行串行通信接口,通过STM犯应用程序对
ESC芯片ET 1200进行控制实现EtherCAT总线通信。
853135d32885e995ed.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:20 | 显示全部楼层
    从站运动控制器设计了两个EtherCAT通信接口,一个采用标准的以太网通信
接口MII,一个使用倍福公司定义的数据传输标准EBUS接口。EBUS接口可以直
接连接从站控制器,从而实现从站之间的数据通信。MII接口需要通过物理层PHY
芯片和网络变压器再与RJ4_5接口连接,完成主站与从站之间的EtherCAT通信,
传输距离远大于EBUS通信方式。除了物理层接口电路以外,主要硬件接口电路
还有数据链路层电路、EEPROM数据存储电路、时钟电路等。

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:20 | 显示全部楼层
    数据链路层位于OSI C Open System Interconnect)七层参考模型的第二层,数
据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输
介质及其连接。链路层是为网络层提供数据传送服务的,这种服务要依靠本层具
备的功能来实现。数据链路层具备的功能有:链路的建立与拆除、帧定界和帧同
步、帧发送顺序控制以及差错检测和恢复。
    本课题从站运动控制器采用德国倍福公司的ET1200芯片作为EtherCAT通信
电路的数据链路层,从而实现EtherCAT数据帧的收发、解析、打包等处理,并通
过SPI总线同STM32实现数据通信。本文设计的运动控制器将EtherCAT通信模
块电路集成在扩展板上,缩短了连线距离,提高通信速度,缩小PCB体积。
    数据链路层电路包括ET 1200芯片最小系统、EEPROM存储电路、配置电路、
RJ4_5接口电路、SPI通信电路等,数据链路层电路原理图设计如图3-4所示。
712645d32888c65728.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:24 | 显示全部楼层
    原理图中ET 1200芯片采用3.3 V供电,3.3V电源由数字电源部分VCC3.3 V
提供。与STM32之间采用SPI总线通信,共计4根线为SPI_ SCK(时钟信号),
SPI NSS(片选信号),SPI_ MOSI(主机输出从机输入),SPI_ MISO(主机输入从
机输出)。根据ET1200芯片数据传输速率和芯片手册参考电路,外接晶振选择
2_SMHz的无源晶振。根据上一章硬件电路总体方案设计,在数据链路层电路中预
留一个EBUS接口。从站控制器ET 1200提供外置引脚配置功能,也即在ET 1200
上电时从外部引脚读取配置状态锁存到对应的寄存器,配置的主要内容包括端口
配置、TX相位偏移、CPU时钟输出、EEPROM容量、CLK2_5输出、PHY地址偏
移等,表3-2为引脚配置功能列表。
530965d328984da6b4.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:25 | 显示全部楼层
    表3-2描述的功能配置通过上拉电阻或下拉电阻实现,实现的电路原理图如
图3-_5所示。由表可知,将ET 1200端口1设置为M II模式用于连接到工业PC机,
端口0设置为EBUS模式预留给其他EtherCAT从站使用;为降低电磁辐射禁用了
CPU时钟输出;物理层PHY芯片的时钟信号来自ET 1200的CLK2_5,所以要使能
该时钟信号;选用EEPROM芯片为AT26LC16A容量为2K byte,所以将18脚置
为0;将PHY地址偏移设置为0,端口0对应的PHY地址即为Oo
525925d3289c2b7e24.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:26 | 显示全部楼层
551635d3289d10e3b7.png 198635d3289dc247e8.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:26 | 显示全部楼层
    物理层是OSI的第一层,提供用于建立、保持和断开物理连接的机械的、电
气的、功能的和过程的条件。物理层也是实现EtherCAT以太网总线通信的最底层,
选用物理层芯片完成物理层数据收发功能。从设计要求和成熟技术方案考虑,选
用MICREL公司的KS 8721BL作为PHY芯片;RJ4_5接口选用HanRun公司出品
的HY9_51180A型号,其中集成了1:1的网络变压器,提高了集成度,接口为立式,
方便设计运动控制器的外壳,如图3-7所示。在EtherCAT协议规范中要求物理层
PHY芯片与从站控制器芯片使用相同的时钟源,因此KS8721BL芯片的2_SMHz
时钟信号由ET 1200提供。
566505d3289f7cb10c.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:30 | 显示全部楼层
775945d328af00ef50.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:32 | 显示全部楼层
    在第二章硬件总体方案设计中,确定ARM为运动控制器核心,主要负责总
线通信、逻辑流程控制、加减速控制等功能。按照划分的各个功能模块,规划本
节硬件电路设计与实现。主要有ARM芯片配置电路、FSMC总线电路、232接口
电路、掉电保护电路等。ARM控制电路结构示意图如图3-9所示,其中EtherCAT
通信电路在上一节中己经做出详细描述,本节不再重复。
512085d328b3d46e36.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:33 | 显示全部楼层
    STM32是ARM Cortex-M内核的32位微控制器,STM32F4系列是ST(意法
半导体)推出了以基于Cortex-M4为内核的高性能微控制器。STM32F4系列微控
制器集成了单周期DSP指令和FPU (floating point unit,浮点单元),提升了计算
能力,可以进行一些复杂的计算和控制。
    STM32F4系列微控制器拥有更多的存储空间:高达2M字节的片上存储、高
达2_56K字节的内嵌 SRAM, FSMC接口可以连接灵活的外部存储器;新增更高级
的外设:照相机接口、加密处理器,USB高速OTG接口等;增强一些外设功能:
更快的通信接口,更高采样率,带FIFO的DMA控制器等。还拥有高速USART,
可达10._SMbits/s,高速SPI,可达37.SMbits/s o
    根据本运动控制器的功能需求,需要选用I/O口资源丰富、存储空间较大、
运算速度快、支持浮点运算、满足工业环境温湿度等要求的微处理器作为控制核
心。依据ST公司MCU选型手册最终选用STM32F427系列微处理器。该系列芯
片包含如下资源:2M字节的Flash存储空间、2_56K字节RAM,  12个16位精度
定时器、
封装包含
2个32位精度定时器、6路SPI, 3路IIC , 8路USART,  144引脚LQFP
114个I/O口、工作温度范围一40}-+85 0C等,满足功能需求。
    STM32F427正常稳定工作需要一系列相关的配置电路,主要包括启动模式选
择电路、时钟电路、SWD程序调试电路、复位电路、电池备份电路、运行状态显
示电路以及引出扩展电路等。本运动控制器原理图工程比较大,故尽量采用的同
一网络标签表示同一条线的连接,各个功能模块相互分开,便于设计和检测;芯
片硬件尽可能按照顺序排列,方便和芯片手册核对,不易出错。如图3-10所示为
MCU原理图及标识好的引脚,因为原理图比较大,芯片引脚较多,若不采用网络
标签设计方式而用引线连接设计,则图纸会杂乱无章,可读性极差。
102035d328b94c0c3d.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:34 | 显示全部楼层
282425d328babe09b0.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:41 | 显示全部楼层
462715d328d76bd1fa.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:42 | 显示全部楼层
49065d328dae67733.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:47 | 显示全部楼层
748745d328dcb92d73.png 37235d328ddfd71e3.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:49 | 显示全部楼层
698945d328f1999613.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:49 | 显示全部楼层
FSMC C Flexible Static Memory Controller,可变静态存储控制器)是STM32
系列采用一种新型的存储器扩展技术。FSMC具有如下技术优势:
支持多种静态存储器类型。STM32通过FSMC可以与SRAM , ROM , PSRAM ,
NOR Flash和NAND Flash存储器的直接连接。
2.支持丰富的存储操作方法。FSMC不但支持异步读/写多种数据宽度,还
支持同步突发方式访问NOR/PSRAM/NAND存储器。
3.支持多种存储器同时扩展。FSMC映射扩展地址空间中,不同BANK是
分开的,用来扩展类型不同的存储器。
4.支持从FSMC扩展的外部存储器中直接运行代码,却不需要首先调入内部
SRAM。

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:50 | 显示全部楼层
    本课题运动控制器中STM32F427与专用运动控制芯片MCX314AL之间的通
信采用FSMC总线,根据MCX314AL使用手册的推荐电路,MCX314AL与STM32
之间采用16根数据线、3根地址线、读写使能控制线、以及片选线等即可正常通
信,读写MCX314AL的寄存器使其工作。
    其中还需注意的事16根数据线都需要接上拉电阻,以免发生数据传输产生错
误;MCX314AL的30Pin应该接lOK的上拉电阻使其为3.3V,使其工作在16位
数据总线的模式。MCX314AL应该使用16MHz的有源时钟晶振,如图3-17所示。
665285d328f7f5d6c4.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:51 | 显示全部楼层
    为了便于在接下来的实验过程中观察实验数据或者外接其他输入输出装置,
在运动控制器接口板的设计中添加一个RS232串口通信接口,实验过程中可以随
时把一些需要观测的数据通过RS232串口上传到上位机中,这样极大地方便了调
试过程。标准的RS232接口的信号电平值较高,即:逻辑“1”为一3}--15V;逻辑
"0”为+3}-+15V,而STM32的电平3.3V为逻辑正,0为逻辑负,故需要一个
RS232的驱动芯片,这里选用ADI公司的隔离式单通道RS232线路驱动器
ADM3251 E。
    ADM2351 E是一款高速、2._SKV完全隔离、单通道RS-232收发器,采用_5 V
单电源供电。由于RIN和TOUT引脚提供高压ESD保护,因此该器件非常适合
在恶劣的电气环境中工作,或频繁插拔RS232电缆的场合。该芯片集成双通道数
字隔离器,无需使用单独的隔离DC-DC转换器即可提供完全隔离的解决方案。根
据芯片数据手册提供的典型工作电路,再结合本硬件系统方案设计RS232接口电
路如图3-18所示。
979605d328fbf7039b.png

使用特权

评论回复
goodluck09876|  楼主 | 2019-7-20 11:54 | 显示全部楼层
    掉电故障保护电路用来检测给运动控制器输入的24V开关电源工作是否正常,
设计检测电路如图3-19所示。R_54和R_5 _5这两个电阻构成分压电路得到3.13V输
入给电压比较器的同相输入端,R_57和R_5 8这两个电阻将_5 V电压分为2._5 V输入
给比较器的反向输入端。
    传递给电压比较器的同相输入端INB+电压与电压比较器的反相输入端INA-
端的基准电压2._5V相比较,当同相端INB+电压大于反相端INA一端电压时,电压
比较器的输出端OUT输出高电平,当同相端INB+电压小于反相端INA一端电压时,
电压比较器的输出端OUT输出低电平。若电压比较器输出低电平则表示
DC24V-IN电压低于19V,表示开关电源工作异常。然后STM32F427的PF1_5肚p
检测PFAULT的电平即可知开关电源是否工作正常,若工作异常则立即发出指令
停止数控设备运动。
715635d329033d1b2f.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则