Onderwerpen:
- Inleiding
- Diagnose LIN-bussignalen
- Seriële decodering
Inleiding:
Een storing in een LIN-buscommunicatie kan meerdere functies in het voertuig laten uitvallen of complete regeleenheden uitschakelen doordat het hele netwerk plat wordt gelegd. Wanneer men vermoedt dat er een storing is in de LIN-bus, kan men het signaalverloop met een oscilloscoop meten en beoordelen. Een multimeter is hiervoor niet voldoende, hoewel deze diagnosevorm soms in how-to video’s van monteurs voorkomt. Met een multimeter is zichtbaar:
- constant 12 volt -> geen communicatie;
- constant 0 volt -> geen communicatie;
- fluctuerende spanning tussen 6 en 9 volt -> waarschijnlijk vindt er communicatie plaats.
Deze diagnose met de multimeter is gebrekkig. Met een oscilloscoop kunnen we niet alleen vaststellen of er communicatie is, maar ook of alle slaves op het request frame van de master reageren en of er sprake is van een overgangsweerstand of onderbreking in een LIN-busdraad.
Hoe een LIN-bussysteem werkt en hoe berichten worden opgebouwd, wordt uitgelegd op de pagina LIN-bus. Deze pagina richt zich op het meten van de LIN-bus met de oscilloscoop en beschrijft mogelijke storingen en oorzaken.
In de eerste paragraaf “Diagnose LIN-bussignalen” worden de meest voorkomende storingsbeelden met oorzaak en oplossing beschreven. Wil je dieper in de diagnose duiken? In de volgende paragraaf “Seriële decodering” wordt het LIN-bussignaal met en zonder storing inhoudelijk geanalyseerd.
Diagnose LIN-bussignalen:
Met een oscilloscoop kunnen we op één meetkanaal de LIN-bus meten ten opzichte van een massapunt. De afbeelding rechts geeft aan hoe de meetpennen op kanaal A van van de oscilloscoop zijn aangesloten:
- Rode meetpen: op de master of één van de drie slaves;
- Zwarte meetpen: op een goed massapunt.
Het onderstaande scoopbeeld geeft een correct LIN-bussignaal weer. In het scoopbeeld zien we drie dataframes die zich steeds herhalen. De master is de boordnet-ECU (BCM) en de slaves zijn de ruitenwissermotor, regen- / lichtsensor en de ruitenwisserschakelaar.
Slave antwoordt niet (1):
In het LIN-bussignaal zien we dat het derde dataframe een stuk kleiner is dan in het bovenstaande signaal. De master zet het begin van het bericht vanaf de breaktime tot aan het request frame, en daarna blijft het signaal tussen de 12 en 14 volt. In dit geval antwoord de slave niet. Dit kan komen doordat de LIN-busdraad tussen de master en de slave is onderbroken, of dat er een andere oorzaak is waarom de slave geen antwoordt zendt.
De zekering kan defect zijn. Als de slave geen voedingsspanning krijgt, kan hij ook niet antwoorden. Ook kunnen een onderbroken plusdraad of massadraad oorzaken zijn.
Slave antwoordt niet (2):
Net als in het vorige scoopbeeld hebben we te maken met een onderbreking in de LIN-busdraad naar één slave. Met een tweekanaalsmeting wordt inzichtelijk gemaakt hoe het spanningsverloop is tot aan de onderbreking (kanaal A) en wat er op het moment van de storing op de slave (kanaal B) wordt gemeten. Na het aanbrengen van de backprobe in de stekker van de slave bedraagt de spanning die de slave uitstuurt constant 12 volt.
Echter, nadat de slave na 10 seconden nog geen activiteit heeft waargenomen, daalt de spanning naar 5 volt. Bij het opnieuw aanbrengen van de backprobe stijgt de spanning weer 10 seconden lang naar 12 volt, waarna deze door inactiviteit van het LIN-signaal weer terugvalt naar 5 volt. Het is mij niet bekend of deze spanningsverlaging zich op andere LIN-bussystemen hetzelfde gedraagt. Het is dan mogelijk dat de spanning constant 12 volt blijft.
Overgangsweerstand in LIN-busdraad naar slave (1):
Een beschadigde draad kan leiden tot overgangsweerstand. Als de LIN-busdraad bekneld raakt of tegen een scherp deel doorgesleten is, kan de isolatie beschadigen en het koperdraad corroderen. Dit veroorzaakt spanningsverlies, wat zichtbaar is in het onderstaande scoopbeeld. In het derde dataframe zendt de master een bericht naar de slave, waarbij de spanning naar ongeveer 0,5 tot 1 volt daalt, wat normaal is. Wanneer de slave antwoordt, daalt de spanning niet verder dan 4 volt, wat wijst op een overgangsweerstand tussen het meetpunt en de slave. Deze storing is gesimuleerd met een weerstand van 330 ohm. Hoe slechter de draad, hoe hoger de overgangsweerstand en hoe meer de spanning stijgt.
Overgangsweerstand in LIN-busdraad naar slave (2):
In het onderstaande scoopbeeld zien we opnieuw het gevolg van een overgangsweerstand, maar deze keer is de meting verricht op de slave zelf. De overgangsweerstand beïnvloedt alle spanningen die vanaf de master en andere slaves via de weerstand de slave bereiken. Deze spanning daalt niet verder dan 2 volt. Omdat de meetpen is aangesloten op de slave, meten we wel correct de spanning (tussen de 0,5 en 1 volt) die de slave zendt. Om deze meting inzichtelijk te maken, is de weerstand verhoogd naar 330 kilo-ohm. De weerstand van 330 ohm in de vorige meting was niet voldoende om invloed uit te oefenen op de signalen die de slave bereikten.
Overgangsweerstand in LIN-busdraad naar slave (3):
De bovenstaande twee scoopbeelden m.b.t. de overgangsweerstand worden hier in de tweekanaalsmeting getoond. Kanaal A (blauw) wordt aan de kabelboomzijde en kanaal B (rood) aan de slavezijde aangesloten.
In deze meting is er een weerstand van 330 ohm aangebracht.
Op kanaal A (blauw) is de spanning die afkomstig is van slave 3 gestegen naar 4 volt. Het spanningsverloop op kanaal B (rood) is nagenoeg onveranderd.
Overgangsweerstand in LIN-busdraad naar slave (4):
In dezelfde meetopstelling als hierboven, maar bij het verhogen van de weerstand naar 330k, zien we wederom dat de spanning op kanaal A flink stijgt, en dat de hoge weerstand nu ook invloed heeft op de spanning op kanaal B. De spanning die afkomstig is van de master en slave 1 en 2 is als gevolg van de weerstand op kanaal B ook gestegen.
Geen activiteit of kortsluiting met plus:
De spanning op de LIN-busdraad is constant tussen de 12 en 14 volt, afhankelijk van de boordspanning. Er is geen communicatie zichtbaar. Afhankelijk van de oorzaak kunnen er lichte rimpels of ruis in deze spanningslijn voorkomen. De constante spanningslijn kan twee oorzaken hebben: de master verzendt geen signaal, waardoor de slaves niet antwoorden, er is kortsluiting tussen de LIN-bus en de plus, of er wordt op een slave gemeten die geen verbinding heeft met de master en andere slaves, bijv. door een onderbroken draad.
Bij plussluiting kan de oorzaak liggen in de bedrading of een slave. Om de kortsluiting op te sporen, moeten de regeleenheden en/of stekkerverbindingen één voor één worden gedemonteerd. Hierdoor worden zowel de defecte regeleenheid als de oorzaak van de kortsluiting weggenomen. In dat geval herstelt de LIN-buscommunicatie zich. Als we aan de kant van de master of een goede slave meten, zal het scoopbeeld een dataframe zonder antwoord van de slave weergeven, zoals in de eerste storing op deze pagina is getoond.
LIN-bus kortsluiting met massa:
De LIN-busspanning bedraagt constant 0 volt. Net als bij een plussluiting kan de kortsluiting bij een massasluiting zich ergens in de kabelboom of in een slave bevinden. Door één voor één slaves en/of stekkerverbindingen te demonteren, kan de oorzaak worden weggenomen en zal de LIN-bus zich direct herstellen. Er moet dan wel gemeten worden op een punt waar het bericht van de master aankomt. Bijvoorbeeld: als we vermoeden dat er een kortsluiting in een raammotor is en de stekker in de A-stijl naar de deur wordt gedemonteerd, moet er gemeten worden op één van de andere deuren of bij de master.
Het heeft geen zin om in dit geval op de raammotor in de gedemonteerde deur te meten.
Seriële decodering:
Met de functie “seriële decodering” kan de Picoscope-software het gemeten LIN-busbericht analyseren, waarmee we dieper in de diagnose kunnen duiken.
Ieder dataframe wordt in stukjes opgedeeld waarin het break field, synchronisation field, identifier, datafields, checksum en de interframe space worden getoond met de tijdsduur en de daarbij behorende hexadecimale waardes. Met de seriële decodering kan de Picoscope ook inschatten of het LIN-bericht goed genoeg is om door een master of slave te verwerken.
Opnieuw voeren we een tweekanaalsmeting uit. De meetpennen van kanaal A en B zetten we op verschillende meetpunten, omdat we in een volgende meting een weerstand tussen deze punten aanbrengen.
Onder de datablokken zien we een horizontale witte lijn met onder markeringen:
- Break field: paars
- Sync field: lichtblauw
- Identifier field: groen
- Datablokken: donkerblauw
- Checksum: blauw
Ieder bericht heeft dezelfde opbouw en afsluiting, maar de inhoud verschilt door de hoeveelheid informatie die in het bericht wordt verstuurd. Het eerste bericht bevat vier donkerblauwe datablokken en in de tweede en derde zien we vijf datablokken.
Om de seriële decodering nog beter te begrijpen, is er ingezoomd op het eerste bericht met vier datablokken. Hierbij ontstaat er ook ruimte in het witte decodeervlak om onder de verschillende delen van het bericht de tijd (break field) en de hexadecimale waardes (de rest) weer te geven. Onder het scoopbeeld verschijnt een tabel met daarin alle datablokken met tijden en hexadecimale waardes. Er staat een vinkje (V) bij “parity OK” op het moment dat dit gedeelte van het bericht goed is verstuurd en door de ECU’s kan worden verwerkt.
Overgangsweerstand in LIN-busdraad naar slave:
Net als in de vorige paragraaf wordt er een overgangsweerstand tussen slave 2 en 3 gemonteerd, waar door middel van een tweekanaalsmeting het spanningsverloop aan beide kanten van de weerstand wordt gemeten. Deze keer voegen we daar de seriële decodering aan toe.
De weerstand is verhoogd naar ongeveer 500 ohm, waardoor in de meting op kanaal A de spanning vanaf slave 3 stijgt naar ongeveer 5 volt.
De seriële decodering kan nog steeds worden uitgevoerd. Er zijn geen fouten zichtbaar. Ondanks dat er een overgangsweerstand aanwezig is, kan het signaal nog door de ECU’s worden gelezen. Er zal door deze overgangsweerstand geen afwijkend bericht worden geïnterpreteerd, en er zullen geen storingscodes worden opgeslagen.
Bij het verhogen van de weerstand stijgt de spanning naar 7 volt. Onder het slave-gedeelte van het derde bericht ontbreken vanaf het identifier-field alle data- en checksum markeringen. Tevens zijn de eerste blokken (break, sync, id) die door de master worden verstuurd omkaderd met een rode kleur. Dit geeft aan dat het bericht foutief is. De informatie die de slave verstuurt kan niet meer worden gelezen door de master en andere slaves in het netwerk.
In de tabel met de tijden, identifiers en hexadecimale waardes, is te zien dat “frame identifier 30” rood is gekleurd. Er bevinden zich meer rode regels in de tabel. Alle rode regels corresponderen met de rood omkaderde delen in het bovenstaande scoopbeeld.
Wanneer het dataframe wordt aangeklikt, klapt er een menu met informatie uit. Hierin zien we overeenkomstige data met de tabel: Protected identifier B1 / frame identifier 31, data ontbreekt, checksum ontbreekt en enhanced checksum is niet geslaagd (x).
Gerelateerde pagina: