2013년 11월 16일 토요일

[번역] CAN 통신 해킹하기 : 하드웨어



 지금까지 우리는 CAN의 기초, 차량내 네트워크, 그리고 CAN 위에서 사용되는 통신규약에 대해서 논의하여 왔다. 우리는 CAN 도구에 대한 논의와 여러분 자신의 하드웨어를 만들기 위한 부품을 완성하여 나갈 것이다.

배선하기

 불행하게도 CAN을 접속하는데 어떤 표준이 존재하지는 않는다. 고속의 CAN을 위한 대부분의 공통된 커넥터는 7번핀에 CAN high와 2번핀에 CAN low를 갖는 DE-9이다. 그러나 케이블들은 서로 다를 것이고 많은 것들이 호환성이 없다.

 CAN은 신호선의 양 끝에 120옴 저항에 의해서 적절히 마무리 될 필요가 있다. 실제적으로 여러분들이 종단을 다룰때 신호선로에 한 개의 120 옴 저항을 붙일

수 있다.

도구들

 좋은 CAN 도구는 여러분이 CAN 메세지들을 주고받고, CAN 데이터베이스를 사용해서 데이터를 해석하고 CAN 통신규약을 구현할 수 있게 할 것이다. 이러한 특성을 갖는 도구들은 개방성이 없는 독점적 소유물이고 비싸지만, 몇몇의 해커에 친숙한 대체품들이 존재한다.

GoodThopter


 [Travis Goodspeed 사의] GoodFET에 기반한 GoodThopter는 신호선로에 진입하는데 Microchip사의 MCP2515, CAN to SPI 제어기를 사용한다. 이 오픈소스 하드웨어 도구는 여러분이 Python 스크립트를 이용해서 메세지를 주고 받을 수 있도록 해준다.

CAN Bus Triple


 CAN Bus Triple 장치는 세 개의 CAN 신호선로에 접근할 수 있게 해주고, Arduino와 유사한 환경에서 프로그램되어 질 수 있다. 이 오픈 소스 코드는 여러분이 2세대 Mazda 3시리즈와 작업할 수 이쎄 해준다. 불행하게도 하드웨어는 오픈소스인 것으로 보여지지 않는다.

Saleae Logic


 오픈소스는 아니지만, Saleae Logic은 CAN 신호선로를 들여다보기에 매우 간편하고 저렴한 도구이다. 이것은 CAN 트래픽을 표현하고 해석하고, 갈무리할 수 있다. 이것은 여러분이 자신의 하드웨어를 만들고자 할때 대단히 유용한다.

DIY

부품들

 여러분들이 CAN을 위한 자신만의 하드웨어를 고안하고자 한다면, 두 가지가 필요하다: 하나는 CAN 제어기이고, 하나는 CAN 송수신기이다.

 CAN 제어기는 CAN 메세지를 해석하고 생성한다. Atmel사의 Atmega32M1, Freescale사의 S08D, 그리고 TI사의 Tiva C Series 같은 내장형 CAN 제어기를 갖는 마이크로컨트롤러가 시장에 많이 있다. 내장형 CAN 제어기를 사용할때 여러분은 외장형 오실레이터를 사용해야한다. 내장된 오실레이터는 고속 CAN에 적용하기에 충분히 정확하지 않다. 만약 여러분이 기존의 마이크로컨트롤러에 CAN을 추가하고자 한다면, MCP2515은 추가해야할 사항이다. 이것은 SPI로 통신하는 독립형 CAN 제어기이다.

 송수신기는 제어기에서 신호선로로 혹은 신호선로에서 송수신기로 이동하는 신호를 변환한다. 고속과 저속의 CAN 네트워크를 위해 서로 다른 송수신기가 필요하다. NXP사의 TJA1050은 고속 신호선로에서 동작하고, ONsemi사의 NCV7356은 저속의 단일 신호선로에서 동작한다. 

개발보드들

 CAN 제어기를 갖고 있는 마이크로컨트롤러를 가지고 있는 수많은 개발보드가 세상에 존재한다. Arduino Due의 SAM3 프로세서는 제어기를 가지고 있지만, 보드에 송수신기가 없다. 여러분은 실제로 시도해 보기 위해서 CAN 신호선로용 추가 보드와 Due CAN Library를 선택할 수 있다. 

 ChipKIT사의 Max32는 Due와 유사하다. 이것은 두 개의 CAN 제어기를 가지고 있지만, 여러분이 신호선로에 실제로 접근하기 위해서 외장 송수신기를 제공할 필요가 있다. 다행히도, 이것을 위한 추가 보드가 존재한다. 이 ChipKIT은 공식적으로 Ford사의 OpenXC Platform에 의해서 지원되기 때문에 여러분은 그 펌웨어를 갈무리 할 수 있다. 

 이것이 CAN 해킹하기에 대한 우리 논의의 결론이다. 여러분들이 이제는 희망적으로 이 통신규약을 가지고 실험하고 앞으로 나아갈 준비가 되었다. 만약 질문이 있다면 주제란의 "CAN Hacking"에 있는 우리의 팁 라인에 해당하는 곳에 질문들을 보내주기 바란다. 그리고 우리는 몇몇의 질문을 들여다 볼 것이다. 여러분이 이 연재물을 좋아하고 다음 번을 위한 주제를 제안하기 원한다면 우리는 그것을 듣는 것 또한 좋아한다.

댓글 없음:

댓글 쓰기