Für eine MM Anwendung bei meinem RNS-E 2011 will ich den TV Eingang nutzen. VIM Hack gibts bei der neueren RNS-E nicht.
Es würde ausreichen dem RNS-E Fahrzeugstillstand vorzugaukeln. Fertige Module dazu gibt es.
Dabei wird der CAN Bus zum Radio unterbrochen und das Modul dazwischengeschaltet. Das Speedsignal wird rausgefiltert und durch CAN Botschaft Speed=0 ersetzt. Das Radio meint dadurch das Auto steht.
Ich würde gerne noch weitere ID- Messages blockieren bzw. durch eigene ersetzen.
Nutzen würde ich AT90CAN MCs.
Wie geht man hierbei am besten vor?
Meine Idee:
Alle Messages am CAN Bus lesen, wenn die gewünschte ID kommt durch eigene ersetzen, alle anderen durchlassen.
Da der AT90CAN nur 1 CAN Schnittstelle hat, diese Fahrzeugseitig anschließen, einen 2. AT90 mit dem 1. seriell verbinden und dessen CAN Anschluss an das Radio.
Selbstverständlich muss auch alles vom Radio kommende durchgelassen werden.
Du hast schon geschrieben wie es geht, allerdings würde ich einen Mikrocontroller nehmen, der zwei CAN Schnittstellen besitzt.
Denn damit beschränkt sich der Programmcode auf...
- Lese CAN1, kopiere Nachricht oder bastele Eigene nach CAN2
- Lese CAN2, kopiere Nachricht oder bastele Eigene nach CAN1
Ziemlich übersichtlich und sicher einfacher als mit 2 seriellen Schnittstellen zu hantieren.
Ich habe das Modul jetzt fertig, bestehen aus Atmega328p mit doppel MCP2515+MCP2551.
Es können in beide Richtungen beliebige Can-IDs blockiert/überschrieben werden.
Verstehe nicht warum man immer diesen elenden MCP2515 nimmt, wo es doch genug Hardware mit zwei internen CAN-Controllern gibt. Das Ding übern SPI anzubinden ist zwar in Theorie nicht schwer, praktisch aber Unfug wenn der Bus mal richtig voll ist. Die Steuergeräte merken dank Alive-Countern normal, wenn Nachrichten fehlen.
PIC32 wäre mein Favorit für zwei CAN-Controller, oder ein STM32.
ich vermute mal, weil die Kombination AVR + MCP2515 für Anfänger am einfachsten umzusetzen ist. Mit den Codevision muss man noch nicht mal verstehen, welche Register gesetzt werden müssen, das macht da schon der Codewizard.