Auto-Programmiersprache?

3 Antworten

Im Auto arbeiten vor allem Mikrocontroller, dementsprechend ist die Programmiersprache C das Maß aller Dinge (auch aus Performancegründen). Zur Kommunikation der Mikrocontroller mit den Sensoren kommt dort der CANBus zum Einsatz. http://de.wikipedia.org/wiki/Controller_Area_Network

In deinem Beispiel sagt also ein Bewegungssensor etwa an der Achse des Autos, dass es sich rückwärts bewegt, das wird an den Mikrocontroller weitergegeben und der gibt dann die weiteren Anweisungen an den Bildschirm und die Kamera. Und dann kann die Bildübertragung in deinem Luxusauto losgehen.

Die heutigen Autos sind alle mit einem CAN-Bus verbunden. Dabei werden zyklisch Daten von den Peripherien auf dem Bus gesandt, welche dann andere Geräte abfragen können. Welche Daten übermittelt werden steht in den sogenannten CAN-Datenbanken (*.dbc). Da steht für jede "Größe" eine Adresse, ein Faktor, ein Offset, min und max Werte, Startbit, Bitlänge und Byteorder.

Wenn man die Datenbanken kennt, kann man fast alles aus einem Auto auslesen. Das reicht heutzutage bis hin zur Geschwindigkeit jedes einzelnen Rades (für ABS und ESP), Niveau (auch für ESP), bis hin zur Lenkraddrehmoment.

Und genauso ist es wenn du dein Rückwärtsgang einlegst. Dein Bildschirm erkennt die Gangwahl und reagiert demnach entsprechend mit der Anzeige der Einblendung der Rückkamera.

Theoretisch ginge das mit den meisten Sprachen , Google setzt aus irgend welchen Gründen auf Python ; das ist aber eher die Ausnahme . Gänig sind in dem Bereich wohl C und (ich kann das nicht beurteilen , in manchen Fällen aber sicher) Assemblersprache

martin7812  11.02.2014, 20:28

Google setzt aus irgend welchen Gründen auf Python

Google baut Steuergeräte fürs Auto? Niemals.

Bei Auto-Multimediaanwendungen (Navi, Radio, ...) werden Chips verbaut, wie es sie auch in Smartphones gibt. Aus verschiedenen Gründen werden dort auch Skriptsprachen und Java eingesetzt.

Für die normalen Rechner, wie sie im Auto an ganz verschiedenen Stellen verbaut werden (so haben viele Autos in jeder Türe einen Rechner), darf man nur Chips verbauen, die speziell für Autos "zugelassen" sind.

Dort kann man solche Programmiersprachen schon deswegen nicht einsetzen, weil solche Chips gar nicht genügend Speicher haben, um eine Java Virtual Machine oder einen Skriptinterpreter laufen zu lassen.

1
procoder42  12.02.2014, 07:17
@martin7812

Die haben zusammen mit Stanford ein KI Auto gebaut , bzw. ein bestehendes modifiziert (eben selbstständig gemacht) . MH, du arbeitete in der Automobilindustrie , du wirst das wissen , ich wäre davon ausgegangen , das prinzipiell auch embededded Systems möglich wæren .

0
procoder42  12.02.2014, 15:29
@martin7812

darf man nur Chips verbauen, die speziell für Autos "zugelassen" sind.

Das Auto von Google ist auch offiziell nicht zugelassen . Und doch, die greifen auf diese Hardware Teile des Autos zu, sonst könnte es ja nicht per Python gesteuert werden . Vll werden die Werte auch mittels C eingeholt und dann mit Python verarbeitet , Fakt ist aber, das dieses Auto existiert

0
martin7812  12.02.2014, 22:54
@procoder42

... nur, dass man unter "embedded" dort was anderes versteht:

Der MPC5748G hat 786 Kilobytes RAM, das sind also "nur" 3/4 Megabyte. Dieser Chip ist der größte Chip, von dem ich je gelesen habe. Der größte Chip, mit dem ich jemals selbst gearbeitet habe, hatte nur 64 Kilobytes.

Üblich sind teilweise Chips mit 2 bis 8 Kilobytes RAM.

Der Grund ist einfach: Wenn ein Auto 10 Millionen mal gebaut wird, bringt jeder Cent, den man bei einem Bauteil (z.B. Prozessor) spart, 100000 Euro mehr Gewinn!

Bei Versuchsfahrzeugen werden typischerweise Prototyping-Systeme verbaut, wo richtig leistungsstarke Rechner mit 4 GHz Taktfrequenz und mehreren Gigabytes RAM drin sind. Da kann man dann auch Python (wird in der Automobilindustrie übrigens tatsächlich gerne verwendet) oder Java drauf laufen lassen.

Wenn die Autos dann in Serie gebaut werden, muss man sich mit den 4 Kilobytes RAM zufrieden geben und hat dann auch kein Python mehr zur Verfügung...

0