saab ECU 읽고 쓰는 법 ( from : 권동훈 )
안녕하세요. 최근 몇 주 저녁에 조금씩 공부하고 파악한 내용 올려 봅니다.
마산의 최봉영님이 봉스맵으로 국내 척박한 사브 맵 튜닝계(특히 Trionic7을 쓰는 9-5, Trionic5의 9000)를 평정해 주셨죠.^^
저도 지난 12월 초 기꺼이 봐주신다는 말씀에 마산까지 한걸음에 달려가 185마력/28.6토크 순정 ecu를 230마력에 35토크로 stage 1 했습니다.
현재는 9-5 리어로(에어로 같은 리니어)란 애칭을 붙여주고 지금 껏 안정적으로 잘 타고 있습니다.
그런데...
맵핑하시는 작업을 보니 ecu 기판에 콘솔용 핀을 납땜하고 JohnC 아저씨의 BDM 아답터로 연결하여 사용하시더라구요.
이때부터 좀 더 간편하게 납땜 없이 안정적으로 작업할 수 있는 방법이 없을까 해외 자료 서치해 보았습니다.
직접 테스트해본 ECU 데이터 읽고 쓰는 방법 입니다.
몇가지 H/W와 S/W가 필요합니다.
1. 하드웨어
(1). BDM(background Debug Mode) : 공장 출하 시 소프트웨어 세팅을 위해 사용하는 방법을 이용하여 ecu 보드에 직접 연결
-장점 : 읽고 쓰는데 가장 안정적이고 에러가 거의 없음. read / write 속도가 빠름(2분 이내)
CAN 방식 대비 비용대비 효과적이고 신뢰할만하며 에러 발생 시 복구 기능도 지원.
-단점 : ecu보드에 핀을 연결하기 위해 납땜을 해야 함. 매번 작업 시 ecu를 차에서 탈착해야 함.
납땜 오류나 납땜 시 쇼트, 열 등 납땜자의 숙련도에 따라 하드웨어적 에러가 발생할 수 있음(복구 불능)
** 납땜 동영상 : http://youtu.be/_Kaq9Yp9L0c
아래 사진은 JohnC의 BDM입니다. 사진은 최근 win7, 8의 운영체제 호환 및 일부 불안정한 펌웨어를 수정한 버전2 제품으로
네델란드 웹사이트(www.saab-tuners.com)에서 판매합니다.
그 밑의 사진은 BDM 버전1로 명함케이스에 넣어 사용합니다. ^^;
최봉영 이사님은 위의 BDM 버전1을 이용해 ECU 기판에 핀 작업 후 연결해 사용하십니다.
매번 탈착도 번거롭고 납땜도 수전증이 있는 분들은...
(2). CAN(Controller Area Network) : Tech2가 읽고 쓸 때 통신하는 방식으로 BDM 보다 상대적으로 안정성이 조금 낮고
P-Bus, I-Bus, OBD2와 같은 차량 내 디바이스에 인터페이싱해서 사용하는 방법
맵튠, BSR, JZW 등 모두 이 방법을 사용하죠.
장점 : 납땜이 필요 없고 작업 시 매번 ECU을 탈착할 필요가 없음.
단점 : read time(15분 내외), Write Time(1~2분 내외)로 BDM방식 보다 길며, CANUSB케이블의 가격이 BDM에 비해 비싸다.
차량의 12V 전원을 사용하니 배터리 상태에 따라 writing 도중 hang이 걸리거나 ecu가 소프트웨어적 에러가 날 수 있음.
--> 국내외에 CAN방식으로 작업하다 배터리 전압 불안정의 사유로 ecu 에러 발생 케이스 드물게 있음.
맵튠이나 BSR, JZW도 모두 CAN통신 방식으로 업데이트하며 설명서를 보면 배터리 충전기 연결하고 냉각팬 퓨즈빼고
전조등도 끄고... 등등의 문구가 바로 위의 리스크를 줄이기 위함입니다.
이와 같은 사유로 BDM 방식 대비 안정성이 다소 낮다고 표현하는 듯 함.
그러나 소프트웨어적 에러이므로 전압상태를 안정화 시키고(배터리 충전기 연결 등) 복구할 수 있음.
아래 사진이 ECU와 컴퓨터가 캔통신을 할 수 있게 만들어 주는 Lawicel CANUSB케이블입니다.
케이블 스펙은 www.canusb.com에 잘 나와 있습니다.
국내에서도 모업체에서 수입판매합니다. http://ubiquitics.co.kr
가격이 17만원 정도로 비쌉니다. 하지만 대안도 있습니다. 다음 편에 간단히 소개하겠습니다.
위 사진을 보면 차량의 OBD와 연결하는 커넥터 부분이 없죠. 네 맞습니다. 추가 케이블이 하나 더 필요합니다.
OBD2단자와 위의 CANUSB를 연결해 주는 케이블이 필요합니다.
'자동차 캔통신 디바이스(OBD2 or P-BUS, I-BUS) -- 인터페이스 케이블 -- CANUSB -- 컴퓨터'의 차례로 연결.
인터페이스 케이블은 국내 업체(www.ezDAQ.com)에서 아래 케이블을 수입 판매하고 있네요. 가격은 22,000원
위 케이블은 아래와 같은 Pinout으로 Lawicel CANUSB케이블과 차량의 OBD2 단자를 연결해 줍니다.
(3). 하이브리드 연결 : ecu를 탈착하여 책상위에서 편하게 BDM방식 또는 CANUSB방식 모두 가능한 방법
최근엔 가변적인 환경의 차량에서 CAN으로 직접 하는 방식을 보완하여 ecu를 탈착한 다음 ecu 하네스 커넥터를 개조하여
ecu와 CAN을 직접 연결하여 작업하는 응용방법도 있습니다.
단, 하네스 커넥터 개조가 필요합니다.(하네스 커넥터에 전원연결과 DB9 커넥터에 can_high, can_low 직접연결)
제 생각엔 ecu를 탈착해서 책상위에서 하네스를 벽전원에 연결하고 납땜없이 CAN으로 read/write 하는 위의 방법이
가장 편하고 안전한 방법이 아닐까 생각합니다.
(1)의 방법은 최봉영님께서 이미 마스터하셨고 현재도 사용 중이시니 패스하고
저는 (2) CANUSB와 OBD2 - DB9 케이블을 이용하여 차량에서 read / write 하는 방법을 소개하고자 합니다.
두 번째로 필요한 것은 소프트웨어입니다.
ECU를 읽어주고 맵 데이터를 분석/수정하게 해주며, 수정된 맵을 ECU에 Write해주는 가장 중요한 도구입니다.
소프트웨어는 다음 편에 소개하겠습니다.
-- To be continued --
실제 ECU에 맵을 읽고 쓰는 방법을 이어서 소개하겠습니다.
아래 테스트는 제 차량 9-5(맵 Read & Write)와 9-3(맵 Read) 해 본 내용입니다.
ECU 읽고 쓰기 직접 해보기
1. 준비물
(1) H/W
- Lawicel CANUSB 어댑터 : 국내 사이트에서 수입 판매합니다.(http://ubiquitics.co.kr/)
- OBD2-DB9 케이블 : DS_OBD-M-DB-9-F-ES (국내 수입 판매 사이트 ezDAQ.com)
- 노트북(XP, Win7 32bit 또는 64bit)
그런데 Part I에서 언급한 것 처럼 위의 H/W가 가격적인 이슈가 좀 있죠...
하지만 좀 더 저렴하고 간편한 케이블이 있습니다.
ELM327 버전 1.3 이상 케이블 또는 OBDLinkSX 두 가지가 있습니다.
이 케이블의 장점은 위의 Lawicel CANUSB와 DB9 케이블이 통합되어 있어 사용이 간편합니다.
이베이나 아마존에 3만원 내외로 판매하며
작업 시 몇가지 설정을 바꿔줘야 하지만 해외의 경우 DIY하는 친구들이 많이 사용합니다.
(2) S/W
- TrionicCanFlasher 다운로드 : http://develop.trionictuning.com/TrionicCANFlasher
- T7suite, T8suite : ECU를 읽어주고 맵 데이터를 분석/수정하게 해주며, 수정된 맵을 ECU에 Write해주는 프로그램입니다.
데이터 읽고 쓰기는 T7Suite, T8Suite에서도 가능합니다.
좀 더 검증된 프로그램이므로 TrionicCanFlasher나 Suite 중 편한 프로그램 사용하시면 됩니다.
프로그램은 아래에서 다운받을 수 있습니다.
** T7 Can flasher: http://suites.trionictuning.com/T7Flash_1.6.2.msi
** T7 Suite: http://suites.trionictuning.com/T7Suite_2.6.1.msi
** T8 Can Flasher: http://suites.trionictuning.com/T8CANFlash_1.4.8.msi
** T8 Suite: http://suites.trionictuning.com/T8Suite_1.4.9.msi
혹시 다운로드가 되지 않으면 www.trionictuning.com에 간단한 회원가입 후 받으시면 됩니다.
다운로드 후 준비 작업입니다.
(3) 소프트웨어 구동 준비
- CANUSB 드라이버 인스톨 : http://www.can232.com/?page_id=75
위 사이트를 방문하셔서 드라이버를 다운로드 받습니다.
** 공통 다운로드 : FTDI USB drivers (version 2.08.30)
** XP, Win7 32비트: CANUSB DLL driver for Windows XP, Vista, Windows 7, 32bit (version 2.0.2)
** win7 64비트 : CANUSB DLL driver for Windows 7, 64bit (version 2.0.2)
자신의 OS에 맞는 드라이버를 다운 받아 인스톨 하시면 됩니다.
인스톨 후 장치관리자(제어판 - 관리도구 - 컴퓨터관리 - 장치관리자)를 열어 보시면 방금 설치한 CANUSB 탭에
노란 느낌표가 붙어 있습니다.
여기서 a에서 다운받은 드라이버를 드라이버 업데이트 형태로 설치해 주시면 됩니다.
CANUSB탭을 선택하고 마우스 우측 클릭하여 드라이버 소프트웨어 업데이트 선택하시면 됩니다.
여기까지가 ECU를 읽기 위한 준비과정입니다. 복잡한 거 같지만 막상 해 보면 어렵지 않아요^^;
2. ECU Data 읽어 보기
준비된 노트북과 CANUSB 케이블, DB9케이블을 들고 차량으로 이동
① OBD2 단자와 CANUSB 연결(DB9 암수 커넥터)
② CANUSB와 노트북 연결(USB포트)
③ 키를 꼽고 키온 - 키오프 2회 수행 <-- ecu에 학습모드 준비시킴.
④ 키오프 상태 그대로 두고 TrionicCanflasher 프로그램 실행 자신의 사붕이 ECU 타입 선택
Trionic7 또는 Trionic8, 2.8은 Motronic 9.6
⑤ 워밍업으로 Read ECU DTC 버튼 클릭 --> 일종의 준비상태 체크, 아래와 같은 로그가 나오면 정상
2015-01-28 15:03:24.6248 - Opening connection
2015-01-28 15:03:24.6560 - Open called in Trionic7
2015-01-28 15:03:25.6979 - Canbus channel opened
2015-01-28 15:03:25.7259 - Session started
2015-01-28 15:03:25.7659 - No DTC's
2015-01-28 15:03:26.2831 - Connection closed
⑥ Get ECU Info 버튼 클릭 --> vin번호, 이모빌라이저 코드, 엔진타입, 소프트웨어 버전 등 확인
⑦ Read ECU 또는 Read SRAM 버튼 클릭으로 현재 ECU 데이터 정보 다운로드
9-5 ecu bin 파일은 512kbyte로 약 다운로드 7분 정도 소요(9-3는 1M로 두배인 14분 정도 소요)
ecu 학습값이 저장된 SRAM파일은 64Kbyte로 수초 소요
위에서 읽어 온 데이터를 T7Suite로 불러 들여 읽은 모습입니다. 출력과 토크 시뮬레이션과 최고속도 제한 270으로 올린 모습입니다
3. ECU Data Flashing(Write) 해보기
ECU Write는 TrionicCanFlasher 나 T7Suite, T8Suite를 이용해 쓰기가 가능합니다.
먼저 준비할 것은 수정된 맵 파일이나 자신의 오리지널 맵(bin파일)을 준비합니다.
진행 순서는 Read ECU의 4가지 과정을 진행해주시고
① OBD2 단자와 CANUSB 연결(DB9 암수 커넥터)
② CANUSB와 노트북 연결(USB포트)
③ 키를 꼽고 키온 - 키오프 2회 수행 <-- ecu에 학습모드 준비시킴.
④ 키오프 상태 그대로 두고 TrionicCanflasher 프로그램 실행 자신의 사붕이 ECU 타입 선택
Trionic7 또는 Trionic8, 2.8은 Motronic 9.6
⑤ Read DTC - 트러블코드 읽기를 통해 커넥션 이상유무 체크
⑥ GET ECU info - vin번호, 이모빌라이저 번호, 소프트웨어 버전 등 ECU 기본 정보 읽기
⑦ Flash ECU 선택 - Write할 파일을 선택하는 대화상자가 나오면 준비된 Bin파일을 선택합니다.
소요시간은 약 1~2분 정도이며 T7의 경우 쓰기완료 후 퓨즈 17번을 뽑거나 배터리 마이너스 단자 분리를 통해
ecu 초기화 해 줘야 합니다. 안해주시면 시동 안걸립니다. ^^;
아래 로그는 위 쓰기의 ① ~ ⑦과정을 수행한 로그입니다.
2015-01-30 07:29:33.7969 - Opening connection
2015-01-30 07:29:33.8125 - Open called in Trionic7
2015-01-30 07:29:37.4929 - Canbus channel opened
2015-01-30 07:29:37.5099 - Session started
2015-01-30 07:29:37.5349 - No DTC's
2015-01-30 07:29:38.1097 - Connection closed
2015-01-30 07:29:53.0389 - Opening connection
2015-01-30 07:29:53.0701 - Open called in Trionic7
2015-01-30 07:29:56.5951 - Canbus channel opened
2015-01-30 07:29:56.6131 - Session started
2015-01-30 07:29:57.6232 - Aquiring ECU info
2015-01-30 07:29:57.6542 - VIN: YS3EB49C983506xxx
2015-01-30 07:29:57.6792 - Immo: 2371HG000597xxx
2015-01-30 07:29:57.7152 - Engine type: :9-5 B205E EUR4 TUN RW
2015-01-30 07:29:57.7412 - Software version: EI02Y01C.46R
2015-01-30 07:29:58.2544 - Connection closed
2015-01-30 07:30:24.6184 - Opening connection
2015-01-30 07:30:24.6496 - Open called in Trionic7
2015-01-30 07:30:28.2126 - Canbus channel opened
2015-01-30 07:30:28.2626 - Session started
2015-01-30 07:30:29.3057 - Update FLASH content
2015-01-30 07:30:29.3897 - FLASHing: C:\Users\...\Documents\KDH b205e 07 st1 230 35 Fuel adj 150129.bin
2015-01-30 07:30:29.4327 - Starting session...
2015-01-30 07:30:30.3617 - progress: 0%
2015-01-30 07:30:30.4697 - Session started, requesting security access to ECU
2015-01-30 07:30:30.5087 - Erasing flash...
2015-01-30 07:30:31.3688 - progress: 0%
2015-01-30 07:30:32.3829 - progress: 0%
2015-01-30 07:30:33.3969 - progress: 0%
2015-01-30 07:30:34.4110 - progress: 0%
2015-01-30 07:30:35.4250 - progress: 0%
2015-01-30 07:30:35.5860 - Writing flash... 0x00000-0x7B000
2015-01-30 07:30:36.4391 - progress: 1%
2015-01-30 07:30:37.4531 - progress: 3%
2015-01-30 07:30:38.4672 - progress: 4%
2015-01-30 07:30:39.4813 - progress: 6%
2015-01-30 07:30:40.4953 - progress: 8%
2015-01-30 07:31:25.1119 - progress: 90%
2015-01-30 07:31:26.1269 - progress: 92%
2015-01-30 07:31:27.1400 - progress: 94%
2015-01-30 07:31:28.1540 - progress: 95%
2015-01-30 07:31:28.1950 - Writing flash... 0x7FE00-0x7FFFF
2015-01-30 07:31:28.2940 - Flasing procedure completed
2015-01-30 07:31:29.1701 - progress: 0%
2015-01-30 07:31:29.2121 - Finished FLASH session
2015-01-30 07:31:29.2481 - Total duration: 0 minutes 59 seconds
여기까지 정리한 내용은 참고용으로만 활용하시고 충분한 숙지와 자료조사를 통해 확신이 있을 경우만 본인의 책임 하에 ^^;;
** T7 ECU 파일은 512Kbyte, T8은 1024Kbyte로 T7의 두 배 크기 입니다.
T8을 사용하는 9-3들이 엔진 제어가 훨씬 복잡한 듯 합니다.
그래서인지 Spare ECU를 구할 경우 T7은 프로그램으로 자신의 Vin-code와 이모빌라이저 변경을 통해 쉽게married ecu할 수 있지만
T8의 경우 vin은 입력 가능한 듯하나 T8 이모빌라이저 로직은 아직 깨지 못한 것으로 보입니다.
중고 ECU의 경우 테크2로 이모빌라이저와 vin코드 입력을 해줘야 합니다.