没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32与LAN9252的连接.docx
STM32与LAN9252的连接.docx

STM32与LAN9252的连接 1.EtherCAT及项目简述 2.LAN9252工作模式 3.整体开发流程
资源详情
资源评论
资源推荐

STM32 与 LAN9252 的连接
EtherCAT 及项目简述
是一种基于以太网的工业通信协议,类似于 。
协议是一主多从模式,主站一般是由一个装有 的 机担任, 机对网卡特殊要求,
需要支持 的网卡。本项目的主站是一台倍福 (仅支持 ),这是一台
架构的 ,内装 操作系统,操作系统中装了
项目需要开发其从站,周期交互 : 入 出,选用 !"#$% 构建。
LAN9252 工作模式
根据 #$% 的 &'' 所述,#$% 一共有四种工作模式:
自我工作模式(数字 ( 模式),) 入 ) 出
串口通信模式, 线串行数据(或更多 *)
并行通信模式(+,),!() 位数据交互
扩展模式,#$% 与 - 之间 通信,同时对外再提供一组 接口,可扩展连接另一组 +. 芯
片,多接一个 /% 端子。
根据需求,项目选择 串口模式。
整体开发流程
! 淘宝购买相关学习板,得到文档和协议栈。
根据项目需求构建 #,该 # 将会由 解析,并将相关特诊烧录进 #$% 连接的
中。
根据学习板附带的文档,尽可能理解 协议栈和通信步骤。
根据项目需求绘制自选 - 与 #$% 的原理图和 ,。
% 移植相关代码到自己的 - 中, 中编写 # 测试和调试。
整个体系中,#$% 起到以下作用: 0+. 的作用,所有跟以太网 /% 交互的工作,都由
#$% 完成。 0网络交换作用, 要求从站必须有一拖一的能力,不可以终结总线,
#$% 有 端口( 端口模式,内部做网络交换。 0数据解析及 下位机作用。- 可以作为
主模式与 #$% 进行数据交互,其交互流程在协议栈中,非常复杂,没能完全理解。
移植要处理的问题
! 首选需要初步理解 使用的 # 的作用,此 # 是对设备的描述,类似于 1& 文件。描述了
通信时需要使用的对象字典,数据类型,长度等等。234 文件一般都有好几兆大小,但 只会解

析 # 并将其中一部分特征数据烧录进 #$% 挂载的 中去,所以并不需要担心
大小问题,一般选择 %!5, 的快速 ( %!)。
根据自己的项目要求,设计 #,这个工作可以通过 的开发工具 来简单实现,如果不使
用 ,手工修改 # 将是一件非常麻烦的事情。
在生成 # 的同时,还可以生成代码,这份代码是没法直接用的,但里面有关字典的6 文件非常有
价值,可以参考并移植到开发板的代码中去,完成自己的逻辑。
代码层面的工作
整个 协议栈相当复杂,几乎没办法阅读,只能从 3'78函数入手,简单地剥解一下代码,可
以看到整个项目是由三个大函数构建而成的:
HW_Init();
MainInit();
while (1){
MainLoop();
}
以上就是整个 协议跑起来的骨架。 此外,在 - 的 1 和内部资源部分,需要做到以下几
点:
! 四根线的使能,跟 #$% 的通信就靠它了。
一个定时器中断,!3 周期,调用 ECAT_CheckTimer();函数,但不要一上来就初始化使能这个中断,
根据接口定义好使能入口,让协议栈调用,以上电就开启这个定时器中断会导致连接失败。
三个外部中断,*9.9.!9其中 * 必须实现,. 和 .! 是分布式时钟同步用的,可以选择
使用,也可不使用,注意这三个中断的使能同样要根据代码中的接口定义入口,由协议栈使能和失能中断,
万万不可一上电就来使能中断。中断中处理的代码如下:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
if (GPIO_Pin == LAN9252_IRQ_Pin) {
PDI_Isr();
return;
}
if (GPIO_Pin == LAN9252_SYC0_Pin) {
DISABLE_ESC_INT();
Sync0_Isr();
ENABLE_ESC_INT();
return;
}
if (GPIO_Pin == LAN9252_SYC1_Pin) {
DISABLE_ESC_INT();
Sync1_Isr();
ENABLE_ESC_INT();

return;
}
}
开发中使用的工具
:;%!954%7::89:;43
9#<=
9>:'4,2
4:3&?!)
STM32 与 LAN9252 构建 EtherCAT 从站(二):SSC 的使用
SSC 简介和下载
74'@'6A48从站协议栈代码工具,是 协会为会员免费提供的,
会员可以免费申请,可以致电其北京办事处寻求中文帮助,对方可以指导您与德国总部进行会员申请:
<B((6'?6(6(6'634。
使用 ,可以快速地构建 从站代码,保证从站协议栈与最新的 协议相匹配,同
时还可以生成从站设备描述文件,这是一份 # 文件,需要放在 安装路径下的/Io/
EtherCAT 目录下,在使用 对设备进行组态时需要使用。是 从站设计过程中很重要
的一个文件,关于从站设备传输多少数据,是否启用分布式时钟,+.(#$%)与 - 之间如何
通信等等重要数据都在这个描述文件中定义。这份 # 如果全靠手工编辑,工作量非常大,并且极易出
错,有了 后,构建 # 将非常简单。
在官网下载 时,需要用户提供 >&,这是由 协会为其会员企业提供的全球唯一标
志,企业可以用其作为所生产设备的标志。
SSC 构建协议栈文件和 XML
我们的项目简单使用 入 出纯数字 ,制作一个由键盘和 #& 灯组成的 从站面板,来跟
,5+ 的 # 进行通信。#$% 与 - 之间的通信方式我们选择使用 方式。
打开 后, 40C$,打开新建项目的对话框,这里让我们选择一个项目模板,可以使用默认选项
创建,该选项提示我们 All settings are available.,这里我们不选择默认模板,而是在点中
:3 单选后,下拉出一个 EL9800 | 8Bit Digital I/O, 16Bit Analog Input,选中它以
后,下方提示我们:

6?:'<@''6?:'D#)
@'4:'5
6<?@66<46'4EFF4'@'6A234E7@6B
#)00844;6';=4
显然这个模板更加适合我们,点击 5 进入下一步。
此时界面由左边的树状菜单和右边的内容条目组成,有许多可以配置的选项,包括 >& 和 3'?
等 #1 的设置。如果有兴趣可以对其进行设置,也可以直接进入下一步。
依次点击 40C<<46'0C'$,提示需要先保存一下,随便找个路径保存一下本项目。保
存成功后,会立刻弹出一个 264 文件(需要预先安装 264)。

这是一份模板 264,用来设置 的通信数据,我们将使用此 264 进行传输 的点位设置。
根据之前的计划,输入有 个 ,,输出有 个 ,,因此对该 264 的//0x6nnx 和//0x7nnx 条目
进行配置,配置方法如下:
按照上述三张图片的配置,熟练使用 264 的批量拖拽方法,可以快速地填入。不要忘了修改最后一个
Maximum number of modules 条目,改成 3 即可。 都修改好以后,保存 264, 会自动打开导
入该 264 的对话框,点击 5 进行导入。
剩余43页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论1