Cuprins: Informații generale ↡ Scopul principal ↡ Recomandări de utilizare ↡ Principii generale ale schimbului de…↡ Modificări aduse celei mai recente…↡ Note și comentarii ↡
Controler pentru împerecherea unui computer personal cu sistemul de autodiagnosticare la bord OBD II conform standardelor SAE (PWM și VPW) și protocoalelor ISO 9141-2.
Nota. Modelele produse de GM respectă standardul VPW, Ford cu standardul PWM și modelele asiatice și europene cu standardul ISO 9141-2.
Informații generale
Dispozitivul în cauză este un microcontroler realizat folosind tehnologia CMOS.
Atenţie! Controlerul NU este destinat conectării la sisteme de autodiagnosticare la bord de prima generație (OBD I)!
Dispozitivul acționează ca un simplu scaner și este conceput pentru a citi coduri de diagnosticare și date din sistemul OBD II (turația motorului, temperatura lichidului de răcire și a aerului de admisie, caracteristicile sarcinii, fluxul de aer în motor etc.) în cadrul standardului SAE J1979 prin orice design de magistrală (PWM, VPW și ISO 9141-2).
Scopul principal
Pentru conectarea la un computer (PC), este suficient un fir cu 3 fire, conectarea la conectorul de diagnosticare se realizează cu un fir cu 6 fire. Sursa de alimentare este furnizată controlerului prin conectorul de diagnosticare OBD cu 16 pini.
Schema schematică a controlerului pentru împerecherea computerului cu sistemul OBD II
Recomandări de utilizare
Pentru a conecta dispozitivul la mașină, se poate folosi un cablu neecranat cu o lungime de cel mult 1,2 m, ceea ce are o importanță deosebită atunci când se utilizează protocolul PWM. Când utilizați un cablu mai lung, reduceți rezistența rezistențelor la intrarea dispozitivului (R8 și R9 sau R15). Când utilizați un cablu ecranat, ecranul trebuie oprit pentru a reduce capacitatea.
Cablul pentru conectarea la portul serial al computerului poate fi, de asemenea, neecranat. Dispozitivul funcționează în mod fiabil cu o lungime de cablu de până la 9 m. Pentru lungimi semnificativ mai mari de cablu, ar trebui utilizat un comunicator RS 232 mai puternic.
Topologia conexiunilor electrice este arbitrară. Dacă umiditatea este ridicată, utilizați condensatori de bypass suplimentari.
Software-ul gratuit (browser) pentru citirea codurilor și a datelor este destinat utilizării sub DOS. Dimensiunea redusă a aplicației software în versiunea "DOS" permite să fie plasată pe o dischetă de boot DOS și utilizată chiar și pe computere echipate cu software incompatibil cu DOS. O condiție opțională este chiar prezența unui hard disk în computer.
Principii generale ale schimbului de date
Nota. Dacă nu se menționează altfel, toate numerele sunt în format hexazecimal (hex) este indicat prin dec.
Schimbul de date are loc printr-o conexiune serială cu trei fire, fără utilizarea schimbului de mesaje de serviciu de inițializare (handshaking). Dispozitivul ascultă canalul pentru mesaje, execută comenzile primite și transmite rezultatele către un computer personal (PC), după care revine imediat la modul de ascultare. Datele care intră și ies din controlor sunt organizate sub forma unui lanț de octeți secvențiali, primul dintre care este controlul. De obicei, octetul de verificare este un număr între 0 și 15 dec (sau 0-F hex), care descrie numărul de octeți de informații ulterioare. Deci, de exemplu, o comandă de 3 octeți ar arăta astfel: 03 (verifica octet), primul octet, al doilea octet, al treilea octet. Un format similar este utilizat atât pentru comenzile de intrare pentru a interoga sistemul de autodiagnosticare de la bord, cât și pentru mesajele de ieșire care conțin informațiile solicitate. Trebuie remarcat faptul că în octetul de control sunt utilizați doar patru biți de ordin inferior - biții de ordin înalt sunt rezervați pentru unele comenzi speciale și pot fi utilizați de computer la inițializarea unei conexiuni cu controlerul și negocierea protocolului de transfer de date, precum și controlerul pentru a controla erorile de transmisie. În special, în cazul unei erori de transmisie, controlerul setează bitul cel mai semnificativ (MSB) al octetului de control la unu. După transmiterea cu succes, toți cei patru biți cei mai importanți sunt setați la zero.
Nota. Există câteva excepții de la regulile de utilizare a octetului de verificare.
Inițializarea controlerului și a sistemului de autodiagnosticare la bord
Pentru a începe schimbul de date, computerul trebuie să stabilească o conexiune cu controlerul, apoi să inițializeze controlerul și canalul de date OBD II.
Stabilirea unei conexiuni
După conectarea controlerului la PC și a conectorului de diagnosticare OBD, acesta trebuie inițializat pentru a preveni înghețarea asociată cu zgomotul în liniile seriale dacă acestea au fost conectate înainte de a porni alimentarea controlerului. În același timp, se efectuează o simplă verificare a activității interfeței. În primul rând, este trimis un semnal de un octet 20 (hex), perceput de controler ca o comandă de stabilire a conexiunii. Ca răspuns, controlerul trimite un singur octet FF hex (255 dec) în locul celui de control și intră în modul de așteptare pentru primirea datelor. PC-ul poate continua acum la inițializarea canalului de date.
Nota. Acest caz este unul dintre puținele când controlerul nu folosește un octet de control.
Inițializare
În această etapă se inițializează protocolul prin care vor fi schimbate datele, iar în cazul protocolului ISO se inițializează sistemul de bord. Schimbul de date se realizează folosind unul dintre cele trei protocoale: VPW (General Motors), PWM (Ford) și ISO 9141-02 (producători asiatici/europeni).
Nota. Există multe excepții: de exemplu, la sondarea unor modele de mașini Mazda, poate fi utilizat protocolul PWM Ford. Astfel, dacă apar probleme de transmisie, ar trebui mai întâi să încercați să utilizați alt protocol.
Protocolul este selectat prin transmiterea unei combinații formată din octetul de control 41(hex) și octetul imediat următor, care determină tipul de protocol: 0 = VPW, 1 = PWM, 2 = ISO 9141. Deci, de exemplu, prin comanda 41 (hex) 02(hex) protocolul ISO 9141 este inițializat.
Ca răspuns, controlerul trimite un octet de control și un octet de stare. Setarea octetului de control MSB indică prezența problemelor, iar următorul octet de stare va conține informațiile corespunzătoare. După inițializarea cu succes, octetul de control 01(hex) este trimis, indicând faptul că urmează un octet de stare de verificare. În cazul protocoalelor VPW și PWM, octetul de verificare este un simplu ecou al octetului de selecție a protocolului (0 sau, respectiv, 1), când protocolul ISO 9141 este inițializat, aceasta va fi o cheie digitală returnată de procesorul de la bord care determină care dintre cele două versiuni ușor diferite ale protocolului va fi utilizată.
Nota. Cheia digitală are un scop pur informațional.
Trebuie remarcat faptul că inițializarea protocoalelor VPW și PWM este mult mai rapidă, deoarece necesită doar transferul informațiilor relevante către controler. La modelele care respectă standardul ISO, inițializarea durează aproximativ 5 secunde, cheltuite pentru schimbul de informații între controler și procesorul de la bord, realizat la o viteză de 5 baud. Cititorul ar trebui să rețină că la unele modele de vehicule ISO 9141, inițializarea protocolului se va întrerupe dacă o solicitare de date nu este trimisă într-un interval de 5 secunde - asta înseamnă că computerul trebuie să emită automat solicitări la fiecare câteva secunde, chiar și în modul inactiv.
După ce conexiunea este stabilită și protocolul este inițializat, începe schimbul normal de date, constând în solicitări primite de la PC și răspunsuri emise de controlor.
Procedura de schimb de date
Funcționarea controlerului la utilizarea protocoalelor din familia ISO 9141-2 și SAE (VPW și PWM) are loc în funcție de scenarii ușor diferite.
Schimb prin protocoale SAE (VPW și PWM)
La schimbul de date folosind aceste protocoale, un singur cadru de date este tamponat, ceea ce înseamnă că este necesar să specificați cadrul care urmează să fie capturat sau returnat. În unele cazuri (rare), procesorul de la bord poate transmite pachete constând din mai mult de un cadru. Într-o astfel de situație, cererea trebuie repetată până când toate cadrele din pachet au fost primite.
Cerere este întotdeauna format după cum urmează: [Control byte], [SAE standard request], [Frame number]. După cum sa menționat mai sus, octetul de control este de obicei un număr egal cu numărul total de octeți care îl urmează. Solicitarea este formatată în conformitate cu specificațiile SAE J1950 și J1979 și constă dintr-un antet (3 octeți), o secvență de octeți de informații și un octet de control al erorilor (CRC). Rețineți că, în timp ce informațiile de solicitare sunt generate în strictă conformitate cu specificațiile SAE, consumatorul octetului de control și al numărului de cadru este controlerul de interfață.
La finalizarea cu succes a procedurii, un mesaj de răspuns are întotdeauna următorul format: [Control byte], [SAE standard response]. Octetul de control, ca și înainte, determină numărul de octeți de informații care îl urmează. Răspunsul, în conformitate cu cerințele standardului SAE, constă dintr-un antet (3 octeți), un lanț de octeți de informații și un octet CRC.
La eșec este trimis un mesaj de 2 octeți mesaj de raspuns: [Octet de control], [Octet de stare]. În acest caz, MSB este setat în octetul de control. Cei patru biți cei mai puțin semnificativi formează numărul 001, indicând faptul că octetul de control este urmat de un singur octet, octetul de stare. Această situație poate apărea destul de des, deoarece Specificațiile permit posibilitatea ca procesorul de la bord să nu emită date, precum și transmiterea de date incorecte în cazul în care cererea nu respectă standardul suportat de producătorii de vehicule. De asemenea, este posibil ca datele solicitate să nu se afle în memoria RAM a procesorului la ora curentă. Când controlerul nu primește răspunsul așteptat sau primește date corupte, octetul de control MSB este setat, urmat de un octet de stare.
În cazul coliziunilor pe magistrală, interfața produce un singur octet 40 (hex), care este un octet de control cu bitul cel mai puțin semnificativ șters. O situație similară poate apărea destul de des atunci când autobuzul auto este încărcat cu mesaje cu o prioritate mai mare decât datele de diagnosticare - dispozitivul de calcul trebuie să repete cererea inițială.
Schimb folosind protocoalele ISO 9141-2
Standardul ISO 9141-2 este utilizat de majoritatea producătorilor de automobile din Asia și Europa. Structura cererii generate de PC nu este mult diferită de cea utilizată în standardele SAE, singura diferență fiind că controlerul nu are nevoie de informații despre numărul de cadre și informațiile corespunzătoare nu ar trebui să fie prezente în pachet. Astfel, cerere constă întotdeauna dintr-un octet de verificare urmat de un lanț de octeți de informații, inclusiv o sumă de control. Ca mesaj de răspuns controlerul transmite pur și simplu semnalele generate de procesorul de la bord. Nu există niciun octet de control în mesajul de răspuns, astfel încât computerul percepe informațiile primite în mod continuu până când lanțul este întrerupt printr-o pauză de 55 de milisecunde, indicând finalizarea pachetului de informații. Astfel, mesajul de răspuns poate consta din unul sau mai multe cadre, conform specificațiilor SAE J1979. Controlerul nu analizează cadre, nu aruncă cadre nediagnostic etc. PC-ul trebuie să proceseze singur datele primite pentru a izola cadrele individuale prin analiza octeților de antet.
Nota. Răspunsurile la majoritatea interogărilor constau dintr-un singur cadru.
Modificări aduse celei mai recente versiuni de controlere de interfață
Mai jos sunt principalele diferențe în procesul de transfer de date folosind protocoalele SAE și ISO 9141, caracteristice celor mai recente controlere de interfață, precum și ordinea transferului de date folosind protocolul ISO 14230:
- Standard ISO 9141: Octet de adresă adăugat;
- ISO 9141: returnează nu doar unul, ci ambii octeți cheie (un octet suplimentar este returnat și în modurile SAE, dar nu este utilizat aici);
- S-a adăugat suport pentru protocolul ISO 14230.
Nota. Toți octeții de informații sunt transmisi în format hexazecimal.
Nota. Caracterul XX indică un octet nespecificat, rezervat sau neidentificat.
Stabilirea unei conexiuni
Procedura de configurare a conexiunii nu s-a schimbat:
- Expediere: 20
- Recepție: FF
Selectarea protocolului
Se aplică următoarea schemă:
- VPW:
- Expediere: 41, 00
- Recepţie: 02, 01, XX
- PWM:
- Expediere: 41, 01
- Recepţie: 02, 01, XX
- ISO 9141:
- Expediere: 42, 02, adr, unde: adr - octet de adresă (de obicei 33 hex)
- Recepţie: 02, K1, K2, unde K1, K2 sunt octeți de cheie ISO
- Sau: 82, XX, XX (eroare de inițializare ISO 9141)
- ISO 14230 (inițializare rapidă):
- Expediere: 46, 03, R1, R2, R3, R4, R5, unde: R1÷R5 - mesaj despre începutul cererii ISO 14230 de stabilire a unei conexiuni, de obicei R1÷R5 = C1, 33, F1, 81, 66
- Recepţie: S1, S2, ………, unde S1, S2, ……… este mesajul despre începutul răspunsului ISO 14230 la stabilirea conexiunii
Nota. Mai mult de un ECU poate fi transmis secvenţial. Un cod de răspuns negativ poate fi folosit ca răspuns.
- Un răspuns pozitiv tipic arată astfel: S1, S2, ……. = 83, F1, 10, C1, E9, 8F, BD
- ISO 14230 (inițializare lentă): Similar cu ISO 9141
Note și comentarii
Dacă intenționați să utilizați controlerul pentru a transmite date doar prin unul sau două dintre protocoale, componentele inutile pot fi eliminate (vezi diagrama de mai sus). De exemplu, atunci când se organizează un circuit pentru protocolul VPW (GM) în firul care conectează controlerul la mașină, vor fi necesare doar trei fire (bornele 16, 5 și 2).
Dacă nu este utilizat protocolul PWM, elementele R4, R6, R7, R8, R9, R10, T1, T2 și D1 pot fi excluse.
Dacă schimbul conform protocolului ISO este refuzat, următoarele elemente sunt supuse excluderii: R15, R16, R17, R18, R19, R21, T4 și T5.
Refuzul de a utiliza protocolul VPW vă permite să excludeți următoarele elemente: R13, R14, R23, R24, D2, D3 și T3.
Se folosesc rezistențe cu peliculă de carbon cu o toleranță de rezistență de 5%.
Vă rugăm să rețineți că nu există un buton de resetare de urgență (RESET, dacă este necesar, o astfel de resetare se poate face prin deconectarea controlerului de la conectorul mașinii); (procesorul de interfață se va reporni automat). Repornirea software-ului pe PC are ca rezultat o nouă inițializare a interfeței.
