CAN 버스 동기화 메커니즘/주소 지정 메커니즘/중재 메커니즘 분석

Jan 17, 2025 메시지를 남겨주세요

CAN (ControllerAreanEtwork) 버스, IE 컨트롤러 영역 네트워크 버스는 산업 제어, 의료 전자 제품, 가정용 가전 제품 및 센서 필드에서 널리 사용되었습니다. 현재,이 기사의 CAN 버스 프로토콜 분석을위한 국내 및 외국 문헌은 주로 CAN 버스 프로토콜 분석에 대한 커뮤니케이션의 관점에서 거의 없을 때와 같은 캔 프로토콜 프레임 구조에 대한 CAN 프로토콜 프레임 구조를위한 것입니다. , 엔지니어링 애플리케이션의 관점에서 드물게 기사의 심층 분석을위한 CAN 버스 통신 메커니즘.


1. 적용 특성 및 구조 구성


CAN 버스 프로토콜에는 ISO11898과 ISO11519의 두 가지 국제 표준이 있으며 IS011898은 125kbps에서 1Mbps까지의 통신 ​​속도와 함께 최대 40m/1Mbps의 폐쇄 루프 버스와의 고속 CAN 통신 표준입니다. ISO11519는 최대 40m/1Mbps의 최대 길이의 저속 캔 통신 표준 인 통신 속도와 함께 저속 캔 통신 표준을 정의합니다. ISO11519는 10 ~ 125kbps 저속 통신 표준의 통신 속도를 정의하며 최대 1km / 40kbps의 최대 길이 인 오픈 루프 버스에 속합니다. 제한의 전기적 특성, 즉 커패시턴스의 버스 분포 및 버스 파형에 대한 저항 분포로 인해 CAN 버스의 최대 노드 수는 110입니다. 응용 프로그램 엔지니어의 경우 Baud 속도 및 비트 매개 변수 만 트랜시버 측의 데이터 동기화를 달성하려면 트랜시버 측을 올바르게 구성해야합니다. 메시지 마커 필터링의 CAN 컨트롤러 하드웨어를 통해 포인트 간 포인트, 포인트 투 포인트 및 글로벌 브로드 캐스트 및 기타 데이터를 전송 및 수신하는 방법을 실현할 수 있습니다. 동시에 CAN Telegram의 짧은 프레임 구조로 인해 각 프레임에는 CRC 체크 파트가 포함되어있어 데이터 오류율이 매우 낮습니다.

 

CAN 애플리케이션 계층, 운영 체제 (운영 체제가없는 애플리케이션에서 배경 프로그램으로 구현 됨) 및 시스템 구현의 드라이버는 ISO 참조 모델에서 응용 프로그램 계층 기능을 함께 인식합니다. 그중에서도 CAN 애플리케이션 계층은 ID 그룹화, 데이터로드 전송, 데이터 처리 수신 및 애플리케이션 계층 버스 보안 모니터링을 정의합니다. 운영 체제/배경 프로그램은 CAN 인터럽트가 도착한 후 캔 드라이버를 예약하는 데 사용됩니다. 드라이버에는 초기화 (컨트롤러 작업 상태 설정, 전송 속도 설정, 수락 필터 구성), 트랜시버 드라이버 및 이상 처리 프로그램이 포함됩니다.


전송 중간 층의 경우 환경 간섭 소음, 버스 길이 등에 따라 결정해야합니다. 강한 간섭의 경우 노이즈 노이즈는 차폐 와이어를 사용해야합니다. 버스 파형 왜곡으로 인한 커패시턴스의 분포 및 버스 수준의 감쇠로 인한 저항의 분포로 인해 버스의 길이는 사용 된 전송 매체의 저항 및 커패시턴스 특성의 분포를 고려해야합니다. 동시에, 고속 버스를 사용하면 버스의 일치하는 저항의 가치를 결정하기 위해 실험 해야하는 경우.


CAN 컨트롤러의 실현을 위해 NXP의 LPC2000 시리즈 마이크로 컨트롤러와 같은 시스템 마스터 칩에 통합 된 CAN 컨트롤러를 선택하거나 CAN 트랜스 커트를 실현하기 위해 SJA1000과 같은 CAN 컨트롤러의 개별 구성 요소를 사용할 수도 있습니다. , CTM1050, TJA1050 등을 선택할 수 있습니다. 주변 간섭 노이즈가 크면 전송 중간 분포 저항을 고려해야합니다. 분포 커패시턴스 특성; 동시에, 고속 버스를 사용하는 경우 실험을 통해 버스의 일치하는 저항을 결정해야합니다. 환경 간섭 노이즈가 크면 컨트롤러와 트랜시버 사이에 분리 칩을 추가하거나 CAN 트랜스 시버의 통합 분리 기능 사용이 필요합니다. NXP의 새로운 LPC11C24 마이크로 컨트롤러 칩은 CAN 컨트롤러를 통합 할뿐만 아니라 CAN 트랜시버 기능을 통합하여 CAN 버스 시스템의 빠른 개발에 적합한 지원을 제공한다는 점을 언급 할 가치가 있습니다. 또한 버스의 길이와 버스의 노드 수의 실제 적용에 따라 트랜시버 칩의 전송 및 수신의 지연 시간을 고려해야합니다.


CAN 드라이버 레이어 및 응용 프로그램 계층의 경우 드라이버에는 캔 초기화 (하드웨어 활성화, 전송 속도 설정, 컨트롤러 작동 모드 설정 및 승인 필터 ID 테이블 구성)가 포함되어있어 드라이버를 수신/전송하고 상단 레이어에 인터페이스 기능을 제공합니다. 허용 필터 ID 테이블 구성은 애플리케이션 계층 별 시스템 ID의 그룹화를 기반으로해야한다고 설명해야합니다. CAN 애플리케이션 계층은 버스의 노드간에 데이터 전송/수신 관계를 기반으로 데이터 패킷화를 수행합니다. 패킷 ID 그룹화, 데이터 패킷 전송, 데이터 처리 및 애플리케이션 계층 버스 보안 모니터링을 위해 버스의 노드 간의 데이터 전송 및 수신 관계에 따라 애플리케이션 계층을 할 수 있습니다. 또한 일반적으로 사용되는 캔 버스 상단 계층 프로토콜에는 Canopen, Devicenet 및 ICAN이 포함됩니다.


2. 버스 동기화 메커니즘 분석


통신 프로세스에서 해결해야 할 가장 중요한 문제 중 하나는 발신자 및 수신자 종료에서 데이터 동기화를 달성하는 방법입니다. 즉, 수신기 종료는 발신자 종료에 의해 보낸 데이터를 올바르게 수신하고 구문 분석 할 수 있습니다. 기본 대역 통신에 속하는 일종의 비동기 직렬 통신 프로토콜이며, 동기화는 HDLC (High Level Data Link Control Protocol)에서 실현됩니다. 구체적으로, CAN 버스 프로토콜의 동기화는 아래에 설명 된 3 가지 측면을 통해 달성된다.


2.1 매개 변수 설정


소프트웨어를 통한 통신의 양쪽은 동일한 보드 속도, 동일한 위상 조정 세그먼트 길이, 동일한 동기화 점프 너비를 설정하여 위의 세 가지 요소를 통해 캔 버스의 전송 프로세스에서 비트 시간의 길이를 정의합니다. 또한 샘플링 포인트의 위치,도 2에 도시 된 비트 구조,도 2에 도시 된 바와 같이, TQ 시간의 프로토콜에 정의 된 그림에서 클럭 시계는 외부 시계 또는 CPU의 주변 시계. CAN 컨트롤러의 기본 클록 신호는 외부 클록 또는 CPU 주변 시계의 주파수를 나누어 얻습니다. SS 세그먼트는 시작 세그먼트에 해당하고 버스의 호핑 에지는이 기간 동안 발생하고 TESG1은 전송 세그먼트 및 위상 조정 세그먼트 1에 해당하고 TESG2는 위상 조정 세그먼트 2에 해당하며 High- 스피드 버스, 컨트롤러 샘플 및 TESG1과 TESG2 사이의 버스를 구별합니다.

 

o4YBAF_kARqAUmkJAAC0vUwBkGQ744.png

 

2.2 고정 프레임 구조


CAN2에서 CAN2에서 버스 상태를 모니터링 할 수 있도록 고정 프레임 구조를 명확하게 정의 할 수 있습니다. 0 프로토콜 사양은 표준 프레임 및 확장 프레임 두 프레임 구조로 나뉩니다. 차이는 중재 도메인, 11- 비트 식별자를 사용한 표준 프레임, 확장 프레임에는 29- 비트 식별자, 특정 표준이 있습니다. 프레임, 확장 프레임 구조.

 

2.3.3 하드 동기화 및 재 동기화


2.3.1 하드 동기화


소위 하드 동기화는 버스 유휴 기간 동안 (즉, 버스 레벨이 연속적인 열성 비트로 표현됨), 컨트롤러가 열성 레벨에서 지배적 수준으로 점프를 감지하면 이번에는 현재 버스의 스테이션으로 데이터를 보내기 시작한 다음 CAN 컨트롤러의 비트 상태 카운터가 그림 2에 표시된 SS 세그먼트와 동기화하도록 강제로, 동시에 비트 시계가 다시 시작하기 시작합니다. 이 점은 이후 (CAN 비트 시간은 상단 소프트웨어 계층에 의해 설정됩니다). 프레임 결정 시작에는 하드 동기화가 사용됩니다.


2.3.2 재 동기화


CAN 버스 프로토콜에서, 재 동기화는 비트 피킹 메커니즘을 기반으로 구현된다. HDLC 프로토콜과 유사하게, CAN의 프레임 구조에서, CRC 시퀀스 비트가 CRC 시퀀스 비트까지 프레임의 시작에서 5 개의 연속 비트가 감지되면, CAN 컨트롤러는 약간의 반대 극성을 자동으로 삽입한다. 재 동기화는 데이터 전송 중에 CAN 컨트롤러가 버스의 호핑 에지와 노드의 내부 비트 시간의 차이를 감지하여 위상 조정 세그먼트 1 및 위상 조정 세그먼트 2를 조정하고 조정 크기는 동기화에 의해 프로그래밍된다는 것입니다. 호핑 너비 및 조정 크기는 TQ로 설정됩니다. 특정 조정 규칙은 전송 프로세스에서 CAN 컨트롤러가 감지 한 버스의 호핑 에지가 Node의 내부 SS 비트 시간 내에있는 경우 CAN 컨트롤러에 의해 조정되면 조정이 필요하지 않다는 것입니다. 스킵 에지가 TESG1 세그먼트에있는 경우 노드의 비트 시간에 비해 버스의 비트 시간이 지연되면 CAN 컨트롤러는 노드의 TESG1 비트 시간을 확장합니다. 지연 시간 (t 0의 값) 값은 동기화 스킵 너비보다 크고 확장 시간은 동기화 스킵 너비 값입니다. 노드는 버스의 비트 시간의 차이를 확장합니다. 점프 모서리가 TESG2 세그먼트에있는 경우 버스의 비트 시간이 노드의 비트 시간에 비해 오버런임을 나타내는 경우 CAN 컨트롤러는 노드의 TESG2 비트 시간 기간을 줄이면 특정 조정 규칙이 유사합니다. TESG1 세그먼트의 것.


3. 버스 주소 메커니즘 분석


산업 이더넷, RS485 및 기타 버스와 달리 CAN 버스는 노드 주소 대신 패킷 ID를 통해 데이터를 보내고 수신합니다. 즉, CAN 버스의 노드에는 고정 된 주소가 없으며 각 노드를 구성해야합니다. ID 테이블이있는 소프트웨어 (노드의 승인 필터 단위), 버스의 데이터 패킷의 ID 번호가 노드의 ID 테이블에 존재하는 경우 패킷을 성공적으로 해당 노드의 승인 필터 장치의 수락을 전달하고 상부 소프트웨어 처리 장치로 전송되어 그에 따라 처리됩니다. 그렇지 않으면 패킷이 폐기됩니다. 예를 들어, 버스의 노드 A가 노드 B로 패킷을 보내려면 패킷의 ID 번호가 노드 B의 ID 테이블에 있어야합니다. 마찬가지로, 노드 A가 버스에 패킷을 방송하려는 경우. 패킷의 ID 번호는 버스의 다른 모든 노드의 ID 테이블에 있어야합니다. 앞에서 언급했듯이 ID 테이블은 소프트웨어를 통해 구성되지만 허용 필터링 기능은 CAN 컨트롤러의 하드웨어 장치 인 수락 필터를 통해 수행되므로 수용으로 인한 지연은 속도 측면에서 작습니다. 또한,이 주소 메커니즘을 사용하는 장점은이 버스를 사용하는 시스템이 매우 유연하다는 것입니다. 즉, 추가 또는 삭제 된 새로운 노드는 시스템의 원래 노드 간의 통신에 영향을 미치지 않습니다.

 

다음은 NXP의 LPC2478 칩과 통합 된 CAN 컨트롤러를 CAN 버스 시스템의 주소 구성 메소드를 지정하는 예제로 사용됩니다. 그림 3에서 볼 수 있듯이 버스에서 전송 될 데이터 패킷, 즉 패킷 ID 및 해당 노드 계획에 따라 먼저 분류됩니다. 예를 들어, 우리 시스템에는 주로 다음 유형의 패킷이 있습니다 : 쿼리 패킷, 쿼리 패킷 및 제어 명령 패킷의 노드 특성에 해당하는 제어 명령 패킷 (동작 및 매개 변수 패킷 포함), 알람 패킷 및 피드백 매개 변수 패킷은 주로 각 슬레이브 장치로 전송되는 마스터 스테이션입니다. 알람 데이터 패킷 및 피드백 매개 변수 데이터 패킷은 주로 슬레이브의 각 노드 단위에서 마스터 장치 노드로 전송됩니다. 그런 다음 각 노드의 승인 필터 단위는 ID 분류에 따라 구성되며 특정 구성 메소드는 다음과 같습니다. 첫째, 노드 특성에 따라 해당 수락 필터 작동 모드를 구성합니다. OFF 모드 (버스 메시지를 수신하지 않음). , 바이 패스 모드 (버스의 모든 메시지 수신) 및 일반 작업 모드 (하드웨어 필터링). 일반 작동 모드에 대한 구성이 있으면 해당 승인 필터 테이블 (ID 테이블)을 구성해야합니다. 즉, 노드는 해당 ID 테이블 영역을 채우기 위해 노드 컨트롤러의 패킷 ID 번호를 수신해야합니다. 그리고 이것은 CAN 버스 노드 주소 할당 작업을 완료합니다. 일반적으로 ID 테이블은 다음 네 가지 영역으로 나뉩니다. 명확한 표준 프레임 식별자 영역, 표준 프레임 그룹 형식 식별자 영역, 명확한 확장 프레임 형식 식별자 영역 및 확장 프레임 그룹 형식 식별자 영역으로 나뉩니다. 그 중에서도 명시적인 형식은 단일 독립 ID 식별자이며 그룹 형식 영역은 연속 번호가 id 식별자입니다.


4. 버스 중재 메커니즘 분석


버스 중재는 버스에 데이터 버스 프로토콜 처리 방법을 보내기 위해 동시에 두 개 이상의 노드가있을 때를 나타냅니다. CAN 버스는 비파괴 중재 메커니즘을 사용합니다. 즉, 버스에서 두 개 이상의 노드가 데이터를 보내기 위해 고위급 패킷 노드 중재가 승리하면 데이터를 계속 보낼 수 있으며 기타 중재 실패를 계속할 수 있습니다. 노드는 전송 상태를 종료하고 다른 버스 중재 메커니즘 (예 : LAN의 CSMA)과 함께 수신 노드로 변합니다. (다른 버스 중재 메커니즘 (예 : CSMA/CD)과 비교할 때 전송 된 데이터를 파괴 할뿐만 아니라 다른 버스와 비교하여 캔 버스의 장점 중 하나 인 데이터 전송 지연을 일으키지 않습니다. 그리고 주로 캔 버스의 다음 두 가지 특징에 의해 실현됩니다. 1) 캔 버스의 선과 특성, 즉 버스의 둘 이상의 노드가 동시에 지배적이고 보이지 않는 레벨을 보낼 때 버스 수준은 지배적입니다. 2) 캔 버스의 선과 특성, 즉 버스의 하나 이상의 노드가 동시에 지배적이고 보이지 않는 레벨을 보낼 때 버스 레벨은 지배적 수준을 보여줍니다. 2) 컨트롤러는 컨트롤러가 보이지 않는 레벨을 보내지 만 버스를 가시 레벨로 감지 할 때 데이터를 전송하는 동안에도 버스 수준 상태를 모니터링하고 있습니다. 노드 중재는 실패하고 수신 노드로 변합니다.


5. 버스 견고성 분석


CAN 버스의 견고성은 노드 및 버스 패킷 보안의 실시간 탐지 및 모니터링을 통해 실현됩니다. 또한 CAN 버스는 차동 신호를 사용하여 외부 간섭 신호를 강력하게 억제합니다. 아래에서 구체적으로 설명합니다.


5.1 버스 파형의 실시간 모니터링


CAN Controller는 전원을 켜고 나서 버스에서 다른 노드가 전송하는 데이터 패킷을 항상 모니터링 할뿐만 아니라 오류를 감지하면 데이터 패킷을 실시간으로 전송하는 프로세스에서 자체적으로 데이터를 자체적으로 모니터링합니다. 패딩 오류, CRC 오류, 서식 오류 또는 응답 오류는 노드가 해당 오류 플래그를 보낼 오류 (오류 활성화 또는 오류 인식 상태)의 상태를 기반으로합니다. 실제로, 오류 활성화 사이트 만 활성화 오류 로고 (즉, 6 연속 지배적 인 비트와 8 개의 열성 비트의 오류 로고를 정의 함)를 보내는 반면 버스의 노드에 영향을 미칩니다. 오류 인식 상태의 노드는 오류 인식 로고가 실제로 버스에 영향을 미치지 않습니다 (버스의 유휴 상태로 전송 된 6 개의 열성 레벨은 동일합니다).


5.2 노드 권한을 결정하기위한 노드 상태의 실시간 모니터링


노드는 버스로 전송 된 패킷에 따라 상태 (오류-활성화, 오류 인식 또는 버스 오프 상태)를 실시간으로 변경합니다. 오류 활성화 상태의 노드는 일반적으로 버스 통신에 참여하고 오류 인식 유닛은 버스 통신에 참여하지만 다음 보내기를 시작하기 전에 8 개의 추가 암시 적 비트를 보내야합니다. 표 1과 같이 버스에 전송 된 패킷의 경우 15- 비트 CRC 시퀀스는 시작 비트, 중재 필드, 제어 필드 및 데이터 필드 (있는 경우)의 모니터링을 구현합니다. 데이터를 수신하고 수신 된 CRC 시퀀스와 비교할 때 전송 노드와 동일한 알고리즘에 따라 패킷의 CRC 시퀀스를 생성합니다. 오류이며 수신 노드는 수신 노드에 응답하지 않습니다. 패킷에 응답하지 않으며 보내는 노드는 응답 오류를 감지하고 패킷을 재현합니다. 결론적으로 Can Bus는 데이터 링크 계층과 물리적 계층을 통해 높은 데이터 보안 및 버스 안정성을 달성했습니다.


6. 결론


ISO11898 프로토콜 사양을 기반으로, 논문은 CAN 버스 노드 동기화 메커니즘, 노드 주소 메커니즘, 버스 중재 메커니즘 (즉, 버스 충돌 해상도 메커니즘) 및 커뮤니케이션 관점 및 동일한 버스 견고성의 실현 원리 및 기준을 자세하게 분석합니다. 시간은 캔 버스의 응용 특성과 버스가 실제 시스템에 적용될 때 버스의 시스템 계층 구조를 간단히 소개합니다. CAN 버스 프로토콜에 대한 심층적 인 이해와 실제 시스템에 캔 버스의 적용. CAN 버스 프로토콜을 이해하고 CAN 버스를 특정 엔지니어링 프로젝트에 적용하고 특정 요구 사항에 대한 버스 시스템을 조사하거나 개발하기위한 가이드입니다.

문의 보내기

whatsapp

전화

이메일

문의