Laat ik maar beginnen met zeggen dat ik een absolute leek ben op het gebied van Canbus. Ik heb er wat over op school gehad en wat filmpjes over gekeken. De basis begrijp ik, maar van de praktische toepassing weet ik niks.

Nu wil ik graag wat praktische kennis vergaren op canbus gebied. Heeft iemand enig idee hoe ik daarmee kan beginnen? Ik doe zelf veel met microchip. Wat heb ik ervoor nodig om zelf canbus te integreren op een nieuwe PCB? Of moet ik eerst met converters aan de gang?

Ik sta echt op 0 wat dat betreft, dus wees lief :)

Als je van 0 moet beginnen zul je toch zelf wat moeten opzoeken wegens de omvang van het onderwerp.
Ook hier op CO zijn er al vragen over gesteld en kun je de zoekfunctie gebruiken.

Hardware kun je goedkoop aanschaffen.

Hier alvast een begin:
https://how2electronics.com/interfacing-mcp2515-can-bus-module-with-ar…

CANbus is een fysieke laag, vraag is wat je ermee gaat doen.

er zijn een paar opties:

.1 transparant: alles wat je binnenkrijgt, doorgeven en niets mee doen

.2 zenden

.3 ontvangen

hierbij zijn uiteraard .2 en .3 te combineren, maar .1 zeker niet! dit is feitelijk een andere modus.

qua hardware heeft CAN veel weg van RS-232: er is een UART en je hebt vaak extern een transceiver chipje nodig wat zorgt dat de data netjes op de bus komt: dit is vergelijkbaar met de max232. Voor can is er bijvoorbeeld de PCA82C250.

Dan het zenden of ontvangen: dat werkt wel een klein beetje anders als RS232 vaak: je moet de data in een verzend / ontvangst register plaatsen en dan verzenden: so far so good, maar voor het ontvangen zijn er vaak meerdere (voor het verzenden weet ik niet meer) je weet immers nooit wanneer een bericht binnenkomt en het kan zijn dat je eerst een ander bericht moet hebben omdat ze niet op jou volgorde binnen komen. als jij bericht 1 binnenhaalt en dat niet degene is die je moet hebben, kan het zijn dat je de volgende wel moest hebben, maar tijdens je check gepasseert is.

daarom is de controle op het ID geregeld: jij geeft op welk bericht je wilt hebben op basis van het ID en die komt dan in een specifieke ontvangstbuffer. komt er een nieuwere versie binnen wordt de oude vaak overschreven (hetzij je hem dan aan het uitlezen bent, is geregeld in hardware vaak)

daarom is de transparant modus dus ook anders dan het werkelijk ontvangen en verwerken.

het zenden is vaak wel recht toe recht aan zover ik weet, maar is te lang geleden dat ik hier iets mee gedaan heb.

Ik gebruik liever een microocontroller met een CAN periferal aan boord, zoals een STM32, maar Atmel en Microchip hebben ook microcontrollers (zelfs nog 8-bitters) met hardware voor CAN aan boord.

CAN bus loopt niet zo heel hard, 1MBps is de hoogste snelheid die nog een beetje gangbaar is, en een bericht is minimaal ongeveer 48 bits lang (11-bit identifier, geen data, geen bitstuffing, etc.), dus je hebt sowieso 48us de tijd om hem te lezen voordat het volgende bericht zou kunnen komen. Daarbij heeft zo'n CAN periferal eigenlijk altijd meerdere buffers om te ontvangen (8-16 is niet ongebruikelijk), en kun je het zo instellen dat ze niet overschreven worden, maar het eerste beschikbare lege buffer wordt gebruikt.

Om te kunnen zien wat je doet, is een CAN naar USB converter wel heel erg handig. Ik heb zelf USB converters van Peak Systems en Kvaser, maar dergelijke converters zijn erg kostbaar (ongeveer 250 euro). Toevallig heb converters in China besteld, die mogelijk vanavond in de bus liggen. Als ik de kans heb gehad om ze te testen, zal ik laten weten of het wat is. Die converters kosten ongeveer 20 euro.

In aanvulling wat Sparky zegt; ik was ook uitgegaan van een controller met CAN peripherie aan boord. Zonder wordt het een hele steile leercurve.

Dat was vooral een reactie op MGP, die met de MCP2515 kwam; dat is een chip die je via SPI moet aansturen, en dat maakt het onnodig complex. Natuurlijk kun je daar bestaande libraries voor gebruiken, maar daar leer je weer weinig van, en daarbij gaan ook die het moeilijk krijgen als de berichten kort na elkaar komen op een bus op 1Mbps.

Er zijn zoveel moderne microcontrollers met CAN periferals dat ik niet begrijp waarom je nog zo'n externe controller zou gebruiken.

Op 25 juli 2023 16:55:56 schreef SparkyGSX:
Dat was vooral een reactie op MGP, die met de MCP2515 kwam.....

Als je moet starten van 0 ben ik voorstander van het wat langzamer te doen en eens te proberen met de tools die al bestaan.
Ik huiver altijd als iemand met oplossingen komt die als een voorhamer aanvoelen ;)

Wat is er mis met een microcontroller die de juiste hardware aan boord heeft voor CAN, in plaats van een extern stuk hardware met een library die het juist veel minder inzichtelijk maakt?

Als je een STM32 discovery board neemt, heb je gelijk een debugger waardoor je kunt zien wat er gebeurd, en er zijn talloze voorbeelden voor te vinden.

Als de TS graag bij Microchip wil blijven kan dat ook, maar neem ook dan een controller die de dingen die je nodig hebt gewoon aan boord heeft.

Ik vind jouw voorstel zoiets als iemand die net zijn rijbewijs heeft gehaald een heel klein autootje geven, zodat ze elke dag met een aanhanger moeten rijden.

We zullen de keuze maar aan de TS overlaten.
De vergelijking met dat autootje en aanhanger zie ik niet, maar dat zal wel aan mij liggen :+

Het is heel wat lastiger om met een aanhanger te rijden laat staan er steeds mee moeten parkeren. Een wat grotere auto dat je dan geen aanhangen nodig hebt maakt het dan zoveel makkelijker. ;)

Ik zou beginnen met me te verdiepen op de tonnen info beschikbaar op internet. Van filmpjes tot sites en fora, je kan letterlijk alles vinden wat je wil met voorbeelden.

Een grote bibliotheek met een tonnen aan info, begin met wat is CAN of hoe werkt CAN. Kan je goed engels spreken of begrijpen, dan kan je in engelse taal nog honderd keer meer info vinden dan in het nederlands.

Veel is Al gezegd, maar waarom wil TS eigenlijk CAN?

Op voertuig gebied is het een redelijk succes.

Medisch schijnt het ook veel gebruikt.

Industrie zie ik CANopen wel gebruikt, maar geen voordelen t.o.v. Modbus RTU of Profibus en nadelen t.o.v. profinet of Modbus tcp/ip.

Maritiem zie ik het ook nog niet echt. NMEA 2000 is leuk bedacht, maar zie het nog weinig toegepast. J1939 wel voor de motoren. En Dan heel snel naar een normale bus omgezet...

Al met al is het niet overal een even Groot succes...

En als je te lui bent om alles zelf op te zoeken, kan je het dan vragen aan zo een AI praat bot. :P

OF... Een ouderwets goed en dik boek op de plank thuis is nog altijd het beste. Die zijn er ook nog altijd en kan je altijd op terug grijpen later.

[Bericht gewijzigd door CrossFireX op (43%)]

Een ouderwets goed en dik boek op de plank thuis is nog altijd het beste.

Daar ben ik het voor een deel mee eens, maar iemand die je het goed en op de goede manier uitlegt vind ik nog beter. En dat kan tegenwoordig online.

https://www.udemy.com/courses/search/?src=ukw&q=canbus

Er zijn ook veel online cursussen beschikbaar waar je je moet inschrijven. Veel ervan met een echte leraar die je alles uitlegt. Er is dus genoeg beschikbaar om uit te kiezen. Je moet er alleen wat moeite voor willen doen.