43
2006-11-16 rev.1.0 Controller Area Network(CAN) to Ethernet Gateway Firmware ver. 1.0 Utility ver. 1.0 Library ver. 1.0 사용자 매뉴얼 1

Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

2006-11-16

rev.1.0

Controller Area Network(CAN) to Ethernet Gateway

Firmware ver. 1.0Utility ver. 1.0Library ver. 1.0

사용자 매뉴얼

1

Page 2: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

목 차

CAN을 왜 사용하는가 ? 3

1. CAN to Ethernet Gateway의 개요 5

2. 패킷모드 통신 12

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

4. 터미널 모드 사용법 22

4.1 CAN2RS232 컨버터 모드 터미널 22

4.2 CAN2Ethernet Gateway 터미널 25

5. Utility 사용법 30

5.1 CAN2RS232 컨버터 테스트 프로그램 30

5.2 CAN to Ethernet Gateway 테스트 프로그램 32

6. Acceptance Mask 와 Filter 설정법 34

7. ActiveX control 사용법 36

8. 문제해결 41

2

Page 3: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

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

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

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

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

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

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

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

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

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

11. PLUG & PLAY 를 제공한다.

3

Page 4: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

* CAN 버스의 안정성

* SIMENS사의 자료를 보게 되면

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

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

4

Page 5: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

1. CAN to Ethernet Gateway 개요

일반적으로 CAN은 멀티마스터 버스 통신으로 자동차 산업이나 기타 실시간 분산제어를 요하는 분야에 자주 이용되곤한다. 요즘은 유비쿼터스 시대로 언제 어디서고 원하는 데이터를 실시간 관찰 및 모니터링 하기 위한 방법들이 모색되고 그러한 경향으로 흘러가고 있다. 또한 자동차에서도 CAN통신 뿐만 아니라 다양한 컨텐츠를 자동차에 적용하기 위해 다양한 네트웍 방식이 사용되고 있다. 이러한 트랜드에 발맞추어 CAN통신을 인터넷과 연결 하는 방법이 필요하게 되었다.인터넷과 직접적으로 연결하기 위해서는 CAN통신 자체로는 프로토콜이 전혀 다르므로 다른 형식의 네트웍간 프로토콜 체계를 변환하여 주는 Gateway역할의 장치가 필요하게 되어 본 장치가 개발되었다.

1.1 특징

1) 40 MHz로 동작하는 마이크로 프로세서가 내장2) Dsub 9pin형식의 CAN 포트, Dsub 9pin RS232포트 및 RJ45 이더넷 포트 한개씩 내장3) 82C250(또는 MCP2551) CAN 트랜시버를 사용4) 최대 RS232 통신속도 230400 bps / 최대 Ethernet 통신속도 10Mbps5) 최대 CAN통신속도 1 Mbps6) S/W적으로 CAN / RS232 / Ethernet 파라메터 변경가능7) CAN H/W Rx버퍼 2개, Tx버퍼 3개8) 최대 1000m의 CAN 통신거리 (CAN spec.에 의함)9) CAN2.0A, CAN2.0B 지원 (Active 모드는 지원안함)10) Standard(11bit) / Extended(29bit) ID mode 지원11) CAN 터미네이터(120 ohm) 점퍼 내장12) HW 공장초기화 점퍼내장13) Power / CAN Rx / CAN Tx/ Error / Status LED 내장14) EEPROM 내장으로 설정값 보관15) CAN to RS232 converter 와 CAN to Ethernet Gateway의 기능이 모두 내장되어 있으며 슬라이드 스위치로 전환가능16) IP / ARP / ICMP / UDP / TCP / DHCP / TELNET / C2E 프로토콜 내장17) 외부의 전기적 열악한 환경에 의해 발생하는 CPU의 오동작을 피하기 위한 watchdog 내장18) 동작온도 : -25℃ to +75℃19) 보관온도 : -40℃ to +80℃

1.2 H/W 구성품

1) CAN2Ethernet Gateway2) DC 5V power supply (Option)3) RS232 Dsub 9pin Cable(1:1) (Option)4) PC연결용 Cross LAN케이블 (Option)

1.3 S/W 구성품

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

5

Page 6: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

1.4 CAN to Ethernet Gateway Block Diagram

1.5 Dsub 컨넥터 PIN 구성

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

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

CAN컨넥터 RS232컨넥터

CAN H/WFIFO

CAN S/WFIFO

PROTOCOLConverter

RS232FIFO

COMMANDInterpreter

TERMINALEmulator

CAN BUS RS232 Line Ethernet

IP

ICMP TCP UDP

ARP

DHCPTELNET

C2E

6

Page 7: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

1.5 CAN2RS232 컨버터 보드 설명

J1 DC5V 입력 (극성은 위의 그림을 참조할 것)JP1 CAN 터미네이터 점퍼JP2 공장초기화 점퍼J3 5V TTL level RS232 포트JP3 반드시 삽입되어 있어야 함SW1 CAN2RS232 / CAN2Ethernet 모두 선택 스위치D2 CAN Tx LEDD3 CAN Rx LEDD4 Ethernet StatusD5 전원 LEDD6 에러 LEDD7 Ethernet Link (녹색)D8 Ethernet Rx/Tx (노랑)

CANRS232

RJ45Power+

SW1

D7

D8

7

Page 8: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

1) 공장초기화 점퍼

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

RS232 Baud rate 115200 bpsCAN Baud rate 1000 kbpsCAN ID 0xFFFFFFFFIP Address 192.168.10.100Gateway 192.168.10.1Subnet Mask 255.255.255.0IP mode StaticMAC Address 01-23-45-67-89-ABPort Number 54321

2) 터미네이터 점퍼

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

3) DC 5V 전원

전원은 외부전원 DC5V를 사용하며 되도록 함께 포함된 전원 아답터를 이용하고 그렇지 못한 경우라도정전압 500mA이상 DC5V출력이 나오는 아답터를 사용하길 권장한다. 실수로 극성(+/-)를 반대로 연결하지 않도록 연결전 반드시 확인한다. 만약 반대로 연결하거나 5V이상의 고전압을 연결하는 경우컨버터가 치명적인 손상을 입을 수 있다.

4) SW1

CAN2RS232 컨버터와 CAN2Ethernet Gateway 기능을 선택할 때 사용되는 슬라이드 스위치로 초기전원 인가시에만 인식하며 동작중에는 스위치가 전환되도 적용되지 않는다. RS232 쪽으로 슬라이드를 이동하면 CAN2RS232컨버터 모드로 되며, 그 반대로 이동하면(ETH) CAN2Ethernet Gateway모드가가 된다.CAN2RS232컨버터로 선택되어 사용되는 경우 Ethernet 은 전혀 사용되지 않으며 Ethernet 상태를표시하고 있는 Status LED도 점등 되지 않는다.반면 CAN2Ethernet Gateway로 선택된 경우엔 CAN2RS232 컨버터 기능을 사용할 수 없다.따라서 각 모드별로 매뉴얼을 참조하여 운영에 착오가 없도록 해야 한다.

5) LED

POWER LED : 전원이 입력되면 점등된다.TX/RX LED : CAN버스를 통해 데이터가 전송될때 점멸된다.ERROR LED : CAN통신시 에러가 발생되면 점등된다.STATUS LED : CAN2Ethernet 모드에서만 사용되며, Dynamic IP모드에서 DHCP로 IP를 가져올때 점멸 되며 IP할당이 완료되거나 Static IP모드에서는 항시 점등 되어 있다.Ethernet Link : LAN케이블이 연결되어 네트웍에 연결되면 점등된다.Ethernet Rx/Tx : Ethernet 통신이 되고 있는 경우 점멸된다.

8

Page 9: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

1.6 CAN2Ethernet Gateway 사용법

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

1.6.1 공통사항

1) Gateway의 전원을 인가하지 않은 상태에서 컨버터의 RS232포트와 PC의 시리얼포트에 NULL Modem케이블(1:1)을 이용하여 연결하고, RJ45 소켓에는 1:1 LAN케이블을 LAN허브에 연결하 거나 cross케이블로 직접 PC의 LAN포트와 연결할 수 있다.

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

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

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

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

하이퍼 터미널 대신 사용자가 편리한 통신 터미널 프로그램이 있다면 그것으로 사용해도 상관없다. 가끔 하이퍼터미널은 HW적으로는 문제가 없지만 통신이 안되는 경우가 종종 발생 한다. 이러한 문제는 통신에뮬레이터 중 '이야기 멀티'를 이용하면 발생하지 않는 듯 하다.

5) RS232 포트를 설정한다. 컨버터가 연결될 COM포트를 확인하여 정확하게 포트 번호를 입력하여 주고(예, COM1), 통신속도는 115200bps, 데이터비트느 8비트, 패리티는 없음, 정지비트는 1비트, 흐름제어는 없음으로 선택하여 설정하여 준다.

1.6.2 CAN2RS232 컨버터 모드 사용법

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

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

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

Serial Port

Ethernet Port

CAN Port

LAN 허브

9

Page 10: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

1.6.3 CAN2Ethernet Gateway 모드 사용법

1) 가장 먼저 'SIM'명령으로 IP Mode를 선택한다. 고정 IP를 사용하는 경우는 Static, 동적IP를 사용시엔 Dynamic을 선택한다. Static모드에서는 IP address, Gateway, Subnetmask 등을 설정해야 한다

2) 공장초기화시에 설정된 MAC address가 기존 네트웍에서 이미 사용중인 경우는 적절히 변경한다.

3) 모든 네트웍 설정이 종료되면 공장초기화 점퍼를 빼고 전원을 뺏다가 다시 인가 한다. Dynamic IP모드인 경우는 IP를 DHCP 서버로 부터 가져오는 동안 Status LED가 정멸하고 IP설정이 완료되면 점등 되어 있게 된다. 이때 RS232터미널 창에는 DHCP서버로부터 할당 받은 주소가 표시되므로 이 값들은 기억해 둔다. Static IP모드인 경우는 이런 절차가 생략되고 즉시 LED는 점등된다.

IP Address 192.168.10.5Subnet Mask 255.255.255.0Gateway 192.168.10.1MAC Address 01-23-45-67-89-AB

4) Status가 점등되어 있는 상태에서 DOS창을 실행하고 컴맨드 라인에서 "telnet 192.168.10.5" 와 같은 형식으로 3)에서 할당된 주소로 telnet 연결하고 ID와 Password를 입력하면 CAN2RS232컨버터 의 터미널 창과 같은 화면을 볼 수 있으며 "RCV"명령으로 CAN 수신 데이터를 볼 수 있게된다.

5) 30초이상 아무런 입출력이 없으면 자동으로 끊기고, "EXT"명령이 아닌 비정상적으로 telnet을 종료한 경우는 재접속 하려면 최소 30초 이상을 기다려야 한다. 좀더 자세한 내용은 4장의 C2E 터미널 모드를 참조하라.

1.7. CAN2RS232 컨버터로 사용시의 제한

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

1.8 기타주의 사항

1) 동작중 CAN설정값을 변경하면 되도록 전원을 뺏다가 재인가 하는 식으로 시스템을 재시작하는것이 바람직하며, 그렇지 않은 경우는 내부 에러가 발생 할 수 있다.

2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다 설정값이 원래대로 돌아가는 문제를 막을 수 있으며, 설정값도 결국 EEPRPOM에 저장되므로 쓰는 횟수의 한계가 있으므로 되도록 매번 부팅시마다 불필요하게 다시 설정되는 일이 없도록 주의 한다.

3) 요즘 판매되는 USB2Serial 케이블은 반이중만을 지원하거나 아예 한방향 통신만 지원하는 비 정상적 인 제품들이 있으므로 케이블 구매에 주의해야 한다. 본 제품은 반드시 전이중(Full-Duplex)통신이 가능한 Serial포트나 USB2Serial케이블을 사용해야 한다.

10

Page 11: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

11

Page 12: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

C2E는 CAN2RS232컨버터 모드로 사용될 때 다음과 같은 형식의 패킷을 사용하며, CAN2Ethernet Gateway로 사용시에는 SYNC와 End Mark가 생략된다.

SYNC PID Length Data Checksum End Mark <-- CAN2RS232컨버터 모드시

PID Length Data Checksum <-- CAN2Ethernet Gateway모드시

1) SYNC 필드 (1byte)모든 패킷은 SYNC 필드로 시작하며 값은 0xF0으로 고정되어 있다.CAN2Ethernet Gateway 모드에서는 생략된다.

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으로 고정되어 있다.CAN2Ethernet Gateway 모드에서는 생략된다.

2.1 기본 사용방법

CAN2RS2323컨버터 모드에서는 RS232포트로 패킷형식을 갖춰 직접 보내기만 하면 되지만 CAN2Ethernet Gateway모드에서는 C2E포트로 접속을 먼저 한후 소켓통신을 해야 한다. C2E포트는 초기값이 십진수 54321이며 이 값은 RS232터미널에서 변경될 수 SPT명령어로 변경 될 수 있다.

12

Page 13: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

2.2 PID 종류

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

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

1 0x80 0 C2E2 0x81 5 C2E3 0x82 1 C2E4 0x83 1 C2E5 0x84 4~12 C2E6 0x85 4~12 PC7 0x86 0 C2E8 0x87 6 PC9 0x88 1 PC

10 0x89 3 C2E11 0x8A 0 C2E12 0x8B CAN Acceptance Filter & Mask설정 32 C2E13 0x8C Firmware 버전 요청 0 C2E14 0x8D Firmware 버전 응답 2 PC15 0x90 C2E접속 종료 0 C2E16 0xC0 0 PC17 0xD0 1 PC

2.3 각 패킷별 형식

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

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

0xF0 0x80 0x00 Checksum 0xE0

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

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

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

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

RS232 패킷통신에 오류가 발생했음을 알림

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

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

RS232 패킷통신이 정상적으로 이루어졌음을 알림

설 명

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

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

13

Page 14: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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는 패킷에 오류가 있거나 설정시에러가 발생한경우다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

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

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는 패킷에 오류가 있거나 설정시에러가 발생한경우다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

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

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

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

ID는 메시지를 보내고자 하는 목적지 ID를 의미한다.Data는 전혀 없을수도 있고 최대 8개까지 갖을 수 있다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

14

Page 15: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

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

7) CAN 상태 요구 PC -> C2E

0xF0 0x86 0x00 Checksum 0xE0

CAN컨트롤러의 현재 상태를 요구한다. 응답으로 CAN컨트롤러는 [0x87] 패킷을 전송한다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

8) CAN 상태 수신 C2E -> PC

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

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)

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

15

Page 16: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

즉, 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 오류 수신 C2E -> PC

0xF0 0x88 0x01 Status Checksum 0xE0

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

10) CAN Bit Timing 설정 PC -> C2E

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

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

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 예이다.

seg2ph

sjw

brp

prseg

seglph

16

Page 17: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

11) CAN 에러 clear PC -> C2E

0xF0 0x8A 0x00 Checksum 0xE0

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

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

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]로변경하고 상위의 패킷 명령을 전송하면 된다. Mask와 Filter설정에 대한 자세한 내용은 6장에 기술되어있다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

13) Firmware버전 요청 PC ->C2E

0xF0 0x8C 0x00 Checksum 0xE0

현재 CAN to RS232 컨버터에 내장된 펌웨어의 버전을 요청한다. 이에 대한 응답 패킷은 [0x8D]이다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

14) Firmware 버전 응답 C2E -> PC

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

[0x8C] 패킷에 대한 응답 패킷으로 Major와 Minor버전을 전송한다. 두버전의 표시형식은 Major.Minor이다. 예를 들어 Major가 1이고, Minor가 0이면 실제 버전은 1.0 이 된다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

15) TCP/IP 접속 연결 종료 PC ->C2E

17

Page 18: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

0x90 0 Checksum

데이터를 수신하고 있지 않거나 아무런 명령이 전달되지 않고 30초 이상 경과 되면 자동으로 연결이 종료되기도 하며 즉시 연결을 종료하고자 하는 경우는 이 명령어를 사용한다. 그런데 비정상적으로프로그램을 종료하면 C2E는 아직 연결되어 있는 것으로 인식하므로 재접속하기 위해서는 30초 이상대기해야 한다.이 패킷명령은 CAN2RS232 컨버터 모드에서는 무시된다.

16) Acknowledge C2E -> PC

0xF0 0xC0 0x00 Checksum 0xE0

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

17) Not Acknowledge C2E -> PC

0xF0 0xD0 0x01 Error Checksum 0xE0

메시지를 송수신하는것을 제외하고 CAN컨트롤러를 설정하는 경우 명령전송후 문제가 발생하게 되면이 패킷을 PC로 전달한다. 만약 100 ms이내에 이 패킷이 수신되지 않으면 다시 전송할 필요가 있다.CAN2Ethernet Gateway모드에서는 F0과 E0은 생략된다.

Error = 0x01 Checksum 에러0x02 잘못된 PID0x03 기타

18

Page 19: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

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

그림 1

그림 2

19

Page 20: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

그림 3

20

Page 21: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

21

Page 22: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

4. 터미널 모드 사용법

터미널 모드는 CAN2RS232와 CAN2Ethernet와 같은 동작모드에 따라 접근 방식과 설정 권한이 약간씩다르므로 다음에 설명하는 터미널 모드에 대해 숙지해야 한다.

4.1 CAN2RS232 컨버터 모드에서의 터미널

CAN2RS232 컨버터 모드는 1.5절에서 설명된 SW1을 RS232 쪽으로 설정되어 있을 때 이다. 이 모드에서 터미널 모드를 사용하기 위해서는 쉽게 윈도우에서 제공하는 하이퍼 터미널로 이용할 수 있다.먼저 하이퍼 터미널을 실행하고 통신설정을 하고 시리얼 포트를 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

22

Page 23: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

4) CBR

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 42

6) RBR

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

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

23

Page 24: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

7) RCV

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

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

24

Page 25: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

4.2 CAN2Ethernet Gateway 터미널

CAN2Ethernet Gateway 모드는 1.5절에서 설명된 SW1을 ETH 쪽으로 설정되어 있을 때 이다.이 모드에서는 터미널에 접근하기 위해 2가지 방법을 제공한다. 하나는 기존 CAN2RS232컨버터에서이미 설명했던 방식과 비슷하게 RS232포트와 하이퍼터미널로 접근하는 방법이고 , 다른 방법은 telnet을 이용하는 방법이다. 첫번째 방법은 CAN2RS232에서 처럼 스페이스바를 5번 누르지 않고 RS232 케이블을 연결 즉시 사용할 수 있다. 두번째 방법은 C2E보드에 할당된 IP주소로 telnet 접속을 하고 ID와 Password를 입력하여login하는 방법이다. 초기 login ID와 password는 "root", "can2eth" 이다.보다 자세한 내용은 다음에서 설명한다.

4.2.1 RS232터미널

C2E모드로 설정하였을때 RS232케이블을 연결하고 터미널을 띄워 놓고 C2E보드에 전원을 인가하면부팅과 동시에 각종 정보들이 터미널 창에 보여진다. 동적 IP모드인 경우는 DHCP서버로 부터 할당받은 IP주소등을 볼 수도 있다. 이 터미널은 CAN2RS232컨버터 처럼 터미널 진입을 위한 절차가전혀 필요없으며 즉시 명령어를 입력하거나 help 화면등을 볼 수 있다.전원이 인가 되면 초기 다음과 같은 화면을 터미널 창에서 볼수 있다.

System Initializing...CAN2RS232 Initializing...TCP/IP Stack Initializing...CAN2Ethernet Gateway Start !! <-- 여기까지는 정적IP모드인 경우IP Address 192.168.10.5Subnet Mask 255.255.255.0Gateway 192.168.10.1MAC Address 01-23-45-67-89-AB <-- 동적 IP모드인 경우는 DHCP로부터 IP를

할당 받으면 표시된다.

시스템이 부팅된 후 엔터키를 치면 ">>"와 같은 컴맨드 라인이 표시 된다. 사용자는 아무 문자를 입력하고 엔터키를 치면 다음과 같은 help화면이 표시 된다.

<< CAN2Ethernet Gateway 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 ||SIP | Set IP Address |

25

Page 26: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

|SSM | Set Subnet Mask ||SGW | Set Gateway ||SMA | Set MAC Address ||SIM | Set IP Mode ||SPT [hex4]| Set Port ||CPW | Change Password |+----------+--------------------------+

위의 명령 리스트 중 INI~CLR 명령(STS제외) 까지는 CAN2RS232컨버터에서 이미 설명한 내용과

동일하므로 여기서는 생략하겠다. 나머지 명령들에 대해 내용은 다음과 같다.

1) SIP

IP주소를 설정하는 명령어이다. 이 명령은 정적(Static) IP모드에서만 사용해야 한다. SIP를 입력하면

다음과 같은 내용이 표시된다.

FORMAT Example (Decimal) : 192.168.1.1?

사용자는 0~255사이의 십진수 숫자 4개를 .(점)으로 구분하여 위의 예처럼 입력해야 한다. 입력이

제대로 되었으면 "OK"가 표시되고 아니면 "ERROR"가 표시된다.

공장 초기화 값은 192.168.10.100 이다.

2) SSM

Subnet mask를 설정하는 명령으며, 이 명령도 정적 IP모드에서만 사용해야 하며 SIP와 입력 방식은

동일하다. 공장 초기화 값은 255.255.255.0 이다

3) SGW

Gateway 주소를 설정하는 명령이며, 이 명령도 정적 IP모드에서만 사용해야 하며 SIP와 입력 방식은

동일하다. 공장 초기화 값은 192.168.10.1 이다.

4) SMA

Ethernet 고유의 MAC주소를 설정하는 명령어이다. 이 명령은 이미 동일한 MAC주소를 소유하고 있는

장치가 있을 경우 장치가 충돌이 발생 하므로, 그런 경우 임의의 다른 숫자로 변경하여 준다.

SMA명령어를 입력하면 다음과 같은 내용이 표시된다.

FORMAT (Hexa code) : XX.XX.XX.XX.XX.XX?

26

Page 27: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

입력하는 방식은 16진수 2자릴 숫자를 6개 입력하되 각 숫자끼리는 .(점)으로 구분하여 입력한다.

여기서 반드시 첫번째 숫자는 00으로 입력해야 한다. 첫번째 숫자의 첫번째 비트가 Multicast를 의미

하기 때문이다. 예를들어 다음과 같은 형식으로 입력 한다.

00.45.89.AB.DF.5F

공장 초기값은 00-12-34-56-78-9A 이다.

5) SIM

IP모드를 설정하는 명령이다. IP모드라 하면 사용자가 지정한 IP정보를 사용하는 Static모드와 DHCP서버로부터 IP정보를 할당 받는 Dynamic 모드가 있다.SIM 명령어를 입력하면 다음과 같은 내용이 표시된다.

0. Static IP mode1. Dynamic IP mode(DHCP)?

사용 환경에 맞게 0 또는 1 숫자를 입력한다. 1 번을 입력하여 Dynamic모드로 변경하는 경우는 전원을 뺏다가 다시 인가하여 IP를 할당 받아야 한다. IP할당이 제대로 이루어 지지 않으면 다음과 같은메시지가 표시되고 계속 재시도 한다.

Sending DHCP requests ...Timeout !!

언제든지 LAN선이 뽑혔다가 재 연결되면 위의 과정이 반복되고 IP를 재 할당 받는다. 계속 할당 받지못하는 경우 DHCP서버가 정상 동작한다면 C2E보드의 공장 초기화 점퍼를 삽입한 상태에서 전원을인가하고 SIM명령어로 Dynamic 모드로 전환한 후 공장초기화 점퍼를 빼고 전원을 재 인가 해본다.결국 IP를 할당 받으면 다음과 같은 메시지를 볼 수 있다.

Sending DHCP requests ...IP Address 192.168.1.3Subnet Mask 255.255.255.0Gateway 192.168.1.1MAC Address 00-04-A3-00-00-00

6) SPT

TCP/IP를 이용해 바이너리 소켓 통신을 할때 C2E보드가 Listen하기 위한 Port번호를 설정하는 명령어이다. 입력 방법은 다음과 같은 형식을 취하며 숫자는 16진수 4자리를 입력한다.

포트번호는 십진수로 0~50000까지는 할당되어 사용되는 경우가 많기 때문에 50000 이상의 숫자에서 골라야 한다. 입력할때는 반드시 16진수로 변환하여 입력하는것을 잊지 않는다.공장 초기값은 16진수 D431 이다.

SPT D431

27

Page 28: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

7) STS

현재의 CAN2Ethernet Gateway의 상태와 설정값들을 보여주는 명령어로 CAN2RS232 컨버터에서 보여주는 내용에 TCP/IP설정 정보까지 추가로 보여 준다. 내용은 다음과 같다.

Version 1.0CAN_ID FFFFFFFFCAN BaudRate 1000 kbpsCAN Param 00/BA/07RS232 BaudRate 115200 bpsErrorWarning 0Rx/Tx Warning 0/0Bus passive 0Bus off 0Overrun 0:0:0Extend ID mode 0Mask1,2 FFFFFFFF,FFFFFFFFFilter1-3 FFFFFFFF,FFFFFFFF,FFFFFFFFFilter4-6 FFFFFFFF,FFFFFFFF,FFFFFFFFIP Address 192.168.1.3Subnet Mask 255.255.255.0Gateway 192.168.1.1MAC Address 00-04-A3-00-00-00Port Number D431IP mode Dynamic (DHCP)

8) CPW

Telnet login시에 사용되는 Password를 변경하는 명령어로 공장 초기화 값은 "can2eth" 이다.

대소 문자를 구분하며, 최대 8문자 까지만 인정된다. 8문자 이상 입력하여도 8문자 이후로는 무시되

므로 주의해야 한다. 변경 방법은 CPW 명령을 입력하고 입력메시지가 표시되면 비밀문자를 입력하고

재입력 요구 메시지가 표시되면 다시 동일하게 입력하면 된다. 만약 2회에 걸쳐 입력된 문자열이 서로

다른 경우는 "ERROR"가 표시되고 같은 경우는 "OK" 가 표시된다. 다음은 예이다.

New password (Max 8 characters) ? *******Retry input password ? *******OK

* 참고로 Login ID는 "root"로 변경 불가능 하다.

4.2.2 telnet 터미널

RS232터미널과 유사하지만 접속하는 방법이 telnet을 이용하는 것이다. Telnet은 쉽게 dos창을 띄우고 "telnet 192.168.1.3" 과 같은 형식으로 명령어를 입력하면 된다. 여기서 192.168.1.3은 C2E에 할당

28

Page 29: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

된 IP주소 이다. 일단 접속이 되면 다음과 같은 내용이 표시 된다.

[ Welcome to CAN2Ethernet Telnet Service ]

login ID :

ID는 "root"로 입력하고 엔터를 치면 "login password :" 가 표시된다. Password는 초기값 "can2eth"을입력하면 터미널 모드로 진입할 수 잇다. 사용자가 password를 변경한 경우는 변경된 값을 입력 한다.모든 입력이 정상적이면 다음과 같은 내용이 표시되면서 telnet 터미널 모드로 진입한다.

[ Welcome to CAN2Ethernet Telnet Service ]

login ID : rootlogin password : *******

<< CAN2Ethernet Gateway 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 ||SIP | Set IP Address ||SSM | Set Subnet Mask ||SGW | Set Gateway ||SMA | Set MAC Address ||SIM | Set IP Mode ||SPT [hex4]| Set Port ||CPW | Change Password ||EXT | Exit terminal mode |+----------+--------------------------+

이 터미널 모드에서는 RS232터미널과 달리 수행되지 않는 명령어가 추가된 명령어가 있으며 내용은다음과 같다. 참고로 telnet 터미널에서는 아무런 입출력 없이 30초 이상 경과 되면 자동으로 연결이종료되므로 종료 되지 않기 위해서는 30초 이내에 뭔가 입력을 하거나 화면에 표시되게 해야 한다.또한 글자를 입력했을 때 입력된 글자가 두번씩 표시되면 telnet 연결시 터미널 설정이 제대로 되지 않은경우 이므로, 이런 경우는 수동으로 터미널 설정중에 자국반향(echo) 기능을 꺼둬야 한다.

1) INI~CLR

29

Page 30: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

RS232터미널 모드와 기능이 동일하므로 RS232터미널 모드를 참조 한다.

2) SIP~SPT

이 명령어들은 telnet터미널 모드에서 사용될 수 없으며 만약 사용시 다음과 같은 오류 메시지가 표시된다.

You cannot change IP address in telnet !!Only changable in RS232 terminal.

각 명령어에 맞게 IP Address부분의 내용은 약간씩 다른다. 이 명령이 사용되지 않는 이유는 이미 네트웍을 지정된 IP환경에 맞게 사용하고 있는데 그 설정값을 변경하면 통신중에 문제가 발생 하기 때문이다.

3) EXT

telnet접속을 종료할때 사용하는 명령어이다. Telnet접속은 반드시 이 명령을 사용하여 종료해야 하며그렇지 않고 비정상적인 종료를 했을때에는 재 접속시까지 30초 이상 시간이 지나야 한다.

30

Page 31: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

5. Utility 사용법

PC에서 쉽게 CAN 버스의 상태를 확인 하고 CAN2RS232 컨버터의 설정을 변경하고자 하는 경우에사용할 수 있다.프로그램은 크게 Monitor와 Setup부문으로 나눠져 있으며 Monitor에서는 CAN버스의 데이터 흐름을실시간으로 관찰 할 수 있으며, Setup에서는 컨버터의 각종 설정갑을 변경 할 수 있다.

5.1 CAN2RS232 컨버터 테스트 프로그램

5.1.1 초기 작업

1) 컨버터를 PC에 RS232케이블을 이용하여 연결하고 SW1을 'RS232'로 설정하여 CAN2RS232컨버터 모드로 부팅할 수 있게 하고, 컨버터의 전원을 인가한다.

2) Tester프로그램을 실행하고 RS232케이블을 연결한 COM 포트를 확인하여 [Setup]에서 Port를 설정 한다.

3) [Connect] 버튼을 눌려 컨버터와 연결한다. 그러면 [Monitor]탭이 활성화 된다.

5.1.2 설정작업 [Setup]

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

- RS232 Port와 속도 및 CAN 통신 속도 변경 - CAN ID 및 표준/확장 ID모드 설정

31

Page 32: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

- 비트 타이밍 및 Acceptance 필터와 마스크 설정

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

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

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

5.1.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

5) [Send] 버튼

한 개의 패킷을 임의로 생성해서 전송하고자 하는 경우 사용되는 버튼이다. Send Packet프레임내에

32

Page 33: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

있는 Dest.ID에 목적지의 ID를 입력하고, 전송할 바이트 값을 (0~8 사이값) Len에 입력하며, D0~D7데이터를 입력한다.

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

5.1.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로 표시한 것이다.

5.2 CAN2Ethernet Gateway 테스트 프로그램

본 프로그램은 C2E에서 제공하는 TCP/IP 바이너리 소켓 통신 모드를 이용하고 있다.

5.2.1 초기작업

1) C2E에 RS232케이블과 LAN케이블을 연결하고 전원을 인가한다. SW1은 'ETH'로 설정하여 C2E모드

33

Page 34: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

로 부팅할수 있게 한다. 이때 RS232 통신데이터를 모니터링 하기 위해 하이퍼터미널과 같은 통신 에뮬레이터도 미리 실행한다.

2) 만약 Dynamic IP모드인 경우는 RS232 터미널 창에서 표시되는 DHCP서버로부터 할당된 IP주소를 기억하여 둔다.

3) 본 프로그램을 실행하고 IP Address와 Port No가 C2E에 지정된 것과 동일한지 확인하고 만약 다르 다면 C2E보드에 설정된 값으로 수정하고 [Connect] 버튼을 클릭한다.

4) 연결이 되면 [Information] 창에 "Connected.." 가 표시되며 [Monitor] 탭이 활성화 된다.

5.2.2 설정작업 [Setup]

5.1.2절에 이미 설명한 CAN2RS232 컨버터와 사용방법은 동일하며, 단지 RS232 설정 부분만 생략되며, TCP/IP 설정 부분이 더 추가 되어 있다.

5.2.3 모니터링

[Monitor]탭을 클릭하면 사용할 수 있는 기능으로 5.1.3에 이미 설명한 내용과 사용법은 동일하다.추가적으로 [Version] 버튼이 있는데 이 버튼을 클릭하면 다음과 같은 형식으로 C2E의 버전 정보를[Information] 창에 표시하여 준다.

Req Firmware Version Version = 1.0

5.2.4 주의사항

1) 일반적인 주의 사항은 5.1.4에 이미 설명한 내용과 동일하다.

2) C2E 소켓 통신 모드에서는 주고 받는 데이터가 30초 동안 없을때 자동으로 연결이 끊기는데 이는 정상적인 동작으로 사용자는 이에 대해 인지하고 있어야 한다. 만약 C2E소켓 통신 모드로 통신하는 프로그램을 사용자가 직접 작성할 때 자동으로 끊기는 것을 막으려면 30초 이내에 주기적으로 아무 데이터 또는 버전 요청과 같은 명령을 보내 줌으로써 해결할 수 있다.

34

Page 35: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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 IDbit n

Acceptbit n

0 x x Accept1 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

35

Page 36: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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에 대해서 수신하게할 수 있다.

36

Page 37: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

7. ActiveX control 사용법

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

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

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

1

2

37

Page 38: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

7.2 메소드 함수

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

1) boolean Initialize (short port, long brate)

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

38

Page 39: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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의 상태값을 요청한다.

39

Page 40: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

결과 값은 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 이벤트 함수

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

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)

40

Page 41: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

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

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

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

41

Page 42: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

8. 문제해결

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

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

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

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

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

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

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

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

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

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

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

Q6. Dynamic IP모드인데 DHCP서버로 부터 계속 IP를 할당 받지 못하고 계속 재시도만 한다.

A. MAC address의 첫번째 숫자가 00인지 확인한다. 00이 아니면 통신을 제대로 할수 없으므로 반드시 00으로 셋팅되야 한다. 다음으로 초취할 수 있는 방법은 공장 초기화 점퍼를 삽입한 상태에서 부팅 하고 다시 Dynamic모드로 전환한뒤 공장초기화 점퍼를 빼고 전원을 재 인가하여 본다.

42

Page 43: Controller Area Network(CAN) to Ethernet Gateway …maeulsoft.com/renewal/MS/doc/c2emanual.pdf2) 공장초기화 점퍼는 모든 셋팅이 끝나면 되도록 빼놓아야 부팅시마다

그래도 안된다면 DHCP 서버가 제대로 동작하고 있는지 확인해 본다.

Q7. telnet접속하거나 C2E 테스트 프로그램을 사용하는데 종료도 하지 않았는데 자꾸 연결이 끊긴다.

A. C2E에 사용된 TCP/IP 프로토콜 스택은 자동 연결 해제를 위한 Timeout 기능이 내장되어 있습니다. 그 시간은 현재 30초로 설정되어 있으며, 아무런 데이터가 오고가지 않고 30초가 지나게 되면 자동 으로 연결이 끊기게 됩니다. 이를 막으려면 데이터가 없을시 30초이내에 아무런 데이터나 명령을 전송하면 된다.

Q8. telnet이나 C3E 테스트 프로그램을 종료하고 다시 접속하려고 하는데 C2E보드가 반응을 하지 않는다.

A. C2E는 항상 연결을 종료할 때 telnet에서는 EXT명령으로, C2E소켓통신에서는 0x90명령으로 정상 종료 시켜야 한다. 만약 정상종료 하지 않고 단순히 프로그램만 종료하게 되면 C2E는 연결이 종료 된지 인지 하지 못하기 때문에 30초 Timeout 시간을 기다려야 한다. 따라서 비정상 종료후에는 30초 이후에 다시 연결을 시도하여 본다.

43