加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

瑞萨RZ/G2L开发板在工控领域的应用-米尔开发板实现基于SOEM的EtherCAT主站

2023/08/16
2285
阅读需 25 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本文介绍【米尔MYD-YG2LX开发板】在工控领域的应用,实现基于SOEM的EtherCAT主站。开发环境基于WSL2。

下载代码

git clone ‍https://github.com/OpenEtherCATsociety/SOEM‍

PC端

编译

cd SOEM/
export CC=gcc
mkdir build_pc
cd build_pc/

cmake ..
lhj@lhj:~/SOEM/build_pc$ cmake ..
-- The C compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- OS is linux
-- LIB_DIR: lib
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lhj/SOEM/build_pc
lhj@lhj:~/SOEM/build_pc$

make
lhj@lhj:~/SOEM/build_pc$ make
Scanning dependencies of target soem
[ 4%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.o
[ 9%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.o
[ 14%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.o
[ 19%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.o
[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.o
[ 28%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.o
[ 33%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.o
[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.o
[ 42%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.o
[ 47%] Building C object CMakeFiles/soem.dir/osal/linux/osal.c.o
[ 52%] Building C object CMakeFiles/soem.dir/oshw/linux/nicdrv.c.o
[ 57%] Building C object CMakeFiles/soem.dir/oshw/linux/oshw.c.o
[ 61%] Linking C static library libsoem.a
[ 61%] Built target soem
Scanning dependencies of target simple_ng
[ 66%] Building C object test/simple_ng/CMakeFiles/simple_ng.dir/simple_ng.c.o
[ 71%] Linking C executable simple_ng
[ 71%] Built target simple_ng
Scanning dependencies of target slaveinfo
[ 76%] Building C object test/linux/slaveinfo/CMakeFiles/slaveinfo.dir/slaveinfo.c.o
[ 80%] Linking C executable slaveinfo
[ 80%] Built target slaveinfo
Scanning dependencies of target eepromtool
[ 85%] Building C object test/linux/eepromtool/CMakeFiles/eepromtool.dir/eepromtool.c.o
[ 90%] Linking C executable eepromtool
[ 90%] Built target eepromtool
Scanning dependencies of target simple_test
[ 95%] Building C object test/linux/simple_test/CMakeFiles/simple_test.dir/simple_test.c.o
[100%] Linking C executable simple_test
[100%] Built target simple_test
lhj@lhj:~/SOEM/build_pc$

部署

生成的文件如下

其中libsoem.a为库文件

test/linux/下的

simple_test,slaveinfo,eepromtool为测试Demo。

lhj@lhj:~/SOEM/build_pc$ tree .
.
|-- CMakeCache.txt
|-- CMakeFiles
| |-- 3.16.3
| | |-- CMakeCCompiler.cmake
| | |-- CMakeDetermineCompilerABI_C.bin
| | |-- CMakeSystem.cmake
| | `-- CompilerIdC
| | |-- CMakeCCompilerId.c
| | |-- a.out
| | `-- tmp
| |-- CMakeDirectoryInformation.cmake
| |-- CMakeOutput.log
| |-- CMakeTmp
| |-- Export
| | `-- share
| | `-- soem
| | `-- cmake
| | |-- soemConfig-noconfig.cmake
| | `-- soemConfig.cmake
| |-- Makefile.cmake
| |-- Makefile2
| |-- TargetDirectories.txt
| |-- cmake.check_cache
| |-- progress.marks
| `-- soem.dir
| |-- C.includecache
| |-- DependInfo.cmake
| |-- build.make
| |-- cmake_clean.cmake
| |-- cmake_clean_target.cmake
| |-- depend.internal
| |-- depend.make
| |-- flags.make
| |-- link.txt
| |-- osal
| | `-- linux
| | `-- osal.c.o
| |-- oshw
| | `-- linux
| | |-- nicdrv.c.o
| | `-- oshw.c.o
| |-- progress.make
| `-- soem
| |-- ethercatbase.c.o
| |-- ethercatcoe.c.o
| |-- ethercatconfig.c.o
| |-- ethercatdc.c.o
| |-- ethercateoe.c.o
| |-- ethercatfoe.c.o
| |-- ethercatmain.c.o
| |-- ethercatprint.c.o
| `-- ethercatsoe.c.o
|-- Makefile
|-- cmake_install.cmake
|-- libsoem.a
`-- test
|-- linux
| |-- eepromtool
| | |-- CMakeFiles
| | | |-- CMakeDirectoryInformation.cmake
| | | |-- eepromtool.dir
| | | | |-- C.includecache
| | | | |-- DependInfo.cmake
| | | | |-- build.make
| | | | |-- cmake_clean.cmake
| | | | |-- depend.internal
| | | | |-- depend.make
| | | | |-- eepromtool.c.o
| | | | |-- flags.make
| | | | |-- link.txt
| | | | `-- progress.make
| | | `-- progress.marks
| | |-- Makefile
| | |-- cmake_install.cmake
| | `-- eepromtool
| |-- simple_test
| | |-- CMakeFiles
| | | |-- CMakeDirectoryInformation.cmake
| | | |-- progress.marks
| | | `-- simple_test.dir
| | | |-- C.includecache
| | | |-- DependInfo.cmake
| | | |-- build.make
| | | |-- cmake_clean.cmake
| | | |-- depend.internal
| | | |-- depend.make
| | | |-- flags.make
| | | |-- link.txt
| | | |-- progress.make
| | | `-- simple_test.c.o
| | |-- Makefile
| | |-- cmake_install.cmake
| | `-- simple_test
| `-- slaveinfo
| |-- CMakeFiles
| | |-- CMakeDirectoryInformation.cmake
| | |-- progress.marks
| | `-- slaveinfo.dir
| | |-- C.includecache
| | |-- DependInfo.cmake
| | |-- build.make
| | |-- cmake_clean.cmake
| | |-- depend.internal
| | |-- depend.make
| | |-- flags.make
| | |-- link.txt
| | |-- progress.make
| | `-- slaveinfo.c.o
| |-- Makefile
| |-- cmake_install.cmake
| `-- slaveinfo
`-- simple_ng
|-- CMakeFiles
| |-- CMakeDirectoryInformation.cmake
| |-- progress.marks
| `-- simple_ng.dir
| |-- C.includecache
| |-- DependInfo.cmake
| |-- build.make
| |-- cmake_clean.cmake
| |-- depend.internal
| |-- depend.make
| |-- flags.make
| |-- link.txt
| |-- progress.make
| `-- simple_ng.c.o
|-- Makefile
|-- cmake_install.cmake
`-- simple_ng
29 directories, 100 files
lhj@lhj:~/SOEM/build_pc$

开发板端

编译

cd SOEM/
export CC=aarch64-linux-gnu-gcc
mkdir build

cd build/

cmake ..
lhj@lhj:~/SOEM/build$ cmake ..
-- The C compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc
-- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- OS is linux
-- LIB_DIR: lib
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lhj/SOEM/build
lhj@lhj:~/SOEM/build$

make
lhj@lhj:~/SOEM/build$ make
Scanning dependencies of target soem
[ 4%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.o
[ 9%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.o
[ 14%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.o
[ 19%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.o
[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.o
[ 28%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.o
[ 33%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.o
[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.o
[ 42%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.o
[ 47%] Building C object CMakeFiles/soem.dir/osal/linux/osal.c.o
[ 52%] Building C object CMakeFiles/soem.dir/oshw/linux/nicdrv.c.o
[ 57%] Building C object CMakeFiles/soem.dir/oshw/linux/oshw.c.o
[ 61%] Linking C static library libsoem.a
[ 61%] Built target soem
Scanning dependencies of target simple_ng
[ 66%] Building C object test/simple_ng/CMakeFiles/simple_ng.dir/simple_ng.c.o
[ 71%] Linking C executable simple_ng
[ 71%] Built target simple_ng
Scanning dependencies of target slaveinfo
[ 76%] Building C object test/linux/slaveinfo/CMakeFiles/slaveinfo.dir/slaveinfo.c.o
[ 80%] Linking C executable slaveinfo
[ 80%] Built target slaveinfo
Scanning dependencies of target eepromtool
[ 85%] Building C object test/linux/eepromtool/CMakeFiles/eepromtool.dir/eepromtool.c.o
[ 90%] Linking C executable eepromtool
[ 90%] Built target eepromtool
Scanning dependencies of target simple_test
[ 95%] Building C object test/linux/simple_test/CMakeFiles/simple_test.dir/simple_test.c.o
[100%] Linking C executable simple_test
[100%] Built target simple_test
lhj@lhj:~/SOEM/build$

部署

cp libsoem.a /mnt/d
cp test/linux/simple_test/simple_test /mnt/d
cp test/linux/slaveinfo/slaveinfo /mnt/d

将上述文件rz导入开发板

chmod +x simple_test slaveinfo

运行

root@myir-yg2lx:~# ./slaveinfo eth0
SOEM (Simple Open EtherCAT Master)
Slaveinfo
Starting slaveinfo
ec_init on eth0 succeeded.
No slaves found!
End slaveinfo, close socket
End program
root@myir-yg2lx:~# ./simple_test eth0
SOEM (Simple Open EtherCAT Master)
Simple test
Starting simple test
ec_init on eth0 succeeded.
No slaves found!
End simple test, close socket
End program
root@myir-yg2lx:~#

总结

本开发板接口资源丰富,性能强,特别适合工控领域的应用,比如作为EtherCAT主站。由于没有从站,所以暂时未能演示和从站通讯的功能。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
CM200C32768DZFT 1 Citizen Finedevice Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 4 PIN
$1.56 查看
M24512-RDW6TP 1 STMicroelectronics 512 Kbit serial I<sup>2</sup>C bus EEPROM

ECAD模型

下载ECAD模型
$0.63 查看
ECS-80-10-30B-CWN-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal,

ECAD模型

下载ECAD模型
$0.92 查看

相关推荐

电子产业图谱

米尔电子,是一家专注于嵌入式处理器模组设计、研发、生产和销售于一体的国家级高新技术企业,也被评为专精特新企业。米尔电子深耕嵌入式领域10多年,致力于为企业级客户提供基于ARM、FPGA、RISC-V和AI等各种架构,稳定可靠的处理器模组,满足客户大批量产品应用部署的需求,同时为客户提供产品定制设计、行业应用解决方案和OEM的一站式服务。 米尔英文简称“MYIR”,是“Make Your Idea Real”第一个大写字母的缩写。我们的理念是“专业服务助力客户成功”,目前米尔已通过专业高效的服务,帮助全球数万家企业的产品成功上市。