{
    "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\/pl_pl\/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>Diagnostyka OBD <\/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\/pl_pl\/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>",
        "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\/pl_pl\/wp-json\/wp\/v2\/posts\/479",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/comments?post=479"
            }
        ],
        "version-history": [
            {
                "count": 4,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/479\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 487,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/479\/revisions\/487"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media\/486"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media?parent=479"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/categories?post=479"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/tags?post=479"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}