Arduino에서 RGB LED 스트립을 원격 제어합니다. RGB LED를 Arduino에 연결합니다. LED 스트립을 Arduino 컨트롤러에 연결하기

ENG 192Kb 제어 영역 네트워크 루스 CAN 2.0A 루스 CAN 2.0V 높은 수준의 CAN 프로토콜 차량 탑재 시스템용 타이어

CAN(제어 지역 네트워크) - 일부 메커니즘 또는 기업의 "지능형" 입력/출력 장치, 센서 및 액추에이터 네트워크에 연결을 제공하는 직렬 버스입니다. 여러 대의 마스터 장치를 고속도로에 배치할 수 있는 프로토콜을 사용하여 실시간 데이터 전송 및 오류 수정, 높은 노이즈 내성을 제공하는 것이 특징입니다. CAN 시스템에는 버스에 연결된 장치의 작동을 보장하는 다수의 미세 회로가 제공되며, BOSH는 자동차용으로 개발을 시작하여 현재 산업 자동화에 널리 사용되고 있습니다. 커넥터의 핀아웃이 그림에 표시되어 있습니다.

  • 분산 제어 시스템에서 신뢰성이 높고 저렴한 통신 채널을 구성하도록 설계되었습니다. 인터페이스는 산업, 에너지 및 운송 분야에서 널리 사용됩니다. 저렴한 멀티플렉스 채널과 고속 네트워크를 모두 구축할 수 있습니다.
  • 전송 속도는 소프트웨어에 의해 설정되며 최대 1Mbit/s까지 가능합니다. 사용자는 거리, 가입자 수, 전송선 용량을 기준으로 속도를 선택합니다.
거리, m 25 50 100 250 500 1000 2500 5000
속도, Kbit/s 1000 800 500 250 125 50 20 10
  • 연결된 최대 가입자 수 이 인터페이스실제로 사용된 트랜시버의 부하 용량에 따라 결정됩니다. 예를 들어 PHILIPS PCA82C250 트랜시버를 사용하는 경우 110입니다.
  • CAN 프로토콜은 원래의 메시지 주소 지정 시스템을 사용합니다. 각 메시지에는 전송된 데이터의 목적을 결정하는 식별자가 제공되지만 수신자의 주소는 결정되지 않습니다. 모든 수신자는 하나 또는 여러 개의 식별자에 응답할 수 있습니다. 여러 수신자가 하나의 식별자에 응답할 수 있습니다.
  • CAN 프로토콜에는 개발된 오류 감지 및 신호 시스템이 있습니다. 이를 위해 비트 단위 제어, 비트 스트림 직접 채우기, CRC 다항식으로 메시지 패킷 확인, 메시지 패킷 모양 모니터링, 데이터 패킷의 올바른 수신 확인 등이 사용됩니다. 해밍 간격 d=6. 오류가 감지되지 않을 확률은 4.7x10-11입니다.
  • CAN 프로토콜 중재 시스템은 버스에서 "충돌"하는 동안 정보와 시간의 손실을 제거합니다.
  • CAN 프로토콜을 사용하는 인터페이스는 정보 전송의 물리적 매체에 쉽게 적응합니다. 차동 신호, 광섬유, 오픈 컬렉터 등이 될 수 있습니다. 갈바닉 절연은 쉽습니다.
  • CAN을 지원하는 요소 베이스는 산업용 버전으로 널리 사용 가능합니다.
  • DIY 또는 직접 해보세요.
  • 초보자를 위한 전자제품
  • 오늘은 흥미로운 마이크로컨트롤러 플랫폼 CANNY를 소개하고 싶습니다. 이것은 기술에 대해 배울 수 있는 개요 기사이며, 후속 기사에서는 CAN 메시지 작업, CANNY를 Arduino Mega Server와 통합 및 이 조합이 제공하는 기회에 대해 설명할 것입니다.

    왜 캐니인가? 운송, 특히 모든 분야에서 널리 사용되는 CAN 버스의 이름에서 유래 현대 자동차온보드 네트워크로. 그렇다면 에 연결된 특수 컨트롤러로 무엇을 할 수 있습니까? CAN 버스너의 차?

    CAN 버스

    비유적으로 말하면, CAN 버스는 자동차의 신경계입니다. 이는 블록 및 시스템 상태에 대한 모든 정보는 물론 자동차의 동작을 크게 결정하는 제어 명령을 전송합니다. 헤드라이트 켜기, 도어 열기 및 닫기, 차량 내부 음악 재생 제어, 알람 활성화 등 이 모든 것이 이 버스를 통해 작동하고 제어됩니다.

    물리적으로 CAN 버스는 서로 얽힌 두 개의 와이어로 구성되며 설치 및 연결이 매우 쉽습니다. 단순함에도 불구하고 차동 특성으로 인해 다양한 간섭 및 간섭으로부터 잘 보호됩니다. 높은 신뢰성과 최대 1000미터의 넓은 허용 네트워크 길이 덕분에 CAN은 자동차 장비뿐만 아니라 다양한 제조업체들 사이에서 폭넓은 인기를 얻었습니다.

    CANNY 컨트롤러

    이는 CAN 버스 작업을 위한 "네이티브" 지원이 내장된 전문 컨트롤러 제품군입니다. 이는 하드웨어 부분과 소프트웨어 수준의 지원 모두에 적용됩니다.

    라인의 주력 제품은 가장 강력하고 최대의 기능을 갖춘 CANNY 7 컨트롤러입니다. 많은 수의메모리, 차량 릴레이를 직접 제어할 수 있는 강력한 출력, 지능형 시스템으로부터 보호 단락, 차량 온보드 네트워크의 전류 및 전압 서지로부터 보호 - 이 모든 작업은 이 컨트롤러에 의해 수행됩니다. 훌륭한 솔루션귀하의 아이디어와 프로젝트를 실현합니다.

    CANNY 7 외에도 컨트롤러 라인에는 몇 가지 더 많은 모델이 있습니다. 우리는 더 간단한 내장 모델인 CANNY 5 Nano를 사용하여 실험을 수행할 것입니다. 또한 CAN 버스 작업도 지원하지만 동시에 우리에게 이미 익숙한 Arduino Nano와 유사합니다.

    시각적 프로그래밍

    CAN 버스에 대한 개발된 지원은 이러한 컨트롤러의 유일한 기능이 아닙니다. 또한 CANNY에는 자체 프로그래밍 환경인 CannyLab이 있지만 "일반" 환경은 아니지만 프로그램 작성의 전체 프로세스가 이루어지는 시각적 환경이 있습니다. 해결 중인 문제의 알고리즘에 따라 기성 구조 블록을 조작하고 해당 매개변수를 설정하며 이러한 블록의 입력과 출력을 특정 순서로 연결합니다.

    코드 한 줄도 없습니다!

    좋은가요, 나쁜가요? 제 생각에는 이것은 습관의 문제입니다. "전통적인" 프로그래밍에 익숙한 나로서는 코드를 작성하는 대신 블록을 조작하는 것이 이례적이었습니다. 반면에 알고리즘 컴파일에 대한 이러한 특정 접근 방식을 지지하는 사람이 많으며 엔지니어와 "프로그래머가 아닌"에게는 이것이 가장 간단하고 가장 좋은 방법이라고 믿어집니다. 사용 가능한 방법마이크로 컨트롤러 프로그래밍.

    적어도 이런 식으로 프로그램을 작성하는 것이 나에게는 '재미' 있었고, 시간이 지나면서 나는 심지어 그것을 좋아하기 시작했다. 이 작업을 계속하면 잠시 후 코드 작성이 불편해 보일 수 있습니다.

    CannyLab은 무료 개발 환경이며 개발자 웹사이트에서 자유롭게 다운로드할 수 있습니다. 또한 특별한 설치 절차가 필요하지 않습니다. 아카이브 파일의 압축을 풀기만 하면 작업을 시작할 수 있습니다.

    연결

    CANNY 5 Nano를 컴퓨터에 연결하는 것은 Arduino 컨트롤러를 연결하는 것과 크게 다르지 않습니다. Silicon Labs CP210x 드라이버가 시스템에 있거나 다운로드한 CannyLab 배포판에서 설치한 후 Windows는 가상 COM 포트를 생성하고 CANNY를 사용할 준비가 됩니다. 내 경우에는 여전히 컴퓨터를 다시 시작해야 했지만 이것이 내 시스템의 기능일 수도 있습니다.

    실제 사례

    우리에게 익숙한 CannyLab의 작업을 수행하는 방법을 간단한 예를 통해 살펴보겠습니다. 아두이노 IDE. 전통적인 LED 깜박임부터 시작해 보겠습니다.

    CANNY 5 컨트롤러에는 핀 C4(채널 4)에 테스트 LED가 있습니다(Arduino의 핀 13에 있는 LED와 유사). 그리고 우리가 사용할 디스플레이와 실험용으로도 사용할 수 있습니다.

    CANNY 컨트롤러의 LED를 깜박이려면 무엇이 필요합니까? 네 번째 채널의 핀을 출력으로 구성하고 PWM 생성기의 신호를 이 출력에 적용하는 두 가지 작업만 수행하면 됩니다. 우리는 이미 Arduino IDE에서 이러한 모든 작업을 두 번 이상 수행했습니다. CannyLab에서 어떻게 보이는지 살펴보겠습니다.

    그럼 네 번째 채널 핀을 출력으로 구성해 보겠습니다.

    PWM 생성기 설정. 주기를 500밀리초로 설정하고 "Start" 생성기 입력에서 채우기를 250밀리초(즉, 50%)와 1(true)로 설정했습니다. 그게 전부입니다! 다른 작업은 필요하지 않습니다. 프로그램이 준비되었으며 남은 것은 이를 컨트롤러에 업로드하는 것뿐입니다.

    시뮬레이션 모드

    여기서는 컴퓨터에서 컨트롤러 작동을 시뮬레이션하고 개발된 프로그램을 "하드웨어" 컨트롤러의 메모리에 업로드하는 프로세스에 대해 몇 마디 말해야 합니다.

    CannyLab 개발 환경을 사용하면 컨트롤러 메모리에 프로그램을 쓰지 않고도 프로그램을 실행하고 디버그할 수 있습니다. 시뮬레이션 모드에서는 프로그램의 결과를 실시간으로 볼 수 있고, 심지어 프로그램의 동작을 방해할 수도 있습니다.

    컨트롤러에 채우기

    CANNY 컨트롤러가 작동하려면 프로그램을 업로드하기 전에("다이어그램" 개발자 용어로) 먼저 업로드해야 합니다. 운영 체제“장치/시스템 소프트웨어/기록”. 이 작업은 한 번만 수행하면 됩니다. 이를 수행하려면 컨트롤러에 해당하는 확장자를 가진 파일을 선택하십시오. .ccx.

    프로그램이 작성되고 디버깅되면 컨트롤러에 로드될 수 있습니다. 이 작업은 간단하게 수행됩니다. 메뉴에서 "장치 / 다이어그램 / 쓰기" 항목을 선택하고 몇 초 후에 프로그램이 컨트롤러에 기록됩니다.

    아날로그 입력

    CannyLab 개발 환경에서 CANNY 컨트롤러를 프로그래밍하는 원리를 더 잘 이해하기 위해 이 시스템에서 아날로그 입력을 사용하는 예를 살펴보겠습니다.

    컨트롤러의 핀 10의 전압 레벨을 모니터링하고 전압 레벨이 2.5V ± 20% 범위에 있으면 보드에 내장된 LED가 켜집니다.

    이전 예와 마찬가지로 LED의 동작을 제어할 수 있도록 4번 핀을 출력으로 구성합니다.

    채널 10에서 ADC를 켭니다.

    "논리적 AND" 블록은 작업을 완료하고 해당 출력을 통해 보드의 LED 작동을 제어합니다.

    그게 다야. 우리가 보통 Arduino에서 했던 일을 CannyLab에서는 쉽게 했습니다. 이 프로그래밍 환경에 익숙해지기만 하면 이 플랫폼에서 쉽고 자연스럽게 프로젝트를 만들 수 있습니다.

    이것들 간단한 예원리를 이해할 수 있도록 프로그래밍이 제공됩니다. 시각적 프로그래밍마이크로컨트롤러 CANNY. 안에 추가 작업시스템 웹사이트와 포럼의 훌륭한 도움말 문서와 개발자 지원이 도움이 될 것입니다.

    25.10.2012

    또는 자동차 진단에 더 친숙하게 들리는 것처럼 - CAN 버스

    *CAN이란 무엇인가요?

    * 관계 개방형 시스템(열려 있는 시스템 상호 연결(OSI))

    * 컨트롤러 영역 네트워크(CAN)

    * 기초적인원칙할 수 있다

    * 일본산 자동차를 예로 들면 CAN 버스는 어떤 모습일까요?

    거리의 자동차는 빠르게 활력을 되찾고 있으며 동시에 진단 및 수리와 관련된 새로운 문제를 숙지하고 해결해야 합니다. 일상 업무에서 서로 다른 사람 사이의 의사소통 문제에 점점 더 자주 직면하게 됩니다. 온보드 시스템자동차. 불과 몇 년 전만 해도 CAN 버스 오류로 진단을 받으러 오는 자동차가 있었다면(분류의 첫 번째 문자 진단 코드오작동 -) 드물게 손님이 있었는데 이제는 거의 일상적인 관행이되었습니다. 이 주제에 대한 정보는 원칙적으로 이용 가능하며 정보가 상당히 많습니다. 한편으로는 좋지만 다른 한편으로는 검색이 어느 정도 어렵습니다. 필요한 정보. 이 기사를 통해 나는 무엇보다도 먼저주고 싶습니다. 일반적인 생각시스템에 대해할 수 있다 ( ) 이제 막 익숙해지기 시작한 분들, 더 깊이 이해하고 싶은 분들을 위해.


    무슨 일이야?
    할 수 있다?

    컨트롤러 영역 네트워크 - 이 개념은 이후에 사용되기 시작했습니다.로버트 보쉬 GmbH 표준을 개발했다 산업용 네트워크, 주로 통일에 중점을 두었습니다. 단일 네트워크다양한 액츄에이터와 센서. 자동차 산업의 첫 번째 구현 중 하나가 여러 자동차 모델에서 수행되었습니다.메르세데스-벤츠 1992년에. 지금 이 순간까지 전자 제어실행 기능은 시스템에 따라 구축되었습니다. 하나의 제어 장치가 수신되었습니다. 전자 신호와 함께 다양한 센서처리한 후 적절한 명령을 다음으로 보냈습니다. 액추에이터(예: 연료 펌프, 인젝터, 점화 코일 등...) 자동차 제어 기능이 전자 장치로 옮겨가는 양이 늘어나면서 이러한 장치가 등장하게 되었습니다. 추가 시스템 ABS, SRS, AT, Immobilaser 등... 이러한 기능을 하나의 ECU에 결합하면 부피가 커지고 지나치게 복잡해질 뿐만 아니라 신뢰성도 떨어지게 됩니다. 차 전체. 이에 자동차 제조사들은 제어 기능을 분리하고 모든 시스템을 별도의 단위로 분리하는 길을 택해왔다. 그리고 모든 시스템을 하나의 전체로 연결하여 문제를 해결하려면 일반적인 작업자동차를 제어하고 통신 표준이 구출되었습니다. Robert Bosch GmbH의 CAN 그리고 이것은 자동차 산업에서 점점 더 널리 사용되고 있습니다. 오늘날 거의 모든 신차에는 이 시스템이 장착되어 있습니다.

    원칙적으로 모든 것이 간단하고 명확하지만 CAN 버스는 어떻게 작동합니까?작동 원리는 무엇에 기초합니까? 다음은 단일 온보드에 연결된 전자 제어 장치와 장치 간의 관계에 대한 한 가지 예입니다. 통신 네트워크자동차, -쌀. 1

    여기서는 연결된 블록만 고려합니다. 유선 네트워크, 하지만 21세기 자동차에서는 모든 것이 발견됩니다. 더 큰 적용그리고 무선 전송정보. 예를 들어 내비게이션 시스템, 차량 위치 추적(도난 방지), 타이어 공기압 모니터링, 원격 진단 등이 있습니다. 가까운 미래에는 자동차의 온보드 네트워크에서 내부 및 외부 정보 흐름이 통합되어 제어가 가능해질 것으로 예상됩니다. 차량~에 새로운 레벨주로 도로의 위험한 상황에 대한 경고 정보를 표시하고 차량 충돌 가능성을 적극적으로 완화하며 교통 흐름을 보다 합리적으로 분배하는 등의 영역에서 안전과 편안함을 제공합니다.

    약간의 배경 지식 - OSI(개방형 시스템 상호 연결).


    두 개 이상의 마이크로프로세서가 하나의 시스템에 상호 연결되면 다음과 같은 결과가 발생한다는 것은 명백합니다. 표준 프로토콜이는 네트워크 장치 간에 데이터가 전송되는 방법을 정의합니다. 이러한 프로토콜의 가장 일반적인 예는 다음과 같습니다. TCP/IP( 전송 제어 프로토콜/인터넷 프로토콜)은 인터넷에서 호스팅 서비스를 연결하는 데 사용됩니다. 전임자 TCP/IP는 프로토콜이었습니다 - 개방형 시스템 상호 연결(OSI) ). 이 프로토콜은 1982년 국제표준화국(International Bureau of Standardization)에 의해 개발되었습니다.국제 표준화기구(ISO 7498-1:1994(E)). OSI 이 프로토콜은 네트워크의 상호 연결 요구 사항을 정의하는 7개의 독립적인 요소로 구성되어 있기 때문에 "7계층" 모델이라고도 합니다. 다양한 레벨상호 작용.


    7가지 수준은 다음과 같습니다.

    1) 애플리케이션 레이어(애플리케이션 계층) - 이 수준은 어떤 응용 프로그램(프로그램)이 네트워크에 액세스할 수 있는지 결정합니다. 예: 이메일, 파일 전송, 터미널 원격 액세스그리고 웹 브라우저.

    2) 데이터 표현 수준 (프리젠테이션 레이어) - 이 수준에서는 데이터 압축 및 암호화 표준과 같은 문제를 결정합니다.

    3) 데이터 레벨(전송 계층) - 이 수준은 수신자 간의 데이터 전송에 대한 표준을 제공하고 오류 및 보안을 모니터링합니다.

    4) 네트워크 계층 (네트워크 계층) - 이 수준은 라우팅 문제를 담당합니다. 네트워크 트래픽데이터.


    5) 통신채널 레벨(데이터링크 계층아르 자형) - 이 수준은 데이터 전송 및 오류 제어의 동기화를 제공합니다.

    6) 의사소통 세션에 대한 통제 수준 (세션 계층) - 이 수준은 통신 세션의 시작과 끝을 표준화합니다. 다양한 응용그리고 네트워크 블록.

    7) 물리층 (물리층) - 이 수준은 표준을 정의합니다. 신체적 특성연결 및 커넥터 유형을 포함한 네트워크의 장치 전기적 특성케이블, 전압 레벨, 전류 등

    하지만 프로토콜로 해결된 문제는 OSI 안에는 없어 최대한으로자동차 전자 장치의 요구 사항을 충족했으며 결과적으로 엔지니어는로버트 보쉬 GmbH 프로토콜의 추가 개발로 개발되었습니다. OSI , 특수 프로토콜할 수 있다 모델의 물리적 및 데이터 링크 수준에 대한 표준을 정의한 것입니다. OSI 두 개 이상의 장치 간에 정보를 직렬로 전송하기 위해 실리콘을 사용합니다.

    CAN(컨트롤러 영역 네트워크)

    CAN은 Robert Bosch GmbH가 개발했습니다. 1980년대 초 자동차 산업을 위해 개발되었으며 1986년에 공식적으로 대중에게 공개되었습니다. 이 발전보쉬의 CAN 표준으로 채택되었습니다 ISO (ISO 11898 ), 1993년에 이름이 변경됨캔 2.0A , 식별이 가능하도록 1995년에 확장되었습니다. 많은 분량 네트워크 장치 V CAN 2.0B. 일반적으로 CAN 버스 두 개의 전선을 사용하여 모듈(또는 노드)을 네트워크에 연결합니다. 꼬인 쌍. 자동차 기업뿐만 아니라 많은 기업이 이를 구현하고 있습니다.할 수 있다 다양한 전자 제어 장치의 상호 연결을 위해 개발 중인 프로토콜입니다. 비공식 분류에서는 프로토콜로 연결된 장치를 말합니다.할 수 있다 시리즈 프로세서 보유 TouCAN이라고 불리는 MPC 5xx 모듈; 시리즈 프로세서 보유 MPC 55xx는 FlexCAN 모듈이라고 합니다. 할 수 있다 - 직렬, 다중 전송자, 멀티캐스트 프로토콜은 버스가 유휴 상태일 때 모든 노드가 메시지를 보낼 수 있고(다중 전송자), 모든 노드가 메시지를 수신하고 응답할 수 있음(멀티캐스트)을 의미합니다. 메시지를 시작하는 노드를 송신기라고 하며, 메시지를 보내지 않는 노드를 수신자라고 합니다. 모든 메시지에는 정적 우선순위가 할당되며, 전송 노드는 버스가 비활성화될 때까지 또는 더 높은 우선순위를 가진 다른 노드에서 메시지가 네트워크에 나타날 때까지 송신기로 유지됩니다. 이 프로세스는 메시지의 우선순위를 결정하는 중재라고 합니다. CAN 버스를 통한 메시지최대 8바이트의 데이터를 포함할 수 있습니다. 메시지 식별자는 데이터 내용을 설명하며 수신 노드가 네트워크의 대상(즉, 메시지가 전달되는 대상 노드)을 결정하는 데 사용됩니다. 짧은 네트워크(40m 이하)에서는 메시지 전송 속도가 최대 1Mbit/s에 달할 수 있습니다. 네트워크 거리가 길어지면 사용 가능한 전송 속도가 감소합니다(예: 최대 500m 길이의 네트워크에서 125Kbps). 고속 CAN(고속" CAN ) 네트워크에서는 데이터 전송 속도가 500Kbps 이상인 네트워크가 고려됩니다.

    CAN의 기본 원리


    사양 세부정보할 수 있다 프로토콜은 다음에 자세히 설명되어 있습니다.로버트 보쉬 GmbH , “ CAN 사양 2.0,” 1991. 형식으로 문서 보기 PDF 다음 주소로 가능http://esd.cs.ucr.edu/webres/can20.pdf . 다음으로 CAN을 통해 데이터가 전송되는 방식, CAN 메시지의 구조, 메시지 전송 오류 처리 방법에 대해 최대한 간략하게 설명하겠습니다.

    메시지에는 네 가지 유형이 있습니다. CAN 또는 프레임: 데이터 프레임( 데이터 프레임 ), 삭제된 프레임(원격 프레임 ), 잘못된 프레임(오류 프레임 ) 및 과부하 프레임(과부하 프레임 ).

    데이터 프레임 - 표준 CAN 메시지, 송신기에서 다른 네트워크 노드로 데이터 방송.

    원격 프레임 - 특정 네트워크 노드로부터 데이터를 요청하기 위해 송신기가 방송하는 메시지.

    오류 프레임 - 네트워크에서 오류를 감지한 모든 노드에 의해 전송될 수 있습니다.

    과부하 프레임 -수신된 데이터 사이에 추가 일시 중지를 제공하기 위한 요청으로 사용됩니다(데이터 프레임 ) 또는 데이터 요청(원격 프레임).

    CAN 2.0A 및 CAN 2.0B 표준에 대한 데이터 프레임 간의 차이점은 아래에 설명되어 있습니다. 2

    형식의 차이점 CAN 2.0A 및 CAN 2.0B 그게 데이터 프레임인가요?캔 2.0B 표준 11비트 데이터 프레임 식별자와 29비트 확장 데이터 프레임 식별자를 모두 지원합니다. 표준 및 확장 형식 프레임은 동일한 버스에서 쉽게 전송될 수 있으며 디지털 형식의 동등한 식별자도 가질 수 있습니다.

    이 경우 표준 프레임이 더 높은 우선순위를 갖습니다.쌀. 삼


    CAN 2.0A 표준 메시지 프레임에 대한 설명


    메시지 시작(프레임 시작(SOF)

    식별자( 식별자 ) - 11비트, 고유 식별자, 우선순위를 나타냅니다.

    원격 이전 요청() - 1비트, 메시지에서는 우세하고 메시지 전송 요청에서는 열성입니다.

    예약된 ) - 2비트가 지배적이어야 합니다.

    데이터 코드 길이(데이터 길이 코드(DLC)

    전송된 데이터 필드(데이터 필드DLC.

    순환 중복 검사(CRC)) - 15비트.

    구분 기호 CRC

    확인( 승인(ACK)

    ACK 구분 기호 - 1비트는 열성이어야 합니다.

    메시지 종료(프레임 끝(EOF)) - 7비트, 열성이어야 함, -쌀. 4


    CAN 2.0B 표준의 메시지 프레임에 대한 설명

    메시지 시작(프레임 시작(SOF) ) - 1비트, 지배적이어야 합니다.

    표준 및 확장 형식 식별자(식별자 ) - 11비트, 고유 식별자, 베이스에 해당 ID 확장된 형식으로.

    확장 형식 식별자(식별자 – 확장 형식 ) - 29비트, 11개의 기본 비트로 구성 ID 18비트 확장 ID.

    원격 이전 요청(원격 전송 요청(RTR)) 표준 및 확장 형식 - 1비트, 메시지에서 우세하고 메시지 전송 요청에서 열성입니다. 표준 형식에서는 11개의 식별자 비트가 뒤에 옵니다. RTR.

    삭제된 요청 교체(대리자원격요구 ( SRR) ). 확장 형식(1비트)의 경우 열성이어야 합니다. SRR 비트 위치에서 확장된 메시지 형식으로 전송됩니다. RTR 표준 메시지에서. 표준 메시지와 확장 메시지 간의 중재에서 열성 SRR은 표준 메시지에 우선 순위를 부여합니다.

    필드 IDE– 표준 및 확장 형식의 경우 - 1비트는 확장 형식의 경우 열성이어야 하고 표준의 경우 지배적이어야 합니다.

    예약하다 ( 예약된 r0) 을 위한 표준 형식- 1비트는 지배적이어야 합니다.

    예약하다 ( r1, r0 예약됨) 확장 형식의 경우 - 2비트, 열성이어야 합니다.

    데이터 코드 길이(데이터 길이 코드(DLC) ) - 4비트, 데이터 바이트 수(0-8).

    전송된 데이터 필드(데이터 필드 ) - 0~8바이트의 크기는 필드에 정의됩니다. DLC

    CRC(순환 중복 검사(CRC) ) ) - 15비트.

    CRC 구분 기호 - 1비트는 열성이어야 합니다.

    승인(ACK ) ) - 1비트, 송신기가 열성 신호를 보냅니다. 수신자가 지배적임을 확인합니다.

    ACK 구분 기호 - 1비트는 열성이어야 합니다.

    메시지 종료(프레임 끝(EOF) ) ) - 7비트, 열성이어야 합니다.

    CAN 데이터 프레임

    CAN 데이터 프레임 7개의 필드로 구성됩니다. 프레임 시작( SOF ), 중재, 제어, 데이터, 순환, 중복성 검사(CRC), 승인(ACK) 및 프레임 끝(EOF) ). 메시지 비트할 수 있다 "지배적"(0) 또는 "열성"(1)으로 지정됩니다. 필드 SOF 하나의 지배적인 비트로 구성됩니다. 모든 네트워크 노드는 권한 명령이 메시지를 전송하고 동시에 전송을 시작할 때까지 동기적으로 대기합니다. 중재 체계는 메시지 전송을 시도하는 노드 중 어느 노드가 최우선 순위를 가지며 실제로 버스를 제어할지 결정합니다.


    중재

    중재 메시지 필드할 수 있다 11비트 또는 29비트 식별자와 원격 전송 비트( RTR ). 중재 계획 CAN은 “ 다중 액세스 및 충돌 감지 기능을 갖춘 제어 캐리어” 또는 CSMA/CD , 이는 다음을 보장합니다.우선순위가 가장 높은 가장 중요한 메시지가 네트워크를 통해 먼저 전송됩니다.. 메시지의 우선 순위는 중재 필드에 있는 식별자의 숫자 값에 따라 결정됩니다. 숫자 값이 가장 낮은 필드의 우선 순위가 가장 높습니다. 비파괴적이고 지능적인 중재는 경쟁하는 송신기 간의 충돌을 해결합니다. 이는 버스가 AND 게이트( AND 게이트 ). 임의의 노드가 네트워크를 통해 우세 속성(0)을 쓰면 각 노드는 송신 노드가 지정한 목적에 관계없이 우세 비트를 읽습니다. 각 전송 노드는 항상 전송된 모든 비트에 대한 응답을 읽습니다. 노드가 메시지 전송 요청의 열성 비트를 전송하고 메시지 읽기를 위한 우성 비트를 수신하면 즉시 전송을 중지합니다.

    네트워크 중재의 우선순위는 세 번째 노드가 가장 높은 우선순위를 갖고 첫 번째 노드가 가장 낮은 우선순위를 갖는 경우 아래에 설명되어 있습니다.쌀. 5

    RTR 비트 메시지 전송을 위한 메시지와 메시지 수신을 위한 원격 요청을 구별하기 위해 포함됩니다. 전송을 위한 표준 메시지에서 (데이터 프레임) RTR 비트 메시지 수신을 위한 원격 요청에서 지배적이어야 하며(원격 프레임 ) 열성이어야 합니다.

    제어 및 데이터 필드

    데이터 코드의 길이를 제어하는 ​​필드( DLC )은 6비트로 구성되며(이 중 최하위 4비트만 사용됨) 메시지의 데이터 양을 나타냅니다. 단일 메시지에는 최대 8바이트의 데이터만 보낼 수 있으므로 해당 필드는 DLC 000000에서 000111 사이의 값을 취할 수 있습니다. 전송할 데이터는 데이터 필드에만 포함됩니다. 가장 중요한 바이트가 먼저 전송됩니다( MSB(최상위 바이트) ) 데이터 바이트에서.

    오류 처리

    CAN 프로토콜에서 5가지 수준의 오류 감지가 구현됩니다. 메시지 수준에서 순환 중복 검사가 수행됩니다(순환 중복 검사(CRC) ), 메시지 확인 및 확인 필수 확인 (승인(ACK) ). 레벨 확인 비트는 모니터와 채우기로 구성됩니다.

    코드를 사용하여 순환 중복 오류가 감지됩니다. CRC 크기는 15비트이며, 메시지 내용에서 송신기가 계산합니다. 메시지를 받는 각 수신자는 코드를 다시 계산합니다. CRC 전달된 값과 비교합니다. 이 두 계산 사이의 불일치로 인해 플래그(깃발 ) 오류. 오류 플래그를 설정하는 테스트된 메시지는 수신자가 구분 기호에서 유효하지 않은 비트를 감지한 경우입니다. CRC, ACK 구분 기호 , 메시지 끝에서 EOF 또는 3비트 메시지 분리 공간에 있습니다. 궁극적으로 각 수신 노드는 구분 셀에 주요 비트를 씁니다. ACK , 메시지를 보낸 노드가 이를 읽습니다. 그리고 수신자의 메시지 수신이 확인되지 않은 경우(수신 노드가 작동을 멈췄기 때문에) 확인 오류 플래그가 설정됩니다( ACK).

    비트 수준에서 우리는 수신자가 보낸 메시지 수신 확인을 모니터링하는 동안 해당 메시지의 발신자가 전송된 각 비트를 다시 읽는다는 점을 이미 언급했습니다. 모니터링된 값이 전송된 값과 다른 경우 비트 수준에서 오류가 감지된 것입니다. 또한 비트 수준 오류는 "스터핑"에 의해 감지됩니다. 5개의 연속적인 동일한 비트가 메시지에서 전송된 후 반대 극성의 "스터핑" 비트가 송신기에 의해 전송된 비트 스트림에 삽입됩니다("스터핑" 비트는 필드의 메시지에 삽입됨 SOF - CRC 필드 ). 수신자는 삽입된 메시지를 자동으로 확인합니다. 수신 네트워크 노드 중 하나라도 수신된 메시지에서 6개의 연속된 동일한 비트를 감지하면 오류("삽입" 없음)가 기록됩니다. 오류 감지 외에도 삽입은 비트스트림에 0이 아닌 끝이 충분히 있는지 확인합니다( NRZ(비영점 복귀) ) 동기화를 유지합니다.

    오류 메시지(CAN 오류 프레임)

    송신 또는 수신 노드가 오류를 감지하면 즉시 현재 메시지 수신 또는 전송을 중지합니다. 오류 플래그라고 하는 오류 메시지는 6개의 주요 비트와 8개의 열성 비트로 구성된 오류 메시지 구분 기호로 구성됩니다. 이 비트 문자열은 삽입 규칙을 위반하므로 다른 모든 노드도 오류 메시지를 보고합니다. 심각한 수의 오류가 감지되면 노드는 결국 자체적으로 종료됩니다. 특히 CAN 기술이 사용되는 제조 및 자동차 전자 애플리케이션의 신뢰성을 위해서는 네트워크가 서로 분리될 수 있어야 합니다. 무작위 오류(전력 서지, 소음 또는 기타 일시적인 원인으로 인해) 장비 결함으로 인해 장치의 오작동을 일으키는 영구적인 것으로부터 발생합니다. 결과적으로 노드는 감지된 오류 수를 저장하고 추적합니다. 노드는 기록된 오류 수에 따라 세 가지 모드 중 하나일 수 있습니다.

    해당 노드의 각 송신 또는 수신 버퍼에서 보고된 오류 수가 0보다 크고 128보다 작은 경우 해당 노드는 "오류가 있는 활성"으로 간주됩니다(오류 활성 ), 이는 노드가 완전히 작동하더라도 여전히 작동함을 나타냅니다. 적어도오류가 하나 발견되었습니다.

    기록된 오류 수가 128에서 255 사이이면 노드는 "오류가 있는 수동" 상태가 됩니다("오류 수동적" ) 모드. 오류 수동 모드에서 노드는 메시지를 다시 보내기 전에 8개의 열성 비트를 전송하여 버스가 사용 가능하다는 것을 인식하여 더 느린 속도로 전송합니다.

    기록된 오류 수가 255개를 초과하면 노드는 "네트워크 연결 끊김" 모드로 전환됩니다(버스에서 내리다 ), 자신의 연결을 끊습니다.

    수신 오류는 고려된 총 오류 수에 1을 추가하고, 전송 중 오류는 고려된 총 오류 수에 8을 추가합니다. 이후 오류가 없는 메시지는 고려되는 오류 수를 각각 1씩 점차적으로 줄입니다. 오류 없는 메시지. 고려된 총 오류 수가 0으로 돌아가면 노드는 정상 작동으로 돌아갑니다. 유휴 모드의 노드버스에서 내리다 모드로 들어갈 수 있다오류 활성 모니터링된 11개의 연속 열성 비트 네트워크에 128개의 항목이 입력된 후. 송신 노드가 필드까지 오류를 발견하지 못한 경우 메시지는 오류가 없는 것으로 간주됩니다. EOF . 손상된 메시지는 버스가 무료가 되는 즉시 다시 전송됩니다.

    특정 네트워크 노드에서 데이터 요청(CAN 원격 프레임)

    네트워크상의 다른 노드로부터 데이터가 필요한 노드는 해당 데이터 요청(원격 프레임 ). 예를 들어, 자동차의 중앙 잠금 제어 마이크로프로세서는 변속기 ECU의 변속기 선택기 위치(주차 위치 여부)를 알아야 합니다. 데이터 획득 요청의 구조는 다음 구조와 유사합니다. 표준 메시지데이터 필드 없이만(데이터 필드 ) 그리고 열성 RTR 비트.

    수신된 데이터와 데이터 사이에 추가 일시 중지 요청 자유 공간메시지 간(오버로드 프레임 및 프레임 간 공간)

    네트워크 노드가 처리할 수 있는 것보다 더 빠르게 메시지를 수신하는 경우 수신된 데이터 사이에 추가 일시 중지를 제공하기 위한 요청이 생성됩니다(과부하 프레임 ) 제공 추가 시간수신된 데이터 또는 메시지 수신 요청 사이(원격 프레임 ). 오류 메시지와 유사합니다.과부하 프레임 두 개의 비트 필드가 있습니다.깃발 6개의 주요 비트로 구성된 과부하와 8개의 열성 비트로 구성된 과부하 구분 기호입니다. 오류 메시지와 달리 총 개수는과부하 프레임은 유지되지 않습니다.

    메시지 사이의 공간은 메시지나 원격 전송 요청 사이의 버스 유휴 시간과 마찬가지로 3개의 열성 비트로 구성됩니다. 타임아웃 동안 어떤 노드도 전송을 시작할 수 없습니다(타임아웃 동안 주요 비트가 감지되면과부하 프레임 생성됩니다). 버스 유휴 시간은 노드가 전송할 내용이 있을 때까지 지속되며, 전송이 시작되는 순간 버스에 지배적인 비트가 나타나는 것은 메시지 전송 시작을 알립니다.

    할 수 있다 지속 가능하고 단순하며 유연한 제공 네트워크 솔루션제조, 자동차 및 기타 여러 응용 분야에 사용됩니다.CAN 프로토콜의 주요 단점- 메시지 지연이 확실하지 않음(존재로 인해)오류 프레임, 과부하 프레임 및 재전송), 지연 시간 증가로 인해 네트워크 트래픽이 증가합니다. 일반적으로 타이어 사용량은 30%를 초과하지 않아야 합니다. 최대 전력우선순위가 낮은 메시지에 허용할 수 없는 대기 시간이 발생하지 않도록 합니다. 버스 이용률은 두 가지 양으로 나누어 정의됩니다.전송에 사용된 총 비트 수로 나눈 전송에 사용할 수 있는 총 최대 비트 수이며 다음과 같이 계산됩니다.

    1단계 - 기록된 가장 느린 시간 단위 ≥ 선택 정기 메시지온라인(보통 1초).

    2단계 - 모든 주기적 메시지가 식별됩니다.

    3단계 - 각 메시지에 대해 대략 다음과 같습니다. 같은 사이즈, 47개의 서비스 비트가 추가됩니다. (서비스 데이터 필드의 크기 - SOF + Arbitration + RTR + Control + CRC + Acknowledgement + EOF +

    프레임 간 공간 = 1 + 11 + 1 + 6 + 16 + 2 + 7 + 3 = 47비트).

    4단계 - 메시지에 사용된 비트 수는 메시지 크기(비트)와 단위 시간당 수행된 전송 수를 곱하여 계산됩니다.

    5단계 - 전송된 메시지에 사용된 모든 비트를 합산하여 총 네트워크 트래픽 양을 추정합니다. 최악의 네트워크 트래픽 예측을 얻으려면 이 값에 안전 계수 1.1을 곱하십시오.

    6단계 - 마지막으로 전송에 사용된 총 비트 수를 전송에 사용할 수 있는 총 최대 비트 수(예: 125Kbps 또는 500Kbps에 시간 단위를 곱한 값)로 나누어 예상 버스 활용률을 얻습니다.쌀. 6


    시간 트리거 프로토콜


    실시간 네트워크 제어를 위해서는 버스 부하에 관계없이 극단적인 타이밍에 메시지가 선택되도록 보장하는 통신 프로토콜을 구현하는 것이 바람직합니다. 일시적인 통신 수준을 제어하는 ​​프로토콜의 예데이터 CAN은 "시간 트리거 CAN", 즉 TTCAN(ISO 11898-4)입니다. TTCAN 메시지에는 두 가지가 있습니다 특별한 유형, "시간의 창"이라고 불림(시간 창 ): 특권 시간 창(독점 시간 창 ) 및 중재 시간 창(시간 창 중재). 독점 기간 부착 특별한 메시지, 주기적으로 전송됩니다. 따라서,독점 기간 버스에 접근하기 위해 경쟁하지 마십시오.중재 기간 엄격한 시간 제한이 없는 메시지에 사용됩니다.

    중재 기간 일반 메시지처럼할 수 있다 ,중재를 통해 우선순위에 따라 버스 접근권을 놓고 경쟁합니다.시간 트리거 CAN 프로토콜을 사용하려면 네트워크에 "마스터 노드"가 있어야 합니다(마스터 노드 )는 네트워크 시간 신호(글로벌 시간이라고 함)를 주기적으로 브로드캐스트합니다.글로벌 시간 )) 특별한 정보 메시지에서. 내결함성을 높이려면 네트워크에 잠재적인 마스터 노드가 여러 개 있어야 합니다. 마스터 노드가 실패하는 경우(특수 정보 메시지가 누락된 것으로 감지됨) 다른 잠재적 마스터 노드가 중재를 통해 "마스터 노드" 상태를 놓고 경쟁하며 우선 순위가 가장 높은 노드가 새로운 "마스터 노드"가 됩니다. 그 후, 새로운 마스터 노드는 특별한 정보 메시지를 브로드캐스팅하기 시작합니다.글로벌 시간. 시간 트리거 CAN 프로토콜은 손상된 메시지를 전달하지 않으며 오류 프레임을 일으키지도 않습니다.


    TTCAN 프로토콜 경쟁 프로토콜이 있습니다플렉스레이 , 자동차 제조업체 및 공급업체 컨소시엄이 개발했습니다. 통신 메시지(프레임)플렉스레이 주기적으로 트리거되는 "정적" 및 "동적" 부분으로 구성됩니다. 정적 세그먼트는 네트워크에 연결된 노드에 해당하는 동일한 길이의 시간 간격으로 구성됩니다. 각 노드는 예약된 슬롯에서 메시지를 동기적으로 전송합니다. 정적 세그먼트는 또한 "동기화" 프레임을 보내 전역 변수(타임베이스 ) 네트워크의 경우. 같지 않은할 수 있다 , 버스에 대한 중재는 없습니다. 동적 세그먼트는 기본적으로 각 노드에 "미니 슬롯" 동기화 메커니즘을 사용하여 우선 순위에 따라 버스에 트리거된 이벤트 또는 비동기 메시지를 배치할 수 있는 기회가 제공되는 "폴링" 메커니즘입니다. 내결함성을 높이기 위해 프로토콜을 사용하는 네트워크 노드플렉스레이 , 두 개의 버스 또는 채널로 동시에 연결할 수 있습니다.

    기본적으로 프로토콜에 대한 모든 기본 정보는할 수 있다 , 그리고 이제 조금 CAN은 어떤 모습인가요? 일본에서 생산된 자동차를 예로 들어 타이어. 나는 적절한 조치가 없었다는 점을 바로 지적하고 싶습니다. 진단 장비결함을 진단하고 수리하다할 수 있다 타이어는 매우 제한된 범위에서 사용할 수 있습니다. 그것은 모두 전선의 물리적 무결성 점검, 연결 커넥터의 상태 점검, 배선 저항 점검 및종단저항 , 적절한 전압 레벨을 확인하십시오. CAN 로우 및 CAN 하이 윤곽. 진단에 딜러 장비를 사용하면 점검이 쉬워지고 문제 해결 범위가 좁아집니다. 소프트웨어, 그의 지적 재산권. 문제가 있는 경우 프로그램 수준해당 ECU의 재프로그래밍이나 교체만 가능합니다.

    CAN 예 자동차 타이어닛산 2007 - 쌀. 7



    질문이 있으신가요?

    오타 신고

    편집자에게 전송될 텍스트: