• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Electronics Engineering, Pusan National University, Korea.)



EtherCAT, Cycle time, Linux, Kernel module

1. 서 론

산업용 이더넷 네트워크는 넓은 대역폭, 높은 전송속도, 다양한 토폴로지 지원 및 넓은 호환성 등의 장점으로 기존 필드버스 네트워크를 대신하여 널리 사용되고 있다[1,2]. 특히, Beckhoff에서 개발한 산업용 이더넷 프로토콜인 EtherCAT은 마스터와 슬레이브로 구성되며, 마스터는 별도의 하드웨어를 필요하지 않고 네트워크 인터페이스 카드만으로 구현이 가능하고, 슬레이브는 FPGA나 ASIC으로 구현된 EtherCAT 슬레이브 컨트롤러라는 특정 하드웨어가 요구된다[3].

일반적으로 EtherCAT은 하나의 마스터와 최대 65535개의 슬레이브로 구성되고, 오직 마스터만이 EtherCAT 프레임을 생성하고 슬레이브로 전송한다. EtherCAT 프레임은 표준 이더넷 프레임을 사용하고, 하나의 이더넷 프레임 안에 하나 이상의 EtherCAT 데이터 그램을 포함한다. 마스터가 EtherCAT 프레임을 슬레이브로 전송하면 슬레이브는 프레임이 이동하는 동안 전달된 데이터를 읽고, 전송할 데이터를 프레임에 입력하는 ‘on-the-fly’ 방식을 사용한다. 이로 인해 EtherCAT은 프레임을 처리하는데 별도의 지연이 발생하지 않고 하드웨어 전송에서만 지연이 발생하고, 이더넷의 양방향 전송 기능의 활용으로 실효 데이터 전송률이 100 Mbps 보다 크다[4].

EtherCAT의 높은 전송 효율에도 불구하고, 다축 모션 제어 분야나 전력 제어 분야와 같은 고성능 산업용 응용분야에서는 더 빠른 제어 주기 시간을 요구한다[5,6]. 이러한 문제를 해결하기 위하여 [7]에서는 멀티코어 DSP를 기반 EtherCAT 슬레이브를 개발하여 통신 처리와 제어 알고리즘 수행을 병렬로 처리하여 통신 속도를 향상시킨다. 또한 [8]에서는 임베디드 리눅스 환경에서 마스터 모듈과 이더넷 드라이버를 연결할 수 있도록 EtherCAT 전용 이더넷 드라이버를 개발하여 메모리 복사 시간을 줄이고 통신 속도를 향상시킨다.

이러한 연구 결과에도 불구하고 더욱 빠른 EtherCAT 동작이 요구됨에 따라 본 논문에서는 리눅스 마스터 기반 EtherCAT 네트워크의 통신 속도 향상을 위한 새로운 방법을 제안한다. 제안한 방법은 표준 이더넷 드라이버 대신 [8]에서 제안된 EtherCAT 전용 이더넷 드라이버를 사용하고, 동시에 사용자가 제어 알고리즘 등을 구현하기 위해 작성하는 프로그램인 마스터 사용자 프로그램을 사용자 영역 응용프로그램 대신 커널 영역의 모듈로 작성한다. 이러한 구현 방법은 리눅스 사용자 영역과 커널 영역 사이에 시간 소모가 많은 EtherCAT 데이터 전송을 위한 메모리 복사 동작을 방지하여 EtherCAT 네트워크 동작 주기 성능을 상당히 개선하는 효과를 나타낸다. 리눅스 기반 EtherCAT 마스터와 상업용 EtherCAT 슬레이브를 연결하여 EtherCAT 네트워크를 구성하고 기존의 방법과 제안한 방법에 대하여 최소 통신 주기 측정 실험을 수행하여 제안한 방법의 성능을 검증한다.

본 논문의 구성은 다음과 같다. 2장에서는 리눅스 기반 EtherCAT 마스터의 구조와 마스터 사용자 프로그램을 커널 영역에서 모듈로 작성하는 방법에 대해 기술한다. 3장에서는 실험을 위한 네트워크 구성 방법을 기술하고 실험 결과를 해석한다. 마지막으로 4장에서는 결론을 제시한다.

2. 리눅스 기반 EtherCAT 마스터

본 장에서는 리눅스 기반 EtherCAT 마스터인 IgH EtherCAT 마스터[9]의 구조와 통신 주기 향상을 위하여 마스터 사용자 프로그램을 커널 영역에서 모듈로 작성하는 방법에 대해 기술한다. 그림 1은 IgH EtherCAT 마스터의 구조를 나타낸다. EtherCAT 마스터는 사용자 영역에서 동작하는 마스터 사용자 프로그램과 커널 영역에서 동작하는 마스터 모듈과 이더넷 드라이버로 구성된다. 마스터 사용자 프로그램은 EtherCAT 사용자가 작성하는 프로그램으로 주로 사용자 영역에서 응용프로그램 형태로 구현하고 사용자 영역 응용프로그램이라고 명명한다. 사용자 영역 응용프로그램은 초기화 단계에서 마스터 초기화, 슬레이브 설정 및 EtherCAT 데이터 그램을 구성한다. 또한, 주기 동작 단계에서는 주기적으로 EtherCAT 프레임을 슬레이브로 전송하고 모든 슬레이브를 거쳐 도착한 프레임을 읽고 데이터를 처리한다. 마스터 모듈은 마스터 상태머신에 따라 동작하며 슬레이브가 연결되었을 때 자동으로 슬레이브를 검색하고, 마스터 사용자 프로그램이 시작되면 슬레이브가 동작모드에 진입하도록 슬레이브를 제어한다. 이더넷 드라이버는 마스터 모듈과 직접 데이터를 교환할 수 있는 EtherCAT 전용 이더넷 드라이버와 기존의 표준 이더넷 드라이버를 사용하면서 마스터 모듈과 데이터를 교환할 수 있게 도와주는 Generic 이더넷 드라이버 모듈이 있다.

그림. 1. 리눅스 EtherCAT 마스터의 구조

Fig. 1. Architecture of EtherCAT master for Linux

../../Resources/kiee/KIEE.2020.69.1.184/fig1.png

2.1 EtherCAT 전용 이더넷 드라이버

EtherCAT 마스터에서 표준 이더넷 드라이버를 사용하면 Generic 이더넷 드라이버 모듈로 인해 아무런 수정 없이 EtherCAT 마스터를 동작시킬 수 있지만, 마스터 모듈에서 생성한 EtherCAT 프레임을 표준 이더넷 드라이버를 통해 슬레이브로 전송하기 위하여 Generic 이더넷 드라이버 모듈을 통해야 한다. 마스터 모듈이 직접 이더넷 드라이버를 제어하지 못하여 불필요한 데이터 복사 작업이 동반되며, 표준 이더넷 드라이버에는 EtherCAT 동작에 불필요한 인터럽트 처리 동작이 포함되어 있어 성능 저하의 주요 요인이 된다[2].

이러한 문제를 해결하기 위해 EtherCAT 마스터 모듈이 직접 네트워크 인터페이스를 제어할 수 있도록 표준 이더넷 드라이버를 수정한 EtherCAT 전용 이더넷 드라이버가 제공된다. IgH EtherCAT 마스터는 Intel이나 Realtek 사의 표준 이더넷 드라이버를 수정한 EtherCAT 전용 이더넷 드라이버를 제공한다. 그러나 최근 자동화 분야에서 많이 사용되는 임베디드 플랫폼을 위한 EtherCAT 전용 이더넷 드라이버는 제공되지 않기 때문에 임베디드 플랫폼을 위한 EtherCAT 전용 이더넷 드라이버를 개발하는 것이 필요하다. 본 논문의 성능 실험에서 사용한 TI 사의 임베디드 보드에 적용되는 EtherCAT 전용 이더넷 드라이버 또한 제공되지 않으므로 [8]에서 제안한 방법에 따라 TI 사의 표준 이더넷 드라이버에서 인터럽트 관련 함수를 수정하고 불필요한 메모리 복사를 제거하여 EtherCAT 전용 이더넷 드라이버를 개발하여 사용한다.

2.2 마스터 사용자 프로그램

EtherCAT 마스터 모듈이 커널 영역에서 동작함에 따라 마스터 사용자 프로그램을 사용자 영역에서 응용프로그램으로 구현하면 사용자 영역 응용프로그램에서 호출된 함수는 장치 드라이버를 통해 커널 영역의 마스터 모듈에서 수행되고, 사용자 영역과 커널 영역 사이에서 데이터를 교환하기 위하여 데이터 복사에 많은 시간이 소요된다. 따라서 그림 2에 도시된 것과 같이 마스터 사용자 프로그램을 커널 영역에서 모듈 형태로 구현한 커널 영역 응용 모듈로 작성하여 불필요한 데이터 복사 시간을 줄이고 성능을 개선한다.

그림. 2. 제안한 EtherCAT 마스터 구조

Fig. 2. The proposed architecture of EtherCAT master

../../Resources/kiee/KIEE.2020.69.1.184/fig2.png

마스터 사용자 프로그램을 사용자 영역 응용프로그램에서 커널 영역 응용 모듈로 바꾸기 위해서는 프로그램을 리눅스 커널 영역의 함수를 사용하여 프로그램을 작성한다. 마스터 사용자 프로그램에서 사용하는 EtherCAT 함수들은 사용자 영역과 커널 영역의 함수명이 동일하기 때문에 바꿀 필요 없이 그대로 사용할 수 있다. 그러나 사용자 영역 응용프로그램 중 마스터 초기화, EtherCAT 데이터 그램 구성, EtherCAT 슬레이브 설정, 마스터 활성화하는 초기 단계가 포함된 main() 함수의 초기화 부분을 커널 영역 응용 모듈에서 module_init() 함수에 작성하는 것이 필요하다.

또한, 사용자 영역 응용프로그램은 while 함수를 이용하여 EtherCAT 프레임을 읽고 처리하고 다시 전송하는 과정을 반복하고 delay 함수를 통해 통신 주기를 설정하여 일정한 주기 동작을 구현한다. 그러나 커널 영역 응용 모듈에서는 while 함수와 delay 함수를 통해 주기 동작을 반복하지 않고, module_init() 함수의 초기화 단계에서 타이머 인터럽트를 생성하고 주기를 설정한다. 설정된 주기마다 동작하는 인터럽트 서비스 루틴에 EtherCAT 프레임을 읽고 처리하고 다시 전송하는 주기 동작 단계를 작성하여 주기적으로 슬레이브와 통신한다. 커널 영역 응용 모듈의 동작 순서는 그림 3과 같다.

그림. 3. 커널 영역 응용 모듈의 동작 순서도

Fig. 3. Operation flowchart of kernel space application module

../../Resources/kiee/KIEE.2020.69.1.184/fig3.png

마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 부터 커널 영역 응용 모듈로 변경하여 작성함으로써 마스터 모듈과 데이터 교환을 위한 사용자 영역과 커널 영역간의 데이터 복사가 필요 없게 되어 불필요한 데이터 복사 시간을 감소시키고 커널 영역에서 빠른 데이터 처리로 성능을 개선한다. 또한 사용자 영역 응용프로그램에서 주기적 동작을 위해 사용하던 delay 함수는 일반적으로 지터가 크기 때문에 정밀한 동작 주기를 유지하는 것이 어려웠으나, 커널 영역 응용 모듈에서 타이머 인터럽트로 동작 주기를 구현함으로써 보다 정밀한 동작 주기 성능이 가능하다.

3. 성능 실험

3.1 실험 환경

본 논문에서 제안한 방법의 성능 실험을 위해 리눅스 기반 IgH EtherCAT마스터와 상용 EtherCAT 슬레이브를 연결하여 성능 검증을 수행한다. EtherCAT 마스터를 위한 임베디드 보드는 비글본 그린 보드를 사용하고 리눅스는 RT 패치가 적용된 커널 4.9.59 버전을 설치한다. 슬레이브 보드는 TI 사의 TMDSICE3359와 Infineon 사의 XMC4800 EtherCAT Kit를 사용한다.

그림. 4. 실험을 위한 네트워크 구성

Fig. 4. Network setup for experiments

../../Resources/kiee/KIEE.2020.69.1.184/fig4.png

네트워크의 슬레이브는 1대에서 3대까지의 TI 슬레이브와 1대에서 8대까지의 Infineon 슬레이브로 구성한다. 그림 4는 비글본 그린 마스터와 8대의 Infineon 슬레이브를 포함한 네트워크 구성을 나타낸다. 제안한 방법의 성능을 기존 방법과 비교하기 위해 EtherCAT 전용 이더넷 드라이버를 사용하면서 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 동작시킨 것과 커널 영역 응용 모듈로 동작시킨 것에 대하여 각각 실험을 수행하고 실험결과를 비교한다.

EtherCAT 네트워크의 통신 주기는 마스터가 EtherCAT 프레임을 보내고 프레임이 모든 슬레이브를 통과하고 다시 마스터로 되돌아왔을 때의 시간을 의미한다[10]. 따라서 EtherCAT 마스터와 슬레이브 보드를 연결하여 슬레이브의 데이터 처리 및 EtherCAT 통신에서 오류 없이 네트워크의 안정적인 동작을 유지할 때까지 동작 주기를 5 $\mu s$ 씩 감소시켜 최소 통신 주기를 측정한다. 또한, 최소 통신 주기에서 정확한 주기를 측정하기 위하여 마스터가 프레임을 보낼 때마다 리눅스 시스템 시간을 측정하는데 10만개의 샘플을 측정하고 저장하여 네트워크 동작 종료 후 각 시스템 시간 간의 차이의 평균을 계산하여 실제 동작 주기를 추정한다.

3.2 실험 결과

그림 5는 1 대의 Infineon 슬레이브로 구성된 EtherCAT 네트워크에서 측정된 최소 주기이다. 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 구현하였을 경우 최소 주기의 평균은 70 $\mu s$이고, 커널 영역 응용 모듈로 구현하였을 때 최소 주기의 평균은 45 $\mu s$이다. Infineon 슬레이브의 경우 마스터 사용자 프로그램을 커널 영역 응용 모듈로 동작시켰을 때 최소 주기가 더 빠름을 알 수 있다.

그림. 5. 한 대의 Infineon 슬레이브로 구성된 네트워크에서 측정된 최소 주기

Fig. 5. The measured minimum cycle times in the network with a Infineon slave

../../Resources/kiee/KIEE.2020.69.1.184/fig5.png

그림 6은 1 대의 TI 슬레이브로 구성된 EtherCAT 네트워크에서 측정된 최소 주기이다. 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 구현하였을 경우 최소 주기의 평균은 70 $\mu s$이고, 커널 영역 응용 모듈로 구현하였을 때 최소 주기의 평균은 55 $\mu s$이다. TI 슬레이브 또한 마스터 사용자 프로그램을 커널 영역 응용 모듈로 동작시켰을 때 최소 주기가 더 빠름을 알 수 있다.

그림. 6. 한 대의 TI 슬레이브로 구성된 네트워크에서 측정된 최소 주기

Fig. 6. The measured minimum cycle times in the network with a TI slave

../../Resources/kiee/KIEE.2020.69.1.184/fig6.png

표 1은 다수의 슬레이브로 구성되는 네트워크에서 EtherCAT 전용 이더넷 드라이버를 사용하면서 측정된 최소 주기의 평균을 나타낸다. 표 1을 보면 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 구현하여 측정된 최소 주기의 평균은 Infineon 슬레이브는 4대 일 때 95 $\mu s$, 8대 일 때 125 $\mu s$이고, TI 슬레이브는 2대 일 때 80 $\mu s$, 3대 일 때 100 $\mu s$이다. 커널 영역 응용 모듈로 동작시킬 때 Infineon 슬레이브는 4대 일 때 55 $\mu s$, 8대 일 때 75 $\mu s$이고, TI 슬레이브는 2대 일 때 55 $\mu s$, 3대 일 때 75 $\mu s$이다. 표 1의 결과에서 알 수 있듯이 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 동작시킬 때 보다 커널 영역 응용 모듈로 동작시킬 때 최소 주기가 더 빠름을 확인할 수 있다. 사용자 영역 응용프로그램으로 동작시킬 때 커널 영역의 마스터 모듈과 데이터를 교환하기 위해 장치 디바이스가 필요하며 데이터 복사에 많은 시간이 소요되는 것에 비해 커널 영역 응용 모듈은 불필요한 데이터 복사 시간을 줄여 통신 주기가 더 빨라진 것을 확인 할 수 있다.

표 1. 최소 주기 측정 결과 비교

Table 1. 최소 주기 측정 결과 비교

슬레이브 보드

슬레이브 개수

최소 주기 평균 ($μs$)

사용자 영역응용프로그램

커널 영역응용 모듈

Infineon

8

125.00

75.01

4

95.00

55.01

1

70.00

45.01

TI

3

100.00

75.01

2

80.00

55.02

1

70.00

55.01

표 2[8]에서 실험한 임베디드 리눅스 기반 EtherCAT 마스터에서 사용자 영역 응용프로그램으로 동작시켜 측정된 최소 주기의 평균을 나타낸다. [8]의 실험에서 사용한 임베디드 보드와 본 논문의 실험에서 사용한 임베디드 보드의 프로세서는 동일한 계열의 AM335X 프로세서를 사용하고 표준 이더넷 드라이버로 CPSW 드라이버를 동일하게 사용한다. 표 12를 비교하면 [8]에서 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 동작시켜 달성한 결과보다 본 논문에서 커널 영역 응용 모듈로 동작시킨 실험 결과가 더 우수한 것을 확인 할 수 있다. 이러한 통신 주기 성능 개선 결과의 원인을 다음과 같이 분석할 수 있다. [8]에서는 마스터 사용자 프로그램을 사용자 영역 응용프로그램으로 동작시켜 여전히 사용자 영역과 커널 영역 사이에서 상당한 시간이 필요한 메모리 복사가 발생한다. 그러나 제안한 방법에서는 마스터 사용자 프로그램을 커널 영역 응용 모듈로 동작시켜 사용자 영역과 커널 영역 사이의 데이터 복사를 방지하고 이로 인해 [8]의 결과에 비해 더 빠른 통신 주기 성능을 달성할 수 있다.

표 2. 사용자 영역 응용프로그램 사용 시 측정된 최소 주기 [8]

Table 2. The measured minimum cycle times when using user space application [8]

슬레이브 보드

슬레이브 개수

최소 주기 평균 ($μs$)

Infineon

8

130.18

4

125.05

1

124.72

TI

4

100.05

2

100.02

1

100.15

4. 결 론

본 논문에서는 리눅스 마스터 기반 EtherCAT 네트워크의 통신 속도를 향상하기 위하여 커널 영역 응용 모듈 작성 방법을 제안하였다. 시간이 많이 소요되는 데이터 복사 동작을 줄이고 커널 영역에서 모듈 사이의 처리 속도를 향상시키기 위하여 EtherCAT 전용 이더넷 드라이버를 사용하고 마스터 사용자 프로그램을 사용자 영역 응용프로그램 대신 커널 영역 응용 모듈로 구현하였다. 제안한 방법으로 구현된 리눅스 기반 EtherCAT 마스터와 상용 EtherCAT 슬레이브를 연결하여 최소 통신 주기를 측정하고 기존 방법과 비교하여 성능을 개선된 것을 검증하였다. 또한 같은 계열의 프로세서를 사용한 임베디드 리눅스 기반 EtherCAT 마스터에서 사용자 영역 응용프로그램을 사용하였을 때와 비교하여도 성능이 개선된 것을 확인하였다. 성능 개선의 요인은 불필요한 데이터 복사 시간을 줄이고 커널 영역에서 빠르게 데이터를 처리하기 위해 마스터 사용자 프로그램을 커널 영역에서 모듈로 구현한 것으로 분석된다.

Acknowledgements

본 논문은 BK21플러스, IT기반 융합산업 창의인력양성사업단에 의하여 지원되었고 2019년도 정부 (교육부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업임(NRF-2018 1D1A3B07043053).

References

1 
C.-J. An, H.-C. Yi, H.-W. Kim, S.-M. Park, J.-Y. Choi, Apr 2015, Improving packet loss rate of EtherCAT master dependent on hardware performance, Journal of KIIT, Vol. 13, No. 4, pp. 77-83Google Search
2 
L. Sun, S.-Y. Lee, J.-H. Kim, I.-K. Jung, Jan 2017, Development and Analysis of Korea Open Source Motion System based on Real-Time Ethernet, The Transactions of the KIEE, Vol. 66, No. 1, pp. 186-193DOI
3 
G. Prytz, 2008, A performance analysis of EtherCAT and PROFINET IRT, IEEE International Conference on Emerging Technologies and Factory Automation, pp. 408-415DOI
4 
S.-M. Park, H. Kim, H.-W. Kim, C. N. Cho, J.-Y. Choi, Jun 2017, Synchronization improvement of distributed clocks in EtherCAT networks, IEEE Communications Letters, Vol. 21, No. 6, pp. 1277-1280DOI
5 
D. Orfanus, R. Indergaard, G. Prytz, T. Wien, 2013, EtherCAT- based platform for distributed control in high-performance industrial applications, in Proc. of IEEE Conference on Emerging Technologies and Factory Automation, pp. 1-8DOI
6 
D. Orfanus, R. Indergaard, 2014, Recovery of distributed clock in EtherCAT with redundancy for time-drift sensitive applications, IEEE Conference on Emerging Technologies and Factory Automation, pp. 1-4DOI
7 
S.-M. Park, J.-Y. Choi, Jan 2019, Development of EtherCAT Slave Based on Multi-Core DSP, Journal of KIIT, Vol. 17, No. 1, pp. 39-44DOI
8 
H.-C. Yi, J.-Y. Choi, Jan 2019, Cycle Time Improvement of EtherCAT Networks with Embedded Linux-Based Master, IEICE Transactions on Information and Systems, Vol. 102, No. 1, pp. 195-197DOI
9 
IgH, 2019, IgH EtherCAT Master for Linux, Available Online: http://www.etherlab.org. [Accessed on Dec. 04, 2019]Google Search
10 
J. Robert, J.-P. Georges, E. Rondeau, T. Divoux, Aug 2012, Minimum Cycle Time Analysis of Ethernet-Based Real-Time Protocols, International Journal of Computers, Communications and Control, Vol. 7, pp. 743-757Google Search

저자소개

박성문 (Sung-Mun Park)
../../Resources/kiee/KIEE.2020.69.1.184/au1.png

He received the M.S. degree in Electronics Engineering from Pusan National University in 2016.

He is currently a Ph.D. candidate in Electronics Engineering at Pusan National University.

His research interests include embedded system and control system.

E-mail : psm2689@pusan.ac.kr

최준영 (Joon-Young Choi)
../../Resources/kiee/KIEE.2020.69.1.184/au2.png

He received the Ph.D. degree in Electronics and Electric Engineering from Pohang University of Science and Technology in 2002.

He is currently a professor of Electronics Engineering at Pusan National University, Busan, Korea.

His research interests include embedded system and control system.

E-mail : jyc@pusan.ac.kr