Ethercat untuk pemula

Beberapa waktu yang lalu, kami memiliki sebuah objek yang kerangka acuannya menyertakan persyaratan: "protokol Ethercat". Dalam proses mencari informasi, saya naik ke Habr dan terkejut karena tidak ada penguraian protokol ini di sana. Dan secara umum, informasi tentang dia agak terfragmentasi (melihat ke depan - saya hanya mencari di tempat yang salah). Kami membuat proyek, dan artikel ini ditujukan untuk "saya yang lebih muda", sebuah upaya untuk menghemat waktu bagi orang lain yang akan menggunakan atau hanya tertarik dengan protokol ini.



Satu-satunya peringatan adalah bahwa saya akan menjelaskan tingkat protokol yang agak rendah (Lapisan Data dalam terminologi EtherCAT). Karena dialah yang kami butuhkan dan kami membatasi diri kami padanya. Protokol Lapisan Aplikasi seperti CanOPEN-over-EtherCAT (CoE) akan tetap tidak terdeskripsikan (untuk saat ini?).





EtherCAT dalam satu kalimat



Sangat mudah untuk meng-google-nya, tapi demi pemesanan saya akan mengatakannya dengan kata-kata saya sendiri. EtherCAT adalah bus komunikasi industri dengan throughput tinggi (100 Mbit / s) dan kecepatan respons (beberapa mikrodetik untuk lusinan perangkat dalam satu saluran, dipisahkan oleh puluhan meter), menggunakan Ethernet pada level rendah, tetapi pada saat yang sama berbeda dari konsep Ethernet biasa. menjawab".



Ethernet — , , . EtherCAT — , ( EtherCAT-) , .



, , . — , . — , , — UDP, EtherCAT . EtherCAT- — , — ARP . EtherCAT-.





"" , . , .



, — Infineon XMC4300\4800 Microchip LAN9252. ( - ), — EtherCAT ( ).

EtherCAT XMC4800 Relax EtherCAT Kit. ? — , ( ) .





.



:





WireShark. , , .



, . -, , , wkc2 APWRw. : EtherCAT_Communication_EN.pdf. — ethercat.org . EtherCAT association. , ( NDA, Beckhoff - ), , .

— , .



,



-, , Ethercat, Ethercat. , Vendor ID. , . https://ethercat.org/en/membership_application.html



VendorID! , VendorID . — "", .. EtherCAT . - , - — .



ethercat



, . — . . ?



4 , 2 (port 0 port 1). :





: , ( ). . 0 ethercat processing unit, , .



, ethercat , port0 , port 0, ethercat processing unit, .. port0 .





:





port0 port1, port0 , .. , (? 0) .



.





? , — Ethercat .



. ""? . — ethernet . . ? , - , : — . — ( ).



, . , , , — "" 1, 0 . — ethercat. , , .



, "4- " "" , , .



, , "". Ethernet — \ . IP ( ARP ), MAC . 4 .



, infineon, microchip 2.





ethercat — Beckhoff 4- ethercat :



https://www.beckhoff.com/ru/default.htm?ethercat/ek1100.htm

https://www.beckhoff.com/ru/default.htm?ethercat/ek1122.htm





, , - ethernet switch. , ( ).



\. Ethercat — broadcast MAC , . — ( ), , , — , .



slave — DPRAM



, slave — , . Infineon , SPI. 4 ( 0x1000) — , ethercat, .



XMC4800 8





( ) , EtherCAT . , .



( XMC), :



  • 0x000 — TYPE = 0x98 ( )
  • 0x010 — STATION_ADR, ( , )
  • 0x040 — RESET_ECAT, .
  • 0x100 — DL_CONTROL, (\)
  • 0x110 — DL_STATUS, ( )

    . .


master'a — ethercat .



. ethercat .

:





, ( TCP UDP, 0x88A4), UDP . UDP ( ethercat ), Ethercat — - UDP .



:





, Working counter (WKC).





Wkc — . , wkc wkc ( wkc ). , , BRD " " wkc .



  • Cmd — . , .
  • Idx — , . . SOEM \.
  • Address — . Cmd — 16- ADP ADO ( ), 32- (Logical Addr).
  • Len — .
  • C, R, M, IRQ — , — . SOEM .


, Cmd. . . BRD BRD.



APxx . ADP " ". ? , 0x0000 .
FPxx . STATION_ADR ADP
Bxx . . , , OR . .. , 0
Lxx . FMMU, 32- , . .


xxRD . ( )
xxWR . ,
xxRW . LRW - , . .
xxRMW . ADP (. ) , . LRW .


SyncManager



EtherCAT ( ) SyncManager.



SyncManager (SM) — ethercat , .

0x800. SM 8 , .. 0x800-0x807 SM1, 0x808-0x80F SM2 . XMC4800 8 SyncManager.



— mailbox . . , .



Mailbox — - ethercat. , .



Buffered — . .



  • Mailbox Read. — ( WKC=0). ( ) — - ( WKC=0). ( ) — ( ), (WKC 1) .
  • Mailbox Write. . , , ( ) WKC=0.


  • Buffered Read. . , . , .. SyncManager 0x1000-0x1010, 0x1000-0x1030. 0x1000-0x1010, , .
  • Buffered Write. , . .. , , .


FMMU



Ethercat, LRW. Fieldbus Memory Management Unit (FMMU). . SyncManager, . , . , , , , StartBit 0, EndBit — 7.



, . FMMU0 0x1000 ( ), 0x12345678+4* , 4 , READ. FMMU0 0x1000 ( ), 0x12345678+400+4* , WRITE. LRW 0x12345678, 800 , . . , , ( slave2slave communication), .



, FMMU , SyncManager .





EtherCAT Beckhoff . EEPROM . AL_STATUS, EEPROM . CanOPEN-over-EtherCAT(CoE) \. Ethernet-over-EtherCAT(EoE) Files-over-EtherCAT (FoE) . ESI- c VendorID . . , , EtherCAT , , .




All Articles