CAN Overview (FAQ)

CAN 2019. 1. 16. 16:41



CAN(Controller Area Network)이란 무엇인가?

 CAN(Controller Area Network) 고속 시리얼 통신 네트워크로 Intel과 Bosch가 오토모티브(Automotive) 어플리케이션을 위해서 개발했습니다. 현재에는 산업 장비나 의료장비를 제어하는데에도 쓰여집니다.




CAN(Controller Area Network) node를 구성하기 위해서 필요한 것

 CAN node는 3가지 기본 구성이 필요합니다.

 1. Host processor가 필요합니다. Host processor는 메시지(Messages)를 해석 및 만들어내는 역활을 합니다.

 2. CAN Controller가 필요합니다. CAN Controller는 메지시(Messages)를 시리얼버스에 보내거나 시리얼버스로부터 수신되는 데이터를 수신하는 역활을 합니다. CAN Controller는 주로 Microcontroller(Host processor)에 내장되어 있습니다.

   3. Transceiver가 필요합니다. Tranceiver는 Physical layer interface로 CAN Controller로부터 출력되는 신호의 Level을 변경하여 시리얼버스로 보내주거나 시리얼 버스로부터 입력되는 신호의 Level을 CAN Controller가 입력받을 수 있는 Level로 변경하는 역활을 합니다. Transceiver는 Host processor외부에 연결되는 것이 일반적입니다.


 위에서 설명드린 CAN node는 3가지로 기본 구성이 되지만 일반적으로는 Host processor내부에 CAN controller가 내장되고 Tranceiver는 별도 Device로 존재하여 총 2개의 Device로 구성되는 것이 일반적입니다.


CAN ISO 표준은 어떤 것이 있을까?

 Physical layer는 ISO11898에 Conformance testing은 ISO16845에 정의되어 있습니다.

 

CAN FD를 사용하는 이유?

 어플리케이션 프로그램을 위해서 양산 최종 단계에 프로그래밍하는 것이 너무 오래 걸리기 때문입니다. 왜냐하면 기존 Classic CAN의 경우 Message는 8bytes단위 구성되어 있기 때문입니다.  CAN FD는 64bytes를 주고 받을 수 있습니다.


CAN 2.0과 CAN FD를 비교하여 가장 다른 것은?

 최대 통신속도가 1Mb/s에서 5Mb/s로 변경되었고 CAN message가 8bytes에서 64bytes로 변경되었습니다.


CAN FD를 이용하는 이유는?

 CAN 네트워크를 통한 Application program 시간을 단축하고 기존 CAN Network에서 가지고 있던 Bandwidth를 높이기 위함입니다.


CAN 2.0 기능이 있는 Microcontroller와 CAN FD Tranceiver사용이 가능한가요?

  불가능합니다. MCU와 CAN Tranceiver모두 최종버전인 ISO11898-1/2 Specification에 만족해야 합니다. CAN 2.0 MCU는 CAN FD 네트워크에서 사용할 수 없습니다.


CAN FD MCU는 CAN 2.0과 호환이 되나요?

  가능합니다. CAN FD MCU는 CAN2.0과 CAN FD를 동시에 지원하기 때문입니다.



Posted by KennyShin
,

CAN 통신 - SILENT MODE

CAN 2019. 1. 6. 22:10

Silent 모드는 CAN Network에 연결된 하나의 CAN controller 오동작이 CAN Network의 통신을 방해하는 것을 막는 역할을 합니다. 즉, CAN Network에 여려 개의 CAN Controller가 있다고 할 때 1개의 CAN Controller만 문제가 되는 상황에 대한 방지책입니다.


CAN Tranceiver의 S pin이 High가 되었을 때 Silent mode로 동작합니다. 이 모드에서는 데이터를 받기만 하는 역할처럼  사용을 할 수 있는데 이 기능으로 CAN Bus의 연결을 테스트하는 데에도 사용할 수 있습니다.


Silent mode에서는 CAN Bus에서 데이터를 받을 수 있지만 데이터를 보낼 수 없습니다. 이때 다른 CAN Tranceiver는 Normal mode에서 정상적으로 데이터를 주고받을 수 있습니다.


Silent mode를 지원하는 Device: ATA6562, ATA6564


http://ww1.microchip.com/downloads/en/DeviceDoc/20005790B.pdf

http://ww1.microchip.com/downloads/en/DeviceDoc/20005784B.pdf

'CAN' 카테고리의 다른 글

CAN Overview (FAQ)  (0) 2019.01.16
Classic CAN과 CAN FD의 최대 전송 데이터 수 비교  (0) 2019.01.06
CAN 통신(캔 통신) Bit Stuffing 이란?  (1) 2019.01.06
CAN FD 통신 등장배경 설명  (0) 2019.01.06
Posted by KennyShin
,



Classic CAN의 최대 데이터 전송 단위는?



8 bytes



CAN FD의 최대 데이터 전송 단위는?



64 bytes


Classic CAN과 CAN FD의 가장 큰 차이점 중 하나이니 꼭 기억하기 바랍니다.




최대 데이터 전송 단위와 최대 전송 속도가 다릅니다.



'CAN' 카테고리의 다른 글

CAN Overview (FAQ)  (0) 2019.01.16
CAN 통신 - SILENT MODE  (0) 2019.01.06
CAN 통신(캔 통신) Bit Stuffing 이란?  (1) 2019.01.06
CAN FD 통신 등장배경 설명  (0) 2019.01.06
Posted by KennyShin
,


이번 시간은 CAN 통신의 비트스터핑(Bit Stuffing)에 대해서 알아보겠습니다.



비트스터핑(Bit Stuffing)은 왜 필요할까?



CAN 통신은 통신방식 자체가 비동기 통신과 같이 별도의 Clock이 존재하지 않습니다. 따라서 통신 데이터가 같은 값으로 여러 개 연속하여 전송될 경우 각 노드(Node) 사이에 Clock이 맞지 않아 통신 오류가 발생할 수 있습니다. 만약에 8비트가 '0'값일 경우 아래와 같이 8비트가 '0'으로 전송되는 것이 올바른 파형입니다. 


Bit Stuff 없이 '0'을 8비트 보냈을 때의 파형



그런데 실제 CAN 통신 파형을 오실로스코프로 찍어보면 다른 파형이 보입니다.


연속 '0'인 데이터가 5개 생겼을 때의 Bit Stuff - (S로 표시된 비트)




바로 위와 같은 파형이 보이게 되는데요. 이 파형은 정상인 파형입니다. 그 이유는 비트 스터프(Bit Stuff) 때문입니다. 







비트 스터프란 같은 데이터가 연속하여 5개가 발생하면


만들어지는 여분의 비트이다.




비트 스터프는 데이터통신의 동기화를 목적으로 만들어집니다. 따라서 위의 파형처럼 연속하여 '0'이 발생하는 경우에는 Bit Stuff가 발생하며 만약 '1'이 연속하여 데이터가 5개 발생하면 이때에도 Bit Stuff가 발생합니다. 아래 파형처럼요.





연속 '1'인 데이터가 5개 생겼을 때의 Bit Stuff - (S로 표시된 비트)


이제 CAN 통신 데이터를 오실로스코프 등으로 측정하다가 이런 파형을 봐도 당황하지 않겠죠?



비트 스터프는 데이터통신의 오류를 줄이기 위한 동기신호입니다.


잊지 마세요!



'CAN' 카테고리의 다른 글

CAN Overview (FAQ)  (0) 2019.01.16
CAN 통신 - SILENT MODE  (0) 2019.01.06
Classic CAN과 CAN FD의 최대 전송 데이터 수 비교  (0) 2019.01.06
CAN FD 통신 등장배경 설명  (0) 2019.01.06
Posted by KennyShin
,

자동차 OEM에서 CAN 2.0에서 CAN FD를 점차적으로 적용해 나아가고 있는데요. 왜 그런지에 대해 알아 보기 위해 기존 Classic CAN의 단점들에 대해 알아보고 최근 관심이 많아지고 있는 CAN FD 가 기존 Classic CAN의 어떠한 문제점을 해결할 수 있는지 보도록 하겠습니다.


Classic CAN 을 사용하는 컨트롤러(Microcontroller 등) 위한 Device 들의 Flash 크기가 수많은 요구기능의 증가에 따라 커지면서 Classic CAN으로는 모든 메시지를 처리하고 펌웨어를 업데이트하는데 한계에 도달하고 있는 실정입니다. 그 이유는 Classic CAN은 한 메시지당 최대 8 바이트만 전송 가능하고 또 전송속도도 낮습니다. 또한 CAN FD에 비하여 낮은 수준의 Error detection 기능을 제공하고 있습니다.


CAN FD (CAN with Flexible Data-Rate)는 이러한 Classic CAN의 단점을 보완하여 500kb/s에서 최대 2Mb/s에 이르는 데이터 통신 속도를 제공하며, 특히 진단 모드나 프로그래밍 모드에서는 5Mb/s까지 사용할 수 있습니다. 또한 기존 8 바이트의 메시지만 전달 가능했던 Classic CAN에 비하여 CAN FD는 최대 64 바이트까지 사용할 수 있다는 장점을 가지고 있습니다. 이러한 장점들은 CAN 노드 간 메시지 전송을 더욱 효율적으로 할 수 있게 하고 펌웨어 업데이트시에도 기존의 Classic CAN에 비하여 기다리는 시간을 줄여줍니다.

'CAN' 카테고리의 다른 글

CAN Overview (FAQ)  (0) 2019.01.16
CAN 통신 - SILENT MODE  (0) 2019.01.06
Classic CAN과 CAN FD의 최대 전송 데이터 수 비교  (0) 2019.01.06
CAN 통신(캔 통신) Bit Stuffing 이란?  (1) 2019.01.06
Posted by KennyShin
,