디바이스의 응답 지연을 고려한 데이터 전송 시스템 및 방법{Data transfer system and method for considering response delay on CAN devices}
본 발명은 CANOpen 프로토콜을 지원하는 분산네트워크 시스템 환경에서 마스터(Master)로부터 요청명령을 받은 슬레이브(Slave)가 응답할 때까지의 지연시간을 분석하여 요청을 받은 슬레이브가 응답할 때까지 걸리는 시간 동안 마스터가 다른 슬레이브에 요청 명령을 전송함으로써 한정된 CAN 버스를 효율적으로 사용할 수 있도록 하는 디바이스의 응답 지연을 고려한 데이터 전송 시스템 및 방법에 관한 것이다.
최근의 제어 시스템은 다양한 구동기, 센서 등이 복합적으로 구성되고 있다. 이러한 시스템을 제어하는 방법으로는 중앙집중형과 분산네트워크형으로 나눌 수 있다. 중앙집중 시스템의 경우 제어가 용이하지만 확장성과 유연성이 떨어지기 때문에 최근 분산 네트워크 시스템이 대세를 이루고 있다. 그러나 분산네트워크 시스템은 데이터를 송수신할 때의 지연과 통신을 통해 요청을 받은 디바이스가 응답을 할 때까지의 지연이 발생한다. 이러한 지연에 의해서 시스템이 불안정해 질 수 있기 때문에 이를 고려하여 제어 시스템을 설계 및 구현해야 한다.
분산네트워크 시스템에서 사용되는 다양한 통신 매체 중 신뢰성이 높고, 구현이 간단하여 구동기 및 센서 모듈에 많이 사용되고 있는 CAN은 1980년대에 자동차 산업을 위해 개발된 직렬 버스 시스템이다. CAN은 1993년에 ISO 11898-1로 국제 표준화되었으며, 메시지를 주고받는 서비스와 오류를 감지하여 재전송하는 서비스를 제공한다.
CANOpen은 CiA(CAN-in-Automation)의 표준으로써 CAN의 물리계층과 데이터링크계층 위에서 실행되는 어플리케이션계층 프로토콜이다. CANOpen은 CAN2.0A로 구현되어 있으며, PDO(Process Data Objects)와 SDO(Service Data Objects) 방식의 메시지 전송 서비스를 정의하고 있다. PDO는 적은 프로세스 데이터를 빠르게 전송하는 방식이고, SDO는 오브젝트 디렉토리의 엔트리를 액세스하는 방식이다.
CANOpen 프로토콜의 SDO 서비스는 항상 요청과 응답이 한 쌍을 이루여 통신을 한다. 이때 요청과 응답 사이에는 지연시간이 발생한다. 수백 MHz로 동작하는 CAN 디바이스의 경우는 이러한 지연시간이 매우 적어 무시할 수 있겠지만 수 MHz로 동작하는 CAN 디바이스의 경우는 이를 무시할 수 없는 시간이 될 수 있다.
CANOpen 프로토콜에서 사용되는 CAN 2.0A의 데이터 프레임은 하기 표 1과 같은 구조로 되어있으며, 1Mbps로 통신할 경우 한 프레임을 전송하는데 걸리는 시간은 데이터 크기에 따라 47 ~ 111us가 된다.
SOF |
1bit |
Arbitration Field |
12bit |
Control Field |
6bit |
Data Field |
0 ~ 64bit |
CRC Field |
16bit |
ACK Field |
2bit |
EOF |
7bit |
Inter-Mission |
3bit |
CANOpen 프로토콜의 SDO 데이터 프레임은 하기 표 2와 같은 구조로 되어 있으며, Command와 Index, Sub-Index, Data는 CAN2.0A의 데이터 프레임 중 Data Field에 위치한다.
ID |
11bit |
Command |
1byte |
Index |
2byte |
Sub-Index |
1byte |
Data |
0 ~ 4Byte |
이하, 도면을 참조하여 종래기술 및 종래기술의 문제점을 기술한다.
도 1은 종래 디바이스의 데이터 전송 시스템을 도시한 도면이다.
도 1을 참조하면, 마스터(10)는 적어도 하나의 슬레이브(20)와 상호 CANOpen 프로토콜로 연결되어 있으며, CANOpen 프로토콜을 사용하는 분산네트워크 시스템 환경 하에서 마스터(10)가 슬레이브(20)로 데이터를 다운로드하거나 슬레이브(20)의 데이터를 업로드할 때 걸리는 시간은 Treq(요청명령 전송시간) + Td(요청에 받은 슬레이브와 응답할 때까지 걸리는 시간) + Tres(응답데이터 전송시간)이다. Td의 경우는 마스터(10)와 슬레이브(20) 모두 CAN 버스를 사용하지 않는 시간이다.
예를 들어, CANOpen 프로토콜의 SDO 서비스를 이용하여 4바이트 크기의 오브젝트 디렉토리의 엔트리를 1Mbps 속도로 업로드 할 경우 190us의 시간이 소요된다.
- 요청명령 전송시간(Request Time;Treq, 마스터->슬레이브)
: 1 + 12 + 6 + 32 + 16 + 2 + 7 + 3 = 79us
- 응답데이터 전속시간(Response Time;Tres, 슬레이브->마스터)
: 1 + 12 + 6 + 64 + 16 + 2 + 7 + 3 = 111us
그러나 이 시간은 슬레이브(20)에서 요청을 받은 후 지연 없이 바로 응답할 때의 시간이며, 실제로는 요청을 받은 후 응답하는데 까지 걸리는 시간(Td)이 더해져 190us + Td가 된다.
만약 하나의 채널에서 여러 개의 슬레이브(20)가 연결된 시스템에서 도 1과 같이 순차적으로 통신을 하게 되면 슬레이브(20)가 증가하는 것에 비례하여 전체 Td 또한 늘어나게 됨으로써 시스템에서 만족하는 주기로 통신을 할 수 없는 경우가 생길 수 있다.
상기 문제점을 해결하기 위하여 안출된 본 발명은, CANOpen 프로토콜을 지원하는 분산네트워크 시스템 환경에서 마스터로부터 요청명령을 받은 슬레이브가 응답할 때까지의 지연시간을 분석하여 요청을 받은 슬레이브가 응답할 때까지 걸리는 시간 동안 마스터가 다른 슬레이브에 요청 명령을 전송함으로써 한정된 CAN 버스를 효율적으로 사용할 수 있도록 하는 디바이스의 응답 지연을 고려한 데이터 전송 시스템 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 CANOpen 프로토콜의 SDO 서비스를 지원하는 디바이스와 이를 제어하는 PC가 마스터-슬레이브 구조로 구성된 시스템에서 지연 시간을 고려하지 않고 순차적으로 통신할 수 있는 디바이스의 응답 지연을 고려한 데이터 전송 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명은, 마스터와 적어도 하나의 슬레이브를 포함하는 분산네트워크 시스템에서의 통신 프로토콜을 통한 데이터 송수신 과정에 있어서, 상기 마스터에서 상기 슬레이브의 요청 명령에 대한 총 응답 시간을 분석하는 단계; 상기 총 응답시간 중 슬레이브 내에서의 응답 시간(Td)을 분석하는 단계; 상기 마스터에서 어느 하나의 슬레이브에 요청 명령을 전송하는 단계; 및 상기 마스터에서 상기 요청 명령을 수신한 상기 슬레이브로부터 응답을 수신하기 전 타 슬레이브에 요청 명령을 전송하는 단계를 포함하는 디바이스의 응답 지연을 고려한 데이터 전송 방법을 제공한다.
바람직하게는, 상기 슬레이브의 요청 명령에 대한 총 응답 시간은 요청명령 전송시간(Treq)과 상기 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)과, 응답 데이터 전송시간(Tres)을 더한 시간일 수 있다.
또한, 상기 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td) 동안 상기 마스터로부터 타 슬레이브에 요청 명령을 전송할 수 있는 개수는, 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)이 요청명령 전송시간(Treq)보다 작거나 같을 경우 2이며, 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)이 요청명령 전송시간(Treq)보다 클 경우 상기 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)을 요청명령 전송시간(Treq)으로 나눈 값보다 작은 최대 정수일 수 있다.
또한, 상기 통신 프로토콜은 CANOpen 일 수 있다.
또한, 상기 요청 명령을 수신한 슬레이브 내에서의 응답시간(Td)이 길어질수록 데이터 송수신 시간의 단축률이 향상될 수 있다.
또한, 본 발명은 분산네트워크 시스템에 있어서, 통신 프로토콜을 통한 데이터의 다운로드 또는 업로드를 관장하는 마스터; 상기 마스터의 제어 하에 상기 마스터와 통신 프로토콜을 통하여 점대점 방식으로 적어도 하나 결합하는 슬레이브를 포함하되, 상기 마스터는 어느 하나의 슬레이브에 요청 명령을 전송하고, 상기 요청 명령을 수신한 상기 슬레이브로부터 응답을 수신하기 전에 타 슬레이브에 요청 명령을 전송하는 것을 특징으로 하는 디바이스의 응답 지연을 고려한 데이터 전송 시스템을 제공한다.
바람직하게는, 상기 슬레이브의 요청 명령에 대한 총 응답 시간은 요청명령 전송시간(Treq)과 상기 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)과, 응답 데이터 전송시간(Tres)을 더한 시간일 수 있다.
또한, 상기 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td) 동안 상기 마스터로부터 타 슬레이브에 요청 명령을 전송할 수 있는 개수는, 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)이 요청명령 전송시간(Treq)보다 작거나 같을 경우 2이며, 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)이 요청명령 전송시간(Treq)보다 클 경우 상기 요청 명령을 수신한 슬레이브 내에서의 응답 시간(Td)을 요청명령 전송시간(Treq)으로 나눈 값보다 작은 최대 정수일 수 있다.
또한, 상기 통신 프로토콜은 CANOpen 일 수 있다.
또한, 상기 요청 명령을 수신한 슬레이브 내에서의 응답시간(Td)이 길어질수록 데이터 송수신 시간의 단축률이 향상될 수 있다.
본 발명은, CANOpen 프로토콜을 지원하는 분산네트워크 시스템 환경에서 마스터로부터 요청명령을 받은 슬레이브가 응답할 때까지의 지연시간을 분석하여 요청을 받은 슬레이브가 응답할 때까지 걸리는 시간 동안 마스터가 다른 슬레이브에 요청 명령을 전송함으로써 한정된 CAN 버스를 효율적으로 사용할 수 있도록 하는 디바이스의 응답 지연을 고려한 데이터 전송 시스템 및 방법을 제공한다.
또한, 본 발명은 CANOpen 프로토콜의 SDO 서비스를 지원하는 디바이스와 이를 제어하는 PC가 마스터-슬레이브 구조로 구성된 시스템에서 지연 시간을 고려하 지 않고 순차적으로 통신할 수 있는 디바이스의 응답 지연을 고려한 데이터 전송 시스템 및 방법을 제공한다.
본 발명과 본 발명의 동작성의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 디바이스의 응답 지연을 고려한 데이터 전송 시스템을 도시한 도면이다.
도 2를 참조하면, 본 발명의 디바이스의 응답 지연을 고려한 데이터 전송 시스템은 순차적 통신방법의 문제점을 해결하기 위하여 마스터(100)와 상기 마스터(100)와 CANOpen 프로토콜을 통하여 통신하는 적어도 하나의 슬레이브(200)가 점대점 방식으로 연결되며, 상기 마스터(100)로부터 요청받은 슬레이브(200) 내에서 응답할 때까지 걸리는 시간(Td)을 측정하여 상기 마스터(100)에서 상기 Td 동안에 다른 슬레이브(200)에 요청신호를 전송함으로써 지연시간만큼의 시간적 이득을 얻을 수 있다.
이를 위하여, 마스터(100)와 적어도 하나의 슬레이브(200)를 포함하는 분산네트워크 시스템에서의 통신 프로토콜을 통한 데이터 송수신 과정에 있어서, 먼저 상기 마스터(100)에서 상기 슬레이브(200)의 요청 명령에 대한 응답 시간을 분석하고, 상기 응답시간 중 슬레이브(200) 내에서의 응답 시간(Td)을 분석한다. 이후, 상기 마스터(100)에서 어느 하나의 슬레이브(200)에 요청 명령을 전송하고, 상기 마스터(100)에서 상기 요청 명령을 수신한 상기 슬레이브(200)로부터 응답을 수신하기 전 상기 분석된 슬레이브(200) 내에서의 응답 시간에 따라 타 슬레이브(200)에 요청 명령을 전송하게 된다.
상기 요청받은 슬레이브(200)에서 응답할 때까지 걸리는 시간 Td의 경우 상기 슬레이브(200)에 의존적인 값으로 실험에 의해서 결정될 수 있는 값이며, Td 시간 동안에 마스터(100)에서 다른 슬레이브(200)에 요청을 보내는 개수(n)는 요청시간(Treq)에 의존해서 결정될 수 있다.
Td ≤ Treq * 2 일 때, n = 2
Td > Treq * 2 일 때, n = (Td÷Treq)값보다 작은 최대 정수
시간 지연을 고려해서 통신할 때 전체 통신시간은 요청에 대한 계산에 의해서 결정된 슬레이브(200)의 개수가 n이고 응답시간 Tres라 할 때 다음 수학식 1과 같이 나타낼 수 있다.
T = Treq + Td + n * Tres
1Mbps로 CANOpen 프로토콜을 이용해서 2 바이트의 오브젝트 디렉토리의 엔트리를 업로드(Treq=79us, Tres=95)할 때 걸리는 평균 시간을 순차적 방식을 사용했을 때와 지연시간을 고려해서 통신했을 때를 비교하면 하기 표 3과 같은 결과를 얻 을 수 있다.
Td |
순차적 방식 |
지연시간을 고려한 방법 |
30 |
204 |
174.0 (n=2) |
130 |
304 |
199.5 (n=2) |
230 |
404 |
198 (n=3) |
330 |
504 |
197.25 (n=4) |
계산된 결과에 의하면 Td가 증가할수록 시간 지연을 고려한 방법이 효율적임을 알 수 있다.
본 발명에서 제시한 방법의 효용성을 검증하기 위해 도 3과 같은 구조로 시스템을 구성하여 슬레이브(200)의 지연시간을 30, 130, 230, 330us로 변경하면서 실험을 하였다.
도 3은 본 발명의 디바이스의 응답 지연을 고려한 데이터 전송 시스템의 구현예를 도시한 도면이다.
도 3을 참조하면, 마스터(100)는 PC에 CAN 통신을 위한 디바이스를 연결한 것이고, 슬레이브(200)는 CAN 통신을 지원하는 TI TMS320F2811 DSP(Digital Signal Processor) 기반의 제어보드이다. 각각의 슬레이브(200)는 일정한 지연시간을 유지하기 위해 같은 프로그램을 사용하였다.
도 4는 순차적으로 통신을 할 때 지연시간에 따른 결과를 나타낸 그래프이고, 도 5는 지연시간을 고려해서 통신을 했을 때의 결과를 나타낸 그래프이다. 하기 표 4는 도 4와 도 5에서 나타난 평균 시간을 나타낸다.
Td |
순차적 방식 |
시간지연을 고려한 방법 |
30 |
465 |
413 |
130 |
558 |
443 |
230 |
675 |
473 |
330 |
752 |
437 |
상기 표 4를 참조하면, Td가 30us 일 때, 순차적 방식의 경우 465us의 통신시간이 소요되고, 시간지연을 고려한 경우 413us의 통신시간이 소요되어 약 11%의 시간 절감 효과가 있음을 확인할 수 있으며, 마찬가지 방법으로 Td가 130us 일 때, 약 21%, Td가 230us 일 때, 약 30%, Td가 330us 일 때, 약 42%의 시간 절감효과가 있음을 확인할 수 있다.
계산된 결과와 마찬가지로 지연시간을 고려한 통신 방식이 효율적임을 실험결과를 통해 확인할 수 있다. 그러나 이론적으로 계산된 값과 실제 구현을 통해 측정된 실험값 사이에는 약 250us 정도의 차이가 있다. 이는 이론값에 마스터(100)에 연결된 CAN 디바이스의 CAN API를 호출할 때 걸리는 시간이 반영되지 않았기 때문이다.
분산네트워크 시스템은 중앙집중 시스템에 비해서 확정성과 유연성이 뛰어나기 때문에 최근 많이 사용되고 있다. 그러나 분산네트워크 시스템의 경우 통신지연이 발생하기 때문에 이를 고려하여 시스템을 설계하고 구현해야 하는 단점이 있다. 이에 본 발명은 CANOpen 프로토콜을 지원하는 디바이스에서 응답과 요청 사이에 발생하는 시간지연을 분석하여 효율적으로 데이터를 전송할 수 있는 방법을 제안한다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 종래 디바이스의 데이터 전송 시스템을 도시한 도면.
도 2는 본 발명의 디바이스의 응답 지연을 고려한 데이터 전송 시스템을 도시한 도면.
도 3은 본 발명의 디바이스의 응답 지연을 고려한 데이터 전송 시스템의 구현예를 도시한 도면.
도 4는 순차적으로 통신을 할 때 지연시간에 따른 결과를 나타낸 그래프.
도 5는 지연시간을 고려해서 통신을 했을 때의 결과를 나타낸 그래프.