Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Projet] Une stack KNX TP1 open source pour Zephyr RTOS + carte KnxBoard
#1
Bonjour à tous,

Je voulais partager un projet sur lequel je travaille depuis plusieurs années : une implémentation du protocole KNX (TP1, mode S, System B — masque 07B0h) en pure C, principalement pour STM332, mais pas que...
Après plusieurs années et différent essais j'ai choisi de le porter sur Zephyr RTOS.
J'ai aussi fait une carte électronique open hardware qui va avec.

Pourquoi ce projet ?

Il n'existait pas, à ma connaissance, de stack KNX correctement intégrée à un OS temps réel open source comme Zephyr.
Je n'avais trouver que la stack C++ Thelsing, surtout orienté Arduino, et, difficilement portable sur n'importe quel environnement.

L'objectif est de fournir une base solide, testée, et surtout générique — pas liée à un produit ou un capteur en particulier — qui puisse à terme être proposée en amont (mainline) dans Zephyr.

Ce que ça couvre

- La stack protocolaire complète : couches Liaison de données, Réseau, Transport (machine à états Style 3 complète) et Application (21 services APDU), les objets d'interface System B, les Datapoint Types courants, et la persistance mémoire compatible avec le modèle de téléchargement ETS.
- Le driver pour le transceiver onsemi NCN5130 (liaison UART 9 bits).
- Un driver de "loopback" logiciel, pratique pour faire tourner et tester la stack sans bus KNX physique.
- Une suite de tests unitaires (8 suites, exécutables sans matériel).


La carte : KnxBoard

En parallèle, j'ai conçu KnxBoard, une carte STM32G4 + NCN5130 pensée comme une "carte de base" générique (un peu à la manière d'un Arduino) : elle ne fait que parler KNX TP1, et on vient y greffer une "carte plus simple" (daughterboard) selon le produit voulu — j'ai deux exemples fonctionnels : une sonde 1-Wire (DS18B20) et une sonde PT100.

Schémas, PCB et documentation matérielle sont sur GitHub : (Projet Kicad)

J'ai fait des PCBA sur JLCPCB, ce qui revient autour de 30€ la carte par 5 exemplaires, (PCB + Composant + Assamblage)
Je referais un nouveau prototype prochainement, j'ai une V6 dans les tuyaux avec quelque léger changement, mais la V5 fonctionne parfaitement.

https://github.com/condo4/knxboard

Je posterais prochainement les daughterboard et des photos

Où en est-on ?

Un téléchargement partiel ETS fonctionne de bout en bout sur la carte réelle, et toute la stack est couverte par des tests. Mais — et c'est important de le dire clairement : ce n'est pas une stack certifiée KNX, elle n'implémente pas KNX Data Secure, et je ne donne aucune garantie de conformité totale au protocole au-delà de ce qui a été testé sur banc. C'est un point de départ robuste, pas un produit fini.

Et maintenant ?

Le code est en cours de préparation pour une proposition d'intégration à Zephyr. N'hésitez pas à jeter un œil, tester, remonter des retours ou contribuer — toute aide est la bienvenue, que ce soit sur la stack, le hardware, ou les tests de conformité avec de vrais produits KNX du marché.

En attendant les corrections et la finalisation de la PR, le code est déjà dispo sur
https://github.com/condo4/zephyr/tree/de...x-protocol

Merci de votre lecture, et n'hésitez pas si vous avez des questions !
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)