Skip to content

TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test

TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test

teddy

Published July 27, 2022

96 UCC

8 WCC

35 VAR

Project description

TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test W5300은 하드웨어적으로 TCP/IP를 구현한 Ethernet Controller이지만 Ethernet 데이터 부분을 사용자 임의?데이터를 보낼수 있는 MACRAW 모드로 구동할 수 있다. MACRAW 모드를 이용하면 임의이 데이터를 보낼수 있는데..?EtherCat 페킷을 보내면 ?EhterCat 통신을 할 수 있다. 특히 TMS320F28335와 같이 실시간 처리가 가능한 DSP를 이용하면 EtheCat구현이 쉬어진다. TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test 아래 표는 EtherCat Frame 데이터 구조이다. 간단히 구조를 살펴 보면 목적지, 출발지 MAC주소와?EtherType에 0x88A4를 사용하고 EtherCat Data를 전송하면 된다. TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test EhterCat Data 필더에는 2Byte의 총 데이터 길이와 Cmd, Idx, Address... 등등의 Data Headerd와 데이터로 채워진다. 데이터는 2+26 번째 버퍼 부터 시작된다. TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test W5300 MACRAW 모드 초기화 Sn_MR_MACRAW 모드로 소켓을 생성하면 된다. 여기서 주의 사항은 MACRAW모드는 반드시 소켓 0번만 가능하다.
void Init_EtheCat(void) { socket(0, Sn_MR_MACRAW, 3000, Sn_MR_MF); }
EtherCat 데이터 전송함수 데이터 송신시 첫?2Byte의 EtherHeader 와 마지막 2Byte CRC는 W5300에서 자동 생성된다. 다만 수신은 모든 페킷이 수신되므로 이부분을 적절히 처리해 주어야 한다.
uint32 ? EtherCatSend(SOCKET s, uint8 * buf, uint32 len) { uint8 status=0; uint8 isr=0; uint32 ret=0;   // check size not to exceed MAX size. if (len > getIINCHIP_TxMAX(s)) ret = getIINCHIP_TxMAX(s); else ret = len;   // copy data wiz_write_buf(s, buf, ret); // send setSn_TX_WRSR(s,ret); setSn_CR(s, Sn_CR_SEND);     // wait SEND command completion while (!((isr = getSn_IR(s)) & Sn_IR_SENDOK)) { status = getSn_SSR(s); if ((status == SOCK_CLOSED) || (isr & Sn_IR_TIMEOUT)) { setSn_IR(s,Sn_IR_TIMEOUT); return 0; } }   // Clear Sn_IR_SENDOK setSn_IR(s, Sn_IR_SENDOK); return ret; }
TMS320F28335, W5300을 이용한?EtherCat 테스트 테스트는 두세트의 이더넷 모듈을 이용해서 스위치를 누르면 EtherCat 페킷으로 데이터를 전송하고 수신된 데이터를 분석해서 LED를 On/Off 하도록 했다. 수신된 데이터는 WireShack를 이용하여 패킷을 캡쳐할 수 있고?EtherCat 데이터를 확인할수 있다. 26번 버퍼부터 데이터 필더 이다. ?테스트에서는 스위치를 누를때 마다 1씩 증가해서 전송하도록 해서 테스트 했다. TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test 그리고 시리얼포트를 이용하여 수신된 페킷을 확인할 수 있다. TMS320F28335 - W5300 MACRAW를 이용한 EtherCat Test TMS320F28335와 W5300 MACRAW모드를 이용한 EtherCat 테스트 동영상
출처: https://nexp.tistory.com/1947 [Engineer's LAB:티스토리]

Comments

Comments