Forums
Mais qu'est ce donc que ce bus CAN ? - Version imprimable

+- Forums (https://domosimple.eu/forum)
+-- Forum : Général (https://domosimple.eu/forum/forum-1.html)
+--- Forum : CAN Bus (https://domosimple.eu/forum/forum-20.html)
+--- Sujet : Mais qu'est ce donc que ce bus CAN ? (/thread-138.html)



Mais qu'est ce donc que ce bus CAN ? - jlm - 17-09-2022

Je me suis posé la question depuis un bon moment.
J'ai lu la théorie, compris l'idée.
Il me reste à passer à la pratique pour vraiment comprendre la manière de communiquer avec ce Bus.

Vous avez certainement remarqué que vos batteries Lithium ont un bus CAN, certains de vos onduleurs aussi et même votre voiture qui communique en CAN via sa prise OBD-II

Alors j'ai commandé et enfin reçu tout à l'heure (qcq semaines d'attente, normal) mon cadeau de Noël. J'espère qu'il ne sera pas empoisonné.
Suis curieux de voir si j'arrive à causer avec mes Pylontech en CAN au lieu de RS232 comme actuellement.

Et vous ? avez vous déjà des connaissances à sujet, venez partager ! N'hésitez pas.
Moi je pars de zéro (sauf théorie) alors ce serait bien que je ne ré-invente pas la roue si vous avez déjà des réalisations sur CAN bus.

Voici le joujou en question:

   
   


RE: Mais qu'est ce donc que ce bus CAN ? - gazzzzton - 17-09-2022

j attend tes retours avec une enorme curiosité !!


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 18-09-2022

J'ai pu faire le 1er essai en live. Ça fonctionne, le PC reçoit des trames.
Un très bon début. Je ne sais pas quoi en faire à l'instant. Un peu de reverse engineering et ce sera plus clair.
Y a du boulot, c'est certain.
Voici le câble maison.
Pinout:
Pin 1-2-3 ne sont pas utilisées.
Pin 4 est CAN-H (High) couleur Bleu
Pin 5 est CAN-L (Low) couleur Bleu/Blanc
Pin 6 est Ground couleur Vert
   
1 essai depuis le PC:
   
2ème essai, plus parlant, on voit qu'il cause à du Pylontech
   
Le chipset et un GD32 ARM Cortex-M4 Microcontrollers de chez Gigadevice
   



RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 18-09-2022

J'ai trouvé un peu de documentation "obscure" pour décoder ces trames.
Du coup il y a une correspondance entre une des trames et la documentation.
Ça montre que la doc semble être la bonne.

Voici la documentation Pylontech Low Voltage:

.pdf   CAN-Bus-protocol-PYLON-low-voltage-V1.2-20180408.pdf (Taille : 250.42 Ko / Téléchargements : 289)

Il existe une autre pour High Voltage si jamais:

.pdf   CAN-Bus-Protocol-Sermatec-high-voltage-V1.1810kW.pdf (Taille : 846.81 Ko / Téléchargements : 173)

Et voici une rapide déduction entre les données récupérées et la doc low voltage:
Ça devient tout de suite plus parlant Dodgy

   


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 18-09-2022

Récupération des données du Bus CAN dans Nodered
Comme dirait Jean, il y a des plats tout fait pour cela. J'en ai en effet trouvé un qui va bien.
Étape suivante sera de décortiquer les trames CAN. Là il faut être ZEN.

Voilà à quoi ressemble la récupération des données. Simple non !?
Les valeurs à droite sont les données reçues brutes du CANbus. Elles arrivent par vagues de environ 1 seconde.

   


RE: Mais qu'est ce donc que ce bus CAN ? - gazzzzton - 18-09-2022

j adore quand un plan se deroule sans accros ^^


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 19-09-2022

C'est vrai que jusque là, la théorie colle bien à la pratique.
Me réjouis de décoder ma première trame. Sur les 16 bits à l offset 23 vous avez la valeur de tension codée en big Indian ? et sur le mot offset 45 il y a les valeurs des cellules high voltage
Whoo ca promet :-)


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 19-09-2022

:Smiley_2004082307083477: Voilà ma première trame décodée. Vraiment agréable avec Nodered. (je sais je l'ai souvent dit Shy )

Il y a déjà un analyseur de tampon (buffer analyser) tout prêt, il suffit de lui donner à manger avec l'aide de la documentation secrète de Pylontech.

J'ai donc pu sortir le SOC (State Of Charge) et le SOH (State Of Health) de l'ensemble des batteries. En effet, les valeurs données par le BMS sont des moyennes comme indiqué dans la documentation.

Voici ci-dessous les premières images de mon 1er essai fonctionnel.

Dans un premier temps:

  1. Présentation de la documentation utilisée
  2. Présentation du code mis en place dans Nodered pour récupérer et analyser les données reçues du bus CAN
  3. Affichage dans smartphoton de la page dédiée à CAN (c'est juste un draft) comparée aux données que je récupère déjà via le port Console (à droite)

Maintenant il ne reste plus que les autres trames à se farcir. C'est moins marrant du coup une fois que l'on connaît le chemin pour y aller. Mais bon, faut le faire.
Ensuite mise en page, modification de smartphoton pour activer ou non l'utilisation du bus CAN en plus du port Console.
Il y a encore bien du chemin !
Mais CAN bus n'est plus de la théorie. C'est devenu de la réalité pratique. But recherché pour moi.

   


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 20-09-2022

Ces 3 nouvelles valeurs, soit Voltage, Ampérage et températures étaient bien plus compliquées à récupérer. Le format de celles-ci sont codées sur 16 bits signés en Little Endian. Donc inversées. En plus l'ampérage peut évidemment être négatif pour indiquer que l'on décharge la batterie.

   


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 20-09-2022

Voilà j'arrive au bout de ce que la documentation peut m’informer sur les données Pylontech.
Conclusion à mi-parcours.
  • Le bus CAN c'est facile à interfacer via Nodered / Linux / smartphoton. Les données sont lisibles sans trop de soucis.
  • J'ai beaucoup moins d'informations que via la prise Console où là j'ai un maximum d'informations.
  • Par défaut il n'y a que peu d'informations sur les cellules, le nombres de grappes.
  • Par contre j'ai bien compris que je pourrais simuler un onduleur et donner des ordres aux batteries comme le ferait un onduleur. Par exemple je peux donner l'ordre de charge ou de décharge à celles-ci. Ce que je ne peux pas faire via le port console. Donc ça pourrait devenir un outil dangereux si on y fait pas gaffe.
  • Il me faudrait le HUB LV pour pouvoir regarder ce qu'il échange comme commandes. Alors si quelqu'un veut bien m'en prêter un pour pouvoir analyser ce trafic, je suis preneur Angel

Voici le tableau récapitulatif des données lues via la prise CAN sur mes US2000C.

   


RE: Mais qu'est ce donc que ce bus CAN ? - mikroch0 - 22-09-2022

Ton item me ramène en arrière et me rappelle mon age: tu parles de Little Endian  et je me demande si c'est ce que l'on nommait LSB ou MSB dans les années 80 (Most significant Bit) ou octet de poids fort ou faible qui s'inverse dans les FAT . En attendant persévère dans ton projet ,je n'ai pas de Pylontech pour le moment, mais je pourrais avoir une RENAULT et cest le même bus...Bon je sorts Hi .Bonne journée


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 22-09-2022

Yes, that's exactly it, if you speak in English we use MSB or LSB and not LSD of course  ;)

C'était mes débuts dans le monde informatique aussi pour moi. En français octets de poids fort qu'ils disaient je crois chez Bull.
J'ai fait énormément d'assembleur, ça aide un peu.
Oui toutes les voitures modernes sont équipées par le bus CAN. Sinon il y aurait 2 à 3 km de fils pour relier tous les capteurs.
Ce qu'il y a d'intéressant, c'est que ça a fonctionné du 1er coup. C'est assez rare pour être souligné quand même

Ce sera quoi comme Renault ?

   


RE: Mais qu'est ce donc que ce bus CAN ? - JaÇum - 03-11-2022

Bonjour, les batteries sont donc arrivées, équilibrées, branchées au JKBMS.
Elles alimentent l'onduleur.
Comme je suis toujours à la recherche d'un routeur simple, je pense interviewer le BMS, mais j'ai un problème avant même de commencer; Je ne trouve pas les connecteurs CAN, GPRS, RS 232....
Je n'en ai jamais vu d'aussi petits, Ou avez-vous trouvé les vôtres?

Si c'est toujours d'actualité, voici un peu de littérature sur le "langage BMS".
https://blog.ja-ke.tech/2020/02/07/ltt-power-bms-chinese-protocol.html

J'y ai aussi trouvé que tout comme les onduleurs, les BMS sont aussi des copies de copies avec presque tous le même logiciel.

Bon courage.


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 03-11-2022

Alors pour le connecteur, je l'ai acheté sur Aliexpress


[Image: Module-de-Conversion-USB-vers-CAN-assist....jpg_.webp]

Gazzzton a déjà bien déblayé le terrain, il a sorti les données de son JKBMS Cool  Via le port RS485.
Il y a des milliers d'informations qui en sortent.

Il m'a donné son code et j'ai commencé à l'intégré récemment dans smartphoton.
Tu peux évidemment le contacter pour plus d'infos. 

voici à quoi ressemble les infos récupérées de ses 16 cellules:

En format MQTT:

   

Dans mon soft:

   

De mon coté je suis en mode "draft" ou mode ébauche. Il y a le squelette.
De son coté il a déjà intégré les données dans son Home Assistant   :idea:

Il bosse un max, mais je sais qu'il va bientôt nous présenter son projet et ses réussites. Il arrive juste pas être partout.
Gazzzton, bientôt à toi de prendre la main sur ce sujet Blush


RE: Mais qu'est ce donc que ce bus CAN ? - JaÇum - 04-11-2022

Merci Jim, mais je cherche juste les connecteur, ce sont des minuscules trucs !

[Image: irax.jpg]

Je raccorderai ça à une EW10 pour avoir toutes les infos "au salon" via le serveur WiFi.
Le BLE fonctionne bien, mais je suis trop loin :(
Bien sûr j'ai tenté de contacter le vendeur (chinois) mais c'est électroencéphalogramme plat ./
Vu la taille du truc je ne me sens pas d'y aller au fer à souder, même après un coup de blanc ;)

http://www.jk-bms.com/Upload/2022-05-19/1621104621.pdf


RE: Mais qu'est ce donc que ce bus CAN ? - gazzzzton - 04-11-2022

4-pin 1.25 Micro JST plug cable


RE: Mais qu'est ce donc que ce bus CAN ? - JaÇum - 05-11-2022

Merci Gazzzzton !
Bon ça gaz pas terrible, les chinois ne sont pas pressés de livrer, ce sera au mieux début 2023.
Je vais chercher dans les boutiques de modèles réduits...
Si vous avez une adresse d'un livreur rapide, je suis preneur.
En tous cas merci pour la référence, ce genre de connecteurs n'est pas vraiment ma tasse de thé !


RE: Mais qu'est ce donc que ce bus CAN ? - gazzzzton - 05-11-2022

va voir du côté des magasin de drone fpv , le mien vient d'un connecteur d'une camera fpv


RE: Mais qu'est ce donc que ce bus CAN ? - mammique - 28-01-2023

Bonjour, quels sont les paramètre pour le can0 sur Raspberry ?

J'ai essayé ça car la doc dit 500kbps :


Code :
sudo ip link set can0 type can bitrate 512000
sudo ip link set up can0

Mais candump ne me montre rien.

Merci,

Camille.


RE: Mais qu'est ce donc que ce bus CAN ? - jlm - 28-01-2023

Voici ma documentation. Ça devrait aider :idea:



Installer les outils CAN :
sudo apt install can-utils

voir ceci au cas où : https://github.com/linux-can/can-utils

Configurer l’interface à 500,000 bits/second:

On peut lancer le script CAN-start.sh

sudo ip link set can0 type can bitrate 500000 restart-ms 100
sudo modprobe vcan

Code :
sudo
modprobe can_raw

sudo ip link add dev vcan0 type vcan
sudo ip link set up can0

Vérifier si les drivers CAN se sont bien chargés

lsmod | grep "can"
can_raw 20480 1
can 24576 1 can_raw
vcan 16384 0
can_dev 40960 1 gs_usb

Vérifier si l’interface est UP :

ip addr ls dev can0
9: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 10
link/can

To send data to the CAN bus, use the cansend utility:

~cansend can0 123#1122334455667788

The above command will send a CAN message on can0 with the identifier 0x123 and the data bytes [ 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 ]. Values are always treated as hexadecimal.

Pour afficher les valeurs temps réels du bus CAN, on utilise la commande candump:

candump can0

Ou plus précisément pour le Pi 
candump -ta -a -x can0


Basic tools to display, record, generate and replay CAN traffic
  • candump : display, filter and log CAN data to files
  • canplayer : replay CAN logfiles
  • cansend : send a single frame
  • cangen : generate (random) CAN traffic
  • cansequence : send and check sequence of CAN frames with incrementing payload
  • cansniffer : display CAN data content differences



RE: Mais qu'est ce donc que ce bus CAN ? - mammique - 07-02-2023

Bonsoir Jean-Luc, désolé j'avais pas vu ton message, j'attendais la notification par mail, mais je ne sais pas pourquoi je n'ai rien reçu. Merci beaucoup pour ta réponse, je vais tester ça !

Camille.