{{위키데이터 속성 추적}}
'''EtherCAT''' (이더캣, Ethernet for Control Automation Technology)은 백호프오토메이션(Beckhoff Automation)에서 개발된 이더넷 기반의 [[필드버스]] 시스템이다. 이더캣 프로토콜은 IEC 61158 규약으로 표준화되었으며, 자동화 기술 측면에서 [[실시간 시스템]]을 위한 소프트웨어와 하드웨어 요구사항들을 모두 만족한다.

EtherCAT은 적은 지터(정확한 동기화를 위해 1µs 이하), 매우 빠른 정보 업데이트 속도(사이클 타임 100 µs 이하), 하드웨어 구성 비용 감소 등을 요구하는 이더넷 프로토콜 기반의 자동화 소프트웨어를 위해 개발하였다.

EtherCAT은 표준 이더넷 패킷 또는 프레임 구조를 이용하며, 약간 변형 시켜서 사용한다. 특별히 EtherCAT에서 사용하는 프레임을 EtherCAT Telegram(이더캣 텔레그램)이라고 표현한다.

== EtherCAT 기능 ==

=== 기능적인 원리 ===
[[파일:EthercatOperatingPrinciple.webm|섬네일|프레임 과정]]
EtherCAT을 사용하면서, 표준 Ethernet 패킷 또는 프레임 ([[IEEE 802.3|IEEE802.3]])은 더 이상 각 노드에서 처리해야 할 데이터로 수신, 해석, 복사할 필요가 없어졌다. EtherCAT 슬레이브 디바이스는 텔레그램이 디바이스를 통과하는 동안 각 슬레이브에게 전달된 데이터를 읽고 "즉시" 처리한다. 마찬가지로, 각 슬레이브의 추가 데이터 또한 텔레그램이 통과하는 동안 즉시 추가된다. 한 프레임이 처리되기전에는 완전히 수신되지 않는다; 대신에 가능한한 빠르게 처리를 시작한다. 전송 또한 아주 작은 시간의 지연만으로 수행된다. 일반적으로 전체 [[컴퓨터 네트워크|네트워크에]] 단 하나의 프레임만으로 모든 슬레이브에 전달할 수 있다.

'''ISO/OSI 참조 모델'''

{| class="wikitable" style="margin: 1em auto 1em auto;"
<!--|-
! colspan="5" | OSI Model-->
|-
! colspan="2" | [[OSI 모형|ISO/OSI Layer]]
! colspan="2" | EtherCAT

|-
! rowspan="4" | Host<br />layers
| style="background:#d8ec9b;" | 7. 응용 (Application)
| style="background:#d8ec9c; vertical-align: top;" | [[HTTP]]*, [[FTP]]*
| style="background:#d8ec9c; vertical-align: top;" |
* Cyclic Data Exchange
* Mailbox Acyclic Data Access

|-
| style="background:#d8ec9b;" | 6. 표현 (Presentation)
| style="background:#d8ec9b; vertical-align: top;" | —
| style="background:#d8ec9b; vertical-align: top;" | —
|-
| style="background:#d8ec9b;" | 5. 세션 (Session)
| style="background:#d8ec9b; vertical-align: top;" | —
| style="background:#d8ec9b; vertical-align: top;" | —

|-
| style="background:#e7ed9c;" | 4. 전송 (Transport)
| style="background:#e7ed9c; vertical-align: top;" | [[전송 제어 프로토콜|TCP]]*
| style="background:#e7ed9c; vertical-align: top;" | —

|-
! rowspan="4" | Media<br />layers
| style="background:#eddc9c;" | 3. 네트워크 (Network)
| style="background:#eddc9c; vertical-align: top;" | [[인터넷 프로토콜|IP]]*
| style="background:#eddc9c; vertical-align: top;" | —

|-
| style="background:#e9c189;" rowspan="2" | 2. 데이터 링크(Data Link)
| style="background:#e9c189; vertical-align: top;" colspan="2" |
* Mailbox/Buffer Handling
* Process Data Mapping
* Extreme Fast Auto-Forwarder
|-
| style="background:#e9c189; vertical-align: top;" colspan="2" | Ethernet MAC

|-
| style="background:#e9988a;" | 1. 물리 (Physical)
| style="background:#e9988a; vertical-align: top;" colspan="2" | [[이더넷#자주 쓰이는 이더넷 방식|100BASE-TX]], [[이더넷#자주 쓰이는 이더넷 방식|100BASE-FX]]

|-
| colspan="4" | *선택 적인
|}
<!----- {{Clear}} ------->

그림 설명:
* TCP/IP 스택은 일반적인 fieldbus 장치에서 필요로 하지 않는다.
* EtherCAT 마스터는 EtherCAT 슬레이브의 이름, 데이터 타입 등을 포함한 모든 데이터에 복잡한 도구 없이도 접근이 가능하다.
* EtherCAT은 표준 이더넷(IEEE802.3-Ethernet MAC, PHY)을 별다른 가공없이 사용한다.

=== 프로토콜 ===
EtherCAT [[통신 프로토콜|프로토콜]]은 데이터를 처리하기 위해 최적화되었으며, Ethertype 0x88a4 형태의 IEEE 802.3 표준 이더넷 프레임내에서 직접 전송된다. 다수의 서브 텔레그램으로 구성될 수 도 있으며, 각 텔레그램은 최대 4GB 크기까지 매핑가능한 논리적인 메모리 공간을 제공한다. 데이터 시퀀스는 네트워크 상의 노드들의 물리적 순서(또는 위치)와 상관이 없으며; 어떠한 순서로 배열되어도 전달되는데는 지장이 없다. [[브로드캐스트]], [[멀티캐스트]] 및 통신은 EtherCAT 슬레이브 간에 가능하긴 하지만, 반드시 EtherCAT 마스터 디바이스에 의해서만 가능하다. 만약 [[IP]] [[라우팅]]이 필요하다면, EtherCAT 프로토콜을 [[사용자 데이터그램 프로토콜|UDP]]/[[인터넷 프로토콜|IP]] 데이터그램에 넣을 수도 있다. 이는 이더넷 프로토콜 스택에서 EtherCAT 시스템으로 전달 하는 등 어떠한 제어도 가능하게 해준다.

=== 성능 ===
각 슬레이브 장치의 호스트 [[마이크로프로세서|마이크로프로세서가]] 프로세스 상태 등 주기적인 이더넷 패킷 전송과 관련된 처리에 관여하지 않으면서 빠른 사이클 타임을 가질 수 있게 되었다. 모든 프로세스 데이터 통신은 각 슬레이브 하드웨어 컨트롤러에서 처리된다. 기능적인 원리가 결합되어 이루어낸 EtherCAT 고성능 분산 I/O 시스템 : 1000개의 분산 [[디지털]] I/O와 프로세스 데이터를 교환하는데 걸리는 시간 약 30µs, 이는 일반적인 이더넷에서 100Mbit/s 속도로 125 바이트를 전송하는데 걸리는 시간이며, 100개의 servo 모터를 최대 10kHz 빈도로 축 데이터 업데이트를 할 수 있는 속도이다. 전형적인 네트워크의 업데이트 빈도는 1-30 kHz 지만, PC의 DMA 부하가 너무 높은 경우, EtherCAT을 이용하여 더 느린 사이클로 동작하도록 사용할 수 있다.

== 외부 링크 ==
* [http://www.ethercat.org EtherCAT Technology Group]
* [http://openethercatsociety.github.io Open EtherCAT Society], [[오픈 소스|open source]] Master and Slave EtherCAT stacks for the embedded market
* [https://web.archive.org/web/20170721012806/http://etherlab.org/en/ethercat/index.php Open Source EtherCAT Master for Linux/Real Time Kernel]
'''EtherCAT, Beckhoff and TwinCAT Forums on LinkedIn'''
* [http://www.linkedin.com/groups?mostPopular=&gid=93788 EtherCAT Group]
* [http://www.linkedin.com/groups?mostPopular=&gid=144416 Beckhoff Automation Group]
* [http://www.linkedin.com/groups?mostPopular=&gid=1860933 TwinCAT Developers Group]
* [http://www.linkedin.com/groups?mostPopular=&gid=2767244 TwinCAT Service & Solution Providers Group]
* [http://www.linkedin.com/groups?mostPopular=&gid=3080848 TwinCAT Developers Jobs Group]

[[분류:이더넷]]
[[분류:산업용 이더넷]]