Écrit par le conseiller principal de RF-star XCODER (un essayiste de We-Media)
1. En raison des différences entre les versions de la pile de protocoles TI ZigBee, comment choisir la bonne pile de protocoles pour le développement de produits ?
La pile de protocoles TI ZigBee Z-Stack est développée à partir de Z-Stack 0.1 à Z-Stack 2.5.1a, et plus tard Z-Stack Home 1.2.1, Z-Stack Lighting 1.0.2, Z-Stack Energy 1.0. 1, maille Z-Stack 1.0.0. Dans le processus de mise à niveau de la pile de protocoles, TI a principalement réalisé deux aspects de la pile de protocoles.
1) Ajoutez de nouvelles fonctionnalités conformément à la spécification ZigBee de la ZigBee Alliance.
Par exemple, ZigBee 2007 est un routage en forme d'arbre. Dans ZigBee Pro, le routage Mesh fait son apparition et des algorithmes de routage tels que MTO et Source Routing sont proposés. TI ajoute de nouvelles fonctionnalités correspondantes à la pile de protocoles afin de corriger certains bogues connexes dans les spécifications, tels que ceux avec des descriptions ambiguës.
2) Pour corriger le bogue dans la pile de protocoles TI ZigBee elle-même.
La différence de la pile de protocoles entre une version et la version précédente peut être trouvée dans la note de version.
Après la version de Z-Stack 2.5.1a, la pile de protocole TI n'a pas continué à être publiée directement sous la forme de Z-Stack 2.6.x, mais a été publiée sous la forme d'un profil d'application.
La raison en est que TI souhaite que les développeurs choisissent une pile de protocoles plus ciblée pour le développement en fonction de l'application réelle. La pile de protocoles comme Z-stack Home 1.2.1 comprend principalement les deux parties suivantes.
1) Le Core Stack, le début de cette partie est la version de continuation de Z-Stack 2.5.1a et versions ultérieures, peut être trouvé dans le Z-Stack Core Release Notes.txt, Version 2.6.2.
2) La pile de protocoles d'application est liée au profil, qui est principalement lié à l'application réelle. La pile de protocoles domotique est liée à la mise en œuvre du profil domotique ZigBee. De même, Z-Stack Lighting 1.0.2 et Z-Stack Energy 1.0.1 sont également une pile principale avec un profil d'application.
a.Z-Stack Home 1.2.2a est développé pour les produits liés à la maison intelligente.
b.Z-Stack Lighting 1.0.2 est développé pour les produits liés à ZLL.
c.Z-Stack Energy 1.0.1 est développé pour l'énergie intelligente, les compteurs, l'affichage à domicile et d'autres produits connexes.
d.Z-Stack Mesh 1.0.0 est développé pour les produits liés aux applications privées, qui n'utilisent que des fonctionnalités liées au protocole ZigBee standard, telles que le routage Mesh, etc. La couche d'application est définie par le développeur.
Après que la ZigBee Alliance a publié le ZigBee 3.0 protocole, la dernière pile de protocoles ZigBee est Pile Z 3.0 , qui prend actuellement en charge CC2530, CC2538, CC2652R, CC265P.
2.Comment effectuer les tests et la certification ZigBee des produits, que faut-il comprendre et quel processus doit être suivi ?
Il existe un exemple de développement de produits standard liés à la domotique ZigBee. Pour commencer, lorsque les développeurs développent des produits, ils doivent développer des produits selon les produits décrits dans le Spécification du profil de domotique ZigBee téléchargeable sur www.zigbee.org. Après avoir terminé le développement du produit, les développeurs doivent comprendre les Spécification de test de profil de domotique ZigBee qui peut également être téléchargé sur www.zigbee.org. Le document décrit les éléments de test pertinents qu'un produit spécifique doit être testé dans la salle de test. Il existe également un document PICS en plus des deux documents ci-dessus. Le troisième document décrit les fonctions prises en charge par les produits qui doivent être certifiés et testés. Les développeurs comparent et confirment les fonctionnalités de PICS en fonction des fonctions réelles des produits développés et des fonctions requises dans la spécification. Ce qui suit est le processus de test.
1) Rejoignez la ZigBee Alliance, il y aura un laboratoire de test qui pourra vous aider à compléter le test.
2)Envoyer les échantillons au laboratoire de test et compléter le fichier PICS.
3) Après la première série de pré-tests, le laboratoire de test renvoie les résultats du test et le développeur modifie l'exemple de code. (Si besoin)
4)Vérifiez l'échantillon modifié dans le laboratoire de test, puis démarrez le test formel.
5) Le développeur termine la préparation et la soumission des documents de demande de certification en ligne ZigBee Alliance avec l'aide du laboratoire de test.
6) Le laboratoire de test soumet un rapport de test formel à la ZigBee Alliance. L'alliance examinera et délivrera un certificat.
À l'heure actuelle, il existe sept laboratoires de test qui peuvent effectuer les tests ZigBee standard.
https://zigbeealliance.org/certification/testing-providers/
3.Comment sélectionner l'adresse MAC 64 bits de l'appareil ?
Il existe deux adresses IEEE dans CC2530 / CC2538 / CC2630, l'une est appelée adresse IEEE principale et l'autre est appelée adresse secondaire. L'adresse IEEE principale est stockée dans la page d'informations de la puce. Cette adresse principale est achetée par TI auprès de l'association IEEE et chacune d'entre elles est unique. L'utilisateur ne peut lire que cette valeur et ne peut pas effacer/modifier. La lecture de l'adresse dans la pile de protocoles peut obtenir Osal_memcpy (aExtendedAddress,(uint8*)(P_INFOPAGE+HAL_INFOP_IEEE_OSET),Z_EXTADDR_LEN). L'adresse secondaire est stockée dans la dernière page de Flash, et l'utilisateur peut effectuer une lecture/écriture via la fonction HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN).
Comment fonctionne la pile de protocoles pour sélectionner l'adresse IEEE principale ou l'adresse secondaire comme adresse MAC de l'appareil ? L'opération spécifique est dans zmain_ext_addr(void).
1) Lisez l'adresse IEEE de NV. Si l'adresse MAC existe déjà (dont aucune n'est 0xFF), il peut s'agir de l'adresse MAC.
2) Si l'adresse MAC n'existe pas en 1), elle peut être lue à partir de l'emplacement de stockage de l'adresse IEEE secondaire. Si elle existe dans l'emplacement de stockage de l'adresse IEEE secondaire (dont aucune n'est 0xFF), l'adresse peut être écrite dans NV en tant qu'adresse MAC ultérieurement.
3) Si l'adresse MAC ne figure pas dans 2), elle peut être lue à partir de l'emplacement de stockage de l'adresse IEEE principale. Si elle existe dans l'emplacement de stockage de l'adresse IEEE principale (dont aucune n'est 0xFF), l'adresse peut être écrite dans NV comme adresse MAC ultérieurement.
4) Si l'adresse MAC ne figure pas dans 3), une adresse variable de 64 bits est générée de manière aléatoire, écrite dans le NV en tant qu'adresse MAC.
4.L'appareil d'extrémité est un appareil à faible consommation d'énergie avec alimentation par batterie. Une fois le nœud déconnecté du réseau, comment interdire aux nœuds de rechercher en permanence le réseau ou comment augmenter l'intervalle entre les envois de requêtes Beacon ?
1) Commencer la recherche de réseau : uint8 ZDApp_StartJoiningCycle (void)
Arrêtez de chercher sur le réseau : uint8 ZDApp_StopJoiningCycle(void)
2) Modifiez le cycle d'envoi de la demande de balise.
Modifiez la variable : zgDefaultStartingScanDuration
// Valeurs d'ordre des balises
#define BEACON_ORDER_NO_BEACONS 15
#define BEACON_ORDER_4_MINUTES 14 // 245760 millisecondes
#define BEACON_ORDER_2_MINUTES 13 // 122880 millisecondes
#define BEACON_ORDER_1_MINUTE 12 // 61440 millisecondes
#define BEACON_ORDER_31_SECONDS 11 // 30720 millisecondes
#define BEACON_ORDER_15_SECONDS 10 // 15360 MSec
#define BEACON_ORDER_7_5_SECONDS 9 // 7680 MSecs
#define BEACON_ORDER_4_SECONDS 8 // 3840 MSecs
#define BEACON_ORDER_2_SECONDS 7 // 1920 MSecs
#define BEACON_ORDER_1_SECOND 6 // 960 MSecs
#define BEACON_ORDER_480_MSEC 5
#define BEACON_ORDER_240_MSEC 4
#define BEACON_ORDER_120_MSEC 3
#define BEACON_ORDER_60_MSEC 2
#define BEACON_ORDER_30_MSEC 1
#define BEACON_ORDER_15_MSEC 0
5.Comment faire en sorte que le périphérique final passe en état de faible consommation et comment définir le temps de veille ?
Après avoir activé POWER_SAVING dans la définition de macro de pile de protocoles, puis actionné -DRFD_RCVC_ALWAYS_ON=FALSE dans le fichier f8wConfig.cfg, le périphérique final peut entrer en état de veille.
Le temps de sommeil est déterminé par la programmation du système d'exploitation OSAL. Chaque temps de sommeil est basé sur le dernier Event Timeout comme temps de sommeil. Les détails sont expliqués dans la fonction hal_sleep de la pile de protocoles.
Ce délai d'attente est principalement divisé en deux catégories, l'une est le délai d'expiration des événements de couche application et l'autre est le délai d'expiration des événements de couche MAC.
1) Le timeout de la couche application est obtenu par osal_next_timeout(); dans la fonction de osal_pwrmgr_powerconserve( void).
2) Le temps d'attente de la couche MAC est obtenu par MAC_PwrNextTimeout(); dans la fonction de halSleep(uint16 osal_timeout).
6. Quoi de neuf dans la pile de protocoles ZigBee 3.0 ?
Veuillez vous référer au lien ci-dessous, qui présente les ajouts de la pile de protocoles ZigBee 3.0 par rapport au précédent lien ZigBee Home Automation/ZigBee Light.
https://www.ti.com/lit/an/swra615a/swra615a.pdf?ts=1627190581608
7. Explication détaillée de la commutation d'état de l'équipement terminal dans la pile de protocoles TI ZigBee.
8. Les différences entre OAD et OTA dans la pile de protocoles TI.
OAD est Over the Air Download et OTA est Over the Air. Les fonctions de ces deux implémentations sont les mêmes, et les deux peuvent être appelées mises à niveau à distance du programme. Dans la première norme de protocole ZigBee, il n'y a pas de norme pour la mise à niveau sans fil du programme de nœud, mais de nombreux clients ont des exigences pour cela. Par conséquent, TI a développé un ensemble de piles de protocoles pour la mise à niveau sans fil du programme et l'a nommé OAD. ZigBee Alliance s'est rendu compte que la demande augmentait, puis ils ont également spécifié une norme pour les mises à niveau en direct et nommé OTA, qui faisait également référence à la mise en œuvre de TI OAD et a apporté les modifications pertinentes. Par conséquent, dans la première pile de protocoles TI, la mise à niveau sans fil s'appelle OAD, et plus tard dans ZigBee Alliance, elle s'appelle OTA.
9. Si l'oscillateur à cristal 32K n'est pas soudé dans un appareil non basse consommation, comment modifier la pile de protocoles Z-Stack ?
Dans la pile de protocoles Z-Stack, la stabilité de l'oscillateur à cristal utilisé sera vérifiée pendant le processus d'initialisation. Si l'oscillateur à cristal 32K n'est pas soudé, le code suivant doit être modifié. La pile de protocoles TI Z-Stack utilise un oscillateur à cristal 32K par défaut.
Dans le fichier de hal_board_cfg.h, #define OSC32K_CRYSTAL_INSTALLED FALSE
10. Si une application privée doit être développée sur la base du réseau maillé ZigBee, quelle pile de protocoles doit être sélectionnée ?
De nombreux utilisateurs, dans certaines applications industrielles, souhaitent uniquement utiliser les fonctions du réseau maillé ZigBee dans leurs propres systèmes ou produits et n'ont pas besoin de suivre les spécifications de la couche d'application définies par ZigBee. Pour de telles exigences d'application, comment choisir la pile de protocoles TI appropriée pour le développement de produits ? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx
11.Lorsque j'utilise CC2630/CC2650 ZigBee pour développer, puis-je déboguer avec un point d'arrêt dans le code de la pile Core ?
Oui. Vous devez télécharger le fichier correspondant au code du point d'arrêt et l'ouvrir au préalable, puis déboguer.
12.Comment le coordinateur Zigbee sélectionne-t-il le canal approprié pour créer le réseau ?
La création d'un réseau Zigbee doit être complétée par un coordinateur. Un réseau Zigbee n'a qu'un seul coordinateur. Le coordinateur Zigbee complète principalement la sélection du canal réseau et la génération de PANID lors de la création du réseau. Il y a deux étapes pour sélectionner le canal.
1) Le scan passif est également appelé Energy Scan. Le balayage passif signifie que le coordinateur allume son récepteur, puis balaye séquentiellement sur la liste de chaînes précédemment définie. Après le balayage, la valeur énergétique de chaque canal sera obtenue. Cette énergie provient principalement du signal d'autres réseaux Zigbee ou d'autres réseaux sans fil 2,4 GHz. Le coordinateur considérera le canal dont la valeur énergétique est supérieure à la valeur de seuil prédéfinie comme ayant une plus grande interférence, et supprimera le canal.
2) Analyse active. Dans les canaux laissés après le premier tour de balayage, les demandes de balise sont envoyées en séquence. Si le paquet de données Beacon correspondant est reçu, on considère qu'il y a d'autres appareils Zigbee dans le canal. Enfin, le coordinateur choisira un PANID qui n'a pas d'autres réseaux Zigbee, ou le canal avec le moins de réseau Zigbee pour établir son propre réseau et définir un PANID qui n'entre pas en conflit.
13.Comment supprimer l'interface utilisateur et utiliser la pile de protocoles TI Zigbee 3.0 pour entrer rapidement en mode de développement de produits ?
https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/146528
14.Comment optimiser le Flash et la RAM du CC2530 ?
http://www.ti.com/lit/wp/swra635/swra635.pdf
CC2650, CC2538, CC2652R, CC2630, pile Z, CC2530