1. 程式人生 > >Ethercat學習日記

Ethercat學習日記

SSC簡介

供應商:德州儀器公司(0xe000059d)。

版本:1.0.0.7

注:這是一個自動化的配置和提供的檔案或檔案碎片,可以新增這是不覆蓋的許可證從Beckhoff自動化有限公司.

如果程式碼應設定在am335x executes從屬裝置(CPU:ARM Cortex A8)。應用程式應該執行在冰/ IDK評估板

從德州儀器和需要一個建設專案中,IA的SDK。

景區簡介

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  

AM335TI的晶片,我所用的STM32ST的。

無效的版本,要求5.0

12.3.2014

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

找到了所需的檔案

Configuring TwinCAT For AM335x

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

1

 把zjz的main函式編譯通過了

#include "stm32f4xx.h"

#include "stm32f4xx_conf.h"//新增之後exit和rcc中幾個引數未定義的錯誤解決了~

 2

STM32的問題 RCC_Configuration()

在3.0版本前的庫中,這個一般都是必須的配置的,在3.0以後的版本中出現了個stm32f10x.h的函式,將時鐘配置定為預設的,在main函式中不直接使用這個函數了

3

在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)是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為了支援作業系統,使之能夠更好的運行於硬體主機板。

暫時更改了rccgpio標頭檔案,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從站搭建指南(中英版).pdfAN-ET9300.pdf

20141215日星期一

Link成功

複製整個工程然後進行編譯實現的

但是編譯不成功。

2014年12月16日 17日18日

一直在進行從站程式碼的熟悉以及註釋。。。

對main函式有了大致瞭解。

相關工作見從站程式碼解讀

20141219日星期五

想對現有的工程進行編譯,對我需要改的程式碼部分進行定位

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

20141222日星期一

關於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"

這些東西在哪裡???