ã¿ãªããããã«ã¡ã¯ã åœç¶ã®ããšãªãããèªåæçžŠã¯ç®¡çäžã®æ±ºå®ãäžãã ãã§ãªãããããã®æ±ºå®ã«åŸãããã«è»ã匷å¶ããå¿
èŠããããŸãã 仿¥ã¯ãéåžžã«æé ãªäŸ¡æ Œã®ææ®µã䜿çšããŠãå®å
šã«é»åçãªã¹ãã¢ãªã³ã°ïŒã¹ãã¢ãã€ã¯ã€ã€ïŒã§éåžžã®è»ãæ¹é ããæ¹æ³ã説æããŸãã è»èªäœã¯éçºã«å®éã«ã¯å¿
èŠã§ã¯ãªããã»ãšãã©ã®æ©èœã¯èªå®
ããªãã£ã¹ã§å¿«é©ã«ãããã°ã§ããããšãããããŸããã ãšã¬ã¯ãããã¯ã¹ãããŒã·ã§ããã®æåãªã³ã³ããŒãã³ããäž»æŒã

é»åå¶åŸ¡ã·ã¹ãã ã«å¿
èŠãªãã®ã¯äœã§ããïŒ è»èŒªãå転ãããããšãã§ãããµãŒããããã³ãµãŒããå¶åŸ¡ããã³ã³ãããŒã©ãŒã çªç¶ãããã¯ãã¹ãŠã»ãšãã©ã®è¿ä»£çãªè»ã«ãã§ã«æèŒãããŠãããããã¯ãŒã¹ãã¢ãªã³ã°ããšåŒã°ããŠããŸãã åŸæ¥ã®çŽç²ãªæ©æ¢°åŒïŒéåžžã¯æ²¹å§åŒïŒã¢ã³ãã¯åžå Žããæ¥éã«å§¿ãæ¶ãã€ã€ãããé»åå¶åŸ¡ãŠãããïŒECUïŒãåããããŒãã«åã£ãŠä»£ãããŸããã ãã®ãããã¿ã¹ã¯ã¯ããã«ç°¡çŽ åãããŸããå¿
èŠãªã³ãã³ãããµãŒããã©ã€ãã«çºè¡ããããã«ãæ¢åã®ã¢ã³ãECUãã説åŸãããããšãã§ããŸãã
2015幎ã¢ãã«ä»¥éã®KIA Cee'dã®æ¹è¯ã«éåžžã«äŸ¿å©ã§ããããšã倿ããŸããïŒKIA / Hyundaiã®ã³ãã©ãããã©ãŒã ã¯ã»ãŒåæ§ã§ãïŒã ããã€ãã®èŠå ãåæã«çããŸããã
- ãã¯ãŒã¹ãã¢ãªã³ã°ã¯å®å
šã«é»ååŒã§ãããæ²¹å§è£
眮ã«å€§éšãããããšã¯ãããŸãããåè§£ã«ãããè²»çšã¯ïŒæ¯èŒçïŒå°é¡ã§ãã å¿
èŠãªãã¹ãŠã®é
ç·ãåŒãåºãããç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã
- ã¢ã³ãã¯ã¹ãã¢ãªã³ã°ã³ã©ã ãšçµ±åãããŠãããããè»ã§ç°¡åã«ã¢ã¯ã»ã¹ã§ãã远å ã®é»åæ©åšã¯æž©å®€ã®ç¶æ
ã§ãã£ãã³ã«æ®ããŸãïŒã¢ã³ããã¹ãã¢ãªã³ã°ã©ãã¯ã«çµ±åãããŠããå Žåãšã¯ç°ãªããŸãïŒã
- éåžžã«éèŠã§ã-åæ§ã®KIAãœãŠã«ã®æŽç·Žã®æåäŸããããŸãã American PolySync㯠ãSoulããããŒã³åãã®å®å
šãªãã©ã€ããã€ã¯ã€ã€ãã©ãããã©ãŒã ãžã®ã¢ããã°ã¬ãŒããéçºããŠããŸããGitHubã§ å€ãã®æçšãªãã®ãèŠãããšãã§ããŸãã
ãã®ãããã¹ãã¢ãªã³ã°ã³ã©ã ã¢ã»ã³ããªã®å»æ£æã«åãåããŸããã

ã¹ãã³ãããŸãã ãããè¡ãã«ã¯ãã³ã³ãããŒã«ãŠãããã
- 圌ã¯èµ°è¡äžã®ãšã³ãžã³ãæèŒããè»ã«ä¹ã£ãŠããŸãã
- ãã©ã€ããŒã¯ããã³ãã«ã«å転åãå ããŸãã
é çªã«è¡ããŸãããã
è»ã®ã·ãã¥ã¬ãŒã·ã§ã³
ã¢ã³ãã®é»åå¶åŸ¡ãŠãããïŒECUïŒãšè»ã®ä»ã®éšåãšã®éã®ã€ã³ã¿ãŒãã§ãŒã¹ãçè§£ããå¿
èŠããããŸãã 黿°åè·¯ãã°ãŒã°ã«ã§èŠããšãç»åã衚瀺ãããŸãã

ãã®å³ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãç©ççã«éåžžã«åçŽã§ããããšã瀺ããŠããŸãã
- E29ã³ãã¯ã¿çµç±ã®é»æºïŒDC12VïŒã
- ã³ãã¯ã¿M46ãä»ããç¹ç«ãªã³ä¿¡å·ïŒ12VïŒã
- ã³ãã¯ã¿M46çµç±ã®CANããŒã¿ãã¹ãã
åããµã€ãã§ã³ãã¯ã¿ã®å€èгãšãã³é
眮ã確èªããŸãã
黿ºãšã€ã°ããã·ã§ã³ã䜿çšãããšããã¹ãŠãç°¡åã«ãªããåŸæ¥ã®ã³ã³ãã¥ãŒã¿ãŒã®é»æºãã12VãååŸã§ããŸãã ãã ãã黿ºãšç¹ç«ãäŸçµŠããã ãã§ã¯ãã¢ã³ãã¯å®å
šã«ã¯ãªã³ã«ãªãããå¢å¹
ããŸããã ããã«ãè»ã®ä»ã®ãããã¯ããã®æ
å ±ãå¿
èŠã§ãïŒãšã³ãžã³ãäœåããŠãããã©ããïŒãªãã«ãªã£ããšãã«ããããªãŒãšãã«ã®ãŒãç¡é§ã«ããªãããã«ïŒãçŸåšã®é床ïŒãã³ãã«ãã¹ããŒãã§ãéããããããïŒãããããäœãä»ã®ãã®ã
çŸä»£ã®èªåè»ã®é»åãŠãããéã®ããŒã¿äº€æã¯ã CANïŒã³ã³ãããŒã©ãŒãšãªã¢ãããã¯ãŒã¯ïŒãã¹ãä»ããŠè¡ãããŸãã ããã¯ãåãããã¯ããã®ããŒã¿ãå
¬éã§ãããã€ã¹ããã¢ã±ãŒãã«äžã®ãããŒããã£ã¹ãïŒãã±ããã«ã¯å®å
ã¢ãã¬ã¹ããããŸããïŒLANã§ãã åããŒã¿åã«ã¯ç¬èªã®èå¥åããããŸãã ããšãã°ããã®äŸã§ã¯ããã¯ãŒã¹ãã¢ãªã³ã°ã¯ID 0x2B0ã®ã¹ãã¢ãªã³ã°è§åºŠã®å€ãéä¿¡ããŸãã ãã¯ãŒãŠã£ã³ããŠã³ã³ãããŒã©ãŒãªã©ã®ã»ã«ã³ããªãŠããããéèŠãªã³ã³ããŒãã³ãéã®äº€æã劚害ããªãããã«ãå€ãã®å Žåãç©ççã«åé¢ããããã¹ãããã€ããããŸãã Cee'dã¯ãC-CANãšB-CANã®2ã€ã®ãã¹ã䜿çšããŸãïŒãããŒã¿ãã£ãã«æ
å ±ãã»ã¯ã·ã§ã³ã®å³ãåç
§ïŒã C-CANã§ã¯ãã»ãŒãã¹ãŠã®ãããã¯ãããã³ã°ãããåäœããŸãã
CANãã¹ã¢ããã¿ãŒã®éžæ
ãŸã第äžã«ãã³ã³ãã¥ãŒã¿ãŒçšã®CANã€ã³ã¿ãŒãã§ãŒã¹ãå¿
èŠã§ãã å¯èœãªãœãªã¥ãŒã·ã§ã³ã®è©³çŽ°ãªæŠèŠã¯ããã§å
¥æã§ããŸã ã ããšãã° ãäŸ¡æ Œã¯æ°åãã«ããæ°çŸãã«ã®ç¯å²ã§ãã ããã€ã¹ããšã«ãæ¯èŒçæé ãªäŸ¡æ ŒããããŸãã
- aliexpressã§çµã¿ç«ãŠãããã¢ããã¿ã ç§ã¯ãããã詊ããããšã¯ãããŸããããå€ãã®æ¬ é¥ãããããœãããŠã§ã¢ã¯Windowsã§ããèŠããªããšããåããããŸãã
- MCP2515 / MCP2551ã®Arduinoã·ãŒã«ãã¯ãäž»ã«ArduinoãããŒãã«ããã¹ãã¢ãããã¶ã€ã³ã¯ããŒã³ãçºèŠããŸããã ãã ãããã®ãããªã·ãŒã«ããArduinoãšçµã¿åãããŠïŒå¿
èŠãªé床ã§åäœãããããšãã§ããŸããã§ããïŒãRaspberry Piãšçµã¿åãããå¿
èŠããããŸãã 以äžã®ä»é²ã«ã¯ãè©³çŽ°ãªæé ãå«ãŸããŠããŸã ã
- Artemka86ã«ãã£ãŠéçºãããUSBã¢ããã¿ãŒCANHacker Baby ã éçºè
ããã®åªããçŽæ¥ãµããŒããåããaliexpressãªãã·ã§ã³ãšæ¯èŒããŠå¥œæçã§ãïŒå人çã«ãã¹ããããArtyomã¯ãéã§åé¡ã«ã¢ãããŒãããŸãïŒã ãŸããå¹
åºããœãããŠã§ã¢ãšäºææ§ã®ããæšæºLAWICELãããã³ã«ã®ãµããŒãããã©ã¹ã§ãã
ããããã®ç°ãªããœãããŠã§ã¢ããããŸãïŒ ããã§ããäžåºŠã¬ãã¥ãŒããŸã ïŒã æãç°¡åãªãªãã·ã§ã³ã¯ãVolkswagenã®ãšã³ãžãã¢ã®ãããã§ã SocketCANã® can-utils
ã䜿çšãã Linuxã§ãã æšæºåã«ãããSocketCANã®å€§ããªå©ç¹ã¯ãLAWICELãããã³ã«ïŒpdfïŒããµããŒããã USBããã€ã¹ãã·ã¹ãã ããéåžžã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãšããŠèªèãããããšã§ã ã ãããã£ãŠãç¹å®ã®ããã€ã¹ã®ãã³ããŒåºæã®ãœãããŠã§ã¢ãžã®ãã€ã³ããåé¿ããŸãã CANHackerã®çŸåšã®ããŒãžã§ã³ã«ã¯ãUSBãæäœããããã®æšæºã®can-utilsãšã®ããããªéäºææ§ãããããããããããããããŒãžã§ã³ãååŸããŸã ã CANã·ãŒã«ãä»ãRaspberry Piã¯ãRaspbian OSã®can-utilsã¹ããã¯ããã±ãŒãžã§åé¡ãªãåäœããŸãã
ãã¹æ¥ç¶ããã±ããèšé²
ã¹ã¿ã³ãäžã®åã
ã®ããŒãã«æ¥ç¶ããããšã§ããã¹ãŠãç°¡åã«ãªããŸããã¢ããã¿ãŒã®CAN-Highæ¥ç¹ãšã«ãŒãŠãããã®CAN-HighãCAN-Low-CAN-Lowãæ¥ç¶ããŸãã æšæºã«ããã°ãCAN-HighãšCAN-Lowã®éã«ãããã120Ωã®çµç«¯æµæã2ã€ããã¯ãã§ããå®éã«ã¯ããã¹ãŠãéåžžããªãåºãç¯å²ã®æµæã§åäœããŸããããšãã°ã110Î©ã®æµæããããŸãã
è»ã«ã¯çµç«¯æµæã¯å¿
èŠãããŸããïŒãã¹èªäœãæ©èœãããããã«æ¢ã«ååšããŠããŸãïŒã è»ã®ã¢ãã«ã«ãã£ãŠã¯ããã¹ã®é
ç·ã«ç©ççã«ã¢ã¯ã»ã¹ããå¿
èŠãããå ŽåããããŸãã æã䟿å©ãªãªãã·ã§ã³ã¯OBD-IIïŒãªã³ããŒã蚺æïŒã³ãã¯ã¿ã§ãã2001-2004幎ã®åããããšãŒãããã§è£œé ããããã¹ãŠã®è»ã«å¿
èŠã§ãããã¹ãã¢ãªã³ã°ãã€ãŒã«ãã60 cm以å
ã§ãã Cee'dã®å·ŠåŽã«ã¯ããã³ãã«ã®äžã®ãã¥ãŒãºããã¯ã¹ã®ãã©ã¹ããã¯ã«ããŒã®åŸãã«ã³ãã¯ã¿ããããŸãã

OBD-IIãã³é
çœ®ã¯æšæºåãããŠãããCANãã¹ïŒ6ãã³ã®CANHã14ãã³ã®CANLïŒãå«ãŸããŠããŸãã 幞éãªããšã«ãéåœäººã¯æµæãæãå°ãªãéããã©ãããã¹ãŠã®éèŠãªããŒããã¶ãäžãã£ãŠããC-CANã蚺æã³ãã¯ã¿ã«çŽæ¥åŒãåºããŸããã

ãã®çµæãè»å
ã§äœããåè§£ããããšãªããCee'dã®ãã¹ãŠã®å
éšãã©ãã£ãã¯ãèãããšãã§ããŸãã è»ãããªãã®ãã®ã§ã¯ãªããå人ãããªããæ··ä¹±ããããšã-倧ããªãã©ã¹ã ãããããã®ãããªæ¯åã¯ã©ãã«ããããŸããã ããšãã°ããã©ã«ã¯ã¹ã¯ãŒã²ã³ã®å ŽåããµãŒãã¹CANã¯OBDã²ãŒããŠã§ã€ããåé¢ãããŠãããããæ¬¡ã®ããã«æ¥ç¶ããå¿
èŠããããŸãã

ãã¹ãŠã®é£çµ¡å
ãæ¥ç¶ãããããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãäžããŸãã
$ sudo slcand -o -c -s6 -S 115200 ttyACM0 slcan0 && sleep 1 && sudo ifconfig slcan0 up
ãããã¯ãŒã¯ãæ©èœããããŒã¿ãåä¿¡ãããŠããããšã確èªããŸãïŒã€ã°ããã·ã§ã³ããªã³ã«ããŸãïŒã
$ cansniffer slcan0
ãããŠæåŸã«ããã¹ãŠãããŸãããã°ããã°ãæžãããšãã§ããŸãïŒ
$ candump -L slcan0 > real-car-can-log.txt
ããã§ããšã³ãžã³ãèµ·åããå¿
èŠããããŸãããªããªãã ãšã³ãžã³ã皌åããŠãããšãã®ã¿ãã¯ãŒã¹ãã¢ãªã³ã°ãå®éã®ã²ã€ã³ã§ãªã³ã«ãªããã¹ã¿ã³ãã§åŒ·åããå¿
èŠããããŸãã
ã¹ã¿ã³ãã§ãã¹é²é³ãåçãã
è»ããèšé²ããããã°ã䜿çšããŠãã¹ã¿ã³ãã«æ»ããç§ãã¡ã®å€ç¬ãªã¢ã³ããæ¬ºãããã«é²ãããšãã§ããŸãã ãŸããè»ã«ã¯å°çšã®ã¢ã³ãããããCANãã¹ã«ãããŒã¿ãéä¿¡ããããšãå¿ããªãã§ãã ããããããã®ãã±ããããã°ã«èšé²ãããŠããŸãã ç«¶åãé¿ããããã«ãããããã£ã«ã¿ãªã³ã°ããŸãã ç§ãã¡ã¯ã¹ã¿ã³ãã®ã¢ã³ãã«æ¥ç¶ãããŠããããããäžãããã®ãèŠãŠãããŸãïŒ
$ $ candump slcan0 slcan0 2B0 [5] 00 00 00 00 00 slcan0 2B0 [5] FF 7F FF 06 F1 slcan0 2B0 [5] FF 7F FF 06 C2 slcan0 2B0 [5] FF 7F FF 06 D3 slcan0 2B0 [5] FF 7F FF 06 A4 slcan0 2B0 [5] FF 7F FF 06 B5 slcan0 2B0 [5] FF 7F FF 06 86 slcan0 2B0 [5] FF 7F FF 06 97 slcan0 2B0 [5] FF 7F FF 06 68 slcan0 5E4 [3] 00 00 00 slcan0 2B0 [5] FF 7F FF 06 79 slcan0 2B0 [5] FF 7F FF 06 4A ....
ãã±ãã2B0
ïŒçŸåšã®ã¹ãã¢ãªã³ã°è§åºŠïŒãšãããã»ã©é »ç¹ã§ã¯ãªããã 5E4
ïŒã¢ã³ãã®äžè¬çãªã¹ããŒã¿ã¹ïŒãéä¿¡ãããããšã2B0
ãŸãã äžè¬ãã°ãããããããã£ã«ã¿ãªã³ã°ããŸãã
$ cat real-car-can-log.txt | grep -v ' 2B0' | grep -v ' 5E4 ' > can-log-no-steering.txt
ãã£ã«ã¿ãªã³ã°ããããã°ã¯ãåçã®ããã«éä¿¡ã§ããŸãã
% sudo ifconfig slcan0 txqueuelen 1000 $ canplayer -I can-log-no-steering.txt
ãã¹ãŠãæ£åžžã«æ©èœããå Žåãã¢ã³ãã¯æ©èœããã¹ãã¢ãªã³ã°ã·ã£ãããæã§åãã®ãã¯ããã«ç°¡åã«ãªããŸãã ãã®ãããããŒããéåžžã¢ãŒãã§åäœããããã«åŒ·å¶ããã¹ãã¢ãªã³ã°ãã€ãŒã«ã®æäœã®ã·ãã¥ã¬ãŒã·ã§ã³ã«é²ãããšãã§ããŸãã
ã¹ãã¢ãªã³ã°ãšãã¥ã¬ãŒã·ã§ã³
ã¹ãã¢ãªã³ã°ã·ã£ããã®ãã«ã¯ãšå転è§ã¯ãå
èµã»ã³ãµãŒãŠãããã«ãã£ãŠæž¬å®ãããããããã¢ã³ãã³ã³ãããŒã«ãŠããããžã®é
ç·ããŒãã¹ããããŸãã

å¶åŸ¡ãŠãããã¯ã»ã³ãµãŒã®ä¿¡å·ãåŠçãããµãŒããã©ã€ãã«ã³ãã³ããçºè¡ããŠãã¹ãã¢ãªã³ã°ã·ã£ãããåãããã®è¿œå ã®åªåãçã¿åºããŸãã
PolySyncã«ãããš ãCee'dãšå
±éã®ãã©ãããã©ãŒã ãå
±æããSoulã«ã¯ã2ã€ã®ã¢ããã°ãã«ã¯ã»ã³ãµãŒããããŸãã åä¿¡å·ã¯ãããŒã¹2.5Vããã®DCé»å§ã¬ãã«ã®åå·®ã§ããããã³ãã«å
ã®ã¯ã€ã€ã¯ç·ãšéã§ãã åãããšã確èªããŠãã ããã
- ã³ã³ãã¥ãŒã¿ãŒã®ã³ãã¯ã¿ãŒãéããå¿
èŠãªæ¥ç¹ããã¬ããããŒããéããŠè»¢éããarduinoã¢ããã°å
¥åãèµ·åããŸãã

- é»å§ã枬å®ããŠã¿ãŒããã«ã«åºåãããµã€ã¯ã«ã§ã ã¹ã±ãããèªã¿èŸŒã¿ãŸãã
- Arduino IDEã§ã·ãªã¢ã«ãããã¿ãŒãèµ·åããã¹ãã¢ãªã³ã°ã·ã£ãããå転ãããŸãã çµæãã°ã©ãã§èŠããšãã¹ããŒã ã¯SoulãšäžèŽããŠããŸãã

- ç¯çŽãããæéã§åã¶ã
ã»ã³ãµãŒä¿¡å·ãšãã¥ã¬ãŒã·ã§ã³
ã»ã³ãµãŒä¿¡å·ããšãã¥ã¬ãŒãããŸãã ãããè¡ãã«ã¯ãã¢ãžã¥ãŒã«ãã»ã³ãµãŒãšã³ã³ãã¥ãŒã¿ãŒã®éã®éåè·¯ã«çœ®ããã»ã³ãµãŒããã®å®éã®ä¿¡å·ããããŒããã£ã¹ãããã³ãã³ãã§åºå®ã¬ãã«ã«ã·ããããŸãïŒã¹ãã¢ãªã³ã°ã³ã©ã ã«å ããããåã瀺ããŸãïŒã 1ã€ã®Arduinoã®ãã¯ãŒã§ã¯ãããã¯æ©èœããŸãããå®é»å§ãçæã§ããæ¬æ Œçãªããžã¿ã«-ã¢ããã°ã³ã³ããŒã¿ãŒã¯ãããŸããã arduinoã¢ããã°å
¥åãç§ãã¡ã«ã¯ããŸãé©ããŠããŸãã-æå€§6ã€ã®ãã³ããããŸãããã³ã³ãããŒã©ãŒã«ã¯ADCãã£ã³ãã«ã1ã€ãããªãããã³éã®åãæ¿ãã«ã¯ããªãã®æéãããããŸãã
Arduinoã«å€éšDAC / ADCã远å ããå¿
èŠããããŸãã PCF8591ãããã«åºã¥ããYL-40ã¢ãžã¥ãŒã«ïŒ pdfã®èª¬æ ïŒã«åºäŒããŸãããåã¢ãžã¥ãŒã«ã«ã¯ã4ãã£ãã«ã®8ãããADCãš1ã€ã®8ãããDACããããŸãã ã¢ãžã¥ãŒã«ã¯ãI2Cãããã³ã«ãä»ããŠarduinoãšéä¿¡ã§ããŸã ã ããã«ã¯å°ãæåéãã®ããŒãã³ã°ãå¿
èŠã§ãïŒæåéãïŒïŒäžåœã®åå¿ã¯ããŒãã«DACã®åºåã®é»å§ã瀺ãLEDã眮ããŸã-ããã¯åæãããªããã°ãªããŸããã ããããªããšããã€ãªãŒããæµãã黿µã«ãããDACãïŒæšæºã®5Vã§ã¯ãªãïŒ4.2V以äžã®åºåé»å§ãäžããããšãã§ããªããªããŸãã ããŒãã®èé¢ããæµæR4ãåãåºãããšã«ããããã€ãªãŒããåæããŸãã

ãŸããããã¡ãã®è² è·ïŒãµãŒãã¹ã¿ããã©ãã¬ãžã¹ã¿ããã®ä»ïŒãå
¥åã«ã¯ãã ä»ããããããããåæãããžã£ã³ããåãå€ããŠå¹²æžããªãããã«ããŸãã

arduinoãžã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ã¯åŸ®åŠãªéãããããŸã-2ã€ã®DACãã£ãã«ããããã2ã€ã®ã¢ãžã¥ãŒã«ãå¿
èŠã§ããããããã¯åãI2Cã¢ãã¬ã¹ãæã£ãŠããŸãïŒãããã«é
ç·ãããŠããŸãïŒã ãã®ãããã䜿çšãããšãI2Cã¢ãã¬ã¹ã倿ŽããŠãç¹å®ã®ã¬ãã°ãã°ã©ã³ãã§ã¯ãªã+ 5Vã«ããã¯ã§ããŸããããããã®ãžã£ã³ããŒã¯ããŒãäžã§åé¢ãããŠããŸããã ã¯ãã ä»ãã®ä»£ããã«ãarduinoäžã®2ã€ã®ç°ãªãI2Cã©ã€ãã©ãªïŒæšæºã®WireãšSoftI2CMaster ïŒã«æŸèæãåããŸããããããããã«ãã³ã®ãã¢ããããŸãã ç°ãªããã¹ã§ã¢ãžã¥ãŒã«ãååŸãããšãç«¶åã¯ãªããªããŸãã
æ®ãã¯ç°¡åã§ã-ã¢ãžã¥ãŒã«ãã»ã³ãµãŒããåè·¯é®æã«å
¥ããarduinoã«æ¥ç¶ãã ã¹ã±ãããèªã¿èŸŒã¿ãŸãã æ¥ç¶ã®ãã³é
åã®è©³çްã¯ãã¹ã±ããã®ã³ã¡ã³ãã«ãããŸãã ã¢ã»ã³ããªã«ãã¹ãŠãå«ããããšã¯æ®ã£ãŠããŸãããããã§ã®é åºã¯éèŠã§ãã
- arduinoããªã³ã«ããŠãã·ãªã¢ã«ã¢ãã¿ãŒãéããŸãã 忢ãŸãã¯äžæã§ã¯ãªããæåã«arduinoãéå§ããããšãéèŠã§ãã ããããªããšãDACã®åºåã®é»å§ããªã»ãããããã¢ã³ãECUãã»ã³ãµãŒããã®ä¿¡å·ãšã©ãŒãæ€åºããã»ãŒãã¢ãŒãã«ãªãããã¹ãŠãåèµ·åããå¿
èŠããããŸãã
- ã¢ã³ãã®é»æºãå
¥ããã€ã°ããã·ã§ã³ãæ¥ç¶ããŸãã
- CANãã¹ãã°ã®åçãéå§ããŸãã
- ããã§ãã·ãªã¢ã«ã¢ãã¿ãŒãä»ããã³ãã³ã
l
ããã³r
ã«ãããã¢ã³ãã¯ã¹ãã¢ãªã³ã°ã·ã£ãããå転ãããŸãã åå©ã宣èšãããŸãã
仿¥ã§ã¯ããã¹ãŠããœãããŠã§ã¢ã宿ãããŸãïŒCANãã¹ãšã®çµ±åãããããçŸåšã®å転è§ãèªã¿åããå€éšã³ã³ãããŒã©ãŒãã¹ãã¢ãªã³ã°ãã€ãŒã«ã®åºå®å転è§ãèšå®ããã·ã¹ãã ãããã«èããããããã«ãã«ã¯ãåçã«å¶åŸ¡ããŸãïŒãè»ã§ã®äœæ¥ïŒæµæãã·ãã¥ã¬ãŒãããããšã¯ã§ããŸããïŒãã€ãŒã«ïŒã 8ãããDAC / ADCã10ãŸãã¯12ãããã«çœ®ãæããããšãã§ããŸãïŒæåã«æã«å
¥ãããã®ãåããŸããïŒã ã¿ãã·ã³ã°ãã¥ãŒã©ã«ãããã¯ãŒã¯ãé²è¡äžã§ããããã«æçš¿ããããšæã£ãŠããŸãã
CANã®äœ¿çšããã³æ©åšã®ãµããŒãã«é¢ãã貎éãªã¢ããã€ã¹ããã ãã£ãArtemka86ã«æè¬ããŸãã
ãããªã没å
¥ã®ããã®ãªãœãŒã¹
- ã«ãŒãããã³ã°ïŒæ±ºå®çãªãœãŒã¹ ã Pooriesã®Car Hackingããå§ããããšãã§ããŸããããã§ã¯ãåºæ¬ãååã«èª¬æãããŠããŸãã æ®ããè峿·±ãã§ãããäžæ£ã¢ã¯ã»ã¹ã«çŠç¹ãåœãŠãŠããŸãã
- ã«ãŒããã«ãŒãã³ãããã¯ïŒäŸµå
¥ãã¹ãã®ã¬ã€ã ã ã«ãŒãããã³ã°ãããè©³çŽ°ïŒæ±ºå®çãªãœãŒã¹ã§ãããäžæ£ã¢ã¯ã»ã¹ã匷調ããŠããŸãã ãããã¯ã®æåã®ç޹ä»ãšããŠèªãã å Žåã倧ããªéšåãã¹ãããããããã«é©å¿ããå¿
èŠããããŸãã
- ã«ãŒãããã³ã°101ïŒååŒããŒã« ã MCDãœãããŠã§ã¢ -ããŒã«ã¬ãã¥ãŒã ç§ã®æèŠã§ã¯åºæ¬çã«é¢çœããªããšããŸããã¯ã§ãã
- Open Source Car Controlã¯ãKIA Soulãéçºäžã®ãªãŒãã³ãã©ãããã©ãŒã ã§ãã 圌ãã¯ããã·ã³ã®ããŒããŠã§ã¢ã®æ¹åïŒäž»ã«ãã¬ãŒãçš-远å ã®ãã¬ãŒããã©ã€ãã®åãä»ãããã¬ãŒãæ²¹å§ã®å€æŽãªã©ïŒãå«ããå®å
šãªæ±ºå®ïŒã¹ãã¢ãªã³ã°ãã€ãŒã«ãã¢ã¯ã»ã«ããã¬ãŒãïŒãè¡ããŸãã ãŸã ãªãªãŒã¹ã¯ãããŸããã§ããããå€ãã®ãã®ããã§ã«èŠåŒµãããŠããŸãã
ããŒãã¹ Raspberry PiãšArduino CANã·ãŒã«ãã®çµã¿åãã
ãŸã第äžã«ã泚æã CANã·ãŒã«ããšã©ãºããªãŒãã€ã¯çŽæ¥æ¥ç¶ã§ããŸãã ããããã¯é»å§ã«äºææ§ããããŸããã Arduino UNOäºæããŒãã§ã¯ãããžãã¯é»å§ã¯5Vã§ãããã©ãºããªãŒãã€ã§ã¯3.3Vã®ã¿ã§ãããããçŽæ¥æ¥ç¶ã§ã¯é¢ä¿ãããã³ã®ã¿ãçŒããŸãã
å¿
èŠãªãã®ïŒ
- Raspberry PiïŒããŒãžã§ã³3Bã§ãã¹ãæžã¿ïŒã
- MCP2515 / MCP2551ã®Arduino CANã·ãŒã«ãã
- 5ãã£ãã«ä»¥äžã®ããžãã¯ã¬ãã«ã³ã³ããŒã¿ãŒïŒ2ã4ãã£ãã«ãå¯èœã§ãããããå€ãã®æ¥ç¶ãå¿
èŠã«ãªããŸãïŒã ããã«åºäŒã£ã
CANã·ãŒã«ãã SPIããŒã¿ã€ã³ã¿ãŒãã§ã€ã¹æ¥ç¶ ïŒ4ãã³ïŒMOSIãMISOãSCLKãCSïŒããã³å²ã蟌ã¿ä¿¡å·ã®1ãã³ã§é»åïŒ5VïŒãååŸããå¿
èŠããããŸãã é»å以å€ã¯ãã¹ãŠã¬ãã«ã³ã³ããŒã¿ãŒãééããã¬ãã«ã³ã³ããŒã¿ãŒã黿ºãå
¥ããå¿
èŠããããŸãã
å³ã§ã¯ãå¿
èŠãªãã³ãæ¢ããŠããŸãã
ã©ãºããªãŒãã€ïŒ

CANã·ãŒã«ãïŒ

çµæãåŸãããŸãã
- raspberry pi 19ã21ã23ã24ïŒMOSIãMISOãSCLKãCSïŒã®SPIã¯ãCANã·ãŒã«ãã®D11ãD12ãD13ãD9ïŒãŸãã¯äžéšã®ããŒãžã§ã³ã®D10ïŒã«å¯Ÿå¿ããŠããŸãã
- ã·ãŒã«ãäžã®D2ããã®äžæã¯ãä»»æã®GPIOãã³ã©ãºããªãŒã§è¡ãããšãã§ããŸãããã³22ïŒGPIO 25ïŒããããŸãã èšå®äžã«ãœãããŠã§ã¢ã§ãã³çªå·ãæå®ããŸãã
ã³ã³ããŒã¿ãŒãä»ããŠæ¥ç¶ããã³ã³ããŒã¿ãŒã®äž¡åŽã§ç®çã®äŸçµŠé»å§ãéå§ãããšããã®éººãããããŸãã

5V黿ºãšã·ãŒã«ããžã®æ¥å°ãé€ããã¹ãŠãã³ã³ããŒã¿ãééããŸãã

ãœãããŠã§ã¢ã®æ§æã«é²ã¿ãŸãïŒæšæºã®RaspbianïŒã
SPIããã³CANã¢ãžã¥ãŒã«ã®ãµããŒããå«ãŸããŠããŸãã /boot/config.txt
远å ããŸã
dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25,spimaxfrequency=1000000 dtoverlay=spi0-hw-cs
ããã§ã interrupt=25
ã¯ãã·ãŒã«ãããã®å²ã蟌ã¿ãå·»ãä»ãããããã³ã瀺ããŸãã ã€ã³ããã¯ã¹ä»ãã¯GPIOãã³ã«åºã¥ããŠããããã interrupt=25
ã¯GPIO 25ã§ããããã¹ãŠã®ãã³ã®ãšã³ãããŒãšã³ãã®ã€ã³ããã¯ã¹ä»ãã§ã¯ãã³22ã§ãã SPI spimaxfrequency
ã€ã³ã¿ãŒãã§ãŒã¹ã®åšæ³¢æ°ãæå®ããããšãéèŠã§ãã ããã©ã«ãå€-10 MHz-ã¯ã·ãŒã«ãã«ã¯é«ããããããæ¥ç¶ã§ããŸããã
raspberry piãåèµ·åããã·ãŒã«ããžã®æ¥ç¶ã確èªããŸãã
$ dmesg ... [ 12.985754] CAN device driver interface [ 13.014774] mcp251x spi0.0 can0: MCP2515 successfully initialized. ...
can-utils
ãã€ã³ã¹ããŒã«ããŸãã
$ sudo apt install can-utils
ä»®æ³ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãèµ·åããŸãã
$ sudo /sbin/ip link set can0 up type can bitrate 500000 $ sudo ifconfig can0 txqueuelen 1000
2çªç®ã®ã³ãã³ãã¯ãã©ãºããªãŒãã€ã䜿çšããŠå€§éã®ããŒã¿ãåçããå Žåãã€ãŸããè»ã«èšé²ãããå®å
šãªCANãã¹ãã°ãã¹ã¿ã³ãäžã®åé¢ããŒãã§åçŸãããå Žåã«éèŠã§ãã ãããã¡ãå¢ããããšãªããééãçãè€æ°ã®CANãã±ããããã°ã«è¡šç€ºãããæ¥ç¶ãããªãŒãºãããšãã»ãšãã©ã®å ŽåãªãŒããŒãããŒããŸãã
- å®äºã
candump
ã cansniffer
ãªã©can-utils
ãã¹ãŠã䜿çšã§ããŸãã