{"id":2854,"date":"2018-03-07T14:24:13","date_gmt":"2018-03-07T12:24:13","guid":{"rendered":"http:\/\/www.dclabs.lt\/dainiaus\/?p=2854"},"modified":"2018-03-07T14:24:13","modified_gmt":"2018-03-07T12:24:13","slug":"peugeot-206-van-syna","status":"publish","type":"post","link":"https:\/\/www.dclabs.lt\/dainiaus\/peugeot-206-van-syna\/","title":{"rendered":"Peugeot 206 VAN \u0161yna"},"content":{"rendered":"<p>Ka\u017ekaip pasigedau informacijos Internete, apie prisijungim\u0105 prie Peugeot 206 informacinio tinklo, VAN &#8211; Vehicle Area Network. Pirma mintis yra tokia &#8211; atliko man nuo ma\u0161inos ekraniukas, kuriame buvo rodoma visokia informacija (radijo, dureli\u0173 atidarymo ir t.t.). Atrodo va taip:<\/p>\n<p><a href=\"http:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/peug.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2855\" src=\"http:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/peug-300x169.jpg\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/peug-300x169.jpg 300w, https:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/peug-768x432.jpg 768w, https:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/peug-1024x576.jpg 1024w, https:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/peug.jpg 1280w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Taigi, pagalvojau, kad reikt\u0173 j\u012f truput\u012f &#8222;pareverseengineerinti&#8221;, \u010dia toks naujadaras, kil\u0119s i\u0161 &#8222;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Reverse_engineering\" target=\"_blank\" rel=\"noopener\">reverse engineering<\/a>&#8222;. Vis\u0173 pirma prasi\u0117jau per pajungimo lizd\u0105, kad i\u0161ai\u0161kinti kontakt\u0173 reik\u0161mes.<\/p>\n<p><a href=\"http:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/Pinout.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2857\" src=\"http:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/Pinout-300x71.png\" alt=\"\" width=\"300\" height=\"71\" srcset=\"https:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/Pinout-300x71.png 300w, https:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/Pinout.png 681w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Dabar, kai jau daugma\u017e ai\u0161ku, kas kur jungiasi, galima prad\u0117ti daryti bandymus. Gal nesprogs. Bet, kol nepamir\u0161au, trumpai apie lentel\u0117. Po kontakto numeriu sp\u0117tina\/tikra kontakto reik\u0161m\u0117, \u017eemiau kur tas kontaktas pajungtas ekraniuko bloko viduje ir komentarai. AMIS \u010dipas &#8211; tai\u00a0VAN kontroleris <a href=\"http:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/REMQ.pdf\" target=\"_blank\" rel=\"noopener\">MTC-30521, apra\u0161ymas \u010dia<\/a>. SAGEM &#8211; pagrindinis procesoriukas ir displ\u0117jaus valdiklis. Detalesn\u0117s informacijos n\u0117ra, bet i\u0161 jo 80 kontakto valdosi ekrano ap\u0161vietimas (&#8222;backlight&#8221;). Turb\u016bt PWMu. Duomen\u0173 greitis &#8211; 125 bodai (baud), arba 125 kHz. T\u0105 man pad\u0117jo nustatyti oscilografas. Kadangi oscilografas protingas (Rigol MSO2072A su visom atrakintomis funkcijoms), o signalas laaabai pana\u0161us i CAN, paband\u017eiau dekoduoti siun\u010diam\u0105 informacij\u0105. Gavosi, ai\u0161ku, \u0161nip\u0161tas. Tiksliau, dekoduoja, bet labai jau kosminiai duomenys&#8230; Bet \u017einant, kad pas 2005 met\u0173 ma\u0161in\u0105 gali b\u016bti VAN, CAN arba VAN-CAN tinklas &#8211; nieko steb\u0117tino, kad neteisingai i\u0161koduoja ne CAN standarto duomenis. \u010cia pana\u0161iau \u012f VAN, nors hardwariniame lygyje jis atitinka CAN, bet programi\u0161kai ten gali b\u016bti bet kas, k\u0105 sugalvojo gamintojas. Tuomet smalsu prisikabinti prie ekraniuko, ir pabandyti gauti neapdorotus VAN duomenis. D\u0117l to nereikia naudoti CAN kontroleri\u0173 (pvz., <a href=\"https:\/\/www.microchip.com\/wwwproducts\/en\/en010406\" target=\"_blank\" rel=\"noopener\">MCP2515<\/a>), o imti grynus duomenis i\u0161 CAN interfeisini\u0173 mikroschem\u0173 (pvz., <a href=\"https:\/\/www.nxp.com\/docs\/en\/data-sheet\/TJA1050.pdf\" target=\"_blank\" rel=\"noopener\">TAJ1050<\/a>, <a href=\"https:\/\/www.sparkfun.com\/datasheets\/DevTools\/Arduino\/MCP2551.pdf\" target=\"_blank\" rel=\"noopener\">MCP2551<\/a>). Lemona vietoje tur\u0117jo MCP2551 tai t\u0105 ir pa\u0117miau. Kad b\u016bt\u0173 dar grei\u010diau &#8211; visk\u0105 sukabinau ant Arduino Uno + Velleman VMA201 maketin\u0117s plok\u0161t\u0117s skydo. Jungimas pagal apra\u0161ym\u0105:<\/p>\n<p>MCP2551 kontaktai &gt; Arduino\/displ\u0117jaus kontaktai:<\/p>\n<ol>\n<li>TXD &gt; Arduino D11;<\/li>\n<li>VSS &gt; Arduino GND;<\/li>\n<li>VDD &gt; Arduino +5V;<\/li>\n<li>RXD &gt; Arduino D10;<\/li>\n<li>Vref &gt; NC;<\/li>\n<li>CAN_L &gt; 4 ir 5 displ\u0117jaus modulio kontaktai (sujungti viduje, PCB takeliu);<\/li>\n<li>CAN_H &gt; 17 ir 18 displ\u0117jaus modulio kontaktai (sujungti viduje, PCB takeliu);<\/li>\n<li>Rs &gt; Arduino GND (gal neb\u016btina visai jungti).<\/li>\n<\/ol>\n<p>\u017dinoma, displ\u0117jaus ir Arduino GND kontaktus irgi reikt\u0173 \u012f kr\u016bv\u0105 sujungti (jei maitinimas nuo skirting\u0173 \u0161altini\u0173). Taigi, &#8222;gele\u017ein\u0117&#8221; pus\u0117 jau padaryta, dabar reikia programin\u0117s. Kadangi \u010dia ne tikrasis CAN protokolas, tai ir visi Arduininiai pavyzdukai su CAN nuskaitym\u0173 grei\u010diausiai neveiks arba rodys kosmosus. Bet geras dalykas tas, kad Arduino ir MCP2551 bendrauja paprastu serijini\u0173 duomen\u0173 ry\u0161iu (RX, TX) &#8211; taigi, imkime ir skaitykime duomenis i\u0161 RX kontakto, paprasta, bet bus &#8222;gryniakas&#8221;. Program\u0117l\u0117 labai trumpa:<\/p>\n<pre><span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">SoftwareSerial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #ffffff;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<b><span style=\"color: #d35400;\">SoftwareSerial<\/span><\/b> <span style=\"color: #ffffff;\">MCP<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">10<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #ffffff;\">11<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ MCP2551 prijungtas prie Arduino pin\u0173 RX (D10 &lt;&gt; 4), TX (D11 &lt;&gt; 1)<\/span>\r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">)<\/span> <span style=\"color: #ffffff;\">{<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">57600<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Sujungimo su Arduino greitis<\/span>\r\n \u00a0<span style=\"color: #ffffff;\">MCP<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">125000<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Sujungimo su MCP2551 greitis<\/span>\r\n<span style=\"color: #ffffff;\">}<\/span>\r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">)<\/span> <span style=\"color: #ffffff;\">{<\/span>\r\n\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">MCP<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">available<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">)<\/span> <span style=\"color: #ffffff;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Jeigu at\u0117jo prane\u0161imas i\u0161 MCP2551<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #ffffff;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #ffffff;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #ffffff;\">0<\/span><span style=\"color: #ffffff;\">;<\/span> <span style=\"color: #ffffff;\">i<\/span> <span style=\"color: #434f54;\">&lt;=<\/span> <span style=\"color: #ffffff;\">7<\/span><span style=\"color: #ffffff;\">;<\/span> <span style=\"color: #ffffff;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #ffffff;\">)<\/span> <span style=\"color: #ffffff;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Skaidom po vien\u0105 segmentuk\u0105<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">MCP<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">read<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">HEX<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Ra\u0161om skai\u010dius HEXu<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #ffffff;\">(<\/span><span style=\"color: #005c5f;\">\":\"<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Tarp skai\u010di\u0173 dvita\u0161kis<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #ffffff;\">}<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span> <span style=\"color: #ffffff;\">(<\/span><span style=\"color: #005c5f;\">\" \"<\/span><span style=\"color: #ffffff;\">)<\/span><span style=\"color: #ffffff;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Permeta kursori\u0173 \u017eemyn, sekan\u010dio nuskaitymo \u012fra\u0161ymui<\/span>\r\n \u00a0<span style=\"color: #ffffff;\">}<\/span>\r\n<span style=\"color: #ffffff;\">}<\/span>\r\n<\/pre>\n<p>I\u0161 komentar\u0173 tur\u0117t\u0173 b\u016bti ai\u0161ku, kas \u010dia kur. Rezultate gavau iiilg\u0105 duomen\u0173 stulpel\u012f (796 \u012fra\u0161ai), bet i\u0161filtravus unikali\u0173 \u012fra\u0161\u0173 yra tik 20. S\u0105ra\u0161as yra <a href=\"http:\/\/www.dclabs.lt\/dainiaus\/wp-content\/uploads\/2018\/03\/Ekraniuko-siuntimaso.xlsx\" target=\"_blank\" rel=\"noopener\">\u010dia, Excel failiuke<\/a>. Dar, sp\u0117ju, tie \u012fra\u0161ai, kurie prasideda ne A8, gali b\u016bti tiesiog trukd\u017ei\u0173 i\u0161kraipyti ir juos gal galima b\u016bt\u0173 i\u0161mesti. Chm, \u012fdomu, o k\u0105 reikia nusi\u0173sti ekraniukui, kad k\u0105 nors parodyt\u0173. Turb\u016bt teks prisigaudyti duomen\u0173 i\u0161 Pe\u017euko&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ka\u017ekaip pasigedau informacijos Internete, apie prisijungim\u0105 prie Peugeot 206 informacinio tinklo, VAN &#8211; Vehicle Area Network. Pirma mintis yra tokia &#8211; atliko man nuo ma\u0161inos ekraniukas, kuriame buvo rodoma visokia informacija (radijo, dureli\u0173 atidarymo ir t.t.). Atrodo va taip: Taigi, pagalvojau, kad reikt\u0173 j\u012f truput\u012f &#8222;pareverseengineerinti&#8221;, \u010dia toks naujadaras, kil\u0119s i\u0161 &#8222;reverse engineering&#8222;. Vis\u0173 pirma&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,4],"tags":[],"class_list":["post-2854","post","type-post","status-publish","format-standard","hentry","category-auto","category-elektronika"],"_links":{"self":[{"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/posts\/2854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/comments?post=2854"}],"version-history":[{"count":8,"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/posts\/2854\/revisions"}],"predecessor-version":[{"id":2866,"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/posts\/2854\/revisions\/2866"}],"wp:attachment":[{"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/media?parent=2854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/categories?post=2854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dclabs.lt\/dainiaus\/wp-json\/wp\/v2\/tags?post=2854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}