본문 바로가기

기술일기

CAN 통신에서 종단저항의 중요성

728x90
반응형
SMALL

 

늘은 정말 오랜만에 일기를 하나 적어 봅니다.

시간도 여유도 없어서 요즘은 포스팅하는 시간이 너무 없는 것 같습니다.

 

시간을 좀 내어서 블로그 관리를 좀 해야 할 듯합니다.

 

제가 대학을 졸업 후, 첫 회사에서 CAN 통신이라는 것을 처음 접하게 되었습니다.

약 2년간의 여러 통신규약에 대해서 학습하고 업무를 한 결과, 현재까지 아래와 같은 통신규약들에 대해서 접해 본 이력이 있습니다.

 

약 20년 전까지만 해도 CAN 통신에 대해서 크게 적용되지 않았기에 큰 의미를 가지지 못했으나, 약 20여 년이 지난 지금에서도 CAN 통신이 여러 산업분야에서 사용되고 있는 것을 보면 정말 중요하고 노이즈에 강한 통신 기법임은 틀림없는 것 같습니다.

 

현재까지 제가 접해 본 통신규약을 요약해 보고 싶어집니다.

1. DeviceNet

2. SAE J1939

3. CANopen

4. SAE J2284 (규격 집을 찾아서 읽어볼 예정)

 

DeviceNet 영문 규약을 전부 읽고 이를 C언어로 코딩한 시절이 벌써 17년 전인 것 같네요.

그 시절엔 DeviceNet이 정말 어렵고, CAN2.0 A/B를 학습하고 코딩하고 세미나도 거의 매주했던 기억이 납니다. 하지만 통신에 대해서 이론적 뿐만 아니라 실제 업무에 적용이 가능한 펌웨어 기술자로 자리매김할 수 있었던 계기가 된 듯합니다.

 

그리고 DeviceNet을 하던 회사에서 퇴사를 하고, 이은 회사에서 CAN 통신에 대해서 경력을 가진 저에게 또 다른 통신 프로토콜이 기다리고 있었습니다.

자동차의 트럭 및 버스에 많이 사용하는 SAE J1939의 규약에 대해서 정립하고, 이어서 CANopen도 접하게 되는 경험도 가지게 되었습니다.

 

그리고 오랜 시간이 흐른 지금 SAE J2284 (자동차에 사용됨)를 접하게 될 듯합니다.

CAN 통신을 놓고, 기계 업무를 하게 되었지만 또다시 이 통신을 접하게 될지 몰랐네요.

 

CAN 통신에 대해서 많은 할 얘기가 있고, 세미나 자료나 제가 보유하고 있는 자료들이 많은데 이를 활용하여 블로그 포스팅할 시간과 기회를 마련하고 싶네요.

 

최근에는 NFC(Near Field Communication) 통신 규약에 대해서도 접근할 수 있는 계기가 오는 듯합니다.

 

 

먼저 최근에 오래전에 경험했던 실무 경험과 유사한 사례가 있어서 적어 봅니다.

제가 약 20여 년 전에 산업용 단말기 (약 50여 대)를 CAN 통신 (DeviceNet)을 사용하여 설계하고 중소기업에 자동화시스템을 설치했던 업무를 하였는데요.

 

이때 Trunk 라인이(메인) 엄청 길고 Drop 라인(가지)도 규격 내였지만 선로의 길이와 종단 저항 위치가 너무 멀어서 통신 Error가 간헐적으로 발생했던 이력이 있었습니다.

 

통신선로 길이가 너무 길고 단말기 및 교류전압의 선로상에서 일어나는 노이즈로 인한 문제점이었던 것으로 생각이 납니다.

그래서 중간에 리피터라는 제품을 사용하여 그 문제점 해결하였는데요.

요즘은 좋은 제품이 많이 나와서 이를 활용하면 완벽하게 해결이 될 것이지만, 그 시절엔 아주 많은 시간을 할애해서 분석하고 개선을 한 기억이 있습니다.

 

피곤한 나머지 글 솜씨가 부드럽지 못하더라도 이해해 주세요.

기술적인 내용을 포스팅할 때는 좀 더 신중을 기해야 하지만 오늘은 시간이 많지 않은 관계로 서둘러 봅니다.

 

 

아래는 최근에 CAN 통신을 사용하는 자동차에서 실제 문제점이 발생하여 기술적으로 분석해서 개선 한 내용인데, 예제로서 급하게 포스팅을 해 봅니다.

 

CAN 네트워크 구성:

ISO 11898-2 네트워크 구성을 위하여 디바이스의 종단에 각각 120옴으로 합성저항이 60옴이 되어야 함.

 

CAN 버스에 대해서 검색을 하면 여러 내용들이 있으니 생략합니다.

검색을 하면 여러 좋은 정보가 많기에 많이 활용하면 좋을 듯합니다.

 

사실 예전에는 잘 알려지지 않아서 공부하기 어려웠는데....

매일 공부하고 세미나 하고, 코딩하고... ^^;

지금 생각해 보면 정말 좋은 경험이었던 것 같습니다.

 

통신에 대해서 직접 경험하고 코딩을 해 봤다는 것에 만족을 합니다.

 

CAN 통신에서는 종단 저항의 역할이 상당히 중요합니다.

 

종단 저항의 역할: 선로의 양 끝에 위치하며, 임피던스 매칭을 하고, 임피던스 반사 현상을 피할 수 있음.

 

이론적 파형: 2.5V를 중심 전압으로 하여 CAN_H는 3.5V, CAN_L는 1.5V로 나오는 것이 이상적인 파형의 모습니다.

 

아래의 실제 오실로 스코프에서 측정한 파형으로서 통신이 시작되고 약간의 노이즈가 타는 모습을 보이는 형태입니다.

 

약간의 노이즈가 발생하여도 CAN 통신은 노이즈에 강하기에 충분히 문제가 없습니다.

 

아래의 파형은 실제로 통신이 진행되면서 파형이 약간씩 찌글어(?)지는 형태를 보이는데요. 이것은 어떤 특정 디바이스로부터 작동이 되면서 고전압/고전류에 의해서 울렁울렁 거리는 형태를 나타냅니다. 하지만 이 또한 CAN 통신은 정상적인 DATA를 송/수신 하는 것에 문제가 없습니다.

 

CAN 통신은 여러 개의 MASTER와 SLAVE 형태로 수십 개의 NODE를 추가하여 구성을 할 수 있는데요. 종단저항(양단의 제일 끝단의 120옴)의 중요성을 나타내는 문제점의 파형입니다.

종단저항에 대해서 심각성을 파악하지 못한 채 종단이 아닌, 중간에 또 다른 120 옴을 추가하여 합성저항이 40옴 이하로 나오면서 각 디바이스에서 인식할 수 있는 임피던스 매칭이 되지 않게 된 예입니다.

 

아래의 파형을 보시면 CAN_H는 약 3.3V(정상 3.5V), CAN_L는 1.7V(정상 1.5V)전압 파형을 나타내고 있으며, 이 전압의 형태가 통신상에 어떤 문제점을 야기하는지 알아보겠습니다.

 

아래와 같이 정상적인 파형으로 보이지만, 추가된 120옴의 종단저항을 가진 NODE를 통해서 전압 레벨이 낮아진 것을 볼 수 있습니다.

 

이 상태에서는 간헐적으로 선로상에 노이즈가 발생하지 않고 정상적이다면 통신 또한 가능할 수도 있습니다. 하지만 언제 어떤 조건에서 전자파 및 고전압/고전류로 인하여 통신 선로에 약 영향을 주면서 통신 메시지 전체가 찌글어지는 형태를 볼 수 있습니다.

 

아래의 사진이 그 예를 나타냅니다.

어떻게 보면 이론적 파형과 비슷하게 나오지만, 파형 전체가 찌글어지고 정상적인 파형의 모습이 아닌, 이 프레임이 Error를 발생시키고 Error를 카운팅을 하게 만들어 줍니다. 아래 모습은 Error를 카운팅도 되었다고 선로상에서 통신 Load가 높게 차지하게 되었던 Case입니다.

 

CAN 통신에서 중요한 요소는 이 파형의 형태와 노이즈 대책을 어떻게 잘 설계하는가에 따라서 통신의 질을 높일 수 있을 것 같습니다.

 

CAN 통신에서의 에러는 5개의 에러가 발생됩니다.

1) BIT

2) ACK

3) FORMAT

4) STUFF

5) CRC

 

위 5개의 에러가 검출될 때마다 카운터가 1씩 증가하고, 에러 없이 성공적으로 전달이 완료되면 카운터가 1씩 감소됩니다.

 

이는 CAN 드라이버에서 알아서 카운팅이 되고 감소가 되고 한 것 같습니다.

 

초기 상태는 Error active 상태에서 시작하여

에러 카운터 값이 127보다 커지면 Error passive 상태.

에러 카운터 값이 255보다 초과하면 BUS OFF 상태로 빠지면서 해당 노드를 CAN 통신상에서 끊어버리는 문제점을 야기합니다.

 

여하튼 CAN 통신에서는 중요한 점이...

 

NODE의 종단저항과 위치

선로의 길이

 

그리고 가능하면 고전압/고전류 등이 흐르는 선로를 회피에서 설계하는 방법이 중요하다고 하겠습니다.

 

차량이나 장비에서 여러 다바이스를 설치하기 위해서 내부적인 기술검토가 이루어 지는데, 이를 자세히 설명할 길이 없네요. 너무 많은 자료와 그림이 필요한 듯 하여...

이는 PASS 하겠습니다.

 

사실 이 글을 적으면서 예전에 학습하고 자체규약도 만들면서 오랜시간 준비된 것들을 글로서 나타내고 싶어지네요.

 

또한 다른 경험도 글로서 만들고 싶어지는 오늘입니다.

 

늦은 시간 포스팅하느라 어지럽고 정신없이 적다 보니 질이 좀 떨어져도 이해를 부탁합니다.

 

여튼 CAN통신은 어떤 통신보다 중요하고 정말 잘 사용하면 좋다라고 말하고 싶습니다.

 

 

 

 

 

 

 

728x90
반응형
LIST

'기술일기' 카테고리의 다른 글

CAN 통신에서 종단저항의 중요성  (0) 2022.02.02
CAN 통신에서 종단저항의 중요성  (0) 2022.02.02