'비공개' 게시판에 쓰다만 글이 몇 개 있습니다. 6개월 전에 쓰다만 것도 있네요 ㅠㅠ
오늘 오랜만에 짬이 나서 그 중 짧은것 2개를 올립니다.^^
------------------------------------------------------------------------------
요즘 자동차들과 관련된 물건들을 만들다 보면...
아무래도 CAN 이라는 녀석과 친해지는 편이 좋습니다.
그래서 시중에서 판매되는 'CAN 분석기' 를 몇가지 구입 해서 사용해 봤는데...
제게 맞는 제품을 찾기는 어렵더군요. ㅠㅠ
대부분의 제품들이 CAN 속도를 full로 지원하지 못했었습니다.
CAN은 1Mbps 까지 속도를 낼 수 있고, 실제 차량에서는 500Kbps를 주로 사용합니다.
그런데 기존의 CAN 관련 제품 중 상당수는 UART (RS-232)로 PC와 연결하게 되어 있는데,
보통 UART의 속도를 115Kbps 로 사용하고 있었고, 간혹 480K 정도로 사용하는 제품들이 있었습니다.
물리적으로 UART 속도가 CAN 보다 느리기 때문에 CAN 데이터를 모두 처리하는데에는 무리가 있습니다.
물론 제대로 된 제품들도 있지만... 선뜻 구입하기에는 너무 고가여서
쉽게 사용할 수 있는 CAN 분석기를 만들었습니다.
아래 사진처럼 아주 조그맣게 생겼습니다.....만
CAN을 2채널이나 지원하고, USB로 PC와 연결되어 CAN 2포트의 내용을 빠뜨림 없이 PC로 전달합니다.

또 PC쪽에 전용 분석 프로그램을 설치할 필요가 없습니다.
CAN 분석기 안에 분석 프로그램을 내장하고 있어서,
PC에는 적당한 터미널프로그램 (TeraTerm, PuTTY, 하이퍼터미널등)만 실행시키면 됩니다.
승용차는 물론이고, 24V를 사용하는 상용트럭에서도 사용가능하고,
11비트, 29비트 ID모드를 모두 지원합니다.
실행이 되면 아래 사진 처럼
2개의 CAN 포트를 통해 차량 내부에서 발생하는 모든 CAN 데이터를 확인할 수 있습니다.

그럼 이중에서 원하는 데이터를 어떻게 찾을 까요?
평소에 CAN BUS상에는 엄청나게 많은 데이터가 송수신 되고 있기 때문에
필요로 하는 특정한데이터를 찾기는 쉽지 않습니다.
그래서 'Study' 모드 라는 기능을 만들었습니다.
Study 모드에서는 변화하는 CAN 데이터를 모두 마스킹(Masking) 합니다.
그 다음에 일반 모드로 전환하게 되면, 그 후로 변화되는 데이터만 빨간색으로 표시됩니다.
예를 들어 Study 모드에서 Masking이 끝난후에 기어레버를 변경하면
기어레버에 해당하는 CAN 데이터 부분이 빨간색으로 표시되게 되고,
브레이크 페달을 밟게 되면, 또 해당하는 데이터가 빨간색으로 표시되죠...
또 잘 알고 있는(분석이 끝난) 데이터는 수동으로 Masking을 하여
걸리적(?) 거리지 않게 막아버릴 수 있습니다.
참 쉽죠? ^^
아래의 동영상에 대한 설명은 한가할때 올리겠습니다.^^
첫댓글 또 또 다시한번 느끼는 거지만 돌퓨터님은 신퓨터님이 심니다 ^^
파실꺼에요?? ^^
앗 오랜만....-_-+
늘 그렇듯 한 두개 밖에 안만들기 때문에... 팔게 없어요ㅠㅠ
안녕하세요? 돌퓨터님...2CH Can 통신 아날리이져의 MCU는 어떤걸 쓰셨나요? 저두 Can 공부중 인데...궁금해서 여쭤 봅니다. 현재 저는 at90can128로 통신을 해 보았는데...at90can128은 1CH라서..2ch 찾아 보는중에 이렇게 여쭤 봅니다. 감사합니다.
안녕하세요. 저도 AT90CAN128로 CAN 응용 제품을 만든적이 있습니다.^^
AVR은 사용하기 편리한 CPU이지만, 차량처럼 초당 2000개 이상의 CAN Packet이 발생하는 환경에서
모든 CAN 데이터를 처리하기는 어렵더군요.
저는 주로 ARM Cortex-M3나 M4를 사용하고 있습니다.
CAN을 2채널 지원하고, 처리 속도도 충분한 제품이 많이 있습니다.
이 글에서 소개한 CAN 분석기는 STM32F205를 사용하였고,
최근에는 주로 STM32F4XX를 사용하고 있습니다.
@돌퓨터[김원준] 쪽지 드렸는데 답좀 꼭 해주시면 감사하겠습니다.^^
@우라질초보 쪽지 답신 드렸습니다.^^
돌퓨터 님 쓰신글 모두 다 잘 보았습니다. 예전부터 컴퓨터, 자동차등등 곧잘 만지곤 했는데 돌퓨터님 글을 보니 부끄러운 마음이 듭니다. 요즘 CAN 통신에 관심이 있어 아두이노로 캔데이터를 받아서 속도, 오토크루즈 온, 셋 등을 아두이노용 LCD로 표시하는 것을 만들려고 하는데요..
1. CAN 통신 데이터중 첫번째 바이트는 데이터 길이를 표시하는 것으로 아는데 위 사진의 데이터와는 맞지 않는데 제가 잘못알고 있는건가요??
2. CAN 데이터는 1초에 수천개의 신호가 들어오는것으로 아는데 아이디는 27개가 전부인가요??
3. 채널이 2개인데 통신속도에 따른 차이인가요?
실례가 안된다면 답변주시면 감사하겠습니다.
안녕하세요. 답이 늦었네요...
1. CAN으로 표준OBD 통신을 하는 경우는 말씀하신것처럼 첫번째 데이터에 길이가 들어가게 됩니다.
차량 내의 CAN-BUS에 연결되어 있는 각 모듈(ECU, TCU, BCM등)들이 주고 받는 데이터 들은 별도의 프로토콜을
사용하기 때문에 데이터 1~8바이트를 임의로 사용합니다.
2. 차량의 CAN-BUS에 연결된 여러 모듈들이 각 각 1~수개의 ID를 사용하고,
이들이 반복적으로 데이터를 보내기 때문에, 초당 수천개의 패킷이 발생합니다.
3. 차량 마다 다르지만, 차량에는 여러개의 CAN-BUS가 사용되는 경우가 많습니다.
최신 현대/기아 차량의 경우는 M-CAN, C-CAN, B-CAN, CCP-CAN등 여러개가 사용됩니다.
그래서, 2개 이상의 CAN을 같이 모니터링 해야할 경우가 많아서 2채널로 만들었습니다.
@돌퓨터[김원준] 정성스런 댓글에 감사드립니다. 아직 캔쉴드가 도착하지 않아서 시도는 못해보았지만 돌퓨터 님글을 읽고 개념이 좀 잡혔습니다.
안녕하세요 ㅠㅠ 제가 CAN 로그파일을 분석해보려고 하는데 해당 ID와 데이터프레임의 의미가 뭔지 잘 몰라서 댓글 달아봅니다..ㅠㅠ 전공은 컴퓨터공학과라 자동차관련은 처음이라서요..해당로그파일은 쉐보레 스파크 차량인데요
3.909521 1 10320058x Rx d 8 00 00 00 00 00 00 00 00 Length = 4318208 BitCount = 148 ID = 271712344x
3.913327 1 10324058x Rx d 6 00 00 07 EF 00 00 Length = 3684586 BitCount = 127 ID = 271728728x
3.917737 1 10210040x Rx d 8 00 00 00 00 00 00 00 00 Length = 4284573 BitCount = 147 ID = 270598208x
혹시 도움을 청할수 있을까요???
안녕하세요...혹시 이 제품 판매 안하시나요? can 통신 공부를 하고 싶습니다.