41
2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Controller Area Network(CAN) to RS232 Converter Controller Area Network(CAN) to RS232 Converter Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility ver. 2.0 Library ver. 1.0 사용자 매뉴얼 사용자 매뉴얼 사용자 매뉴얼 사용자 매뉴얼 1

Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

2009-04-05

rev.4.0

Controller Area Network(CAN) to RS232 ConverterController Area Network(CAN) to RS232 ConverterController Area Network(CAN) to RS232 ConverterController Area Network(CAN) to RS232 Converter

Firmware ver. 1.5Utility ver. 2.0Library ver. 1.0

사용자 매뉴얼사용자 매뉴얼사용자 매뉴얼사용자 매뉴얼

1

Page 2: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

목 차목 차목 차목 차

CAN을 왜 사용하는가 ?CAN을 왜 사용하는가 ?CAN을 왜 사용하는가 ?CAN을 왜 사용하는가 ? 3

1. CAN to RS232 컨버터의 개요1. CAN to RS232 컨버터의 개요1. CAN to RS232 컨버터의 개요1. CAN to RS232 컨버터의 개요 5

2. 패킷형식2. 패킷형식2. 패킷형식2. 패킷형식 9

3. Microchip Bit Timing calculator(MBTC) 사용설명서3. Microchip Bit Timing calculator(MBTC) 사용설명서3. Microchip Bit Timing calculator(MBTC) 사용설명서3. Microchip Bit Timing calculator(MBTC) 사용설명서 15

4. 터미널 모드 사용법4. 터미널 모드 사용법4. 터미널 모드 사용법4. 터미널 모드 사용법 18

5. Utility 사용법5. Utility 사용법5. Utility 사용법5. Utility 사용법 21

6. Acceptance Mask 와 Filter 설정법6. Acceptance Mask 와 Filter 설정법6. Acceptance Mask 와 Filter 설정법6. Acceptance Mask 와 Filter 설정법 24

7. ActiveX control 사용법7. ActiveX control 사용법7. ActiveX control 사용법7. ActiveX control 사용법 26

8. OBD-II PIDs & CAN 프로토콜8. OBD-II PIDs & CAN 프로토콜8. OBD-II PIDs & CAN 프로토콜8. OBD-II PIDs & CAN 프로토콜 31

9. 문제해결 9. 문제해결 9. 문제해결 9. 문제해결 41

2

Page 3: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

CAN을 왜 사용해야만 하는가 ?CAN을 왜 사용해야만 하는가 ?CAN을 왜 사용해야만 하는가 ?CAN을 왜 사용해야만 하는가 ?

1. 노이즈에 매우 강하다.1. 노이즈에 매우 강하다.1. 노이즈에 매우 강하다.1. 노이즈에 매우 강하다.레벨은 다르지만 RS485와 비슷하게 twist pair 2선을 사용하여 전기적 Differential 통신을 하여전기적인 노이즈에 매우 강하다

2. Multi Master 통신을 한다.2. Multi Master 통신을 한다.2. Multi Master 통신을 한다.2. Multi Master 통신을 한다.통신버스를 공유하고 있는 CAN컨트롤러들은 모두가 Master역할을 하여 언제든지 버스를사용하고 싶을때 사용할수 있다. RS485 의 경우는 Master의 요청이 있을 때만 Slave가 수동적으로 반응하므로 단 한 개의 Master만 존재하나 CAN은 그렇지 않다.문제가 발생한 CAN 노드는 자동으로 CAN버스에서 이탈되어 다른 노드에 영향을 주지 않는다.LAN 통신과 유사한 면이 많다.

3. 한개의 버스라인에 최대 110개까지 노드를 연결할 수 있다.3. 한개의 버스라인에 최대 110개까지 노드를 연결할 수 있다.3. 한개의 버스라인에 최대 110개까지 노드를 연결할 수 있다.3. 한개의 버스라인에 최대 110개까지 노드를 연결할 수 있다.

4. 하드웨어적인 오류보정이 있다.4. 하드웨어적인 오류보정이 있다.4. 하드웨어적인 오류보정이 있다.4. 하드웨어적인 오류보정이 있다.데이터 프레임에는 15비트 CRC가 HW적으로 생성되서 붙기 때문에 오류검출이 가능하고 만약오류가 발생하더라도 HW적으로 알아서 재전송하기 때문에 사용자는 이에 대해 고려할 필요가 없다.

5. 하드웨어적으로 설정된 ID만을 골라 수신받을수 있다.5. 하드웨어적으로 설정된 ID만을 골라 수신받을수 있다.5. 하드웨어적으로 설정된 ID만을 골라 수신받을수 있다.5. 하드웨어적으로 설정된 ID만을 골라 수신받을수 있다.CAN에는 수신필터가 있어 필터를 어떻게 설정하느냐에 따라 정해진 ID, 특정 그룹 또는 전체 수신을 할 수 있다.예를 들어 ID 10번만 받을수도 있고, 0x40~0x4F까지의 ID에 대해서도 수신가능하게 할수 있다.

6. 실시간 메시지 통신을 할 수 있다.6. 실시간 메시지 통신을 할 수 있다.6. 실시간 메시지 통신을 할 수 있다.6. 실시간 메시지 통신을 할 수 있다.한번에 8바이트의 데이터를 전송하는 HW패킷을 제공한다.보통 RS232/RS485통신에서는 패킷통신을 위해 사용자가 일일이 패킷형식을 만들어 주고 수신시에도 그런 해석이 필요하지만 CAN은 8바이트 데이터를 담는 HW패킷통신을 기본으로 한다.따라서 사용자는 데이터 버퍼에 데이터를 쓰고 전송만 하면 그외 모든 처리는 HW가 알아서 한다.분산제어분야 적용이 용이하다.

7. 통신속도가 빠르다.7. 통신속도가 빠르다.7. 통신속도가 빠르다.7. 통신속도가 빠르다.최대 1 Mbps까지 사용할 수 있다.

8. 먼거리를 통신할 수 있다.8. 먼거리를 통신할 수 있다.8. 먼거리를 통신할 수 있다.8. 먼거리를 통신할 수 있다.최대 1000 m 까지도 50 kbps로 통신할 수 있다.

9. 우선순위가 있다.9. 우선순위가 있다.9. 우선순위가 있다.9. 우선순위가 있다.컨트롤러의 ID를 어떻게 설정하느냐에 따라 ID가 낮을수록 버스를 사용할 수 있는 우선순위가 높아진다즉 버스를 ID 1, ID2 가 동시에 쓰려고 시도할때 id1이 먼저 데이터를 쓰고 id2가 다음으로 쓸수 있다.우선순위로 인해 데이터 전송이 안되거나 오랫동안 지연되지 않고 하드웨어적으로 중재처리 되기 때문에 데이터의 손실이나 지연에 대해 고려할 필요가 없다. S/W는 단순 전송만 하면 된다.

10. 사용되는 전선의 양을 획기적으로 줄일수 있다.10. 사용되는 전선의 양을 획기적으로 줄일수 있다.10. 사용되는 전선의 양을 획기적으로 줄일수 있다.10. 사용되는 전선의 양을 획기적으로 줄일수 있다.데이지 체인 방식으로 한 선에 추가적으로 컨트롤러를 연결만 하여 사용할 수 있다.2선 만을 사용하기 때문에 많은 컨트롤러들이 버스를 공유하더라도 추가되는 선의 양이 거의 없다.

11. PLUG & PLAY 를 제공한다.11. PLUG & PLAY 를 제공한다.11. PLUG & PLAY 를 제공한다.11. PLUG & PLAY 를 제공한다.

3

Page 4: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

언제든지 CAN 컨트롤러를 버스에 연결하고 끊을 수 있다.

12. 사용분야12. 사용분야12. 사용분야12. 사용분야산업자동화 분야 - 제어유닛, 센서, 액츄에이터, 기계제어, 물류의료분야 - 토모그라피, X레이, 치과의자, 휠체어빌딩자동화 - 난방, 에어콘, 전등, 엘리베이터, 에스컬레이터집 자동화 - 식기세척기, 세탁기, 커피포트 ...사무자동화 - 복사기

* CAN 버스의 안정성

* SIMENS사의 자료를 보게 되면

1년에 2000시간 사용하고속도는 500 kbps로 하고25%의 버스 로드를 줄때

--> 1000 년에 1회1000 년에 1회1000 년에 1회1000 년에 1회 확인되지 않는 오류가 발생한다.

4

Page 5: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

1. CAN to RS232 컨버터 개요1. CAN to RS232 컨버터 개요1. CAN to RS232 컨버터 개요1. CAN to RS232 컨버터 개요

일반적으로 CAN은 멀티마스터 버스 통신으로 자동차 산업이나 기타 실시간 분산제어를 요하는 분야에 자주 이용되곤한다. 그러나 처음 경험하게 되는 사용자는 접근이 용이 하지 않으며 CAN을 사용하기위한 부수적인 작업들이 많이 요구된다.따라서 PC에서 쉽게 연결이 가능하면서 기초적인 통신에 해당하는 RS232를 이용하여 CAN을 좀더 쉽게이용할 수 있도록 본 컨버터를 개발하게 되었다.컨버터에는 펌웨어가 내장되어 있어 CAN통신 프로토콜을 분석하여 RS232로 데이터를 전송하고 또한PC에서 송신하는 데어터도 CAN 프로토콜로 전환하여 CAN버스에 전송하게 된다.그렇기 때문에 사용자는 CAN에 대해 매우 기본적인 지식만 알아도 충분히 사용할 수 있다.

1.1 특징1.1 특징1.1 특징1.1 특징

1) 40 MHz로 동작하는 마이크로 프로세서가 내장2) Dsub 9pin형식의 CAN 포트와, Dsub 9pin 형식의 RS232포트가 각각 한개씩 내장3) 82C250(또는 MCP2551) CAN 트랜시버를 사용4) 최대 RS232 통신속도 230400 bps5) 최대 CAN통신속도 1 Mbps6) S/W적으로 CAN과 RS232 파라메터 변경가능7) CAN H/W Rx버퍼 2개, Tx버퍼 3개8) 최대 1000m의 CAN 통신거리 (CAN spec.에 의함)9) CAN2.0A, CAN2.0B 지원10) Standard(11bit) / Extended(29bit) ID mode 지원11) CAN 터미네이터(120 ohm) 점퍼 내장12) HW 공장초기화 점퍼내장13) Power . Rx, Tx, Error LED 내장14) EEPROM 내장으로 설정값 보관15) 외부의 전기적 열악한 환경에 의해 발생하는 CPU의 오동작을 피하기 위한 watchdog 내장16) 동작온도 : -25℃ to +75℃17) 보관온도 : -40℃ to +80℃

1.2 H/W 구성품1.2 H/W 구성품1.2 H/W 구성품1.2 H/W 구성품

1) CAN2RS232 컨버터2) DC 5V power supply3) RS232 Dsub 9pin Cable(1:1)

1.3 S/W 구성품1.3 S/W 구성품1.3 S/W 구성품1.3 S/W 구성품

1) CAN bus Baud rate 및 Parameter 설정 Utility2) CAN 통신 예제 (VC++, Visual Basic)3) 통신용 ActiveX 컨트롤

CAN H/W

FIFO

CAN S/W

FIFO

PROTOCOL

Converter

RS232

FIFO

COMMAND

Interpreter

TERMINAL

Emulator

CAN BUS RS232 Line

CAN2RS232 Converter Block Diagram

5

Page 6: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

1.4 Dsub 컨넥터 PIN 구성1.4 Dsub 컨넥터 PIN 구성1.4 Dsub 컨넥터 PIN 구성1.4 Dsub 컨넥터 PIN 구성

1) RS232 컨넥터Pin 2 : RxPin 3 : TxPin 5 : Ground

2) CAN 컨넥터Pin 2 : CAN_LPin 7 : CAN_H

CAN컨넥터 RS232컨넥터

1.5 CAN2RS232 컨버터 보드 설명1.5 CAN2RS232 컨버터 보드 설명1.5 CAN2RS232 컨버터 보드 설명1.5 CAN2RS232 컨버터 보드 설명

JP1 CAN 터미네이터 점퍼JP2 공장초기화 점퍼JP3 5V TTL level RS232 포트D1 전원 LEDD2 에러 LEDD3 CAN Tx LEDD4 CAN Rx LED

1) 공장초기화 점퍼

CAN2RS232 셋팅을 완전 초기화 할때 점퍼를 삽입하고 전원을 입력하면 다음과 같은 값으로 초기화된다.

RS232 Baud rate 115200 bpsCAN Baud rate 1000 kbpsCAN ID 0xFFFFFFFF

2) 터미네이터 점퍼

RS232

DSUB9

Connector

DC5V

IC1

IC2IC3

JP2

JP1

JP3

CAN

DSUB9

Connector

D1 D2 D3 D4

6

Page 7: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

CAN통신의 spec상 최종 끝단에는 120ohm 의 저항을 반드시 연결 해야 한다. 따라서 본 컨버터가 만약CAN 버스의 끝단에 놓이게 되면 터미네이터 점퍼를 삽입한다.

3) DC 5V 전원

전원은 외부전원 DC5V를 사용하며 되도록 함께 포함된 전원 아답터를 이용하고 그렇지 못한 경우라도정전압 500mA이상 DC5V출력이 나오는 아답터를 사용하길 권장한다. 실수로 극성(+/-)를 반대로 연결실수로 극성(+/-)를 반대로 연결실수로 극성(+/-)를 반대로 연결실수로 극성(+/-)를 반대로 연결하지 않도록 연결전 반드시 확인한다. 만약 반대로 연결하거나 5V이상의 고전압을 연결하는 경우하지 않도록 연결전 반드시 확인한다. 만약 반대로 연결하거나 5V이상의 고전압을 연결하는 경우하지 않도록 연결전 반드시 확인한다. 만약 반대로 연결하거나 5V이상의 고전압을 연결하는 경우하지 않도록 연결전 반드시 확인한다. 만약 반대로 연결하거나 5V이상의 고전압을 연결하는 경우컨버터가 치명적인 손상을 입을 수 있다. 또한 전원 GND는 모든 CAN장치간 반드시 연결되어야컨버터가 치명적인 손상을 입을 수 있다. 또한 전원 GND는 모든 CAN장치간 반드시 연결되어야컨버터가 치명적인 손상을 입을 수 있다. 또한 전원 GND는 모든 CAN장치간 반드시 연결되어야컨버터가 치명적인 손상을 입을 수 있다. 또한 전원 GND는 모든 CAN장치간 반드시 연결되어야한다. 그렇지 않은 경우는 신호레벨이 불안정하여 Bus Off와 같은 치명적인 오류가 발생할 한다. 그렇지 않은 경우는 신호레벨이 불안정하여 Bus Off와 같은 치명적인 오류가 발생할 한다. 그렇지 않은 경우는 신호레벨이 불안정하여 Bus Off와 같은 치명적인 오류가 발생할 한다. 그렇지 않은 경우는 신호레벨이 불안정하여 Bus Off와 같은 치명적인 오류가 발생할 수 있다.수 있다.수 있다.수 있다.

4) LED

POWER LED : 전원이 입력되면 점등된다.TX/RX LED : CAN버스를 통해 데이터가 전송될때 점멸된다.ERROR LED : CAN통신시 에러가 발생되면 점등된다.

1.6 CAN2RS232 컨버터 사용법1.6 CAN2RS232 컨버터 사용법1.6 CAN2RS232 컨버터 사용법1.6 CAN2RS232 컨버터 사용법

장치 #1 장치#2 장치#3 장치#4

1) 컨버터의 전원을 인가하지 않은 상태에서 컨버터의 RS232포트와 PC의 시리얼포트에 NULL Modem 케이블(1:1)을 이용하여 연결한다.

2) 데이지 체인 형식으로 연결된 CAN버스 라인을 CAN port와 연결한다. CAN port 연결시에는 1.4절에 서 제시한 DSUB9 핀맵을 확인하여 착오없이 연결한다.

3) 전원을 연결한다. 최초에 사용하는 경우는 공장초기화 점퍼를 삽입한 상태에서 전원을 인가한다.

4) Windows의 시작메뉴에서 다음과 같이 하이퍼 터미널을 실행한다.

[시작]->[보조프로그램]->[통신]->하이퍼터미널

하이퍼 터미널 대신 사용자가 편리한 통신 터미널 프로그램이 있다면 그것으로 사용해도 상관없다.

5) RS232 포트를 설정한다. 컨버터가 연결될 COM포트를 확인하여 정확하게 포트 번호를 입력하여

Serial PortRS232Port

CAN Port

7

Page 8: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

주고(예, COM1), 통신속도는 115200bps, 데이터비트느 8비트, 패리티는 없음, 정지비트는 1비트, 흐름제어는 없음으로 선택하여 설정하여 준다.

6) 현재 CAN버스에 데이터의 송수신이 있다면 화면에 무언가 깨지는 문자들이 보일 것이다. 이때 터미널에서 스페이스바를 5번 연속으로 입력하게 되면 터미널 모드로 진입하여 사용명령어 리스트 가 화면에 출력된다.

7) 즉시 CAN버스의 데이터를 확인하고자 한다면 "RCV"를 입력하고 Enter키를 치면 화면에 수신되는 데이터들이 계속 표시된다.

8) 그밖에 설정은 4장의 터미널모드 사용설명서를 참조하여 할 수 있다.

1.7. CAN2RS232 컨버터의 제한1.7. CAN2RS232 컨버터의 제한1.7. CAN2RS232 컨버터의 제한1.7. CAN2RS232 컨버터의 제한

본 컨버터의 CAN속도는 최대 1Mbps이지만 RS232통신속도는 이보다 작기 때문에 CAN버스 대역폭을모두 사용하는, 다시말해 CAN버스에 데이터가 끊임없이 송수신 된다면 RS232로 전송되는 양은RS232 통신속도 이상이 될수 없기 때문에 그 이외의 데이터는 소실된다.내부적으로 159개의 Rx FIFO 와 32개의 Tx FIFO가 있어 RS232통신으로 데이터를 보내고 있는 와중에도 CAN으로 데이터가 수신되더라도 최대 159개 패킷까지는 안전하게 보관하여 전송할 수 있지만 그 이상으로 들어오는 데이터는 RS232로 송신대기 상태에 있는 데이터를 소멸시키게 된다. 이런경우 상태비트중 overrun비트가 셋팅된다.overrun이 자주일어나는 즉 CAN버스 사용부하가 매우 큰경우는 CAN2USB를 사용하면 해결될 수 있다.USB는 CAN보다도 속도가 빠르기 때문에 이러한 문제는 발생 할 수 없다.

1.8 CAN 버스 라인 길이에 따른 권장 통신속도1.8 CAN 버스 라인 길이에 따른 권장 통신속도1.8 CAN 버스 라인 길이에 따른 권장 통신속도1.8 CAN 버스 라인 길이에 따른 권장 통신속도

SIMENS 사의 자료를 보게 되면 다음과 같이 CAN 버스라인 길이와 그에 따른 Bitrate의 상관 관계 그래프를 볼 수 있다.사용자는 되도록 아래의 그래프에 맞게 통신속도를 지정하여 사용하는 것이 바람직 하며, 이보다 더 높은 속도로 통신할때 데이터를 보증할 수 없다.아래 그래프는 twisted pair 선을 사용했을때의 조건이 있다.

8

Page 9: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

2. 패킷모드 (Packet Mode)2. 패킷모드 (Packet Mode)2. 패킷모드 (Packet Mode)2. 패킷모드 (Packet Mode)

PC와 CAN컨트롤러간 RS232통신으로 데이터를 주고 받을때 크게 두가지 형식이 있다.첫번째는 바이너리 통신 방식인 패킷방식인데 이 방식은 유효한 데이터만 최적으로 송수신 하기 때문에통신속도를 최대한 활용할 수 있으나 프로그램으로만 가능하고, 두번째로 ASCII통신 방식인 터미널 방식으로 사용자가 하이퍼 터미널과 같은 툴로 쉽게 대화형으로 키보드와 모니터를 이용해 데이터의흐름을 확인할 수 있고 또한 제어 할 수 있다. 본 장에서는 패킷방식에 대해 알아보고 터미널방식에대해서는 4장에서 기술 하였다.

CAN컨트롤러는 다음과 같은 형식의 패킷을 사용한다.

SYNC PID Length Data Checksum End Mark

1) SYNC 필드 (1byte)모든 패킷은 SYNC 필드로 시작하며 값은 0xF0으로 고정되어 있다.

2) PID 필드 (1byte)패킷 ID를 의미 하며 SYNC필드 다음으로 전송된다. 패킷 ID라 하면 패킷별 특수한 기능을 수행하기위해부여된 특별한 코드이다.

3) Length 필드 (1byte)데이터의 byte단위 길이를 의미 한다.

4) Data 필드 데이터 필드의 크기 범위는 0~255 byte 이내이다.만약 데이터 필드의 값이 word (2byte)나 double (4byte) 형식이면 하위 바이트가 먼저 전송된다.

5) Checksum필드 (1byte)Checksum 필드는 PID필드 부터 Data 필드까지의 합이 1byte로 지정된다.

6) End Mark (1byte)패킷의 끝을 의미하며 0xE0으로 고정되어 있다.

2.1 PID 종류2.1 PID 종류2.1 PID 종류2.1 PID 종류

다음 테이블은 PID의 종류와 그에 대한 간략한 설명을 나타낸다.

번호 PID 길이(byte) 방향(To)

1 0x80 0 CAN

2 0x81 5 CAN

3 0x82 1 CAN

4 0x83 1 CAN

5 0x84 4~12 CAN

6 0x85 4~12 PC

7 0x86 0 CAN

8 0x87 6 PC

9 0x88 1 PC

10 0x89 3 CAN

11 0x8A 0 CAN

CAN의 상태를 수신CAN의 상태를 요구

CAN통신 오류를 수신CAN의 Bit Timing설정CAN 에러를 clear한다.

설 명

CAN 컨트롤러 ID를 설정CAN 컨트롤러 초기화

CAN 통신속도를 설정RS232의 통신속도를 설정CAN으로 데이터를 송신CAN으로 부터 데이터를 수신

9

Page 10: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

12 0x8B CAN Acceptance Filter & Mask설정 32 CAN

13 0x8C Firmware 버전 요청 0 CAN

14 0x8D Firmware 버전 응답 2 PC

15 0xC0 0 PC

16 0xD0 1 PC

2.2 각 패킷별 형식2.2 각 패킷별 형식2.2 각 패킷별 형식2.2 각 패킷별 형식

다음은 각 PID별 패킷 형식을 자세히 설명하였다.

1) CAN 컨트롤러 초기화 PC -> CAN

0xF0 0x80 0x00 Checksum 0xE0

CAN 초기화는 사용초기에 사용하거나 에러가 발생한 경우에 사용될 수 있다.CAN 컨트롤러는 응답으로 ACK[0xC0] / NACK[0xD0] 을 전송한다.ACK는 설정이 정상적으로 완료되면 보내고, NACK는 패킷에 오류가 있거나 설정시에러가 발생한경우다.

2) CAN 컨트롤러 ID설정 PC -> CAN

0xF0 0x81 0x05 Ext. ID ID (4) Checksum 0xE0

CAN 컨트롤러가 메시지를 수신받을 ID를 설정한다. 즉 CAN라인에서 메시지의 목적지 ID가 설정된 ID와 동일한 메시지만 걸러서 수신하게 된다. 모든 메시지를 수신하고자 하면 ID를 [0xFFFFFFFF][0xFFFFFFFF][0xFFFFFFFF][0xFFFFFFFF]로설정 하면 된다. Ext.ID 가 0인 경우는 Standard ID Mode로 11비트 ID를 지원하고, 1인 경우는 Extended ID mode 로 29비트 ID를 지원한다. CAN 컨트롤러는 응답으로 ACK[0xC0] / NACK[0xD0] 을 전송한다.ACK는 설정이 정상적으로 완료되면 보내고, NACK는 패킷에 오류가 있거나 설정시에러가 발생한경우다.

3) CAN 컨트롤러 통신속도 설정 PC -> CAN

0xF0 0x82 0x01 brate Checksum 0xE0

Baudrate의 값에 따라 다음과 같은 속도를 지정할 수 있다. 사용자 지정을 하는 경우는 [0x89]패킷을이용 하여 통신속도 설정 파라메터 값을 설정해야 한다.

0 : 125 kbps1 : 250 kbps2 : 500 kbps3 : 1 Mbps4 : User

만약 4. 사용자 지정을 선택한 경우는 [0x87] 명령으로 설정된 Bit Timing 값으로 설정되어 사용자가지정하는 임의의 속도를 사용할 수 있다.CAN 컨트롤러는 응답으로 ACK[0xC0] / NACK[0xD0] 을 전송한다.ACK는 설정이 정상적으로 완료되면 보내고, NACK는 패킷에 오류가 있거나 설정시에러가 발생한경우다.

RS232 패킷통신에 오류가 발생했음을 알림RS232 패킷통신이 정상적으로 이루어졌음을 알림

10

Page 11: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

4) RS232 통신속도 지정 PC -> CAN

0xF0 0x83 0x01 brate Checksum 0xE0

Baudrate의 값에 따라 다음과 같은 속도를 지정할 수 있다.

0 : 9600 bps1 : 19200 bps2 : 38400 bps 패리티 없음3 : 57600 bps 데이터 8비트4 : 115200 bps 흐름제어 없음5 : 230400 bps

CAN 컨트롤러는 응답으로 ACK[0xC0] / NACK[0xD0] 을 전송한다.ACK는 설정이 정상적으로 완료되면 보내고, NACK는 패킷에 오류가 있거나 설정시에러가 발생한경우다.

* 참조 : 230400bps는 PC자체에서는 지원이 안되며 usb2serial 컨버터를 이용하면 사용할수 있다. PC에 따라서 usb2serial 컨버터를 사용하는 경우 통신이 안되는 경우도 있다.

5) CAN 데이터 송신 PC -> CAN

0xF0 0x84 4~12 ID(4) Data(0~8) Checksum 0xE0

ID는 메시지를 보내고자 하는 목적지 ID를 의미한다.Data는 전혀 없을수도 있고 최대 8개까지 갖을 수 있다.

6) CAN 데이터 수신 CAN -> PC

0xF0 0x85 4~12 ID(4) Data(0~8) Checksum 0xE0

ID는 목적지 ID를 의미하며 CAN컨트롤러의 ID가 설정되어 있는 경우 그 ID와 동일한 값이 되나, [0xFFFFFFFF][0xFFFFFFFF][0xFFFFFFFF][0xFFFFFFFF] 로 컨트롤러 ID가 설정되어 있는 경우는 모든 메시지를 수신하기 때문에 ID가 일정한값이 아닐수 있다. Data는 전혀 없을수도 있고 최대 8개까지 갖을 수 있다.

7) CAN 상태 요구 PC -> CAN

0xF0 0x86 0x00 Checksum 0xE0

CAN컨트롤러의 현재 상태를 요구한다. 응답으로 CAN컨트롤러는 [0x87] 패킷을 전송한다.

8) CAN 상태 수신 CAN -> PC

0xF0 0x87 0x08 Status CAN ID(4)BRGCON1 BRGCON2 BRGCON3 Checksum 0xE0

11

Page 12: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

CAN 컨트롤러의 현재 상태와 ID를 수신 받는다. Status의 각 비트는 다음과 같은 의미를 갖는다.Bit 0 : Buffer OverrunBit 1 : CAN Error WarningBit 2 : CAN Receiver Warning Bit 3 : CAN Transmitter WarningBit 4 : CAN Receiver Bus PassiveBit 5 : CAN Transmitter Bus PassiveBit 6 : CAN Transmitter Bus OffBit 7 : Standard ID Mode(0) / Extended ID Mode(1)

BRGCON1~3에 대한 자세한 내용은 10) 항의 CAN통신 파라에터 설정에 기술되어 있다.위에 설명된 내용중 Error, Passive, Bus Off등은 다음과 같이 Rx,Tx에서 각각 발생한 에러수를 카운팅하여 그 숫자에 따라 상태가 변경된다.

즉, Rx또는 Tx의 에러수가 127보다 작으면 Error Active가 되고, 그 이상이 되면 Error Passive가 된다.Error Passive상태에서 또 Tx에러수가 255를 넘어서게 되면 Bus Off가 된다.Bus off상태에서는 연속적인 11개의 ressesive비트가 128회 발생하면(Bus off회복 시퀀스) Bus off상태를 회복하여 다시 Error Active상태로 된다.

9) CAN 오류 수신 CAN -> PC

0xF0 0x88 0x01 Status Checksum 0xE0

0x86 과 동일한 Status값을 갖지만 이 패킷은 CAN통신의 H/W적인 오류가 발생할때 CAN컨트롤러가 PC로 전송하는 패킷이다. Error가 Clear되기 전까지 1회만 전송한다.* 현재 버전에서는 지원하지 않는다

10) CAN Bit Timing 설정 PC -> CAN

0xF0 0x89 0x03 BRGCON1 BRGCON2 BRGCON3 Checksum 0xE0

12

Page 13: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

CAN의 통신속도를 사용자 지정으로 한 경우 직접 통신속도에 대한 각 파라메터를 설정한다.설정값 BRGCON1~3는 Microchip CAN Bit Timing Calculator에서 출력된 결과 값이다. 그것의사용법은 다음장에서 다룬다.CAN 컨트롤러는 응답으로 ACK[0xC0] / NACK[0xD0] 을 전송한다.ACK는 설정이 정상적으로 완료되면 보내고, NACK는 패킷에 오류가 있거나 설정시에러가 발생한경우다.각 파라메터의 필드내용은 다음과 같다.

BRGCON1 BRGCON2 BRGCON3Bit 0 Bit 0 Bit 0Bit 1 Bit 1 Bit 1Bit 2 Bit 2 Bit 2Bit 3 Bit 3 Bit 3 0Bit 4 Bit 4 Bit 4 0Bit 5 Bit 5 Bit 5 0Bit 6 Bit 6 sam Bit 6 wakfilBit 7 Bit 7 segphts Bit 7 0

* 약어설명BRP baud rate prescalarSJW synchronized jump widthPRSEG propagation time selectSEGLPH phase segment 1SAM sample of the can bus lineSEGPHTS phase segment 2 time selectSEG2PH phase segment 2 time selectWAKFIL selects can bus line filter for wake-up

* 다음은 위 파라메터가 적절히 표시된 Bit Timing Diagram 예이다.

11) CAN 에러 clear PC -> CAN

0xF0 0x8A 0x00 Checksum 0xE0

CAN통신시 발생한 에러에 대해 Clear 를 해 준다. Clear되기 전까지 CAN컨트롤러는 에러에 대한 패킷[0x88]을 재전송하지 않는다.CAN 컨트롤러는 응답으로 ACK[0xC0] / NACK[0xD0] 을 전송한다.ACK는 설정이 정상적으로 완료되면 보내고, NACK는 패킷에 오류가 있거나 설정시에러가 발생한경우다.

seg2ph

sjw

brp

prseg

seglph

13

Page 14: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

12) CAN Acceptance Mask & Filter설정 PC -> CAN

0xF0 0x8B 32 Mask1(4) Mask2(4) Filter1(4) Filter2(4)Filter4(3) Filter4(4) Filter5(4) Filter6(4) Checksum 0xE0

사용자가 임의로 Acceptance Filter 와 Mask를 변경하기 위해서는 먼저 CAN ID를 [0xFFFFFFFE][0xFFFFFFFE][0xFFFFFFFE][0xFFFFFFFE]로변경하고 상위의 패킷 명령을 전송하면 된다. Mask와 Filter설정에 대한 자세한 내용은 6장에 기술되어있다.

13) Firmware버전 요청 PC ->CAN

0xF0 0x8C 0x00 Checksum 0xE0

현재 CAN to RS232 컨버터에 내장된 펌웨어의 버전을 요청한다. 이에 대한 응답 패킷은 [0x8D]이다.

14) Firmware 버전 응답 CAN -> PC

0xF0 0x8D 0X02 Ver. Major Ver. Minor Checksum 0xE0

[0x8C] 패킷에 대한 응답 패킷으로 Major와 Minor버전을 전송한다. 두버전의 표시형식은 Major.Minor이다. 예를 들어 Major가 1이고, Minor가 0이면 실제 버전은 1.0 이 된다.

15) Acknowledge CAN -> PC

0xF0 0xC0 0x00 Checksum 0xE0

메시지를 송수신하는것을 제외하고 CAN컨트롤러를 설정하는 경우 명령전송후 문제가 없이 처리되면이 패킷을 PC로 전달한다. 만약 100 ms이내에 이 패킷이 수신되지 않으면 다시 전송할 필요가 있다.

16) Not Acknowledge CAN -> PC

0xF0 0xD0 0x01 Error Checksum 0xE0

메시지를 송수신하는것을 제외하고 CAN컨트롤러를 설정하는 경우 명령전송후 문제가 발생하게 되면이 패킷을 PC로 전달한다. 만약 100 ms이내에 이 패킷이 수신되지 않으면 다시 전송할 필요가 있다.Error = 0x01 Checksum 에러

0x02 잘못된 PID0x03 기타

14

Page 15: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

3. Microchip Bit Timing calculator(MBTC) 사용설명서3. Microchip Bit Timing calculator(MBTC) 사용설명서3. Microchip Bit Timing calculator(MBTC) 사용설명서3. Microchip Bit Timing calculator(MBTC) 사용설명서

MBTC는 사용자가 원하는 형식의 CAN통신을 하기 위한 CAN 통신 파라메터를 계산해 주는 툴이다.본 실행파일은 http://www.intrepidcs.com 에서 다운받을 수 있다.먼저 MBTC를 설치하고 ics2510BitTime.exe를 실행하면 다음과 같은 화면을 볼 수 있다.

초기화면에서 입력값이 OSC 주파수와 CAN통신 속도 이다. OSC주파수는 CAN2RS232 컨버터 내부에 사용하는 CPU clock으로 40 Mhz이다.CAN 통신속도는 원하는 값을 입력하고 [>] 버튼을 클릭하면 다음화면으로 진행된다.

그림 1

그림 2

15

Page 16: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

그림2에서는 통신 에러가 0%가 되는 최적의 파라메터값의 리스트를 보여준다. 이값은 그냥 참고만하고 다음으로 진행하기 위해 [>] 버튼을 클릭한다.

그림3에서 사용자는 원하는 파라메터를 세밀하게 변경 할 수 있다. 그러나 설정된 파라메터로Error율이 0%가 되지 않는 다면 [Generate Report] 버튼이 활성화 되지 않는다. 그런 경우는 파라메터를 다시 재조정한다. 모든 설정이 완료되었으면 [Generate Report]버튼을 클릭하여 다음의 Report를 출력한다.

그림 3

16

Page 17: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

위의 report에서 이용하는 값은 맨 마지막 부분의 BRGCON1, BRGCON2, BRGCON3 이다.위의 예에서는 각각 0x00, 0xBA, 0x07로, 그 값을 설정하러면 패킷 [0x89]의 파라메터로 전송하면된다.

17

Page 18: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

4. 터미널 모드 사용법4. 터미널 모드 사용법4. 터미널 모드 사용법4. 터미널 모드 사용법

터미널 모드를 사용하기 위해서는 쉽게 윈도우에서 제공하는 하이퍼 터미널로 이용할 수 있다.먼저 하이퍼 터미널을 실행하고 통신설정을 하고 시리얼 포트를 open한다.터미널 모드로 진입하기 위해서는 터미널에서 space 키를 연속해서 5번 입력한다. 그럼 다음과 같은화면이 표시되면서 터미널 모드로 진입하게 된다.

<< CAN2RS232 CONVERTER Terminal >>

+- syntax -+ function ----------------+

|INI | CAN controller initialize|

|EID | Set 11/29 bit ID mode |

|SID [hex8]| Set CAN ID (Hexa Code) |

|CBR | Set CAN baud rate |

|SCP | Set CAN parameters |

|RBR | Set RS232 baud rate |

|RCV | Start receiving message |

|SND | Send message |

|STS | Request status |

|CLR | Clear error |

|EXT | Exit terminal mode |

+----------+--------------------------+

다음은 각 명령에 대한 사용법을 기술 하였다

1) INI

CAN 컨트롤러를 초기화 하면 버퍼에 있는 모든 데이터는 클리어 한다.성공하면 OK, 그렇지 않으면 ERROR가 표시 된다.

2) EID

Standard ID(11비트) 모드를 사용할지 Extended ID(29비트) 모드를 사용할지 선택하는 명령이다.명령을 실행하면 다음과 같은 메시지가 화면에 표시되며 0또는 1을 선택할 수 있다.

0: Standard ID(11bit) mode 1: Extended ID(29bit) mode

3) SID

CAN의 ID를 설정하는 것으로 'SID 0000001A' 형식으로 입력한다. 여기서 ID는 32비트 16진수이다.[FFFFFFFF] 를 입력하면 모든 데이터를 받고, [FFFFFFFE]를 입력하면 사용자가 설정한 AcceptanceMask와 Filter를 사용할 수 있다. 성공하면 OK, 그렇지 않으면 ERROR가 표시 된다.

4) CBR

18

Page 19: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

CAN의 통신 속도를 선택하는 명령어로 CBR을 입력하면 다음과 같이 화면에 출력되며 원하는 속도에해당하는 번호 (0~4)를 선택하여 입력한다.

0 : 125 kbps1 : 250 kbps2 : 500 kbps3 : 1000 kbps4 : UserPress the No.[0-4] ?

성공하면 OK, 그렇지 않으면 ERROR가 표시 된다.* 주의사항 : 이명령을 사용하기 위해서는 CAN라인에 데이터가 수신되지 않아야 하며 수신되고 있는 경우에는 ERROR가 표시 될수 있다. 그러한 경우는 CAN컨트롤러의 전원을 껏다 켜주면

설정된 값으로 동작한다.

5) SCP

CAN통신속도 설정이 User 모드로 되어 있는 경우 속도를 결정하는 parameter인 BRGCON1/BRGCON2BRGCON3 의 값을 설정 하는 명령이다. User모드가 아닌 경우는 변경하더라도 즉시 적용 되지 않고User모드로 변경되 이후에 적용된다.SCP를 터미널에서 입력하면 다음과 같은 메시지가 출력되며 사용자는 16진수 두자리 숫자를 공백으로 분리하여 3개를 입력해야 한다.

BRGCON1(2) BRGCON2(2) BRGCON3(2) ?

[예제]>> BRGCON1(2) BRGCON2(2) BRGCON3(2) ? 81 E0 4281 E0 4281 E0 4281 E0 42

6) RBR

RS232의 통신 속도를 선택하는 명령어로 RBR을 입력하면 다음과 같이 화면에 출력되며 원하는 속도에해당하는 번호 (0~5)를 선택하여 입력한다.

0 : 9600 bps1 : 19200 bps2 : 38400 bps3 : 57600 bps4 : 115200 bps5 : 230400 bpsPress the No.[0-5] ?

성공하면 OK, 그렇지 않으면 ERROR가 표시 된다.

7) RCV

CAN 데이터를 수신하기 시작하면서 화면에 다음과 같은 형식으로 데이터를 출력한다. 아무키나 누르게되면 수신을 중지한다.

19

Page 20: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

CAN_ID DATA0 DATA1 …… DATA7

*알림 : CAN 데이터량이 RS232 속도로 처리할 수 있는 정도라도 데이터를 Binary(패킷형식) 가 아닌 ASCII형식으로 출력하기 때문에 시간이 많이 소요됨에 따라 데이터를 수신하는 Rx FIFO가 Overrun되어 데이터를 소실할 수 있다.

8) SND

CAN버스에 데이터를 다음과 같은 형식으로 입력된 데이터를 전송한다.

SND CAN_ID DATA0 DATA1 DATA2 DATA3 …[example] SND 0000001A 15 3F 4E 8A …모든 데이터는 16진수로 입력하고 ID는 8자리, DATA는 2자리로 입력하고 각 필드 사이는 space 로띄워 준다. 단 데이터 수는 CAN spec상 최대 8개 까지 밖에 입력할 수 없다.

9) STS

현재의 상태를 요청하는 명령으로 다음과 같은 출력을 CAN컨트롤러가 보여준다.

Version 1.2CAN_ID FFFFFFFFCAN BaudRate 1000 kbps CAN Parameters 00/BA/07 RS232 BaudRate 115200 bps Error Warning 0Rx/Tx Warning 0Bus passive 0Bus off 0Overrun 0:0:0Extended ID mode 0Mask1,2 FFFFFFFF,FFFFFFFFFilter1-3 FFFFFFFF,FFFFFFFF,FFFFFFFFFilter4-6 FFFFFFFF,FFFFFFFF,FFFFFFFF

10) CLR현재 에러비트들을 클리어 한다. 경우에 따라 치명적인 것들에 대해서는 에러비트가 클리어 되지 않기때문에 CAN컨트롤러의 전원을 껏다 켜준다. 정상동작후에 OK를 표시한다.

11) EXT터미널 모드를 종료하고 패킷모드로 전환한다.

20

Page 21: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

5. Utility 사용법5. Utility 사용법5. Utility 사용법5. Utility 사용법

PC에서 쉽게 CAN 버스의 상태를 확인 하고 CAN2RS232 컨버터의 설정을 변경하고자 하는 경우에사용할 수 있다.프로그램은 크게 Setup, Monitor, OBD-II Monitor 부문으로 나눠져 있으며 Monitor에서는 CAN버스의 데이터 흐름을 실시간으로 관찰 할 수 있으며, Setup에서는 컨버터의 각종 설정갑을 변경 할 수 있다.OBD-II모니터는 차량에 사용되는 OBD-II의 몇몇 PID에 대한 모니터링 값을 표시하며 8장에 자세히설명된다.

5.1 초기 작업5.1 초기 작업5.1 초기 작업5.1 초기 작업

1) 컨버터를 PC에 RS232케이블을 이용하여 연결하고 컨버터의 전원을 인가한다.2) Tester프로그램을 실행하고 RS232케이블을 연결한 COM 포트를 확인하여 [Setup]에서 Port를 설정 한다.3) [Connect] 버튼을 눌려 컨버터와 연결한다. 그러면 [Monitor]탭이 활성화 된다.

5.2 설정작업 [Setup]5.2 설정작업 [Setup]5.2 설정작업 [Setup]5.2 설정작업 [Setup]

1) 모든 설정작업은 [Setup] 탭에서 할 수 있다. 이 탭에서 할 수 있는 작업은 다음과 같다.

21

Page 22: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

- RS232 Port와 속도 및 CAN 통신 속도 변경 - CAN ID 및 표준/확장 ID모드 설정 - 비트 타이밍 및 Acceptance 필터와 마스크 설정

2) 모든 설정값을 변경한 후 [Set] 버튼을 클릭해야 컨버터에 실제적으로 적용되며 적용결과 상태는 [Information] 창에서 확인할 수 있다.

3) 만약 [Set]버튼을 눌러 설정하려할때 [Information]창에 Timeout에러가 출력되면 다음과 같은 원인 과 해결 방법이 있다.

- RS232포트 또는 속도설정이 잘못되었을 경우 COM 포트 변호를 변경하거나 [Auto Detect]버튼으로 을 클릭하여 속도를 찾는다. - 컨버터의 전원이 제대로 인가되지 않아 전원 LED가 켜져 있지 않을때는 전원을 연결한다. - 컨버터가 터미널 모드로 되어 있는 경우는 패킷모드로 전환할때 까지 패킷모드 명령을 무시하므로 컨버터의 전원을 껏다 다시 켜거나 하이퍼터미널에서 패킷모드로 전환하는 명령어인 'EXT'를 입력하여 패킷모드로 전환한다. - 위의 작업이 안되면 공장초기화 점퍼를 삽입한 상태에서 전원을 인가하여 본다.

5.3 모니터링5.3 모니터링5.3 모니터링5.3 모니터링

1) [Status] 버튼

현재의 CAN ID, Status Code 그리고 CAN 파라메터 값들을 표시하여 준다. 숫자는 16진수로 표시된다.

2) [Clear] 버튼

Information 창 아래에 있는 버튼은 Information 창에 기록된 내용을 모두 지울때 사용하고 화면의 하단에 있는 버튼은 [Received Data] 창에 있는 수신 데이터 기록을 삭제 할 때 사용한다.

3) [Receive] 체크박스

수신되는 데이터를 화면에 표시하여 준다. 실제 데이터가 수신되더라도 이박스를 체크하지 않는다면데이터는 보여지지 않는다.

4) [Auto Snd] 버튼

데이터 전송을 테스트 할 때 사용하는 기능으로 CAN ID는 0부터 0x7FF까지 순차적으로 증가하고 각ID에 대해 0부터 255까지 순환하면서 증가하는 데이터 값 8개를 갖는 패킷을 전송한다. 즉,

CAN ID Data0 00 01 02 03 04 05 06 071 08 09 0A 0B 0C 0D 0E 0F2 10 11 12 13 14 15 16 173 18 19 1A 1B 1C 1D 1E 1F

:7FF F8 F9 FA FB FC FD FE FF

22

Page 23: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

5) [Send] 버튼

한 개의 패킷을 임의로 생성해서 전송하고자 하는 경우 사용되는 버튼이다. Send Packet프레임내에있는 Dest.ID에 목적지의 ID를 입력하고, 전송할 바이트 값을 (0~8 사이값) Len에 입력하며, D0~D7데이터를 입력한다.

모든 입력이 끝난후 [Send] 버튼을 클릭하면 입력된 형식으로 패킷이 생성되어 전송된다.

5.4 주의 사항5.4 주의 사항5.4 주의 사항5.4 주의 사항

1) User Filter를 사용하는 경우는 CAN ID가 반드시 FFFFFFFE 이어야 하며 User Filters를 선택한 경우 에는 자동적으로 CAN ID가 FFFFFFFE로 변경되고 수정할 수 없는 상태가 된다.

2) RS232통신 속도를 모르는 경우에는 [Auto Detect RS232] 버튼을 클릭하여 쉽게 알아 낼수 있다.

3) 사용자가 설정한 Bit Timing값을 사용하기 위해서는 CAN Baud Rate가 [User] 모드로 되어 있어야 한다. 그렇지 않은 경우는 컨버터 EEPROM에 값만 저장되고 적용되지 않는다.

4) CAN버스 패킷 데이터를 수신하기 위해서는 [Monitor]탭의 [receive]를 체크한다. Received Data에 표시되는 내용중 Time Stamp는 프로그램이 패킷을 수신한 시간을 milisecond로 표시한 것이다.

23

Page 24: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

6. Acceptance Mask 와 Filter 설정법6. Acceptance Mask 와 Filter 설정법6. Acceptance Mask 와 Filter 설정법6. Acceptance Mask 와 Filter 설정법

Acceptance Mask와 Filter의 용도는 CAN수신 버퍼로 들어오는 다양한 메시지 데이터에 대해서원하는 특정 ID나 또는 특정 범위 또는 특정 패턴의 ID에 대해서만 수신 가능하도록 하기 위해ID와 Mask와 Filter간에 정해진 비트조작을 하여 얻어진 결과물이 모두 참이 되는 경우 수신 하도록하는 메커니즘에 사용된다.본 컨버터에서는 2개의 Mask를 제공하고 각 Mask별로 각각 2개와 4개의 Filter를 제공한다.기본적으로 Mask , Filter 그리고 메시지 ID간 상관관계에 따른 acceptance에 대한 진리표는 [표1]과 같다.

표1. Filter & Mask 진리표

Mask bit n Filter bit nMSG ID

bit nAcceptbit n

0 x x Accept

1 0 0 Accept1 0 1 Reject1 1 0 Reject1 1 1 Accept x : don’t care

수식과 디지털 논리회로로 표현하면 다음과 같다.

Accept? = not Mask or not(Filter xor ID)

즉 좀더 쉽게 풀어서 설명하면 Mask 비트가 0이면 ID가 어떤값이 와도 Accept를 하고, 1인 경우는필터비트와 ID비트값이 동일한 경우 Accept를 하게 되고 다르면 Reject한다.위와 같은 방법으로 11또는 29비트 각각의 비트 계산을 하고 각 비트 모두가 1이 되는경우 Accept하게된다.이해를 돕기 위해 Standard ID모드 (11비트) 에서 몇 개의 예를 들어보자.

예1) Mask = 0x000, Filter = 0x7FF모든 mask비트가 0이기 때문에 filter값에 상관없이 모든 ID에 대해 모두 Accept한다.

Mask 00000000000

Filter 11111111111

ID xxxxxxxxxxx

계산값 11111111111

예2) Mask = 0x7F0, Filter = 0x080

24

Page 25: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

mask가 0x7F0이므로 상위 7비트에 대해서만 고려하고, filter의 상위 7비트와 동일한상위 7비트를 같는 모든 ID를 수신하게 된다.즉 수신 ID의 범위는 0x080~0x08F 이다.

Mask 11111110000

Filter 00010000000

ID 0001000xxxx

계산값 11111111111

고려되는 비트 (Mask가 1인부분)

이런식으로 Mask과 Filter는 관련성이 있고, 1개의 Mask에 몇 개의 Filter가 있는 이유는 좀더 세밀하게수신 ID를 설정하기 위함으로, filter를 좀더 많이 사용하면 분산된 여러 범위의 ID에 대해서 수신하게할 수 있다.

25

Page 26: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

7. ActiveX control 사용법7. ActiveX control 사용법7. ActiveX control 사용법7. ActiveX control 사용법

패킷모드를 좀더 편리하게 사용하기 위해 ActiveX 컨트롤을 제공한다. 이것은 Visual Basic나 VC++에서 RS232통신에 대한 프로그래밍 기술이 없어도 단순히 컨트롤을 추가하고 몇가지 설정만 함으로써간단히 컨버터와 통신을 할수 있게 도와준다.아래 그림은 ActiveX 컨트롤을 이용한 Visual Basic 예제 프로그램이다.

7.1 ActiveX 컨트롤 Visual Basic에 등록방법7.1 ActiveX 컨트롤 Visual Basic에 등록방법7.1 ActiveX 컨트롤 Visual Basic에 등록방법7.1 ActiveX 컨트롤 Visual Basic에 등록방법

1) CTRL+T 키를 누르면 Component 리스트를 다음과 같이 볼수 있다.

1

2

26

Page 27: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

위 그림에서 (1)의 [Browse..] 키를 눌러 can2rs232.ocx 파일을 찾아 선택하여 준다. 그럼 (2)와 같이CAN2RS232 ActiveX control module이 추가되며 그림과 같이 체크하여 선택한다.작업을 완료하면 [확인]버튼을 클릭하고 종료하면 Visual Basic의 컴포넌트 창에 와 같은아이콘이 생성된다.

7.2 메소드 함수7.2 메소드 함수7.2 메소드 함수7.2 메소드 함수

메소드 함수는 컨버터의 초기화, 설정 변경 및 상태 요구등을 하기 위한 명령들의 의미 한다.다음은 각 메소드 들에 대해 함수의 원형 및 매개 변수와 리턴값에 대해 기술하였다.

1) boolean Initialize (short port, long brate)

컨버터와 연결을 위해 시리얼 포트를 초기화 한다.

27

Page 28: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

port : 시리얼 포트를 의미 함, COM1인 경우 숫자 1을 입력brate : baud rate를 의미함, 9600,19200,38400,57600,115200,230400

리턴값 : 초기화가 실패 하거나 포트 또는 baud rate가 잘못된 경우는 false를 리턴

2) void SetCanBaudRate (short baudRate)

CAN baud rate를 설정한다.

baudRate : 0 (125k), 1(250k), 2(500k), 3(1Mbps), 4 (User Bit Timing)

3) boolean SetRs232BaudRate (long baudRate)

시리얼 포트의 baud rate를 설정한다.

baudRate : baud rate를 의미함, 9600,19200,38400,57600,115200,230400 리턴값 : 설정에 성공하면 true를 리턴함

4) boolean SetCanID (boolean extMode, long canID)

CAN ID를 설정한다.

extMode : Extended ID를 사용하려면 true, Standard ID를 사용하려면 falsecanID : 설정할 ID숫자를 입력, standard ID모드인 경우 값을 0x7FF 이하로

설정

리턴값 : 설정에 실패하거나 CAN ID 범위가 잘못된 경우 false를 리턴

5) void SetBitTiming (short BRGCON1, short BRGCON2, short BRGCON3)

User baud rate에 사용할 Bit Timing 값을 설정한다.

BRGCON1 : MBTC 의 출력결과 값BRGCON2 : MBTC 의 출력결과 값BRGCON3 : MBTC 의 출력결과 값

6) void SetAcceptacneFilter(long mask1, long mask2, long filter1,

long filter2, long filter3, long filter4, long filter5, long filter6)

CAN의 Acceptance에 대한 Mask와 Filter값을 설정한다.filter1~2까지는 Mask1과 한쌍이고 , filter3~6가지는 Mask2와 한쌍이다.

7) void ReqCanStatus()

CAN의 상태값을 요청한다.

28

Page 29: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

결과 값은 RspCanStauts 이벤트로 받을수 있다.

8) void Close()

시리얼 포트를 닫는다.

8)boolean SendMessage (long canID, short len, short data0, short data1,

short data2, short data3, short data4, short data5, short data6,

short data7)

지정된 목적지 ID에 길이 len의 데이터(data0~8)를 전송한다.

canID : 목적지 CAN IDlen : 메시지 데이터의 길이 (0~8)data0~7 : 메시지 데이터

7.3 이벤트 함수7.3 이벤트 함수7.3 이벤트 함수7.3 이벤트 함수

이벤트 함수는 컨버터가 데이터를 수신하거나, 명령작업을 완료하거나, 기타 요구에 응답하는 등, 특정한 상황에 인터럽트 처럼 호출되는 함수이다.

1) void PacketReceived(long canID, short length, short data0, short data1,

short data2, short data3, short data4, short data5, short data6,

short data7)

본 이벤트 함수는 CAN버스로 부터 데이터를 수신한 경우 호출된다.

canID : 수신한 데이터의 목적지 ID를 의미 함.length : 데이터의 길이로 0~8사이 값을 갖음data0~7 : 수신 데이터

2) void ProtocolAcknowlegde (boolean isError, short ErrCode)

Set~ 형태의 메소드에 대한 결과를 알려주는 이벤트 함수이다.

isError : 설정한 명령이 제대로 수행완료되었는가를 의미ErrCode : isError가 true인 경우 다음과 같은 값을 갖음

1 : Checksum 에러2 : 잘못된 PID3 : 기타 오류

3) void RspCanStauts(short status, long canID, short BRGCON1, short BRGCON2

, short BRGCON3)

29

Page 30: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

ReqCanStatus 메소드 명령에 대한 응답 이벤트 함수 이다.

status : 현재 컨버터의 상태를 나타냄, 자세한 내용은 [0x87] 패킷내용을

참조canID : 설정된 CAN ID값BRGCON1 : Bit Timing값BRGCON2 : Bit Timing값BRGCON3 : Bit Timing값

30

Page 31: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

8. OBD-II PIDs & CAN 프로토콜8. OBD-II PIDs & CAN 프로토콜8. OBD-II PIDs & CAN 프로토콜8. OBD-II PIDs & CAN 프로토콜

OBD는 On Board Diagnostic의 약자로 차량의 자체 진단이나 성능 보고를 하기 위해 사용되는 일반적인

용어이다. OBD System 은 차량의 다양한 서브 시스템의 건강싱태에 운전자나 기술자들이 접근할 수

있는 방법을 제공한다. OBD 를 통해 얻을 수 있는 수많은 진단정보는 1980년대 이후로 온보드 컴퓨터가

차량에 탑제되면서 점차 확대 되었고 최근에는 OBD-II로 버전업 되었다.

OBD-II의 PID 즉 Parameter ID는 차량진단기기 차량으로 작동상태를 요구하는 코드이다. 다른 이름으

로 P-code라고도 부른다. 이 코드는 자동차 협회 표준인 SAE-J2012에 정의되어 있다. 일반적으로

차량의 OBD-II 포트를 이용하여 차량의 상태를 진단하는 경우는 PID를 이용하게 된다.

우리나라에서도 최근에 생산되는 대부분의 차량에서 OBD포트를 지원하며, 대부분의 PID를 지원하나

모든 차량이 모든 PID를 지원하는 것은 아니다.

OBD포트를 이용해 PID를 요청하는 경우는 PID뿐만 아니라, Mode값도 전송해야 하는데 Mode에는

다음과 같은 것들이 있다.

01h Show current data

02h Show freeze frame data

03h Show stored Diagnostic Trouble Codes

04h Clear Diagnostic Trouble Codes and stored values

05h Test results, oxygen sensor monitoring (non CAN only)

06h Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only)

07h Show pending Diagnostic Trouble Codes (detected during current or last driving cycle)

08h Control operation of on-board component/system

09h Request vehicle information

0Ah Permanent DTC's (Cleared DTC's)

다음은 각 PID별 코드값과 설명 및 관련 표시 공식을 계산하는 테이블 이다. Formula에서 A와 B는

Response CAN패킷중 Value 부분의 첫번째 바이트와 두번째 바이트를 의미 한다.

31

Page 32: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

32

Page 33: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

33

Page 34: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

34

Page 35: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

35

Page 36: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

36

Page 37: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

37

Page 38: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

38

Page 39: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

테이블의 보다 자세한 내용은 "http://en.wikipedia.org/wiki/OBD-II_PIDs" 를 참조한다.

실제 Mode와 PID값을 전송하여 차량으로 부터 정보를 얻기 위한 프로토콜 또는 8바이트 CAN 패킷의

형식은 다음과 같고 매우 단순하다. 이를 위해 ISO15765 스펙을 알 필요는 없다.

1. Query (값요청) 1. Query (값요청) 1. Query (값요청) 1. Query (값요청)

2. Response (차량 응답) 2. Response (차량 응답) 2. Response (차량 응답) 2. Response (차량 응답)

39

Page 40: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

위의 형식데로 CAN2RS232 Test Application의 OBD-II Monitor탭에서 구현되어 지정된 시간에 따라

각 센서 상태를 모니터링하게 하였다. 다음은 OBD-II Monitor 화면이다.

40

Page 41: Controller Area Network(CAN) to RS232 Converter 사용자 매뉴얼 · 2009. 4. 16. · 2009-04-05 rev.4.0 Controller Area Network(CAN) to RS232 Converter Firmware ver. 1.5 Utility

9. 문제해결9. 문제해결9. 문제해결9. 문제해결

본 컨버터를 사용하는 중에 발생할 수 있는 문제점과 해결방법에 대해 기술하였다. 기술 방법은 질문과그에 대한 답변 형식으로 한다.

Q1.Q1.Q1.Q1. 설정을 변경 했는데 전원을 껏다가 다시 켜도 설정값이 변경되지 않는다.

A.A.A.A. 공장 초기화 점퍼가 삽입된 상태에서 전원이 인가 되면 이전에 설정된 값을 무시 하고 초기 출하시의설정값으로 재설정되므로, 변경된 설정값을 유지하고 싶으면 공장초기화 점퍼를 빼놔야 한다.

Q2.Q2.Q2.Q2. 설정을 잘 한것 같은데 CAN 통신이 전혀 안된다.

A.A.A.A. CAN라인이 연결되어 있는 여러 컨트롤러 중에 양쪽 끝의 컨트롤러에 터미네이터 점퍼를 제대로 삽입하였는가 확인하고, CAN_H, CAN_L 라인 연결이 제대로 되어 있는지 확인하다. 또한 RS232 연결선을 사용자가 임으로 제작하여 사용하거나 구매한 경우 Rx, Tx라인이 1:1 로 연결되어 있는지도 확인한다.

Q3.Q3.Q3.Q3. 패킷모드로 프로그램에서 아무리 명령을 줘도 아무런 응답을 하지 않는다.

A.A.A.A. 간혹 터미널 모드로 작업하다가 EXT명령으로 종료하지 않은 상태에서 다른 패킷모드 프로그램을실행하는 경우가 있는데 이때 프로그램은 아무런 응답을 하지 않게 된다. 이런경우는 다시 터미널프로그램을 실행하고 'EXT' 명령을 실행하고 패킷모드로 전환한 다음 작업을 한다.

Q4.Q4.Q4.Q4. 터미널 모드에서 RS232 통신 속도를 변경했는데 그 이후부터 컨버터가 아무런 동작을 하지 않는다.

A.A.A.A. 예를들어, 115200bps에서 작업중에 RBR 명령으로 9600bps로 변경하게 되면 컨버터의 통신속도는9600bps로 바뀌지만, 터미널 프로그램의 통신속도는 115200 bps이기 때문에 당연히 터미널에서 입력하는것에 반응 하지 않는다. 따라서 컨버터의 통신 속도를 변경할때 터미널의 통신속도도 같게 변경해주어야 한다.

Q5.Q5.Q5.Q5. 어떤 조취를 취해도 컨버터가 아무런 반응을 하지 않는다.

A.A.A.A. 컨버터는 내부적으로 RS232 TX/RX선이 Cross되어 있기 때문에 PC와 연결하고자 하는 경우 반드시1:1 시리얼 케이블 또는 널모뎀 케이블을 사용해야 한다. 시중에는 TX/RX가 서로 Cross되어 있는 FX케이블과 Tx/Rx가 1:1로 연결된 널모뎀 케이블 등, 2종류를 판매하고 있기 때문에 구매시 필히 확인해야한다. 만약 FX케이블을 사용하게 된다면 컨버터는 전혀 반응을 하지 않게 된다.또한 1:1케이블을 사용하였는데도 통신이 안된다면 케이블의 2,3,5번 핀 끼리 연결이 되어 있는지 테스터로 확인하여 케이블의 이상 유무를 확인한다.

Q6.Q6.Q6.Q6. Bus off와 같은 현상이나 같은 패킷이 두번이상 들어오는등 이상동작하며, Error LED가 점등된다.

A. A. A. A. Bus Off와 같은 CAN통신의 중대한 오류가 자주 발생하는 경우는 CAN장치간의 전원 GND가 제대로연결되지 않는 경우에 발생될 수 있다. 이런 경우는 통신속도가 매우 느리더라도 신호 레벨이 불안정하여 발생 할수 있는 경우로, 반드시 CAN장치 간에는 전원끼리의 GND를 연결해 주어야 한다.

41