Louie NRT Story

[STM32] CAN 통신 테스트 본문

전기차충전기

[STM32] CAN 통신 테스트

hyeok0724.kim@gmail.com 2020. 12. 22. 09:42
반응형

작성일: 20년 12월 31일

PS. 기존에 CAN 강의를 들었지만 테스트를 해볼 수 없었다. 그래서 이번에 컨버터를 통해 테스트 해볼 수 있었음.

 

목차

1. CAN 통신 컨버터

2. 통신 설정

3. 프로그래밍

4. 통신 테스트

5. CAN Format

 

1. CAN 통신 컨버터

1) 제품명: 시스템 베이스 컨버터 sCAN

2) 특징

 - RS232 to CAN 컨버터

 - 5VDC 전원 공급 해야함

 - 핀맵

- 딥 스위치를 통한 설정

 

2. 통신 설정

1) 연결 방법

 - RS232 to USB 케이블과 sCAN 제품을 같이 사용함으로써 최종적으로 PC에서 모니터링 할 수 있도록함

 - SMPS를 통하여 전원 5VDC를 CAN 통신 쪽에 인가함

2) 초기 딥 스위치 설정

 - Switch 1 ON / CAN VDD 전원을 사용함

 - Switch 2 OFF / CAN VDD 전원 이용하기 때문임

 - Switch 3 OFF / 설정을 해야 하기 때문에 Set Mode로 설정함

 - Switch 4 OFF / 종단저항은 디바이스가 많고 거리가 멀때 사용함

 

3) 통신 설정

 - CAN 통신을 설정 후 ID와 MASK를 설정함

 - ID와 MASK로 필터링 되어 데이터가 수신이 안 될 수 있으니 계산해서 작성

 

- CAN 통신 속도에 맞추어 STM32F4 에서도 맞게 설정함

 

3. 프로그래밍

1) 기본적 필터링 설정

2) CAN 통신 송신

 - ID는 102로 하고 송신 데이터 8개 중 앞에 4개만 순차적 증가하도록 함.

 - TxMailBox에 넣어주면 데이터가 송신 된다고 함.

3) CAN 통신 수신

 - 인터럽트를 통하여 데이터를 수신 할 수 있음

 

4. 통신 테스트

1) 딥 스위치 변경

 - 딥 스위치의 Switch 3 을 ON 하여 Active 모드로 설정함

2) CAN View를 통하여 수신 되는 데이터 확인함

 - "t"는 스타트 시점으로 해서 데이터가 송수신 되는 것을 확인 할 수 있음

- 데이터 프레임(STX | ID | DLC | Data_01 | Data_02 | Data_03 | Data_04 | Data_05 | Data_06 | Data_07 | Data_08 | ETX)

- USB의 시리얼 데이터를 그대로 Parsing 한 결과 CAN 데이터는 모두 ASCII 코드로 전송한다는 것을 알 수 있음

- 1byte를 표현하기 위해서 2bytes를 전송하고 있음을 알 수 있음

ex) 74 = 't', 30 = '0', 31 = '1' 

 

5. CAN Format

1) STD DATA

- 데이터 송수신

2) STD REMOTE

- 데이터 요청

3) EXT DATA

- ID 확장형

4) EXT REMOTE

- ID 확장형 데이터 요청

 

Reference:

www.youtube.com/watch?v=T65WpTyv8Po&feature=youtu.be

www.sysbas.com/portfolio-item/scan/#tab-id-5

 

반응형
Comments