CAN 가능 마이크로 컨트롤러가 CAN 버스를 구동하기에 충분합니까?


45

요즘에는 마이크로 컨트롤러에 여러 CAN 모듈이 내장되어 있습니다. PIC18F2480는 그 일례이다. 마이크로 컨트롤러 (CAN 내장)가 자체적으로 CAN 버스를 구동 할 수 있습니까, 아니면 외부 CAN 트랜시버 / 컨트롤러가 필요합니까?

나는 CAN이 소프트웨어와 하드웨어 계층을 모두 가지고 있다고 생각하며,이 CAN 지원 마이크로 컨트롤러는 소프트웨어 만 가지고있는 것처럼 보이지만, CAN 버스를 그대로 운전할 수 있는지 여부는 밝히지 않습니다.

CAN 버스를 통해 6 개 이상의 마이크로 컨트롤러를 연결하려고하고 있으며, 이들 모두에서 트랜시버가 필요한지 또는 내장 된 것이 소프트웨어 및 하드웨어 관점에서 통신을 처리 할 수 ​​있는지 알고 싶습니다.

필요한 종단 저항 및 기타 작은 개별 구성 요소 (캡, 저항 등)가 있다고 가정합니다.

답변:


55

이것은 매우 좋은 질문입니다. 일반적으로 CAN은 모든 노드에 대해 트랜시버가 필요합니다.

여기에 이미지 설명을 입력하십시오

그러나 특정 상황에서는 실제로 트랜시버 없이도 도망 갈 수 있습니다! 그러한 상황은 다음과 같습니다.

  • 짧은 버스 길이 (1 미터 미만)
  • 바람직하게는 모든 마이크로 컨트롤러는 동일한 PCB 또는 PCB 스택에있다.
  • 비트 전송률이 낮습니다
  • 환경이 너무 시끄럽지 않습니다

이것은 어려운 규칙이 아닙니다. 버스가 매우 짧은 경우 (10cm) 최대 비트 전송률 (1MB / s)로 벗어날 수 있습니다.

이를 위해서는 트랜시버의 기능에 대해 약간 알아야합니다. 대부분의 트랜시버와 마찬가지로 버스에 1 또는 0을 나타내는 하이 또는 로우를 출력 할 수 있지만 0은 1을 지배 할 수 있습니다. 0을 말하면 0이 이길 것입니다. 다이오드를 사용하여 동일한 상황을 재현 할 수 있습니다.

간단한 CAN

Seimens 애플리케이션 노트 AP2921 : 트랜시버없이 CAN을 통한 온보드 통신 참조

그러나 더 흥미로운 점은 다음과 같습니다. PIC는 실제로 송수신기없는 CAN을위한 하드웨어를 지원합니다!

CIOCON 등록

트랜시버와 정확히 같은 방식으로 동작하도록 CAN TX 핀을 구성 할 수 있습니다. 즉, 다이오드없이 CAN 버스를 배선 할 수 있습니다. 그래도 저항이 필요합니다.

더 간단한 CAN


2
절대적으로 환상적인 답변. 답장을 보내 주셔서 감사합니다. 전기 노이즈가 많을 수 있기 때문에 트랜시버와 함께 가야 할 수도 있습니다. 모든 것이 "박스"에 들어 있지만 여러 pcbs에있을 것입니다. 다시 감사합니다!
efox29

@ efox29-천만에요. 가능하다면 송수신기와 함께가는 것이 좋습니다.
Rocketmagnet

이 송수신기없는 설정은 나에게 새로운 것이 었으며 장거리에 걸쳐 간단한 컨트롤러 네트워크를 설정하는 데 매우 흥미로워 보입니다. 좋은!
0x6d64

@ 0x6d64-긴 시간이 필요한 경우 낮은 비트 전송률을 사용하는 것을 잊지 마십시오. 슬 루율은 에지를 제한합니다.
Rocketmagnet 2016 년

1
이는 버스의 모든 장치가 동일한 구성을 사용하고 단일 와이어 CAN 버스를 사용하는 경우 작동합니다. 실제로 "실제"ISO CAN이고 2- 와이어 버스를 사용하는 다른 인터페이스와 인터페이스하려는 경우이 모드가 작동하지 않습니다.
Jon Watte

10

LPC11Cxx의 (ARM 코어 텍스 M0 기반) 패밀리의 마이크로 컨트롤러는 온 - 칩 CAN 트랜시버를 포함한다.


3
예. 권리. OP는 PIC18에 대해 묻습니다. 이것은 실제로 도움이되지 않습니다.
Federico Russo

4
@FedericoRusso는 PIC18과 함께 예제를 제공하고 timrorr는 드라이버가 내장 된 솔루션을 제공했습니다. 무슨 일이야?
clabacchio

8
@FedericoRusso-너무 항문하지 마십시오. 이 답변은 매우 흥미 롭습니다.
Rocketmagnet

1
@Rocketmagnet : Q : "X는 어떻게합니까?" A : "Y Y" 결국 괜찮아? (자신의 답변에서)
Federico Russo

2
@FedericoRusso-OP의 만족에 대한 질문에 대한 답변이 잘되어 있고 누군가 흥미로운 흥미로운 정보를 언급 한 경우에는 왜 그렇지 않습니까?
Rocketmagnet 2016 년

9

네, 당신은 트랜시버가 필요합니다. 마이크로의 CAN 핀은 송수신됩니다. CAN 버스 자체는 HIGH 및 LOW라고하는 두 개의 와이어에서 차동 신호와 함께 꼬인 쌍을 사용합니다.

트랜시버의 작업 중 하나는 TX 핀에있는 로직 레벨을 CAN 버스 신호로 전환하는 것입니다.

  • 로직 '1'은 버스를 구동하지 않는 것으로 표현되므로, HIGH 및 LOW 라인은 2.5V로 "float"-CAN 용어에서 "recessive bit"로 불립니다.
  • 논리 '0'은 전송되는 모든 열성 비트를 무시하므로 HIGH 라인을 하이로, LOW 라인을 로우로 로우 ( "주 비트"라고 함)로 표시합니다.

다른 하나는 버스에있는 것을 가져 와서 논리 레벨로 다시 돌려 RX 핀에서 마이크로로 다시 보내는 것입니다.


8

CPU와 CAN 버스 사이에 CAN 송수신기 칩이 필요합니다. MCP2551을 확인하십시오.

2017 년 8 월 17 일 업데이트 :

지금 Microchip Masters 회의에 있습니다. Atmel 인수의 결과로 나온 새로운 부품 중 하나가 MCP2551보다 저렴하고 우수하다는 사실을 Microchip 엔지니어들에게 알 렸습니다.


1
Microchip은 현재 2551보다 2561 을 권장합니다 . NXP에는 흥미로운 CAN 칩도 있습니다. 대부분의 MCU에는 트랜시버가 필요합니다.
Ludwig Schreier

2

아날로그 장치에는 차동 증폭기를 사용하는 CAN 송수신기 회로예가 있습니다.
나는 이것을 시도하지 않았으며 그것을 알고 있습니다. 연산 증폭기로 구현할 수 있다면 관심이 있습니다.

아날로그 회로

전용 IC CAN 트랜시버의 장점은 중재를 처리하고 버스 간섭에 대해 걱정할 필요가 없다는 것입니다. 버스 만 관찰하고 결함이 심각한 환경이 아닌 경우 회로에 문제가있을 수 있습니다. mcp2551은 매우 인기가 있지만 인터페이스 칩에는 많은 옵션이 있습니다.

새로운 발전은 전압 조절, 전력 모드 및 버스로부터의 ESD 보호를 포함하는 칩의 시스템베이스 유형입니다.

위에서 언급 한 timorr과 같이 NXP의 LCP11C24는 프로세서에 CAN 송수신기가 포함되어 있다는 점에서 독특합니다. 이 데모 보드는 단 $ 19입니다. 또 다른 저비용 솔루션은 $ 9.38 Cypress PSoC5 데모 보드 인 CY8CKIT-059를 사용하는 것입니다. PSoC5에는 CAN 컨트롤러가 없습니다. 컨트롤러는 FPGA와 같은 범용 블록으로 구현됩니다. 컨트롤러의 레지스터는 IDE의 GUI를 통해 구성되므로 필터링 및 R & D가 매우 쉽습니다.

데이터 시트를 숙고 할 때 내가 찾은 주요 방법은 mcu TTL에 CAN-Tx 및 CAN-Rx라는 레이블이 붙은 반면 버스에 대한 트랜시버의 데이터 라인에는 항상 CAN-H 및 CAN-L이라는 레이블이 있습니다. 나는 TxRx가 버스에 연결된 것으로 표시된 다른 답변의 다이어그램을 싫어합니다. 이것은 컨벤션에 위배되며 혼란에 기여합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.