{"id":479,"date":"2018-03-29T20:23:23","date_gmt":"2018-03-29T20:23:23","guid":{"rendered":"http:\/\/hayperek.pl\/?p=479"},"modified":"2018-03-29T20:24:51","modified_gmt":"2018-03-29T20:24:51","slug":"interfejsy-can-i-obd","status":"publish","type":"post","link":"https:\/\/hayperek.pl\/en\/2018\/03\/29\/interfejsy-can-i-obd\/","title":{"rendered":"Interfejsy CAN i OBD"},"content":{"rendered":"<p>Dzi\u015b ponownie b\u0119dziemy zajmowa\u0107 si\u0119 przygotowaniem niezb\u0119dnego sprz\u0119tu. Tym razem jednak b\u0119dzie to ju\u017c cz\u0119\u015b\u0107 stanowiska testowego, a pierwszy fragment urz\u0105dzenia. Zapewnienie komunikacji przez magistral\u0119 CAN oraz z\u0142\u0105cze diagnostyczne OBD jest jedn\u0105 z najistotniejszych kwestii &#8211; dlatego tak wcze\u015bnie podejmujemy ten temat.<\/p>\n<h5>Magistrala CAN<\/h5>\n<p>Wybrany mikrokontroler STM32F407 posiada wbudowany kontroler magistrali CAN. Brakuje wi\u0119c nam jedynie transceivera, kt\u00f3ry zamieni cyfrowe sygna\u0142y Tx i Rx na transmisj\u0119 r\u00f3\u017cnicow\u0105, zgodn\u0105 z wymaganiami warstwy fizycznej CAN. M\u00f3j wyb\u00f3r pad\u0142 na uk\u0142ady TJA1042 firmy NXP, g\u0142\u00f3wnie ze wzgl\u0119du na niewielk\u0105 obudow\u0119 SOIC-8 oraz tryb zmniejszonego poboru mocy. Potrzebujemy dw\u00f3ch takich interfejs\u00f3w: dla CANu silnika oraz komfortu. Schemat przyk\u0142adowego po\u0142\u0105czenia wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_can.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_can.png\" alt=\"\" width=\"801\" height=\"726\" class=\"aligncenter size-full wp-image-480\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_can.png 801w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_can-600x544.png 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_can-300x272.png 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_can-768x696.png 768w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/a><\/p>\n<p>Linia CAN_STB zapewnia wy\u0142\u0105czenie transceivera i przej\u015bcie w tryb obni\u017conego poboru mocy. Celowo nie zosta\u0142 dodany rezystor terminuj\u0105cy magistral\u0119 &#8211; ma to na celu mo\u017cliwo\u015b\u0107 zasymulowania przerwania magistrali i pracy w trybie jednoprzewodowym.<\/p>\n<h5>On-Board Diagnostics <\/h5>\n<p>Interfejs diagnostyczny r\u00f3wnie\u017c wymaga specjalizowanego uk\u0142adu, kt\u00f3ry przet\u0142umaczy logik\u0119 cyfrow\u0105 na sygna\u0142 zgodny ze standardem ISO9141. Cz\u0119sto w ramach oszcz\u0119dno\u015bci w popularnych interfejsach OBD stosuje si\u0119 uk\u0142ad z\u0142o\u017cony z kilku tranzystor\u00f3w lub komparatora. Niestety jego parametry znacz\u0105co odbiegaj\u0105 od wymaga\u0144 &#8211; st\u0105d cz\u0119ste problemy z nawi\u0105zaniem stabilnego po\u0142\u0105czenia diagnostycznego w niekt\u00f3rych samochodach. Dlatego te\u017c zdecydowa\u0142em si\u0119 wykorzysta\u0107 dedykowany uk\u0142ad L9637. Wymaga on jedynie dw\u00f3ch zewn\u0119trznych element\u00f3w dyskretnych i spe\u0142nia wymagania ISO9141. Standardowa aplikacja wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_obd.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_obd.png\" alt=\"\" width=\"838\" height=\"501\" class=\"aligncenter size-full wp-image-481\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_obd.png 838w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_obd-600x359.png 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_obd-300x179.png 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/schemat_obd-768x459.png 768w\" sizes=\"auto, (max-width: 838px) 100vw, 838px\" \/><\/a><\/p>\n<p>Nale\u017cy pami\u0119ta\u0107, i\u017c stan wysoki na linii diagnostycznej K jest recesywny &#8211; wymusza go rezystor R3. <\/p>\n<h5>Uwagi praktyczne<\/h5>\n<p>Oba interfejsy wyposa\u017cone zosta\u0142y w standardowe kondensatory odsprz\u0119gaj\u0105ce, po 100nF ka\u017cdy. Poprawiaj\u0105 one stabilno\u015b\u0107 napi\u0119cia zasilaj\u0105cego i filtruj\u0105 zak\u0142\u00f3cenia powstaj\u0105ce w wyniku pracy uk\u0142ad\u00f3w cyfrowych. Warto nadmieni\u0107, i\u017c oba uk\u0142ady scalone s\u0105 przystosowane do pracy w warunkach samochodowych &#8211; maj\u0105 szeroki zakres dopuszczalnej temperatury pracy oraz du\u017c\u0105 odporno\u015b\u0107 na zak\u0142\u00f3cenia elektromagnetyczne.<br \/>\nIstotn\u0105 kwesti\u0105, kt\u00f3r\u0105 nale\u017cy bra\u0107 pod uwag\u0119, jest r\u00f3\u017cnica napi\u0119\u0107 zasilaj\u0105cych interfejsy oraz procesor. Uk\u0142ady TJA1042 i L9637 wymagaj\u0105 do pracy napi\u0119cia 5V, STM32407 &#8211; 3.3V. Rozwi\u0105zaniem by\u0142by wi\u0119c konwerter napi\u0119\u0107. Na szcz\u0119\u015bcie uk\u0142ady STM32 pozwalaj\u0105 na pod\u0142\u0105czenie cz\u0119\u015bci wej\u015b\u0107 bezpo\u015brednio do logiki 5V. Wyj\u015bcia cyfrowe nie stanowi\u0105 problemu, gdy\u017c stan wysoki standardu 3.3V mie\u015bci si\u0119 w zakresie rozpoznawalnym r\u00f3wnie\u017c jako stan wysoki w standardzie TTL 5V. Mimo to, dobr\u0105 praktyk\u0105 jest zastosowanie szeregowych rezystor\u00f3w 100ohm zabezpieczaj\u0105cych przed przep\u0142ywem zbyt wysokiego pr\u0105d np. w przypadku uszkodzenia kt\u00f3rego\u015b z interfejs\u00f3w.<\/p>\n<p>Tyle teorii &#8211; czas na praktyk\u0119. Zaprojektowa\u0142em prost\u0105 p\u0142ytk\u0119, kt\u00f3ra pozwala wygodnie pod\u0142\u0105czy\u0107 interfejsy z jednej strony do procesora, a z drugiej do naszego &#8222;<a href=\"http:\/\/hayperek.pl\/en\/2018\/03\/28\/samochod-na-biurku-czyli-jak-testowac\/\">samochodu na biurku<\/a>&#8222;.<\/p>\n<p><a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface-1024x768.jpg\" alt=\"\" width=\"720\" height=\"540\" class=\"aligncenter size-large wp-image-482\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface-1024x768.jpg 1024w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface-600x450.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface-300x225.jpg 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface-768x576.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/can_obd_interface.jpg 1200w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>Jest to typowa p\u0142ytka prototypowa czy m\u00f3wi\u0105c \u017cargonem elektronik\u00f3w &#8222;breakout board&#8221; \ud83d\ude42<\/p>","protected":false},"excerpt":{"rendered":"<p>Dzi\u015b ponownie b\u0119dziemy zajmowa\u0107 si\u0119 przygotowaniem niezb\u0119dnego sprz\u0119tu. Tym razem jednak b\u0119dzie to ju\u017c cz\u0119\u015b\u0107 stanowiska testowego, a pierwszy fragment urz\u0105dzenia. Zapewnienie komunikacji przez magistral\u0119 CAN oraz z\u0142\u0105cze diagnostyczne OBD jest jedn\u0105 z najistotniejszych kwestii &#8211; dlatego tak wcze\u015bnie podejmujemy ten temat. Magistrala CAN Wybrany mikrokontroler STM32F407 posiada wbudowany kontroler magistrali CAN. Brakuje wi\u0119c nam [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":486,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-479","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-stodni","9":"post-with-thumbnail","10":"post-with-thumbnail-large"},"_links":{"self":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/comments?post=479"}],"version-history":[{"count":4,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/479\/revisions"}],"predecessor-version":[{"id":487,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/posts\/479\/revisions\/487"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/media\/486"}],"wp:attachment":[{"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/media?parent=479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/categories?post=479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hayperek.pl\/en\/wp-json\/wp\/v2\/tags?post=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}