倍福Ethercat学习日记

简介: 倍福Ethercat学习日记

SSC简介

供应商:德州仪器公司(0xe000059d)。

版本:1.0.0.7

注:这是一个自动化的配置和提供的文件或文件碎片,可以添加这是不覆盖的许可证从Beckhoff自动化有限公司.


如果代码应设置在am335x executes从属设备(CPU:ARM Cortex A8)。应用程序应该运行在冰/ IDK评估板

从德州仪器和需要一个建设项目中,IA的SDK。

processors.wiki.ti.com/index.php/A…


景区简介

pru-icss EtherCAT固件实现了EtherCAT从站控制器的第2层的功能和提供了EtherCATASIC的功能集成到am3357 / am3359 SOC中IP pru-icss。

目的和范围

本文档的目的是帮助开发者移植的EtherCAT栈钛am335x SOCS。

目标观众

利用TI ESC在他们的产品系统集成商

EtherCAT栈供应商支持TI ESC

术语和缩写

普拉斯:可编程实时单元子系统

pru-icss:可编程实时单元的工业通信子系统与工业通信支持普拉斯

ESC:EtherCAT从站控制器

ECAT:EtherCAT

PDI:处理数据接口(主机接口,ESC)

HRT:高实时性

SRT:软实时

NOTE3:  Refer tosdk\protocols\ethercat_slave\ecat_appl\EcatStack\ecat_appl_cnfg.h for PINMUXconfiguration for AM335x ICE/IDK platforms

AM335是TI的芯片,我所用的STM32是ST的。

无效的版本,要求5.0

12.3.2014

下载了新的版本am335x_sysbios_ind_sdk_01.01.00.05_sw_manifest_for eval

找到了所需的文件

processors.wiki.ti.com/index.php/C…

Configuring TwinCAT For AM335x

processors.wiki.ti.com/index.php/A…

AM335x EtherCAT firmware API guide

EtherCAT application - SoftwareArchitecture

基于EtherCAT支持从接入层

sdk\protocols\ethercat_slave\ecat_appl\EcatStack\tiescbsp.c

sdk\protocols\ethercat_slave\include\tiescbsp.h

APIs for SSC

sdk\protocols\ethercat_slave\ecat_appl\EcatStack\tieschw.c

sdk\protocols\ethercat_slave\include\tieschw.h


2014.12.4


把zjz的main函数编译通过了

#include "stm32f4xx.h"

#include "stm32f4xx_conf.h"//添加之后exit和rcc中几个参数未定义的错误解决了~


STM32的问题 RCC_Configuration()

在3.0版本前的库中,这个一般都是必须的配置的,在3.0以后的版本中出现了个stm32f10x.h的函数,将时钟配置定为默认的,在main函数中不直接使用这个函数了


在pudn下载了一个适用于stm32的ethercat程序

该程序编译通过。想初步先改成适用于我所需型号的项目文件

因为下载的程序里没有user文件夹,我将原来编译的复制进新的程序。但是为了防止重复,去掉了几个文件

屏蔽掉了         #if !defined(STM32F40_41xxx) && !defined (STM32F427_437xx) && !defined(STM32F429_439xx) && !defined (STM32F401xx)

//      #error "Please select first the target STM32F4xx device used in yourapplication (in stm32f4xx.h file)"

//      #endif

至此编译通过

12.5.2014

错误都在bsp.c

12.8.2014

周一

把工程目录改好以后,就可以编译了~

Bspc有错误

Link也有错误

2014年12月9日星期二

BSP( Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。

暂时更改了rcc和gpio头文件,bsp不再报错

Visual Studio

当我按照提示,在'Options for Target - Utilities'里面设置了output 的名称之后,又有了新的问题

更改了目录之后,问题解决

又有了新的问题

先不解决了

2014年12月10日星期三

先是通过修改bsp,c..编译通过

是参考stm32的固件库进行的对应修改

但是不一定对,要参考相应的硬件。。。

接下来进行从站代码配置

·        实施方面 ·        4.1 我们想实施一个EtherCAT从站设备,应该如何开始?

可以参考EtherCATSlave Implementation Guide(EtherCAT从站实施指南)作为从站实施的开始,请点击这里下载。 该文件涵盖从站实施的起始步骤,包括开发硬件、软件、研讨会和培训、一致性,以及一步步的提示信息。EtherCAT从站协议栈可以从多个供应商获取。Beckhoff将从站协议栈代码(SSC)-源代码免费开放给所有ETG会员。 EtherCAT从站实施套件也可以从相关供应商获取。请在官方EtherCAT产品指南中查询更多从站评估套件:EtherCAT产品页面

·        4.2 我们想实施一个EtherCAT主站设备,应该怎么做呢?

对于主站来讲,你并不需要专用的硬件设备。任何以太网MAC都可以满足要求。EtherCAT对资源消耗非常小,因此也无需特殊的通讯处理器。主站代码可以从多种渠道获得,如一些通过样本代码包提供的免费开放代码,甚至一些包含了RTOS的主站产品。实施服务同样有不同的供应商可以提供。请点击此处了解EtherCAT产品情况。

·        4.3 EtherCAT从站控制芯片的授权如何?

当您从EtherCAT从站控制器供应商那里购买了ESC芯片,所有的EtherCAT功能已经包含在芯片中。对EtherCAT从站设备供应商来说,取得了ESC供应商资格则包含该授权,无需额外的EtherCAT授权费用。

根据EtherCAT从站搭建指南(中英版).pdf和AN-ET9300.pdf

2014年12月15日星期一

Link成功

复制整个工程然后进行编译实现的

但是编译不成功。

2014年12月16日 17日18日

一直在进行从站代码的熟悉以及注释。。。

对main函数有了大致了解。

相关工作见从站代码解读

2014年12月19日星期五

想对现有的工程进行编译,对我需要改的代码部分进行定位

Keil中,根据从pudn下载的适用于stm32f10的代码进行修改,可编译但是有错误。

对从站代码原始版在Vs进行运行,有错误。怀疑是对相应硬件不匹配。

现在

Microchip PIC18F452 Specific Code

This processor is mounted on the Beckhoff SlaveEvaluation Board (Hardware version up to EL9800_2).

1>  e:\graduation\projects\vs2008\1219coe\1219coe\el9800hw.h(28): fatal error C1083: 无法打开包括文件:“pic18.h”:No such file or directory

\

1>  e:\graduation\projects\vs2008\pudnecat\coeappl.c: fatal error C1853: “Debug\1219pudnssc.pch”预编译头文件来自编译器的早期版本,或者预编译头为C++ 而在C 中使用它(或相反)

PIC有很多款单片机,你学的是PIC哪款单片机?头文件都放在编译器的安装目录中,以HI-TECH picc为例:头文件路径为C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include

2014年12月22日星期一

关于am335为ECAT匹配的硬件通道

这些API实现的关键接口ESC仿真固件和EtherCAT协议栈。他们是

在下面的源代码文件

Uint8 HW_Init(void)

通过调用bsp_init描述初始化EtherCAT奴隶接口。等待固件 准备好了。重置事件面具。注册PDI和同步中断处理程序。禁用所有SyncManagers 调用

用PRU-ICSS的硬件通道层

sdk\protocols\ethercat_slave\ecat_appl\EcatStack\tiescbsp.c sdk\protocols\ethercat_slave\include\tiescbsp. H

Wrapper api forssc

固件接口初始化堆栈

bsp_init

2014年12月23日星期二

开始改写tiescappl与tieschw

Tiescappl与el9800appl之间,只有UINT与Uint不同,头文件不同,主要的子函数都相同。

Tieschw与el9800hw之间的区别

关于tieschw

APIs cover following important aspects. Stack - EtherCAT firmware IPC interface EEPROM emulation handling SyncManager properties management for TI ESC HAL SyncManager access and control APIs SyncManager Malibox mode support SyncManager Buffer mode support Special register/memory access handling (NOTE: registers are emulated in memoryby firmware) PRU-ICSS MDIO host side APIs Spinlock APIs for concurrent Host/Firmware shared memory access System Time PDI controlled APIs Timer APIs for EtherCAT stack Mutex APIs for EtherCAT stack Interrupt Management APIs for EtherCAT stack PRU firmware header mapping API Firmware Upgrade APIs for EtherCAT stack

译:

API覆盖以下方面。堆栈EtherCAT固件IPC接口

EEPROM仿真处理

钛ESC哈尔syncmanager性能管理

syncmanager访问和控制接口syncmanager邮箱模式支持

syncmanager缓冲模式支持专用寄存器/存储器访问处理(注:寄存器仿真存储器的固件)

pru-icss MDIO主机端接口自旋锁的API并行主机/固件共享内存访问

系统时间PDI控制APIAPI的EtherCAT栈定时器

互斥的API EtherCAT协议栈API的EtherCAT栈中断管理

保诚固件标头映射API固件升级的API EtherCAT栈

2014年12月24日星期三

描述初始化堆栈固件接口设置-对于PRU-ICSS中断控制器for EtherCAT的应用。数据初始化thePRU记忆。通过触发BSP _ ESC 设置寄存器权限。下载并开始 EtherCAT PRU的固件。EEPROM仿真初始化。初始化命令信号和BSP _互斥gateall触发。

Tiescbsp Debug LOG

1>   e:\graduation\projects\vs2008\test\test\tiescbsp.c(66): error C2337: “TIESC_EEPROM_SIZE”: 未找到属性

在tieschw.h中被定义。。。

//#include <string.h>// For memset/memcpy
//
#include "tiesc_eeprom.h" // header equivalent of ESI bin file
//#include<ti/sysbios/family/arm/a8/intcps/Hwi.h>
//#include<ti/sysbios/gates/GateAll.h>
//#ifndef USE_ECAT_TIMER
//#include<xdc/runtime/Timestamp.h>
//#endif
//#include <xdc/runtime/Types.h>
//
//#include<ti/sysbios/knl/Task.h>
//#include"osdrv_uart.h"
//#include"plat_led.h"
//#include"proxy_pruss_driver.h"
//#include"tiesc_pruss_intc_mapping.h"
//#include"osdrv_spiflash.h"
//#include"plat_utils.h"


相关文章
|
8月前
|
存储 Java
[java编程日记]捕鱼达人(二)
[java编程日记]捕鱼达人
86 0
|
8月前
|
存储 Java
[java编程日记]捕鱼达人(一)
[java编程日记]捕鱼达人
57 0
|
算法 Linux 调度
【C++】刷题日记(day10)
刷题是我们学习编程的一个重要模块,刷题能帮助我们巩固我们学习的知识,能够增强我们的编程水平. 本文总共讲了5题牛客高频的选择题,以及两道牛客编程题,希望大家读后能够有所收获!
【C++】刷题日记(day10)
|
网络协议 网络架构 C++
【C++】刷题日记(day13)
刷题是我们学习编程的一个重要模块,刷题能帮助我们巩固我们学习的知识,能够增强我们的编程水平. 本文总共讲了5题牛客高频的选择题,以及两道牛客编程题,希望大家读后能够有所收获!
【C++】刷题日记(day13)
|
算法 网络协议 网络性能优化
【C++】刷题日记(day12)
刷题是我们学习编程的一个重要模块,刷题能帮助我们巩固我们学习的知识,能够增强我们的编程水平. 本文总共讲了5题牛客高频的选择题,以及两道牛客编程题,希望大家读后能够有所收获!
 【C++】刷题日记(day12)
|
算法 调度 C++
【C++】刷题日记(day11)
刷题是我们学习编程的一个重要模块,刷题能帮助我们巩固我们学习的知识,能够增强我们的编程水平. 本文总共讲了5题牛客高频的选择题,以及两道牛客编程题,希望大家读后能够有所收获!
【C++】刷题日记(day11)
【C++】刷题日记(day2)
每天进步一点点,我们就能遇见更好的自己,开启第二题刷题日记,一起来打卡加油!本文为大家讲解了5道C++高频选择题,2道牛客编程题。希望大家读后能够有所收获。
【C++】刷题日记(day2)
|
存储 SQL 程序员
|
程序员
|
存储 设计模式 Java