You are on page 1of 169

Departement Industrile wetenschappen en technologie

Opleiding elektronica-ICT
Afstudeerrichting ICT

CAN EDI Diagnostic Tool

Eindwerk aangeboden tot het


behalen van het diploma van
bachelor in de elektronica-ICT
door

Kristof Ryheul

o.l.v.

Kris Vanstechelman, DANA Spicer Off-Highway N.V.


Tom Langeraet, Dana Spicer Off-Highway N.V.
Hans Blondelle, KHBO

Academiejaar 2006 - 2007

talent@work
KHBO Campus Oostende Zeedijk 101 B-8400 Oostende Tel. +32 59 56 90 00 Fax +32 59 56 90 01 www.khbo.be

CAN EDI Diagnostic Tool


Het inlezen van voertuig informatie via de CAN bus
door Ryheul Kristof

Ryheul Kristof

CAN EDI Diagnostic Tool

Mededeling
Deze eindverhandeling was een examen, de tijdens de verdediging vastgestelde fouten werden niet
gecorrigeerd.
Gebruik als referentie in publicaties is toegelaten na gunstig advies van de KHBO-promotor,
vermeld op het titelblad.

Ryheul Kristof

CAN EDI Diagnostic Tool

Woord vooraf
Dit eindwerk werd gerealiseerd in het bedrijf DANA Spicer Off-Highway te Brugge.
Zowel de Stage als het eindwerk werd ter plaatste uitgevoerd.
Graag had ik van deze gelegenheid gebruik gemaakt om enkele personen te bedanken die
geholpen hebben om dit eindwerk tot een goed einde te brengen.
Mijn ouders die het mogelijk maakten voor mij om verder te studeren.
Luc Formesyn die mij in contact bracht met het bedrijf en altijd klaar stond om te helpen.
Ik dank ook de mensen van de afdeling controls te DANA voor het delen van hun kennis en
vaardigheden doorheen de stageperiode en mijn eindwerk.
Kris Vanstechelman, mijn buiten promotor die alles in goede banen heeft geleid.
Tom Langeraet, mijn stagebegeleider die mij doorheen het project geduwd heeft.
Ik dank de docenten van het KHBO, voor hun inzet en gedrevenheid doorheen mijn opleiding.
In het bijzonder wil ik nog mijn binnen promotor bedanken Hans Blondelle die mij geholpen
heeft met zowel de theoretische en technische kanten van deze eindverhandeling en
stagebegeleiding.
Ook het bedrijf DANA Spicer Off-Highway Brugge wil ik bedanken voor het aanbieden van de
stage en eindwerk opdracht, eveneens voor het gebruik van het nodige materiaal om mijn
eindwerk tot een goed einde te brengen.

Ryheul Kristof

CAN EDI Diagnostic Tool

Abstract
De opdracht van mijn eindwerk was het ontwikkelen van een programma voor het tonen van
applicatiespecifieke data dat over een CAN bus moet worden verstuurd. Er bestaan
verschillende commercieel verkrijgbare programmas waarbij data kan worden opgehaald uit
een CAN bus met of zonder een database. Met een database is het mogelijk de gewenste
berichten met naam te benoemen, evenals de signalen die een bericht kan bevatten. Deze
software en de vereiste hardware, evenals de licentie zijn duur. Mede hierdoor is het niet
evident deze commercieel verkrijgbare tools in te schakelen voor gebruik in alle centra die
onderhoud en interventies doen voor de producten over de hele wereld. Het zou een pluspunt
zijn indien er een bedrijfseigen applicatie zou bestaan dat met een USB naar CAN interface
module die reeds beschikbaar is in het bedrijf, de gewenste bedrijfsspecifieke informatie uit de
CAN bus ophaalt.
Naast de hoge kost dient de gebruiker een goede achtergrondkennis te hebben van het CAN
protocol en moet deze weten welke berichten er op de bus voorkomen. Door de software intern
in het bedrijf te ontwikkelen, kan de applicatie deze kennis overbodig maken. Hierdoor is het
mogelijk om deze software beschikbaar te stellen voor klanten. Deze kunnen dan een log file
(met vaste opmaak) van een foutsituatie doorsturen naar een DANA center. Via deze log files
kan men dan van op afstand het probleem vaststellen en de nodige support geven.
De applicatie bevat een hoofdscherm waaruit via een menu of toolbar verschillende vensters
kunnen worden geopend. In het trace venster worden alle gelezen en verzonden berichten
weergegeven. Via een dialoog venster kunnen de berichten in detail bekeken worden: dit
vereist een database, gekoppeld aan de software.
Via het generator venster kan men berichten automatisch of manueel versturen. Als het
automatisch gebeurt kan men de tijd instellen in ms. Via de CAN hardware interface kunnen
berichten gefilterd worden zodat enkel de berichten die van belang zijn ingelezen worden.
De implementatie van een database biedt opnieuw meer geavanceerde mogelijkheden voor het
weergeven en bewerken van berichten, signalen en waardetabellen. Door de mogelijkheid om
een database te koppelen aan de software kunnen de berichten in het trace venster bij naam
getoond worden. Elk bericht kan verschillende signalen bevatten met een vaste lengte
aangegeven door de database. De waardetabellen maken het mogelijk om data om te zetten
naar beschrijvingen die voor de mens onmiddellijk herkenbaar zijn. Ook het verzenden van
berichten wordt eenvoudiger door het gebruik van deze tabellen. Hierdoor kan aan de hand van
een beschrijving een waarde toegekend worden aan een signaal.
De eindverhandeling bevat een omschrijving van het eindwerk, de CAN bus, de ontworpen
software en de nodige achtergrondkennis.

Ryheul Kristof

CAN EDI Diagnostic Tool

Inhoudsopgave
Mededeling .............................................................................................................4
Woord vooraf .........................................................................................................5
Abstract ..................................................................................................................6
Inhoudsopgave .......................................................................................................7
Lijst met illustraties...............................................................................................9
Lijst met afkortingen...........................................................................................12
1. Inleiding ............................................................................................................14
2. Project omschrijving .......................................................................................14
2.1 Situering............................................................................................................................14
2.2 Doel...................................................................................................................................14
2.3 Tools & skills: ...................................................................................................................16

3. Stageplaats en stage beschrijving...................................................................17


3.1 Voorstelling van het bedrijf ..............................................................................................17
3.2 Bedrijfsorganigram...........................................................................................................21
3.3 Overzicht productiestappen ..............................................................................................21
3.4 Algemene richtlijnen en veiligheidsregels ........................................................................22

4. CAN & toebehoren ..........................................................................................23


4.1 Inleiding ingebouwde netwerken ......................................................................................23
4.2 Wat is CAN........................................................................................................................25
4.3 Waarom CAN ? .................................................................................................................27
4.4 Waar wordt CAN gebruikt ? .............................................................................................28
4.5 Voor en nadelen van CAN.................................................................................................28
4.6 CAN berichten...................................................................................................................29
4.7 CAN fysieke lagen .............................................................................................................33
4.8 CAN connectoren ..............................................................................................................37
4.9 CAN foutafhandeling ........................................................................................................40
4.10 CAN specificatie 2.0........................................................................................................43
4.11 CAN hogere protocol lagen ............................................................................................45

5. Theoretische & bedrijfsspecifieke kennis......................................................48


5.1 Recommended Practice RP1210A ....................................................................................48
5.2 User manual APC .............................................................................................................63
5.3 SAE J1939 Recommended Practice ..................................................................................67
5.4 CAN messages APC214 ....................................................................................................78
5.5 Error codes & description ................................................................................................81
5.6 General coding rules.........................................................................................................82

6. Werking APC200 controller ...........................................................................85


6.1 Elektronische shift controllers ..........................................................................................85
6.2 APC200 layout ..................................................................................................................86

7. Testbord & opstelling......................................................................................89


7.1 Werking testbord...............................................................................................................89
7.2 Verschillende USB dongles (ifak en softing) ....................................................................91
7.3 Verschil met de Vector CANcaseXL .................................................................................93
7.4 Aansluiten APC200 controller..........................................................................................94
7.5 Blokschema meetopstelling...............................................................................................95
7.6 Verschillende soorten signalen .........................................................................................95

8. Vector CANalyzer software nader bekeken .................................................96


____________________________________________________________________________________
7

Ryheul Kristof

CAN EDI Diagnostic Tool

8.1 Werking CANalyzer ? .......................................................................................................96


8.2 Werking CANdb++ ?......................................................................................................100
8.3 Werking log formaat CANalyzer ?..................................................................................104
8.4 Werking database formaat CANalyzer ? ........................................................................106

9. Visual Studio, Visual SourceSafe en Office Visio.......................................110


9.1 Werking Visual Studio ?..................................................................................................110
9.2 Werking Visual SourceSafe ?..........................................................................................116
9.3 Werking Office Visio voor UML-diagram ? ...................................................................121

10. Ontwerpen van schemas ............................................................................125


10.1 UML Diagrammen ........................................................................................................125
10.2 Software flowcharts ......................................................................................................128

11. Software GUI CAN EDI Diagnostic Tool..................................................134


11.1 Het hoofdprogramma....................................................................................................134
11.2 De trace-window...........................................................................................................137
11.3 Het generator venster ...................................................................................................140
11.4 Het database venster.....................................................................................................141
11.5 Het venster voor de filters.............................................................................................145
11.6 Het configuratie venster voor de logger .......................................................................146
11.7 Het venster voor grafische weergave van signalen ......................................................147
11.8 Inladen van een recent configuratie bestand ................................................................147
11.9 Applicatie folder en beschrijving ..................................................................................148

12. Software implementatie C#.NET ...............................................................149


12.1 Big endian en little endian functies voor de timestamp. ...............................................149
12.2 Informatie uit een signal halen .....................................................................................150
12.3 String formatting...........................................................................................................151

13. CAN EDI Diagnostic Tool...........................................................................153


Besluiten..............................................................................................................155
Documentatie en bijlagen..................................................................................160
Literatuurlijst.....................................................................................................166

____________________________________________________________________________________
8

Ryheul Kristof

CAN EDI Diagnostic Tool

Lijst met illustraties


Fig. 1 Hoofdingang kantoorgebouw te brugge ...........................................................................19
Fig. 2 Grondplan DANA Spicer Off-Highway Brugge ..............................................................20
Fig. 3 Bedrijfsorganigram DANA Spicer Off-Highway Products Division...............................21
Fig. 4 Communicatie in de automatisering (piramide) ...............................................................23
Fig. 5 Broadcast principe CAN bus ............................................................................................26
Fig. 6 CAN 2.0A data frame (Standard CAN)............................................................................29
Fig. 7 CAN 2.0B data frame (Extended CAN)...........................................................................29
Fig. 8 CAN remote frame ...........................................................................................................30
Fig. 9 CAN error frame...............................................................................................................30
Fig. 10 Bus arbitrage en bericht prioriteit (standaard CAN) ......................................................32
Fig. 11 Lengte van de CAN bus volgens de baudrate.................................................................34
Fig. 12 Toevoegen van software redundantie .............................................................................35
Fig. 13 Toevoegen van hardware redundantie............................................................................36
Fig. 14 Toevoegen van redundantie in de bedrading..................................................................36
Fig. 15 9-pin Dsub connector (CAN connector).........................................................................37
Fig. 16 Multipole connector (CAN connector)...........................................................................38
Fig. 17 RJ10 connector (CAN connector) ..................................................................................38
Fig. 18 RJ45 connector (CAN connector) ..................................................................................39
Fig. 19 5-pin Mini-C connector ..................................................................................................39
Fig. 20 Structuur lagen van CAN2.0A volgens het OSI model..................................................43
Fig. 21 Structuur lagen van CAN2.0B volgens het OSI model ..................................................44
Fig. 22 OSI 7 lagen model ..........................................................................................................45
Fig. 23 Architectural overview ...................................................................................................49
Fig. 24 Dataflow diagram voor Windows...................................................................................50
Fig. 25 J1939 bericht formaat (zenden) ......................................................................................52
Fig. 26 CAN bericht formaat (zenden) .......................................................................................53
Fig. 27 J1939 bericht formaat (lezen) .........................................................................................54
Fig. 28 CAN bericht formaat (lezen) ..........................................................................................55
Fig. 29 Filter parameter frame (command number 4 / J1939)....................................................56
Fig. 30 CAN filter frame.............................................................................................................57
Fig. 31 Depends DLL ifak system ..............................................................................................62
Fig. 32 Connector layout APC (TCON) .....................................................................................63
Fig. 33 J1939 29 bit identifier.....................................................................................................68
Fig. 34 Een mogelijke implementatie van een vrachtwagen op de weg (J1939/1).....................68
Fig. 35 Enkelvoudig netwerk (J1939/1)......................................................................................68
Fig. 36 Meervoudig netwerk (J1939/1). .....................................................................................69
Fig. 37 Representatie fysieke bit.................................................................................................70
Fig. 38 Functionaliteit fysieke laag.............................................................................................70
Fig. 39 Samenstelling van een bit ...............................................................................................71
Fig. 40 Topologie van het bedradingsnetwerk (J1939/11) .........................................................71
Fig. 41 Un-Shielded Twisted Pair CAN kabel............................................................................72
Fig. 42 Topologie van het bedradingsnetwerk (Type I ECUs only) ........................................73
Fig. 43 Topologie van het bedradingsnetwerk (n Type II ECUs genstalleerd).................73
Fig. 44 Topologie van het bedradingsnetwerk (twee Type II ECUs genstalleerd)..............73
Fig. 45 CAN Standard Data Frame.............................................................................................74
Fig. 46 CAN Extended Data Frame............................................................................................74
Fig. 47 OSI model ondersteunt door SAE J1939 (J1939/21) .....................................................75
Fig. 48 J1939 PDU formaat (J1939/21)......................................................................................76
____________________________________________________________________________________
9

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 49 PDU specificatie PDU1 & PDU2 (J1939/21).................................................................76


Fig. 50 J1939 PDU formaten (PDU1 & PDU2 J1939/21)..........................................................76
Fig. 51 J1939 PDU1 formaat (J1939/21)....................................................................................77
Fig. 52 J1939 PDU2 formaat (J1939/21)....................................................................................77
Fig. 53 Transmissie model en mogelijke controller (DANA) ....................................................85
Fig. 54 Controller systeem mogelijkheden (DANA)..................................................................85
Fig. 55 APC200 hardware blokschema ......................................................................................86
Fig. 56 APC200 hardware connectie schema .............................................................................87
Fig. 57 APC200 controller..........................................................................................................87
Fig. 58 APC200 lokaliseren in een voertuig...............................................................................88
Fig. 59 Testbord APC voorzijde (TCT19)..................................................................................89
Fig. 60 Testbord APC zijkant (TCT19) ......................................................................................90
Fig. 61 Ifak System USB naar CAN interface............................................................................91
Fig. 62 Softing USB naar CAN interface ...................................................................................92
Fig. 63 Vector CAN interfaces ...................................................................................................93
Fig. 64 APC200 voorzijde (DANA) ...........................................................................................94
Fig. 65 APC200 achterzijde (DANA).........................................................................................94
Fig. 66 Snelheidssensor (DANA) ...............................................................................................95
Fig. 67 CANalyzer measurement setup ......................................................................................97
Fig. 68 CANalyzer trace window configuration (Standard).......................................................98
Fig. 69 CANalyzer trace window configuration (Extended) ......................................................98
Fig. 70 CANalyzer CAPL browser...........................................................................................100
Fig. 71 CANdb++ overall view ................................................................................................101
Fig. 72 CANdb++ value tables .................................................................................................101
Fig. 73 CANdb++ change value tables.....................................................................................102
Fig. 74 CANdb++ message layout............................................................................................102
Fig. 75 CANdb++ display settings ...........................................................................................103
Fig. 76 CANdb++ message definition ......................................................................................103
Fig. 77 CANdb++ signal definition ..........................................................................................104
Fig. 78 Ontleden van database berichten ..................................................................................108
Fig. 79 Ontleden van database signalen....................................................................................109
Fig. 80 Ontleden van database waardetabellen.........................................................................109
Fig. 81 Visual Studio find in files.............................................................................................111
Fig. 82 Visual Studio find results in entire project ...................................................................111
Fig. 83 Visual Studio replace in files........................................................................................112
Fig. 84 Visual Studio solution explorer
Visual Studio class view.......................................113
Fig. 85 Visual Studio properties ...............................................................................................113
Fig. 86 Visual Studio WYSIWYG interface.............................................................................114
Fig. 87 Visual Studio WYWIWYG interface ...........................................................................114
Fig. 88 Gebruik maken van IntelliSense...................................................................................115
Fig. 89 Visual SourceSafe adding an label ...............................................................................116
Fig. 90 Visual SourceSafe add comment to label .....................................................................117
Fig. 91 Visual SourceSafe project differences..........................................................................117
Fig. 92 Visual SourceSafe add new file to the project..............................................................118
Fig. 93 Visual SourceSafe show file differences ......................................................................118
Fig. 94 Visual SourceSafe file differences ...............................................................................119
Fig. 95 Visual SourceSafe history of file..................................................................................119
Fig. 96 Visual SourceSafe history details .................................................................................120
Fig. 97 Visual SourceSafe history of project ............................................................................120
Fig. 98 Office Visio workplace.................................................................................................121
____________________________________________________________________________________
10

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 99 Office Visio UML class properties (Class) ..................................................................122


Fig. 100 Office Visio UML class properties (Attributes) .........................................................123
Fig. 101 Office Visio UML class properties (Operations) .......................................................123
Fig. 102 Office Visio UML Operation Properties (Parameters)...............................................124
Fig. 103 Use Case diagram CAN EDI Diagnostic Tool ........................................................125
Fig. 104 UML Class Diagram database....................................................................................126
Fig. 105 Flowchart logging.......................................................................................................128
Fig. 106 Flowchart trace window...........................................................................................129
Fig. 107 Flowchart database .....................................................................................................130
Fig. 108 Flowchart generator window ...................................................................................131
Fig. 109 Flowchart messages (received and send)....................................................................132
Fig. 110 Flowchart configuratie bestanden inladen..................................................................133
Fig. 111 CAN EDI Diagnostic Tool (Software) .......................................................................134
Fig. 112 Menubar (CAN EDI Diagnostic Tool) .......................................................................135
Fig. 113 Toolbar (CAN EDI Diagnostic Tool).........................................................................135
Fig. 114 Selecteren van MDI vensters (CAN EDI Diagnostic Tool) .......................................136
Fig. 115 Trace venster (CAN EDI Diagnostic Tool)................................................................137
Fig. 116 Selecteren van bericht identiteit voor meer informatie (CAN EDI Diagnostic Tool) 138
Fig. 117 Informatie van de signalen in een bericht (CAN EDI Diagnostic Tool) ....................138
Fig. 118 Trace window configuratie (CAN EDI Diagnostic Tool) ..........................................139
Fig. 119 Generator venster (CAN EDI Diagnostic Tool) .........................................................140
Fig. 120 Database inladen en gebruiker (CAN EDI Diagnostic Tool) .....................................141
Fig. 121 Database venster bericht informatie (CAN EDI Diagnostic Tool).............................141
Fig. 122 Database venster signaal informatie (CAN EDI Diagnostic Tool) ............................142
Fig. 123 Bericht definities bewerken (CAN EDI Diagnostic Tool) .........................................142
Fig. 124 Signalen aan een bericht toevoegen of verwijderen (CAN EDI Diagnostic Tool) ....143
Fig. 125 Signaal definities bewerken (CAN EDI Diagnostic Tool) .........................................144
Fig. 126 Signaal toevoegen en verwijderen uit berichten (CAN EDI Diagnostic Tool) ..........144
Fig. 127 Signaal waardetabel (CAN EDI Diagnostic Tool) .....................................................145
Fig. 128 Filter vensters (CAN EDI Diagnostic Tool)...............................................................145
Fig. 129 Configuratie venster voor de logger (CAN EDI Diagnostic Tool) ............................146
Fig. 130 Waarschuwing bij overschrijven log bestand.............................................................146
Fig. 131 Graphic Signal Monitor (CAN EDI Diagonstic Tool) ...............................................147
Fig. 132 Recente configuratie bestanden (CAN EDI Diagnostic Tool) ...................................147
Fig. 133 Gebruik maken van het run venster (Windows).........................................................147
Fig. 134 Register variabelen in Windows (Registry Editor).....................................................148
Fig. 135 Applicatie folder (CAN EDI Diagnostic Tool) ..........................................................148
Fig. 136 UML Class Diagram Configuration ...........................................................................161
Fig. 137 Circuit 1 (J1939/11)....................................................................................................162
Fig. 138 Circuit 2 (J1939/11)....................................................................................................163
Fig. 139 Circuit 3 (J1939/11)....................................................................................................164
Fig. 140 MAPPING OF SAE J1939 INTO CANS ARBITRATION AND CONTROL FIELDS
...................................................................................................................................................165

____________________________________________________________________________________
11

Ryheul Kristof

CAN EDI Diagnostic Tool

Lijst met afkortingen


APC
APC
API
CAPL
CAPL
CAN
CiA
CPU
CRC
CSMA/CA
CSMA/CD
CVC
C#
DA
DB
DP
DPRAM
DLC
DLL
ECU
EDI
EMI
EOF
FIFO
GDE
HLP
IC
ID
IDE
ISO
KBPS
LAN
LIFO
LIN
LSB
MBPS
MCU
MDI
MSB
MSDE
NC
NRZ
OO
OOP
OSI
PC
PCI
PCMCIA

Advanced Programmable Controller


Automatic Powershift Control
Application Programming Interface
CANalyzer Programming Language
Communication Access Programming Language
Controller Area Network
CAN in Automation
Central Processing Unit
Cyclic Redundancy Check
Carrier Sense Multiple Access with Collision Avoidance
Carrier Sense Multiple Access with Collision Detect
Central Vehicle Controller
C sharp
Destination Address
Database
Digital Period
Dual-Ported RAM
Data Length Code
Dynamic Link Library
Electronic Control Unit
Electronic Data Interchange
Electro Magnetic Interference
End Of Frame
First In First Out
Generic Data Editor
Higher Layer Protocol
Integrated Circuit
Identifier
Integrated Development Environment
International Standards Organization
Kilo Bit Per Second
Local Area Network
Last In First Out
Local Interconnect Network
Least Significant Bit
Mega Bit Per Second
MicroController Unit
Multiple Document Interface
Most Significant Bit
Microsoft SQL Server Desktop Engine
Not Connected
Non Return to Zero
Object Oriented
Object Oriented Programming
Open System Interconnect
Personal Computer
Peripheral Component Interconnect
Personal Computer Memory Card International Association

____________________________________________________________________________________
12

Ryheul Kristof

PDO
PGN
RAM
RF
RP
RFC
RS232
SA
SAE
SDO
SOF
TC
TTCAN
UART
UML
USB
WYSIWYG
WYWIWYG

CAN EDI Diagnostic Tool

Process Data Object


Parameter Group Number
Random Access Memory
Radio Frequency
Recommended Practice
Request For Comment
Recommended Standard number 232
Source Address
Society of Automotive Engineers
Service Data Object
Start Of Frame
Transmission Controller
Time Triggered CAN
Universal Asynchronous Receiver/Transmitter
Unified Modeling Language
Universal Serial Bus
What You See Is What You Get
What You Write Is What You Get

____________________________________________________________________________________
13

Ryheul Kristof

CAN EDI Diagnostic Tool

1.Inleiding
Het ontwikkelen van een software programma dat applicatiespecifieke gegevens uit een CAN
bus kan halen en deze kan weergeven in een trace venster. De data wordt weergegeven in een
ruw formaat die aan de hand van een database moet kunnen omgezet worden naar begrijpbare
tekst. Het verzenden van berichten moet zowel cyclisch als manueel kunnen gebeuren, ook hier
dient er een mogelijkheid te zijn om berichten via een database aan te maken. Dit heeft als
voordeel dat de softwaregebruiker een minimale kennis nodig heeft over het CAN protocol.
Hierdoor kan men deze software beschikbaar stellen voor klanten, die dan bij een foutsituatie
een log bestand kunnen doorsturen naar een DANA center.
Verdere informatie vind je bij de project omschrijving.

2. Project omschrijving
2.1 Situering
Tegenwoordig beschikken vele Off-Highway machines over een CAN bus. Op dit moment zijn
heel wat machinecomponenten aangesloten, die een schat aan informatie uitwisselen met
elkaar, aan de hand van een berichten systeem. Om bepaalde problemen te kunnen vaststellen
of onderzoeken is het noodzakelijk dat deze informatie kan worden ingelezen.
Voor het inlezen van dergelijke CAN boodschappen met een PC is een extra CAN chip nodig
die verwerkt zit in een USB dongle. Dit USB apparaat wordt aangesloten op de CAN bus. De
softwaredriver van dit USB apparaat bevat heel wat functies om communicatie via de CAN bus
mogelijk te maken. Elke functie is echter beschreven in een hiervoor bestemde standaard, de
RP1210A standaard.
Voor het interpreteren van deze CAN data maken we dan weer gebruik van een andere
standaard, namelijk de J1939 standaard. Deze standaard beschrijft hoe we de CAN bus moeten
gaan gebruiken om op een gestandaardiseerde manier data te definiren en te interpreteren.
Deze data beschrijft de status van heel wat machinesignalen en hun overeenkomstige waarde.
2.2 Doel
Vertrekkende vanuit een bestaande applicatie, gegevens vanuit een CAN bus halen om deze
chronologisch te presenteren op naam. Deze gegevens komen van een APC controller die
informatie bevat over de aangesloten motor. Er kunnen natuurlijk ook berichten op de bus
verschijnen van andere controllers.
De opdracht is opgesplitst in drie fases, die telkenmale op elkaar verder bouwen.

Uitbreiden functionaliteit van bestaande modules.


- Nood aan een relatieve presentatie van de ontvangen boodschappen, zodat eenzelfde
bericht slechts nmalig weergegeven wordt.

____________________________________________________________________________________
14

Ryheul Kristof

CAN EDI Diagnostic Tool

- Alle ingelezen boodschappen moeten naar een bestand kunnen worden geschreven.
Dit bestandsformaat staat vast door een reeds gebruikt en aangekocht systeem, namelijk
Vector CANalyzer.
- Mogelijk maken om berichten cyclisch, met een instelbare tijd automatisch te laten
versturen.
- Mogelijk maken om configuratie bestanden aan te maken en in te lezen.
In het configuratie bestand komt informatie over de verschillende vensters die gebruikt
kunnen worden (zichtbaar, locatie, lengte, breedte en andere specifieke informatie).

Implementatie signaal database.


- De ruwe data door een database kunnen omzetten naar bruikbare signalen. Het
formaat van deze database ligt terug vast door een reeds gebruikt en aangekocht
programma.
- Een dergelijke database kunnen inlezen en gebruiken.
- De database kunnen aanpassen en opslaan.

Nieuwe functionaliteit op basis van de database.


- Waar de boodschappen gepresenteerd worden in ruw formaat, omzetten via de
database zodat deze met hun naam kunnen worden weergegeven.
- Een CAN boodschap wordt gedentificeerd door een ID opgebouwd uit vier
onderdelen:

De prioriteit (priority)
De PGN
Het destinatie adres of adres van de ontvanger (destination address)
Het bron adres of adres van de zender (source address)

- Optie nodig om de prioriteit en/of het adres uit de identificatie te negeren bij opzoeken
in de database.
- De boodschappen die de gebruiker wil versturen voorstellen bij naam en de
bevatte signalen presenteren op naam.
- Signalen in een apart venster tonen, zodat de gebruiker de gewenste signalen kan
bekijken gedurende het uitvoeren van een meting.
- Grafische voorstelling van een selectie beschikbare signalen.

Bijkomende functionaliteit
- De hardware en software filters in een klasse apart plaatsen. De software filters zo
programmeren dat deze ook kunnen filteren op data die in het bericht zit, terwijl de
hardware filters enkel kunnen filteren op de identiteit.

____________________________________________________________________________________
15

Ryheul Kristof

CAN EDI Diagnostic Tool

2.3 Tools & skills:

Computer met Windows besturingssysteem (XP Pro)


Microsoft Visual Studio 2003 for C#.NET, .NET framework 1.1
Vector CANalyzer
Ifak System isCAN USB interface, Softing CAN Usb interface
RP1210A drivers
Testopstelling met APC en CAN bus

____________________________________________________________________________________
16

Ryheul Kristof

CAN EDI Diagnostic Tool

3. Stageplaats en stage beschrijving


3.1 Voorstelling van het bedrijf
3.1.1 Situering van het bedrijf binnen DANA
De Dana Corporation is een Amerikaanse multinational, met hoofdkwartier in Toledo, Ohio. Ze
is n van de grootste onafhankelijke producenten van onderdelen voor de automobielindustrie.
Ze is wereldleider op het vlak van engineering, onderzoek en productie van systemen en
producten voor de off-highway industrie.
Dana staat bekend om haar specifieke managementstijl en haar drang naar vernieuwing.
Ze heeft fabrieken, ontwikkel- en ontwerpcentra verspreid over 30 landen en telt zn 45.000
werknemers. Dana realiseert wereldwijd een omzet van meer dan 8 miljoen euro. Dana maakt
onderdelen voor zowel de auto-industrie als de Off-Highway-markt.
De multinational kan men opdelen in een vijftal groepen:
o
o
o
o
o

Automotive Systems
Automotive Aftermarket
Commercial Vehicle Systems Group
Engine and Fluid Management Group
Off-Highway Systems and DCC.

Het bedrijf in Brugge Spicer Off-Highway Belgium nv maakt deel uit van de Off-Highway
Systems.

3.1.2 De geschiedenis van het bedrijf


De naam Clark werd in 1903 voor het eerst gebruikt toen Eugene Clark in Chicago de Clark
Equipment Company oprichtte. Oorspronkelijk werden enkel heftrucks en trekkers met
bijhorende assen geproduceerd. In 1927 begon men met transmissies bouwen. Het bedrijf, dat
als een familiebedrijf startte, groeide door de jaren heen uit tot een multinational.
In 1968 werd de vennootschap Clark Automotive Europe N.V. opgericht. De oprichting van
de vennootschap in Belgi en de vestiging ervan in Brugge was een gevolg van een project
tussen Clark Equipment Company en La Brugeoise et Nivelles N.V. om samen powershift
transmissies te produceren voor de Europese markt. Powershift transmissies zijn
versnellingsbakken met een natte platenkoppeling per versnelling. Bij dit type
versnellingsbakken is de overgang tussen de ene versnelling en de andere met een minimum
aan koppelverlies mogelijk.
In 1971 werd de onderneming in Brugge 100% dochteronderneming van Clark Equipment
Company en telde het bedrijf reeds 276 werknemers.
Door de toenemende verkoop en ontwikkeling van nieuwe types transmissies was er in 1975
een eerste uitbreiding nodig van de fabriekshallen. In 1980, 1988 en 1993 volgden verdere
uitbreidingen. Sindsdien bedraagt de totale bebouwde oppervlakte ruim 29000 m en biedt
onderdak aan een modern en efficint machinepark. Het kantoorgebouw kreeg in 1981 een
tweede verdieping en werd in 1991 verder uitgebouwd om zo alle administratieve afdelingen
degelijk te kunnen huisvesten. Vandaag beslaat dit 3500 m.

____________________________________________________________________________________
17

Ryheul Kristof

CAN EDI Diagnostic Tool

Op 1 augustus 1990 werd de Noord-Italiaanse onderneming Hurth Axle door de Clark-groep


overgenomen. Zo ontstond de naam Clark-Hurth Components.
Het bedrijf kende zijn zwarte dagen in het begin van de jaren negentig. Er waren
herstructureringen en meerdere zware afvloeiingen nodig om het bedrijf te behoeden voor een
nakend faillissement. Deze periode blijft een zware bladzijde in de geschiedenis van het bedrijf,
maar betekende ook het begin van een nieuwe bloei.
In 1992 werd de afdeling Clark Material Handling (de constructie van de befaamde
vorkheftrucks) verkocht aan Terex. De Clark Equipment Company bestond dan nog slechts uit
4 divisies. In mei 1995 werd de volledige groep Clark Equipment Company verkocht aan de
Amerikaanse groep Ingersoll Rand.
Op 14 februari 1997 volgde dan de uiteindelijke verkoop van de volledige Clark-Hurth
Components divisie aan Dana Corporation. Sindsdien behoort het bedrijf tot de Spicer OffHighway Components Group van Dana.
Nauwelijks 1 maand later werd aan Brugge de verantwoordelijkheid toevertrouwd voor de
ontwikkeling van alle nieuwe transmissies voor de wereld markt en werden financile middelen
vrijgemaakt voor de uitbouw van een onderzoeks- en ontwikkelingslaboratorium voor
componenten en nieuwe transmissies.
Het deel Off-Highway in de naam duidt op het toepassingsgebied waarin de versnellingsbakken
terechtkomen. Voertuigen die gedurende de bedrijfsomstandigheden niet op de weg rijden
bijvoorbeeld kranen, bulldozers, heftrucks, graafmachines, mijnvoertuigen, tractievoertuigen.
Alle onderzoek en product-ontwikkeling gebeurt te Brugge. In ons testlaboratorium voeren we
testen uit op zowel onderdelen als op volledig afgewerkte producten. We hebben ook een eigen
testpiste.
De producten worden ingezet in machines voor wegen-, land- en mijnbouw. Daarnaast is Dana
ook zeer sterk vertegenwoordigd in de markt van de goederenbehandeling.
De toepassingen zijn vooral bedoeld voor machines die weinig of niet op de openbare weg
rijden, vandaar ook de naam Off-Highway. Wij bieden bij onze producten ook elektronische
stuursystemen aan. Dit laat de klant toe het maximale rendement uit hun voertuigen te halen,
zonder echter de kwaliteit van hun uitrusting in gevaar te brengen.

3.1.3 Fabricatieprogramma
De producten die ontwikkeld en vervaardigd worden zijn bestemd voor de Off-Highway
industrie. Er wordt aan de klanten een volledig gamma powershift transmissies en
koppelomvormers aangeboden. Daarnaast biedt men de klanten ook elektronische
controlesystemen aan, die hen toelaten om het maximale rendement uit hun voertuigen te halen
zonder dit te beschadigen.
De producten zijn bestemd om ingebouwd te worden in heavy-duty off-highway-machines,
zoals:
o
o
o
o

Telescopische hoogtewerkers
Asfalteermachines
Graafmachines
Mijnbouwmachines

____________________________________________________________________________________
18

Ryheul Kristof

o
o
o
o

CAN EDI Diagnostic Tool

Kranen
Bosontginningsmachines
Vorkheftrucks

Alle producten worden op bestelling vervaardigd en er wordt zoveel mogelijk gewerkt volgens
het Just In Time-systeem (JIT), waardoor de stock tot een minimum beperkt wordt. De
producten zijn meestal bestemd voor priv-ondernemingen zoals Caterpiller, Volvo, Manitou,
Case New Holland,
De productie van koppelomvormers en transmissies vormt het leeuwendeel van onze
activiteiten. Zowel de afwerking van de onderdelen op CNC-gestuurde machines, de
warmtebehandeling als de montage tot volledig afgewerkte transmissies gebeurt in onze
vestiging. Op gesofisticeerde testapparatuur, door onze eigen ingenieurs ontwikkeld, wordt elke
transmissie grondig getest voor levering.
Het bedrijf heeft op vandaag meer dan 700 technisch geschoolde medewerkers. De expansie op
het vlak van tewerkstelling gedurende de afgelopen periode is voornamelijk te danken aan de
combinatie van drie factoren. Vooreerst is er het feit dat begin 2006 het zusterbedrijf in de
Verenigde Staten werd gesloten. De machines en bijbehorende productievolumes werden
hierbij overgebracht naar Brugge. De succesvolle lancering van een aantal nieuwe producten
gedurende de afgelopen jaren is een tweede factor. Hierbij werden de mechanica en de
elektronica met elkaar gecombineerd. Daar bovenop komt nog het feit dat onze afzetmarkt een
sterke heropleving kent.

3.1.4 Situering van het bedrijfscontact


Mijn stageplaats is op de tweede verdieping van het kantoorgebouw bij de afdeling controls. In
het totaal werkt men met ongeveer 45-50 personen in de afdeling engineering (bovenste
verdieping).

Fig. 1 Hoofdingang kantoorgebouw te brugge

____________________________________________________________________________________
19

Ryheul Kristof

CAN EDI Diagnostic Tool

3.1.5 Grondplan van het bedrijf

STEEL PROD.

ASSEMBLY
V

New assembly

Medische dienst

S
ROUGH
STORES

PARKING

PARKING

MAINTENANCE

HEATTREAT
TOOLROOM
& CRIB
STORES

OFFICES
SHIPPING

receptie

: verfopslag
V

: EHBO

: spuitkabine
S

: cafetaria

: verzamelplaats
bij evacuatie

Plant Layout Spicer Off-highway Products Division

Op onderstaande foto vind je het grondplan van DANA Spicer Off-Highway Brugge.
Ik bevind mij in het rode gedeelte rechtsboven (offices).

ENG
.
L AB

Paint & Pack

N
W
E

20

Ten Briele 3

Ten Briele 1

Fig. 2 Grondplan DANA Spicer Off-Highway Brugge


____________________________________________________________________________________
20

Ryheul Kristof

CAN EDI Diagnostic Tool

3.2Bedrijfsorganigram

Fig. 3 Bedrijfsorganigram DANA Spicer Off-Highway Products Division

3.3Overzicht productiestappen
Enkele productiestappen:

Vertanding
Normaliseren
Hardingsproces
Draaien/frezen
Slijpen/harddraaien
Wassen, drogen en schilderen van transmissie
Inpakken en stockeren

In totaal zijn er 22 productiestappen.

____________________________________________________________________________________
21

Ryheul Kristof

CAN EDI Diagnostic Tool

3.4 Algemene richtlijnen en veiligheidsregels


3.4.1 Toegang
- Uitsluitend hoofdingang gebruiken bij het betreden of verlaten van fabriek
- Iedere bezoeker/contractor zal zich vrijwillig onderwerpen aan controle door
bewaking, indien hierom verzocht wordt.
- Personenwagens zijn niet toegelaten op het bedrijfsterrein, tenzij goedkeuring van
bewaking.
- De 10 regels van orde en netheid worden strikt gevolgd.

3.4.2 Veiligheid
- Er is een algemene verplichting in de werkplaatsen om een veiligheidsbril te dragen.
- Veiligheidsschoenen zijn verplicht tijdens het werken in de werkplaatsen.
- Er is een rookverbod van kracht binnen en buiten alle gebouwen.
Roken is enkel toegelaten in de aangeduide rooklokalen.
- De max. toegelaten snelheid op het bedrijf is 20 km/u.
Verdere verkeersaanduidingen dienen steeds nageleefd te worden.
- Betreden van werkplaatsen of installaties is verboden zonder voorafgaandelijke
toelating van de desbetreffende Spicer verantwoordelijke.
- Het is verboden, zonder voorafhaandelijke goedkeuring, werken te verrichten die:

een risico veroorzaken tot brand en explosiegevaar (vuurvergunning verplicht)


toegang vereisen tot enge ruimtes, tanks,
foto-, film, of videoapparatuur vereisen.

- Bij brand, ongeval of noodsituatie: blijf kalm, bel 2500 en begeef u naar een veilige
plaats.
- Bij hoogtewerk: veiligheidsgordel, helm en afbakening werkzone verplicht.
- Er worden geen machines, gereedschappen of producten van SOH gebruikt zonder
toestemming van de Spicer cordinator.

3.4.3 Milieu
- Alle geproduceerde afvalstoffen dienen te worden verwijderd volgens afspraak en
flowcharts in de afdelingen.
- Er wordt niets in de riool gedumpt.
- Er worden geen gechloreerde koolwaterstoffen gebruikt.
- Er wordt maximaal gesorteerd.
- Alle gebruikte scheikundige producten moeten goedgekeurd zijn door SOH.

3.4.4 Bijkomende info


- Extra richtlijnen steeds bij de bewaking of uw Spicer Off-Highway Cordinator.

____________________________________________________________________________________
22

Ryheul Kristof

CAN EDI Diagnostic Tool

4.CAN & toebehoren


4.1 Inleiding ingebouwde netwerken
4.1.1 Wat is een ingebouwd netwerk ?
Sinds de introductie van de PC kregen de halfgeleider componenten vooral de CPU en het
geheugen de meeste aandacht in de media. De chip fabrikanten bouwen lage prestatie
microcontrollers steeds kleiner en kleiner. Dit maakt ze niet alleen goedkoper maar ook het
verbruik daalt. Bijna in elk toestel zitten er n of meerde microcontrollers verwerkt.
(keuken toestellen, telefoons, computers, computer toebehoren, radios, tvs, autos, )
De trend van de meer betaalbare microcontrollers resulteert in systemen waar meerdere
microcontrollers gebruikt worden. Er is dan nood aan een communicatie kanaal tussen deze
controllers die in het systeem zijn verwerkt, namelijk embedded networking.
Typische voorbeelden van multi-controller systemen met communicatie vereisten zijn autos en
camions, huishoudelijke toestellen, lift systemen, en een hele rij industrile machines.

4.1.2 Communicatie in de automatisering.

Fig. 4 Communicatie in de automatisering (piramide)

De automatiseringspiramide symboliseert de verschillende controle niveaus en het aantal


gecomputeriseerde systemen in een bedrijfsautomatiseringssysteem. De 3 laagste niveaus zijn
deze die gemplementeerd worden in een complexe machine. Het Sensor and Actuator niveau
____________________________________________________________________________________
23

Ryheul Kristof

CAN EDI Diagnostic Tool

bevat simpele sensoren (contact sensoren, afstandssensoren, temperatuur sensoren, ) en


actuators gebruikt in proces. Het controller niveau implementeert onmiddellijke communicatie
tussen de sensoren en actuators.
Vroeger was communicatie op dit niveau niet mogelijk, wat wil zeggen dat elke sensor of
actuator onmiddellijk gekoppeld moest zijn met zijn eigen draden aan het volgende niveau.
Vandaag worden meer en meer sensoren en actuators ontwikkeld met een netwerk kaart.
Doordat verschillende componenten in grote hoeveelheden op het laagste niveau nodig zijn, is
de kost nog altijd een belangrijk punt. Het ontwerpen van sensoren die enkele gegevens
doorgeven met hoge prestatie processoren en netwerk adapters zoals ethernet is geen optie.
Andere technologien gebaseerd op serile bussen worden al jaren gebruikt, omdat ze
ontvangen kunnen worden door de laagste prestatie microcontrollers en microprocessoren.
CAN is n van de vele, die op het gebied van netwerk technologien bruikbaar zijn op het
laagste niveau van de automatiseringspiramide.
Op controller niveau worden microcontrollers gebruikt om alle inputs te verwerken. Een soort
controle algoritme wordt toegepast en verstuurd de nodige commandos naar de actuators de
outputs.
Voor elk hoger niveau in de automatiseringspiramide dient de prestatie van het systeem hoger
te zijn. In deze niveaus wordt hardware naar het ingebouwde netwerk enkel gebruikt als een
directe link naar de laagste niveaus.
Plaatsen van systemen in de automatiseringspiramide.
Embedded systems die meerdere microcontrollers gebruiken en gelijk welke soort van
communicatie gebruikt kan dikwijls onmiddellijk vergeleken worden met de laagste niveaus
van de automatiseringspiramide.
Hoe dichter een module bij de sensoren en actuators staat, hoe meer kostgevoelig het is en hoe
meer de communicatie vereisten tot de basis kunnen herleid worden.

____________________________________________________________________________________
24

Ryheul Kristof

CAN EDI Diagnostic Tool

4.2 Wat is CAN


Het CAN protocol is een ISO standaard (ISO 11898) voor serile datacommunicatie. Het
protocol werd ontworpen gericht naar de automobiel applicaties in de begin jaren 80. Vandaag
is CAN wereldwijd verspreid en wordt gebruikt in industrile automatisatie als ook in autos en
mobiele machines.
De CAN standaard bevat een fysieke laag en een datalink laag waarin een aantal verschillende
types berichten beschreven staan, botsing (arbitration / collision) regels voor bus toelating en
methodes voor foutdetectie en foutbeperkingen.
4.2.1 Het CAN protocol

Het is een serile data communicatie bus voor real-time controletoepassingen.


Data rates tot 1 Mbps.
Het was origineel ontworpen voor gebruik in autos.
De fysieke laag gebruikt twisted pair draden voor transmissie (transport van gegevens)
Een op bit gebaseerde arbitrage om toegang op de bus te controleren.
De berichten zijn klein (max. 8 bytes) en zijn beschermd door een checksom.
Er is geen expliciet adres aanwezig in het bericht, in de plaats daarvan bevat elk bericht
een getal die zorgt voor de prioriteit op de bus, en ook een identificatie van de data in
het bericht.
Een uitgewerkte foutafhandeling schema dat het opnieuw sturen van berichten mogelijk
maakt wanneer deze niet goed werd ontvangen.
Er zijn efficinte middelen om fouten te isoleren en defecte apparaten te verwijderen uit
de bus.
Een multi-master hirarchie, die het mogelijk maakt om intelligente en redundante
systemen te maken. (Als n controller defect is, blijft het netwerk in werking).
Broadcast communicatie. Een zender stuurt naar alle controllers in het netwerk, alle
controllers lezen het bericht en beslissen of het bruikbaar is voor hen.

4.2.2 Hogere protocol lagen


Het CAN protocol zegt enkel hoe kleine pakketten van data veilig getransporteerd kunnen
worden van punt A naar punt B, gebruikmakend van een gedeeld communicatie medium.
Het bevat niets over onderwerpen zoals flow control, transport van data groter dan 8 byte,
apparaat adressering, onderneming van communicatie, enz.. Deze onderwerpen worden door
een hogere protocol laag omvat (HLP). De term HLP is afgeleid van het OSI model en de
zeven lagen.
Hogere protocol lagen worden gebruikt voor:

Gestandaardiseerde opstart, procedures voor het regelen van de bit rate.


Adressen verdelen onder deelnemende apparaten of soorten berichten.
Het uitzicht van het bericht bepalen.
Routines voor foutafhandeling op systeemniveau.

____________________________________________________________________________________
25

Ryheul Kristof

CAN EDI Diagnostic Tool

4.2.3 CAN producten


Op het laagste niveau zijn er in principe twee soorten CAN producten beschikbaar op de markt,
CAN chips en CAN ontwikkelingshulpmiddelen. Op een hoger niveau zijn er nog twee soort
producten namelijk CAN modules en CAN ontwerp hulpmiddelen. Een groot aantal van deze
zijn verkrijgbaar op de open markt.

4.2.4 De CAN bus


De CAN bus is een broadcast type bus. Dit betekent dat alle apparaten die op de bus zijn
aangesloten alle transmissies kunnen horen. Er is geen enkele manier om een bericht te
zenden naar n enkel apparaat. De CAN hardware heeft wel de mogelijkheid om lokaal filters
in te stellen zodat het apparaat enkel reageert op het gewenste bericht.

Fig. 5 Broadcast principe CAN bus

CAN gebruikt NRZ encodering (met bit-stuffing) voor data communicatie op een differentile
twee draadbus. Het gebruik van NRZ codering verzekert compacte berichten met een
minimumaantal overgangen en een hoge weerstand tegen externe storing.
De modules worden op een telegrafen manier op de bus aangesloten (bus structuur).
Als een apparaat een nul op de bus stuurt, dan is heel de bus in die status ongeacht of er een
andere node een n op de bus stuurt. (de nul overheerst).
De CAN standaard definieert vier verschillende types berichten. De berichten gebruiken
slimme schemas of een op bit gebaseerde arbitrage om de toegang tot de bus te controleren,
het bericht bevat ook een prioriteit.

____________________________________________________________________________________
26

Ryheul Kristof

CAN EDI Diagnostic Tool

4.3 Waarom CAN ?


Er zijn enkele goede redenen waarom het CAN protocol de goede keuze is.
4.3.1 Volwassen standaard
Het CAN protocol bestaat al meer dan 15 jaar (sinds 1986). Er zijn nu veel CAN producten en
hulpmiddelen beschikbaar op de markt.
4.3.2 Hardware implementatie van het protocol
Het CAN protocol is gemplementeerd in de hardware van allerhande ICs. Dit maakt het
mogelijk om de foutafhandeling en foutbeperkingen van CAN te combineren met een hoge
transport snelheid. De methode die gebruikt wordt voor het versturen van berichten naar de
juiste ontvanger draagt bij tot het bereiken van een goed gebruik van de beschikbare
bandbreedte.
4.3.3 Simpel transmissie medium
Het transport medium maakt gebruik van twisted pair draden. Een CAN systeem kan ook
werken met n enkele draad. In sommige applicaties zijn andere oplossingen beter geschikt
zoals optische kabels of RF (radio frequency) verbindingen. Niettegenstaande er een transport
hardware standaard is (twisted pair), is het mogelijk om andere oplossingen te gebruiken
afhankelijk van de systeem eisen.
4.3.4 Excellente foutafhandeling
De foutafhandeling van CAN is een van de heel sterke voordelen van het protocol.
De foutdetectie systemen zijn uitgebreid, en de foutbeperkingen zijn goed ontworpen.
De foutafhandeling en het opnieuw versturen van berichten wordt automatisch gedaan door de
CAN hardware.
4.3.5 Goede foutbeperking
Een optredende fout in het systeem (netwerk) kan het transport van heel het systeem stil leggen
(bv. door de totale bandbreedte te gebruiken). Het CAN protocol heeft een ingebouwde functie
dat voorkomt dat een fout het volledige systeem blokkeert.
Het apparaat dat de fout veroorzaakt heeft wordt uitgesloten voor verder verkeer op de CAN
bus.

____________________________________________________________________________________
27

Ryheul Kristof

CAN EDI Diagnostic Tool

4.4 Waar wordt CAN gebruikt ?


CAN komt voort uit de automobiel industrie waar het gebruikt wordt als het overheersende bus
systeem voor in-vehicle netwerken. Vijf of meer CAN netwerken connecteren meer dan 60
ECUs in afgewerkte (high-end) personen autos. De laatste tijd ontwierp CiA open netwerken
voor speciale autos zoals taxis en politie autos om diensten te connecteren in de auto. Bv.
taximeter, printer, blauw licht, creditkaart lezer, en andere.
CAN wordt niet enkel gebruikt in autos maar ook in gelijk welk ander applicatie veld. De
meeste applicaties vereisen hoge niveau compatibiliteit. Voor deze reden zijn er hogere
protocol lagen ontworpen.

4.4.1 CAN toepassingsgebieden:

Personen autos
Camions en bussen
Off-highway en off-road voertuigen
Maritieme elektronica
Vliegtuig en ruimtevaart elektronica
Fabrieksautomatisatie
Machine besturing
Gebouw automatisatie, liften en roltrappen
Medisch materiaal en toestellen

4.5 Voor en nadelen van CAN


4.5.1 Voordelen van CAN:

Kortere installatietijd
Minder gewicht, door afname van de hoeveelheid kabels
Minder aansluitingen en aftakkingen en dus minder storingsoorzaken
Ruimtebesparend
Minder kans op variabele magnetische velden
Storingen zoeken biedt meer mogelijkheden
Een sensor geeft informatie aan verschillende stuureenheden door, waardoor het aantal
componenten vermindert
Meer comfortmogelijkheden en een beter rijgedrag door communicatie tussen de
verschillende systemen
Extra functies zijn mogelijk mits andere programmatuur
Het systeem is gemakkelijk aan te passen per land en aan de behoeften van de klant
Minder wisselstukken waardoor een eenvoudiger en goedkoper voorraadbeheer
Ook kostenbesparing was n van de doorslaggevende redenen voor het invoeren van
CAN. Er waren immers minder draden en sensoren nodig bij een CAN-netwerk.

____________________________________________________________________________________
28

Ryheul Kristof

CAN EDI Diagnostic Tool

4.5.2 Er zijn echter ook enkele nadelen:

Door de ingewikkelde constructie is het nodig dat de mecaniciens in de werkplaats extra


geschoold worden.
Specifieke merkgebonden apparatuur dringt zich op met de daarbij horende kennis.
Soms is de snelheid van de bus te traag, en gaat men voor bepaalde snelle toepassingen
toch klassieke bedrading nemen

4.6 CAN berichten


4.6.1 Vier verschillende soorten CAN berichten
4.6.1.1 Data frame

Het data frame is het meest gebruikte bericht type. Het bevat de volgende belangrijke delen:
o Het arbitrage veld, die de prioriteit van het bericht bepaalt wanneer twee of meer
apparaten op de bus vechten (als ze tezelfdertijd een bericht sturen).
Het arbitrage veld bevat:
voor CAN 2.0A, een 11-bit identiteit en n bit RTR die overheersend is voor
data frames.
voor CAN 2.0B, een 29-bit identiteit (met twee bits extra voor SRR en IDE) en
n bit RTR die overheersend is voor data frames.
o Het data veld die 0 tot 8 bytes aan data bevat.
o Het CRC veld die een 15-bit checksom bevat, berekend op de meeste delen van het
bericht. Deze checksom wordt gebruikt voor fout detectie.
o Een erkenning (acknowledgement) slot, elke CAN controller die een bericht correct
ontvangt zend een erkenning bit. De verzender controleert of de erkenning bit aanwezig
is, zoniet herstuurt hij het bericht opnieuw.

Fig. 6 CAN 2.0A data frame (Standard CAN)

Fig. 7 CAN 2.0B data frame (Extended CAN)

____________________________________________________________________________________
29

Ryheul Kristof

CAN EDI Diagnostic Tool

4.6.1.2 Remote frame

Het remote frame is identiek aan de data frame, met twee belangrijke verschillen:
o Het is expliciet gemarkeerd als remote frame.
o Er is geen data veld.
Het voorgenomen doel van het remote frame is het verzoeken van transmissies van het
overeenkomstige data frame. Vb. als node A een remote frame verstuurt naar B met in het
arbitrage veld 234, dan kan node B een date frame versturen met ook 234 in zijn arbitrage veld.
De Data Length Code dient ingevuld te worden met de lengte van het verwachte antwoord
bericht, anders werkt de arbitrage niet.

Fig. 8 CAN remote frame

4.6.1.3 Error frame

Simpel gezegd is de error frame een special bericht dat zich niet aan de frame regels houdt van
een CAN bericht. Het wordt verstuurd wanneer een apparaat een fout detecteert, hierdoor
zullen alle apparaten aangesloten op de bus de fout detecteren. De verzender zal automatisch
het bericht opnieuw versturen. Er is een uitgewerkt schema van fout tellers zodat de node het
busverkeer niet onmogelijk maakt.
Het error frame bevat een fout vlag met 6 gelijke bits (overtreding van de bit-stuffing regel) en
een fout afbakening van 8 bits. De fout afbakening verstrekt plaatst voor andere apparaten op
de bus om ook hun fout vlagen te zenden wanneer deze de eerste fout vlag detecteert.

Fig. 9 CAN error frame


____________________________________________________________________________________
30

Ryheul Kristof

CAN EDI Diagnostic Tool

4.6.1.4 Overload frame

Het overload frame wordt hier vermeld voor de volledigheid. Het is bijna identiek als het error
frame met een gelijkaardig formaat en wordt verstuurd door een apparaat dat het te druk heeft.
Het overload frame wordt niet veel gebruikt, doordat de CAN controllers vandaag slim genoeg
zijn om het niet meer nodig te hebben. De enige controller die het nu nog gebruikt is de
verouderde 82526 MCU.
4.6.2 Standard vs Extended CAN
Oorspronkelijk definieerde de CAN standaard de lengte van de identiteit in het arbitrage veld
op elf. Later werden ze door de eisen van de kopers verplicht om de standaard uit te breiden.
Het nieuwe formaat wordt Extended CAN genoemd en laat niet minder dan 29-bits toe in de
identiteit. Om onderscheid te kunnen maken tussen deze twee frame types werd een
gereserveerde bit gebruikt in het controle veld.
De standaarden worden als volgt genoemd:

2.0A, met 11-bit identiteit.


2.0B, de uitgebreide versie met 29-bit identiteit (of 11-bit, je kan ze mixen)
Een 2.0B apparaat kan:
Actief zijn: Verzenden en ontvangen van uitgebreide berichten
Passief zijn: Stil verwerpen van uitgebreide ontvangen berichten.
1.x, verwijst naar de oorspronkelijke specificaties en zijn revisies.

Nieuwe CAN controllers zijn meestal van het 2.0B type. Een 2.0A controller kan geen 29-bit
arbitrage veld ontvangen.
Sommige mensen verdedigen de standaard CAN berichten als beter dan de uitgebreide CAN
berichten, omdat de bus meer belast wordt met uitgebreide CAN berichten. Dit is niet altijd zo,
als je het arbitrage veld gebruikt om data te versturen kan deze voor minder busverkeer zorgen.
Dan is de busbelasting kleiner dan met standaard CAN berichten.

4.6.3 Basic CAN vs Full CAN


De termen Basic CAN en Full CAN komen nog uit de kindertijd van CAN. Intel met zijn
82526 CAN controller verstrekte een DPRAM interface voor de programmeur, Philips
gebruikte in zijn 82C200 een FIFO (Queue) georinteerd programmeermodel met gelimiteerde
filter mogelijkheden. Om deze twee types te onderscheiden benoemde men Intel als Full
CAN en Philips als Basic CAN. Vandaag ondersteunen de meeste CAN controllers beide
programmeermodellen.
Er is geen compatibiliteitsprobleem tussen de twee types, dus een Full CAN controller kan
communiceren met een Basic CAN en omgekeerd.

____________________________________________________________________________________
31

Ryheul Kristof

CAN EDI Diagnostic Tool

4.6.4Bus Arbitrage en bericht Prioriteit


De bericht arbitrage (het proces waarin twee of meer CAN controllers overeenkomen wie de
bus mag gebruiken) is van groot belang voor de echt bruikbare bandbreedte voor data transport.

Fig. 10 Bus arbitrage en bericht prioriteit (standaard CAN)

Elke CAN controller mag een bericht versturen als er gedetecteerd werd dat de bus niets
uitvoert. Dit kan resulteren dat twee of meer controllers een bericht tezelfdertijd versturen.
Het apparaat dat een bericht verstuurd bekijkt de bus tijdens het verzenden, als het apparaat een
waarde op de bus ziet dat hij zelf niet heeft gestuurd dan stopt hij onmiddellijk met het
versturen van zijn bericht en wordt hij een ontvanger. Dit is identiek aan de arbitrage van een
IC netwerk. De arbitrage gebeurt over het hele arbitrage veld, als dit veld verstuurd is blijft er
exact n zender over. Dit apparaat gaat door met het verzenden alsof niets gebeurd is. De
andere apparaten proberen hun bericht opnieuw te sturen wanneer de bus terug vrij komt.
Er is geen tijdsverlies in het arbitrage proces.
Een belangrijke conditie voor deze op bit gebaseerde arbitrage is dat er geen twee apparaten
hetzelfde arbitrage veld hebben. Een uitzondering hierop is wanneer een bericht geen data
bevat. Dan mag elk apparaat het bericht versturen.
Zoals eerder vermeld is de nul dominant bij de arbitrage. Hieruit volgt dat hoe hoger de
prioriteit is, hoe kleiner het getal moet zijn. Dus als bijvoorbeeld de prioriteit n byte is, heeft
FFh de kleinste prioriteit en 00h de hoogste prioriteit.

4.6.5 Bericht adressering en identificatie


Er is geen expliciet adres in een CAN bericht. Elke CAN controller neemt alle verkeer op de
bus aan, door het gebruik van een combinatie van hardware filters en software filters kan er
vast gesteld worden of het bericht interessant is of niet.
Alle CAN controllers zullen het arbitrage veld of een deel ervan gebruiken als een sleutel in het
hardware filtering proces.
____________________________________________________________________________________
32

Ryheul Kristof

CAN EDI Diagnostic Tool

De standaard zegt niet dat het arbitrage veld gebruikt moet worden als bericht identificatie,
niettegenstaande het heel veel gebruikt wordt.

4.7 CAN fysieke lagen


4.7.1 Verschillende fysieke lagen
Een fysieke laag definieert:

het elektrische niveau


het signaal schema op de bus
de kabelimpedantie
andere

Er zijn meerdere verschillende fysieke lagen:

Het meest gebruikte type is deze die de CAN standaard definieert, ISO 11898-2, het is
een tweedraad bus en gekend als high-speed CAN.
Een ander deel van dezelfde ISO standaard, ISO 11898-3 definieert een andere
tweedraad bus voor lagere bus snelheden. Het is fout tolerant, dus transport kan verder
gaan zelfs als n draad kortgesloten is naar massa.
Deze standaard is beter gekend als low-speed CAN.
SAE J2411 definieert een ndraad fysieke laag (plus massa). Het wordt voornamelijk
gebruikt in autos (vb. GM-LAN)
Er bestaan verscheidene merkgebonden fysieke lagen.
De wijzigingen van RS485 werden vroeger gebruikt toen CAN drivers nog niet
bestonden.

Verschillende fysieke lagen kunnen niet (is een regel) samenwerken. Sommige combinaties
kunnen werken, of blijken te werken, onder zeer goede condities.

4.7.2 Maximum bus snelheid


De maximum snelheid van een CAN bus is volgens de standaard 1Mbps. Sommige CAN
controllers kunnen toch sneller dan 1Mbps en worden gebruikt in speciale applicaties.
Low-speed CAN werkt tot 125 kbps.
Single-wire CAN werkt tot 50kbps in standaard mode, tot 100kbps in high-speed mode.
Op een volledig belaste bus met een snelheid van 1Mbps kunnen er 6 7 berichten per
milliseconde op de bus komen.

____________________________________________________________________________________
33

Ryheul Kristof

CAN EDI Diagnostic Tool

4.7.3 Minimum bus snelheid


Sommige controllers kunnen niet lager dan een bepaalde bit snelheid. Voor de 82C250
82C251 is de minimum bus snelheid 10kbps.
Om de echte minimale bus snelheid te weten moet je de datasheet van de fabrikant bekijken.

4.7.4 Maximum kabel lengte

Snelheid (kbps)
1000
500
250
125
10

Kabel lengte (m)


40
100
200
500
6000

Fig. 11 Lengte van de CAN bus volgens de baudrate

4.7.5 Bus afsluiting (terminator)


Een ISO 11898 CAN bus moet afgesloten worden, dit wordt gedaan met een weerstand van
120 Ohm op beide einden van de bus.
De afsluiting heeft 2 doelen:
Het verwijderen van signaal reflecties aan het einde van de bus.
Er voor zorgen dat de bus de goede DC niveaus krijgt.
Een ISO 11898 CAN bus moet altijd worden afgesloten ongeacht de bus snelheid.

4.7.6 De kabel
De ISO 11898 bepaalt dat de kabel een impedantie dient te hebben van 120 ohm.
Een impedantie tussen de 108 en 132 ohm is toegelaten.
Er zijn niet veel kabels op de markt die aan deze eisen voldoen. Het interval waarin deze
impedantie moet vallen zal waarschijnlijk nog worden verruimt.
ISO 11898 is beschreven voor twisted pair kabels, shielded en unschielded.

____________________________________________________________________________________
34

Ryheul Kristof

CAN EDI Diagnostic Tool

4.7.7 Spanningsniveaus
4.7.7.1 Low Speed CAN

Signaal
CAN_H
CAN_L

Recessieve toestand (rust)


Min
Nominaal Max
1.6
1.75
1.9
3.1
3.25
3.4

Dominante toestand (actief)


Min
Nominaal Max
3.85
4.0
5.0
0
1.0
1.15

Eenheid

Dominante toestand (actief)


Min
Nominaal Max
2.75
3.5
4.5
0.5
1.5
2.25

Eenheid

Volt
Volt

4.7.7.2 High Speed CAN

Signaal
CAN_H
CAN_L

Recessieve toestand (rust)


Min
Nominaal Max
2.0
2.5
3.0
2.0
2.5
3.0

Volt
Volt

4.7.8 Opbouwen van redundantie


Het verhogen van de veiligheid kan door het toevoegen van redundantie in verschillende
niveaus. Een microcontroller communiceert met een CAN controller die gebruik maakt van een
transceiver om berichten (signalen) uit te wisselen met de fysische media. Software
redundanties kunnen toegevoegd worden zonder de structuur te veranderen. Berichten kunnen
gekloond worden en twee maal over het netwerk verstuurd worden. Enkel wanneer beide
berichten verzonden zijn wordt de transmissie als succesvol gezien. (zie fig. 12)

Fig. 12 Toevoegen van software redundantie

In sommige gevallen kunnen applicaties ook hardware redundantie vereisen. Dit is vooral om
veilige en relevante communicatie op te bouwen. Hier worden twee microcontrollers en twee
CAN controllers gebruikt, maar ze gebruiken beide dezelfde transceiver. Dit wordt in de eerste
plaats gebruikt waar elektronische schakelingen verantwoordelijk zijn om naar een veilige
____________________________________________________________________________________
35

Ryheul Kristof

CAN EDI Diagnostic Tool

toestand over te schakelen (bijvoorbeeld een shut-down). Zoals het uitschakelen van
verschillende componenten in een bepaalde volgorde. (zie fig. 13)

Fig. 13 Toevoegen van hardware redundantie

In sommige maritieme applicaties is het nodig om veiligheid in te bouwen in het geval er iets
gebeurt met de bedrading van het netwerk of met een controller aangesloten op het netwerk.
Het idee is niet alleen om de bedrading naar de controller te beveiligen maar ook het hele
netwerk. (zie fig. 14)

Fig. 14 Toevoegen van redundantie in de bedrading


____________________________________________________________________________________
36

Ryheul Kristof

CAN EDI Diagnostic Tool

4.7.9 CAN connectoren


Er is geen standaard voor CAN bus connectoren. Meestal definieert elke hogere protocol laag
n of enkele voorkeur connector types.

9-pin DSUB, voorgesteld door CiA


5-pin Mini-C of Micro-C, gebruikt bij DeviceNet en SDS
6-pin Duitse connector, voorgesteld door CANHUG voor mobiele hydrolica

Meer info over de CAN bus connectoren vind je in het volgende deel punt 4.8.

4.8 CAN connectoren


4.8.1 9-pin DSUB
De connector layout wordt geadviseerd door CiA en is vrij wel de industrile standaard.

Fig. 15 9-pin Dsub connector (CAN connector)

Pin
1
2
3
4
5
6
7
8
9

Signaal
CAN_L
CAN_GND
(CAN_SHLD)
(GND)
CAN_H
(CAN_V+)

Beschrijving
Gereserveerd
CAN_L bus line (dominant low)
CAN massa
Gereserveerd
Optioneel CAN schild
Optionele massa
CAN_H bus line (dominant high)
Gereserveerd
Optionele voeding

____________________________________________________________________________________
37

Ryheul Kristof

CAN EDI Diagnostic Tool

4.8.2 Multipole connector

Fig. 16 Multipole connector (CAN connector)

Pin
1
2
3
4
5
6
7
8
9
10

Signaal
(GND)
CAN_L
CAN_H
CAN_GND
(CAN_V+)
-

Beschrijving
Gereserveerd
Optionele massa
CAN_L bus line (dominant low)
CAN_H bus line (dominant high)
CAN massa
Gereserveerd
Gereserveerd
Optionele voeding
Gereserveerd
Gereserveerd

4.8.3 RJ10 Connector

Fig. 17 RJ10 connector (CAN connector)

Pin
1
2
3
4

Signaal
(CAN_V+)
CAN_H
CAN_L
CAN_GND

Beschrijving
Optionele voeding
CAN_H bus line (dominant high)
CAN_L bus line (dominant low)
CAN massa

____________________________________________________________________________________
38

Ryheul Kristof

CAN EDI Diagnostic Tool

4.8.4 RJ45 Connector

Fig. 18 RJ45 connector (CAN connector)

Pin
1
2
3
4
5
6
7
8

Signaal
CAN_H
CAN_L
CAN_GND
(CAN_SHLD)
CAN_GND
(CAN_V+)

Beschrijving
CAN_H bus line (dominant high)
CAN_L bus line (dominant low)
CAN massa
Gereserveerd
Gereserveerd
Optioneel CAN schild
CAN massa
Optionele voeding

4.8.5 5-pin Mini-C


Gebruikt bij DeviceNet en SDS en is compatible tussen deze twee protocollen.

Fig. 19 5-pin Mini-C connector

Pin
1
2
3
4
5

Signaal
CAN-SHLD
(CAN_V+)
CAN_GND
CAN_H
CAN_L

Beschrijving
Optioneel CAN schild
Optionele voeding
CAN massa
CAN_H bus line (dominant high)
CAN_L bus line (dominant low)

Er zijn nog meer CAN connectoren maar dit zijn de meest gekende.
Er is een nieuwe standaard aan het opkomen voor de automobielindustrie en deze standaard
zou tegen 2008 overal moeten worden gemplementeerd. De OBD (On Board Diagnostics)
connector.
____________________________________________________________________________________
39

Ryheul Kristof

CAN EDI Diagnostic Tool

4.9 CAN foutafhandeling


4.9.1 Hoe CAN fouten afhandelt
Foutafhandeling is ingebouwd in het CAN protocol en is van groot belang voor de prestaties
van het CAN systeem. De foutafhandeling richt zich op het detecteren van fouten in berichten
die zich op de bus bevinden, zodat de zender een onjuist bericht opnieuw kan versturen. Elke
CAN controller aangesloten op de bus zal proberen om fouten te ontdekken in een bericht. Als
een fout gevonden is zal de controller die deze heeft gevonden een bericht versturen met een
fout vlag, dit resulteert in het vernietigen van het bus verkeer. Andere controllers zullen deze
fout vlag detecteren en het huidige berichten verwerpen.
Elke controller bevat twee fout tellers: de Transmit Error Counter en de Receive Error Counter.
Er zijn verschillende regels over hoe deze tellers verhoogd en/of verlaagd worden. In essentie
zal een zender die een fout detecteert sneller zijn Transmit Error Counter verhogen dan de
luisterende apparaten hun Receive Error Counter zullen verhogen. Wanneer een fout teller
verhoogd wordt tot een bepaalde waarde zal het apparaat eerst in een Error Passive mode
komen. Het zal niet actief het bus verkeer vernietigen wanneer het een fout detecteert, het komt
dan in Bus Off mode. Dit betekent dat het apparaat niet meer deelneemt aan het bus verkeer.
Door het gebruik van fouttellers kan een CAN node niet alleen fouten detecteren maar ook
foutbeperking uitvoeren.

4.9.2 Fout detectie systemen


Het CAN protocol definieert niet minder dan vijf verschillende manieren om fouten te
detecteren. Twee van de vijf werken op bit niveau, en de andere drie werken op bericht niveau.
4.9.2.1 Bit Monitoring

Elke zender op de CAN bus leest op het verzonden signaal niveau (verzonden signalen terug
binnen lezen ter controle). Als de zender een ander bit niveau inleest dan hij heeft verzonden
wordt een bit fout (Bit Error) gesignaleerd (Bit fouten worden tijdens het arbitrageproces niet
opgeheven).
4.9.2.2 Bit stuffing

Wanneer vijf opeenvolgende bits met hetzelfde niveau door een controller worden verstuurt zal
het een zesde bit toevoegen dat het tegenovergesteld is aan de vorige. De ontvangers zullen
deze extra bit negeren. Dit wordt gedaan om bovenmatige DC componenten op de bus te
voorkomen, het geeft de ontvangers ook een extra gelegenheid om fouten te detecteren.
Als meer dan vijf opeenvolgende bits op de bus hetzelfde niveau hebben wordt een Stuff Error
gesignaleerd.

____________________________________________________________________________________
40

Ryheul Kristof

CAN EDI Diagnostic Tool

4.9.2.3 Frame Check

Sommige delen van een CAN bericht hebben een vast formaat, de standaard bepaalt exact
wanneer welk niveau moet opkomen. (Deze delen zijn de CRC afbakening, ACK afbakening,
frame einde). Als een CAN controller een ongeldige waarde detecteert in een van deze vaste
velden wordt een Form Error gesignaleerd.

4.9.2.4 Acknowledgement Check

Alle controllers aanwezig op de bus die een goed bericht ontvangen, worden verwacht een
erkenning bit te versturen via het Acknowledgement veld in het bericht. Als de zender geen
bericht ontvangt met een erkenning bit wordt een Acknowledgement Error gesignaleerd.

4.9.2.5 Cyclic Redundancy Check

Elk bericht heeft een 15-bit CRC veld, elke controller die een verschillende CRC detecteert in
een bericht dan deze dat hij zelf heeft uitgerekend zal een CRC Error signaliseren .

4.9.3 Fout beperkingtechnieken


Elke CAN controller aangesloten op de bus zal fouten proberen te detecteren in elk ontvangen
en verzonden bericht. Als een fout gevonden is zal de controller die hem gevonden heeft een
bericht zenden met een fout vlag (Error Flag), zodat alle verkeer op de bus vernietigd wordt.
De andere controllers detecteren de fout gemaakt door de fout flag (als ze zelf de fout nog niet
hadden gedetecteerd). Hierdoor zal elke controller het huidige bericht verwerpen.
Elke controller bevat twee fouttellers: de Transmit Error Counter en de Receive Error Counter.
Er zijn verschillende regels over hoe deze tellers verhoogd en/of verlaagd worden. In essentie
zal een zender die een fout detecteert sneller zijn Transmit Error Counter verhogen dan de
luisterende apparaten hun Receive Error Counter zullen verhogen. Wanneer een fout teller
verhoogd wordt tot een bepaalde waarde zal het apparaat eerst in een Error Passive mode
komen. Het zal niet actief het bus verkeer vernietigen wanneer het een fout detecteert, het komt
dan in Bus Off mode. Dit betekent dat het apparaat niet meer deelneemt aan het bus verkeer.
Een controller start in de Error Active mode. Wanneer n van de twee tellers groter wordt
dan 127 zal de controller over gaan naar de Error Passive mode en wanneer deze nog groter
wordt dan 255 zal de controller over gaan naar de Bus Off mode.

Error Active: de controller verstuurt actief foutberichten wanneer een fout wordt
gedetecteerd.
Error Passive: de controller verstuurt passieve foutberichten wanneer een fout wordt
gedetecteerd.
Buss Off: de controller verstuurt niets meer op de bus.

____________________________________________________________________________________
41

Ryheul Kristof

CAN EDI Diagnostic Tool

De regels voor het verhogen en verlagen van de fouttellers zijn behoorlijk complex, maar het
berust op het volgende principe:
Verzendingsfouten geven acht foutpunten, ontvangstfouten geven n punt. Verzonden en
ontvangen berichten zonder fouten verlagen de teller.
De meeste CAN controllers verstrekken statusbits (en interrupt mogelijkheden) voor 2
toestanden:

Error Warning n of twee fouttellers hoger dan 96


Bus Off mode

Voor meer informatie over andere interrupt mogelijkheden bij deze modes, zie datasheet van de
gebruikte CAN controller.
De gewoonte van CAN controllers om automatisch berichten opnieuw te versturen nadat een
fout voorkwam kan vervelend zijn. Er is alleszins n controller op de markt van Philips
(SJA1000) die het toelaat om volledig manueel de foutafhandeling in te stellen.

4.9.4 Bus foutmodes


De ISO 11898 standaard beschrijft verschillende foutmodes van de CAN bus kabel:
1.
2.
3.
4.
5.
6.
7.
8.
9.

CAN_H onderbroken
CAN_L onderbroken
CAN_H kortgesloten met voeding
CAN_H kortgesloten met massa
CAN_L kortgesloten met voeding
CAN_L kortgesloten met massa
CAN_L kortgesloten met CAN_H
CAN_H en CAN_L onderbroken op dezelfde plaats
Verlies van verbinding door beindigingverbinding

Er zijn fouttolerante drivers zoals de TJA1053 die alle fouten kan verwerken. Normaal betaal je
voor deze fouttolerantie een beperkte maximum snelheid van 125kbps.

____________________________________________________________________________________
42

Ryheul Kristof

CAN EDI Diagnostic Tool

4.10 CAN specificatie 2.0


4.10.1 Deel 1 (2.0A)
De fysieke laag bepaalt hoe de signalen worden overgebracht. Binnen deze specificatie wordt
de fysieke laag niet bepaald om implementaties van transmissiemiddelen en signaal niveaus toe
te laten in hun applicaties.
De transport laag vertegenwoordigt de kern van het CAN protocol. Het legt ontvangen
berichten voor aan de object laag en keurt berichten goed die van de object laag moeten worden
overgebracht. De transport laag is verantwoordelijk voor bittiming en synchronisatie, bericht
ontwerp, arbitrage, erkenning (acknowledge), foutdetectie en foutsignalisatie, en foutbeperking.
De object laag zorgt voor het filteren van berichten evenals status- en berichtverwerking.

Fig. 20 Structuur lagen van CAN2.0A volgens het OSI model

____________________________________________________________________________________
43

Ryheul Kristof

CAN EDI Diagnostic Tool

4.10.2 Deel 2 (2.0B)

Fig. 21 Structuur lagen van CAN2.0B volgens het OSI model

De fysieke laag bepaalt hoe de signalen worden overgebracht en daarom de beschrijving van de
bittiming, synchronisatie en codering behandelt.
De MAC sublaag vertegenwoordigt de kern van het CAN protocol. Het legt ontvangen
berichten voor aan de LLC sublaag en keurt berichten goed die van de LLC sublaag moeten
worden overgebracht. De MAC sublaag wordt gecontroleerd door een beheerseenheid Fault
Confinement genoemd. Het is een zelfcontrolerend mechanisme om korte storingen en
permanente mislukkingen te onderscheiden.
De LLC sublaag zorgt voor het filteren van berichten, notificatie bij overbelasting en
beheer van herwinning (recovery).
____________________________________________________________________________________
44

Ryheul Kristof

CAN EDI Diagnostic Tool

4.11 CAN hogere protocol lagen


De CAN standaard definieert de hardware en de communicatie op een basis niveau. Het CAN
protocol zelf zegt enkel hoe het transport van data in kleine pakketten van punt A naar punt B
moet gebeuren. Het bevat niets over onderwerpen zoals flow control, transport van data langer
dan 8 byte, controller adressen, communicatie vastleggen,
Om communicatie tot stand te brengen is een hogere protocol laag (HLP) nodig. De term HLP
is afgeleid van het OSI model en zijn zeven lagen. De HLP specificeert:

Opstart gedrag
Hoe de verdeling van berichtidentiteiten gebeurt onder de verschillende controllers in
een systeem
Hoe het vertalen van de inhoud gebeurt in een data frame
Status mededeling in het systeem
CAN hardware implementaties ondersteunen de twee laagste lagen
van het OSI model, terwijl verschillende software oplossingen
(HLP) de lagen drie tot zeven implementeren. Modellen worden
gebruikt om de communicatie beter te begrijpen.
Het OSI model wordt veel gebruikt om de functionaliteit van
communicatie systemen te beschrijven op basis van een hirarchisch
gelaagde benadering.
In de CAN wereld bestaan er verschillende gestandaardiseerde
applicatie protocol lagen. Sommige zijn heel specifiek en verwant
met het applicatie gebied.

Fig. 22 OSI 7 lagen model

4.11.1 Verschillende hogere protocol lagen


Er zijn veel HLPs in het gebied van CAN. De meest gebruikte zijn:
4.11.1.1 CanKingdom

CanKingdom laat de volledige kracht van CAN los. Het geeft een systeemontwerper maximum
vrijheid om zijn eigen systeem te ontwerpen. De systeemontwerper is niet verbonden aan het
multi-master protocol van CAN maar kan systemen ontwikkelen gebruikmakend van vrijwel
elk type busbeheer en topologie. CanKingdom opent de mogelijkheid voor een
moduleontwerpen voor het ontwerpen van algemene modules zonder te weten in welk systeem
zij definitief zullen gentegreerd worden en welk type van hogere protocol laag CAN zal
gebruiken. Aangezien de systeemontwerper slechts specifieke modules kan toelaten om in zijn
systeem te gebruiken, kan het kostenvoordeel van een open systeem met de veiligheid van een
merkgebonden systeem worden gecombineerd.
Aangezien de identiteit van een CAN bericht niet alleen het bericht maar ook de bustoegang
regeert is een zeer belangrijke factor de opsomming van de berichten. Een andere belangrijke
factor is ervoor te zorgen dat de gegevensstructuur in het data veld hetzelfde is in zowel de
____________________________________________________________________________________
45

Ryheul Kristof

CAN EDI Diagnostic Tool

overbrengende als ontvangende modules. Door enkele eenvoudige ontwerpregels goed te


keuren kunnen deze factoren volledig worden gecontroleerd en de mededeling geoptimaliseerd
voor om het even welk systeem.
4.11.1.2 CANopen

CANopen is een gestandaardiseerd protocol, dat communicatie mogelijk maakt tussen


toestellen van verschillende fabrikanten en dat de uitwisselbaarheid van gegevens tussen deze
toestellen garandeert. Het protocol werd ontwikkeld door CiA en werd gestandaardiseerd als
CENELEC en 50325-4.
CAL (CAN Application Layer) werd origineel ontworpen door CiA. CAL is gesplitst in
verschillende stukken.

CMS (CAN-based Message Specification) definieert protocollen om data te


transporteren tussen CAN modules.
NMT (Network Management Service) definieert de protocollen voor systeem opstarting
en afsluiting, fout logging, en andere
DBT (Distributor Service) definieert een protocol om identiteiten te verdelen aan de
verschillende modules in een systeem.

CANopen kent een breed toepassingsgebied, vooral in Europa, waar het de toonaangevende
standaard vormt voor industrile, automatiserings- en embedded systemen.
CANopen is een op CAN gebaseerde hogere protocol laag. Het was ontwikkeld als een
gestandaardiseerd embedded netwerk met hoge flexibele configuratie mogelijkheden.
CANopen werd ontworpen voor bewegende machine controle netwerken. Nu wordt het
gebruikt in verschillende toepassingsgebieden zoals medische toestellen, off-road voertuigen,
maritieme elektronica, publieke transport, gebouw automatisatie, liften,
4.11.1.3 DeviceNet

DeviceNet is ontwikkeld door de Allen Brandley divisie van Rockwell. Inmiddels is er een
onafhankelijke stichting voor opgericht, de ODVA (Open DeviceNet Vendor Association).
Deze doet het beheer en de marketing voor het netwerk en inmiddels is het netwerk met name
in de V.S., maar ook in het verre oosten uitgegroeid tot waarschijnlijk de belangrijkste veldbus
in productieomgevingen. De veldbustoepassing zit in het algemeen echter een niveau hoger dan
de bij CANopen omschreven embedded omgeving. We koppelen hiermee machines en
apparaten aan elkaar. Voor de gebruiker is het dan ook veel meer een plug & play netwerk,
waarbij kennis van het CAN-netwerk bij de gebruiker niet vereist is.
DeviceNet is speciaal ontwikkeld voor industrile automatisatie en vormt daardoor een
rechtstreekse concurrent voor protocollen als Profibus-DP en Interbus. Bij deviceNet is elke
deelnemer op het netwerk verantwoordelijk voor het managen van zijn eigen CAN-identiteiten.
Dit betekent, dat bij uitbreiding van een netwerk, de nieuwe toegevoegde controller, zichzelf
kenbaar maakt en zoekt naar identiteiten voor communicatie. Evenals bij CANopen is er bij
DeviceNat ook weer sprake van toestelprofielen. Hierin staat het object volledig beschreven
met klassen, instanties en attributen.

____________________________________________________________________________________
46

Ryheul Kristof

CAN EDI Diagnostic Tool

4.11.1.4 J1939

J1939 gebruikt het CAN protocol die elke controller toelaat om berichten te versturen over een
netwerk wanneer de bus niet bezig is. Elk bericht bevat een identiteit welke de bericht prioriteit
beschrijft, wie hem zend, en welke data het bericht bevat. Botsingen worden vermeden door het
arbitrage proces die voorkomt tijdens het verzenden van de identiteit (CSMA/CA). Dit laat toe
om berichten met een hoge prioriteit door te laten met een kleine vertraging.
J1939 bestaat uit verschillende delen gebaseerd op het ISO OSI model. Het OSI model
definieert zeven communicatie lagen die elk een andere functie hebben. De fysieke laag
beschrijft de elektrische interface naar de media. De datalink laag beschrijft de protocol regels
voor het aanmaken van berichten, toegang tot de bus en detecteren van transmissie fouten. De
applicatie laag bevat de specifieke data uit elk verzonden en ontvangen bericht.
Meer informatie over deze standaard vind je bij hoofdstuk 5.
4.11.1.5 OSEK

De personenwagen is een embedded omgeving waarin men zich niet druk zal maken over een
standaard protocol voor CAN. Toch is er hier wel sprake van enige standaardisatie onder druk
van de overheden. Een van de belangrijke Europese normen die hierdoor is ontstaan is OSEK.
Dit is eigenlijk een normering van de gebruikte besturingssystemen voor de elektronica in de
auto. Op datalink niveau is CAN n van de opties om te communiceren. Hoewel je hier niet
echt kan spreken over een applicatielaag op CAN, geeft het wel een eerste aanzet tot eventuele
verdere standaardisatie in deze sector.
4.11.1.6 SDS

Dit standaard protocol is ontwikkeld door Honeywell. Deze firma voert ook zelf het beheer
over dit protocol en daarom is het misschien minder open dan CANopen en DeviceNet. Er zijn
overigens wel een groot aantal andere leveranciers, die het protocol ondersteunen met hun
controllers. De controllers die op een SDS netwerk aangesloten worden zijn meestal sensoren
of eenvoudige I/O modules. Er moet dan ook altijd een master in het netwerk zijn. Dit kan een
PC of PLC zijn. Er zijn twee soorten berichten. De statusveranderingen en berichten waarmee
je andere informatie uit een sensor of I/O-module kan opvragen of invoeren.
Het protocol is duidelijk geoptimaliseerd voor een sensor-/actuatorbus en vindt zijn
toepassingen vooral in grotere systemen, waar sensoren als foto-cellen en
benaderingsschakelaars worden toegepast.

____________________________________________________________________________________
47

Ryheul Kristof

CAN EDI Diagnostic Tool

5. Theoretische & bedrijfsspecifieke kennis


5.1 Recommended Practice RP1210A
5.1.1 Introductie
Dit document beschrijft een gestandaardiseerde interface voor PC naar on-vehicle datalink
communicatie onder Microsoft Windows. (TMCs RP1210 Windows Communication
Application Program Interface).
5.1.1.1 Doelstelling en toepassingsgebied

Deze RP vestigt een standaard tussen de fysische datalink laag (J1708, J1587, J1922, CAN,
J1939 of J1850) en de Windows software applicatie voor de PC.
Deze RP is verenigbaar met de RP1208 (PC Service Tool Hardware Selection Guidelines).
5.1.1.2 Waargenomen behoeften

Doorzichtig maken van hardware adapters voor de software ontwikkelaar.


Geen enkele interface moet gekoppeld worden aan fabrikant specifieke methodes of
hardware configuraties.
Hardware verschillen van merkgebonden producten toelaten terwijl de software
onveranderd blijft tussen de verschillende hardware ontwerpers.
Ondersteuning van SAE J1708, SAE CAN/J1939, en SAE J1850 netwerk protocollen.

5.1.1.3 Potentile communicatie software

Een grote variatie aan hardware toestellen kan gebruikt worden om een PC aan te sluiten op de
datalink laag. In theorie kunnen deze interfaces gelijktijdig communiceren.
Enkele voorbeelden:

Een PDA aangesloten op de RS232 poort van een PC en de datalink laag.


Een RS485 naar RS232 omvormer aangesloten op een PC en de datalink laag.
Een PCMCIA adapter aangesloten op de PC en de datalink laag.
Een PC interfacekaart aangesloten op de PC en de datalink laag.
Een hardware toestel aangesloten op de PC en de datalink laag.

____________________________________________________________________________________
48

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 23 Architectural overview

5.1.2 Functionele specificaties


5.1.2.1 Meerdere clinten

De API ondersteunt een minimum van 16 clinten en een maximum van 128 clinten.
5.1.2.2 Verzend en ontvangst buffer

Er is ondersteuning voor zowel synchrone als asynchrone communicatie.


5.1.2.3 Initialisatie en reset

In de applicatie is het mogelijk om de hardware te initialiseren en te resetten via API


gebaseerde functies.
5.1.2.4 Timestamp van berichten

Omdat ontvangen berichten van de CAN bus gebufferd worden moet de tijd van ontvangst in
elk bericht geplaatst worden. Dit om dubbelzinnigheid van berichten tegen te gaan, en de
volgorde van de ontvangen berichten te behouden. De timestamp bestaat uit vier bytes en is in
Big Endian of Motorola formaat genoteerd.

____________________________________________________________________________________
49

Ryheul Kristof

CAN EDI Diagnostic Tool

5.1.2.5 Bericht filtering

De API ondersteunt berichtfiltering. Dit gebeurt gewoonlijk door het laagste interface niveau.
Een implementatie van deze API zal enkel de berichten in zijn filter specificaties aanbieden aan
een clint. Commando nummers 4, 5 en 7 zijn gereserveerd om deze filters in te stellen.
Commando nummers 3, 17 en 18 zijn gereserveerd voor extra filter mogelijkheden.
5.1.3 High-level ontwerp
Een high-level ontwerp beschrijving van TMCs RP1210 communicatie API is
gemplementeerd als een Windows DLL. Het hoofddoel van deze DLL, die verschillende
fabrikant specifieke implementaties bevat is om veralgemeende interfaces tussen hardware
specifieke besturing en applicaties werkende onder Microsoft Windows te verstrekken.
Elke fabrikantimplementatie moet ingebouwde interfaces hebben met onderliggende fysieke
lagen, ondersteund door deze fabrikant. Informatie over de DLL van de fabrikant als ook de
protocollen en toestellen, ondersteund in elke implementatie, kan gevonden worden in INI
bestanden. Zie 5.1.6 INI file format.

Fig. 24 Dataflow diagram voor Windows

____________________________________________________________________________________
50

Ryheul Kristof

CAN EDI Diagnostic Tool

5.1.4 RP1210 API vereiste functies


Beschrijving van de vereiste functies:
Voor alle vermelde foutcodes kan je kijken in tabel 5.1.
5.1.4.1 RP1210_ClientConnnect

Deze functie wordt opgeroepen door de applicatie die connectie zoekt met een DLL die
correspondeert met de implementatie van deze API. In de API DLL zal de functie clint data
structuren toewijzen en initialiseren. De functie laadt, initialiseert of activeert gelijk welke
toestel sturing om te communiceren met de hardware. Als de connectie gelukt is retourneert de
functie een unieke identiteit die correspondeert met de ID van het clint programma.
De normale connectie is in Converted Mode. In Converted Mode kunnen meerdere clinten
connectie maken.
Protocolnamen gebruikt in clint connecties
Protocol String
J1708
J1850
J1939
CAN

Protocol Description
SAE J1708 network protocol
SAE J1850 network protocol
SAE J1939 network protocol
CAN network protocol

Opmerkingen

Voor een applicatie die toekomstige transacties wil uitvoeren met de API DLL moet de
applicatie eerst een succesvolle connectie hebben. In andere woorden moet de applicatie eerst
een succesvolle terugkeerwaarde krijgen die lager is dan 128 voordat deze andere commandos
aanroept. In een applicatie wordt deze functie eerst opgeroepen voordat de applicatie in een
bericht verwerkingscyclus terecht komt.

5.1.4.2 RP1210_ClientDisconnect

Deze functie wordt opgeroepen door de applicatie die de connectie wil verbreken met een DLL
die correspondeert met de implementatie van deze API. Intern in de DLL wordt alle clint data
verwijderd, alle actieve filters die bij de applicatie behoren worden afgezet.
Als de laatst geconnecteerde clint deze functie aanroept zal de DLL de apparaatbesturing die
communiceerde met de hardware deactiveren.
Opmerkingen

Deze functie kan enkel aangeroepen worden nadat er succesvol een connectie werd gelegd met
de API DLL. De parameter die als argument wordt meegegeven is de identiteit van het
geconnecteerde toestel waarvan de connectie moet afgezet worden. Deze functie wordt typisch
aangeroepen wanneer de applicatie afgesloten wordt. Het is aan de programmeur om alle
gemaakte threads die gebruik maken van de IO af te sluiten.
____________________________________________________________________________________
51

Ryheul Kristof

CAN EDI Diagnostic Tool

5.1.4.3 RP1210_SendMessage

Deze functie wordt opgeroepen door de applicatie om berichten te versturen naar het
geselecteerde toestel. Het bericht wordt geplaatst in een buffer en wordt uitgevoerd in de orde
van ontvangst (FIFO principe).
Opmerkingen

De constructie van de berichten van verschillende protocollen, ondersteund door deze API
moeten overeenstemmen met de specificaties hieronder beschreven.
J1939

Fig. 25 J1939 bericht formaat (zenden)

De J1939 standaard bestaat uit 5 velden:


Parameter Group Number
Bestaat uit 3 bytes in little endian of Intel formaat.

How To Send/Priority
Bestaat uit 1 byte waarvan bit 7 het transport type bepaalt voor het data veld als deze
groter is dan 8 bytes. De laagste 3 bits bepalen de prioriteit van het bericht.

Source Address
Bestaat uit 1 byte en bevat het adres van het zendende toestel.

Destination Address
Bestaat uit 1 byte en bevat het adres van het toestel naar waar het bericht verstuurd
moet worden.

Data
Bevat alle data elementen van het bericht en kan tot 1785 bytes bevatten.

____________________________________________________________________________________
52

Ryheul Kristof

CAN EDI Diagnostic Tool

Aanmaken van pakketten en hermontage

Doordat een CAN data frame een data lengte heeft van 8 bytes worden grote berichten in
kleinere pakketten gesneden met een data lengte van 7 bytes. Omdat de individuele pakketten
die uit een groot bericht bestaan individueel gedentificeerd moeten worden zodat zij opnieuw
correct kunnen samen gebracht worden wordt de eerste byte van het data frame gedefinieerd als
opeenvolgingsgetal van het pakket.
De nummers die toegekend worden aan deze eerste byte liggen tussen 1 en 255 dus kunnen er
maximum 255 pakketten na elkaar verstuurd worden. Dit geeft een totaal van (255 * 7
bytes/pakket) 1785 bytes, dit noemt men een Jumbo CAN frame.
CAN

De eerste byte van een CAN bericht geeft aan of het een standaard of een uitgebreid CAN
bericht is. Als deze byte 0 is dan is het een standaard CAN bericht, in alle andere gevallen is
het een uitgebreid CAN bericht. Gebaseerd op de vorige byte zijn de volgende bytes ofwel een
twee-byte standaard CAN identiteit of een vier-byte uitgebreide CAN identiteit. Het laatste
fragment bevat de data met een maximum lengte van 8 bytes.

Fig. 26 CAN bericht formaat (zenden)

5.1.4.4 RP1210_ReadMessage

Deze functie wordt opgeroepen door de applicatie om berichten te lezen die zich op de CAN
bus bevinden via het geselecteerde toestel. De berichten wordt geplaatst in een buffer en
worden uitgevoerd in de orde van ontvangst (FIFO principe).
Opmerkingen

Deze functie kan aangeroepen worden op twee manieren.


- Wanneer de inkomende bericht buffer van leeg naar niet leeg overgaat zal de API DLL een
event plaatsen voor de aangewezen applicatie. Als resultaat op die gebeurtenis kan de
applicatie in een lus de RP1210_ReadMessage functie aanroepen tot deze een nul retourneert.
- De applicatie kan op discrete intervallen deze functie aanroepen om te kijken of er een bericht
ontvangen werd.

____________________________________________________________________________________
53

Ryheul Kristof

CAN EDI Diagnostic Tool

In Windows 95 en Windows NT kan gebruik gemaakt worden van dezelfde methodes maar bij
deze laatste kan de nBlockOnRead gezet worden zodat deze intern zelf wacht tot er een bericht
ontvangen wordt.
J1939

De J1939 standaard bestaat uit zeven velden.

Time Stamp
Bestaat uit 4 bytes en geeft aan wanneer het bericht ontvangen werd door de lage niveau
interface. Dit veld wordt aan het hoofd van het pakket geplaatst door de lage niveau
interface. Voor berichten groter dan 8 bytes bevat het tijdsveld de tijd wanneer het
laatste pakket ontvangen werd.

Echo
Als het commando Set Echo Transmitted Messages de API geconfigureerd heeft om
verzonden berichten te echon zal het volgende veld het echo veld zijn. Dit veld bevat
een n in het geval dat het bericht verzonden werd door de API, een nul indien het
bericht niet werd verzonden via de applicatie. Als het commando Set Echo Transmitted
Messages niet werd uitgevoerd zal het echo veld niet aanwezig zijn in het bericht.

Parameter Group Number


Bestaat uit 3 bytes in little endian of Intel formaat.

How To Send/Priority
Bestaat uit 1 byte waarvan bit 7 het transport type bepaalt voor het data veld als deze
groter is dan 8 bytes. De laagste 3 bits bepalen de prioriteit van het bericht.

Source Address
Bestaat uit 1 byte en bevat het adres van het zendende toestel.

Destination Address
Bestaat uit 1 byte en bevat het adres van het toestel naar waar het bericht verstuurd
moet worden.

Data
Bevat alle data elementen van het bericht en kan tot 1785 bytes bevatten.

Fig. 27 J1939 bericht formaat (lezen)

____________________________________________________________________________________
54

Ryheul Kristof

CAN EDI Diagnostic Tool

CAN

De eerste vier bytes bevatten de tijd. Als het commando Set Echo Transmitted Messages de
API geconfigureerd heeft om verzonden berichten te echon zal het volgende veld het echo
veld zijn. Dit veld bevat een n in het geval dat het bericht verzonden werd door de API, een
nul indien het bericht niet werd verzonden via de applicatie. Als het commando Set Echo
Transmitted Messages niet werd uitgevoerd zal het echo veld niet aanwezig zijn in het bericht.
De volgende byte geeft aan of het een standaard of een uitgebreid CAN bericht is. Als deze
byte 0 is dan is het een standaard CAN bericht, in alle andere gevallen is het een uitgebreid
CAN bericht. Gebaseerd op de vorige byte zijn de volgende bytes ofwel een twee-byte
standaard CAN identiteit of een vier-byte uitgebreide CAN identiteit. Het laatste fragment
bevat de data met een maximum lengte van 8 bytes. Als het bericht correct ontvangen werd zal
de terugkeerwaarde gelijk zijn aan de grootte van het bericht samengeteld met de vier tijd
bytes, het bericht type en de CAN identiteit.

Fig. 28 CAN bericht formaat (lezen)

5.1.4.5 RP1210_SendCommand

Deze functie wordt opgeroepen door de applicatie om commando berichten te sturen naar het
geselecteerde toestel. Het commando wordt typisch onderschept door het toestel en volgens het
commando getal verwerkt. Deze methode wordt in het bijzonder gebruikt om filters te plaatsen
voor verschillende protocollen op apparaat niveau.
Gereserveerde commando getallen

TMC heeft enkele waarden voor de nCommandNumber gereserveerd om de overwogen


vereiste functionaliteit te ondersteunen.
RP1210_SendCommand
Reset Device
Set All Filter Statest o Pass
Set Message Filtering for J1939
Set Message Filtering for CAN
Set Message Filtering for J1708
Generic Driver Command
Set J1708 Mode
Set Echo Transmitted Messages

Command Number
0
3
4
5
7
14
15
16

____________________________________________________________________________________
55

Ryheul Kristof

CAN EDI Diagnostic Tool

Set All Filter States to Discard


Set Message Receive
Protect J1939 Address

17
18
19

nComandNumber = 0 (Reset Device)

Dit commando laat de gebruiker toe om het fysische apparaat opnieuw in te stellen. Dit
commando is enkel toegelaten als er maar n clint aangesloten is. Als er meerdere clinten
aangesloten zijn stuurt de functie een ERR_MULTIPLE_CLIENTS_CONNECTED fout terug.
Na dit commando dient de clint opnieuw te connecteren door de functie
RP1210_ClientConnect aan te roepen.
nCommandNumber = 3 (Set All Filter States To Pass)

Dit commando zet alle filters uit, de API laat alle berichten toe die voor de applicatie bestemd
zijn.
nCommandNumber = 4 (Set Message Filtering for J1939)

De API kan bericht filters zetten of de lage niveau componenten aan zetten. Deze
ondersteuning is nodig voor alle J1939 interface implementaties van de RP1210 API.
Door meerdere malen deze functie aan te roepen worden de actieve filters uitgebreid.
De lage niveau lagen zullen alle binnenkomende berichten verwerpen die niet overeenstemmen
met de lijst gespecificeerd door dit commando.

Fig. 29 Filter parameter frame (command number 4 / J1939)

Byte 1 bepaalt welk veld er gebruikt dient te worden voor de filtering van een bericht.
Name
FILTER_PGN
FILTER_PRIORITY
FILTER_SOURCE
FILTER_DESTINATION

Value
1
2
4
8

Comments
Gebruik de PGN waarde voor filtering
Gebruik de Prioriteit voor filtering
Gebruik het bron adres voor filtering
Gebruik het destinatie adres voor filtering

nCommandNumber = 5 (Set Message Filtering for CAN)

De API kan bericht filters zetten of de lage niveau componenten aan zetten. Deze
ondersteuning is nodig voor alle CAN interface implementaties van de RP1210 API.
Door meerdere malen deze functie aan te roepen worden de actieve filters uitgebreid.
De lage niveau lagen zullen alle binnenkomende berichten verwerpen die niet overeenstemmen
met de lijst gespecificeerd door dit commando.
De filter bestaat uit drie delen. De eerste byte vertegenwoordigt voor welk CAN formaat
standaard of uitgebreid een filter gezet wordt. Nul staat voor het filteren van een standaard
____________________________________________________________________________________
56

Ryheul Kristof

CAN EDI Diagnostic Tool

CAN bericht en een n staat voor het filteren van een uitgebreid CAN bericht. De vier
volgende bytes representeren de mask. De mask geeft weer welke bits in de header moeten
overeenstemmen. Een n betekent dat de waarde van de bit belangrijk is een nul betekent dat
de waarde van de bit niet belangrijk is. De laatste 4 bytes representeren de header. De header
geeft weer welke waarde nodig is voor elke belangrijke bit.

Fig. 30 CAN filter frame

5.1.4.6 RP1210_ReadVersion

Deze functie wordt opgeroepen door de applicatie om de versie te lezen van de API DLL.
Opmerkingen

Deze functie is enkel voor informatieve doeleinden.


5.1.4.7 RP1210_GetErrorMsg
Opmerkingen

De terugkeerwaarde is afhankelijk in welke orde de functie opgeroepen wordt. De terug


gestuurde string kan niet langer zijn dan 80 bytes.
5.1.4.8 RP1210_GetHardwareStatus

Deze functie wordt opgeroepen door de applicatie om de hardware interface status te bekijken
en of het apparaat fysisch aangesloten is of niet.
5.1.5 Return code equivalencies

Description

Return Code

ERR_ADDRESS_LOST

153

ERR_CLIENT_ALREADY_CONNECTED

130

ERR_CLIENT_DISCONNECTED

148

ERR_COMMAND_NOT_ALLOWED

143

ERR_CONNECT_NOT_ALLOWED

149

ERR_DEVICE_IN_USE

135

ERR_DLL_NOT_INITIALIZED

128

ERR_HARDWARE_NOT_RESPONDING

142

____________________________________________________________________________________
57

Ryheul Kristof

CAN EDI Diagnostic Tool

5.1.6 INI file format


5.1.6.1 Bestandsformaat van het RP121032.INI bestand

Elke fabrikant mag zijn eigen implementatie van de RP1210 API maken. Elke PC kan een
aantal DLLs met namen zoals VENDORX.DLL, VENDORX32.DLL, VENDORY.DLL of
VENDORY32.DLL hebben. Deze DLLs zijn implementaties van de RP1210 API standaard.
Natuurlijk weet de applicatie niet welke DLL aanwezig is, daarom zou hij de mogelijkheid
moeten hebben om naar een vaste bron te gaan om te kijken welke DLLs aanwezig zijn.
Het .INI bestand is te vinden in de Windows directory.
De vaste bron is het RP121032.INI bestand met een minimaal formaat zoals hieronder:
[RP1210Support]
APIImplementations=[string],[string],[string],,[string]

De strings bevatten de naam van het DLL-INI koppel geassocieerd met een bepaalde fabrikant
implementatie.
Voorbeeld:
[RP1210Support]
APIImplementations=is121032,SOFTRP32

In het voorbeeld kun je zien dat er twee fabrikant implementaties aanwezig zijn, n van ifak
system en n van softing. Nu weet je dat er een is121032.INI, een is121032.DLL, een
SOFTRP32.INI en een SOFTRP32.DLL bestaat en mogelijk aanwezig is. Dit moet dan
gecontroleerd worden in de software.
Het installatie programma van een fabrikant zou deze stappen moeten ondernemen:
1. Controleren of een RP121032.INI bestand aanwezig is in de Windows directory.
2. Als deze niet bestaat moet deze gecreerd worden.
Als deze toch bestaat kan men met de functie GetPrivateProfileString onderzoeken als
de fabrikant al bestaat in de lijst. Indien deze niet bestaat gewoon de fabrikant string
achter de laatst ingelezen string plakken.
3. Controleren of de fabrikant INI bestand aanwezig is in de Windows directory.
4. Als deze niet bestaat moet deze aangemaakt worden.
Doordat de RP1210.INI file gebruikt wordt door alle fabrikanten, moet men opletten dit
bestand niet corrupt te maken door het gebruik in een applicatie.
5.1.6.2 Bestandsformaat van het door een fabrikant gemaakte INI bestand

Elke fabrikant die een API DLL implementeert van de RP1210 API zal ook een bijkomend INI
bestand moeten maken. Het bestand bevat informatie over de hardware toestellen en de door de
fabrikant gebruikte protocollen en dient telkens aangepast te worden wanneer een nieuw toestel
wordt aangesloten op de gebruikte PC. Applicaties zullen dit bestand inlezen voor het
verkrijgen van de connectie parameters. Het bestand mag ook informatie bevatten over hoe
men de fabrikant kan contacteren.

____________________________________________________________________________________
58

Ryheul Kristof

CAN EDI Diagnostic Tool

Het bestandsformaat:

[VendorInformation]
Name=[string]
Address1=[string]
Address2=[string]
City=[string]
State=[string]
Country=[string]
Postal=[string]
Telephone=[string]
Fax=[string]
MessageString=[string]
ErrorString=[string]
TimeStampWeight=[number]
Devices=[d1], [d2], , [dn]

Protocols=[p1], [p2], , [pn]

[DeviceInformationd1]
DeviceID=[number]
DeviceDescription=[string,p]

De naam van de fabrikant


Eerste adres van de fabrikant (optioneel)
Tweede adres van de fabrikant (optioneel)
Gemeente/stad waar de fabrikant gelegen is
Staat waar de fabrikant gelegen is
Land waar de fabrikant gelegen is
Postcode van de fabrikant
Telefoonnummer voor support
Faxnummer van de fabrikant
Een unieke bericht string voor de DLL
Een unieke error string voor de DLL
Vertegenwoordigt het gewicht, per bit, in microseconden
van de tijd
De ds representeren de toestel IDs voor de support door
de fabrikant, elke d is een nummer tussen 0 en 255. De
toestellen worden gescheiden door kommas zonder
spaties er tussen.
De ps representeren de protocollen ondersteunt door de
fabrikant, elke protocol ID is een nummer tussen 0 en
255. De protocollen worden gescheiden door kommas
zonder spaties er tussen.

Nummer tussen 0 en 255 (number == d1)


De string is een beschrijving voor het toestel, dit is
meestal de naam van het product. P representeert de
poort waarop het toestel aangesloten is. Er kunnen
verschillende waarde aan toegekend worden zoals:

COM1
COM2
COMN
LPT1
LPT2
LPTN
PCMCIA
USB

DeviceName=[string]
DeviceParameters=[string]

Toestel naam staat meestal vermeld op het toestel zelf.


Fabrikant specifieke parameters.

[DeviceInformationd2]
DeviceID=[number]
DeviceDescription=[string,p]
DeviceName=[string]
DeviceParameters=[string]
.

Idem als voor d1

____________________________________________________________________________________
59

Ryheul Kristof

.
.
[DeviceInformationdn]
DeviceID=[number]
DeviceDescription=[string,p]
DeviceName=[string]
DeviceParameters=[string]
[ProtocolInformationp1]
ProtocolDescription=[string]
ProtocolString=[string]
ProtocolParameters=[string]
Devices=[k1, k2, , kn]
[ProtocolInformationp2]
ProtocolDescription=[string]
ProtocolString=[string]
ProtocolParameters=[string]
Devices=[k1, k2, , kn]
.
.
.
[ProtocolInformationpn]
ProtocolDescription=[string]
ProtocolString=[string]
ProtocolParameters=[string]
Devices=[k1, k2, , kn]

CAN EDI Diagnostic Tool

Idem als voor d1

De string is een beschrijving voor het protocol


De protocol string is deze die verwacht wordt bij het
gebruik van de RP1210_ClientConnect functie.
Fabrikant specifieke parameters.
De lijst met toestelen die gebruik maken van dit protocol.
Idem als voor p1

Idem als voor p1

Voorbeeld implementatie van INI bestand ifak system

[Vendorinformation]
Name=ifak system GmbH
MessageString=ISCANRP1210MESSAGE
ErrorString=ISCANRP1210ERRMESSAGE
TimestampWeight=1
Devices=0
Protocols=0,1
[DeviceInformation0]
DeviceID=0
DeviceDescription=isCAN USB Adapter (90010001)
DeviceName=isCAN USB Adapter (90010001)
[ProtocolInformation0]
ProtocolDescription=J1939 Link Layer Protocol
ProtocolString=J1939
Devices=0

____________________________________________________________________________________
60

Ryheul Kristof

CAN EDI Diagnostic Tool

[ProtocolInformation1]
ProtocolDescription=Generic CAN
ProtocolString=CAN
Devices=0

Voorbeeld implementatie van INI bestand softing

[VendorInformation]
Name=Noregon Systems
Address1=500 Shepherd Street
Address2=Suite 300
City=Winston-Salem
State=NC
Country=USA
Postal=27103
Telephone=336-768-4337
Fax=336-760-2540
MessageString=RP1210_READ_NOTIFY_JD
ErrorString=RP1210_SEND_NOTIFY_JD
TimeStampWeight=1
Devices=1,2,3,4,7
Protocols=1,2
[ProtocolInformation1]
ProtocolString=J1939
ProtocolDescription=J1939
ProtocolParams=
Devices=1,2,3,4,7
[ProtocolInformation2]
ProtocolString=CAN
ProtocolDescription=CAN
ProtocolParams=
Devices=1,2,3,4,7
[DeviceInformation1]
DeviceID=1
DeviceName=Softing GmbH CANcard PCMCIA
DeviceDescription=Softing CANcard Transmit on Channel 1
DeviceParams=
[DeviceInformation2]
DeviceID=2
DeviceName=Softing GmbH CANcard PCMCIA
DeviceDescription=Softing CANcard Transmit on Channel 2
DeviceParams=
[DeviceInformation3]
DeviceID=3
____________________________________________________________________________________
61

Ryheul Kristof

CAN EDI Diagnostic Tool

DeviceName=Softing GmbH AC2-PCI


DeviceDescription=Softing AC2-PCI Transmit on Channel 1
DeviceParams=
[DeviceInformation4]
DeviceID=4
DeviceName=Softing GmbH AC2-PCI
DeviceDescription=Softing AC2-PCI Transmit on Channel 2
DeviceParams=
[DeviceInformation7]
DeviceID=7
DeviceName=Softing GmbH CANusb Adapter CD-L2
DeviceDescription=Softing CANusb Adapter
DeviceParams=

5.1.7 Bekijken van de DLLs


Met dependency walker van Microsoft Corporation kun je bekijken welke functies er in een
DLL gebruikt kunnen worden. Deze functies kunnen dan gebruikt worden in de applicatie om
bijvoorbeeld een bericht te lezen of te versturen.
Voorbeeld implementatie van DLL ifak system

Fig. 31 Depends DLL ifak system

____________________________________________________________________________________
62

Ryheul Kristof

CAN EDI Diagnostic Tool

5.2User manual APC


5.2.1 Transmission controller (TCON)
5.2.1.1 Algemeen

De TCON APC brengt een nieuw niveau van technologie om alle powershift transmissies te
dienen, waarbij minimaal een elektronische modulatie zonder enkele pedaal bediening en
zonder rem door koppeling technologie.
Het zorgt voor drivetrain protectie en snelheid- of laadsensor automatische verschuiving.
5.2.1.2 Externe interfaces

De APC is aangesloten aan de voertuig bedrading met een 48 polige Packard Metripack
connector. De 48 polige connector bestaat uit een 30 en 18 polige component.
Connector layout

Fig. 32 Connector layout APC (TCON)


5.2.1.3 Mens/Machine interface
Shift lever

De hoofd interface met de bestuurder is de shift lever. Het laat de bestuurder toe de rij richting
en de verschillende versnellingen te bedienen. De shift lever signaal uitgangen dienen als input
voor de APC. De APC ondersteunt remote support via de CAN bus, dit is gedocumenteerd in
de CAN messages APC214.
Display

De display aan de voorkant van de APC bestaat uit:

4 rode 7-segment LED cijfers


3 status LEDs (D, E, F)
2 drukknoppen M en S voor display mode selectie.

De LED met het label D is geel en wordt gebruikt om Diagnostic modes aan te geven.
De LED met het label E is geel en wordt gebruikt om Errors aan te geven.
De LED met het label F is rood en gaat aan wanneer de APC in de reset conditie komt door
de bootstrap of Fault mode.

____________________________________________________________________________________
63

Ryheul Kristof

CAN EDI Diagnostic Tool

Na het opstarten komt de APC standaard in de laatste display mode geselecteerd wanneer de
controller uitgeschakeld werd. Meestal zal dit de gear position mode zijn.
Er zijn 3 verschillende display groepen, de meest algemeen gebruikte laat het toe om te
wisselen tussen gear display, vehicle speed en travelled distance display.
5.2.1.4 Operation modes

Normal driving
Diagnostic mode
Limp home mode
Shutdown mode

5.2.1.5 Operating characteristics


System

Operating temperature range


Sealing
Supply Voltage
nominal
min max.
Over voltage conditions

Maximum continuous total load current @ 24V

-40C to +80C
IP67
24V
18V-30V
5 min @ 48V
500ms @ 220V
2ms @ 300V
12 Amperes

On/Off inputs

Low input level


High input level
Minimum DC voltage level
Maximum DC voltage level

< 0.8V
> 2.3V
-60V
+60V

Analogue inputs

Internal pull up resistor (8V)


Input voltage range
Resolution
Minimum voltage level
Maximum voltage level

3 kOhm
0 to 5 V
10 bit
-60V
+60V

Speed sensor inputs

Sensor type
Electrical interface
Normal operating current
Short circuit detect
Open circuit detect
Reverse polarity detect
Fully protected

Inductive
Unbalanced
N/A
Yes
Yes
N/A
Yes

Magneto resistive
Current sensing
7 / 14 mA
Yes
Yes
Seen as short circuit
Yes

____________________________________________________________________________________
64

Ryheul Kristof

CAN EDI Diagnostic Tool

On/Off outputs

Maximum continuous load current


Short circuit detect
Open circuit detect
Fully protected

1.5 Amperes
Yes
Yes
Yes

Analogue outputs

Output current
Resolution
Short circuit detect
Open circuit detect
Fully protected

0mA 1200mA
10 bit
Yes
Yes
Yes

Communication interfaces
RS232

Bitrate
Protocol
Handshake

38400bps
8 bit 1 stop bit
no parity
xon/xoff
SOH protocol

CAN

Bitrate
Physical layer
CAN compatibility
SAE/J1939
Termination

Programmable up to 1Mbps
ISO 11898
REV2.0B
Yes (@ 250kbps)
External 120 Ohm

____________________________________________________________________________________
65

Ryheul Kristof

CAN EDI Diagnostic Tool

5.2.2 Functies

Direction change protection


Downshift protection
Overspeeding control
Automatic shifting
Automatic shifting in neutral
Declutch
Engine control

5.2.3 APC200 ECM/ECI CAN EDI protocol description


Zie 5.4 CAN messages APC214

5.2.4 Fout detectie & afhandeling


5.2.4.1 Algemeen

Het veiligheidsconcept is gebaseerd op de systeem veiligheidsclassificatie volgens de ISO 1508


standaard en op de definitie van de fail safe state voor powershift transmissie gebruikt in
bewegend materiaal.
5.2.4.2 APC implementatie

De APC houdt de ingangen en uitgangen onder controle om interne of externe fouten te


detecteren. Door hardware limieten is het niet altijd mogelijk om fouten te detecteren.
5.2.4.3 Considered faults

Over voltage
Under voltage
Internal faults
Program out of control
Single faults on outputs
Incorrect input patterns
Intermittent power loss
Speed sensor faults
Analogue sensor failure

____________________________________________________________________________________
66

Ryheul Kristof

CAN EDI Diagnostic Tool

5.3 SAE J1939 Recommended Practice


J1939 gebruikt het CAN protocol die elke controller toelaat om berichten te versturen over een
netwerk wanneer de bus niet bezig is. Elk bericht bevat een identiteit welke de bericht prioriteit
beschrijft, wie hem zend, en welke data het bericht bevat. Botsingen worden vermeden door het
arbitrage proces die voorkomt tijdens het verzenden van de identiteit (CSMA/CA). Dit laat toe
om berichten met een hoge prioriteit door te laten met een kleine vertraging.
J1939 bestaat uit verschillende delen gebaseerd op het ISO OSI model. Het OSI model
definieert zeven communicatie lagen die elk een andere functie hebben. De fysieke laag
beschrijft de elektrische interface naar de media. De datalink laag beschrijft de protocol regels
voor het aanmaken van berichten, toegang tot de bus en detecteren van transmissie fouten. De
applicatie laag bevat de specifieke data uit elk verzonden en ontvangen bericht.
5.3.1 Standaarden
De SAE J1939 familie van netwerken volgt de 7 lagen van de OSI netwerk architectuur met
verschillende documenten voor elke laag die gebruikt word (niet alle 7 lagen worden gebruikt).
Standaard
J1939
J1939/1
J1939/11
J1939/13
J1939/15
J1939/21
J1939/31
J1939/71
J1939/73
J1939/74
J1939/75
J1939/81

Beschrijving
Recommended Practice for a Serial Control and Communications Vehicle Network
Recommended Practice for Control and Communications Network for On-Highway Equipment
Physical Layer, 250K bits/s, Twisted Shielded Pair
Off-Board Diagnostic Connector
Reduced Physical Layer, 250K bits/sec, Un-Shielded Twisted Pair (UTP)
DATA LINK LAYER
Network Layer
Vehicle Application Layer
Application Layer -Diagnostics
Application Layer - Configurable Messaging
Application Layer - Generator Sets and Industrial
NETWORK MANAGEMENT

OSI laag
Applicatie laag

Presentatie laag
Session laag
Transport laag
Netwerk laag
Datalink laag
Fysieke laag

Standaard
SAE J1939/71
SAE J1939/73
SAE J1939/75

SAE J1939/21
SAE J1939/31
SAE J1939/21
SAE J1939/11
SAE J1939/13
SAE J1939/15

____________________________________________________________________________________
67

Ryheul Kristof

CAN EDI Diagnostic Tool

5.3.2 J1939
De SAE J1939 profiel reeksen is gebaseerd op de CAN datalink laag, gebruikmakend van een
uitgebreid frame formaat (29-bit identiteiten). J1939 is een high speed communicatie netwerk
dat ontworpen is om real-time gesloten functies van de lijncontrole tussen ECUs te steunen die
fysisch door het voertuig kan worden verdeeld.

Fig. 33 J1939 29 bit identifier

5.3.3J1939/1
De netwerken mogen bestaan uit een enkele fysieke laag of meerdere subnetwerken
aangesloten op deze laag. De op de figuur getoonde toestellen zijn informatief, de echt
gebruikte toestellen kunnen verschillen van voertuig tot voertuig.

Fig. 34 Een mogelijke implementatie van een vrachtwagen op de weg (J1939/1).

Fig. 35 Enkelvoudig netwerk (J1939/1).

____________________________________________________________________________________
68

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 36 Meervoudig netwerk (J1939/1).

Het aantal subnetwerken en de selectie van apparaten die aan elkaar worden gesloten wordt
overgelaten aan de voertuigfabrikant. Het gebruik van SAE J1939 voor om het even welk
gesleept voertuig zal automatisch gebruik maken van minstens twee subnetwerken, n voor de
trekker en n voor het gesleepte voertuig.
De brug tussen subnetwerken kunnen berichten filteren zodat enkel de berichten die van belang
zijn toegestaan worden om over de brug te gaan.

5.3.4 J1939/11
5.3.4.1 Beschrijving fysiek netwerk

Fysieke laag
De fysieke laag is een realisatie van een elektrische connectie van een aantal ECUs op
een netwerk. Het maximum aantal ECUs staat vast op 30.

Fysieke media
Shielded twisted pair, deze twee draden hebben een karakteristieke impedantie van 120
Ohm en zijn symmetrisch aangestuurd om de elektrische stroom te respecteren.
De benoeming van de individuele draden zijn CAN_H en CAN_L. De overeenkomstige
pinnen van de ECUs worden ook CAN_H en CAN_L genoemd. De derde connectie
voor de beindiging van het schild wordt aangeduid met CAN_SHLD.

Voltage
De voltages van CAN_H en CAN_L ten opzichte van de massa van elke individuele
ECU zijn VCAN_H en VCAN_L. Het verschil tussen VCAN_H en VCAN_L wordt gedefinieerd
door: Vdiff = VCAN_H VCAN_L

Bus niveaus
De bus lijnen kunnen n van de twee logische niveaus hebben, recessief of dominant.
In het recessieve niveau, worden VCAN_H en VCAN_L bevestigd op een gemiddeld
voltageniveau. Vdiff is ongeveer nul op een geindigde bus. Dit niveau wordt verstuurd

____________________________________________________________________________________
69

Ryheul Kristof

CAN EDI Diagnostic Tool

tijdens dat de bus niets doet (idle). Het dominante niveau wordt vertegenwoordigd door
een differentieel spanning groter dan een minimumdrempel.

Bus niveaus tijdens arbitrage


Een dominante en recessieve bit dat aan de buslijn tijdens een bepaalde bittijd door
twee verschillende ECUs wordt opgelegd zal in een dominante bit resulteren.

Fig. 37 Representatie fysieke bit

Bus terminatie
De buslijn is op elk einde elektrisch afgesloten met een weerstand beschreven door RL.
RL wordt niet geplaatst in een ECU omdat de bus de beindiging zou verliezen als n
van deze ECUs weg zou zijn.

Fig. 38 Functionaliteit fysieke laag


____________________________________________________________________________________
70

Ryheul Kristof

CAN EDI Diagnostic Tool

Bittijd
De bittijd wordt gedefinieerd als de nodige tijd voor n bit. Bus management functies
uitgevoerd in de bittijd, zoals ECU synchronisatie, compensatie van netwerk
transmissie vertraging worden gedefinieerd door de programmeerbare bittijd logica van
de CAN protocol IC.

Fig. 39 Samenstelling van een bit


SYNC_SEG dit stuk wordt gebruikt om de verschillende ECUs op de bus te synchroniseren.

Een rand (edge) wordt verwacht in dit bit segment.


PROP_SEG dit stuk wordt gebruikt om de fysische vertragingstijden van het netwerk te

compenseren. Deze vertragingstijden worden veroorzaakt door de propagatietijd van de buslijn


en de interne vertragingstijd van de ECUs.
PHASE_SEG1, PHASE_SEG2 deze buffer segmenten worden gebruikt om fase fouten te

compenseren en kunnen langer of korter gemaakt worden door het opnieuw synchroniseren.
Sample Point is het tijdspunt waar het bus niveau gelezen en genterpreteerd wordt als de
waarde van de respectievelijke bit. De locatie is aan het einde van PHASE_SEG1.
5.3.4.2 Topologie

Fig. 40 Topologie van het bedradingsnetwerk (J1939/11)

____________________________________________________________________________________
71

Ryheul Kristof

CAN EDI Diagnostic Tool

5.3.5J1939/13
Dit deel beschrijft de Off-Board Diagnostic connector gebruikt op het voertuig om toegang te
krijgen tot de voertuig communicatie bus.
De connector zal binnen de cabine in een plaats worden opgezet die gemakkelijk toegankelijk
is volgens de volgende richtlijnen:

Voor op de weg komende vrachtwagens zal de connector geplaatst worden aan de kant
van de bestuurder als dit mogelijk is. Toegankelijk vanaf de grond naast de cabine.
Voor bussen zal de connector geplaatst worden in het bereik van de zetel van de
bestuurder. Voor bussen met een achtermotor kan de connector gemonteerd worden in
het compartiment van de motor die toegang vanaf de grond mogelijk maakt.
Voor bouw en landbouw materiaal is het aangeraden dat de connector geplaatst wordt
achter de zetel van de bestuurder of onder het dashboard aan de bestuurder zijn knieen.
Deze connector moet gelabeld worden als de kenmerkende connector.
De lengte van de kabel voor de kenmerkende connector wordt beschreven in het
document J1939/11.

5.3.6 J1939/15
Deze standaard is net zoals de J1939/11 standaard een beschrijving van een fysiek netwerk. De
meest beschreven onderwerpen zijn identiek aan deze standaard.
5.3.6.1 Beschrijving fysiek netwerk

Bus terminatie
De buslijn is op elk einde elektrisch afgesloten met een weerstand beschreven door RL.
RL wordt niet geplaatst in een ECU omdat de bus de beindiging zou verliezen als n
van deze ECUs weg zou zijn.
De J1939/15 definieert Type I en Type II ECUs. Type I ECUs bevatten geen bus
afsluitingsweerstand RL. Type II ECUs bevatten een bus afsluitingsweerstand en zal
geplaatst worden op n of beide uiteinden van een J1939/15 netwerk.

Fysieke media

Fig. 41 Un-Shielded Twisted Pair CAN kabel

De bus bestaat uit een CAN_H en CAN_L geleider. De CAN_H geleider moet geel zijn en de
CAN_L geleider groen.
____________________________________________________________________________________
72

Ryheul Kristof

CAN EDI Diagnostic Tool

5.3.6.2 Topologie

Fig. 42 Topologie van het bedradingsnetwerk (Type I ECUs only)

Fig. 43 Topologie van het bedradingsnetwerk (n Type II ECUs genstalleerd)

Fig. 44 Topologie van het bedradingsnetwerk (twee Type II ECUs genstalleerd)

5.3.7J1939/21
De datalink laag zorgt voor een betrouwbaar transport van data over een fysieke link. Dit
bestaat uit het zenden van de CAN Data Frame met de nodige synchronisatie, sequentie
controle, foutcontrole, en flow control. De flow control wordt bereikt door een samenhangend
message/frame formaat.
5.3.7.1 Message/Frame format

Het bericht formaat stemt overeen met de CAN vereisten. De CAN specificaties doorheen dit
deel zijn besproken in CAN Specification 2.0 Part B. Als er verschillen zijn tussen de CAN
specificaties en deze standaard, dan moet de standaard gevolgd worden.
De CAN specificaties zeggen dat toestel adressen niet gebruikt worden. Dit is juist voor de
sommige CAN applicaties, maar is niet juist voor de SAE J1939 standaard.
De definitie van een SAE J1939 netwerk vereist dat toestel adressen gebruikt worden om te
vermijden dat meerdere toestellen dezelfde identiteit gebruiken.
____________________________________________________________________________________
73

Ryheul Kristof

CAN EDI Diagnostic Tool

CAN 2.0B bevat specificaties voor twee bericht formaten, de standaard en uitgebreide frames.
CAN 2.0B impliceert dat berichten van beide formaten op n netwerk mogelijk zijn door het
gebruik van bepaalde bit coderingen die het formaat kunnen herkennen. SAE J1939 heeft ook
aanpassingen voor beide CAN data formaten. De J1939 standaard definieert enkel de volledige
strategie voor gestandaardiseerde communicatie die het uitgebreide formaat gebruiken. Alle
standaard frames zijn enkel voor merkgebonden gebruik die de regels volgen beschreven in
deze standaard. Daarom moeten alle toestellen de uitgebreide frames gebruiken. Standaard
frame toestellen reageren niet op netwerk management berichten en hebben niet de
mogelijkheid om de strategie voor gestandaardiseerde berichten te ondersteunen.
CAN standaard bericht kaders hebben een identiteit van 11 bits in het arbitrage veld. CAN
uitgebreide bericht kaders hebben een identiteit van 29 bits in het arbitrage veld.

Fig. 45 CAN Standard Data Frame

Fig. 46 CAN Extended Data Frame


SAE J1939 Message Frame Format (CAN 2.0B Extended Frame Format)

Het CAN uitgebreide bericht formaat omvat n PDU. Een PDU bestaat uit zeven
voorgedefinieerde velden. Deze zijn achtereenvolgens prioriteit, gereserveerd, data page, PDU
formaat, PDU specifiek (destinatie adres of groep uitbreiding), bron adres en data veld. Zij
worden dan verpakt in n of meer CAN data kaders en verzonden over de fysieke media naar
andere netwerkapparaten. Doorheen deze standaard is byte 1 MSB (bit 8) en byte 8 LSB (bit 1).
SAE J1939 ondersteunt 3 lagen van het OSI model.
____________________________________________________________________________________
74

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 47 OSI model ondersteunt door SAE J1939 (J1939/21)


Parameter Group Number (PGN)

Wanneer het nodig is om een PG te plaatsen in een CAN data frame zal deze een lengte hebben
van 24 bit. De 24 bit waarde wordt least significant byte eerst verstuurd. De PGN is een 24 bit
waarde die de volgende componenten bevat: 6 bits nul, gereserveerde bit, data page bit, PDU
format veld (8 bit) en een Group Extensio veld (8 bit). De procedure voor de bit velden is als
volgt:

de 6 MSB van de PGN zijn nul


de gereserveerde bit, de data page bit en de PDU format veld worden gekopieerd in de
volgende 18 bits.
als de PF waarde kleiner is dan 240 (F016) dan wordt de least significant byte van de
PGN op nul gezet. Anders krijgt deze de waarde van de Group Extension veld.

In de bijlage vind je een tabel met de plaatsing van alle bits in een uitgebreid en standaard
frame.
5.3.7.2 Protocol Data Unit

De toepassingen en/of de netwerklaag verstrekken informatie dat in een eenheid van


protocolgegevens aangegeven is. De eenheid van protocolgegevens verstrekt een frame om de
informatie te organiseren die heel belangrijk is om aan elk CAN data ontwerp toe te voegen die
verzonden wordt. De SAE J1939 PDU bestaat uit zeven velden:

Priority (P)
Reserved (R)
Data page (DP)
PDU format (PF)
PDU specific (PS)

____________________________________________________________________________________
75

Ryheul Kristof

CAN EDI Diagnostic Tool

Source address (SA)


Data fields (DF)

Na het invullen van deze velden worden ze verpakt in n of meerdere CAN data frames en
verzonden over de fysieke media naar een ander netwerkapparaat. Er is maar n PDU per
CAN data frame. Sommige CAN data frame velden werden niet toegevoegd aan de PDU
definitie omdat deze volledige beheerd worden door de CAN specificaties. Deze velden zijn
ook onzichtbaar voor alle OSI lagen die hoger liggen dan de datalink laag. Ze bevatten de SOF,
SRR, IDE, RTR, CRC, ACK en EOF velden.

Fig. 48 J1939 PDU formaat (J1939/21)

Fig. 49 PDU specificatie PDU1 & PDU2 (J1939/21)


5.3.7.3 Protocol Data Unit formaten

Fig. 50 J1939 PDU formaten (PDU1 & PDU2 J1939/21)


____________________________________________________________________________________
76

Ryheul Kristof

CAN EDI Diagnostic Tool

PDU1 format

Fig. 51 J1939 PDU1 formaat (J1939/21)

Dit formaat laat het toe parameter groepen te versturen naar een specifieke of globale
bestemming. Het PDU specifieke gebied bevat een destinatie adres. PDU1 formaat berichten
kunnen gevraagd of ongevraagd verzonden worden. PDU1 formaat berichten worden bepaald
door het PF veld. Wanneer de waarde van het PDU formaat tussen de 0 en 239 ligt is het een
PDU1 formaat. (zie fig. 51)
PDU2 format

Dit formaat kan slechts worden gebruikt om de parameter groepen als globale berichten
versturen. PDU2 formaat berichten kunnen gevraagd of ongevraagd verzonden worden. Bij de
selectie van een PDU2 formaat bericht wordt tegelijkertijd een PGN toegewezen, dit verhindert
dat de PGN ooit aan een specifieke bestemming zou gekoppeld worden. PDU Specifiek (PS)
bevat een uitbreiding van de groep. PDU2 formaat berichten worden bepaald door een PDU
formaat waarde tussen 240 en 255. (zie fig. 52)

Fig. 52 J1939 PDU2 formaat (J1939/21)


____________________________________________________________________________________
77

Ryheul Kristof

CAN EDI Diagnostic Tool

5.4CAN messages APC214


5.4.1 CVC_TO_TC_1: Remote Control Message
Central vehicle controller to transmission controller
Message identifier: 1CFF20xx
Repetition rate: 20 ms

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Shift lever position (neutral, forward, reverse)


Auto/manual shift
Neutral lock
Parking brake
Throttle pedal position
Brake pedal position
Maximum speed
Brake pressure

5.4.2 CVC_TO_TC_2: Setup Conversions


Central vehicle controller to transmission controller
Message identifier: CFF21xx
(CAN 2.0B 29 bit identifier)
Repetition rate: once after powerup
DLC: 8
Bevat de volgende informatie:

Axle ratio
Tire size
Empty vehicle weight
Maximum engine speed

5.4.3 CVC_TO_TC_3: General Explanation


CVC_TO_TC_3 zijn berichten die aangevraagd worden voor het lezen en schrijven van data op
een niet cyclische manier. De meeste data die bereikt kan worden via dit bericht zijn setup
informatiegegevens die eigenlijk niet nodig zijn voor de werking van de machine, maar bepalen
hoe de machine zal functioneren.
5.4.4 CVC_TO_TC_3: Data Request
Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Controller serial number


Controller part number

____________________________________________________________________________________
78

Ryheul Kristof

CAN EDI Diagnostic Tool

Input/output state
Speed sensor rpm
Traveled distance (reset able)
Total traveled distance

5.4.5 CVC_TO_TC_3: Data Program


Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Program type
Information to program

5.4.6 CVC_TO_TC_3: Start Calibration


Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Calibration type
Calibration process

5.4.7 CVC_TO_TC_3: Reset Counters / Timers


Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Reset type
Reset process

5.4.8 CVC_TO_TC_3: APC214s User Interface


Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

User interface type


7 segment digit 1-4
Buttons and leds

____________________________________________________________________________________
79

Ryheul Kristof

CAN EDI Diagnostic Tool

5.4.9 CVC_TO_TC_3: Display Mode Selection


Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Normal display mode


Display test mode
On/off input test mode
Analogue input test mode
Speed sensor test mode
Output test mode
Voltage test mode

5.4.10 CVC_TO_TC_3: Request Configuration Set Selection


Central vehicle controller to transmission controller
Message identifier: 18FF22xx
Repetition rate: as required

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Configuration set selection


Configuration set process
Configuration set index

5.4.11 TC_TO_CVC_1: Broadcasted Transmission Controller Info


Transmission controller to central vehicle controller
Message identifier: 18FF2303
Repetition rate: 20 ms

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Vehicle speed
Transmission temperature
Engine speed
Auto/manual mode
Warning light state
Operating mode

5.4.12 TC_TO_CVC_2: Context Specific Reply Data Request


Transmission controller to central vehicle controller
Message identifier: 18FF2403
Repetition rate: on request

(CAN 2.0B 29 bit identifier)


DLC: 8

____________________________________________________________________________________
80

Ryheul Kristof

CAN EDI Diagnostic Tool

Bevat de volgende informatie:

Type of data (see data request)


Information

5.4.13 TC_TO_CVC_2: Context Specific Reply Calibration


Transmission controller to central vehicle controller
Message identifier: 18FF2403
Repetition rate: 20 ms

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Calibration type
Information

5.4.14 TC_TO_CVC_3
Transmission controller to central vehicle controller
Message identifier: 18FF26xx
Repetition rate: on request

(CAN 2.0B 29 bit identifier)


DLC: 8

Bevat de volgende informatie:

Automatic/manual mode
Warning light status
Operation mode
Brake pedal position
Desired engine speed

5.5 Error codes & description


Fault code
00.50
00.51
00.52

Explanation
There is a problem related to the internal
RAM
There is a problem related to the system RAM

21.00

There is a problem related to the external


RAM
There is a problem related to the Flash
program memory
Pressure on sensor 1 too low for command

21.01

Pressure on sensor 1 too high for command

22.00

Pressure on sensor 2 too low for command

22.01

Pressure on sensor 2 too high for command

00.53

Controllers action
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0
Controller reverts to shut
down mode. Force neutral 0

____________________________________________________________________________________
81

Ryheul Kristof

CAN EDI Diagnostic Tool

5.6General coding rules


5.6.1 General
This document is intended to help developers to create more readable code. Certainly do not
expect you will find an air-tight solution for every case! It is up to every developer to judge
any situation to find the most suitable solution. Try to be consequent!
For more details about design guidelines for developing class libraries, visit
http://msdn2.microsoft.com/en-us/library/ms229042.aspx.
5.6.2 Capitalization Conventions
Many of the naming conventions pertain to the casing of identifiers. It is important to note that
the common language runtime (CLR) supports case-sensitive and case-insensitive languages.
The capitalization conventions described in this topic make it easy for developers to understand
and work with a library
5.6.2.1 Casing styles
Pascal casing

The first letter in the identifier and the first letter of each subsequent concatenated word are
capitalized. You can use Pascal case for identifiers of three or more characters. For example:
BackColor
Camel casing

The first letter of an identifier is lowercase and the first letter of each subsequent concatenated
word is capitalized. For example:
backColor

Identifier
Class
Enumeration type
Enumeration values
Event
Exception class
Read-only static field
Interface
Method
Namespace
Parameter
Property

Case
Pascal
Pascal
Pascal
Pascal
Pascal
Pascal
Pascal
Pascal
Pascal
Camel
Pascal

Example
AppDomain
ErrorLevel
FatalError
ValueChanged
WebException
RedValue
IDisposable
ToString
System.Drawing
typeName
BackColor

Uppercase

All letters in the identifier are capitalized. For example:


IO

____________________________________________________________________________________
82

Ryheul Kristof

CAN EDI Diagnostic Tool

5.6.3 Data structures


5.6.3.1 Classes

Every class has its own source file;

Every class has a fixed prefix, reflecting its type/purpose, e.g.:


Class
source class
Form
form class, for GUI purposes
I
interface class
Object user defined GUI object

Exceptions can be made, for example to make it easier to locate the starting point of
the application (e.g. MainForm).

The name of the class is chosen wisely and describes the object it is meant for. Favor
readability over brevity;

Do not use underscores, hyphens or any other non alphanumeric characters;

Avoid using identifiers that conflict with keywords;

If a class name contains more then one word, each word is written with a capital e.g.
ThisIsAClassName.cs;

If you define an object, which is a part of another object, the name of its class should
repeat the name of the main object, e.g. ClassConfiguration, ClassConfigurationFile,
ClassConfigurationConstants,

5.6.4 Functions
5.6.4.1 Properties

A property is a special type of get and set accessor, which can be used to make a private data
member available outside its scope.
5.6.5 Variables
5.6.5.1 Using prefixes

Persistent use of fixed prefixes will create readable code and a prefixed variable can
immediately tell you some important information about its type, accessibility
Type
bool
byte
char
decimal
double
float
int
uint
long
ulong
short

Preferred prefix
bool
byte
char
dec
dbl
fl
int
uint
l
ul
short

____________________________________________________________________________________
83

Ryheul Kristof

ushort
string

CAN EDI Diagnostic Tool

uschort
str

5.6.5.2 Class data members (module variables)

It is strongly recommended to define all class data members as a private member. Never use
public variables! If you do have to access a certain variable outside its class scope, create a
public get or set function or create a property.
Add an m to the prefix of each class data member to distinguish a class data member from
any function data member. The keyword this can also be used here!
5.6.5.3 Function data members (local variables)

Always try to define all your local variables on top of the function.
5.6.6 Programming structures
5.6.6.1 Using an if-else-then comparison

An if-then or if-then-else comparison always uses curly brackets for every block of
statements, even if there is only one statement.
The if statement, which defines your comparison, always compares one value to another.
Never use if (variable), but use if (variable == true)

5.6.6.2 Using a loop

Avoid using a break statement to exit your loop (for, while). The stop condition of every
loop structure must be complete. Rather create an extra local variable to add to your stop
condition the putting a break statement somewhere in your loop!
5.6.6.3 Casting

You can cast an (undefined) object to an object of another type by putting the new data
type between parentheses, in front of the object you want to cast.
Do not put a space between the casting type and the object to cast.

5.6.6.4 Incrementing values

Never increment a variable when you are using the variables as indexer or in a comparison.
Code as baData[i++] = 8 or if (a++>0) is never used!

____________________________________________________________________________________
84

Ryheul Kristof

CAN EDI Diagnostic Tool

6. Werking APC200 controller


6.1 Elektronische shift controllers
6.1.1 APC Automatic Powershift Control
Spicers automatische powershift controllers verbeteren de voertuigprestaties, zodat de
bestuurder vrij is om zich te concentreren op de machine taken i.p.v. de machine functies.
De APC werkt met elke dashboard gemonteerde shiftlever

Fig. 53 Transmissie model en mogelijke controller (DANA)

Fig. 54 Controller systeem mogelijkheden (DANA)


____________________________________________________________________________________
85

Ryheul Kristof

CAN EDI Diagnostic Tool

6.1.2 Voordelen van elektronische sturing

Verhoogt voertuig prestaties, productiviteit en efficintie


Verhoogt de levensduur van aandrijf componenten
Verlaagt slechte operaties van het voertuig
Verlaagt stuurfouten
Verlaagt training voor bestuurders
Gentegreerde display
Integratie van bestaande voertuignetwerken (CAN)
Ingebouwde probleemoplossingstool.

6.2 APC200 layout


6.2.1 APC200 hardware blokschema

Fig. 55 APC200 hardware blokschema

____________________________________________________________________________________
86

Ryheul Kristof

CAN EDI Diagnostic Tool

6.2.2 APC200 hardware connectie schema

Fig. 56 APC200 hardware connectie schema

6.2.3 APC200 controller

Fig. 57 APC200 controller


____________________________________________________________________________________
87

Ryheul Kristof

CAN EDI Diagnostic Tool

6.2.4 APC200 lokaliseren in een voertuig

Fig. 58 APC200 lokaliseren in een voertuig


____________________________________________________________________________________
88

Ryheul Kristof

CAN EDI Diagnostic Tool

7.Testbord & opstelling


7.1 Werking testbord

Fig. 59 Testbord APC voorzijde (TCT19)

Freq0-3
Ain0-3
Do0-3
Ao0-6

Di0-9

Speed regulators (Voertuigsnelheid, motorsnelheid, ..).


Temperatuur, gaspedaal, rempedaal,
Waarschuwingslampje
Variable flow solenoid (VFS)
Drukregelaar
Regelbare contactoren
Gasklep regelaar
handrem aan/uit, schakelpatroon, sensor in zetel

____________________________________________________________________________________
89

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 60 Testbord APC zijkant (TCT19)

Parallelle poort (lpt1)

Automatiseren van manuele inputs op het testbord.


Kan dan bijvoorbeeld via een programma geschreven worden.

2 CAN connectoren

CAN connector om een CAN interface op aan te sluiten.

RS232 connector

Mogelijkheid om de APC instellingen te configureren (aanpassen


van applicatie parameters) dit gebeurd dan met een software
programma (GDE). Deze interface wordt ook gebruikt voor
firmware upgrades.

Voedingsaansluiting

12V of 24V al naar gelang de controller die aan het testbord


hangt.

____________________________________________________________________________________
90

Ryheul Kristof

CAN EDI Diagnostic Tool

7.2 Verschillende USB dongles (ifak en softing)


Er zijn tal van bedrijven die verschillende soorten hardware interfaces maken voor de CAN
bus. Hardware interfaces van USB, PCMCIA, PCI of UTP naar CAN zijn de meest gebruikte.
De software die ontwikkeld werd dient gebruik te maken van een USB naar CAN interface
module. Van dit model zijn er twee types in het bedrijf, een Ifak System en een Softing USB
dongle. Het is de bedoeling dat het programma werkt voor alle USB interfaces en niet alleen
voor Ifak System of voor Softing. Dit is natuurlijk geen gemakkelijke klus om compatibel te
zijn met verschillende bedrijven. De RP1210 standaard legt nochtans een standaard op die elke
fabrikant moet opvolgen, maar er zijn natuurlijk altijd bedrijven die een uitzondering maken.
7.2.1 Informatie ifak system
De mobiele opstelling evenals het monitoren wordt ondersteund. Computers en laptops kunnen
zonder genstalleerde CAN adapter in werking gesteld worden waar men zich ook bevindt.
Door de USB plug & play module kan een connectie met een CAN netwerk gelegd worden in
enkele seconden. Het apparaat krijgt rechtstreeks voeding van de USB er is geen externe
voeding nodig.

Fig. 61 Ifak System USB naar CAN interface

Hardware
USB
Snelheid

CAN
Asic

SJA 1000

Connector

1 Sub-D 9 pin

Snelheid

10kbps tot 1Mbps

Interfaces

DLL

Werking

Software
OS

Fullspeed: 12Mbps
Highspeed: 480Mbps
Tot 16 interfaces
parallel

Window 9x, ME,


2000, XP, CE 3.0

____________________________________________________________________________________
91

Ryheul Kristof

CAN EDI Diagnostic Tool

7.2.2 Informatie softing


Actieve n kanaal CAN bus USB interface om een PC op een CAN netwerk aan te sluiten. De
interface is geschikt voor zowel visualisatietaken, parameterbepaling en analysetoepassingen.
Functies:

Actieve interface met ingebouwde microcontroller


CAN-API
Lokale buffer en preprocessor
Hoge prestaties, neemt tijdskritieke taken over van de PC.
Snelheid tot 1Mbps
Statische object opslag mode

Fig. 62 Softing USB naar CAN interface

7.2.3 Waargenomen verschillen tussen de twee fabrikanten tijdens het meten


Nochtans legt de RP1210 standaard regels op over hoe de functies noemen, hoe ze gebruikt
kunnen worden en hoe het bericht formaat er dient uit te zien. Er is toch een verschil in het
bericht formaat tussen Ifak System en Softing.
Er is een duidelijk verschil in de timestamp van Ifak System en Softing.
Een eerste verschil is de nauwkeurigheid van de timestamp.
Ifak System gebruikt intern de tickCount functie van Windows. Deze heeft een nauwkeurigheid
tot op n milliseconde. Softing gebruikt een interne timer functie voor de timestamp en deze
heeft een nauwkeurigheid tot op n microseconde. Dit levert een probleem op als je de
software compatibel wil maken met zowel Ifak System en Softing. Bij Ifak System zou je de
tijd moeten delen door duizend om aan de seconden te komen en bij Softing door een miljoen.
Op zich levert dit geen problemen op maar deze zijn er wel als je kijkt naar de berichten die
binnen komen. Doordat de CAN bus een maximum snelheid heeft van 1Mbps kunnen er zich
tot 6700 uitgebreide berichten per seconde op de bus bevinden. Dit betekent dat er ongeveer 6
berichten per milliseconde op de bus kunnen komen. Het probleem bij Ifak System is dus dat er
bij 100% busload 6 tot 7 berichten dezelfde timestamp zullen hebben. Dit is dus een groot
probleem als je deze tool wil gebruiken om real-time informatie van de bus te plukken.
Een tweede verschil is de manier van het coderen.
De RP1210 standaard legt vast dat de timestamp in Big Endian of Motorola formaat moet
gecodeerd zijn. Dit wil dus zeggen dat de MSB bit helemaal vooraan staat. De timestamp is 4
bytes groot dus dit wil zeggen dat de eerste byte eigenlijk laatst moet staan als je er een getal
wil van maken.
____________________________________________________________________________________
92

Ryheul Kristof

CAN EDI Diagnostic Tool

Softing gebruikt Big Endian zoals de standaard voorlegt en Ifak System gebruikt Little Endian
of Intel formaat. Dit wil dus zeggen dat voor Ifak System een andere methode moet gebruikt
worden om de timestamp om te zetten naar een tijd. Dit levert natuurlijk weer een probleem op
als je een software applicatie wil ontwerpen die overweg kan met Softing en met Ifak System.
Een voorbeeld van hoe het Motorola en Intel formaat werkt.
Getal 2489 binair uitgeschreven in 4 byte:
00000000 00000000 00001001 10111001
Byte
00
01
10
11

Big Endian
00000000
00000000
00001001
10111001

Litlle Endian
10111001
00001001
00000000
00000000

En als laatste is er nog een onverklaarbaar probleem bij de Ifak System interface.
Bij het inlezen van de berichten die zich op de CAN bus bevinden komen soms 10
verschillende berichten binnen met dezelfde tijd. Dit kan niet als er maar om de 10
milliseconden en 20 milliseconden een bericht op de bus komt.
7.3 Verschil met de Vector CANcaseXL

Fig. 63 Vector CAN interfaces

De Vector CAN interfaces kunnen niet aangesproken worden via een RP1210 DLL. Vector
biedt hun eigen software aan die speciaal ontworpen is voor hun hardware. Zonder hardware
kan het programma niet gebruikt worden en visa versa.
____________________________________________________________________________________
93

Ryheul Kristof

CAN EDI Diagnostic Tool

7.4 Aansluiten APC200 controller

Fig. 64 APC200 voorzijde (DANA)

Fig. 65 APC200 achterzijde (DANA)

____________________________________________________________________________________
94

Ryheul Kristof

CAN EDI Diagnostic Tool

7.5 Blokschema meetopstelling

7.6 Verschillende soorten signalen

Snelheidssensoren
Druksensoren
Temperatuursensoren

Fig. 66 Snelheidssensor (DANA)


____________________________________________________________________________________
95

Ryheul Kristof

CAN EDI Diagnostic Tool

8. Vector CANalyzer software nader bekeken


8.1 Werking CANalyzer ?
CANalyzer is een universeel ontwerp middel voor CAN bus systemen, het is software die
gebruikt wordt om berichten aanwezig op de bus op het scherm te zetten. Doormiddel van
krachtige functies en programmeerbaarheid van de gebruiker zijn alle behoeften behandeld.
Dit gaat van test signalen tot het problemen oplossen van complexe systemen.
De basis functie van CANanalyzer is het representeren en analyseren van data aanwezig op de
bus. Deze basis functies bevatten:

Weergeven van data aanwezig op de bus in een trace-window.


Weergeven van segmenten van bepaalde berichten
Statistieken op de frequentie van berichten
Opslaan van alle informatie voor offline evaluatie
Het plaatsen van gemaakte blokken zoals filters in het data flow-diagram.

De gebruiker kan extra functionaliteit toevoegen door gebruik te maken van CANalyzer
programmeerbaarheid. Functieblokken door de gebruiker geprogrammeerd kunnen geplaatst
worden op willekeurige punten in de CANalyzer data flow-diagram. De op C gebaseerde taal
CAPL doet dienst als programmeertaal. De CAPL browser is inbegrepen in CANalyzer voor
gemakkelijke verwezenlijking, wijziging en compilatie van CAPL programmas.
Door de programmeerbaarheid biedt het vele mogelijke toepassingen:

Emulatie van een busstation


Emulatie van de systeem omgeving voor het testen van het busstation.
Onderlinge verbinding tussen twee bussen
Test generator voor het bestuderen van de fysieke laag.

CANalyzer vereist wel dat men de hardware van Vector gebruikt, dit is tevens de fabrikant van
het software pakket.
8.1.1 CANalyzer vensters
CANanalyzer bevat zeven verschillende standaard vensters om informatie over de data weer te
geven.
8.1.1.1 Measurement Setup

De data flowchart wordt grafisch voorgesteld in de measurement setup window.

____________________________________________________________________________________
96

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 67 CANalyzer measurement setup

8.1.1.2 Graphics Window

De data segmenten van de berichten worden weergegeven in functie van de tijd in een X-Y
diagram.
8.1.1.3 Trace Window

Dient om alle busactiviteiten te tonen tijdens het meten.

____________________________________________________________________________________
97

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 68 CANalyzer trace window configuration (Standard)

Fig. 69 CANalyzer trace window configuration (Extended)

____________________________________________________________________________________
98

Ryheul Kristof

CAN EDI Diagnostic Tool

8.1.1.4 Write Window

Informatie over de vooruitgang van de meting wordt hier getoond. Schrijf instructies van
CAPL programmas verschijnen in dit venster.
8.1.1.5 Bus Statistics Window

Dient als een numerieke display van frequenties van data, fouten, overbelasting en bus verkeer.

Fig. 8.4 CANalyzer bus statistics


8.1.1.6 Statistics Window

De gemiddelde berichtfrequentie of gemiddelde berichtperiode van transmissies wordt grafisch


voorgesteld.
8.1.1.7 Data Window

Het data venster wordt gebruikt om signaal waarden te tonen als een fysieke waarde, als een
ruwe waarde of standaard met een staaf (progress bar).

8.1.2 Venster types


8.1.2.1 MDI window

Dit type venster is verwerkt in het programma venster en kan geminimaliseerd worden.
8.1.2.2 Docking window

Dit type vensters staan altijd op de voorgrond. En het programma is terug actief nadat het
venster gesloten wordt.
8.1.2.3 Floating window

Deze vensters verschijnen niet op de taakbalk, ze kunnen niet overlapt worden door andere
programmas. Als het programma venster wordt geminimaliseerd worden deze ook
geminimaliseerd. Ze kunnen niet bereikt worden door de toetsen combinatie <alt>-<tab>.
____________________________________________________________________________________
99

Ryheul Kristof

CAN EDI Diagnostic Tool

8.1.2.4 Standard window

Actieve programmas kunnen deze vensters overlappen, ze zijn zichtbaar in de taakbalk en via
de toetsen combinatie <alt>-<tab>. Dit venster blijft open staan wanneer het programma wordt
geminimaliseerd.
8.1.3 CAPL browser

Fig. 70 CANalyzer CAPL browser

8.2 Werking CANdb++ ?


CANdb++ is een alleenstaand programma die bij de CANalyzer tool geleverd wordt, dit
programma kan gebruikt worden om databases aan te maken, om deze later dan toe te voegen
aan het CANanalyzer software programma. Als een database toegevoegd werd en er komt een
bericht binnen op de bus die gekend is in de database wordt er een naam gegeven aan het
bericht en worden er verschillende signalen aan toegekend. Al naar gelang hoeveel bytes deze
in beslag neemt, krijg je een representatie van het ontvangen bericht.

____________________________________________________________________________________
100

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 71 CANdb++ overall view

In bovenstaande figuur staat een overzicht van alle signalen die aanwezig zijn in de database.
Door dubbel te klikken op een signaal kan deze bewerkt worden.

Fig. 72 CANdb++ value tables

Aan elk signaal kan een waardetabel gekoppeld worden. Alle waardetabellen die gemaakt zijn
worden weergegeven in een venster zoals hierboven. Hier kun je ook door dubbel te klikken de
waardetabellen aanpassen.

____________________________________________________________________________________
101

Ryheul Kristof

CAN EDI Diagnostic Tool

De volgende screenshots tonen enkele functies van het programma aan, deze hebben verder
geen uitleg nodig de figuurnaam zegt al meer dan genoeg.

Fig. 73 CANdb++ change value tables

Fig. 74 CANdb++ message layout


____________________________________________________________________________________
102

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 75 CANdb++ display settings

Fig. 76 CANdb++ message definition

____________________________________________________________________________________
103

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 77 CANdb++ signal definition

8.3 Werking log formaat CANalyzer ?


Vector heeft een eigen log formaat ingebouwd in hun CANalyzer software, deze is gemakkelijk
te ontleden en zelf samen te stellen. Het is de bedoeling dat de ontworpen software dit log
formaat behoud zodat er ook nog altijd met CANalyzer kan gewerkt worden. CANalyzer biedt
namelijk nog een aantal opties die niet onmiddellijk zullen worden gemplementeerd in
CANlogger. De extensie van het bestand waarin de berichten opgeslagen worden is .asc ook
dit wordt gebruikt in CANlogger om een log file aan te maken.
8.3.1 Log formaat voorbeeld
date di apr 24 12:2:36 am 2007
base hex
timestamp absolute
internal events logged
Begin Triggerblock date di apr 24 12:2:36 am 2007
0.000000 Start of measurement
.
.
.
.
.
.
.
0.203000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.203000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.203000 1 CFF2303x
Rx d 8 00 30 00 00 40 FF 3E 54
0.218000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.312000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.312000 1 CFF2303x
Rx d 8 00 30 00 00 40 FF 3E 54
0.312000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.390000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.390000 1 CFF2303x
Rx d 8 00 30 00 00 40 FF 3E 54
0.390000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
0.390000 1 C000003x
Rx d 8 39 A8 16 00 00 00 00 00
____________________________________________________________________________________
104

Ryheul Kristof

0.390000 1 CFF2303x
0.406000 1 C000003x
0.422000 1 C000003x
0.437000 1 CFF2303x
0.437000 1 C000003x
0.453000 1 C000003x
0.453000 1 CFF2303x
0.468000 1 C000003x
0.468000 1 C000003x
0.484000 1 CFF2303x
0.484000 1 C000003x
0.500000 1 C000003x
0.500000 1 CFF2303x
.
.
24.765000 1 CFF2303x
24.781000 1 C000003x
24.797000 1 C000003x
24.797000 1 CFF2303x
24.812000 1 C000003x
24.812000 1 CFF2303x
24.828000 1 C000003x
End Triggerblock

CAN EDI Diagnostic Tool

Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 00 30 00 00 40 FF 3E 54
.
.
.
.
.
Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00
Rx d 8 00 30 00 00 40 FF 3E 54
Rx d 8 39 A8 16 00 00 00 00 00

8.3.2Log formaat ontleden


Het eerste blok geeft wat informatie over het formaat, de start van de meting en de datum en
het uur van de meeting. De opmerkelijkste zijn in het vet gedrukt (hex, absolute en begin).
Na deze header krijg je de echte start van de meeting bij 0.000000.
In de meeting kun je 6 verschillende kolommen onderscheiden, er is telkens n aangeduid op
de 6 eerste regels. Van links naar rechts vind je er de volgende informatie:

Timestamp
CAN channel
Identiteit (4bytes)
Type (Rx of Tx)
DLC meestal 8
Data (8bytes)

Zowel de data als de identiteit zijn weergegeven in hex. Als er gebruik zou gemaakt worden
van het decimale stelsel zouden de kolommen niet mooi onder elkaar staan en wordt het geheel
veel onduidelijker.
Op het einde van de meeting dient nog een End te komen zodat het zeker is dat de meeting
gestopt is.

____________________________________________________________________________________
105

Ryheul Kristof

CAN EDI Diagnostic Tool

8.4 Werking database formaat CANalyzer ?


Net zoals bij het log formaat heeft CANalyzer ook zijn eigen database formaat, dat wat meer
kennis vergt over de werking van CAN. De extensie van de file waarin de database wordt
opgeslagen is .dbc om compatibiliteitsredenen wordt dit bestandsformaat ook gebruikt.
Zo is het heel erg handig om bestaande database ontwerpen zonder enige aanpassing te
implementeren in de ontwikkelde software, en visa versa.
8.4.1 Database formaat voorbeeld
VERSION ""
NS_ :
NS_DESC_
CM_
BA_DEF_
BA_
VAL_
CAT_DEF_
CAT_
FILTER
BA_DEF_DEF_
EV_DATA_
ENVVAR_DATA_
SGTYPE_
SGTYPE_VAL_
BA_DEF_SGTYPE_
BA_SGTYPE_
SIG_TYPE_REF_
VAL_TABLE_
SIG_GROUP_
SIG_VALTYPE_
SIGTYPE_VALTYPE_
BO_TX_BU_
BA_DEF_REL_
BA_REL_
BA_DEF_DEF_REL_
BU_SG_REL_
BU_EV_REL_
BU_BO_REL_
BS_:
BU_:
VAL_TABLE_ TC_TO_CVC_1_OldFaultState 1 "There has been a fault" 0 "No inactive fault is
present" ;
VAL_TABLE_ TC_TO_CVC_1_FaultState 1 "There is a fault active" 0 "No fault is currently present"
;
VAL_TABLE_ TC_TO_CVC_1_ShiftInProgress 1 "A shift is currently in progress" 0 "Steady state"
;
____________________________________________________________________________________
106

Ryheul Kristof

CAN EDI Diagnostic Tool

VAL_TABLE_ TC_TO_CVC_1_WarningLightState 1 "Warning" 0 "Normal Driving" ;


VAL_TABLE_ TC_TO_CVC_1_AutoMode 1 "Automatic Mode" 0 "Manual Mode" ;
VAL_TABLE_ TC_TO_CVC_1_TransmissionPosition 66 "R4" 65 "F4" 64 "N4" 50 "R3" 49 "F3" 48
"N3" 34 "R2" 33 "F2" 32 "N2" 18 "R1" 17 "F1" 16 "N1" ;
VAL_TABLE_ TC_TO_CVC_1_ShiftLeverPosition 66 "R4" 65 "F4" 64 "N4" 50 "R3" 49 "F3" 34
"R2" 33 "F2" 18 "R1" 17 "F1" 16 "N1" 32 "N2" 48 "N3" ;
BO_ 2365530873 CVC_TO_TC_3: 8 Vector__XXX
SG_ CVC_TO_TC_3_DataRequest : 0|8@1- (1,0) [0|0] "CVC_TO_TC_3" Vector__XXX
BO_ 2365531651 TC_TO_CVC_3: 8 Vector__XXX
SG_ TC_TO_CVC_3_FunctionLimiting : 56|8@1- (1,56) [0|0] "TC_TO_CVC_3" Vector__XXX
SG_ TC_TO_CVC_3_DesEngineSpeed : 40|16@1- (1,40) [0|0] "TC_TO_CVC_3" Vector__XXX
SG_ TC_TO_CVC_3_DesEngineSpeedLimit : 24|16@1- (1,24) [0|0] "TC_TO_CVC_3"
Vector__XXX
SG_ TC_TO_CVC_3_BrakePedalPosition : 16|8@1- (1,16) [0|0] "TC_TO_CVC_3" Vector__XXX
SG_ TC_TO_CVC_3_ShiftInProgress : 8|8@1- (1,8) [0|0] "TC_TO_CVC_3" Vector__XXX
SG_ TC_TO_CVC_3_OperationMode : 4|4@1- (1,4) [0|0] "TC_TO_CVC_3" Vector__XXX
SG_ TC_TO_CVC_3_WarningLightStatus : 2|2@1- (1,2) [0|0] "TC_TO_CVC_3" Vector__XXX
SG_ TC_TO_CVC_3_AutoMode : 0|2@1- (1,0) [0|0] "TC_TO_CVC_3" Vector__XXX
BO_ 2365531139 TC_TO_CVC_2: 8 Vector__XXX
SG_ TC_TO_CVC_2_Information : 8|56@1- (1,8) [0|0] "TC_TO_CVC_2" Vector__XXX
SG_ TC_TO_CVC_2_TypeOfData : 0|8@1- (1,0) [0|0] "TC_TO_CVC_2" Vector__XXX
BO_ 2365530883 TC_TO_CVC_1: 8 Vector__XXX
SG_ TC_TO_CVC_1_OldFaultState : 63|1@1- (1,63) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_FaultState : 62|1@1- (1,62) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_ShiftInProgress : 61|1@1- (1,61) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_OperatingMode : 58|3@1- (1,58) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_WarningLightState : 57|1@1- (1,57) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_AutoMode : 56|1@1- (1,56) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_EngineSpeed : 40|16@1- (1,40) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_TransmissionTemp : 32|8@1- (1,32) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_VehicleSpeed : 16|16@1- (1,16) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_ShiftLeverPosition : 8|8@1- (1,8) [0|0] "TC_TO_CVC_1" Vector__XXX
SG_ TC_TO_CVC_1_TransmissionPosition : 0|8@1- (1,0) [0|0] "TC_TO_CVC_1" Vector__XXX
CM_ BO_ 3221225472 "This is a message for not used signals, created by Vector CANdb++ DBC
OLE DB Provider.";
CM_ BO_ 2365531139 "Context specific reply - Data request
Context specific reply - Calibration";
CM_ BO_ 2365530883 "Broadcasted transmission controller info";
VAL_ 2365531651 TC_TO_CVC_3_OperationMode 7 "Limp home interlock" 6 "Calibration mode" 5
"Transmission shutdown" 4 "Limp home mode" 3 "Reserved" 2 "Automatic/std inching" 1
"Automatic/manual" 0 "Manual only" ;
VAL_ 2365531651 TC_TO_CVC_3_WarningLightStatus 3 "Not available" 2 "Error" 1 "Driver
request not granted" 0 "Normal driving" ;
VAL_ 2365531651 TC_TO_CVC_3_AutoMode 3 "Not available" 2 "Error" 1 "Automatic mode" 0
"Manual mode" ;
____________________________________________________________________________________
107

Ryheul Kristof

CAN EDI Diagnostic Tool

VAL_ 2365530883 TC_TO_CVC_1_OldFaultState 1 "There has been a fault" 0 "No inactive fault is
present" ;
VAL_ 2365530883 TC_TO_CVC_1_FaultState 1 "There is a fault active" 0 "No fault is currently
present" ;
VAL_ 2365530883 TC_TO_CVC_1_ShiftInProgress 1 "A shift is currently in progress" 0 "Steady
state" ;
VAL_ 2365530883 TC_TO_CVC_1_OperatingMode 7 "Limphome interlock mode" 6 "Calibration
mode" 5 "Transmission shutdown" 4 "Limphome mode" 3 "reserved" 2 "Automatic & std inching
mode" 1 "Automatic/manual mode" 0 "Manual mode only" ;
VAL_ 2365530883 TC_TO_CVC_1_WarningLightState 1 "Warning" 0 "Normal Driving" ;
VAL_ 2365530883 TC_TO_CVC_1_AutoMode 1 "Automatic Mode" 0 "Manual Mode" ;
VAL_ 2365530883 TC_TO_CVC_1_ShiftLeverPosition 66 "R4" 65 "F4" 64 "N4" 50 "R3" 49 "F3" 34
"R2" 33 "F2" 18 "R1" 17 "F1" 16 "N1" 32 "N2" 48 "N3" ;
VAL_ 2365530883 TC_TO_CVC_1_TransmissionPosition 66 "R4" 65 "F4" 64 "N4" 50 "R3" 49 "F3"
48 "N3" 34 "R2" 33 "F2" 32 "N2" 18 "R1" 17 "F1" 16 "N1" ;

8.4.2 Database formaat ontleden


Het database formaat gebruikt enkele vast gekende parameters zoals:
Parameter
BU_:
BO_
SG_
VAL_TABLE_
VAL_
CM_BO_
NS_:

Beschrijving
Toont het begin van de database aan
(berichten, signalen en waardetabellen)
Bericht informatie
Signaal informatie
Waardetabellen die niet gekoppeld zijn aan
een signaal
Waardetabellen die gekoppeld zijn aan een
signaal
Commentaar bij een bericht
Beschrijft een aantal parameters

8.4.2.1 Berichten ontleden

Fig. 78 Ontleden van database berichten

____________________________________________________________________________________
108

Ryheul Kristof

CAN EDI Diagnostic Tool

8.4.2.2 Signalen ontleden

Fig. 79 Ontleden van database signalen

8.4.2.3 Waardetabellen ontleden

Fig. 80 Ontleden van database waardetabellen

____________________________________________________________________________________
109

Ryheul Kristof

CAN EDI Diagnostic Tool

9.Visual Studio, Visual SourceSafe en Office Visio


9.1 Werking Visual Studio ?
9.1.1 Hoe maak je een macro aan ?
Via de Macro Explorer kun je alle toegevoegde macros terug vinden.
De macros zijn geschreven in VB, en kunnen gemakkelijk geopend worden door dubbel op de
module te klikken. Dubbel klikken op de subroutine zal ervoor zorgen dat het geen die in de
macro wordt afgedrukt aan het document wordt toegevoegd.
Subroutine InsertTryCatchBlockForDebugClass()
Imports EnvDTE
Imports System.Diagnostics
Public Module Module1
Sub InsertTryCatchBlockForDebugClass()
Dim objectTextSelection As TextSelection
objectTextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)
objectTextSelection.Text = try + vbCrLf + { + vbCrLf + } + vbCrLf +
catch(Exeption ex) + vbCrLf + { + vbCrLf + ClassMyDebug.MyDebug(ex); + vbCrLf
+ throw(ex); +vbCrLf + }
End Sub
End Module
Dit geeft het volgende resultaat:
try
{
}
catch(Exception ex)
{
ClassMyDebug.MyDebug(ex);
trow(ex);
}

____________________________________________________________________________________
110

Ryheul Kristof

CAN EDI Diagnostic Tool

9.1.2 Zoeken naar variabelen, functies, objecten en andere stukken code

Fig. 81 Visual Studio find in files

Na een aantal maanden programmeren kan je programma zo gigantisch groot worden dat je niet
meer weet in welke klassen je een variabele, functie, object of andere toegekend of gebruikt
hebt. Hierdoor wordt het zeer moeilijk om fouten op te sporen. Visual Studio heeft hiervoor een
handig hulpmiddel de zoekfunctie. Deze zoekt in elke klasse van heel het project of solution
waar een bepaalde zoekterm gebruikt wordt.

Fig. 82 Visual Studio find results in entire project

Het vervangen van een bepaalde naam is handig als het blijkt dat de naam die je gekozen had
voor een variabele, functie of object niet goed was voor het geen het doet.

____________________________________________________________________________________
111

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 83 Visual Studio replace in files

9.1.3 Gemakkelijkheid van debuggen


Het gebeurt heel vaak dat je ergens een functie schrijft, die niet doet wat je verwachtte. Door de
ingebouwde debugger functie is het zeer gemakkelijk doorheen lussen, functies en klassen te
navigeren, de waarde van variabelen te bekijken en zo het probleem op te lossen. Zonder deze
debugger zou je uren moeten zoeken op de kleinste programmeerfouten. Als je ergens een
verkeerd argument doorgeeft aan een functie kan deze een fout generen op een plaats waar je
niets fouts opmerkt. Door de opgebouwde programmeerervaring verleer je deze fouten wel.
9.1.4 Werken met solution explorer, class view, properties
Alle gemaakte klassen in een solution worden weergegeven in de solution explorer. Hierdoor
wordt het gemakkelijk om snel naar een andere klasse over te gaan door dubbel te klikken op
zijn naam. In de class view kun je alle functies, variabelen en accessors bekijken die
gedefinieerd zijn in een klasse. Als je in de grafische omgeving programmeert kan je gebruik
maken van het properties venster. Dit venster maakt het mogelijk om de instellingen van
bijvoorbeeld knoppen, tekstvakken, tabellen, labels en andere gemakkelijk aan te passen.
Al de instellingen die niet standaard zijn worden dan in de Windows Form Designer generated
code regio geplaatst hier dient de programmeur niets in te veranderen.

____________________________________________________________________________________
112

Ryheul Kristof

Fig. 84 Visual Studio solution explorer

CAN EDI Diagnostic Tool

Visual Studio class view

Fig. 85 Visual Studio properties


____________________________________________________________________________________
113

Ryheul Kristof

CAN EDI Diagnostic Tool

9.1.5 De WYSIWYG en WYWIWYG IDE (Visual Studio)

Fig. 86 Visual Studio WYSIWYG interface

Fig. 87 Visual Studio WYWIWYG interface

____________________________________________________________________________________
114

Ryheul Kristof

CAN EDI Diagnostic Tool

9.1.6 Converteren van commentaar naar API in webvorm


In Visual Studio kun je door uitgebreide commentaar te schrijven bij variabelen, functies en
klassen via n klik op de knop een soort web API creren. Dit is vooral handig als je niet
alleen aan een project werkt, zo kunnen andere programmeurs kijken welke functie ze nodig
hebben om een bepaalde waarde terug te krijgen die ze op dat moment nodig hebben.
Niet alleen is het handig om uitgebreide commentaar te schrijven voor een API of voor andere
gebruikers. Door deze commentaar toe te voegen aan alle functies, klassen en variabelen kun je
binnen hetzelfde project met de IntelliSense zien welke beschrijving een bepaalde functie,
klasse of variabele heeft.
9.1.7 Werken met IntelliSense
Het meest gebruikte en handigste hulpmiddel in Visual Studio is wellicht de IntelliSense. Het
maakt het de programmeur mogelijk om zeer snel bepaalde functies, klassen of variabelen te
gebruiken. De IntelliSense toont een lijst van de leden die voor een klasse of voorwerp
beschikbaar zijn na het typen een klasse of object gevolgd door een punt.
IntelliSense werkt via een automatisch geproduceerd intern geheugen die klassen, variabelen en
andere concepten bevat.

Fig. 88 Gebruik maken van IntelliSense

9.1.8 Werken met objectbrowser, index, msdn library


Er bestaan duizenden functies en klassen in de object bibliotheek van .NET het is onmogelijk
om ze allemaal weer te geven laat staan ze te gebruiken of te kennen. Doordat er zoveel zijn
werd een handige objectbrowser ontwikkeld die het mogelijk maakt om alle functies,
variabelen en accessors binnen een klasse weer te geven. Voor meer details en voorbeelden kan
je gebruik maken van het index venster of de msdn library die zowel online als offline kan
worden gebruikt.
____________________________________________________________________________________
115

Ryheul Kristof

CAN EDI Diagnostic Tool

9.2 Werking Visual SourceSafe ?


Bij grote projecten werkt men meestal met meerdere programmeurs tegelijk aan een oplossing
(project). Het is zeer moeilijk als deze programmeurs code veranderen in dezelfde klassen. Dit
is waar SourceSafe te hulp komt om te voorkomen dat programmeurs elkaars code
overschrijven. Programmeurs kunnen via SourceSafe inloggen op een server via het interne
netwerk en de verschillende klassen bekijken. Lokaal op de pc dient een folder aangemaakt te
worden waar het project zal geplaatst worden. De programmeur kan dan via SourceSafe een
werkfolder aanmaken op het pad waar het project geplaatst wordt. Eenmaal dit gebeurd is
kunnen bestanden geopend en gesloten worden al naar gelang of de programmeur deze nodig
heeft. Een andere programmeur moet dan wachten tot de ene gedaan heeft met zijn/haar
bewerkingen voordat hij code kan aanpassen. Met dit systeem creer je een veilige
werkomgeving om meerdere programmeurs op n project te laten werken.
9.2.1 Aanmaken van een label
Na een paar aanpassingen doorgevoerd te hebben kan een programmeur een label plaatsen
om aan te tonen welke aanpassingen hij/zij heeft veranderd sinds het laatste label. Zo wordt het
gemakkelijk om bij plotse problemen terug te kijken wat er op dat moment in een bepaalde
klasse veranderd werd. Zo kunnen problemen sneller opgelost worden, als het heel erg is kan
zelfs een vroegere label lokaal ingeladen worden om vanaf dat moment opnieuw te beginnen.

Fig. 89 Visual SourceSafe adding an label


____________________________________________________________________________________
116

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 90 Visual SourceSafe add comment to label

9.2.2 Bestanden toevoegen, bewerken, uit- en in checken, verwijderen, vergelijken


In dit venster kun je zien welke bestanden er veranderd werden (rood) en welke bestanden er
toegevoegd werden aan de werkfolder (groen). De rest van de bestanden (wit) zijn onveranderd
gebleven. Je kan ook bekijken welke veranderingen er werden aangebracht aan n bepaald
bestand.

Fig. 91 Visual SourceSafe project differences

____________________________________________________________________________________
117

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 92 Visual SourceSafe add new file to the project

Fig. 93 Visual SourceSafe show file differences


____________________________________________________________________________________
118

Ryheul Kristof

CAN EDI Diagnostic Tool

Via een handig venster die de veranderde code weergeeft met een grijze tint is het
gemakkelijke om aanpassingen te bekijken. Vooral voor het debuggen is dit een handig
hulpmiddel.

Fig. 94 Visual SourceSafe file differences

9.2.3 Project geschiedenis, commentaar, pad

Fig. 95 Visual SourceSafe history of file


____________________________________________________________________________________
119

Ryheul Kristof

CAN EDI Diagnostic Tool

Via de geschiedenis en de commentaar kunnen alle veranderingen bijgehouden worden.


Zodat het enkel een kwestie van zoeken wordt om te weten wanneer een functie toegevoegd
werd. Dit kan handig zijn als er bijvoorbeeld een fout veroorzaakt werd door een andere functie
toe te voegen. Dan kan deze functie herzien worden en indien nodig bewerkt worden.

Fig. 96 Visual SourceSafe history details

Fig. 97 Visual SourceSafe history of project

____________________________________________________________________________________
120

Ryheul Kristof

CAN EDI Diagnostic Tool

9.3 Werking Office Visio voor UML-diagram ?


Naast het echte programmeerwerk is het ook nodig om een compleet overzicht te krijgen van
het ontwikkelde project vanuit een ander opzicht. De theoretische achtergrond van hoe een
UML diagram samengesteld wordt, is beschreven in het volgende hoofdstuk. Met Microsoft
Office Visio kunnen alle mogelijke UML diagrammen ontworpen worden.
De voornaamste en meest gebruikte is het UML klassen diagram. Hierbij worden alle functies,
variabelen en accessors weergegeven binnen een klasse met hun bijbehorende access modifiers.
9.3.1 Ontwerpen van een UML-diagram met visio

Fig. 98 Office Visio workplace

____________________________________________________________________________________
121

Ryheul Kristof

CAN EDI Diagnostic Tool

9.3.2 Toevoegen van variabelen, methoden, klassen en argumenten


Eerst geef je de klasse een naam:

Fig. 99 Office Visio UML class properties (Class)

Daarna kun je alle attributen toevoegen (variabelen):

____________________________________________________________________________________
122

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 100 Office Visio UML class properties (Attributes)

Tenslotte kunnen ook de operaties (functies) toegevoegd worden:

Fig. 101 Office Visio UML class properties (Operations)


____________________________________________________________________________________
123

Ryheul Kristof

CAN EDI Diagnostic Tool

Er is natuurlijk nog altijd het probleem met het overladen van methoden (methoden met
dezelfde naam). Deze worden onderscheiden door hun argumenten die verschillend zijn. Deze
kan je bij de eigenschappen van een functie instellen.

Fig. 102 Office Visio UML Operation Properties (Parameters)

____________________________________________________________________________________
124

Ryheul Kristof

CAN EDI Diagnostic Tool

10. Ontwerpen van schemas


10.1UML Diagrammen
10.1.1 CAN EDI diagnostic tool UML Use Case Diagram

Fig. 103 Use Case diagram CAN EDI Diagnostic Tool


____________________________________________________________________________________
125

Ryheul Kristof

CAN EDI Diagnostic Tool

10.1.2 Database UML Class Diagram

Fig. 104 UML Class Diagram database


____________________________________________________________________________________
126

Ryheul Kristof

CAN EDI Diagnostic Tool

10.1.3 Configuration UML Class Diagram


Zie A3 blad in bijlage.

____________________________________________________________________________________
127

Ryheul Kristof

CAN EDI Diagnostic Tool

10.2 Software flowcharts


10.2.1 Logger flowchart

Fig. 105 Flowchart logging


____________________________________________________________________________________
128

Ryheul Kristof

CAN EDI Diagnostic Tool

10.2.2 Trace window flowchart

Fig. 106 Flowchart trace window


____________________________________________________________________________________
129

Ryheul Kristof

CAN EDI Diagnostic Tool

10.2.3 Database flowchart

Fig. 107 Flowchart database


____________________________________________________________________________________
130

Ryheul Kristof

CAN EDI Diagnostic Tool

10.2.4 Generator window flowchart

Fig. 108 Flowchart generator window


____________________________________________________________________________________
131

Ryheul Kristof

CAN EDI Diagnostic Tool

10.2.5 Messages flowchart

Fig. 109 Flowchart messages (received and send)


____________________________________________________________________________________
132

Ryheul Kristof

CAN EDI Diagnostic Tool

10.2.6 Inladen van laatste configuratie bestand via parameters in het register

Fig. 110 Flowchart configuratie bestanden inladen


____________________________________________________________________________________
133

Ryheul Kristof

CAN EDI Diagnostic Tool

11. Software GUI CAN EDI Diagnostic Tool


11.1 Het hoofdprogramma
11.1.1 CAN EDI Diagnistoc Tool

Fig. 111 CAN EDI Diagnostic Tool (Software)

In de bovenstaande figuur zie je de software applicatie met het trace venster, de filter vensters
en het venster voor bericht informatie geopend. De software biedt een visueel mooi
ontwikkelde interface aan voor het bekijken van berichten die aanwezig zijn op de bus. Je kan
zowel de bericht identiteit als de naam van het signaal zien. Ook het type bericht als de data
aanwezig in het bericht wordt weergegeven. Het biedt ook de mogelijkheid om filters in te
stellen om enkel de gewenste berichten te ontvangen. Signalen aanwezig in een bericht kunnen
voorgesteld worden met hun eenheid of beschrijving uit een database. De data die een bericht
bevat wordt decimaal weergegeven in het veld Value van het venster voor bericht informatie.
Na het opstarten van de applicatie wordt het laatst gebruikte configuratiebestand ingeladen. Dit
wordt onthouden via een variabele in het register van de computer. Deze variabele zit onder de
CURRENT_USERS hive, dit wil zeggen dat bij een andere gebruiker een ander
configuratiebestand zal ingeladen worden.

____________________________________________________________________________________
134

Ryheul Kristof

CAN EDI Diagnostic Tool

11.1.2 De menubar

Fig. 112 Menubar (CAN EDI Diagnostic Tool)

De menubar bevat de meest gekende en gebruikte menus:

File menu
Edit menu
View menu
Measurement menu
Options menu
Window menu
Help Menu

Er zijn nog 2 extra menus die zichtbaar worden als het trace venster of het database venster
actief wordt. Deze respectievelijke menus kunnen dus alleen gebruikt worden wanneer n van
de twee vensters geopend en actief zijn.

11.1.3 De toolbar

Fig. 113 Toolbar (CAN EDI Diagnostic Tool)

Via de toolbar kun je bijna alle functies doen als met de menubar:

Openen/sluiten van filter vensters


Openen van trace venster
Openen van generator venster
Openen van signal monitor venster (numeric & graphic)
Openen van database venster
Starten/stoppen van log functie
Inladen/opslaan van configuratie bestanden
Starte/pauzeren/stoppen van de meeting

____________________________________________________________________________________
135

Ryheul Kristof

CAN EDI Diagnostic Tool

11.1.4 Venster selecteren

Fig. 114 Selecteren van MDI vensters (CAN EDI Diagnostic Tool)

De vensters die opgeroepen kunnen worden en vast zitten in het hoofdprogramma (MDI
windows) worden weergegeven in het menu Window. Als n van deze vensters geselecteerd
wordt zal deze actief worden en de focus krijgen.

11.1.5 Starten, pauzeren en stoppen van een meeting

In de toolbar kun je gemakkelijk de meeting starten, pauzeren en stoppen met de bovenstaande


iconen. Door op de startknop te drukken wordt er connectie gelegd met de USB naar CAN
interface module en wordt de thread gestart die ontvangen boodschappen verwerkt en opslaat in
de buffer. Via de pauzeknop wordt hardwarematig het ontvangen van berichten geblokkeerd.
Door op de stopknop te drukken wordt hardware matig de connectie met de USB naar CAN
interface module afgesloten en de thread stil gelegd.

11.1.6 Starten en stoppen van de log functie


Het starten en het stoppen van de log functie kan op verschillende manieren.
Starten:
Door op de startknop te drukken terwijl de logging actief staat.
Door op de logknop te drukken terwijl de meeting loopt.
Stoppen:
Door op de stopknop te drukken terwijl de logging actief staat.
Door op de logknop te drukken terwijl de meeting loopt.
Om een compleet overzicht te krijgen van hoe dit werkt verwijs ik naar de flowchart van de
logger.

____________________________________________________________________________________
136

Ryheul Kristof

CAN EDI Diagnostic Tool

11.2 De trace-window
11.2.1 Het trace venster

Fig. 115 Trace venster (CAN EDI Diagnostic Tool)

Dit venster toont alle informatie die een bericht bevat. De lijst heeft de volgende velden:

Number
Time

ID
Name
Type
Data

Het aantal berichten die ontvangen werd (toegevoegd via software).


De tijd waarop een bericht ontvangen werd door de interface module.
(4 bytes).
De identiteit van het bericht (4 bytes).
De naam van het bericht aan de hand van een database.
Het type bericht ontvangen of verzonden (Rx of Tx).
De data die het bericht bevat (8 bytes).

____________________________________________________________________________________
137

Ryheul Kristof

CAN EDI Diagnostic Tool

11.2.2 Het venster voor het weergeven van bericht informatie

Fig. 116 Selecteren van bericht identiteit voor meer informatie (CAN EDI Diagnostic Tool)

Als het trace venster open staat en de meeting loopt kun je aan de hand van het bovenstaande
venster de gewenste berichten selecteren waarvan je meer informatie wil zien. Deze informatie
wordt automatisch up-to-date gehouden wanneer er een nieuw bericht met dezelfde identiteit
ontvangen of verzonden wordt.

Fig. 117 Informatie van de signalen in een bericht (CAN EDI Diagnostic Tool)

Bovenstaande figuur toont het venster waar specifieke bericht informatie weergegeven wordt.
Je kan er alle signalen vinden die tot het bericht behoren als ook hun waarde, beschrijving en
eenheid.

____________________________________________________________________________________
138

Ryheul Kristof

CAN EDI Diagnostic Tool

11.2.3 Trace venster instellingen

Fig. 118 Trace window configuratie (CAN EDI Diagnostic Tool)


11.2.3.1 Chronologische en vaste weergave

Het is mogelijk om at-runtime deze instelling te veranderen zodat je berichten chronologisch of


vast kunt weergeven. Als berichten chronologisch weergegeven worden kan dit een zeer snel
aangroeiende lijst van berichten worden. Deze lijst wordt telkens uitgebreid naarmate er
berichten ontvangen of verzonden worden. Als berichten vast weergegeven worden zal deze
lijst enkel de berichten bevatten met verschillende identiteit. Deze berichten worden dan
telkens upgedate wanneer een bericht met dezelfde identiteit ontvangen wordt, zodat het meest
recente bericht, met de meest recente waardes getoond wordt.
11.2.3.2 Decimaal en hexadecimale weergave

Het is mogelijk om at-runtime deze instelling te veranderen zodat je de data in een bericht
decimaal of hexadecimaal kan weergeven. Dit is vooral gemakkelijk voor mensen die niet veel
ervaring hebben in het lezen van hexadecimale getallen of die niet bekend zijn met dit
getalstelsel. Het kan natuurlijk ook gemakkelijk zijn om dan zelf te gaan uitzoeken met welke
waarde de data overeenstemt in een datasheet. Dit wordt dan weer overbodig door een database
in te laden die dit automatisch doet voor de gebruiker.
11.2.3.3 Absolute en relatieve weergave

Het is mogelijk om at-runtime deze instelling te veranderen zodat je de tijd van ontvangen of
verzonden berichten absolute of relatief kan weergeven. In absolute weergave loopt de tijd op
aan de hand van de ontvangen of verzonden berichten. In relatieve weergave krijg je telkens te
zien wanneer een bericht ontvangen of verzonden wordt ten opzichte van het laatst ontvangen
of verzonden bericht.

____________________________________________________________________________________
139

Ryheul Kristof

CAN EDI Diagnostic Tool

11.3 Het generator venster

Fig. 119 Generator venster (CAN EDI Diagnostic Tool)

Via het generator venster kun je berichten versturen aan de hand van zelf ingevulde data of
aan de hand van een database. Als er geen database ingeladen werd is de lijst met berichten niet
beschikbaar. Dan moet je zelf de identiteit, dlc en data invullen. Dit vraagt natuurlijk een
behoorlijke kennis van de mogelijke CAN berichten. Als er wel een database ingeladen werd
kan er een bericht geselecteerd worden. Door het selecteren van een bericht worden alle
signalen die dat bericht bevat helemaal onderaan weergegeven. Door de waarden van de
signalen te veranderen wordt automatisch de data in het bericht aangepast.
Er is ook een mogelijkheid om berichten toe te voegen, te verwijderen of te klonen. Het klonen
van berichten is handig omdat je dan niet telkens opnieuw alle data hoeft in te vullen.

____________________________________________________________________________________
140

Ryheul Kristof

CAN EDI Diagnostic Tool

11.4 Het database venster


11.4.1 Het venster om databases in te laden en te gebruiken

Fig. 120 Database inladen en gebruiker (CAN EDI Diagnostic Tool)

Wanneer het database venster geopend wordt zal automatisch het load database venster
geopend worden die het mogelijk maakt om een database aan de lijst toe te voegen, te
gebruiken, te openen of te verwijderen uit de lijst.
11.4.2 Het database venster

Fig. 121 Database venster bericht informatie (CAN EDI Diagnostic Tool)
____________________________________________________________________________________
141

Ryheul Kristof

CAN EDI Diagnostic Tool

Als er een database geopend werd zal deze in het database venster zichtbaar worden. Zowel de
berichten, signalen als waardetabellen worden weergegeven. Het is ook mogelijk om berichten
en signalen te bewerken en later terug op te slaan.

Fig. 122 Database venster signaal informatie (CAN EDI Diagnostic Tool)

11.4.3 Het venster om berichten te bewerken

Fig. 123 Bericht definities bewerken (CAN EDI Diagnostic Tool)


____________________________________________________________________________________
142

Ryheul Kristof

CAN EDI Diagnostic Tool

Een bericht bevat vier instellingen die aangepast kunnen worden:

De naam van het bericht.


Het type bericht (Standaard of uitgebreid CAN bericht).
De identiteit van het bericht (4 bytes).
Het aantal data bytes die het bericht bevat (max. 8 bytes).

Fig. 124 Signalen aan een bericht toevoegen of verwijderen (CAN EDI Diagnostic Tool)

Als de tab Signals geselecteerd is worden alle signalen die tot het bericht behoren
weergegeven. Hier is het mogelijk om signalen aan een bericht toe te voegen of te verwijderen.
Door het selecteren van een signaal wordt de Remove en View knop actief. De Apply
knop wordt pas actief als er een aanpassing is gebeurt aan het bericht.
11.4.4 Het venster om signalen te bewerken
Een signaal bevat 11 instellingen die aangepast kunnen worden.

De naam van het signaal.


Het aantal bit (bit lengte).
Het code formaat (Intel of Motorola).
Waarde type (Signed of Unsigned).
De factor waarmee vermenigvuldigd moet worden.
Minimum en maximum waarde van het signaal.
De eenheid van het signaal.
De start positie van het signaal (start bit).
De offset die opgeteld moet worden met de signaal waarde.
Selecteren van een waardetabel.

____________________________________________________________________________________
143

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 125 Signaal definities bewerken (CAN EDI Diagnostic Tool)

Als de tab Messages geselecteerd is worden alle berichten weergegeven waartoe het signaal
behoort. Het is mogelijk om berichten toe te voegen of te verwijderen. Door het selecteren van
een bericht wordt de Remove en View knop actief. De Apply knop wordt pas actief als er
een aanpassing is gebeurt aan het signaal.

Fig. 126 Signaal toevoegen en verwijderen uit berichten (CAN EDI Diagnostic Tool)

____________________________________________________________________________________
144

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 127 Signaal waardetabel (CAN EDI Diagnostic Tool)

In het tabblad Value Description wordt de waardetabel weergegeven die tot het signaal
behoort. Bewerken van de waardetabel in dit venster is onmogelijk. Het dient enkel om te tonen
welke waardetabel aan het signaal gekoppeld is.
11.5 Het venster voor de filters

Fig. 128 Filter vensters (CAN EDI Diagnostic Tool)


____________________________________________________________________________________
145

Ryheul Kristof

CAN EDI Diagnostic Tool

De filter vensters kunnen via een docking manager overal in het applicatie venster geplaatst
worden zoals de gebruiker het zelf wil. Alleen de hardware filters kunnen gebruikt worden om
berichten te filteren via de USB naar CAN interface module. De software filters zijn nog niet
gemplementeerd in het programma, maar hiermee zou je op data die in het bericht aanwezig is
moeten kunnen filteren. Als er een hardware filter toegevoegd wordt komt deze in de lijst van
filters terecht waar je nogmaals kan selecteren of de filter gebruikt wordt of niet.
11.6 Het configuratie venster voor de logger

Fig. 129 Configuratie venster voor de logger (CAN EDI Diagnostic Tool)

In dit venster kun je een log bestand selecteren om te gebruiken tijdens het loggen.
Als je een nieuwe log start en het gebruikte log bestand bestaat al krijg je een melding of je het
bestand wil overschrijven, een nieuw bestand wil selecteren of stoppen met loggen. Als je de
optie nieuw bestand selecteren selecteert krijg je het bovenstaande venster waar je een nieuw
log bestand kan selecteren of aanmaken. Er staat ook informatie over het geselecteerde log
bestand zoals de naam, de extensie en de datum wanneer deze het laatst bewerkt werd.
De optie Warn on overwrite file staat standaard aan en kan niet afgezet worden.

Fig. 130 Waarschuwing bij overschrijven log bestand

____________________________________________________________________________________
146

Ryheul Kristof

CAN EDI Diagnostic Tool

11.7 Het venster voor grafische weergave van signalen

Fig. 131 Graphic Signal Monitor (CAN EDI Diagonstic Tool)

Hier kunnen geselecteerde signalen grafisch weergegeven worden. Deze functie werd niet
verder afgewerkt.
11.8 Inladen van een recent configuratie bestand

Fig. 132 Recente configuratie bestanden (CAN EDI Diagnostic Tool)

Het is mogelijk om de laatst gebruikte configuratie bestanden in te laden via het File menu.
De 5 laatst gebruikte configuratie bestanden worden opgeslagen in het register. Dit kun je
bekijken met de Regitry Editor van Windows.

Fig. 133 Gebruik maken van het run venster (Windows)


____________________________________________________________________________________
147

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 134 Register variabelen in Windows (Registry Editor)

11.9 Applicatie folder en beschrijving

Fig. 135 Applicatie folder (CAN EDI Diagnostic Tool)

Dit is de werkfolder van het programma waar je het programma terug vind samen met de
gebruikte mappen configurations, databases, filters, generator en traces. Ook de nodig DLL
bestanden bevinden zich in deze directory.

____________________________________________________________________________________
148

Ryheul Kristof

CAN EDI Diagnostic Tool

12. Software implementatie C#.NET


A common mistake that people make when trying to
design something completely foolproof is to
underestimate the ingenuity of complete fools.
Douglas Adams
12.1Big endian en little endian functies voor de timestamp.
12.1.1 Big Endian
/// <summary>
/// The timestamp received from the CAN bus is in Big Endian format.
/// Big Endian or Motorola Format => Most significant Bit First !
/// </summary>
private uint readBigEndian(byte[] readByte)
{
try
{
uint accum = 0;
int i = 0;
for (int shiftBy=24; shiftBy>=0; shiftBy-=8)
{
accum |= (uint)(readByte[i] & 0xff) << shiftBy;
i++;
}
return accum;
}
catch(Exception ex)
{
ClassMyDebug.MyDebug(ex);
throw(ex);
}
}

12.1.2 Little Endian


/// <summary>
/// The timestamp received from the CAN Bus is in Big Endian format
/// but with ifak its Little Endian.
/// Little Endian or Intel Format => Least Significant Bit First !
/// </summary>
private uint readLittleEndian(byte[] readByte)
{
try
{
uint accum = 0;
int i = 0;
for(int shiftBy=0; shiftBy<32; shiftBy+=8)
{
accum |= (uint)(readByte[i] & 0xff) << shiftBy;
i++;
}
return accum;
}
catch(Exception ex)
{
ClassMyDebug.MyDebug(ex);
throw(ex);
}
}

____________________________________________________________________________________
149

Ryheul Kristof

CAN EDI Diagnostic Tool

12.2 Informatie uit een signal halen


Een bericht kan uit verschillende signalen bestaan, deze worden in het venster voor
berichtinformatie weergegeven met hun decimale waarde en beschrijving.
Aan de hand van een voorbeeld geef ik de uitwerking van hoe dit gebeurd.
Het ontvangen bericht:
ID
0x0CFF2303

Data
00 30 34 FC 41 FF 3E D4

Aan de hand van de ingeladen database kan je het bericht met naam benoemen. De naam die bij
dit bericht behoort is TC2CVC1. Dit bericht bevat volgens de database 15 signalen waarvan ik
er 2 als voorbeeld geef.
Signaal naam
Start bit
sOperatingState_abiDrivin 58
gMode
wVehicleSpeed
16

Bit lengte
3

Factor Offset
1
0

Minimum Maximum
0
7

16

0,0039 0
0625

30

Nu kunnen we per signaal de decimale waarde weergeven.


sOperatingState_abiDrivingMode
Startbit = 58 dit wil zeggen dat het signaal start in byte (58 / 8)+1 = 8.
Hieruit kunnen we dan ook afleiden op welke plaats het signaal begint in byte 8.
8*7 = 56 en startbit = 58 krijg je een rest van 2. Dit is de plaats waar het signaal echt begint.
Als je nu byte 8 van dichterbij bekijkt heeft hij de volgende waarde : D4
Dit kun je binair uitschrijven als : 1101 0100
De start positie is op bit 2 en de lengte van het signaal is 3 bit dus krijg je 010 als waarde.
Dit is decimaal gelijk aan 2. Als je nu kijkt in de database dan kun je deze waarde gelijkstellen
aan de beschrijving Automatic_and_StandardInching.
wVehicleSpeed
Startbit = 16 dit wil zeggen dat het signaal start in byte (16 / 8)+1 = 3.
Hieruit kunnen we dan ook afleiden op welke plaats het signaal begint in byte 3.
8*2 = 16 en startbit = 16 krijg je een rest van 0. Het signaal begint dus aan het begin.
De lengte van het signaal is 2 bytes dus moeten we byte 3 & 4 bekijken.
Deze hebben de volgende waarde: 34 FC
Dit kun je binair uitschrijven als 0011 0100 1111 1100, decimaal is dit gelijk aan 13564.
Dit getal wordt dan vermenigvuldigd met de factor. Dit komt op 53 km/h
In dit voorbeeld is de maximum grens van 30 dus overschreden.

____________________________________________________________________________________
150

Ryheul Kristof

CAN EDI Diagnostic Tool

12.3 String formatting


12.3.1 Formateren van getallen
Specifier
c
d
e
f
g
n

f
x

Specifier

Type
Currency
Decimal
Scientific
Fixed point
General
Numver with
commas for
thousands
Round trippable
Hexadecimal

Format
{0:c}
{0:d}
{0:e}
{0:f}
{0:g}
{0:n}

Output (double 2.89)


$2.89
System.FormatException
2.890000e+000
2.89
2.89
2.89

{0:r}
{0:x4}

2.89
System.FormatException
System.FormatException db28

Type

Format
{0:00.0000}
{0(#).##}
{0:0.0}
{0:0,0}

,.

Zero placeholder
Digit placeholder
Decimal point
Thousand
separator
Number scaling

Output
(double 2100.67)
2100.6700
(2100).67
2100.67
2,100

{0:0,.}

Percent

{0:0%}

210067%

Exponent
placeholder

{0:00e+0}

21e+2

0
#
.
,

Output (integer -9432)


-$94,32
-9432
-9.4320000e+004
-9432.00
-9432
-9,432

Note
Pads with zeroes

Must be between two


zeroes
Comma adjacent to
period scales by 1000
Multiplies by 100, adds
% sign
Many exponent formats
available

____________________________________________________________________________________
151

Ryheul Kristof

CAN EDI Diagnostic Tool

12.3.2 Formateren van datums


Specifier
d
D
t
T
f
F
g
G
M
r
s
u
U
Y

Type
Short date
Long date
Short time
Long time
Full data & time
Full date & time (long)
Default date & time
Default date & time (long)
Month day pattern
RFC1123 date string
Sortable date string
Universal sortable, local time
Universal sortable, GMT
Year month pattern

Specifier
dd
ddd
dddd
f, ff,
gg,
hh
HH
mm
MM
MMM
MMMM
ss
tt
yy
yyyy
zz
zzzz
:
/

Type
Day
Day name
Full day name
Second fractions
Era
2 digit hour
2 digit hour, 24hr
format
Minute 00-59
Month 01-12
Month abbreviation
Full month name
Seconds 00-59
AM or PM
Year, 2 digits
Year
Timezone offset, 2
digits
Full timezone offset
Separator
Separator

Examle (Passed System.DateTime.Now)


26/04/2007
April 26, 2007
11:23 AM
11:23:23 AM
April 26, 2007 11:23 AM
April 26, 2007 11:23:23 AM
26/04/2007 11:23 AM
26/04/2007 11:23:23 AM
April 26
Thu, 26 Apr 2007 11:23:23 GMT
2007-04-26T11:23:23
2007-04-26 11:23:23Z
April 26, 2007 11:23:23 AM
April, 2007

Example
{0:dd}
{0:ddd}
{0:dddd}
{0:fff}
{0:gg}
{0:hh}
{0:HH}

Example output
26
Thu
Thursday
932
A.D.
11
11

{0:mm}
{0:MM}
{0:MMM}
{0:MMMM}
{0:ss}
{0:tt}
{0:yy}
{0:yyyy}
{0:zz}

23
04
Apr
April
23
AM
07
2007
+01

{0:zzz}
{0:hh:mm:ss}
{0:dd/MM/yyyy}

+01:00
11:23:23
26/04/2007

____________________________________________________________________________________
152

Ryheul Kristof

CAN EDI Diagnostic Tool

13. CAN EDI Diagnostic Tool


Enkele aandachtspunten van de gerealiseerde software en wat nog kan worden gerealiseerd.
Trace venster
9 Relatieve representatie van ontvangen boodschappen.
9 Boodschappen kunnen bij naam getoond worden.
9 De vertaling van data naar signalen die in een boodschap vervat zitten kunnen
gevisualiseerd worden.
9 Configuratie venster voor relatieve of absolute tijden, hexadecimaal of decimale notatie
9 Prioriteit en/of adres uit de identiteit negeren bij het opzoeken in de database.
Logger
9 Logging in CANalyzer formaat.
9 Loggen gebeurd automatisch als de buffer vol is.
9 Interface om log bestand te specifiren..
Interactive message generator venster
9 Berichten kunnen verstuurd worden via een druk op de knop of cyclisch (periode
instelbaar in milliseconden).
9 Boodschappen die de gebruiker wil versturen voorstellen bij naam.
9 Mogelijkheid om via waardetabellen signalen een waarde te geven.
9 Mogelijkheid tot het klonen van berichten, verwijderen,
Message filter vensters
9 Splitsing van filters klasse en mainform.
8 Implementatie van softwarefilters.
8 Verwijderen van toegevoegde filters.
Configuratie bestanden
9 Van alle vensters de locatie, grote en zichtbaarheid bijhouden (trace venster, generator
venster, database venster, filter vensters).
9 Opslaan van bericht gegevens die in het generator venster aanwezig zijn.
9 Terugzetten van berichten in het generator venster via een configuratie bestand.
9 Opslaan van database gegevens en opnieuw inlezen van database gegevens.
9 Opslaan van filter gegevens.
8 Toevoegen van software filters
8 Configuratie voor logging niet af (pad naar log bestand, aan bestand toevoegen of niet).
8 Configuratie voor traceform niet af (Hex./dec. , relatief/absolute , chronologisch/vast).
8 Configuratie voor bericht informatie vensters.

____________________________________________________________________________________
153

Ryheul Kristof

CAN EDI Diagnostic Tool

Database venster
9
9
9
9
9
8
8
8
8
8

Inlezen van CANalyzer (CANdb++) database bestand (.dbc).


Weergeven van berichten, signalen en waardetabellen.
Bewerken van berichten e signalen.
Onmiddelijke toepassing van de veranderingen
Terug wegschrijven van database in CANdb++ formaat.
Inlezen van commentaar van zowel berichten en signalen gebeurd niet.
Bewerken van waardetabellen niet mogelijk.
Layout database venster aanpassen.
Bericht layout in het venster om berichten te bewerken nog niet gemplementeerd.
Verwijderen van databases lukt nog niet.

Signal monitor vensters


9
9
8
8
8
8
8

Vensters voor het bekijken van signalen zowel grafisch als in tekstvorm.
Tekenpaneel om de signalen op te tekenen.
Weergeven van signalen die de gebruiker kan selecteren (numeric).
Weergeven welke signalen er getoond worden (grafisch).
Welke kleur hoort bij welk signaal en deze ook kunnen aanpassen (grafisch).
Tekenen van signalen op een paneel (grafisch).
Keuze uit verschillende grafieken, in en uitzomen, lopen doorheen de tijd, signalen
toevoegen en verwijderen,

____________________________________________________________________________________
154

Ryheul Kristof

CAN EDI Diagnostic Tool

Besluiten
Reeds uitgevoerde werk

Begrip van:
- recommended practice RP1210A
- J1939 standaard
- CAN standaard
- CAN messages APC214

Broncode van September opnieuw bekijken

Broncode van CANlogger analyseren

Uittekenen testbord (labview)

Uitzoeken werking Vector CANalyzer logging

Uitzoeken werking Vector CANalyzer database

Berichten op de CAN bus bekijken met Vector CANalyzer en CANlogger


Bij CANlogger is dit nog met ruwe data, in Vector CANalyzer kun je spelen met
databases om zo de berichten te onderscheiden en op naam te kunnen weergeven.

Bekijken werking configuratie bestanden CANlogger


Dit is in een XML formaat, dit kan nog verder uitgebreid worden om nog meer
functionaliteit toe te voegen aan de applicatie.

Probleem met het opstart scherm opgelost.

Ontwerp database voorstelling


- Inlezen database file (.dbc)
- Gegevens van de berichten en signalen in een boomstructuur weergeven.

Start ontwerp van UML-diagram voor CANlogger programma.


Werken in meerdere bestanden om de duidelijkheid te behouden is wel nodig.

Bekijken van aangekochte boeken:


- Embedded networking with CAN and CANopen
- C# murach, C# for developers.

Toepassen van de coding rules

Overbodige code weggewerkt

Implementeren van log functie in CANlogger

____________________________________________________________________________________
155

Ryheul Kristof

CAN EDI Diagnostic Tool

Testen nieuwe USB dongle van Softing


Verschil bekijken tussen de dongle van ifak system en die van Softing

Zorgen dat de gegevens in de trace venster leesbaar zijn.


Implementatie van nieuwe buffer (object array) met een vaste grote van bv.
10000.
Event creren als er een buffer overflow is.
Werken met een thread in de traceform om de berichten om de zoveel ms op het
scherm te zetten

De UpdateThread van de TraceWindow kan zowel verzonden als ontvangen berichten


onderscheiden en weergeven in de traceForm.

Starten met Visual SourceSafe om de software op te slaan op de server, zodat er


mogelijkheid is om labels te plaatsen waardoor het gemakkelijker wordt om het
ontwerp van het programma te volgen.

Aan de hand van een Microsoft artikel de AutoResetEvents omvormen naar een array
van WaitHandles.

Cyclische boodschappen versturen met instelbare periode werkt.

De ontvangen en gelezen boodschappen worden in het formaat van CANalyzer


opgeslagen in een log bestand.

Relatieve representatie van de ontvagen boodschappen werkt.


Het verplaatsen van chronologisch naar vaste weergave en omgekeerd kan terwijl de
berichten ingelezen worden. De berichten die al op het trace venster werden
weergegeven voor er veranderd werd naar chronologisch of vast worden niet opnieuw
getoond.

De logger kan aan en af gezet worden zonder dat het trace venster zichtbaar is.
Telkens als er een bufferoverflow gedetecteerd wordt zal de logger een event krijgen
om de gegevens naar een bestand weg te schrijven.

Zowel verzonden als ontvangen berichten kunnen worden opgeslagen in het log
bestand.

Aanpassen van de layout van verschillende formulieren.

Aanmaken van verschillende formulieren voor zowel database, logger, trace venster
configuratie,

Het mogelijk maken om berichten die in het generator venster aanwezig zijn te klonen
of te verwijderen. Mogelijk maken om berichten aan te maken via beschrijvingen uit de
database.

____________________________________________________________________________________
156

Ryheul Kristof

CAN EDI Diagnostic Tool

Bewerken van de configuratie file (.xml document)


DatabaseForm configuration informatie over de grote, locatie, zichtbaarheid en
of de database in gebruik is implementeren.
Gegevens over de GeneratorFormItems verwerken in het configuratie bestand.
Log informatie zoals het pad naar waar hij moet schrijven ook verwerken in de
configuratie file.

Het terug inlezen van de configuratie file (.xml document)


De grote, locatie en zichtbaarheid van alle vensters terug inlezen.
Database informatie terug schrijven naar het formulier om een database te laden
of te gebruiken.
Bericht gegevens terug in het generator venster plaatsen

Werking van een datagrid leren kennen. Formulier componenten proberen toe te voegen
aan een datagrid cel. Dit blijkt dus zeer moeilijk te gaan, de componenten blijven steeds
onzichtbaar. Met het .NET framework 2.0 bestaan er speciale componenten om in zn
cel te gebruiken, waardoor het werken met een datagrid veel gemakkelijker gaat.

Database voorstelling:
Representeren van waardetabellen, signaal waardetabellen.
Aanmaken van een hash tabel om de waarde en beschrijving die tot een
waardetabel behoren op te slaan.
Gegevens van database opslaan in verschillende klassen zodat het geheel
overzichtelijk blijft en gemakkelijk aanpasbaar is.
Aanmaken van formulieren om signalen en berichten te kunnen bewerken.

De berichten in het trace venster op naam weergeven aan de hand van de ingeladen
database. Mogelijk maken om een database aan het trace venster te koppelen zonder
dat deze geopend is.

MessageInfoForm enkel openen als er een waardetabel aanwezig is voor minstens n


signaal die zich in het bericht bevindt die bekeken wordt.

Mogelijk maken om extra specifieke informatie van een bericht weer te geven in een
apart venster opgesplitst in verschillende signalen. Meerdere berichten tegelijkertijd
kunnen bekijken terwijl de meeting nog loopt.

Verschillende fouten opgelost veroorzaakt door nieuwe code toe te voegen die de
nauwkeurigheid en juistheid verhoogd, waar er vroeger geen problemen waren.

____________________________________________________________________________________
157

Ryheul Kristof

CAN EDI Diagnostic Tool

Bespreking implementatie van fases


- Bij het terug keren van relatieve naar chronologische presentatie, de lijst bijhouden
of niet ? (Slim of dom trace venster ?) Implementatie al naargelang of er
voldoende tijd is.
- De filters voor de berichten in een aparte klasse implementeren. Mogelijkheid om
ook de filter eigenschappen op te slaan in de configuratie file.
- Implementeren van bericht informatie formulieren in het configuratie bestand.
- Mogelijk maken om database bestand weg te schrijven en opnieuw te kunnen openen.
Ook testen of dit bestand geopend kan worden via CANalyzer.
- Mogelijk maken om berichten aan te maken via beschrijvingen uit de database waarde
tabellen. Aan de hand van een beschrijving de waarde uit een waardetabel halen om zo
deze waarde in de juiste data byte te plaatsen.
- Ervoor zorgen dat de vermenigvuldigingsfactor van een signaal waarde automatisch
gebeurd in zowel de ontvagen als de verzonden boodschappen.
- De hardware en software filters in een nieuwe klasse schrijven, de software filters
implementeren zodat er ook op data kan gefilterd worden.
- Configuratie bestand verder bewerken zodanig dat alle gegevens over de vensters
opgeslagen wordt.
- Bericht informatie formulieren toevoegen aan het configuratie bestand, opslaan van de
bericht identiteit, bericht naam, locatie en grote.
- Implementeren van een grafische voorstelling van een selectie beschikbare signalen.
- Mogelijk maken om bij ontvangen boodschappen die in het trace venster komen te staan
enkel te controleren of de PGN van het bericht in de database bestaat. Hierdoor creer je een
meerwaarde, omdat je dan geen rekening meer dient te houden met de prioriteit, het
destinatie adres of het bron adres. Dit is uitermate belangrijk omdat elke controller een
andere prioriteit, destinatie adres of bron adres kan hebben.
- Nog enkele layout bewerkingen doorvoeren zodat het geheel visueel mooier wordt.

____________________________________________________________________________________
158

Ryheul Kristof

CAN EDI Diagnostic Tool

Algemene ervaringen:

Oude programmeergewoontes proberen af te leren, nieuwe ontwikkelen, waaronder de


coding rules die in een apart bestand beschreven staan.

Leren om programmas te ontwerpen die de mogelijkheid bieden om later


gemplementeerd te worden in een ander programma.

Om team gericht te kunnen werken dienen er afspraken gemaakt te worden, onder


andere om dezelfde stijl van code te behouden zodat deze later gemakkelijk kan worden
aangepast.

De ontworpen code voldoende aan commentaar voorzien zodat het na een paar
maanden nog altijd begrijpbaar is.

Tijdig back-ups nemen om geen gegevensverlies te hebben bij een crash.


Via Visual SourceSafe kan alle ontwikkelde software op de intranet server bewaart
worden.

Het grafische aspect is minder belangrijk dan het functionele aspect.

In het maken van de layout kruipt het meeste tijd, het .NET framework 2.0 heeft veel
meer opties en mogelijkheden dan het .NET framework 1.1. Jammer genoeg wordt de
software nog geschreven op het platform 1.1.

Door dagelijks of wekelijks een korte stand van zaken te melden, kan je op nieuwe
ideen komen. Ook de opvolging van het project wordt gemakkelijker.

Kort overleg kan heel wat duidelijkheid brengen op het geheel.

____________________________________________________________________________________
159

Ryheul Kristof

CAN EDI Diagnostic Tool

Documentatie en bijlagen
Hexadecimale, decimale en binaire getallen
Hexadecimaal (0x)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Decimaal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Binair
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

De conversies tussen deze 3 soorten notaties dienen goed gekend te zijn, in alle richtingen.

____________________________________________________________________________________
160

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 136 UML Class Diagram Configuration

____________________________________________________________________________________
161

Ryheul Kristof

CAN EDI Diagnostic Tool

CAN fysieke laag circuits

Fig. 137 Circuit 1 (J1939/11).


The circuit has a special short-circuit protection for the CAN_L path. Therefore it uses only low power
components but withstands voltages up to +50 V on the bus lines (e.g., load dump). R7, R8, R9, R10
form the biasing network for the recessive state; R5, R6, C1, C2 together with the biasing network form
an input filter with a corner frequency of about 1.2 MHz. R3, R4, R15, and R16 provide the drive
impedance for Q1, Q2; they should be chosen so that the switching waveforms of CAN_H and CAN_L
are symmetrical during transitions. R1 and R2, together with the on-resistance of Q1 and Q2, set the
output impedance of the link for the dominant state; D1 and D2 are used for common mode decoupling.
R12, R13, D3, Z1, and Q3 switch Q2 off if voltage levels at CAN_L exceed +10V (Q1 is decoupled by
D1 in this case). D3 isolates the capacitance of Z1 from the bus line.
L1 is used to reduce the amount of high-frequency microprocessor switching noise coupled on the bus.
Testing has shown this component to reduce radiated emissions over the test range of 10 KHz to 200
MHz, but particularly below 30 MHz. While this component improves radiated emissions performance,
its use is not essential to meeting the requirements of SAE J1939-11 and therefore not required. The
radiated emissions performance of ECU must be addressed on an individual basis.

____________________________________________________________________________________
162

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 138 Circuit 2 (J1939/11).


This circuit is designed for surface mount components. The resistors
R7, R8, and R9 form a biasing network which determines the voltages on the link in the recessive state.
The network R5, R6, C1, and C2 form a common mode filter with corner frequency of about 1.5 MHz.
The resistors R3, R4, R15, R16 provide the drive impedance for the output transistors Q1 and Q2. To
achieve balancing on the link, these components should be adjusted so that drive voltages are
symmetrical during transitions from dominant to recessive and recessive to dominant. The resistors R1
and R2 are located so that a natural link current limit of about 100 mA is achieved. This reduces the
overall power dissipation in the driver when a short to battery occurs. The dissipation in R1 and R2
during current limit is about 0.25 W. The dissipation in Q1 during a short of CAN_H to ground is also
about 0.25 W. The dissipation in Q2 during a short of CAN_L to 32 V is 2.95 W but is limited in time.
L1 is used to reduce the amount of high-frequency microprocessor switching noise coupled on the bus.
Testing has shown this component to reduce radiated emissions over the test range of 10 KHz to 200
MHz, but particularly below 30 MHz. While this component improves radiated emissions performance,
its use is not essential to meeting the requirements of SAE J1939-11 and therefore not required. The
radiated emissions performance of ECU must be addressed on an individual basis.

____________________________________________________________________________________
163

Ryheul Kristof

CAN EDI Diagnostic Tool

Fig. 139 Circuit 3 (J1939/11).


This circuit provides a solution utilizing surface mount components
and an integrated circuit, U1, instead of the discrete topologies shown in examples A1 and A2.
Capacitor C1 provides power supply decoupling for U1 and is typically between 0.01 UF and 0.1 UF.
Resistor R1 determines the slope (rise and fall times) of CAN_H and CAN_L while the IC is transmitting.
The VREF output, pin 5 of U1, provides a voltage of approximately VCC/2. VREF is required by some
CAN protocol controllers for proper operation. Refer to Philips Semiconductors Application Note,
AN96116, PCA82C250/251 CAN Transceiver for additional information regarding the features and use
of U1. L1 is used to reduce the amount of high-frequency microprocessor switching noise coupled on
the bus. Testing has shown this component to reduce radiated emissions over the test range of 10 KHz
to 200 MHz, but particularly below 30 MHz. While this component improves radiated emissions
performance, its use is not essential to meeting the requirements of SAE J1939-11 and therefore not
required. The radiated emissions performance of ECU must be addressed on an individual basis

____________________________________________________________________________________
164

Ryheul Kristof

CAN EDI Diagnostic Tool

Plaatsing van alle bits in een uitgebreid en standaard frame

Fig. 140 MAPPING OF SAE J1939 INTO CANS ARBITRATION AND CONTROL FIELDS
____________________________________________________________________________________
165

Ryheul Kristof

CAN EDI Diagnostic Tool

Literatuurlijst
Online geraadpleegde bronnen:
Kvaser AB (2005). CAN (Controller Area Network). http://www.kvaser.com (01-05-2007).
CAN in Automation CiA (2006). Controller Area Network (CAN). http://www.can-cia.org
(01-05-2007).
M J Schofield (2006). Controller Area Network (CAN bus).
http://www.mjschofield.com/index.htm (01-05-2007).
Tibbett, Steve (2005). String Formatting in C#. http://blog.stevex.net/index.php/stringformatting-in-csharp (01-05-2007).
ifak system GmbH (2007). Is CAN USB USB Interface for CAN/CANopen Networks.
http://www.ifak-system.com/fbk/can/index.php?level=isCANUSB (01-05-2007).
Can-cursus ontwikkeld in het kader van het HOBUCAN-project, Ontwikkeling van een
intelligente interface voor analyse en verificatie van datacommunicatie in moderne
voertuigen.
http://project.iwt-kdg.be/hobucan/HobuFilesDir/OnzeCursus/MyMainPage.html (01-05-2007).
Braun David, Silvis Jeff, Shapiro Alex (2001). Unified Modeling Language (UML) Tutorial.
http://pigseye.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial (01-05-2007).
Mayo Joe. Writing C# Expressions. http://www.csharphelp.com/archives/archive169.html
(01-05-2007).
DANA Corporation (2004). Off-Highway Solutions. http://www.dana.com (01-05-2007).
Intranet website DANA Spicer Off-Highway.

Geraadpleegde e-books:
SAE International (2005). SAE J1939 standard. http://www.sae.org
TMC/ATA (2003). RP1210A recommended practice (Windows Communication API).
DANA Spicer Off-Highway (09/2006). User manuel Tcon.H.
DANA Spicer Off-Highway (01/2003). APC214 CAN EDI Byte/bit description.
DANA Spicer Off-Highway (09/2006) APC214 ERROR CODES & DESCRIPTION.

____________________________________________________________________________________
166

Ryheul Kristof

CAN EDI Diagnostic Tool

Geraadpleegde boeken:
Pfeiffer, Ayne, Keydel (2003). Embedded networking with CAN and CANopen.
San Clemente, RTC Books. ISBN 0-929392-78-7.
Murach, Lowe (2004). Murachs C#. Fresno, Mike Murach & Associates.
ISBN 1-890774-22-7.

Gebruikte help-functies in programmas:

Microsoft Visual Studio 2003 professional


Microsoft msdn library
Microsoft Visual SourceSafe
Microsoft Office Visio (UML-diagram)
Vector CANalyzer
Vector CANdb++

____________________________________________________________________________________
167

You might also like