自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (10)
  • 收藏
  • 关注

原创 基于rt thread smart构建EtherCAT主站

基于rt thread smart构建EtherCAT主站

2022-05-22 20:12:26 2093 3

原创 rt thread smart制作emmc镜像

rt thread smart制作emmc镜像

2022-04-16 14:32:53 945

原创 rt thread smart适配野火imx6ull开发板的KSZ8081网卡

rt thread smart适配野火imx6ull开发板的KSZ8081网卡

2022-04-16 14:25:06 2104

原创 soem主站移植到rt thread smart操作系统

soem主站移植到rt thread smart操作系统

2022-04-16 13:48:28 4627

原创 DIY运动控制器——移植grbl(软件架构、脉冲产生)

移植grbl到stm32

2022-04-16 11:49:04 12505 13

原创 基于STM32构建EtherCAT主站(SOEM方案)6

基于stm32构建ethercat主站

2021-12-22 20:47:36 2037 3

原创 基于STM32构建EtherCAT主站(SOEM方案)5

基于stm32构建ethercat主站

2021-12-22 20:36:56 2528 1

原创 基于STM32构建EtherCAT主站(SOEM方案)4

基于stm32构建ethercat主站

2021-12-22 20:28:49 5423

原创 基于STM32构建EtherCAT主站(SOEM方案)3

基于stm32构建ethercat主站

2021-12-22 20:07:55 5218

原创 基于STM32构建EtherCAT主站(SOEM方案)2

基于stm32构建ethercat主站

2021-12-22 19:44:22 11120 12

原创 grbl源码解析——速度前瞻(2)

本文参考了两篇论文《基于运动控制卡的PC数控进给速度前瞻控制_刘青山》、《嵌入式数控系统速度前瞻规划算法研究_游达章》planner_recalculate if (!(block->condition & PL_COND_FLAG_SYSTEM_MOTION)) { float nominal_speed = plan_compute_profile_nominal_speed(block); plan_compute_profile_parameters(block,

2021-10-13 18:01:16 4477 4

原创 grbl源码解析——速度前瞻(1)

本文参考了两篇论文《基于运动控制卡的PC数控进给速度前瞻控制_刘青山》、《嵌入式数控系统速度前瞻规划算法研究_游达章》plan_buffer_line速度前瞻位于直线、圆弧插补之后,首先是通过plan_buffer_line(float *target, plan_line_data_t *pl_data)函数进行拐点处的速度计算。uint8_t plan_buffer_line(float *target, plan_line_data_t *pl_data){ // Prepare and

2021-10-13 17:54:14 8928 2

原创 grbl源码解析——圆弧插补

uint8_tgc_execute_line(char *line)函数,对G02,G03代码进行解析,目的是求出圆心坐标。接着调用mc_arc函数进行后续数据处理。// position == current xyz, target == target xyz,// offset == offset from current xyz, axis_X defines circle plane in tool space, axis_linear is// the direction of heli

2021-10-13 17:40:53 4766

原创 matlab调用c的dll动态链接库_环境设置

在matla和c混合编程时,用vs编译dl阶段可能会出现如下报错,此时需要对vs环境进行配置错误 LNK2019 无法解析的外部符号 mxCreateString_800,该符号在函数 ReadFrameData 中被引用 dllfile 错误 LNK2019 无法解析的外部符号 mxGetData_800,该符号在函数 ReadData 中被引用 dllfile 错误 LNK2019 无法解析的外部符号 mxSetField_800,该符号在函数 ReadData 中被引用 dllfile 错

2021-01-05 20:21:34 1037 1

原创 matlab调用c的dll动态链接库

1创建动态链接库平台vs2017编写程序cal.h文件#ifndef _CAL_H#define _CAL_Htypedef struct hello{ double add1; double add2; double sum;}hello;#define DLLEXPORT __declspec( dllexport )DLLEXPORT void add(hello * x, double a, double b);#endifcal.c文件#include

2021-01-04 20:35:52 1385

原创 S型加减速算法,基于matlab仿真(2)

2021-01-04 20:10:11 1776

原创 S型加减速算法,基于matlab仿真(1)

公式推导加速度推导速度推导位移推导

2021-01-04 19:18:16 2553

原创 基于STM32构建EtherCAT主站(SOEM方案)1

最近两月的周末,本人将SOEM主站移植到了STM32上,在free run模式下运行正常,可以驱动倍福的io从站;在DC模式下存在一些bug,只能驱动一部分的伺服驱动器。准备在博客上记录一些移植过程,和大家分享一下,肯定会有一些说的不对的地方,欢迎大家批评指正。整个移植过程其实和将lwip移植到stm32上的方法类似,SOEM主站在设计时就采用了硬件抽象层、操作系统抽象层的架构,因此改一下osal、oshw、nicdrv这几部分的代码就可以了。当然了,移植过程中参考了许多网上资料(不限于以下几个)。在

2020-12-05 18:23:33 11511 14

原创 stm32f767 nucleo串口通讯显示乱码

在stm32f767 nucleo上移植野火的stm32f767串口通讯程序,一直显示乱码。由于nucleo板子并没有焊接25M晶体振荡器,而是使用了板上的stlink输出的8Mhz的时钟,因此需要对时钟进行重新配置。系统时钟设置对了,可是还是显示乱码,这是为什么呢???这个问题折磨了我整整两天,反复查看代码,阅读手册,就是没整明白。也许是老天爷也看不下去了吧,在一个偶然的机会下我点击了MDK的配置选项,一刹那间,我似乎找到了问题所在。哈哈,问题就这样轻松解决了,下图就是那个困扰了我多日的原因

2020-09-26 20:21:10 443

原创 EtherCAT igh主站控制松下伺服(csp模式)

完整代码#include <errno.h>#include <signal.h>#include <stdio.h>#include <string.h>#include <sys/resource.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include <sys/mman.h>#inclu

2020-09-06 10:27:49 5895 14

原创 ubuntu14.04、xenomai3.1、ethercat igh构建主站(3)

这篇主要写了一个小例子的运行。我把完整的工程项目上传到了CSDN上。分享两个ethercat igh master采用倍福的EL2008,运行效果如下图所示。Makefile之前有人问我怎么编译?我写了一个Makefile,在工程目录输入make就可以了。代码如下:CC = x86_64-linux-gnu-gccINCPATH = -I./igh-output/include -I./xenomai-Output/include -I./xenomai-Output/inc

2020-06-29 12:51:38 4530 6

原创 ubuntu14.04、xenomai3.1、ethercat igh构建主站(2)

我是在i9 9900k的主机上编译的linux内核、xenomai以及ethercat igh。有如下两个版本:1.linux4.9.38+xenomai3.1+ethercat igh2.linux3.14.44+xenomai2.6.5+ethercat igh我分别在i5 6600和i5 4460上进行了测试。都能成功驱动台达ethercat伺服(ASD-A2-0421-E),说明主站可以正常运行。xenomai的实时性方面,i5 4460主机的效果比i5 6600主机好很多。i5

2020-06-29 11:20:02 7290 7

原创 ubuntu14.04、xenomai2.6.5、ethercat igh构建主站

参考文献https://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai.htmlhttps://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html材料linux内核:3.14.44xenomai2.6.5ipipe-core-3.14.44-x86-11.patch一些安装包sudo apt-get install build-essential libncurses5-dev bison fle

2020-06-29 09:49:37 2671 4

原创 ubuntu14.04、xenomai3.1、ethercat igh构建主站(1)

内核选用4.1.18参考文章https://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.htmlhttps://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai.htmlhttps://www.bilibili.com/video/BV1wg4y1z7C2?t=1399第一步./scripts/prepare-kernel.sh --linux=/home/vmuser/workspace/linux-4

2020-06-22 19:27:45 8823 26

原创 EtherCAT igh主站控制埃斯顿伺服(csp模式)

完整代码算了、干脆直接贴代码了。最近都在搞EtherCAT主站、从站的应用,过段日子再分享一些项目中基础的东西。驱动伺服主要还是参考厂商提供的EtherCAT伺服参考手册,基本上都采用CIA402协议,各个厂商的伺服使能、使用步骤都是一样的。#include <errno.h>#include <signal.h>#include <stdio.h>#include <string.h>#include <sys/resource.h>

2020-05-20 10:38:00 6494 13

原创 EtherCAT igh主站控制埃斯顿伺服回零

完整代码#include <errno.h>#include <signal.h>#include <stdio.h>#include <string.h>#include <sys/resource.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>#include <sys/mman.h>#inclu

2020-05-20 10:28:11 2429 1

原创 EtherCAT igh "Fatal Sync Error"——0x002C,0x001A

问题还没解决,后续会跟进。打算记录一下调试过程,以防后面忘记。当然也希望有朋友能指点我一下,哈哈。使用igh进行开发,遇到了一个报错,这种报错无规律可言,测试的时候,有时会出现,有时不出现。这个问题,我问了一个网友,他的回答如下:EtherCAT从站有个本地时钟(是个定时器,1ms一次中断,这个中断函数会去喂狗,就是累加一个数),sync会去清零这个累加数(清除喂狗的次数)。当喂狗的次数(...

2019-12-30 16:12:46 3105 18

原创 EtherCAT igh函数尝试

尝试igh函数的功能,加深对不同函数的认识,总结相关函数的用法。1.ecrt_master_get_slave/** Obtains slave information. * * Tries to find the slave with the given ring position. The obtained * information is stored in a structure...

2019-12-06 10:52:13 1399

原创 EtherCAT igh主站控制3个台达asdaa2伺服转圈圈

1.查看ASDA的PDO映射 打开ASDA的Delta_ASDA2-E_rev4-00_XML_TSE_20160620.xml文件 修改main.c的pdo部分/* Master 0, Slave 0 * Vendor ID: 0x000001dd * Product code: 0x10305070 * Revision number: 0x02040608...

2019-12-03 15:09:45 5896 14

原创 EtherCAT igh源码的ecrt_slave_config_dc()函数的理解。

总结一下自己对igh的ecrt_slave_config_dc()函数的理解。参考了igh的example里的“dc_user例程”。例程里有这样一处代码:// configure SYNC signals for this slave ecrt_slave_config_dc(sc, 0x0700, PERIOD_NS, 4400000, 0, 0);在slave_config.c文件...

2019-12-03 14:18:26 4931 3

原创 POSIX创建终止线程

本文参考《嵌入式Linux开发教程》和《Linux/UNIX系统编程手册》。创建线程int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);thread 用来指向新创建线程的 ID;attr 用来表示一个封装了线程各种属性的属性...

2019-07-27 15:56:27 193

原创 POSIX信号量

本文参考《嵌入式Linux开发教程》和《Linux/UNIX系统编程手册》。多进程编程中需要关注进程间的同步及互斥问题。同步是指多个进程为了完成同一个任务相互协作运行,而互斥是指不同的进程为了争夺有限的系统资源(硬件或软件资源)而相互竞争运行。信号量是用来解决进程间同步与互斥问题的一种进程间通信机制,它是一个特殊的变量,变量的值代表着关联资源的可用数量。若等于0 则意味着目前没有可用的资源。...

2019-07-26 11:17:56 294

原创 POSIX共享内存

本文参考《嵌入式Linux开发教程》和《Linux/UNIX系统编程手册》。共享内存概述共享内存是允许两个不相关的进程访问同一个逻辑内存的进程间通信方法,是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间的共享内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用 C语言 malloc()...

2019-07-26 09:46:16 464

原创 System V IPC与POSIX IPC

本文参考《Linux/UNIX系统编程手册》。System V IPC包括三种不同的进程间通信机制:1.消息队列用来在进程间传递消息。2.信号量允许多个进程同步它们的动作。3.共享内存使得多个进程能够共享内存(即同被映射到多个进程的虚拟内存的页帧)的同一块区域(称为一个段)。POSIX IPC...

2019-07-26 09:02:18 279

原创 linux进程:fork、exce、wait

linux使用fork()来创建一个新进程,fork函数将运行着的进程分裂出另一个子进程,它通过拷贝父进程的方式创建子进程。子进程与父进程有相同的代码空间、文件描述符等资源。进程创建后,子进程与父进程开始并发执行,执行顺序由内核调度算法来决定。fork()函数如果成功创建了进程,就会对父子进程各返回一次,其中对父进程返回子进程的 PID,对子进程返回 0;失败则返回小于 0 的错误码。#i...

2019-07-24 16:10:31 325

原创 基于AM4377的EtherCAT主站控制stm32从站

本文为一个igh小例程,用于控制EtherCAT从站。主站控制3个倍福EL2008从站每秒钟实现1次亮灭,每秒读取stm32从站的AD数据并在串口中打印出来,stm32从站的8路输出由8路输入控制(用key控制led亮灭)。程序参考了igh提供的example。实验设备为安装了xenomai和igh的am4377开发板、倍福EL2008从站和淘宝店家“易元素电子”的stm32从站。igh ...

2019-07-23 11:51:24 4162 20

原创 EtherCAT对象字典分析

EtherCAT开发中,主要通过两款软件查看XML文件,分别是"XML Notepad"和"Altova XMLSpy",两款界面如下:通过对比可以看出Altova XMLSpy软件显示的更为直观,因此我在开发时主要使用此软件。接下来进入正题。通过igh开发EtherCAT应用程序首先必须知道从站的对象字典,我们可以通过igh自带的ethercat软件查看从站的对象字典。实验设备为安装了xe...

2019-07-23 11:08:27 6542

原创 tcpserver开启多线程处理

本例子是《C++socket网络编程大全实战http服务器视频课程》的学习笔记。服务端开辟线程处理对应的客户端消息,用到了c++11中的thread库。main.cpp#include <string.h>#include <stdlib.h>#ifdef WIN32//Windows环境下编译#include <Windows.h>#else//...

2019-07-23 08:53:32 562

原创 c++多线程处理数组

本例子是《VC++Windows多线程实战图片编辑器视频课程》的学习笔记。定义一个大小为1000 * 1000 * 1000的数组,分别用单线程的方法和多线程的方法给数组赋值,并计算两种方法的耗时。_beginthread函数用于创建线程;_endthread函数用于结束线程;WaitForSingleObject函数等待线程结束。使用c++类对线程进行封装。XThread.h#pr...

2019-07-22 20:55:21 4159

原创 服务端socket程序

socket是一种IPC方法,本文实现一个简单的服务端例程,用于了解socket程序框架。socket函数用于创建套接字。bind函数用于分配ip地址和端口号。listen函数将套接字转为可接收连接状态。accept函数受理连接请求。如果在没有连接的情况下调用该函数,则不会返回,直到有连接请求为止。connect函数向服务器端发送连接请求。windows端编写socket,需要调用w...

2019-07-22 16:39:05 654

grbl0.8源码移植

将grbl0.8源码移植于stm32. 学习开源运动控制器软件。

2022-04-16

基于stm32构建EtherCAT主站,采用了开源的soem方案

基于stm32构建EtherCAT主站,将soem方案移植到了stm32上。基本功能测试正常,可以驱动一部分的伺服电机,但也存在一些bug。整体移植方式应该是正确的,具体移植方式将写于CSDN博客中。

2020-12-05

igh_xenomai_demo.zip

内含xenomai2.6.5版本和xenomai3.1版本的两个点灯小例子。外设采用了倍福的EL2008。怎么使用可以参考《ubuntu14.04、xenomai3.1、ethercat igh构建主站》和《ubuntu14.04、xenomai2.6.5、ethercat igh构建主站》两篇博客

2020-06-29

ethercat igh.zip

内含两个版本的ethercat igh master,其中一个支持4.x的内核。 怎么使用可以参考《ubuntu14.04、xenomai3.1、ethercat igh构建主站》和《ubuntu14.04、xenomai2.6.5、ethercat igh构建主站》两篇博客

2020-06-29

linux3.14.44_xenomai2.6.5_igh.zip

基于linux3.14.44内核、xenomai2.6.5、ethercat igh构建主站(安装包)。 博客《ubuntu14.04、xenomai2.6.5、ethercat igh构建主站》的配套资源。

2020-06-29

linux4.9.38_xenomai3.1_igh.zip

基于linux4.9.38内核、xenomai3.1、ethercat igh构建主站(安装包)。 博客《ubuntu14.04、xenomai3.1、ethercat igh构建主站(1)》的配套资源。

2020-06-28

EtherCAT igh主站控制3个台达asdaa2伺服转圈圈

EtherCAT igh主站控制3个台达asdaa2伺服转圈圈。包括伺服使能、控制3个电机转圈圈、每秒读取电机的实际位置、运行90秒自动退出程序。。。 需要编译igh和xenomai环境,才能成功运行程序,代码是完整的。

2019-12-03

基于AM4377的EtherCAT主站控制stm32从站的小程序

基于AM4377的EtherCAT主站控制stm32从站小程序。一个igh小例程,用于控制EtherCAT从站。主站控制3个倍福EL2008从站每秒钟实现1次亮灭,每秒读取stm32从站的AD数据并在串口中打印出来,stm32从站的8路输出由8路输入控制(用key控制led亮灭)。实验设备为安装了xenomai和igh的am4377开发板、倍福EL2008从站和淘宝店家“易元素电子”的stm32从站。

2019-07-23

ethercat从站stm32程序和使用文档,实现了IO、AD、DA功能。

2018年暑期自己搞的项目的一部分,包括基于stm32f407的ethercat从站程序以及配套的XML文件。实现了IO、AD、DA功能。在别人已经实现的ethercat从站功能上,我根据智昂的从站板子添加了AD、DA功能。参考了别人的提供的资料,算是踩在了巨人的肩膀上吧。

2019-07-20

beaglebone(AM335X)igh-ethercat主站小程序

根据igh的官网例程修改而来,在beaglebone上运行,用于控制EL2008的小灯亮灭。beaglebone需要安装xenomai和igh ethercat。

2019-07-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除