Es ist immer schwierig, sich als Außenstehender ein Bild vom genauen Ablauf eines Elektronikprojektes zu machen. Natürlich darf ich Ihnen keinen Einblick in meine Kundenprojekte geben, aber ich möchte Ihnen gerne am Beispiel eines eigenen Projekts die typischen Abläufe erläutern.
- Problemanalyse
Für einen Volvo 460 soll eine Bordcomputer-Nachrüstung im Kombiinstrument erfolgen. Dabei kann auf ein vorhandenes Kombiinstrument mit originalem, „Infocenter“ genanntem Bordcomputer vom Schwestermodell Volvo 480 zurückgegriffen werden. Die Instrumententräger haben dieselben mechanischen Abmessungen, doch Steckerbelegung, elektrische Signale und Anzeigeelement der Fahrzeuge sind grundverschieden.
Aufgrund der Inkompatibilität des Original-Bordcomputers soll eine kompakte Retrofit-Einheit entwickelt werden, welche alle Funktionen des Vorbilds erfüllt und die Originalanzeige des Volvo 480 – eingebaut im Volvo 460 – digital ansteuert.
Gemessen und angezeigt werden sollen:
- Momentanverbrauch über Messung der Einspritzmenge, Anzeige in l/100 km und im Stand in l/h
- Durchschnittsverbrauch in l/100 km über Summierung des Momentanverbrauchs über die Zeit, vom Fahrer resettbar
- Durchschnittsgeschwindigkeit über Mittelung der via Hall-Sensor an der Tachowelle ermittelten Fahrzeuggeschwindigkeit über die Zeit, vom Fahrer resettbar
- Treibstoffvorrat über analoge Messung des Tankschwimmerstandes, Anzeige als Füllstandsbalken
- Restreichweite berechnet über den Durchschnittsverbrauch der letzten 30 km und den Treibstoffvorrat
- Motortemperatur über analoge Messung des Motortemperaturfühlers
- Außentemperatur über analoge Messung des Außentemperaturfühlers
- Bonus: Anstelle des nicht kompatiblen Öltemperaturfühlers soll die Umgebungsradioaktivität in µSv angezeigt werden, indem der Messwert eines im Bordcomputermodul integrierten Geigerzählers angezeigt wird.
- Elektrotechnische Planung
Das Gerät soll ein stabiles Aluminiumgehäuse besitzen und im Fahrzeug fest verbaut werden. Ein Microcontroller übernimmt alle Mess-, Auswerte- und Ausgabearbeiten, Analogelektronik sorgt für die Messwertaufbereitung. Es werden die im Fahrzeug vorhandenen Sensoren (für Tank, Temperaturen und Geschwindigkeit) benutzt, die Messung der Einspritzmenge (für den Momentanverbrauch) wird über die Messung der Öffnungszeit des Einspritzventils bei bekannter Durchflussrate realisiert. Aufgrund des KFZ-Einsatzes werden nur AEC-konforme Bauteile eingesetzt, die den rauen Anforderungen (z. B. sehr großer Temperaturbereich) im Fahrzeug gewachsen sind. Die Messgenauigkeit wird mit <5 % veranschlagt.
Die Bordcomputereinheit wird mit dem Kombiinstrument verbunden sein, um das dortige Display digital anzusteuern und vom Kombiinstrument mit 10–18 Volt Bordspannung versorgt zu werden. Der Bordcomputer wird in einen Sleep-Zustand versetzt, solange die Zündung des Fahrzeugs nicht an ist. So verbleiben die Werte des Microcontrollers im Arbeitsspeicher, da er weiter mit Strom versorgt wird, ohne allerdings die Batterie des Fahrzeuges zu belasten, da er im Standby extrem wenig Strom verbraucht (vergleichbar mit Autoradios, die ihren Senderspeicher behalten, solange die Batterie nicht abgeklemmt wird). Als Mensch-Maschine-Schnittstelle kommt ein Drehschalter zum Einsatz, wie er auch im originalen Volvo 480-Setup Verwendung findet.
Der Drehschalter besitzt einen Taster zum Resetten der Durchschnittswertanzeigen und die Drehposition des Schalters korrespondiert mit der Anzeige auf dem Display (ganz links Momentanverbrauch, 12 Uhr Restreichweite, ganz rechts Außentemperatur usw.). Die Einheit hat 7 Kabel, eines führt Massepotential, die anderen werden je nach Schalterstellung oder auf Knopfdruck mit Masse verbunden oder nicht. Mittels Pull-Up-Widerständen gegen 3,3 V kann so eine Logikschaltung realisiert werden, der Schalter codiert seine Positionen dann in 0 und 1. Zusätzlich gibt es noch ein kleines Abgleich-Poti unter einer Abdeckung in der Mitte.
Pin | Funktion |
1 | GND |
2 | SW_2 |
3 | SW_3 |
4 | UNIT 1/0 |
5 | Potentiometer |
6 | Reset |
7 | SW_7 |
Schalter- stellung |
SW_2 | SW_3 | SW_7 |
Fuel_INST | 0 | 0 | 0 |
Fuel_AVG | 1 | 0 | 0 |
Speed_AVG | 0 | 1 | 0 |
Range | 1 | 1 | 0 |
Oi | 0 | 0 | 1 |
Engine | 1 | 0 | 1 |
Ext | 0 | 1 | 1 |
Eine weitere Codiermöglichkeit wäre 1-1-1, diese wurde nicht besetzt, da dieser Zustand auch eintreten kann, wenn das Anschlusskabel vom Drehschalter getrennt ist, also ein Fehler vorliegt.
Angeschlossen wird das Modul über 4 mehrpolige Stecker:
Stecker 1: Box ↔ Kombiinstrument (für Stromversorgung und Display-Busanbindung)
Stecker 2: Box ↔ Bedieneinheit
Stecker 3: Programmierinterface Microcontroller
Stecker 4: Box ↔ Fahrzeugsensorik
Als zweckmäßig dafür erweisen sich Ethernet-Anschlüsse und entsprechende Kabel, da diese geschirmt (EMV), 8-polig (genügend Anschlüsse pro Stecker), robust und preiswert zu bekommen sind.
Wäre dies ein Kundenprojekt, würde ich hier Verbesserungspotential sehen, da man sowohl Kosten als auch Langlebigkeit bei der Wahl der Steckverbinder optimieren kann. Für einen eiligen Prototypen ist diese Lösung aber allemal geeignet.
Um die im Fahrzeug verbauten Sensoren verwenden zu können, muss nun Reverse-Engineering betrieben werden. Die Kennlinien der einzelnen Sensoren werden dabei soweit möglich im ausgebauten Zustand ermittelt.
Da wir es hier mit der Entwicklung für genau ein spezifisches Fahrzeug zu tun haben, können wir uns den Luxus erlauben, den Bordcomputer genau auf die benutzten Sensoren zuzuschneiden und die Toleranzen/Serienstreuung, die bei einer Entwicklung für eine gesamte Fahrzeugreihe auftreten würden, außer Acht zu lassen. Somit ist es möglich, den toleranzbedingten Messfehler der Sensoren zu eliminieren.
Die Sensoren für Motortemperatur, Tankschwimmerstand und Außentemperatur sind allesamt veränderliche Widerstände, deren Kennlinien einfach über das Messen des jeweiligen Widerstandes über ihren Messbereich zu ermitteln waren.
Die Fahrzeuggeschwindigkeit muss anders gemessen werden, da es sich hier um ein PWM-Signal handelt. Dieses wird von einem Hall-Sensor im Kombiinstrument erzeugt und kann dort angezapft werden. Es stellt sich heraus, dass wir es mit einem 50:50 getakteten Spannungssignal von 0 bis 10 Volt zu tun haben, der Zusammenhang von Frequenz und Geschwindigkeit wurde von mir ermittelt: v=1,5*f. Die Frequenz lässt sich sehr einfach vom Microcontroller messen, einzig die Spannung muss von 0–10 V auf 0–3,3 V reduziert werden.
Das Einspritzsignal zum (Single-Injection-)Motor muss am Anschluss zwischen Motorsteuergerät und Einspritzdüse abgegriffen werden und kann nur bei laufendem Motor untersucht werden. Das Oszilloskop zeigt, dass das Einspritzventil vom Steuergerät gegen Masse geschaltet wird (Spannung wechselt von ca. 7 V auf 0 V). Nach der halben ON-Zeit des Ventils verändert sich das Verhalten, das schnell gepulste Schalten des Ventils führt in Verbindung mit dessen Induktivität und der mechanischen Trägheit des Systems dazu, dass nun ein Haltestrom, welcher deutlich geringer ist als beim harten Durchschalten, das Ventil offen hält. Das schützt die Einspritzanlage vor thermischer Überlastung.
Für den Bordcomputer wird die Sache damit jedoch komplizierter. Wir können kein einfaches AN-AUS-Signal auswerten, wir müssen wie folgt vorgehen:
- Warten, bis Low am Einspritzsignal anliegt. Anschließend einen Timer auf null setzen.
- Signal beobachten. Wenn wieder High anliegt, kurz warten, ob sich noch einmal etwas ändert. Ändert sich nichts, Wartezeit vom Timer abziehen. Das Ergebnis ist die Einspritzzeit.
- Ändert sich das Signal noch einmal auf Low, mit 2. fortfahren.
Zur Anzeige der Messwerte soll das LCD-Rundinstrument des Volvo 480 benutzt werden, welches mechanisch in das Kombiinstrument das Volvo 460 passt.
Pinbelegung am Display:
Pin | Funktion |
1 | Daten (DAT) |
2 | Takt (CLK) |
3 | 18,5 kHz (PWM) |
4 | 5,3 V (Vcc) |
5 | GND |
Alle Anschlüsse bis auf PWM sollten selbsterklärend sein, PWM wird vom Displaytreiber-IC benötigt, um einerseits die LCD-Segmente mit Wechselspannung anzusteuern (betreibt man LCD-Segmente mit einem Spannungsmittelwert ungleich 0 V, werden sie in kurzer Zeit degradieren) und andererseits eine Registerumschaltung im LCD-Treiber zu triggern. Ohne PWM wird das Display also langsam zerstört, außerdem wird dann nur die Hälfte der Segmente angesteuert.
An einer voll funktionsfähigen Bordcomputereinheit des Volvo 480 wird das Übertragungsprotokoll zwischen Controller und Display ermittelt:
Mittels weiterer Messungen fällt auf, dass das Datenpaket offenbar ein Datenwort zu 64 Bit enthält, sowie eine Präambel von 3 Bit am Anfang und ein Schluss-Bit. Die Pulsweiten der Anfangsbits unterscheiden sich auch stark von denen der Payload-Bits. Wir haben es hier nicht mit einem standardisierten Protokoll zu tun, obwohl das Übertragungsprinzip wie der veraltete Standard Microwire (immerhin ist der Original-Bordcomputer 1987 in Serie gegangen) funktioniert.
Der Retrofit-Bordcomputer muss in Firmware also eine Spezialfunktion für die Kommunikation mit dem Display bekommen.
Präambel:
Nach dem Start sind CLK und DAT sofort high, dann ist CLK high für 164 µs; DAT bleibt 352 µs lang high. CLK fängt danach sofort an zu takten, DAT bleibt von t=352 µs bis +7,1 ms low, dann wieder high für 586 ms.
Zeit | CLK | DAT | |
<0 s | 1 | 1 | Ausgangszustand |
0 s | 0 | 1 | Start |
36 µs | 1 | 1 | CLK war low für 36 µs |
62,5 µs | 0 | 1 | CLK war high für 26,5 µs |
98,5 µs | 1 | 1 | CLK war low für 36 µs |
125,5 µs | 0 | 1 | CLK war high für 26.5 µs |
161,5 µs | 1 | 1 | CLK war low für 36 µs |
188,5 µs | 1 | 0 | DAT war high für 188,5 µs |
220 µs | 0 | 0 | CLK war high für 58,5 µs |
313 µs | 1 | 0 | CLK war low für 92 µs |
>313 µs | Danach CLK gleichmäßig von high (28 µS) zu low (80 µs) |
Nun gilt es, dieses Signal in einem Microcontroller nachzubilden. Ich benutze einen PIC18F27J53, der als DIL-Package vorhanden ist. Für einen Steckbrettaufbau und ein Proof of Concept ist er sehr gut geeignet, allerdings ist seine Betriebsspannung auf 3,6 V begrenzt. Ich nehme an, dass es sich bei dem Displaytreiber (ITT „V 70001-220“, für den kein Datenblatt auffindbar ist) um einen IC handelt, welcher nach dem normalen TTL-Standard arbeitet, sprich, ein High von 3,3 V aus dem Microcontroller müsste akzeptiert werden. Falls nicht, muss ich einen Pegelumsetzer dazwischenschalten.
Ich programmiere die Präambel, die Payload (alle Bits auf 1) und das Schlussbit, wobei ich darauf achte, dass die Datenübernahme wie beim Vorbild und anders als z. B. bei SPI in der Mitte des CLK-Pulses gelesen wird und nicht bei steigender Flanke. Ich vermute, dass mit dieser Message alle Displaysegmente eingeschaltet werden, was sich bestätigen ließ:
Nun muss ermittelt werden, welches Bit für welches Segment zuständig ist, indem immer genau 1 Bit meiner Message verändert wird und ich mir die Reaktion am Display notiere. Präambel und Schlussbit bleiben natürlich unverändert. So entsteht ein Bits-auf-Displaysegmente-Mapping, mit dem ich arbeiten kann.
Ich weiß nun, welche Eingangssignale ich für die Messparameter und den Drehschalter zu erwarten habe und wie ich Messwerte daraus berechnen kann, auch kenne ich das Kommunikationsprotokoll mit dem Display. Nun wähle ich ein kompaktes Aluminiumgehäuse aus und benutze besagten PIC, einen Microcontroller, mit dem ich schon früher gearbeitet habe, um Einarbeitungszeit zu sparen. Mir liegen Dokumente dazu vor, wie der originale Bordcomputer Werte und Text anzeigt und ab welchen Schwellenwerten Warnlichter angehen, und ich habe mir auch schon ein Konzept für den als Bonus vorgesehenen Geigerzähler überlegt. Der erste Schaltungsentwurf steht an, auf diesem Prototypensystem werde ich dann die erste Firmware entwickeln.
- Schaltplanerstellung
3.1) Spannungsversorgung
Der Microcontroller benötigt 3,3 V als Betriebsspannung, das Display im Kombiinstrument muss jedoch mit 5 V betrieben werden. Da das System im abgeschalteten Zustand (Zündung aus) im Standby sein soll, um die Autobatterie nicht zu belasten, wird ein Spannungsregler für 3,3 V an das „Dauerplus“ (KL30) des Fahrzeuges angeschlossen. Mit diesem Spannungslevel wird ausschließlich der digitale Teil des Bordcomputers betrieben. Über die Auswahl eines AEC-konformen, besonders präzisen Linearreglers erhält man damit auch noch eine hinreichend präzise Referenzspannung für die ADCs im Microcontroller und spart sich eine dezidierte Spannungsreferenz. Die 5 V-Versorgung erfolgt über „Zündungsplus“ (KL15), welches nur Spannung führt, wenn die Zündung des Fahrzeuges eingeschaltet ist. Damit werden alle im Standby nicht benötigten Schaltungsteile betrieben.
Ich entscheide mich gegen den Einsatz von Step-Down-Convertern, da das System eine niedrige Stromaufnahme haben wird, weshalb nur geringe Wärmeverluste in den Linearreglern zu erwarten sind und man den Schaltungsaufwand reduzieren kann.
Ein KFZ ist eine elektromagnetisch raue Umgebung für eine Schaltung, deshalb müssen verschiedene Sicherheitsmaßnahmen in die Spannungsversorgung eingebaut werden, um eine Zerstörung der Elektronik zu verhindern: Obwohl landläufig von 12 V Bordspannung gesprochen wird, treten im PKW zwischen 8 V beim Anlassen und 14,5 V bei voller Lichtmaschinenleistung und schneller Fahrt auf. Zudem können durch die Zündanlage und andere Einflüsse Impulse von über 20 V im Bordnetz auftreten. Ich entscheide mich daher für einen sehr niederohmigen Lastwiderstand (R1) im Strompfad als Dämpfung, eine TVS-Diode (D1) und eine Verpolschutzdiode (D13), welche dem Linearregler vorgeschaltet sind. Im Falle einer kurzen Überspannung >18 V wird die TVS-Diode leitend und der Spannungsabfall über R1 hält die vom Linearregler „gesehene“ Spannung gering. Kurze negative Impulse werden nach demselben Prinzip von D1 abgefangen, die Verpolschutzdiode D13 ist dafür zu träge: Sie dient ausschließlich dem Verpolschutz, da sie eine höhere Leistung verträgt und bei einer versehentlichen Verpolung der Einheit die dem Kabelbaum vorgelagerte Sicherung (1A) auslösen soll.
Zur Glättung der Eingangsspannung wird schließlich ein hochwertiger, AEC-konformer Elektrolytkondensator eingesetzt, preiswerte Modell würden im Fahrzeugeinsatz nach wenigen Jahren defekt werden.
Die identische Beschaltung kommt beim 5 V-Block zum Einsatz. Hier wird zusätzlich die Zündungsspannung überwacht, um dem Microcontroller mitzuteilen, wann er den Standbymodus ein- und ausschalten muss. Mittels Spannungsteiler wird aus der Bordspannung ein Spannungslevel <3,3 V erzeugt und gegen Störimpulse ist zudem noch eine 3,3 V-Suppressordiode eingesetzt, um den Microcontroller vor Überspannungen zu schützen.
3.2) Messinterface
Ich sehe 4 ADC-Kanäle vor, um die Sensoren für den Tankschwimmer, Motortemperatur, Außentemperatur und einen ggf. nachträglich eingesetzten Öltemperatursensor auszulesen. Man könnte die Sensoren mittels Konstantstromquellen oder als Widerstandsbrücken verschaltet ansteuern. Ich entscheide mich für die Widerstandsbrücke, da der 5 V-Spannungsregulator mit 1 % Genauigkeit für diese Zwecke als Referenz genügt und Spannungsimpulse auf den Messleitungen von einem Widerstandsnetzwerk besser vertragen werden als von einem Transistorausgang. Es kommen Präzisionswiderstände für den unveränderlichen Teil der Messbrücke zum Einsatz, um den Messfehler gering zu halten. Die Widerstandswerte werden so gewählt, dass die maximal erreichbare Ausgangsspannung nahe der Vollaussteuerung der Microcontroller-ADCs liegt, aber mit Sicherheit nicht über dieser. Als Absicherung gegen negative und zu hohe Spannungen kommen 3,3 V-Z-Dioden zum Einsatz und zur Filterung der Signale noch jeweils ein 100-nF-Kondensator.
Die Eingangssignale der Einspritzanlage, des externen Temperaturfühlers und des Geschwindigkeitsgebers müssen mittels Spannungsteiler und Schutzdioden noch auf das 3,3-V-Level des Microcontrollers begrenzt werden, da hier über 10 V anliegen können.
3.3) Drehschalterinterface
Der Drehschalter wird über einen eigenen LAN-Port angeschlossen, wobei die Schaltung im Grunde nur aus Pull-Up-Widerständen mit Filterkondensatoren gegen Glitches sowie der Spannungsversorgung besteht.
3.4) Microcontrollerschaltung
Den PIC18F27J53 habe ich gewählt, da ich diesen schon in anderen Projekten eingesetzt habe und deshalb sowohl die Chips als auch Programmiergerät und Software vorhanden sind. Die Rechenleistung des 8-Bit-Controllers ist für meine Zwecke ausreichend, die Peripherie des Controllers mit PWM-Ausgängen und genügend ADCs passend und RAM- und ROM-Speicher sind viel größer als nötig. Der Takt wird mittels 12-MHz-Kristall in der klassischen Beschaltung mit zwei Belastungskondensatoren generiert und die Spannungsversorgung des Controllers wird mit großzügig gemessenen Low-ESR-Kondensatoren stabilisiert. Eine In-System-Programmierung kann jederzeit über den vorgesehenen LAN-Port erfolgen. Jeder I/O des Microcontrollers wird zum zusätzlichen Schutz gegen hohe Störspannungsspitzen, die in einem älterem KFZ durchaus auftreten können, mit einem 470-Ohm-Widerstand in Reihe beschaltet, diese sind niederohmig genug, um die Funktion der Pins nicht zu beeinflussen und bilden mit den intern im Controller befindlichen Klemmdioden einen wirksamen Schutz gegen Überlastung. Da die ADC-Eingänge sensibler auf Überspannungen reagieren, wird ihnen jeweils noch eine Schottky-Diode gegen 3,3 V zur Ableitung von Spannungsspitzen vorgelagert, zudem bildet der Vorwiderstand mit einem 100-nF-Kondensator noch einen Tiefpass zur Filterung der Messsignale.
3.5) Hochspannungsversorgung des Zählrohrs
Das Geiger-Müller-Zählrohr muss mit 400 V Gleichspannung versorgt werden. Ich entscheide mich für einen simplen Step-Up-Converter mit anschließender Spannungsverdopplerschaltung. Als Taktgeber kommt der beliebte NE555-Timerbaustein zum Einsatz. Dieser steuert eine Transistor-Spulen-Kombination an. Die beim Abschalten des Transistors entstehende pulsierende Hochspannung wird in eine Verdopplerkaskade geleitet, um die gewünschten 400 V zu erhalten. Geregelt wird die Ausgangsspannung über Z-Dioden im 200-V-Teil, welche bei ungefähr 215 V leitfähig werden und dann den Taktgenerator über Q1 im Reset halten, bis die Schwellspannung unterschritten wird. Durch die nachträgliche Spannungsverdopplung erhalten wir eine hinreichend stabile Zählrohrspannung. Das Signal wird hochohmig an einen Transistor weitergegeben, der die Transformation in ein microcontrollergerechtes 3,3-V-Signal vollzieht. Am MCU-Eingang können nun die einzelnen Gamma-Events gezählt werden.
- Layouting
Vor dem eigentlichen Layouting liegt bei mir immer die Erprobung der Schaltungsteile. Es hat keinen Wert, eine Leiterplatte zu designen und fertigen zu lassen, nur um danach grobe Fehler in der Schaltung zu finden und den ganzen Prozess zu wiederholen. In meinem Elektroniklabor habe ich die meisten Standardkomponenten ohnehin zur Hand und fehlende Bauelemente sind innerhalb von einem Tag geliefert.
Hier liegt der seltene Fall vor, dass sich die gesamte Schaltung mit THT-Bauteilen aufbauen lässt, also kann eine simple Lochrasterplatine genutzt werden, um darauf von Hand Baugruppe für Baugruppe aufzubauen. Diese werden dann auf Funktion getestet, bis sich der nächsten Baugruppe zugewandt wird. Am Ende kann das Zusammenspiel der Gesamtschaltung untersucht werden.
Im Normalfall sind bei modernen Leiterplattenentwürfen nicht viele Bauteile als THT-Komponenten erhältlich, aber auch hier lässt sich in den meisten Fällen mit etwas Geschick eine Vorab-Schaltung aufbauen, indem man Beinchen an die SMD-Komponenten lötet und diese auf dem Steckbrett zusammenschaltet.
Somit kann ich vor dem Leiterplattenentwurf schon am Oszilloskop verifizieren:
- Spannungsversorgungen 5 V und 3,3 V: Abweichung <1 %, Ripple <10 mVpp (unter Last 100 mA)
- 400-V-Versorgung: Nominalwert 412 V, Ripple 1,3 Vpp (mittels HV-Differential Probe 1:1000 gemessen)
- ADC-Inputs: Ripple <10 mVpp
- Mittlere Stromaufnahme im Betrieb: 40 mA (mittels Stromzange Yokogawa 100 MHz gemessen)
Die Geigerzählerimpulse sind sowohl auf der HV- als auch auf der LV-Seite gut zu erkennen, alle ADC-Kanäle funktionieren mit angeschlossenen Sensoren und die Busübertragung zum Display ist frei von Glitchen.
Nach dem erfolgreichen Flashen der Display-Test-Firmware, die ich zuvor schon in C geschrieben hatte, ist auch der ISP-Anschluss über die LAN-Buchse Nr. 3 erfolgreich getestet. Nun wird die Schaltung 2 Stunden im Betrieb sein, während ich mit der Wärmebildkamera überprüfe, ob Bauteile sich übermäßig erhitzen.
Hier gab es keine größeren Beanstandungen, die Lötarbeit von ca. 5 Stunden habe ich aber gerne investiert, denn mit den Erkenntnissen kann eine optimale Leiterplatte entworfen werden.
Nun beginnt das eigentliche Layouting. Üblicherweise verwende ich als CAD-Tool EAGLE, es dürfen aber auch Altium und eingeschränkt Zucken CR-5000 zum Einsatz kommen. Die Leiterplatte kann doppelseitig ausgelegt werden, das ist günstig in der Produktion und die Komplexität ist niedrig genug, um auf ein Multilayer-Design zu verzichten. Da die Innenabmessungen des Gehäuses schon bekannt sind, geben diese die Grundfläche vor. Der Bauraum wird hauptsächlich vom Zählrohr und den Kondensatoren der Hochspannungseinheit bestimmt, in dem kompakten Gehäuse müssen diese Teile deshalb als Erstes platziert werden. Die Microcontrollereinheit wird zentral angeordnet, so sind alle Signale leicht zusammenzuführen. Um EMV-Problemen vorzubeugen, wird die Hochspannungseinheit an den oberen Rand platziert, weit weg von den digitalen und analogen Signalen. Es werden Befestigungslöcher vorgesehen, ein entsprechender Isolationsabstand im Hochspannungsteil definiert und die Spannungsversorgung über Powerplanes realisiert. Alle nicht in den EAGLE-Bibliotheken befindlichen Bauteile werden im Bauelemente-Editor nach der technischen Dokumentation des Herstellers angelegt. Dann drucke ich das Layout 1:1 aus, um zu überprüfen, ob alle Bauteile wirklich mechanisch passen. Nun kann die Platine beim Leiterplattenhersteller in Auftrag gegeben werden und ist innerhalb einer Woche bei mir.
Um die Funktionalität aller Baugruppen zu verifizieren, baue ich die erste Platine eines Designs immer von Hand auf und kann somit Schaltungsfehler direkt aufspüren. An einer voll bestückten Platine kann die Fehlersuche mitunter sehr zeitraubend sein, da ein Fehler in einem Schaltungsteil ggf. an ganz andere Stelle zu unerklärlichen Effekten führt. Da das Bestücken mit dem entsprechenden Profi-Equipment auch relativ schnell von der Hand geht, habe ich schon am Nachmittag eine funktionierende Bordcomputer-Platine.
Nun folgt der Einbau in das Gehäuse, mit dem Bohren von Schraublöchern, dem Herausarbeiten von Steckeraussparungen usw. Auch dafür habe ich das passende Werkzeug im Labor.
Am funktionsfähigen Gerät beginnt daraufhin die Firmwareentwicklung, welche ich in diesem Fall in C durchführe.
Oft ist es jedoch sinnvoll, im Prototypenstatus der Entwicklung z. B. ein Arduino-System zu bemühen, da hier noch deutlich schneller verwertbare Ergebnisse in C++ erarbeitet werden können.
Nach Abschluss dieses Punktes kann das Gerät im Fahrzeug verbaut und einem Langzeittest unterzogen werden, dabei werden immer wieder Firmwareverbesserungen eingespielt.
Am Ende wurde ein Bordcomputersystem entwickelt, welches alle anfangs gestellten Anforderungen erfüllt oder übertrifft. Die Messgenauigkeit der Fahrzeugwerte beträgt 2 % und der Geigerzähler ist im Bereich normaler Hintergrundstrahlung auf +- 0,04 µSv präzise, wie mit einem Referenzgerät ermittelt wurde.
Der Zeitaufwand des Projektes setzt sich wie folgt zusammen:
Recherche/Reverseengineering: 2 Wochen
Aufbau und Funktionstest des Lochrastersystems: 1 Woche
Schaltungsentwurf: 3 Tage
Layouting und Bauteile im CAD erzeugen: 3 Tage
Firmwareentwicklung bis Langzeittest: 2 Wochen
An die Kernentwicklungszeit von ca. 6 Wochen schließt sich eine Langzeiterprobung mit 4 Firmwareupdates innerhalb der ersten 2 Monate an, hardwareseitig trat seit 2016 und bei ungefähr 12.000 km gefahrener Strecke pro Jahr kein Fehler auf.