시스템 단위 테스트를 통해 CAN 트랜시버 데이터 전송 관련 문제 방지
DigiKey 북미 편집자 제공
2023-10-11
계측 제어기 통신망(CAN)은 산업 자동화 및 차량 분야에서 사용되는 검증되고 신뢰도 높은 통신 표준입니다. 이 기술에는 두 가지 버전이 있습니다. CAN2.0과 최신 버전인 CAN-Flexible Data(FD) 기술입니다. 레거시 CAN2.0 시스템에 CAN-FD 노드를 추가하면 성능을 향상시킬 수 있으며, 이는 중대한 통신 작업을 위한 대용량 업무량 처리 능력을 제공합니다.
이 두 기술은 일반적으로 호환되지만, 시스템이 복잡해지고 버스 길이가 길어짐에 따라 혼합 시스템에서 CAN-FD의 속도가 빨라지면 동기화 문제가 발생하여 전송 실패가 발생할 수 있습니다.
간단한 시스템의 경우, 두 개의 컨트롤러/트랜시버 쌍을 연결하는 단일 쇼트 버스를 포함하는 CAN 시스템 테스트만으로 충분할 수 있습니다. 하지만 이 테스트는 CAN2.0과 CAN-FD 부품이 함께 존재하는 더 복잡한 멀티 노드 시스템에서 발생할 수 있는 문제를 감지하지 못하는 경우가 많습니다. 생산 시스템과 동일한 시스템을 사용하여 모든 잠재적인 사용 사례에 대해 철저히 테스트하면 현장에서 발생할 수 있는 모든 문제를 감지할 수 있습니다.
이 기사에서는 CAN2.0과 CAN-FD에 대해 간략하게 소개하고 전송 과정에서 일어나는 문제에 대해 설명합니다. 그런 다음 이러한 네트워크를 사용하는 시스템에서 현장 발생 오류를 최소화하도록 보장하는 테스트 기술에 대해 설명합니다. 오류를 감지하고 이를 보고하는 기능이 통합된 Analog Devices의 부품의 예를 소개하고, 이러한 부품을 사용함으로써 테스트 단계 및 배포된 시스템에서의 문제 해결을 가속화할 수 있는 방법을 알려줍니다. 그리고 관련된 평가 기판도 소개합니다.
CAN2.0과 CAN-FD란 무엇인가요?
CAN은 분산 통신을 위한 표준으로 오류 처리 기능이 내장되어 있습니다. ISO-118981 표준에는 물리적(PHY) 및 데이터 링크 계층(DLL)이 명시되어 있습니다.
CAN의 특징은 다음과 같습니다.
- 버스에서 다중의 마스터가 허용됨
- 메시지에서 고유한 우선순위 레벨 부여
- 메시지 우선순위에 따른 버스 중재
- 여러 레벨에서 오류 감지 및 복구
- 별도의 클록 소스로 노드 전반에서 데이터 타이밍 동기화
CAN은 표 1에 표시된 것처럼 '열성'(구동기 출력이 고 임피던스임)과 임계값을 가진 '우성'이라는 두 가지 버스 전압 상태를 특징으로 하는 차동 전압 데이터 전송 방식을 사용합니다.
|
표 1: RS-485와 비교한 CAN 열성 및 우성 전압 레벨. 우성(더 높은) 전압은 논리 '0'에 해당합니다. (이미지 출처: Analog Devices)
노드는 논리 '0'에 대해 우성 상태(이 상태에서는 하나의 버스 라인(CANH)이 높고 다른 버스 라인(CANL)은 낮음)를 전송하고 논리 '1'에 대해서는 열성 상태를 전송합니다. 유휴 CAN 버스는 열성 비트 전송 모드의 버스와 구별됩니다. 이는 표준 프레임 또는 오류 프레임이 종료된 후 여러 열성 비트 감지를 통해서 이루어집니다(그림 1).
그림 1: CAN 전송 체계. 유휴 모드는 여러 열성 비트로 식별됩니다. (이미지 출처: Analog Devices)
CAN 트랜시버는 DLL, CAN 컨트롤러(마이크로 컨트롤러 같은 다른 장치 내부에 내장되는 경우가 많음), CAN 버스의 물리적 배선 간의 차동 PHY 인터페이스를 제공합니다. CAN 응용 분야를 구현하는 데 필요한 다양한 요소는 그림 2에 표시되어 있습니다. 여기에는 개방형 시스템 상호 연결(OSI) 계층과의 관계와 각 항목이 구현하는 기능이 함께 표시되어 있습니다.
그림 2: CAN 트랜시버는 CAN 컨트롤러와 CAN 버스 사이에서 차동 PHY 인터페이스를 형성합니다. (이미지 출처: Analog Devices)
CAN2.0은 1991년에 확립되었으며, 공칭 처리량은 500Kbits/s입니다. 이 데이터 전송률이 중대한 통신 상황에서 충분하지 않은 경우가 있어, 2012년에 CAN-FD가 출시되었습니다. CAN-FD는 정상 작동 조건에서 최대 2Mbits/s의 공칭 처리량, 진단 상황 또는 프로그래밍 상황의 작동 조건에서 최대 5Mbits/s의 처리량을 제공합니다. 고속 통신은 메시지 페이로드에만 적용되며, 11비트 식별자, 순환 중복 검사(CRC) 및 승인(ACK)과 같은 메시지의 다른 요소들은 500Kbits/s의 CAN2.0 속도로 전송됩니다.
CAN2.0과 CAN-FD의 또 다른 차이점은 표준 데이터 프레임 페이로드에 있는데, CAN2.0의 경우 8B에서 CAN-FD의 경우 최대 64B로 증가합니다. 이렇게 페이로드가 증가하면 오버헤드/데이터 비율이 향상되어 CAN-FD 통신이 더욱 효율적으로 이루어집니다. 또한 이전에는 CAN2.0의 8B 페이로드 제한으로 인해 분할 전송해야 했던 메시지를 이제 CAN-FD를 사용하여 한 개의 메시지로 결합할 수 있습니다. 또한 데이터 전송률이 더 높고 페이로드가 증가하므로, CAN-FD 메시지의 암호화를 통해 보안을 강화할 수 있습니다.
CAN-FD 컨트롤러는 CAN2.0과 CAN-FD 프로토콜을 모두 지원하기 때문에, 동일한 네트워크에서 CAN2.0과 CAN-FD 노드를 혼합하는 것이 일반적입니다. 노드 혼합 방식을 사용하면 레거시 네트워크에서 더 빠른 프로토콜로 더 오랫동안 마이그레이션할 수 있기 때문에 인기가 높습니다. 혼합 시스템의 한 가지 단점은 추가 비용과 복잡성인데, 그 이유는 트랜시버는 CAN-FD 통신 중에 오류 프레임이 생성되지 않도록 CAN2.0 노드에서 CAN-FD 필터링 방법을 지원할 수 있어야 하기 때문입니다.
CAN의 중재 및 오류 메커니즘
연결된 모든 CAN 노드는 버스에 데이터를 전송할 수 있습니다. 노드는 통신 충돌을 피하기 위해 버스 사용을 중재하여 메시지가 우선순위에 따라 차례로 전송되도록 합니다. CAN은 비파괴적이고 투명한 중재를 사용합니다. 중재 중 이어지는 노드는 다른 노드가 정보를 방해하거나 훼손하게 하지 않고 더 높은 우선순위의 메시지를 계속 전송합니다. 이러한 중재는 우성 비트의 전송이 열성 버스 상태를 덮어쓰기 때문에 가능합니다.
표준 데이터 프레임에는 메시지 식별자와 여러 플래그 비트가 포함됩니다. 이 정보를 '중재 필드'라고 합니다. 이는 중재를 지정하고 결과적으로 메시지 우선순위를 결정합니다. ID가 낮을수록(앞쪽에 '0'이 많을수록) 우선순위가 높은 메시지입니다(그림 3).
그림 3: CAN 표준 데이터 프레임에는 메시지 식별자와 RTR 및 IDE 플래그 비트가 포함됩니다. 이 중재 필드는 중재와 메시지 우선순위를 결정합니다. (이미지 출처: Analog Devices)
중재 체계가 있더라도 오류가 발생할 수는 있습니다. 문제에 대처하기 위해, CAN 프로토콜에는 오류를 확인하고 처리를 지원하는 메커니즘이 있습니다. 이러한 메커니즘에는 다음이 포함됩니다.
- 전송 비트 검증
- CRC 확인
- 고정형식 비트 필드 검사
- 메시지 ACK가 필수적임
오류는 다음과 같은 메커니즘을 사용하여 처리됩니다.
- 오류 프레임
- 오류 카운터
- 노드 오류 상태
모든 CAN 컨트롤러는 오류를 감지하고 오류 프레임과 오류 노드 카운터의 작동을 유발하여 오류에 대응할 수 있습니다. 오류 프레임은 6개의 연속적인 우성 또는 열성 비트를 사용하는 것으로 특징지을 수 있습니다. 이러한 순서는 정상적인 전송 규칙과 상충하므로 다른 노드가 이를 감지할 수 있습니다. 오류 프레임을 전송하는 노드는 버스가 열성 상태에 있는 것으로 감지될 때까지 후속적으로 열성 비트를 전송합니다. 노드는 7개의 열성 비트를 추가로 전송한 후 일반 CAN 프레임 전송을 시도합니다(그림 4).
그림 4: 잘못된 전송의 예를 나타내는(추가 비트 [1]로 인해 CRC 비트 오류가 발생함) 이 그림에서는 6개의 연속 비트 오류 프레임이 맨 오른쪽에 표시되어 있습니다. (이미지 출처: Analog Devices)
오류 프레임을 전송하는 것 외에도, 모든 CAN 노드는 오류 카운터의 전송과 수신을 수행합니다. 오류가 발생하면 카운터가 1씩 증가하고, 메시지를 성공적으로 전송하거나 수신하면 카운터가 1씩 감소합니다. 노드는 오류 카운터에 따라 '오류 활성', '오류 수동' 또는 '버스 꺼짐' 상태로 구분될 수 있습니다. 오류 활성 상태에서는 노드가 버스에서 통신하며 오류를 감지하면 활성 오류 플래그를 전송합니다. 오류 수동 상태는 카운터가 127을 초과하면 발생하며, 이 상태에서는 노드가 수동 오류 플래그만을 전송합니다. 카운터가 127 미만이 되면, 노드는 다시 오류 활성화 상태가 됩니다. 카운터가 256을 초과하면, 노드는 버스 꺼짐 상태로 들어가고 버스에서 통신할 수 없게 됩니다. 노드 카운터는 11개의 연속 열성 비트로 구성된 128개의 시퀀스를 수신한 후 0으로 리셋할 수 있습니다.
종합적인 테스트의 중요성
CAN의 중재 및 오류 메커니즘은 현장에서 오류가 발생했을 때 시스템이 계속 작동할 수 있도록 지원합니다. 그러나 전송 및 수신의 오류를 제한하도록 시스템을 설계하면 더 효율적인 운영이 가능합니다. 다양한 운영 환경에서 제안된 시스템을 테스트하면 시스템 배포 전에 취약점을 파악하고 수정할 수 있습니다.
흔히 이용되는 기법은 함수 생성기를 사용하여 일반적인 작동 표준 데이터 프레임을 트랜시버의 TxD 핀으로 전송하고 오류가 발생하는지 확인하는 방식을 통해 특정 CAN 트랜시버를 구동해 보는 것입니다. 이는 단일 노드에 대해서는 합리적인 테스트이지만, 긴 버스를 사용하는 다중 노드 시스템이 현장에서 어떻게 작동할지 잘 보여주지는 못합니다. 예를 들어, 복잡한 시스템에서 발생할 수 있는 문제로는 고주파 작동 중 회로 스텁에서 발생하는 반사 및 기타 아티팩트가 있습니다. 이로 인해 비트 간 위상 변이가 발생할 수 있습니다.
CAN의 중재 메커니즘은 비트가 동기화된 경우에만 작동합니다. 비트 간 위상 변이가 단일 비트 전송 시간의 1/2 이상을 초과하면 동기화에 실패하고 중재가 불가능해집니다.
500Kb/s~1Mb/s로 작동하는 CAN2.0 레거시 시스템에서는 단일 비트 전송 시간이 충분하기 때문에 위상 변이가 거의 문제가 되지 않습니다. 그러나 CAN-FD에서는 처리 속도가 빠르기 때문에 비트 전송 시간이 단축되고, 위상 변이가 단시간에 문제가 될 수 있습니다.
단순히 하나의 노드를 테스트하는 것을 넘어, 완벽한 최종 시스템을 복제한 후 다양한 작동 조건에서 테스트하여 설계를 검증하는 방식을 통해 이런 문제를 완화해야 합니다. 이는 기본 테스트보다 시간과 비용이 더 많이 들지만, 현장에서의 오류나 불만에 찬 고객을 응대하는 것보다는 훨씬 비용이 적게 듭니다.
실제 상황 예시
위상 변이 테스트가 실제 상황에서 어떻게 작동하는지 알아보려면 최종 선별된 소수의 제조업체에서 출시된 CAN 트랜시버와 CAN 컨트롤러로 설계된 시스템을 선택합니다. 이 노드는 20m 버스에 연결되어 있으며, CAN2.0 및 CAN-FD 부품을 포함한 다른 많은 노드도 지원합니다. 테스트를 목적으로 하는 경우, 노드는 75ns의 비트 폭에 해당하는 13.3Mbits/s의 속도로 전송합니다. 동기화 및 중재 목적을 위해 컨트롤러는 TxD 비트 폭의 80%에서 샘플링하므로 상승 시간, 하강 시간 및 루프 지연을 포함하여 최소 0.8 x 75 = 60ns의 RxD 비트 폭이 필요합니다. 테스트되었던 부품은 48ns의 TxD 비트 폭을 생성하여 시스템 장애를 발생시켰습니다.
대체 CAN 트랜시버인 Analog Devices의 MAX33012EASA+에 대해서도 동일한 테스트를 수행했습니다. 이 테스트에서 TxD 비트 폭은 75ns에서 측정되었고, RxD 비트 폭은 72ns에서 측정되었습니다. 72ns 비트 폭은 80% 샘플 시간 요건인 60ns를 초과하므로 시스템 동기화 및 중재가 문제없이 작동합니다. 13.3Mbits/s의 처리량은 시스템이 해당 응용 제품에서 사용하는 것보다 더 빠르며, 이는 예상되는 모든 운영 조건에서 충분히 강력하게 작동할 수 있음을 보여줍니다(그림 5).
그림 5: 20m 버스에서 13.3Mbits/s(75ns TxD 비트 폭)로 MAX33012EASA+ CAN 트랜시버를 실행한 테스트 결과. RxD 비트 폭은 72ns로, 컨트롤러의 80% 샘플 시간(60ns)을 충족하고 동기화를 실현하기에 충분합니다. (이미지 출처: Analog Devices)
내장된 문제 해결 기능
오류 감지 및 보고 기능이 통합된 부품을 사용하면 테스트 주기를 더 쉽게, 더 적은 비용으로 수행할 수 있습니다. MAX33012EASA+ CAN 트랜시버와 같은 부품은 시제품 및 사전 생산 CAN 회로의 문제를 신속하게 파악할 수 있을 뿐만 아니라, 신속한 문제 해결이 중요한 실시간 제어 시스템 배포에 있어 신속한 문제 해결이 중요한 응용 분야에서도 유용합니다.
MAX33012EASA+는 과전류, 과전압, 전송 장애와 같은 일반적인 오류를 해결하는 +5V CAN 트랜시버입니다. 이 제품은 최대 ±65V까지 오류 보호가 가능하여 과전압 보호가 필요한 응용 제품에 적합합니다. 공통 모드 전압 범위가 ±25V이므로 중장비가 있는 곳과 같이 잡음이 심한 환경에서도 통신이 가능합니다. CANH 및 CANL 출력은 단락 전류를 제한하며, 구동기 출력을 높은 임피던스 상태로 만드는 과열 시 전원 차단 회로망에 통해 과도한 전력 손실로부터 보호됩니다.
MAX33012EASA+는 최대 5Mbits/s에서 작동하며 슬루율을 8V/μs로 낮추어 전자기 간섭(EMI)을 최소화하고 비차폐 연선 또는 병렬 케이블을 사용할 수 있는 옵션을 갖추고 있습니다(그림 6).
그림 6: 다중 모드 시스템에서의 MAX33012EASA+ 응용 제품 회로입니다. 이 예에서는 마이크로 컨트롤러에 내장형 CAN 컨트롤러가 포함되어 있습니다. (이미지 출처: Analog Devices)
CAN 트랜시버의 결함 감지는 전원을 켤 때 100개의 로우-하이 전환을 TxD를 통해 통과시킴으로써 활성화됩니다(사용되는 프로토콜에 따라 통상적으로 하나 또는 두 개의 표준 데이터 프레임). 결함 감지가 활성화된 후, 결함이 감지되면 결함 코드를 전송하기 위해 TxD에서의 또 다른 16번의 로우-하이 전환이 필요합니다. 마지막으로, 결함을 해결하려면 10개의 펄스가 더 필요합니다.
전송 장애 감지는 결함 감지가 활성화된 후 연속으로 10주기 동안 RxD의 신호가 TxD 신호와 일치하지 않을 때 일어납니다. 예를 들어, 두 종단 저항이 모두 없거나 CANH와 접지 사이 또는 CANL과 VDD 사이에 단락이 있어 차동 신호가 사양을 충족하지 못하는 경우에 이러한 상황이 발생할 수 있습니다.
Analog Devices는 MAX33012E의 기능을 시연하는 데 사용할 수 있는 평가 기판인 CANbus 인터페이스 Arduino Platform 평가 기판 MAX33012E을 제공합니다. 이 장치는 Arduino 쉴드 폼 팩터를 갖추고 있으며, 독립형 평가 기판으로 사용될 수 있습니다.
결론
다중 모드 CAN2.0 및 CAN-FD 혼합 시스템이 현장에서 안정적으로 작동하도록 하려면 전체 설계를 완벽하게 테스트하는 것이 중요합니다. 그러나 단순한 단일 노드 테스트는 기술의 중재 메커니즘을 손상할 수 있는 동기화 문제로 인해 나중에 현장에서 장애를 일으킬 수 있는 결함을 감지하기에는 부적절합니다. 결함 감지 및 보고 기능이 내장된 CAN 트랜시버를 선택하면 혼합 다중- 노드 CAN 시스템의 초기 테스트와 이후의 현장 문제 해결을 쉽게 수행할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

