Transcript
Departement Industriële Wetenschappen en Technologie Opleiding Bachelor in de elektronica-ICT Afstudeerrichting elektronica
Simulatie van CAN-signalen via SAE J1939
Eindwerk aangeboden tot het behalen van het diploma van Bachelor in de elektronica-ICT door Benji De Backer
o.l.v. Peter D'hulster, KHBO Johan Derdaele, KHBO Peter Deckmyn, Turbo's Hoet Parts & Revisie NV
Academiejaar 2010 - 2011
KHBO Campus Oostende ● Zeedijk 101 ● B-8400 Oostende ● Tel. +32 59 56 90 00 ● Fax +32 59 56 90 01 ● www.khbo.be
Mededeling Deze eindverhandeling was een examen. De tijdens de verdediging geformuleerde opmerkingen werden niet opgenomen.
Woord vooraf In dit woord vooraf wil ik iedereen bedanken die mee werkte aan het tot stand komen van dit eindwerk. Als eerste wil ik mijn promotoren bedanken voor hun raad en daad, het luisteren naar mijn problemen en hun hulp om een geschikte oplossing te vinden. Dank aan ing. Peter D’hulster en ing. Johan Derdaele (binnenpromotoren) en ing. Peter Deckmyn (buitenpromotor) voor het opvolgen van mijn stage. Daarnaast wil ik ook alle werknemers van het stagebedrijf, Turbo’s Hoet Parts en Revisie N.V., bedanken. Dit voor hun luisterend oor, hun technische kennis van motoren en hulp bij het testen. In het speciaal een bedankje voor dhr. Danny Rabaut, die mij altijd te hulp stond. Verder wil ik ook mijn vriendin Karolien Hollevoet bedanken voor de steun tijdens de stage en voor het luisterend oor. Als laatste zou ik nog de werknemers van National Instruments en Mikroe willen bedanken die mij geholpen hebben in mijn zoektocht.
Abstract De trend dat meer en meer producten elektronisch worden gestuurd geeft zich ook weer in de auto- en vrachtwagenindustrie. In moderne vrachtwagens worden vele zaken geregeld via een elektronisch netwerk, zoals het CAN netwerk. Een van de hoofdtaken van de afdeling Parts & Revisie van Turbo’s Hoet is het verkopen van tweedehands vrachtwagenmotoren. Hierbij is het noodzakelijk dat er een goed draaiende motor kan afgeleverd worden bij de klant. Daarom wordt iedere motor afzonderlijk getest voor deze het bedrijf verlaat. Bij deze testen moet de motor draaien zoals het hoort en moet er de mogelijkheid bestaan om gas te geven. Bij moderne motoren is deze gaspedaalstand veelal geregeld via het elektronische netwerk in de vrachtwagen en niet rechtstreeks op de dieselpomp. Daardoor zou er bij het testen van de motoren een stuk van het elektronisch netwerk van de vrachtwagen moeten aangesloten worden om de testen te kunnen realiseren. Het doel van de stage en het eindwerk was deze testen te gaan vereenvoudigen, zodanig dat de motor in een korte tijdspanne en op een meer eenvoudige manier te testen was door de werknemers. Voor de realisatie van mijn stage werden 2 verschillende systemen ontworpen. Enerzijds werd er gewerkt op basis van een computer, die met LabView de sturing deed. Anderzijds wordt er gebruik gemaakt van een microcontroller die met behulp van MikroC de sturing kan doen als de motor als stand-alone wordt gebruikt.
4
Inhoud Mededeling.............................................................................................................................................. 2 Woord vooraf .......................................................................................................................................... 3 Abstract ................................................................................................................................................... 4 Inhoud ..................................................................................................................................................... 5 1 Situering van het probleem ............................................................................................................. 8 2 CAN-bus ........................................................................................................................................... 9 2.1 Geschiedenis en ontwikkeling ................................................................................................. 9 2.2 Gebruik als standaard............................................................................................................ 10 2.3 CAN-protocol ......................................................................................................................... 10 2.4 OSI-model .............................................................................................................................. 12 2.4.1 Opbouw van het OSI-model .......................................................................................... 12 2.4.2 Laag 1: fysische laag ...................................................................................................... 13 2.4.3 Laag 2: datalink laag ...................................................................................................... 15 2.4.3.1 MAC – Medium Access Control ................................................................................. 15 2.4.3.1.1 NRZ-encoding en bitstuffing ................................................................................ 16 2.4.3.1.2 Busarbitrage ........................................................................................................ 17 2.4.3.2 LLC – Logical Link Control .......................................................................................... 18 2.4.3.2.1 Data frame........................................................................................................... 18 2.4.3.2.2 Remote frame ..................................................................................................... 22 2.4.3.2.3 Error frame .......................................................................................................... 22 2.4.3.2.4 Overload frame ................................................................................................... 22 2.5 CAN connectoren .................................................................................................................. 22 2.5.1 9-pin D-Sub connector................................................................................................... 23 3 SAE J1939....................................................................................................................................... 24 3.1 CAN - J1939............................................................................................................................ 24 3.2 OSI-model .............................................................................................................................. 24 3.3 Identifier ................................................................................................................................ 25 3.3.1 3-bit priority................................................................................................................... 26 3.3.2 1-bit reserved ................................................................................................................ 26 3.3.3 1-bit data page .............................................................................................................. 26 3.3.4 16-bit PGN ..................................................................................................................... 26 3.3.4.1 PDU Format (PF) ........................................................................................................ 27 3.3.5 8-bit Source address ...................................................................................................... 27 3.3.6 Voorbeeld ...................................................................................................................... 27 3.4 Page Group Number (PGN) ................................................................................................... 28 3.4.1 EEC1 – Electronic Engine Controller 1 ........................................................................... 28 3.5 SPN – Suspect Parameter Number ........................................................................................ 29 4 PC toepassing via LabVIEW............................................................................................................ 30 4.1 Inleiding ................................................................................................................................. 30 4.2 Werkmodule – NI USB-8473 .................................................................................................. 30 4.2.1 Eigenschappen............................................................................................................... 31 4.2.2 Pin lay-out...................................................................................................................... 32 4.3 Opbouw van het programma ................................................................................................ 32 4.3.1 Configureren van de interface....................................................................................... 33 4.3.2 Openen van de interface ............................................................................................... 34 4.3.3 Data aanmaken.............................................................................................................. 35 4.3.4 Schrijven van de data op de bus .................................................................................... 35 4.3.5 Afsluiten van de interface ............................................................................................. 36 4.4 Praktische uitwerking ............................................................................................................ 36
5
4.4.1 Front panel .................................................................................................................... 36 4.4.1.1 Fotopage .................................................................................................................... 37 4.4.1.2 Startpage ................................................................................................................... 37 4.4.1.3 Workpage .................................................................................................................. 37 4.4.2 Block diagram ................................................................................................................ 38 4.4.2.1 Slideshow en tabbladen ............................................................................................ 38 4.4.2.2 Configureren en openen van de interface ................................................................ 38 4.4.2.3 Data aanmaken.......................................................................................................... 39 4.4.2.4 Afsluiten van de interface ......................................................................................... 39 5 Stand-alone toepassing via MikroC ............................................................................................... 40 5.1 Inleiding ................................................................................................................................. 40 5.2 Werkmodule .......................................................................................................................... 40 5.2.1 Keuze motor .................................................................................................................. 40 5.2.2 Visuele ondersteuning ................................................................................................... 40 5.3 Hardware ............................................................................................................................... 40 5.3.1 Opbouw signaal ............................................................................................................. 41 5.3.2 Keuze componenten...................................................................................................... 41 5.3.2.1 PIC18F4680 ................................................................................................................ 41 5.3.2.1.1 Eigenschappen .................................................................................................... 43 5.3.2.1.2 Pin lay-out ........................................................................................................... 43 5.3.2.2 MCP2551 I/P .............................................................................................................. 44 5.3.2.2.1 Eigenschappen .................................................................................................... 45 5.3.2.2.2 Pin lay-out ........................................................................................................... 45 5.3.3 Programmer .................................................................................................................. 46 5.3.4 Print ontwerp ................................................................................................................ 47 5.3.4.1 Schema ...................................................................................................................... 47 5.4 Software ................................................................................................................................ 50 5.4.1 A/D conversie ................................................................................................................ 50 5.4.2 LED blinking ................................................................................................................... 50 5.4.3 Buttons .......................................................................................................................... 51 5.4.4 CAN ................................................................................................................................ 52 5.4.5 Andere code .................................................................................................................. 53 6 VOLVO FH13 .................................................................................................................................. 54 6.1 Inleiding ................................................................................................................................. 54 6.2 Geschiedenis van het model ................................................................................................. 54 6.3 Inwendige CAN-bus ............................................................................................................... 55 6.4 Metingen op testbank ........................................................................................................... 55 6.4.1 Aansluitklemmen en -fiche ............................................................................................ 55 6.4.2 Eerste meting ................................................................................................................ 57 6.4.2.1 Meetopstelling .......................................................................................................... 57 6.4.2.2 PC-sturing .................................................................................................................. 58 6.4.3 Tweede meting .............................................................................................................. 59 6.4.4 Derde meting ................................................................................................................. 59 6.5 Conclusie Volvo FH ................................................................................................................ 59 7 Scania R.......................................................................................................................................... 60 7.1 Inleiding ................................................................................................................................. 60 7.2 Geschiedenis van het model ................................................................................................. 60 7.3 Inwendige CAN-bus ............................................................................................................... 60 7.4 Metingen op testbank ........................................................................................................... 61 7.4.1 Aansluitklemmen en -fiche ............................................................................................ 61 7.4.2 Lokaliseren van CAN op motor ...................................................................................... 62 7.4.3 Eerste meting ................................................................................................................ 62
6
7.5 Metingen op vrachtwagen .................................................................................................... 63 7.5.1 Eerste meting ................................................................................................................ 64 7.5.2 Tweede meting .............................................................................................................. 65 7.5.3 Derde meting ................................................................................................................. 66 7.5.4 Vierde meting ................................................................................................................ 66 7.5.5 Vijfde meting ................................................................................................................. 68 7.5.5.1 Contact stand ............................................................................................................ 68 7.5.5.2 Demarreer stand ....................................................................................................... 68 7.5.5.3 Rij stand ..................................................................................................................... 69 7.5.6 Zesde meting ................................................................................................................. 69 7.6 Conclusie Scania R ................................................................................................................. 70 8 Renault DXI13 ................................................................................................................................ 71 8.1 Inleiding ................................................................................................................................. 71 8.2 Geschiedenis van het model ................................................................................................. 71 8.3 Inwendige CAN-bus ............................................................................................................... 71 8.4 Metingen op testbank ........................................................................................................... 71 8.4.1 Eerste meting ................................................................................................................ 72 8.4.2 Tweede meting .............................................................................................................. 73 8.4.3 Pc-sturing ....................................................................................................................... 73 8.5 Conclusie Renault DXI13........................................................................................................ 73 9 Mercedes Actros............................................................................................................................ 74 9.1 Inleiding ................................................................................................................................. 74 9.2 Geschiedenis van het model ................................................................................................. 74 9.3 Inwendige CAN-bus ............................................................................................................... 74 9.4 Metingen op testbank ........................................................................................................... 75 9.4.1 Eerste meting ................................................................................................................ 76 9.4.2 Tweede meting .............................................................................................................. 78 9.5 Conclusie Mercedes Actros ................................................................................................... 78 10 Handleiding................................................................................................................................ 79 10.1 Hardware ............................................................................................................................... 79 10.2 Software ................................................................................................................................ 82 11 Besluit ........................................................................................................................................ 84 12 Bijlagen ...................................................................................................................................... 85 13 Bibliografie................................................................................................................................. 87
7
1 Situering van het probleem De kracht van een goede vrachtwagen ligt ondermeer bij een goed werkende motor. Bij het verkopen van tweedehands vrachtwagenmotoren is het dan ook belangrijk om dit te kunnen garanderen aan de klant. Met deze reden in het achterhoofd is het voor Turbo’s Hoet NV belangrijk om bij de verkoop de betrouwbaarheid van de motor vooraf te kunnen testen binnen het bedrijf. Waar vroeger het gebruik van relais contacten werd toegepast in gewone wagens en vrachtwagens voor de signaaloverdracht van bijvoorbeeld het gaspedaal of de richtingsaanwijzer, worden deze dezer dagen vervangen door middel van een elektronisch netwerk dat de gewenste signalen levert aan onder andere de motor. Om te kunnen proefdraaien, moet de motor minimaal kunnen bediend worden via het gaspedaal. Op dit moment worden de testen uitgevoerd via een omslachtige methode. Voor ieder beschikbaar type vrachtwagenmotor moet een aparte kast worden gebouwd. Deze kast is groot en niet vlot handelbaar. Binnen in deze kast moet ook alle elektronica voorzien zijn die nodig is voor het sturen van de motor. Hieronder verstaan we onder andere een stuurdoos, indien nodig een sleutelcontact en de nodige bekabeling. Het bedrijf test meer en meer motoren die gebruik maken van het CAN-netwerk. Daarmee zochten ze een oplossing om deze testen te vereenvoudigen, zowel in omvang als gebruik. Als uitkomst van het probleem is gekozen om de vereenvoudiging zowel te gaan realiseren met de pc als via microcontroller. Via de pc is dan gekozen om met het programma LabView te werken, de microcontroller wordt met MikroC geprogrammeerd. De doelstelling is dus om de omslachtige schakeling te gaan vervangen door een multifunctioneel en kleiner systeem dat binnen heel het bedrijf gebruikt kan worden op verschillende motoren. Verder zou ook nog een bruikbaar stappenplan moeten worden opgesteld voor de werknemers van het bedrijf, om vlot het ontworpen systeem te kunnen gaan gebruiken en eventueel aan te vullen.
8
2 CAN-bus 2.1 Geschiedenis en ontwikkeling De eerste ontwikkelingen waarbij we van het CAN-systeem kunnen spreken, gaan terug tot in de jaren ’80. Dit kwam onder meer door de vraag vanuit de automobielindustrie, die groter en groter werd. De twee belangrijkste probleemgebieden kwamen immers uit deze tak van de industrie, omdat ook hier de technische ontwikkelingen evolueerden. De comforteisen van de gebruiker namen toe. Vb.: elektronisch bediende ruiten, stoel- en spiegelverstelling, stoelverwarming, ... De gebruiker werd zich steeds meer bewust van allerlei veiligheidsaspecten. Vb.: elektronische centrale vergrendeling, startblokkering, ABS-voorzieningen, …
Figuur 2-1 CAN netwerk
Deze toename van elektronica in motorvoertuigen zorgde dat er een manier moest gevonden worden om de communicatie tussen afzonderlijke intelligente eenheden in deze voertuigen tot stand te laten komen. Dit was dan ook de reden waarom de automobielindustrie begon met haar zoektocht naar nieuwe, moderne communicatiemethodes. Uiteindelijk kwam men zo o.a. terecht bij de netwerktechniek, die echter wel aan bepaalde specifieke eisen van de automobielsector moest voldoen. In de ontwikkelfase begon iedere fabrikant met zijn eigen busnetwerk, wat natuurlijk niet compatibel was met de netwerken die de concurrentie ontwikkelde. Hun eigen busconcept was voor hen goed, en dit probeerden ze dan ook te laten aanvaarden als internationale
9
standaard. Een van deze ontworpen busconcepten was het Controller Area Netwerk, kort CAN. Midden jaren ’80 begon Robert Bosch met de ontwikkeling van het CAN-protocol, en stelde het ten slotte voor in 1986 op een SAE congres in Detroit. Tegenwoordig kunnen we CAN gaan omschrijven als het meest toonaangevende op het gebied van ‘automobielbussen’, Maar er zijn ook nog andere toepassingsgebieden van CAN, maar deze gaan we hier niet verder bespreken. Het CAN-protocol is inmiddels verder geëvolueerd en aangepast en is tegenwoordig ook al als hardware beschikbaar, m.a.w. als IC's. Er zijn op de markt al verschillende microcontrollers beschikbaar die gebruik maken van het CAN-systeem. Wanneer we gaan kijken naar de verschillende soorten CAN die nu bestaan, kunnen we er twee belangrijke soorten gaan uithalen voor de automobielindustrie. Voor personenwagens wordt er vaak gebruik gemaakt van ‘Fault tolerant CAN’, terwijl de vrachtwagen industrie gebruik maakt van het ‘High Speed CAN’ systeem. Verdere uitleg volgt bij hoofdstuk 2.4.2.
2.2 Gebruik als standaard CAN is dus een van de busconcepten die werden gedefinieerd als standaard. CAN is ook een van de vijf protocollen die worden gebruikt in de OBD-II voertuigen diagnostiek standaard. Het OBD-norm is verplicht voor alle auto's en lichte vrachtwagens verkocht in de Verenigde Staten sinds 1996 en voor alle benzine auto's verkocht in de Europese Unie sinds 2001 en alle dieselauto's sinds 2004. OBD staat voor On-Board Diagnostics en is een term die verwijst naar het uitlezen en diagnose stellen op motoren. OBD zette net als CAN zijn eerste stappen in de jaren ’80 en evolueerde van een signalisatielampje bij een defect tot het weergeven van de specifieke foutcode op een display. De modernste OBD is momenteel de versie OBD-II.
2.3 CAN-protocol Zoals eerder al kort uitgelegd, is het Controller Area Network een standaard voor een seriële databus die dient om elektronische sturingseenheden aan elkaar te koppelen. Het maakt dus mogelijk om verschillende modules te gaan verbinden met elkaar via één bussysteem. Daarnaast is CAN expliciet ontworpen voor omgevingen waar veel elektromagnetische storingen zijn. In het bussysteem zijn alle modules gelijkaardig. Er wordt niet gesproken van een master of slave, iedere zender is evenwaardig. Iedere zender kan ook dienen als ontvanger. Het bussysteem van het CAN maakt gebruik van twee differentieel aangedreven lijnen. Meestal worden deze twee lijnen als twisted pair lijnen gebruikt, om de betrouwbaarheid te bevorderen. Want door de twisting wordt de storing uit de omgeving sterk gereduceerd.
10
Figuur 2-2 Twisted pair
Om de communicatie op het Controller Area Network in goede banen te leiden, wordt er gebruik gemaakt van het CAN protocol. Dit protocol is enkel op de twee onderste lagen van het OSI-model gespecificeerd. Deze twee lagen, de fysieke laag en de data link laag, worden later nog uitvoerig besproken. Hieronder vind u de belangrijkste technische specificaties van het CAN-protocol: Naam
Uitleg
multimaster:
het systeem is verdeeld in verschillende nodes waarbij elke node tijdelijke controle heeft over de actie
baudrate:
10 kBit/s - 1 MBit/s
modulatie:
NRZ met bitstuffing
lengte van bericht: 44 - 130 bits identificatie:
11 bits (standaard) 29 bits (extended)
datalengte:
0 - 8 bits
CRC-controle:
15 bits
prioriteit:
laagste identificatienummer heeft de hoogste prioriteit (= arbitrage)
foutdetectie:
bit-niveau, CRC, formaatniveau
foutafhandeling:
bevestiging (acknowledge), foutbericht, automatische herhaling
fysische koppeling: symmetrisch of asymmetrisch, galvanisch gescheiden, glasvezel lengte netwerk:
40 m of langer bij lagere snelheid (baudrate)
Tabel 2-1 Specificaties CAN-protocol
11
2.4 OSI-model Het OSI-model is een gestandaardiseerd datacommunicatie systeem. Het beschrijft hoe de data over het netwerk wordt verstuurd. Het hele netwerk is goed gestructureerd en deze netwerken kunnen we ten opzichte van hun architectuur gaan opdelen in twee grote groepen: Open systemen Privé systemen In open systemen hangt de structuur van het systeem niet af van de fabrikant, terwijl dit bij privé systemen (zoals SNA of DNA) wel het geval is. Een van de voorbeelden van een open systeem is het TCP/IP protocol, een ander is ons OSI-model. 2.4.1
Opbouw van het OSI-model
Het datacommunicatiesysteem wordt opgesplitst in 7 lagen, wat bekend staat als het ‘7 lagen model van ISO’. ISO is de organisatie die de normen van het OSI-model heeft vastgelegd.
Transport gericht (netwerk)
Applicatie gericht (toepassing)
Hieronder ziet u een overzicht van de verschillende lagen met daarbij een korte uitleg. Nr Naam
Uitleg
7
Applicatielaag
De eindgebruiker die iets wil raadplegen
6
Presentatielaag
Gegevens op de correcte manier aanbieden aan de gebruiker
5
Sessielaag
Verbinding van het gesprek tot stand brengen tussen 2 eindgebruikers Regelt het verkeer
4
Transportlaag
Besturing en controle van het netwerk Fragmenteren van de data Foutcontrole op het volledige bericht
3
Netwerklaag
Routeren van datapakketten
2
Datalink laag
Logische verbinding tot stand brengen, onderhouden en verbreken Taken: flowcontrol en foutencontrole (CRC op pakketje)
1
Fysische laag
Fysische verbinding tot stand brengen, onderhouden en verbreken Synchronisatie,
Tabel 2-2 OSI-model
Zoals eerder al vermeld, is CAN gedefinieerd voor de twee onderste lagen van het OSImodel. Elk van deze twee lagen heeft zijn eigen functies en kan nog verder onderverdeeld worden.
12
De datalinklaag (DLL) wordt onderverdeeld in: LLC - logical link control MAC - medium access control De fysieke laag (PL) wordt onderverdeeld in: PLS - physical signaling PMA - physical medium attachment MDI - medium dependant interface
Figuur 2-3 OSI-model
Het verschil tussen laag één en twee kunnen we aantonen via een simpel voorbeeld, een telefoongesprek. Telefoongesprek op laag één = telefoon nemen, nummer draaien, opnemen, … (fysische verbinding) Telefoongesprek op laag twee = hallo zeggen, tegen elkaar praten, niet door elkaar praten, … (logische verbinding) 2.4.2
Laag 1: fysische laag
De fysische laag is de laagste laag uit het OSI-model en beschrijft zoals de naam aangeeft het fysische aspect van de CAN-bus. De definitie van laag één leert ons dat deze alle elementen betreft die van belang zijn bij het tot stand brengen, onderhouden en verbreken van de fysische verbinding tussen twee stations. Binnen deze laag worden bepaalde eigenschappen vastgelegd in verband met de verbinding: Snelheid (Baudrate) Bit- en bytesynchronisatie Modulatiemethode (FSK, …) Als we de CAN-bus fysisch gaan bekijken valt ons de twee getwiste draden op. Hierover zenden we een differentieel signaal.
13
De specifieke manier van getwiste draden biedt ons een groot voordeel. Omdat CAN dikwijls wordt gebruikt in storingsrijke gebieden, kunnen deze storingen veel invloed hebben op het verstuurde signaal. Echter door de draden te twisten, worden deze storingen weggewerkt. Doordat de draden getwist worden liggen ze fysiek altijd dicht tegen elkaar waardoor ze altijd (ongeveer) dezelfde storingen opnemen. Doordat deze storingen gelijk zijn op beide draden, worden ze door de differentiële transmitter weg gewerkt. We bekomen dus een signaal dat geen of zeer weinig storing uit de omgeving heeft opgenomen. Wanneer we gaan kijken naar de verschillende soorten CAN die nu bestaan, kunnen we er twee belangrijke soorten gaan uithalen voor de automobielindustrie. Voor personenwagens wordt er vaak gebruik gemaakt van ‘Fault tolerant CAN’, terwijl de vrachtwagen industrie gebruik maakt van het ‘High Speed CAN’ systeem. Bij ‘Fault tolerant CAN’ worden de low en de high gekenmerkt door hun spanningsniveau. In dominante toestand spreken we van 1.4V bij low en 3.6V bij high. In recessieve toestand van 0V en 5V bij respectievelijk low en high. Een recessieve toestand komt overeen met een logische ‘0’, terwijl de dominante toestand overeenkomt met een logische ‘1’. Het voordeel van op deze manier te gaan werken en data te sturen is dat het redelijk goed bestand is tegen fouten op de bus. ‘High speed CAN’ heeft op de einden twee weerstanden zitten. Die dienen om de reflecties op de bus weg te werken. De grootte van de weerstanden is 120Ω, waardoor je bij een goed werkende CAN-bus 60Ω hoort te meten. Nog een verschil tegen over de ‘Fault tolerant CAN’ is dat bij ‘High speed CAN’ niet de absolute spanningswaarde in rekening wordt genomen, maar wel de verschilspanning. Het spanningverschil duidt dus aan wanneer er op de bus een dominante of recessieve toestand aanwezig is. Bij dominant spreken we van een verschil groter dan 0.9V, bij recessieve toestand ligt de waarde op 0.5V.
Figuur 2-4 High Speed CAN
Wanneer we de ‘High Speed CAN’ in praktijk gaan bekijken, meten we bij een dominante toestand een verschilspanning van 2V. Op de high en de low meten we dan respectievelijk 3.5V en 15V. In recessieve toestand staat op beide lijnen 2.5V, waardoor het verschil dus 0V bedraagt.
14
Recessieve toestand
4 CAN-L 2
CAN-H ΔV
0
Spanning (V)
Spanning (V)
Dominante toestand 3 2
CAN-L CAN-H
1
ΔV
0
Figuur 2-5 Dominante en recessieve toestand CAN-bus
Figuur 2-6 CAN-H en CAN-L
2.4.3
Laag 2: datalink laag
De datalink laag betreft niet de fysische verbinding, maar de logische verbinding. Als we hier de definitie bijnemen zien we dat deze ongeveer gelijk is aan die van de fysische laag. De definitie zegt immers dat laag twee alle elementen die van belang zijn bij het tot stand brengen, onderhouden en verbreken van de logische verbindingen tussen 2 stations bevat. Daarvoor worden verschillende protocollen gebruikt: TTY-protocol (teletype protocol) BSC-protocol (binary synchronous communication) HDLC-protocol (high level data link control) Deze protocollen zijn echter niet van groot belang voor dit eindwerk en worden daarom niet verder uitgewerkt. Zoals op afbeelding 2.3 is te zien, kunnen we de datalink laag nog in twee grote delen gaan opsplitsen: MAC - medium access control LLC - logical link control 2.4.3.1 MAC – Medium Access Control
Als eerste sublaag van de datalink laag gaan we het MAC van naderbij bekijken. Het MAC voorziet de adressering en toegangscontrole tot de kanalen, om het zo mogelijk te maken voor verschillende nodes om te communiceren binnen een multipunt netwerk, zoals een LAN of MAN. Het MAC houdt zich dus bezig met de individuele bits en de toegang op de bus.
15
De MAC-laag kunnen we ook gaan omschrijven als interface, regelaar tussen de LLC-laag en laag één, de fysische laag. 2.4.3.1.1
NRZ-encoding en bitstuffing
De berichten die over een CAN-bus worden gestuurd, kunnen we eigenlijk gaan bekijken als een geregelde stroom van bits. Natuurlijk moeten deze bits op een bepaalde manier op de bus kunnen geplaatst worden. Dit gebeurd via de NRZ-codering en ook met bitstuffing. NRZ-encoding De modulatie van de CAN-bus is eenvoudig uit te leggen. De CAN maakt gebruik van een NRZ-encoding, ofwel non-return-to-zero. Dit wil zeggen dat er geen modulatie plaatsvindt, maar iedere logische 0 of 1 effectief als 0 of 1 wordt verstuurd. Dit betekent dus dat er gedurende 1 bittijd slecht 2 toestanden kunnen voorkomen: recessief of dominant. Het andere geval zou RZ-encodering zijn. Bij RZ ofwel return-to-zero komen er 3 toestanden voor: 0, 1 of rusttoestand.
Figuur 2-7 NRZ
Bitstuffing Naast de NRZ-encodering, spreken we bij CAN ook van een asynchroon protocol. Dit geeft als resultaat dat er op de boodschap een synchroniseren moet gebeuren. Vooral bij langere boodschappen is dit absoluut noodzakelijk. De NRZ-encodering zorgde er dus voor dat niet in elke bit een stijgende of dalende flank voorkomt. Het is dus perfect mogelijk dat de bus zich een lange tijd in de zelfde toestand blijft bevinden. Wanneer er echter een heleboel bits met eenzelfde polariteit na elkaar verstuurd worden, zijn er te weinig flanken om de CAN-modules te gaan op synchroniseren. Om dit op te lossen wordt er bitstuffing toegepast. Bitstuffing houdt in dat er na 5 opeenvolgende dezelfde bits (logisch 1 of 0), een complementaire bit wordt toegevoegd aan de zendzijde. Deze toegevoegde bit, die geen informatiebezit, noemen we een stuffbit. Deze stuffbit wordt er dan aan de ontvangstzijde door de ontvanger terug uitgefilterd.
16
Figuur 2-8 Bitstuffing
Op de afbeelding zien we dus dat er een logische ‘1’ wordt toegevoegd na vijf maal een logische 0 gedetecteerd te hebben. Stellen we deze afbeelding voor in bits, komen we uit bij het volgend voorbeeld: Originele datastroom
101000000000011111
Stuffed bitstroom
1010000010000011111101
Tabel 2-3 Bitstuffing
2.4.3.1.2
Busarbitrage
Naast de adressering en codering van de data, zorgt het MAC ook voor de toegangscontrole op de bus. Een CAN-node mag maar beginnen zenden wanneer de bus vrij is. Echter wanneer de bus bezet is of er twee nodes op hetzelfde moment beginnen te zenden, treedt er een probleem op. Daarom maken we gebruik van prioriteiten van de nodes. Diegene met de hoogste prioriteit krijgt automatisch voorrang en gooit de andere node met zijn data van de bus. Schematisch kunnen we de busarbitrage als volgt gaan voorstellen: Node A
Node B
1
Stuurt bij begin van het bericht een 0
Stuurt bij begin van het bericht een 0
2
Stuurt bij begin van het bericht een 0 Leest de data op de bus Detecteert een 0 Stuurt zijn data op de bus
Stuurt bij begin van het bericht een 0 Leest de data op de bus Detecteert een 0 Stuurt zijn data op de bus
3
Stuurt bij begin van het bericht een 1 Leest de data op de bus Detecteert een 0 Detecteert conflict ( = bezette bus) en stopt het zenden
Stuurt bij begin van het bericht een 0 Leest de data op de bus Detecteert een 0 Stuurt zijn data op de bus
4
Leest de bus uit Wacht tot bus leeg is
Blijft zolang sturen als nodig
Tabel 2-4 Busarbitrage
17
We kunnen dit ook in een afbeelding gaan weergeven, dan geeft dit het volgende resultaat.
Figuur 2-9 Busarbitrage
2.4.3.2 LLC – Logical Link Control
Als we een CAN-bericht gaan bekijken zien we dat dit in een vast formaat wordt verstuurd. De volledige boodschap noemen we ook wel een frame. De LLC zorgt voor de samenstelling van het volledige bericht. Als we naderbij kijken naar de soorten frames, kunnen we er vier grote onderdelen gaan uithalen: Data frame: Dit is een bericht waarin de actuele data zich bevindt. Remote frame: Dit is een frame zonder data. Dit frame verzoekt andere CAN-modules om data te sturen met daarbij de bijpassende identifier. Error frame: Dit frame wordt op de bus geplaatst wanneer een CAN-module een fout heeft waargenomen. Overload frame: Dit frame wordt verstuurd om meer tijd te laten tussen de verschillende data frames en om zo overloading van de bus tegen te gaan. 2.4.3.2.1
Data frame
Het data frame is het enige frame dat de eigenlijke data kan bevatten. We kunnen twee soorten data frames onderscheiden:
Base frame format: 11 identifier bits Extended frame format: 29 identifier bits
18
Base frame format
Extended frame format
Tabel 2-5 Data frame
Het verschil tussen de twee soorten data frames ligt dus enkel in de lengte van de identifier. Bij de ene telt deze 11 bits, bij de andere 29. De node die ontvangt weet welk type hij heeft ontvangen aan de hand van de SRR en IDE. In de volgende tabel wordt de uitleg gegeven over elk onderdeel van het data frame. Eerst volgt deze voor het ‘base frame format’, in de daarop volgende tabel voor een ‘extended frame format’. Base frame format Naam van het veld
Lengte in bits
Uitleg
Start of frame (SOF)
1
Startbit
Identifier
11
Adres van het bericht
Remote Transmission Request (RTR)
1
Data frame = ‘0’ Remote frame = ‘1’ Prioriteit geven van data frame t.o. remote frame
Identifier extension bit (IDE)
1
Based frame = ‘0’ Extended frame = ‘0’
Reserved bit (RB0)
1
Dominant = ‘0’
Data length code (DLC3)
3
De lengte van het dataveld
Data length code (DLC0)
1
De lengte van het dataveld
8
De werkelijke data (0-8 bytes)
15
Controleren van correcte aankomst data
Arbitration field
Controle field
Data field Data field CRC field Cyclic redundancy code (CRC)
19
Cyclic redundancy code delimiter (CRC del)
1
Recessief = ‘1’
Acknowledge slot (ACK slot Bit)
1
Bevestigen van goede ontvangst Zender stuurt ‘1’, wanneer CRC positief is, ontvanger maakt ‘0’
Acknowledge delimiter (ACK del)
1
Recessief = ‘1’
End of frame (EOF)
7
Recessief = ‘1’
Interframe space (IFS)
3
Recessief = ‘1’
Acknowledge field
End field
Tabel 2-6 Base frame format
Op onderstaande afbeelding kunt u een standaard data frame zien.
Figuur 2-10 Base frame format
Extended frame format Naam van het veld
Lengte in bits
Uitleg
Start of frame (SOF)
1
Startbit
Identifier A
11
Adres van het bericht
Substitute Remote Request (SRR)
1
Recessief = ‘1’
Identifier extension bit (IDE)
1
Based frame = ‘0’ Extended frame = ‘0’
Identifier B
18
Adres van het bericht
Remote Transmission Request (RTR)
1
Data frame = ‘0’ Remote frame = ‘1’ Prioriteit geven van data frame tgo remote frame
Arbitration field
20
Controle field Reserved bit (RB1)
1
Dominant = ‘0’
Reserved bit (RB0)
1
Dominant = ‘0’
Data length code (DLC3)
3
De lengte van het dataveld
Data length code (DLC0)
1
De lengte van het dataveld
8
De werkelijke data (0-8 bytes)
Cyclic redundancy code (CRC)
15
Controleren van correcte aankomst data
Cyclic redundancy code delimiter (CRC del)
1
Recessief = ‘1’
Acknowledge slot (ACK slot Bit)
1
Bevestigen van goede ontvangst Zender stuurt ‘1’, wanneer CRC positief is, ontvanger maakt ‘0’
Acknowledge delimiter (ACK del)
1
Recessief = ‘1’
End of frame (EOF)
7
Recessief = ‘1’
Interframe space (IFS)
3
Recessief = ‘1’
Data field Data field CRC field
Acknowledge field
End field
Tabel 2-7 Extended frame format
Op onderstaande afbeeldingen ziet u het verschil tussen de velden en in lengte van de twee soorten frames.
Figuur 2-11 Verschil lengte Abitration field
21
2.4.3.2.2
Remote frame
Het remote frame wordt gebruikt door de ontvanger om aan de zender het verzoek te doen om data te zenden. Een remote frame bevat 6 velden: Start of frame field Arbitration field Control field CRC field ACK field End of frame field Van een remote frame kunnen we dus zeggen dat het gelijk is aan een data frame, uitgezonderd dat het geen data bevat. 2.4.3.2.3
Error frame
Error frames worden gegenereerd en verzonden door de CAN hardware en worden gebruikt om aan te duiden wanneer een fout is opgetreden tijdens het zenden. Een error frame bestaat uit twee onderdelen: Error vlag o Active flag = 6 dominante bits o Passieve flag = 6 recessieve bits Error delimiter = 8 recessieve bits Verder wordt er ook nog een error counter bij gehouden. Deze wordt nooit groter dan 127 en zorgt er zo voor dat één node niet de hele bus kan blokkeren. Wanneer de teller 127 overschrijdt, gaat de node over naar error-passief mode en zet daarbij geen foutboodschappen. 2.4.3.2.4
Overload frame
Het overload frame wordt gebruikt door het ontvangende deel om aan te tonen dat het nog niet klaar is om bepaalde data te kunnen ontvangen van op de bus. Het bestaat net als een error frame uit twee delen: Overload flag = 6 dominante bits Overload delimiter = 8 recessive bits Zowel de overload flag als delimiter hebben dezelfde structuur zoals respectievelijk de error flag en delimiter.
2.5 CAN connectoren De meest gebruikte (en aanbevolen) is de 9-pins connector. Deze is bepaald door de CIA standaard DS-102. Deze standaard vormt de “facto” standaard voor de CAN connectors. Er zijn echter nog vele andere soorten connectoren op de markt, maar we gaan enkel deze verder uitwerken omdat hij de belangrijkste is en we deze vorm ook gaan gebruiken in het vervolg van het eindwerk.
22
2.5.1
9-pin D-Sub connector
Op onderstaande afbeelding ziet u de mannelijke en vrouwelijke connector van een 9-pins connector.
Figuur 2-12 9-pin D-sub connector
Voor de volledigheid van het overzicht worden de pinaansluitingen hier nog eens herhaald: D-Sub Pin
Naam
Beschrijving
1
No connection
---
2
CAN_L
CAN_L bus line (dominant low)
3
CAN_GND / V-
CAN Ground
4
No connection
5
(CAN_SHLD)
Optie: CAN Shield
6
(GND / V-)
Optie: Ground
7
CAN_H
CAN_H bus line (dominant high)
8
No connection
9
(CAN_V+)
---
--Optie: CAN externe positieve voeding
Tabel 2-8 Pin lay-out D-sub
23
3 SAE J1939 De SAE J1939 is een CAN Higher Layer Protocol die werd ontwikkeld door SAE. SAE staat voor Society of Automotive Engineers. Het is eigenlijk de opvolger van eerdere ontwikkelingen, die reeds vroeger werden vastgelegd in standaarden zoals J1708/J1587 of J1922. De SAE J1939 is dus een uitbreiding op het CAN-protocol en wordt omschreven als de standaard voor in de vrachtwagen- en busindustrie. Een aantal bedrijven sloegen de handen in elkaar voor de ontwikkeling van een product dit de communicatie ging vereenvoudigen. Als resultaat kwam men uit bij de zogenaamde ECU’s of Electronic Control Units. Deze ECU’s worden binnen in een vrachtwagen geïntegreerd om zo deel uit te maken van de totale besturing in de vrachtwagen. Het J1939 protocol zorgt er op zijn beurt voor dat alle ECU’s kunnen communiceren met elkaar en worden aangesloten op een netwerk.
3.1 CAN - J1939 Om de communicatie en compatibiliteit tussen de verschillende protocollen optimaal te houden, moest er gezocht worden op een manier om het J1708 en J1587 protocol compatibel te maken. Daardoor was er voor het J1939 protocol een uitbreiding nodig van de identifier van een CAN-bericht. Met deze uitbreiding komen we tot de ‘extended’ versie van een CAN-bericht. Zoals reeds in het vorig hoofdstuk al vermeld werd heeft deze een 29 bit identifier. In J1939 maakt men dus enkel gebruik van deze 29 bit identifier. Andere eigenschappen van het J1939 vind u in de volgende tabel. Eigenschap Baudrate
250 kbaud
Bandbreedte
1850 CAN-berichten / sec
Buslengte
Max 40 m
Lengte datapakket
8 bytes
Adres regeling
Belangrijke nodes: vast adres Andere nodes: claimen van adres
Tabel 3-1 Eigenschappen J1939
3.2 OSI-model De J1939 standaard definieert vijf lagen in het OSI-model. Uit het vorige punt hebben we onthouden dat J1939 een uitbreiding was op het CAN-protocol en dat blijkt ook uit de lagen die worden gedefinieerd. Naast de twee lagen die CAN reeds beschrijft, zijnde de fysieke en datalink laag, worden ook de netwerk-, transport- en applicatielaag verder uitgewerkt.
24
Applicatie laag
SAE J1939/71 SAE J1939/73 SAE J1939/75
Presentatie laag Sessie laag Transport laag
SAE J1939/21
Netwerk laag
SAE J1939/31
Datalink laag
SAE J1939/21
Fysische laag
SAE J1939/11 SAE J1939/13 SAE J1939/15
SAE J1939/01 SAE J1939/81
Tabel 3-2 J1939 in OSI-model
3.3 Identifier Bij het naderbij bekijken van het protocol hebben we dus gemerkt dat er enkel gebruik wordt gemaakt van een ‘extended’ identifier. Deze identifier van 29 bits splitst men op in vijf grote delen.
Figuur 3-1 Opbouw identifier
3-bit priority: prioriteit geven aan een boodschap 1-bit reserved 1-bit data page 16-bit PGN: 8-bit PDU Format + 8-bit PDU Specific 8-bit Source address: broninfo
25
3.3.1
3-bit priority
Het prioriteitsveld wordt toegepast om een bepaalde prioriteit te gaan koppelen aan een welbepaalde boodschap. Zo kan deze boodschap worden geklasseerd als heel belangrijk of niet belangrijk. Hierdoor krijgt bijvoorbeeld een kritieke fout op de remmen voorrang op het feit dat een lampje van de binnenverlichting defect is. Om de prioriteit te gaan aangeven, maakt men gebruik van drie bits. Hierdoor lopen de prioriteiten van nul tot en met zeven, met nul als hoogste prioriteit. De reden waarom nul de hoogste voorrang heeft is omdat deze wordt opgebouwd uit drie dominante bits. Prioriteitslevel
Bit status
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
Tabel 3-3 Prioriteitsniveau
3.3.2
1-bit reserved
Deze bit werd door SAE gereserveerd voor toekomstig gebruik en uitbreiding van het protocol. De bit wordt standaard op nul gezet en biedt de mogelijkheid om in de toekomst het aantal PGN’s te gaan verdubbelen. 3.3.3
1-bit data page
Deze bit dient als keuze selectie voor de PDU (Protocol Data Unit) Format (PF) field. Standaard bevind deze bit zich op ‘0’, waardoor hij naar ‘page 0’ verwijst. 3.3.4
16-bit PGN
Het 16-bit PGN-veld wordt zoals op afbeelding 3.1 te zien is opgesplitst in 2 delen, zijnde de PDU Format (PF) en de PDU Specific (PS).
26
3.3.4.1 PDU Format (PF)
PF is een 8-bits veld die beslist op de boodschap geadresseerd is of als ‘broadcast message’ wordt uitgestuurd. PDU1-Format: ‘destination address message’ PDU2-Format: ‘broadcast message’ Hoe de keuze bepaald wordt tussen PDU-1 en PDU-2 hangt af van de status van het PF-veld. Als de waarde hiervan tussen 0 en 239 ligt spreken we van een ‘destination address message’. In dit geval bevat de PS het adres van de ontvanger en wordt de boodschap enkel naar de bestemde ontvanger gestuurd. In het andere geval, als de waarde dus niet tussen 0 en 239 ligt, valt de waarde tussen de grenzen 240 en 254. In dit geval spreekt men dus van een ‘broadcast message’. Hierbij bevat het PS-veld een ‘Group Extension’. 3.3.5
8-bit Source address
Het laatste veld is het adresveld. In dit veld wordt het adres van de zender bijgehouden door 8 bits. Dit adres is uniek en kan dus niet door twee verschillende zenders gebruikt worden. 3.3.6
Voorbeeld
In onderstaande tabel werken we een voorbeeld van een identifier uit. We splitsen de ontvangen code uit over de delen van het PGN. We ontvangen de identifier ‘00001100111100000000010011101110’. We weten ook dat de code voor de identifier dus gelijk is aan 0x0CF004EE. Veld
---
P
R
DP
0x0C Binair
000
decimaal
PF
PS
SA
0xF0
0x04
0xEE
001
0
0
11110000
00000100
11101110
1
0
0
240
4
238
Tabel 3-4 Voorbeeld identifier
Uit deze tabel kunnen we verschillende zaken gaan afleiden. Dit wordt weergegeven in de onderstaande tabel. Gegeven
Waarde
uitleg
Prioriteitslevel
1
---
Page level
Page 0
R en DP zijn gelijk aan 0
PF-veld
Broadcast message
PF > 240
PGN
61444
PF + PS = 1111000000000100
Afzender
238
---
Tabel 3-5 Uitwerking identifier
27
3.4 Page Group Number (PGN) Aan de hand van de PGN kan er dus bepaald worden wie de zender van de data op de bus is. Hiervoor worden een groot aantal PGN’s vooraf gedefinieerd. Zo kan men bij verschillende fabrikanten toch terug vinden wie er aan het zenden is op de bus. Helaas dekt het aantal vooraf gedefinieerde PGN’s niet de volledige lading, en zijn er nog heel wat die fabrieksafhankelijk zijn en dus niet worden vrijgegeven door de fabrikanten. We nemen terug dezelfde identifier als in het vorige voorbeeld, zijnde ‘00001100111100000000010011101110’. Daarmee stond een PGN gelijk van 61444. Wanneer we deze PGN gaan opzoeken in de documentatie van SAE staat dit gelijk aan ‘EEC1’. 3.4.1
EEC1 – Electronic Engine Controller 1
Figuur 3-2 Electronic Engine Controller 1
Uit de bovenstaande afbeelding kunnen we veel informatie gaan halen. Onder andere de volledige opbouw van de PGN, de invulling van de data velden, data lengte enz. Over de invulling van de data velden bestaat er nog meer informatie. Naast de startpositie en lengte van de parameter, wordt ook de uitleg en een SPN-nummer weergegeven. Dit nummer geeft de gebruiker meer informatie over wat de parameter precies inhoudt. SPN staat overigens voor ‘Suspect Parameter Number’.
28
3.5 SPN – Suspect Parameter Number
Figuur 3-3 SPN 899 - Engine Torque Mode
Indien de datasheets worden geraadpleegd, kan er bij het SPN-nummer 899 terug vinden wat deze betekent. De parameter naam werd al weergegeven bij PGN, maar verder uitleg over de specifieke toedracht van de parameter wordt hier pas weergegeven. Uit de eerste drie gegevens, ‘data length’, ‘resolution’ en ‘data range’ kunnen we het volgende afleiden. Bit
Decimale waarde
0000
0
0001
1
---
---
1110
14
1111
15
Tabel 3-6 Data indeling
29
4 PC toepassing via LabVIEW 4.1 Inleiding Zoals eerder al vermeld kan het eindwerk in twee grote onderdelen worden opgesplitst op vlak van de praktische uitwerking. Het programmeren van de CAN-bus moest praktisch geregeld worden voor de gewenste toepassingen. Deze toepassingen zijn het testen van een motor op een testbank binnen het bedrijf, de andere toepassing is het gebruiken en aandrijven van de motor als stand-alone toepassing. Voor de eerste toepassing werd gekozen voor het programmeren en sturen van de CAN met het programma LabVIEW. De keuze hiervoor viel omdat er hiermee al ervaring was vanuit de opleiding en er ook al onderzoek was gedaan met dit programma. Naast LabVIEW kozen we voor de stand-alone toepassing voor een beknopte PIC-sturing. Om deze microchip te programmeren werd geopteerd om met MikroC te programmeren. Verdere informatie over dit onderdeel vindt u in het volgende hoofdstuk.
4.2 Werkmodule – NI USB-8473 Om de communicatie tussen de pc en de stuurdoos van de motor te gaan realiseren, hadden we het liefst gebruik gemaakt van een bestaande werkmodule. Die werkmodule of interface moest natuurlijk makkelijk zijn in gebruik. Dit zorgde ook dat er bepaalde eisen moesten gesteld worden die voldeden aan onze wensen. De bedoeling was vooreerst een module te vinden die makkelijk compatibel te maken was met een computer, bijvoorbeeld via een USB of seriële aansluiting. Een andere noodzakelijkheid was dat de module compatibel zou zijn met High Speed CAN, omdat dit de gang van zaken is op het netwerk van een vrachtwagen. Door al deze kenmerken samen te voegen kwam er een goed bruikbaar resultaat uit de bus: de USB module van National Instruments. De NI USB-8473 werd speciaal ontwikkeld door NI voor het sturen en lezen op een CAN-bus. Ook aan onze andere eisen werd goed voldaan. Zo is de module aan te sluiten via USB op de computer, en zijn er via LabVIEW programma’s beschikbaar die het uitlezen van de bus enorm eenvoudig maken. Op de afbeelding links worden beide USB-8473 modules weergegeven. Links bevindt zich de gewone module, aan de rechterkant staat de USB-8473s. Deze module heeft als extra dat er in deze module ook hardware synchronisatie plaats vind. Daardoor kost deze ook ietwat meer en omdat dit niet noodzakelijk is voor de goede werking van het eindwerk wordt de keuze voor de linkse module behouden. Figuur 4-1 NI USB-8473
30
4.2.1
Eigenschappen
In de hierop volgende tabel worden de eigenschappen van de gekozen module weergegeven in een mooi overzicht. Algemeen Product Name
USB-8473
Product Family
CAN
Form Factor
USB
Voltage
5 VDC
Current
250 mA
Source
Internally Powered
Isolation Type
CAN Bus-PC Isolation
API Support
NI-CAN Frame API (Limited)
Port Information Number of Ports
1
Physical Layer
High-Speed
Max Baud Rate
1 Mbits/s
Min Baud Rate
40 kbits/s
Termination
External
Transceiver
Philips TJA1041, Built-in
Special Features Hardware Synchronization
No
Hardware Timestamping
Yes
Timestamp Resolution
1 us
Remote Frame Support
No
Advanced Mode Support
Listen-Only Mode , Sleep/Wakeup Mode , Self-Reception (Echo) Mode
Physical Specifications I/O Connector
9-pin D-Sub (DB-9)
Tabel 4-1 Eigenschappen USB-8473 module
31
4.2.2
Pin lay-out
Bij de fysische eigenschappen wordt er gebruik gemaakt van een I/O connector. In dit geval is dit een 9-pin D-Sub, ook wel een DB-9 genoemd. Bij het raadplegen van de datasheet wordt de opbouw en pin lay-out weergegeven. Op de afbeelding aan de linkerkant ziet u de mannelijke DB-9 connector. In onderstaande tabel worden de pinnen met hun bij behorende functie weergegeven.
Figuur 4-2 Pin lay-out
D-Sub Pin
Naam
Beschrijving
1
No connection
---
2
CAN_L
CAN_L bus line
3
V-
CAN reference ground
4
No connection
5
(Shield)
Optional CAN Shield
6
(V-)
Optional CAN reference ground
7
CAN_H
CAN_H bus line
8
No connection
9
(V+)
---
--Optional CAN power supply if bus power or external VBAT is required
Tabel 4-2 Pin lay-out
De volledige bekabeling tussen motorblok en pc bij een bepaald type motor, kan verder in dit eindwerk terug gevonden worden bij de desbetreffende hoofdstukken.
4.3 Opbouw van het programma Na de keuze voor de module lag het voor de hand dat de programmering van de CAN-bus via LabVIEW zou gaan gebeuren. Voor het genereren van de boodschappen moesten we een programma gaan schrijven die dit over de USB-module zou gaan sturen. In oudere versies van LabVIEW was er nog geen sprake van CAN, maar sinds de versie 8.6 komt dit stuk van bus netwerken erbij. Als we willen gaan sturen over de USB-module moeten we wel gaan werken met de ingebouwde methodes van NI, namelijk het Frame API.
32
Als we de sturing van naderbij bekijken, kunnen we enkele grote blokken gaan opsplitsen waarin we de opbouw doen van de communicatie. Configureren van de interface Openen van de interface Data aanmaken Schrijven van de data op de bus Afsluiten van de interface Deze delen worden nu een voor een afzonderlijk besproken. 4.3.1
Configureren van de interface
Voor het configureren van de interface maken we gebruik van het sub VI ‘ncConfigCANNet’. De bedoeling van dit blok is dus het configureren van het CAN netwerk interface vooraleer het te openen. Dit gebeurt eenmalig bij het opstarten van het programma.
Figuur 4-3 CConfig
Bij het bekijken van het icoon ‘CConfig’ zien we dat er hieraan drie ingangen worden gevraagd en één uitgang wordt voorzien. Ingangen: ObjName CAN Network Interface Config Error in Uitgangen: Error out Het eerste dat we kunnen gaan verwaarlozen zijn de error lijnen. Deze zijn niet noodzakelijk voor een goede werking, maar kunnen we als extra hulp worden aangesloten. Ze geven bij een fout in het programma (configureren, schrijven, …) een foutcode weer waarmee de gebruiker iets meer weet over de fout. De overige twee parameters zijn wel belangrijk voor ons. Ten eerste is er ‘ObjName’. Hieraan wordt een string gehangen met de naam (verificatie) van de gewenste interface. Standaard staat deze op ‘CAN0’ en zo mag die ook blijven staan voor ons. Indien er gebruik wordt gemaakt van meerdere interfaces moet er dus wel op gelet worden dat hier de juiste interface wordt aangesproken. Controle hierop kan altijd gebeuren via de MAX-explorer die intern mee wordt geleverd met LabVIEW.
Figuur 4-4 Measurement & Automation Explorer
33
Ten tweede vinden we de parameter ‘CAN Network Interface Config’ terug. Bij deze parameter worden verschillende instellingen ingevoerd. Deze instellingen worden weergegeven in de controller die je op het ‘front panel’ van LabVIEW terug vind. Op de controller worden er in totaal acht parameters toegevoegd. Deze worden intern verbonden. Voor ons project gelden vooral de eerste twee parameters. Het configureren van het netwerk begint wanneer deze de communicatie opent, zoals de eerste parameter aangeeft. Naast de eerste is eigenlijk vooral de tweede parameter heel belangrijk. Bij de J1939 is er een verplichte Baud Rate van 250.000, enkel op deze waarde kan er communicatie worden gemaakt met de CAN-bus. Figuur 4-5 CAN Network Interface Config De overige parameters staan volgens de standaardnormen ingesteld en laten we gewoon zoals ze zijn. Deze hebben geen grote rol of invloed op de werking van de CAN, en mogen dus als standaard blijven staan. 4.3.2
Openen van de interface
Nadat de configuratie gebeurd is, moeten we de module gaan open zetten voor communicatie. Wanneer dit gebeurt is, kan er dan dus verzonden of ontvangen worden. Net zoals het configureren van de interface gebeurt, moet dit maar éénmaal gebeuren bij de opstart.
Figuur 4-6 Copen
Net als bij de configuratie kunnen we hier de error lijnen gaan verwaarlozen. Dat levert ons nog twee andere parameters op. ObjName ObjHandle out De eerste parameter was al ingesteld bij de configuratie en moeten we dus op letten dat deze hier gelijk is. Meestal wordt de instelling voor de configuratie doorgelust naar de ‘Copen’ ingang. ‘ObjHandle out’ zorgt ervoor de dat informatie die aangemaakt is bij het configureren en openen van de interface wordt doorgegeven naar het overige deel van het programma. Zo kan er bijvoorbeeld bij het sluiten van de communicatie gebruik worden gemaakt van dezelfde instellingen.
34
4.3.3
Data aanmaken
Bij de communicatie van de CAN moet er natuurlijk bepaalde data worden toegevoegd op de bus, data die bestemd is voor een welbepaalde ontvanger of als broadcast message. Verdere uitwerking van het aanmaken van de data word in paragraaf 4.4 gegeven. 4.3.4
Schrijven van de data op de bus
Nadat de configuratie, het openen van de interface gebeurd is, kunnen we de aangemaakte data effectief gaan schrijven op de bus. De aangemaakte data wordt dus op de bus gemaakt klaar om verstuurd te worden over de 8473-module.
Figuur 4-7 CWrite
Bij het schrijven van de data moet er met meerdere zaken rekening worden gehouden. Enkele instellingen werden echter in het verleden al gedaan zoals de ObjHandle in. (zie referentie 13) Deze parameter wordt gehaald vanuit het openen van de interface. Voor de overige parameters wordt de uitleg in de onderstaande tabel gegeven. Parameter
Beschrijving
DataLength
Lengte van de boodschap in bytes
ObjHandle in
Instellingen van de configuratie en het openen van de interface
Data
De eigenlijke data / boodschap
IsRemote
Deze byte heeft waarde 0 of 1, bij 1 gaat het om een remote frame
Error in
Foutafhandeling, optioneel
ArbitrationId
Aan deze ingang wordt de identifier gehangen, duidt dus aan waar de boodschap naar toe gaat
ObjHandle out
Instellingen van de configuratie en het openen van de interface doorgeven aan verdere controls
Error out
Foutafhandeling, optioneel
Tabel 4-3 parameters CWrite
35
4.3.5
Afsluiten van de interface
Nadat de data op de bus geschreven is, moet de interface nog worden afgesloten. Dit volgt hetzelfde principe als het openen van de interface. De bus wordt correct afgesloten via de instellingen die doorheen het hele programma worden meegenomen met de ‘ObjHandle’ parameter.
Figuur 4-8 CClose
4.4 Praktische uitwerking Voor de praktische uitwerking in LabVIEW wordt een volledig programma uitgelegd. Voor die uitleg wordt gebruik gemaakt van het programma dat werd geschreven voor de VOLVO FH13. 4.4.1
Front panel
Het front panel staat gelijk aan de gebruikersinterface. Hiermee zal de gebruiker van het programma de sturing doen om gas te geven op de welbepaalde motor. Software ergonomie is tegenwoordig een nieuw begrip en wordt steeds belangrijker. De doelstelling om een eenvoudig en duidelijk programma te maken werd hierin dus ook verwerkt.
Figuur 4-9 Front panel VOLVO FH13
36
4.4.1.1 Fotopage
Aan de linkerzijde van het front paneel wordt het type vrachtwagen weergegeven. Deze foto dient louter als informatie voor de gebruiker. 4.4.1.2 Startpage
Op de startpagina wordt een handleiding meegegeven aan de gebruiker hoe hij de opstart moet doen om de motor te kunnen testen. Centraal op de startpagina kan hij het stappenplan mee volgen, dat aan de rechterkant ondersteund wordt door nuttige foto’s. Deze foto’s worden bedient via de slider rechtsboven, die kan worden bewogen en zo de bijpassende op het fotokader laat verschijnen. 4.4.1.3 Workpage
Figuur 4-10 Workpage VOLVO FH13
Op de werkpagina wordt de eigenlijke sturing van het gaspedaal gedaan. Hierbij is er opnieuw gedacht aan de eenvoudigheid in gebruik tijdens het testen. In de onderstaande tabel wordt het workpage volledig uitgelegd. Zijde
Beschrijving
Links
CAN Network Interface Config De instellingen voor het configureren van de interface
Midden
Stappenplan voor het gebruik van de sturing
Rechts
Schuifbalk voor het bedienen van het gaspedaal
Onder
Wijzer die het toerental weergeeft
Tabel 4-4 Uitleg workpage
37
4.4.2
Block diagram
Figuur 4-11 Volledig block diagram
4.4.2.1 Slideshow en tabbladen
In dit onderdeel van het programma wordt de sturing van de slideshow gemaakt. Aan de hand van een getalwaarde wordt gekozen welke foto er wordt weergegeven.
Figuur 4-12 Slideshow en tabcontrol
4.4.2.2 Configureren en openen van de interface
Figuur 4-13 CConfig - COpen
Zoals eerder al vermeld moet de interface geconfigureerd, geopend en gesloten worden. Dit doen we door de volgende controllers te gebruiken. Voor CConfig worden de nodige parameters ingesteld via de Interface configurator, voor zowel CConfig als COpen moet het kanaal ingesteld worden waarop de sturing moet gebeuren. Dit gebeurt aan de hand van een string die aan de bijbehorende ingang wordt gekoppeld.
38
4.4.2.3 Data aanmaken
Bij het aanmaken van de data om op de bus te plaatsen, maken we gebruik van enkele vaste data en twee regelbare. Daarnaast wordt er ook de identifier bepaald waarmee de data wordt verbonden. De zes vaste datawaarden worden via een numerieke constante ingelezen in het datablok. De overige twee datawaarden zijn niet constant en hangen af van de toestand van het gaspedaal. De eerste waarde die regelbaar is, is de Figuur 4-14 Data waarde van de slider. De slider geeft een numerieke waarde en schrijft deze naar het gaspedaalblok. Daarnaast moet er ook bepaald worden of het gaspedaal in stationaire toestand staat of ingedrukt is. Deze twee toestanden worden dus beide in het gaspedaalblok gelezen, en worden als twee numerieke waarden naar buiten gestuurd. Samen met de zes constante waarden vormen ze de acht databytes die het gaspedaal aansturen. Even belangrijk als de data is de identifier, de locatie waarheen de data moet verstuurd worden. Deze identifier wordt als numerieke constante ingelezen in het J1939 TX blok, wat we kunnen gaan vergelijken met CWrite. Dit gebeurt wel in hexadecimale waarde. Samen met de data en de ObjHandle out van Copen, vormen deze waarden de basis om het signaal op de bus te plaatsen en te versturen. 4.4.2.4 Afsluiten van de interface
Nadat alle data op de bus geplaatst is, kan de interface correct worden afgesloten. Dit doen we met dezelfde instellingen als de configuratie. Figuur 4-15 CClose
39
5 Stand-alone toepassing via MikroC 5.1 Inleiding Net zoals met de LabVIEW toepassing, willen we met onze stand-alone toepassing de motor gaan aandrijven. De bedoeling van de ontworpen module is niet echt voor het testen van de motoren bedoeld, maar wel om mee te leveren aan de klant indien hij dit wenst. Turbo’s Hoet gebruikt en verkoopt dus tweedehands motoren om een elektrogroep mee aan te drijven. Er moet ook voor dit soort toepassing de nodige elektronica aanwezig zijn om de motor goed aan te sturen. Het zou dus voor de gebruiker een pluspunt zijn om over een compact systeem te beschikken dat kan gebruikt worden om in te bouwen bij een generatorset.
5.2 Werkmodule Het opzet van de werkmodule is dat men met één module verschillende motoren kan aansturen. Dit zou het gebruik, voor de werknemer althans, aanzienlijk verbeteren in tegenstelling tot wanneer hij voor ieder ander type motor zijn PIC moet gaan herprogrammeren of een andere module moet aanschaffen. 5.2.1
Keuze motor
Zoals net vermeld is het voor de gebruiker de moeite waard dat hij verschillende motoren kan sturen met één module. Dit werd in het ontwerp in rekening gebracht en daarvoor werden drukknoppen toegevoegd. Iedere drukknop wordt dan gekoppeld aan een welbepaald type motor. 5.2.2
Visuele ondersteuning
Met het gebruiksgemak voor de gebruiker in gedachten, ondervonden we dat een visuele ondersteuning een echt pluspunt is voor het ontwerp. Het opzet van deze ondersteuning is dat de gebruiker effectief ziet wat hij aan het doen is. Zo zal hij onder andere te zien krijgen op een LCD display welke type motor hij selecteerde, maar ook de hoeveelheid gas die hij aan het geven is.
5.3 Hardware Voor de realisatie van de CAN-sturing wordt de module visueel opgesplitst in twee onderdelen: Microcontroller CAN-sturing
40
Als de opsplitsing gebeurt op het vlak van de sturing en opbouw van het signaal, onderscheiden we echter drie onderdelen: Microcontroller CAN-controller CAN-transceiver 5.3.1
Opbouw signaal
De microcontroller die we gebruiken kan algemeen omschreven worden als het brein in de schakeling. Hierin wordt alle verwerking gedaan van alle signalen die nodig zijn in de module. Deze microcontroller stuurt dan signalen uit, die worden opgevangen in de CAN-controller. Deze speelt als het ware vertaler voor de ontvangen signaal. Hij ‘vertaalt’ dus de digitale signalen naar de CAN-bus. Op zijn beurt zendt de CAN-controller die signalen terug uit naar de CAN-transceiver. De functie van deze transceiver is de signalen compatibel te maken voor de CAN-bus. Omdat een microcontroller zijn signalen uitstuurt op een 5V-niveau moet er hier een aanpassing worden gemaakt naar het CAN-niveau. Wanneer de opbouw van het signaal schematisch wordt voorgesteld, is de onderstaande afbeelding het resultaat.
Microcontroller
CAN-controller
•Digitaalsignaal
•5V signaal
CAN-transceiver •CAN signaal
CAN-bus motor •CAN-sigaal
Figuur 5-1 Schematische opbouw stand-alone controller
5.3.2
Keuze componenten
Op de vorige paragraaf wordt de sturing onderverdeeld in drie componenten. We kunnen dit echter ook verkrijgen door maar twee componenten te gaan gebruiken. Daarvoor moeten we dan wel de keuze voor de microcontroller goed afwegen. Er bestaan immers microcontrollers die intern een CAN-controller bevatten. In het ontwerp van de module viel de keuze op de gekoppelde structuur, deels om het resultaat compact te houden, anderzijds om de eenvoud en het overzicht te verbeteren. 5.3.2.1 PIC18F4680
De keuze voor de PIC van Microchip viel om verschillende redenen. Enerzijds is er de opgebouwde ervaring vanuit de schoolopleiding met het programmeren van soortgelijke PIC’s, anderzijds is deze PIC met ingebouwde CAN-controller uitermate geschikt voor onze doelstellingen. Het onderliggende blokschema van het 40-pins PIC wordt op de volgende pagina weergegeven.
41
Figuur 5-2 Blokschema PIC18F4680
42
5.3.2.1.1
Eigenschappen
Parameter
Waarde
Program Memory Type
Flash
Program Memory (KB)
64
CPU Speed (MIPS)
10
RAM Bytes
3,328
Data EEPROM (bytes)
1024
Digital Communication Peripherals
1-A/E/USART, 1-MSSP(SPI/I2C)
Capture/Compare/PWM Peripherals
1 CCP, 1 ECCP
Timers
1 x 8-bit, 3 x 16-bit
ADC
11 ch, 10-bit
Comparators
2
CAN
1 ECAN
Temperature Range (C)
-40 to 150
Operating Voltage Range (V)
2 to 5.5
Pin Count
40
Tabel 5-1 Eigenschappen PIC18F4680
Voor het ontwerp is het natuurlijk zeer belangrijk dat CAN-sturing aanwezig is, maar ook dat het programmeerbaar geheugen toch een redelijke grootte heeft. Hier is dit 64 kB, wat voldoende zou moeten zijn voor de gewenste toepassingen. 5.3.2.1.2
Pin lay-out
Figuur 5-3 Pin lay-out PIC18F4680 (40 pin)
43
De gebruikte PIC heeft een 40-pins design, waaronder klem 35 en 36 een belangrijke rol spelen. Deze zijn namelijk de CANRX en CANTX klemmen. Onderstaand design van diezelfde PIC is ook in de handel verkrijgbaar.
Figuur 5-4 Pin lay-out PIC18F4680 (44 pin)
5.3.2.2 MCP2551 I/P
De belangrijkste eisen voor de transceiver waren dat hij uiteraard compatibel was met de microcontroller, maar zeker ook dat hij het vrachtwagennetwerk ondersteunde. Dit netwerk werkt op 24V, de MCP2551 ondersteunt zowel 12 als 24V. De MCP2551 wordt in de schakeling ingebracht om de TTL niveaus van de microcontroller om te vormen in de benodigde spanningen op de bus. Deze omvorming staat gelijk aan de implementatie van de fysische laag van het OSI-model. Op de volgende pagina staat de afbeelding van het inwendig schema van het IC. Hierop zien we alle in- en uitgangen aangeduid, maar ook de interne werking. De belangrijkste onderdelen van de tranceiver zijn de drivertransistoren.
44
Figuur 5-5 Blokschema MCP2551
5.3.2.2.1
Eigenschappen
Supports 1 Mb/s operation Implements ISO-11898 standard physical layer requirements Suitable for 12V and 24V systems Externally-controlled slope for reduced RFI emissions Detection of ground fault (permanent dominant) on TXD input Power-on reset and voltage brown-out protection An unpowered node or brown-out event will not disturb the CAN bus Low current standby operation Protection against damage due to short-circuit conditions (positive or negative battery voltage) Protection against high-voltage transients Automatic thermal shutdown protection Up to 112 nodes can be connected High noise immunity due to differential bus implementation Temperature ranges: - Industrial (I): -40°C to +85°C - Extended (E): -40°C to +125°C
5.3.2.2.2
Pin lay-out
Figuur 5-6 Pin lay-out MCP2550
Op de pin lay-out is te zien dat klemmen 6 en 7 de beide CAN-niveaus bevatten.
45
5.3.3
Programmer
Om de gekozen PIC te gaan programmeren, moest er een zogenaamde programmer gebruikt worden. Op de markt zijn er verschillende vormen en manieren om microchips te gaan programmeren. De eerste keuze viel om de PIC extern te gaan programmeren en de programmer niet in de schakeling te verwerken. Het gebruik van een externe programmer vermindert de kans op fouten in de zelfgemaakte schakeling en geeft meteen een zekerheid over de kwaliteit van het programmeren. Daardoor vielen al enkele mogelijkheden weg, zoals de PICkit van Microchip. Na verder onderzoek konden enkele mogelijkheden naar voor worden geschoven: Velleman Kit VM134 Beeprog EasyPIC board Van alle kandidaten werden de eigenschappen, voor- en nadelen en de prijs/kwaliteitsverhoudingen naast elkaar gelegd. Door deze parameters af te wegen tegenover elkaar viel de keuze uiteindelijk op het nieuwe EasyPIC6 board van Mikroe. Van de voor- en nadelen wordt een overzicht gegeven. EasyPIC6 board
Compatibel voor PIC18F4680 Simpele en snelle programmering via USB Code makkelijk uitbreidbaar via hardware: ○ I/O ports ○ A/D converter ○ LCD display ○ Drukknoppen Veel voorbeeldcode Relatief goedkoop Ervaring met programmeren met oudere boards
Omvormen bestaande code Niet compatibel met C18
Voordelen
Nadelen
Tabel 5-2 Voor- en nadelen EasyPIC6
Het grote voordeel tijdens de ontwerpfase is dus dat men als ontwerper vele zaken meteen kan testen en het resultaat ervan kan zien. Zo kan men gebruik maken van de buttons om het LCD aan te sturen, LED's aansturen enz.
46
Figuur 5-7 EasyPIC6
5.3.4
Print ontwerp
Wanneer alle hardware gekozen was, kon er gestart worden met het ontwerp van een print. Dit ontwerp werd getekend met de hulp van het elektronisch programma Eagle 5.6.0. Dit programma is een uitstekende en betaalbare manier om printplaten te ontwerpen. Op het printontwerp vinden we de gekozen microcontroller en transceiver terug. Daarnaast ook een LCD display, een aantal drukknoppen en de potentiometer alias gaspedaal. 5.3.4.1 Schema
In onderstaande tabel worden alle componenten weergegeven. Omschrijving
Component nr
Microcontroller: PIC18F4680
-
Transceiver: MCP2511 Weerstand: 120Ω Pinhead
R9 JP1
47
LCD Display 2x16 Potentiometer: 10kΩ
R3
16 MHz kristal Condensatoren: 22pF
Q1 C1, C2
Ontkoppelcondensatoren: 100nF
C3, C5, C6
Master reset knop Condensator: 100nF Weerstand: 10kΩ
S1 C4 R2
Potentiometer: 5kΩ
R1
Keuze drukknopen Weerstanden: 1kΩ
S2, S3, S4, S5, S6 R4, R5, R6, R7, R8
Pinhead: spanning
JP2
Tabel 5-3 Componentenlijst print
Het volledige schema bevindt zich op de volgende pagina.
48
Figuur 5-8 Print ontwerp
49
5.4 Software De software voor de PIC wordt geschreven in MikroC. Deze variant van de klassieke C is goed gedocumenteerd door de makers van het EasyPIC board en zou een voordeel moeten bieden bij het ontwikkelen van de code. Tijdens het project van vorig jaar werd ook al enige ervaring opgebouwd wat de keuze hierop deed vallen. 5.4.1
A/D conversie
Als eerste wordt de A/D conversie besproken. Deze conversie dient ervoor om de aanwezige potentiometer in te lezen. Deze potentiometer staat symbool voor het gaspedaal. De uitvoer van de potentiometer wordt weergegeven op een LCD display. Hierop wordt in spanning, van 0 tot en met 5V, en in procenten, 0 tot 100%, weergegeven hoeveel de waarde van de potentiometer is. Die uitgelezen waarde wordt dan ook gebruikt om de hoeveelheid gas aan te duiden.
Figuur 5-9 Code voor ADC
5.4.2
LED blinking
Zoals reeds vermeld maken we gebruik van visualisatie voor de gebruiker. De bedoeling van deze visualisatie is het weergeven van de motorkeuze die de gebruiker gemaakt heeft. Hierbij wordt ondermeer gebruik gemaakt van een blinking functie. Deze functie laat achtereenvolgens tekst verschijnen, roept het delay aan, wist het display en roept opnieuw een delay aan. Door dit enkele malen te herhalen krijgen we een visueel effect van een knipperende tekst.
50
Figuur 5-10 Code voor LED's
5.4.3
Buttons
Voor het selecteren van de verschillende types motoren wordt er gebruik gemaakt van enkele buttons. Als er een button op de D-input rij wordt ingedrukt, controleren we of deze een logische ‘1’ stuurt. Om problemen met slechte contacten of een storing weg te filteren, roepen we een delay aan van 10 milliseconden en controleren daarna opnieuw of de bit nog steeds ‘1’ is. Indien dit het geval is, roepen we de functie aan die visueel weergeeft welk type geselecteerd wordt. Nadat deze visualisatie ten einde is, controleren we of de gebruiker wil gas geven via de ADC. Hierbij roepen we dan de ADC functie aan die in de vorige paragraaf werd besproken.
Figuur 5-11 Code voor buttons
51
5.4.4
CAN
Figuur 5-12 Code voor CAN-instellingen
In bovenstaande afbeelding worden alle instellingen gedaan voor de communicatie met het CAN-netwerk. We stellen ondermeer de identifier, ports en flags in. Op de onderstaande afbeelding wordt de communicatie opgezet met de juiste parameters. Daaronder wordt dan de data gevormd. De data bestaat uit acht data bits, die elk afzonderlijk moeten gedefinieerd worden. Als laatste wordt alles ingevuld in de CANWrite methode die in een oneindige lus gestopt word.
Figuur 5-13 Code voor CAN-sturing
52
5.4.5
Andere code
Naast deze vier onderdelen die al besproken werden, moet er onder andere ook nog het LCD geconfigureerd worden en op de juiste poort geplaatst worden. Dit wordt gedaan via het stuk onderstaande code.
Figuur 5-14 Code voor LCD
53
6 VOLVO FH13 6.1 Inleiding Binnen de afdeling van Parts & Revisie worden verschillende motoren aangekocht, nagezien en terug verkocht. Onder deze motoren kunnen we het grootste deel stoppen onder de merken Volvo en Scania. Daarnaast worden in kleine hoeveelheden ook nog merken als Mercedes, Renault en Iveco aangeworven. Het eerste type waar de testen op gebeurden, was het FH model van Volvo. Figuur 6-1 Volvo FH13
6.2 Geschiedenis van het model De Volvo FH13 of FH is een model van het Volvo concern. Het werd begin jaren ’90 in de handel gebracht en blijkt nu na al de jaren een heel succesvol type te zijn. FH, de naam van het model, staat voor ‘Forward control High cab’. Daarnaast verwijst het getal dat gekoppeld hangt aan FH naar de motorcapaciteit in liter. Het gekozen model heeft dus een motor inhoud van 13 liter. Volvo besliste om het getal 13 weg te laten bij dit model, omdat het getal voor veel mensen een teken van ongeluk is. Sinds het najaar van 2005 wordt een nieuwere zescilinder turbodieselmotor gebruikt. Deze wordt aan de gebruiker geleverd in vier vermogensvarianten en verschillende uitvoeringen. De nieuwe motor die in deze vrachtwagens wordt gebruikt krijgt de naam D13CXXX. Hierbij stelt XXX de vier vermogensvarianten voor. Op volgende afbeelding wordt de D13C420 voorgesteld met maximum koppel en vermogen als functie van het toerental.
54
De D13C levert dus een vermogen af van 420 pk. Deze motor is speciaal ontworpen voor lange afstanden transport. Verder beschikt deze motor over een hoog koppel bij lage toeren, wat hem naast een uitstekende trekkracht ook een zuinige motor oplevert.
Figuur 6-2 Eigenschappen D13C420
6.3 Inwendige CAN-bus Volvo rust dit model van vrachtwagen uit met een tweevoudig CAN-bus systeem. De bouwer maakt zowel gebruik van de J1939-bus als van de SAE J1708/J1587. J1708 is een standaard die werd ontworpen voor de seriële communicatie tussen ECU’s in de transportsector. J1587 wordt ook vooral toegepast voor het zware transport, maar is meer ontwikkeld als diagnose protocol. Deze laatste twee vormen worden in de huidige assemblage van vrachtwagens wel meestal vervangen door J1939. J1939 is dus de meer moderne versie en staat in de Volvo FH ook in voor de belangrijkste onderdelen. Het onderhoudt de communicatie tussen o.a. de motor, remmen, versnellingen maar ook het gaspedaal. Dit gaspedaal hangt gekoppeld aan een ECU. Deze zorgt ervoor dat de gaspedaalstand perfect wordt uitgelezen en omgezet wordt naar het busnetwerk.
6.4 Metingen op testbank Door reeds gedaan onderzoek zou het moeten mogelijk zijn om een motor te laten draaien op een testbank en werden de testen meteen begonnen op een dergelijke opstelling. 6.4.1
Aansluitklemmen en -fiche
Het eerste dat gedaan moest worden was de correcte fiche gaan zoeken waarop de sturing van CAN kan gebeuren. Na een korte zoektocht werd de correcte fiche op het motorblok terug gevonden.
55
Figuur 6-3 Motorfiche Volvo FH
Met de gedachte in het achterhoofd dat de werknemer van het stagebedrijf moest in staat zijn om de volledige opbouw eenvoudig te kunnen verwezenlijken, werd het idee om een vaste fiche te ontwerpen in realiteit omgezet. Het eerste idee was om zelf de fiche eigenhandig te gaan ontwerpen. De fiche zou in een metalen omhulsel gestopt worden en de noodzakelijke klemmen zouden vast in het omhulsel gezet worden. Op het eerste zicht goed haalbaar, maar hier en daar kwamen toch wat kleine problemen opzetten. Hoe zouden deze klemmen vast worden gezet? Of welke connectoren zouden passen voor deze toepassing?
Figuur 6-4 Basisontwerp connector
Daarom werd er rond gekeken of er geen andere oplossing beschikbaar was die beter haalbaar bleek. Die kwam er door inbreng van een tweede gelijk type motor. Op deze motor was de oude fiche niet verwijderd, waardoor deze kon gedemonteerd worden voor het gebruik van de stage. Na de demontage is er met behulp van een multimeter gekeken welke pinnen aan de fiche overeenkomen met de bijbehorende draad. We zochten op de fiche de vier noodzakelijke klemmen en draden en verwijderden alle overbodige materialen. Aan de + en – klem werden klemschoentjes bevestigd, voor de gemakkelijkheid om later spanning aan te sluiten. De CAN-H en L werden op hun beurt verbonden met een DB9 connector. Dit zorgt dat de USB-module van NI hierop eenvoudig en goed aangesloten kon worden. Het resultaat van de bekabeling is zichtbaar op de volgende foto.
56
Figuur 6-5 Ontworpen connector
De aansluiting van de klemmen wordt op de volgende afbeelding getoond. Hierop worden de gebruikte klemmen voorzien van hun benaming. De overige klemmen dienen voor relaiscontacten en dergelijke en zijn dus niet nodig voor de CAN-sturing.
Figuur 6-6 Pin lay-out ontworpen connector
6.4.2
Eerste meting
De testen werden aangevat met het uiterst eenvoudig programma ontworpen voor de thesis van het voorbije academiejaar. In dit programma moet enkel de baudrate, identifier en data worden ingesteld. De vragen die gesteld konden worden voor aanvang van de testen waren o.a. of de motor dezelfde identifier zou gebruiken als het D13A type. Of zou deze wel problemen geven door een sleutelbeveiliging? En in hoeverre kan dit verholpen worden? 6.4.2.1 Meetopstelling
Gebruik makend van het testprogramma werden de testen gestart. Eerst moest de stuurdoos onderspanning worden gezet. Daarnaast sluiten we ook de startmotor rechtstreeks aan op de spanning. Door dit te doen kunnen we de functie van de startsleutel omzeilen. De startmotor krijgt dan via een externe startbediening een stroompiek en zet zo de motor in gang.
57
Figuur 6-7 Aansluiting bekabeling
Naast het elektrische gedeelte van de opstelling, moet er ook aandacht worden gegeven aan de waterkoeling en het olie circuit. Deze beide zorgen dat de motor thermisch beveiligd wordt en niet oververhit geraakt. Als laatste moet de motor ook nog voorzien worden van brandstof. De volledige opstelling wordt op de volgende foto weergegeven.
Figuur 6-8 Volledige meetopstelling
Nu kon de motor bekrachtigd worden. Dit verliep succesvol, de motor sloeg aan en draait op een stationair toerental van zo’n 550 rpm. 6.4.2.2 PC-sturing
Na eerst de bekabeling tussen de zelfgemaakte fiche en de pc te verifiëren door de MAXexplorer, kon het LabVIEW werkblad geactiveerd worden. De slider, die het gaspedaal vervangt, werd bewogen maar leverde geen resultaat op.
58
Figuur 6-9 Testprogramma
6.4.3
Tweede meting
Om het probleem op te lossen werd er ondermeer contact opgenomen met de helpdesk van Volvo Belgium. Uit dat onderhoud werd onthouden dat de baudrate in hun vrachtwagens toch op 125 kBaud zou liggen, hoewel er gedacht werd dat dit verplicht op 250 kBaud zou moeten zijn. Hierdoor werd in eerste instantie niets gewijzigd aan de Baud rate. Om zeker te zijn van CAN-verkeer op de bus, wordt de MAX-explorer in gebruik gesteld om de bus uit te lezen. Ook hier staat de Baud rate op 125 kBaud. Dit zorgde echter opnieuw voor een negatief resultaat. Toen werd beslist de raadgevingen van Volvo in de wind te slaan en te gaan testen op iedere Baud rate om te vinden welke de juiste was. Na enige zoektijd kond de conclusie gemaakt worden dat 250 kBaud de enige juiste frequentie is voor deze CAN. 6.4.4
Derde meting
Nu er succesvol kon uitgelezen worden van de bus, moest er nu gestuurd kunnen worden op de bus. In het LabVIEW programma werden de nodige zaken aangepast en de meting werd hernomen. Opnieuw werd er een negatief resultaat verkregen. De fout hierin opgetreden was dat de verkeerde identifier in het testprogramma stond ingesteld. Dit kunnen we ook zien op de vorige afbeelding. Met de aanpassing te doen van de identifier ‘CFF8027’ naar ‘CFF2011’ reageerde de motor wel op de slider en kon er gas gegeven worden via de pc.
6.5 Conclusie Volvo FH De doelstelling om het Volvo FH programma opnieuw operationeel te krijgen is behaald. De motor die op de testbank geplaatst werd kon met succes bediend worden via de slider. Daarnaast is voor dit type motor ook een gebruiksvriendelijke fiche ontwikkeld zodat er geen fouten kunnen optreden bij het aanbrengen van de juiste klemmen. Na de verdere uitbouw van het LabVIEW programma is het nu eenvoudig om voor de werknemer om het FH-type te testen.
59
7 Scania R 7.1 Inleiding Zoals in het vorige hoofdstuk vermeld is Volvo een van de twee grote merken die worden behandeld bij de revisie afdeling. Naast Volvo wordt er binnen het bedrijf vooral gewerkt met Scania-motoren. Binnen het merk is dan vooral de Scania R-serie een populair type.
7.2 Geschiedenis van het model De Zweedse producent Scania bracht in 2004 een nieuwe lijn modellen uit waarbij Figuur 7-1 Scania R420 de benaming veranderde. Voorheen werden de modellen aangeduid met een cijfer, sinds 2004 gebeurd dit met een letter. Voor het ontwerp van de R-serie werd de voorganger, de 4-serie, zowel van binnen als van buiten gewijzigd. Het R-type is vooral gebruikt voor de lange afstand, waar hij vanbinnen speciaal voor uitgerust is. In 2009 kreeg het type een facelift en werden nieuwe motoren toegevoegd aan het gamma. Het R-type is op heden in zes verschillende motortypes beschikbaar, die gaan van een 9 liter 5 cilinder tot een 16.4 liter V8. Ieder motortype is ook nog leverbaar in een verschillende vermogensgrootte.
7.3 Inwendige CAN-bus Scania blijkt een van de betere leerlingen in de klas te zijn betreffende het CAN-netwerk. De Zweedse gigant doet het meeste volledig volgens de regels van de J1939-norm. In de documentatie die ter beschikking werd gesteld kon de werking van de CAN-bus bij de R-serie teruggevonden worden. Het elektrisch systeem van een R wordt onderverdeeld in het ECU- en het DEC-systeem. ECU staat voor Electronic Control Unit of elektronische regeleenheid. De ECU-systemen over de hele vrachtwagen worden aangestuurd door de ECU via het CAN-netwerk. DEC staat op zijn beurt voor Discrete Electric Circuit en is een afzonderlijk elektrisch circuit. Hierbij wordt geen gebruik gemaakt van het CAN-netwerk. Scania koos ervoor om de ECU-systemen te gaan verdelen over drie CAN-bussen, met als reden ervoor te zorgen dat de CAN-bus niet overbelast wordt door allerlei berichten. Men onderscheidt de rode, groene en gele bus. Wordt er gesproken over de rode bus, worden hierop alle belangrijkste systemen aangesloten zoals de remmen, COO, motorregeling en versnellingsbak. De andere ECU-systemen worden verdeeld over de gele en groene bus. De gele bus dient vooral voor zaken als de tachograaf, instrumentenpaneel, alarmsystemen, …
60
terwijl de groene bus dan eerder dient voor comfortsystemen zoals radio, pc, klimaatregeling, …
7.4 Metingen op testbank Als we onze doelstelling voor de Scania willen gaan realiseren, moet er dus vooral gezocht worden binnen de rode CAN-bus. Hierover wordt dus onder andere de motorsturing gezonden, wat voor ons heel belangrijk is. Bij het lokaliseren van het rode circuit was de informatie van Scania heel nuttig. Ook verder in dit hoofdstuk zal blijken dat Scania betrouwbare informatie levert aan zijn klanten. 7.4.1
Aansluitklemmen en -fiche
Om de motor zo weinig mogelijk schade toe te brengen werd er gewerkt met ‘Piercing probes’. Een dergelijke probe werkt op het principe van naaldtechnologie. Het boort als het ware een enorm fijne naald door de mantel van de draad (de isolatie) en dringt door tot in de kern. Hierdoor kan het contact maken met de kabel, zonder op deze grote schade toe te brengen.
Figuur 7-2 Piercing probes
Net zoals we bij Volvo gerealiseerd hadden, was het gebruiken van een stabiele verbinding tijdens de metingen één van de doelstellingen. De verwezenlijking gebeurde door een bestaande kabel met DB-9 connector te gaan demonteren, zodat deze connector gebruikt kon worden. De nieuwe kabel kreeg dan aan de ene uitzijde een DB-9 connector die de aansluiting voorziet met de NI USB-module. Aan de andere zijde zorgden we voor twee banaanstekkers die we konden bevestigen op de piercing probes.
Figuur 7-3 Kabel met DB-9 connector en piercing probes
61
Met deze bekabeling moesten we in staat zijn om de bus uit te lezen en via de USB-module te ontvangen op de pc. Via de MAX-explorer konden we dan het verkeer zien dat op de bus aanwezig was. 7.4.2
Lokaliseren van CAN op motor
Met behulp van het elektrische schema betreffende de COO werd getracht de juiste draden terug te vinden in de kabelboom. Het probleem bij Scania dat zich voordeed is dat er op de stuurdoos enorm veel kleine connectoren zitten, in twee rijen verdeeld. De mogelijk bestaat natuurlijk om op het zicht te gaan uitzoeken welke de CAN-draden zijn, omdat deze normaal gezien getwist lopen. Als we de motor gingen bekijken zagen we dat er een blauwe en witte kabel getwist vertrokken in de kabelboom. Dit wekte het idee op dat dit de juiste twee draden zouden zijn.
Figuur 7-4 E44 connector
Om deze gedachte te kunnen staven, werd het elektrisch schema erin betrokken. Hierop konden we de CAN-H en L volgen en kwamen we uiteindelijk uit bij de connector E44. Op deze connector kwamen zeven draden toe, waaronder de volgende twee: COO63 BU-0.75 COO64 WH-0.75 Na de legende geraadpleegd te hebben, bleek dat onze gedachte juist was. BU en WH staan respectievelijk voor blauw en wit, 0.75 staat voor de dikte van de kabel. De juiste CAN-draden werden dus gevonden en nu konden we de metingen gaan starten door hierover de piercing probes te plaatsen. 7.4.3
Eerste meting
Voor de test kon starten, moesten eerste de noodzakelijke elementen aangesloten worden. Spanning op motor en startmotor Brandstof leidingen Water aan- en afvoer Olie leidingen Rookafzuiging
62
Bij het bekrachtigen van de startmotor liep het fout. De motor demarreerde maar sloeg niet over. De vraag was natuurlijk: ‘Wat houdt de motor tegen om aan te slaan?’ Ligt het aan de startmotor? Of is er iets mechanisch defect waardoor dit probleem optreedt? Of gebruikt Scania een sleutelbeveiliging die het starten blokkeert? Vooreerst werd de startmotor afgenomen en gecontroleerd door een collega in het bedrijf. Deze werd grondig nagekeken, maar er bleek geen fout te zitten in de startmotor zelf. Deze oorzaak kon dus al geschrapt worden. Het volgende dat werd onderzocht was of er ergens anders een defect was aan de motor. Op het eerste zicht waren er geen defecten te zien. De derde reden die gedacht werd was dus de sleutelbeveiliging door Scania. In tegenstelling tot bij de Volvo, waar nog niet ieder type uitgerust is met een sluitende sleutelbeveiliging, zou op deze Scania R dus wel een blokkering kunnen zitten. In de documentatie i.v.m. de elektrische regelsystemen in een Scania vrachtwagen werd de volgende informatie gehaald. Alvorens een regeleenheid (ECU) CAN-berichten kan ontvangen, moet deze voeding krijgen van de accu (30-voeding) en moet een activeringssignaal worden verstuurd. De regeleenheid wordt in de meeste gevallen geactiveerd door de contactsleutel in de rijstand te zetten (15-voeding). Het contactslot (2) ontvangt spanning van de 30voeding via een 10A zekering (1). De regeleenheden van de CAN-bus ontvangen 15voeding van het contactslot. Figuur 7-5 Sleutelcontact
Met deze informatie kunnen we dus besluiten dat de ECU inderdaad niet zal werken als deze geen signaal krijgt van de responder in het contactslot. De vraag die nu kan worden gesteld is of het mogelijk is om dit te gaan omzeilen via één of andere simulatie?
7.5 Metingen op vrachtwagen Doordat de motor door de startbeveiliging niet aansloeg, kon het LabView programma ook niet worden getest. Daarom werd beslist om een Scania R420 te laten overkomen om hier de testen op verder te zetten. Met de kennis dat de rode CAN-bus onze CAN-bus is, werd er gezocht in de vrachtwagen naar de locatie van deze bus. Op de onderstaande afbeelding worden de drie CAN-bus connectoren weergegeven met hun locatie in de cabine. Ze bevinden zich onder het dashboard aan de passagierszijde. We herkennen hier verschillende modules, waaronder de
63
COO-module. Hierop bevinden zich drie connectoren, waarbij deze met code 480 de rode bus voorstelt.
Nr
Afkorting
C479
Groen
C480
Rood
C481
geel
Tabel 7-1 connectoren COO
Figuur 7-6 COO in cabine
Op de volgende afbeelding ziet u enkele regeleenheden die in de cabine verwerkt zitten. Vele zijn verbonden met het CAN-netwerk. Enkele voorbeelden zijn weergegeven in de volgende tabel. Nr
Afkorting Functie
18
GMS
Versnellingsbak – retarderregeling
5
BWS
Carrosserie-interface
17
SMS
Luchtvering
16
BMS
Rem
19
COO
Coördinator
Tabel 7-2 regeleenheden
Figuur 7-7 regeleenheden in cabine
Door de connector gevonden te hebben in de cabine, werden meteen ook de juiste twee draden gevonden. Deze waren makkelijk herkenbaar mede omdat deze getwist werden en de juiste kleur hadden volgens het elektrisch schema. 7.5.1
Eerste meting
De opstelling voor de eerste meting op de vrachtwagen was de volgende: Sleutel in contact slot, niet over gedraaid Piercing probes over CAN-draden op connector C480 MAX-explorer open om CAN-bus uit te lezen
64
Bij aanvang van de test werd de contactsleutel over gedraaid naar de stand ‘contact’ en verder naar de stand ‘demarreren’. Hierdoor sloeg de motor aan en draaide de vrachtwagen op een stationair toerental. Nu werd de lezing gestart via de MAX-explorer en lazen we data uit die op de bus zat. Meteen bij het starten van de meting konden we data waarnemen. In de MAX-explorer zagen we verschillende parameters, maar voor ons waren vooral de eerste drie van belang, namenlijk de Arb. ID, Length en Data. Arb. ID staat voor Arbitration ID, wat we vereenvoudigen tot identifier. Length en Data spreken voor zich, Length stelt de lengte van de data voor in bytes, Data is de data zelf. Hieronder bevindt zich een voorbeeld van uitlezing via de MAX-explorer.
Figuur 7-8 Uitlezing via MAX-explorer
7.5.2
Tweede meting
Nu er succesvol kon worden uitgelezen met de MAX-explorer, kon er getest gaan worden met ons LabView programma. Op dezelfde plaats als we daarnet uitlazen (op C480 connector) werden de probes opnieuw bevestigd. Opnieuw werd de motor aangezet, maar ditmaal werd het werkblad in LabView geactiveerd. Met het gelijklopende principe als bij de Volvo werd er met behulp van de slider gas gegeven. Direct reageerde de motor op de beweging van de slider, er kon dus succesvol gas gegeven worden in de cabine.
65
7.5.3
Derde meting
Als een motor op de testbank wordt geplaatst, is er natuurlijk geen cabine aanwezig. Daarom werd de volgende test gedaan op de module die zich rechtstreeks op de stuurdoos aan het motorblok van de vrachtwagen bevindt. De stuurdoos is opgebouwd uit twee rijen met zeven connectoren onder elkaar. Al snel werd de juiste connector terug gevonden, aan de hand van de code die terug gevonden werd op het elektrisch schema (E44).
Figuur 7-9 stuurdoos
Het eerste probleem dat hierop trad was dat we geen CAN-signalen waarnamen. Dit probleem werd veroorzaakt doordat de piercing probes niet groot genoeg waren om door een iets dikkere kabel te geraken. Door het gebruik van andere probes kon de test hernomen worden, ditmaal wel met succes. De conclusie tot nu is dus dat er overal op de vrachtwagen gas kan gegeven worden met het LabView programma, maar dat de startbeveiliging nog niet omzeild is. 7.5.4
Vierde meting
Een van de doelstelling van dit eindwerk was dat de gebruiker makkelijk de bekabeling kon leggen tussen motor en pc. Hiervoor werd een oude connector van een andere type Scania afgehaald en aangepast naar de gewenste normen. Aan de andere zijde van de kabel werd net als bij de Volvo een DB-9 connector geplaatst, terwijl aan de overige kabels schoentjes werden geplaatst om bijvoorbeeld spanning op deze kabels te plaatsen.
66
Figuur 7-10 kabel verbinding
Op de connector zitten zoals eerder al vermeld zeven kabels. In de onderstaande tabel wordt weergegeven hoe deze worden aangesloten. Code
Kleur
Aansluiting
COO65 RD/WH-1.5
Rood/wit
+24V
COO55 BK-1.5
Zwart
GND
COO69 GN-0.75
Groen
?
COO66 RD-1.5
Rood
+24V
COO54 WH/BK
Wit/zwart
GND
COO63 BU-0.75
Blauw
CAN-H
COO64 WH-0.75
Wit
CAN-L
Tabel 7-3 aansluitingen E44 connector
De groene lijn waar er geen aansluiting bij vermeld staat, wordt omschreven als de Call-line. Hierop worden af en toe signalen geplaatst, maar zou geen rol spelen bij de CAN-sturing. Daarom werd deze lijn niet aangesloten. Met deze bekabeling werd een nieuwe test uitgevoerd. De bedoeling is om de piercing probes te gaan vervangen door de zelfontworpen connector, zodat dit de eenvoud van de testen voor de gebruiker ten goede kwam. Bij aanvang van de test werd de motor terug gestart. Hierbij trad echter het eerste probleem op: de motor wilde niet starten. Een tweede poging met het LabView programma reeds actief sturend op de stuurdoos leverde ook geen resultaat op. Er moet over deze lijnen dus ergens een signaal tekort zijn dat niet gesimuleerd wordt via de pc. Na vier testen kon het volgende geconcludeerd worden. Sturen in de cabine en op de motor lukt met piercing probes. Het sturen van de motor via een eigen fiche of het starten van de motor zonder sleutel lukt daarentegen niet.
67
7.5.5
Vijfde meting
De belangrijkste doelstelling die graag verwezenlijkt werd was het starten zonder sleutel. Dit zou het bedrijf toch een aanzienlijke vooruitgang geven, want dit zou betekenen dat iedere motor kon worden gestart ongeacht of het een type was met of zonder sleutelbeveiliging. Om te weten te komen wat er nu juist die sleutelbeveiliging inhield, werd er getracht om op ieder tijdstip van het starten van de vrachtwagen, de CAN-bus uit te lezen. Dit geeft de volgende metingen: Sleutel in neutraal stand Sleutel in contact stand Sleutel in demarreren stand Sleutel in rij stand De bedoeling van deze testen is om te weten wat er precies verandert wanneer het contact aan wordt gezet en hoe dit dus de ECU of COO gaat gaan beïnvloeden, zodat deze toelating geeft om de motor te starten. 7.5.5.1 Contact stand
Wanneer de meting wordt gestart met de MAX-explorer, wordt er gekeken welke boodschappen er verschijnen. Daarnaast controleren we ook of de data die aan deze identifier gekoppeld is, constant blijft.
Figuur 7-11 uitlezeing contact stand
We merken op de bovenstaande afbeelding al op dat dit laatste niet het geval is. Voor identifier 0x18EBFF29 zien we dat de data drie verschillende toestanden aanneemt. Dit zal het simuleren aanzienlijk vermoeilijken. 7.5.5.2 Demarreer stand
We hernemen de metingen, maar dit maal blijven we demarreren op de motor. Dit kan verwezenlijkt worden door bijvoorbeeld een fiche uit te trekken op het motorblok, zodat de motor niet overslaat.
68
Figuur 7-12 uitlezing demarreer stand
Bij het bekijken van de resultaten kan er bemerkt worden dat de meeste identifiers gelijk zijn als bij de contact stand. We zien echter dat de data bij de veel van de identifiers niet gelijk blijft. In totaal treed dit op bij 15 van de 49 identifiers. 7.5.5.3 Rij stand
Sluiten we de uitgetrokken fiche terug aan en laten we de motor starten, hernemen we voor de derde maal de testen. Hierbij wordt de CAN-bus dus opnieuw uitgelezen. Ook ditmaal merken we dat niet alle data constant blijft. 7.5.6
Zesde meting
Niettegenstaande het door de niet constante data zeer moeilijk wordt om de CAN-bus boodschappen te simuleren, werd er toch een poging ondernomen.
Figuur 7-13 LabView simulatie
69
Het bovenstaande programma werd opgebouwd om de simulatie te proberen. Hierin werden alle boodschappen (identifiers) gestopt, met hun daarbij behorende data. Iedere boodschap kan op het front panel worden aan- en uitgeschakeld met een schakelaar. Het programma werd actief geplaatst samen met alle boodschappen. De motor werd opnieuw gestart, maar reageerde opnieuw niet.
7.6 Conclusie Scania R De doelstelling voor de Scania R werd niet volledig gehaald. Wel: De sturing van een vrachtwagen werd wel gerealiseerd. Er kan zowel gestuurd worden in de cabine of op het motorblok. Niet: Sturing via een eigen fiche. Sturing van motor op testbank. De motor kan niet worden gestart door de sleutelbeveiliging. De oplossing hiervoor zou zijn om een sleutelcontact + COO uit een bestaande vrachtwagen te halen, samen met de bekabeling en deze in een module in te bouwen die dan voor het testen kan gebruikt worden.
70
8 Renault DXI13 8.1 Inleiding Uit het totaal pakket van vrachtwagenmotoren die binnen- en buitengaan vormen zoals eerder al vermeld Volvo en Scania de grootste brok. Naast deze twee grote spelers is ook Renault redelijk vertegenwoordigd. Daarom werd beslist om het nieuwe zoekgebied hierop te focussen. De motor die voor handen was, was van het type DXI13. Dit soort motoren wordt ondermeer gebruikt in de Renault Magnum.
8.2 Geschiedenis van het model
Figuur 8-1 Renault Magnum
In 1991 lanceerde Renault Trucks zijn nieuwe truck. Deze was revolutionair voor zijn tijd en kreeg de naam AE, dat verwees naar Europese Gemeenschap omdat zij de wetten aanpasten zodat Renault zijn nieuwe truck toch op de baan kon krijgen. Later werd dit type de standaard en evolueerde hij tot een klassieker, terwijl zijn naam via omzwervingen uitkwam tot Magnum.
8.3 Inwendige CAN-bus Renault werkt voor sommige motoren samen met Volvo. Dit zou een aanzienlijk voordeel kunnen opleveren in de zoektocht aangezien Volvo al onder de loep werd genomen. Echter was er niet veel informatie te vinden over dit type motor. Ook via de Texa-tool werd er niet veel extra informatie gevonden over de locatie en precieze ligging van de CAN-draden. Texa S.p.A is een bedrijf dat eind jaren ’80 werd opgericht toen CAN opkwam. Het heeft zich in de loop der jaren gespecialiseerd in het uitlezen en communiceren met ECU’s en dergelijke zaken.
8.4 Metingen op testbank Wanneer de motor ter beschikking was, bleek dat het inderdaad een type was dat ontwikkeld was in samenwerking met Volvo. Toen de connector gevonden werd op het motorblok, zag deze gelijk te zijn aan die van de Volvo FH.
71
Op onderstaande afbeelding wordt de pin lay-out van de connector voorgesteld.
Figuur 8-2 Pin lay-out connector
De volle vakjes stellen de pinnen voor die gelijk zijn aan de Volvo connector. De holle vakjes diegene die extra zijn bij de DXI13. Er kan dus duidelijk afgeleid worden dat de motor een gelijklopende sturing heeft. Daarnaast kan er ook afgeleid worden dat de vier noodzakelijke klemmen gelijk zijn. Dit geeft het voordeel dat er geen nieuwe connector moet gemaakt worden voor dit Renault type, maar dat er gebruik kan gemaakt worden van de Volvo FH connector. 8.4.1
Eerste meting
Voor de eerste meting werden opnieuw alle noodzakelijke elementen aangesloten zoals waterafvoer, olie en brandstof. Er waren wel nog enkele vragen die in gedachten werden gehouden voor het starten. Zal dit type motor gelijklopend werken? Kan het LabVieuw programma voor Volvo hier dan ook gebruikt worden of maakt Renault toch gebruik van een andere identifier? Net als bij de Volvo en Scania moet er hier van buitenaf bekrachtiging gestoken worden op de startmotor. Na het inschakelen van de brandstof- en waterpomp, werd de spanning ingeschakeld. Wanneer de startmotor bekrachtigd werd, sloeg de motor niet aan. Tijdens het demarreren bleef hij haperen en sloeg niet over.
Figuur 8-3 Startmotor
72
Het probleem voor het niet starten is waarschijnlijk, net als bij de Scania, te zoeken bij de sleutelbeveiliging. Omdat de ECU geen signaal krijgt van het sleutelcontact en diens responder laat de ECU niet toe dat de motor wordt gestart. 8.4.2
Tweede meting
Om het startprobleem op te lossen kon er net als bij de Scania een lange zoektocht gehouden worden om te zien of de startbeveiliging al dan niet kon omzeild worden. Een tweede oplossing was proberen of een Volvo FH de oplossing niet kon bieden. Omdat de motor en connector al hoofdzakelijk gelijk waren, werd er gedacht dat een stuurdoos van Volvo kon ingeschakeld worden om de sleutelbeveiliging te omzeilen. De stuurdoos werd parallel gehangen met de originele en de beide connectoren werden erin gestopt.
Figuur 8-4 Parallelle stuurdoos
De testen werden hervat en nu kon er wel succesvol gestart worden. Er kon nu dus besloten worden dat de sleutelbeveiliging de oorzaak was. 8.4.3
Pc-sturing
Omdat het volledige testen gelijklopend was met de Volvo testen werd er getracht om met het Volvo FH LabView programma gas te geven. Wanneer dit programma werd ingeschakeld, reageerde de motor meteen op de slider.
8.5 Conclusie Renault DXI13 Voor dit type motor zijn de doelstellingen behaald. Er kan gas gegeven worden en de motor reageert normaal. Enkele opmerkingen zal de gebruiker wel in acht moeten nemen. Deze zijn dat dezelfde fiche als bij de Volvo FH gebruikt moet worden, maar dat ook een Volvo FH stuurdoos parallel moet gehangen worden om de sleutelbeveiliging te omzeilen. Er is in het bedrijf beslist om een stuurdoos te houden die enkel gebruikt zal worden om motoren te testen.
73
9 Mercedes Actros 9.1 Inleiding Naast de drie reeds besproken modellen behandelt het bedrijf ook nu en dan een Mercedes-Benz. Dit meestal van het type Actros of Axor.
9.2 Geschiedenis van het model Het Actros model werd in het jaar 1996 Figuur 9-1 Mercedes Actros geïntroduceerd door vrachtwagenproducent Mercedes-Benz. De Actros is het zwaarste model van de reeks en is vooral gebruikt voor het lange afstandtransport.
Figuur 9-2 Motorblok Actros
9.3 Inwendige CAN-bus Op het vlak van documentatie is Mercedes een van de slechtste leerlingen uit de klas. Er werd heel weinig concrete informatie gevonden over hoe het CAN-netwerk nu juist in elkaar zit bij hun trucks. Uit de afbeelding op de volgende pagina werd de meeste bruikbare informatie gehaald. Hieruit blijkt dat Mercedes via de ECU over verschillende CAN-netwerken beschikt die allerlei delen van de vrachtwagen verbinden met de centrale rekeneenheid. We kunnen de verschillende netwerken opdelen in vier grote stukken.
74
Onderdelen
Nr op tekening
Aandrijvingcomponenten
1
Remcomponenten
2
Voertuigcomponenten
3, 4
Cabinecomponenten
5
Tabel 9-1 CAN-netwerk onderdelen
Figuur 9-3 CAN-netwerk
9.4 Metingen op testbank Voor de Actros was er een testkast beschikbaar. Met deze kast kan men de nodige elektronica voorzien die uit de vrachtwagen komt. De kast wordt verder nog uitgerust met een gaspedaal.
Figuur 9-4 Testkast Actros
75
De bovenkant van de testkast ziet er uit als een simpel dashboard van een vrachtwagen. Het toerental wordt weergegeven met daarnaast enkele andere waarden zoals olietemperatuur of de inhoud van de benzinetank. Aan de linkerkant is er een gaspedaal bevestigd, binnenin bevindt zich de volledige bekabeling.
Figuur 9-5 Testkast Actros (2)
9.4.1
Eerste meting
Net als bij iedere motor al gedaan werd, werden alle noodzakelijkheden aangesloten op de motor. Van de Mercedes Actros is er geweten dat hij een sleutelbeveiliging heeft die het starten dus bemoeilijkt. Turbo’s Hoet beschikt echter over een andere stuurdoos die gekoppeld is met een sleutel + sleutelcontact. Door deze stuurdoos vervangt dan de stuurdoos die aan de motor hangt en zo kan het probleem omzeild worden. (voor de duidelijkheid noemen we de stuurdoos uit de testkast stuurdoos A, de andere B).
Figuur 9-6 Stuurdoos A (extern) en stuurdoos B (motorblok)
76
Bij het bekrachtigen van de startmotor sloeg de motor niet aan. Een van de fouten was dat de stuurdoos A niet voldoende spanning kreeg, waardoor de ECU niet in werking kon treden. Dit kwam omdat de interne batterijen onvoldoende leverden aan de stuurdoos. Na dit probleem opgelost te hebben konden de testen opnieuw hervat worden. Met opnieuw de startmotor te bekrachtigen bleek de motor nu wel aan te slaan. De werking met het sleutelcontact + stuurdoos blijkt dus een goed alternatief te zijn om de motor te doen starten. Nu de motor draait, moeten de CAN-draden gelokaliseerd worden. Dit blijkt een veel groter probleem te zijn. De documentatie van Mercedes is zeer ondermaats op dit vlak. Daarom werd besloten om meteen de testen te gaan doen en alle draden na te gaan. De volledige bekabeling wordt op de onderstaande afbeelding weergegeven en door middel van de pin lay-out van de connector op de stuurdoos weergegeven.
Figuur 9-7 Pin lay-out connector
Uitleg kleurencode W
Wit
Zw
Zwart
Gr
Grijs
G
Geel
Br
Bruin
R
Rood
Bl
Blauw
P
paars
Tabel 9-8 Kleurencode
De draden worden dus van elkaar gescheiden via verschillende kleuren. Hierdoor kunnen we dus later de CAN-draden eenvoudig terug vinden in de volledige bus. Uit vorige testen weten we ondertussen al dat de MAX-explorer het CAN-bus netwerk kan uitlezen. Dit principe wordt hier toegepast om de CAN-H en L terug te vinden in de wirwar van draden. Om de uitlezing te gaan doen werd er net als bij de Scania gewerkt met de ‘piercing probes’. Zo kan er over de draden gemeten worden die in de motorbekabeling zitten.
77
Eerst en vooral werd er gezocht naar getwiste draden in de dikke kabel. Hierop werd afwisselend de CAN-H en L afgesloten. Hierop werden echter geen signalen uitgelezen. Daarna werden de draden één voor één overlopen en telkens werd er gekeken met de MAXexplorer of er een signaal werd uitgelezen. Na alle kabels en mogelijkheden overlopen te hebben, werd de High en Low omgewisseld en werden alle kabels opnieuw overlopen. Helaas leverden al deze testen geen succes op. Om toch te weten te komen waar de High en Low te vinden zijn in de bekabeling, werden verschillende personen aangesproken die ons meer informatie konden geven. Om deze informatie te krijgen werd ondermeer de hulp ingeroepen van het zusterbedrijf Devriendt NV. In dit bedrijf is de ervaring met het Actros-model groter en zouden ze de oplossing kunnen bieden voor het probleem. Noch het bedrijf noch andere ondernemingen die werden gecontacteerd konden een sluitend antwoord bieden op de vraag. Een van de weinige mogelijke oplossingen die werden geboden was dat de CAN-draden zich op een groen en groen/witte draad bevonden. 9.4.2
Tweede meting
Met deze mogelijke oplossing in gedachten werden de testen hervat. Opnieuw werd er via de ‘piercing probes’ en de MAX-explorer getracht de CAN-bus uit te lezen. Er werd gezocht naar de nodige kleuren die ons werden aangeboden, maar deze werden niet terug gevonden op de bekabeling. In het bedrijf was er nog een andere kabel voorhanden, die ook voor een Actros zou moeten dienen. Bij het naderbij bekijken van de connector bleek dat deze een groot deel andere klemmen had. Opvallend was wel dat deze kabelboom wel een groen en groen/witte kabel bevatte. Na dit opgemerkt te hebben werd er getracht om de bestaande bekabeling te vervangen door de nieuwe kabel, maar dit bleek niet mogelijk. Later trad er tijdens de testen nog een groter probleem op. De connector die op stuurdoos A zat begaf het door broosheid en zorgde ervoor dat de ECU niet meer naar behoren kon werken. Door dit probleem moesten de testen stil worden gelegd, mede omdat er geen andere motor van dit type beschikbaar was in het bedrijf.
9.5 Conclusie Mercedes Actros De doelstelling werd niet verwezenlijkt voor het Actros-model. Door de startbeveiliging is het niet mogelijk om de motor te starten met zijn eigen stuurdoos wanneer het contactslot ontbreekt. De oplossing hiervoor is een stuurdoos + sleutelcontact bijeen houden en zo de motor te starten. Het volgende probleem, het lokaliseren van de CAN-draden, kon niet worden opgelost door mechanische en elektronische problemen met betrekking op de stuurdoos en connectoren.
78
10 Handleiding Het stappenplan dat opgemaakt wordt legt het gebruik van de LabView programma’s uit voor de werknemer. De bedoeling is dat de persoon die binnen het bedrijf een motor moet testen aan de hand van deze handleiding de volledige test kan doen zonder grondige voorkennis. Opmerking bij dit stappenplan is dat het opgemaakt is voor de Volvo FH en Renault DXI13 omdat deze motoren succesvol getest zijn op de testbank. Voor Scania kan een gelijklopend stappenplan gebruikt worden indien er een vaste sleutel-stuurdoos combinatie gebruikt wordt. Voor Mercedes ligt dit anders, met de reden dat het eindresultaat hiervan niet vast staat.
10.1 Hardware Stap 1 Plaats de motor op de testbank Stap 2 Neem indien nodig de fiche boven de stuurdoos af.
79
Stap 3 Neem de motorfiche (Volvo FH13 & Renault DXI13) en plaats deze op de juiste connector
Stap 4 Neem de NI USB module en sluit deze aan op de DB-9 connector van de motormodule.
Stap 5 Sluit op de overige 2 pinnen van de motormodule +24V en GND aan. Stap 6 Voorzie de motor en startmotor van spanning (+24V en GND). Stap 7 Voorzie de motor van olie, brandstof en water.
80
Stap 8 (optie Renault) Neem de test-stuurdoos van een Volvo FH.
Stap 9 Koppel beide fiches op de stuurdoos af, en plaats deze op de test-stuurdoos.
Stap 10 Zorg voor een computer om het software gedeelte te kunnen doorlopen. Stap 11 Verbind de andere kant van de NI USB module met een USB poort van de computer.
81
10.2 Software Stap 1 Start de computer op. Stap 2 Ga naar “Start” ⇒ “Alle programma’s” ⇒ “National Instruments” ⇒ “Measurement & Automation” en open het programma. Stap 3 Open de MAX explorer. Het volgende scherm verschijnt:
Klik “Devices and Interfaces” open, klik daarna op “USB-8473
Aan de rechterkant verschijnt volgend scherm, klik hierbij op “Self-test”
Het resultaat moet nu veranderen in “Passed”. Indien niet, controleer nogmaals de verbinding van de kabel.
82
Stap 4 Ga naar “Start” ⇒ “Alle programma’s” ⇒ “National Instruments” ⇒ “LabView 2009” ⇒ “LabView” en open het programma. Bij de opstart van het programma, moet er nogmaals geklikt worden op “Launch LabView”. Stap 5 Op het startscherm van het programma wordt het volgende weergegeven.
Ga naar “File” ⇒ “Open” en selecteer het gewenste programma ( = type motor). Stap 6 Op het eerste tabblad staan deze instructies nogmaals beknopt weergegeven. Ga daarna door naar het tweede tabblad en volg de instructies op.
83
11 Besluit Als besluit van de stage en het eindwerk kan er gesteld worden dat deze grotendeels geslaagd zijn. De doelstelling om de bestaande programma’s te vereenvoudigen in gebruik voor de werknemer en deze uit te breiden naar een ander type vrachtwagen zijn gehaald. Zowel voor het Volvo-, Renault- als Scania-type zijn de testen succesvol gebleken. Een opmerking die wel kan gemaakt worden is dat er op het vlak van sleutelbeveiliging op de moderne vrachtwagens geen sluitende oplossing is gevonden. Voor dit probleem is in deze thesis wel een oplossing voorgesteld, maar deze kon niet getest worden omdat de benodigdheden niet voorhanden waren.
84
12 Bijlagen Elektrische schema’s SCANIA
85
86
13 Bibliografie 1. Cai. (s.d). Opgeroepen op Februari 28, 2011, van Canadian Automotive Instruments LTD.: http://www.c-a-i.net/Download_Docs/PROCON_2_RM1708_PDF.pdf 2. CAN and LIN Interfaces for Hi-Speed USB. (s.d). Opgeroepen op December 14, 2010, van National Instruments: http://www.ni.com/pdf/products/us/2006_8250_151_101_d.pdf 3. CAN bus, an overview. (s.d). Opgeroepen op Mei 5, 2011, van Softing AG: http://www.softing.com/home/en/industrial-automation/products/can-bus/more-canbus/index.php?navanchor=3010320 4. CAN Connectors. (s.d). Opgeroepen op Februari 4, 2011, van LADD Industries: http://www.laddinc.com/customer-resources/j1939-information.html 5. CAN in automation (Cia): Controller Area Network (CAN). (s.d). Opgeroepen op Mei 2, 2011, van http://www.can-cia.org/index.php?id=19 6. CAN Tutorial. (s.d). Opgeroepen op Februari 23, 201, van National Instruments: ftp://ftp.ni.com/pub/devzone/tut/can_tutorial.pdf 7. CAN-cursus. (s.d). Opgeroepen op Mei 3, 2011, van http://project.iwtkdg.be/hobucan/HobuFilesDir/OnzeCursus/MyMainPage.html 8. Controller Area Network (CAN). (s.d). Opgeroepen op Oktober 31, 2010, van National Instruments: http://www.ni.com/can/ 9. Controller Area network. (s.d). Opgeroepen op Oktober 27, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/Controller_area_network 10. Controller Area Network. (s.d). Opgeroepen op Oktober 27, 2010, van Wikipedia, the free encyclopedia: http://nl.wikipedia.org/wiki/Controller_Area_Network 11. Daimler. (2011, Maart). Gesamtvernetzung KontAct Funktion. s.l: s.n. 12. Daimler. (2011, Maart). Parameter Motorstart. s.l: s.n. 13. Debaets, N. (2010). Emulatie van CAN-signalen via de J1939-bus. Onuitgegeven eindwerk . Oostende: KHBO. 14. Debaets, N. (2010). Emulatie van CAN-signalen via de J1939-bus: Bijlagen [CD-ROM]. Oostende, België. 15. Ibrahim, D. (2008). Advanced PIC Microcontroller Projects in C. China: Elsevier. 16. Inc., M. T. (2004). PIC18F2585/2680/4585/4680 Data Sheet. 28/40/44-Pin Enhanced Flash Microcontrollers with ECAN Technology, 10-Bit A/D and nanoWatt Technology . s.l: s.n. 17. Inleiding Volvo FH. (s.d). Opgeroepen op Februari 11, 2011, van Volvo Trucks: http://www.volvotrucks.com/trucks/belgium-market/nl-be/trucks/VolvoFH/Volvo_FH/Pages/Introduction.aspx
87
18. Introduction to SAE J1939. (s.d). Opgeroepen op Mei 3, 2011, van Kvaser: http://www.kvaser.com/en/about-can/higher-layer-protocols/36.html 19. ISO 11898. (s.d). Opgeroepen op November 3, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/ISO_11898 20. J1587. (s.d). Opgeroepen op Oktober 27, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/J1587 21. J1708. (s.d). Opgeroepen op Oktober 27, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/J1708 22. J1939. (s.d). Opgeroepen op Oktober 27, 2010, van Wikipedia - the free encyclopedia: http://en.wikipedia.org/wiki/J1939 23. Media Access Control. (s.d). Opgeroepen op November 18, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/Media_Access_Control 24. MikroElektronica. (2010). EasyPIC6. User manual . s.l: s.l. 25. MikroElektronika. (2010). EasyPIC6. Electrical schematic . s.l: s.n. 26. On-board diagnostics. (s.d). Opgeroepen op Maart 26, 2011, van Wikipedia, the free encyclopedia: http://nl.wikipedia.org/wiki/On-board_diagnostics 27. OSI model. (s.d). Opgeroepen op November 18, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/OSI_model 28. OSI model. (s.d). Opgeroepen op November 18, 2010, van Wikipedia, the free encyclopedia: http://nl.wikipedia.org/wiki/OSI-model 29. Return-to-zero. (s.d). Opgeroepen op November 3, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/Return-to-zero 30. (s.d). Opgeroepen op Februari 25, 2011, van Baidu Bibliotheek: http://wenku.baidu.com/view/218a1efe04a1b0717fd5dd62.html 31. (s.d). Opgeroepen op Februari 25, 2011, van Baidu Bibliotheek: http://wenku.baidu.com/view/abcb4ed63186bceb19e8bb0a.html 32. (s.d). Opgeroepen op Maart 24, 2011, van Copperhill Media: http://www.copperhillmedia.com/PDF/9780976511632_content_preview.pdf 33. (s.d). Opgeroepen op Mei 2, 2011, van M.D: http://www.md.kth.se/~magnper/courses/mf2008/HT09/AN-ION-13100_Introduction_to_J1939.pdf 34. (s.d). Opgeroepen op Maart 24, 2011, van Özen Elektronik: http://www.ozenelektronik.com/downs/pdf/oe91c1700.pdf 35. SAE. (Oktober 2007). APPENDIX A. Parameter group assignments . s.l: s.n.
88
36. SAE International. (s.d). Opgeroepen op Oktober 27, 2010, van Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/Society_of_Automotive_Engineers 37. SAE J1939. (s.d). Opgeroepen op Maart 2, 2011, van Copperhill Media: http://www.copperhillmedia.com/Downloads/SAE%20J1939.pdf 38. Scania. (2004). Communicatieproblemen. Hulp tijdens storingsdiagnose . s.l: s.n. 39. Scania. (2005). Elektrisch systeem in P-,R- en T-serie. Inleiding en algemene storingsdiagnose . Zweden: s.n. 40. Turbo's Hoet N.V. (2009, Maart 17). Onthaalbrochure voor jobstudenten. s.l: s.n. 41. Vanhee, L. (s.d). Datacommunicatie. Onuitgegeven cursus . Oostende: KHBO. 42. Zwaenepoel, B. (2008-2009). Emulatie van een J1939-coördinator. Onuitgegeven eindwerk . Oostende: KHBO.
89