CAN 통신용 IC에 도전(일단 하드측까지 2017-12-18)

2438 단어 임베디드통신
이 기사는 고치공과대 Advent Calendar 2017의 18 일째 기사입니다.

소개



takamasavvv입니다.
갑작스럽지만, 일신상의 사정으로 CAN 통신을 시작하게 되었습니다.
아직 완전히 구현되지 않았기 때문에 이번에는 하드웨어만 했어요 일기를 씁니다.

CAN은?



CAN 프로토콜은 여기을 참조하십시오.
CAN은 차량 탑재 기기 등에 사용되는 신뢰성이 매우 높은 프로토콜입니다.
데이터의 신뢰성을 들기 위한 다양한 궁리가 되어 있어, 데이터가 떨어진 것의 검출은 확실히 할 수 있는 것 같습니다.
세세한 설명은 위의 링크에 있으므로 생략합니다.

어떻게 할까?



이번에는 CAN 컨트롤러의 MCP2515와 CAN 트랜시버의 MCP2561을 사용했습니다.
이 두 가지로 마이크로 컴퓨터에서 SPI로 CAN을 제어 할 수 있습니다.
구성은 다음과 같습니다.


그래서 실제로 브레드 보드에 짜진 것이 다음과 같습니다.


이 보드에서 우선 동작 시험을 합니다.
사용한 마이크로 컴퓨터는 PSoC5LP의 CY5888LTI-LP097입니다.
동작 확인으로서는, MCP2515의 설정용 레지스터의 하나인 CANCTRL이라고 하는 레지스터를 읽어, 초기치가 되어 있는지 어떤지를 확인합니다.

동작 확인용 프로그램(빌어 먹을)

신호 확인을 위해 신호 분석기 (브레드 보드 사진 왼쪽)를 사용합니다.
다음은 신호 분석기의 신호입니다.


위가 MOSI 쪽, 아래가 MISO 쪽입니다.
MOSI에서는 마이크로 컨트롤러가 MCP2515에 레지스터 읽기 명령을 내고 있습니다. 반대로 MISO는 레지스터 내부의 값인 135(dec)를 반환합니다.
동작 모드 비트는 컨피그레이션 모드로 설정하고 있으므로, 135(dec)=10000111(bin)이 돌아온 것은 정상이라고 할 수 있습니다.

그래서 하드웨어는 완성된 것 같습니다.

완성이 끝나면 기판을 썼습니다.

(사진은 후배가 납땜 해준 것)
좀처럼 작게 정리되었습니다. 했어!

도전


  • 분명히 클럭 주위의 부품 설정이 나쁜지, 통신 속도가 느린. 주요 개선
  • 통신 소프트웨어를 제대로 구현하는 것이 프로덕션이네요
  • 여기까지 한다면 PSoC 탑재의 CAN 모듈이라도 괜찮은 것은?

  • 마지막으로



    이런 느낌으로 어중간한 상태로 끝나는 것도 뭐니까, 개발이 진행되는 대로, 여기에 추기해 갑니다.
    그래서 완성은 좀 더 기다려주세요.

    좋은 웹페이지 즐겨찾기