基于rt thread smart构建EtherCAT主站
我把源码开源到到了gitee,https://gitee.com/rathon/rt-thread-smart-soem
有兴趣的去可以下载下来跑一下
软件工程推荐用vscode 打开。rt thread smart的教程可以参考官网资料,这里就不多阐述了。
用的是100ask的imx6ull开发板,雷赛的dm3e-556步进电机。实验需要用到两个网口,一个走tcp数据(基于lwip协议栈),一个走ethercat数据(基于soem)。
工程目录如下
tcp目录下为实验用到的应用程序代码。
实验方案
PC通过tcp/ip通讯向rt smart开发板发送报文,rt smart后台运行“tcp”进程。tcp进程的NetDataThread线程实时接收PC数据,并通过共享内存将数据转发给内核空间的“simpletest”线程。simpletest线程实时接收进程发来的数据,解析数据内容,并通过全局变量将参数传递给EtherCAT定时器中断服务函数。根据tcp传输数据,控制EtherCAT步进电机运转。
数据为“left”,电机正转
数据为“right”,电机反转
数据为“stop”,电机停止运动
数据为“up”,电机加速
数据为“down”,电机减速
1.首先,编译内核代码,生成rtthread.imx等文件。
2.接着编译应用程序代码,实验所用代码为tcp.c代码,编译生成tcp.elf文件。然后将tcp.elf文件拷贝至emmc或者sd卡中。
scons --app=tcp
可以通过 100ask_imx6ull_flashing_tool 烧录工具将 rt-smart 内核固件文件 rtthread.imx,通过 USB 加载至内存中运行。
此时系统运行后,会打印出如下数据
然后后台运行tcp.elf程序
./tcp.elf &
然后用上位机与rt smart建立tcp连接,我这里用的是野火的上位机。
连接成功后打印数据如下:
最后通过上位机发送“left”、“right”、“up”、“down”、“stop”字符串可以实现电机的运动。
pc的ip地址为192.168.1.100
开发板的ip地址为192.168.1.30:7575.
实验效果如下
基于rt thread smart构建EtherCAT主站
软件架构
rt thread的lwip协议栈
RT-Thread 的 lwIP 移植在原版的基础上,添加了网络设备层以替换原来的驱动层。和原来的驱动层不同的是,对于以太网数据的收发采用了独立的双线程结构,erx 线程和 etx 线程在正常情况下,两者的优先级设置成相同,用户可以根据自身实际要求进行微调以侧重接收或发送。
lwip接收过程
soem收发函数
基于rt thread smart构建EtherCAT主站相关推荐
- 创龙基于TI Sitara处理器的EtherCAT主站开发案例
创龙基于TI Sitara处理器的EtherCAT主站开发案例 EtherCAT介绍 EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技 ...
- 基于zynq的千兆网udp项目_基于Zynq平台的EtherCAT主站方案实现
作者:陈秋苑 谢晓锋 陈海焕 广州虹科电子科技有限公司 摘 要:EtherCAT 是开放的实时以太网通讯协议,由德国倍福自动化有限公司研发.EtherCAT 具有高性能.低成本.容易使用等特点,目前在 ...
- 米尔基于ARM架构核心板的国产化EtherCAT主站控制器解决方案
EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术.它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构.其从站节点使用专用的控制芯片,主站使用标准的以太网控制 ...
- STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码
STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码 提供配套CUBE工程 STM32H743 SOEM EtherCAT基于STM32H743 ...
- 基于AM335X开发板 ARM Cortex-A8——Acontis EtherCAT主站开发案例
前 言 本文档主要说明TL335x-EVM-S评估板基于德国Acontis公司EtherCAT主站协议栈控制伺服电机的方法,内容包含有EC-Master.EC-Engineer简介.EtherCAT主 ...
- 基于GD32F103C8T6添加RT Thread nano设备框架并添加串口设备(以控制台console( uart0 )为例)
最近没事琢磨了一下使用设备框架的问题.因为将串口注册到设备框架可以应用十分丰富的软件包. 于是就整理了一下手上的工程,重新将工程梳理了一遍. 像这样是十分清爽了,其中RTOS是操作系统源代码 并且学习 ...
- igh ethercat主站文档(中文翻译下)
此翻译主要是用翻译软件翻译,部分自己修改,若有不当之处,可以下方评论或私聊我提醒修改,若转载,请注明出处 这篇是5-9章内容,前四章链接 5状态机 EtherCAT主站的许多部分都实现为有限状态机(F ...
- EtherCAT主站IgH解析(一)--主站初始化、状态机与EtherCAT报文
文章目录 0 获取源码 1 启动脚本 1.1 start 1.2 stop 2 主站实例创建 2.1 Master Phases 2.2 数据报与状态机 数据报 状态机 2.3 master状态机及数 ...
- (转载)STM32与LAN9252构建EtherCAT从站
目录 (一):项目简介 EtherCAT及项目简述 LAN9252工作模式 整体开发流程 移植要处理的问题 代码层面的工作 开发中使用的工具 (二):SSC的使用 SSC简介和下载 SSC构建协议栈文 ...
最新文章
- 随机矩阵理论_MIMO 信道容量的理论模型
- 官方教育网代理地址MSN
- 笔记本电脑怎样连接打印机_佳能无线便携打印机上市
- 软件测试反例,基于模型检测多反例对软件进行调试
- .NET BackgroundWorker的一般使用方式
- linux mrtg,鳥哥的 Linux 私房菜 -- MRTG 流量偵測法
- 关于NGINX变量的一些测试结果
- SQL语句中 NOT IN 子句的“正确打开方式”
- Fastdfs读取文件内容
- jQuery如何使用most()方法?代码示例和解析
- 场景图生成论文阅读笔记 之 LinkNet: Relational Embedding for Scene Graph
- Grafana 6.7的sqlite3数据库报错“database is locked”的修复方法
- Unreal Engine 4 渲染目标(Render Target)教程 之 实现雪地足迹(下)
- 09.5. 机器翻译与数据集
- PS学习笔记(88天和我一起学会PS)(5/88)
- UGC、PGC、OGC
- 因果推断——现代统计的思想飞跃
- SPA(单页面应用)
- 软件测试肖sir_搭建环境讲解(03)
- F280049C配置CLB模块时遇到的许多问题