OEM&ODM
Die FAQ von TI ZigBee Oct 29, 2021

Geschrieben von RF-star Senior Advisor XCODER (ein We-Media Essayist)



1. Wie wählt man aufgrund der Unterschiede zwischen den Versionen des TI ZigBee-Protokollstapels den richtigen Protokollstapel für die Produktentwicklung aus?


Der TI ZigBee Protokollstack Z-Stack wurde von Z-Stack 0.1 bis Z-Stack 2.5.1a und später Z-Stack Home 1.2.1, Z-Stack Lighting 1.0.2, Z-Stack Energy 1.0 entwickelt. 1, Z-Stapel-Netz 1.0.0. Bei der Aktualisierung des Protokollstapels hat TI hauptsächlich zwei Aspekte des Protokollstapels durchgeführt.


1) Fügen Sie einige neue Funktionen gemäß der ZigBee-Spezifikation der ZigBee Alliance hinzu.


ZigBee 2007 ist beispielsweise ein baumförmiges Routing. In ZigBee Pro kommt Mesh-Routing auf den Markt und Routing-Algorithmen wie MTO und Source Routing werden vorgeschlagen. TI fügt dem Protokollstack entsprechende neue Funktionen hinzu, um einige verwandte Fehler in den Spezifikationen zu beheben, beispielsweise solche mit mehrdeutigen Beschreibungen.


2) Um den Fehler im TI ZigBee-Protokollstapel selbst zu beheben.


Den Unterschied des Protokollstack zwischen einer Version und der Vorgängerversion finden Sie in der Release Note.

Nach der Version von Z-Stack 2.5.1a wurde der TI-Protokollstack nicht mehr direkt in Form von Z-Stack 2.6.x, sondern in Form von Application Profile veröffentlicht.


Der Grund dafür ist, dass TI möchte, dass Entwickler einen gezielteren Protokollstapel für die Entwicklung entsprechend der tatsächlichen Anwendung auswählen. Protokollstack wie Z-Stack Home 1.2.1 enthält hauptsächlich die folgenden zwei Teile.


1) Der Core Stack, der Anfang dieses Teils ist die Fortsetzungsversion von Z-Stack 2.5.1a und höher, kann in den Z-Stack Core Release Notes.txt, Version 2.6.2 gefunden werden.


2) Der Anwendungsprotokollstack bezieht sich auf das Profil, das sich hauptsächlich auf die eigentliche Anwendung bezieht. Der Protokollstack für die Hausautomation steht im Zusammenhang mit der Implementierung des ZigBee-Hausautomatisierungsprofils. Ebenso sind Z-Stack Lighting 1.0.2 und Z-Stack Energy 1.0.1 ebenfalls ein Core Stack mit einem Anwendungsprofil.

a.Z-Stack Home 1.2.2a wurde für Smart Home-bezogene Produkte entwickelt.

b.Z-Stack Lighting 1.0.2 wurde für ZLL-bezogene Produkte entwickelt.

c.Z-Stack Energy 1.0.1 wurde für Smart Energy, Meter, In Home Display und andere verwandte Produkte entwickelt.

d.Z-Stack Mesh 1.0.0 wurde für Produkte im Zusammenhang mit privaten Anwendungen entwickelt, die nur standardmäßige ZigBee-Protokollfunktionen wie Mesh-Routing usw. verwenden. Die Anwendungsschicht wird vom Entwickler definiert.


Nachdem die ZigBee Alliance die ZigBee 3.0 Protokoll ist der neueste ZigBee-Protokollstack Z-Stapel 3.0 , die derzeit unterstützt CC2530, CC2538, CC2652R, CC265P.



2.Wie führt man ZigBee-Tests und -Zertifizierungen von Produkten durch, was muss verstanden werden und welcher Prozess muss befolgt werden?


Es gibt ein Beispiel für die Entwicklung von Standardprodukten für ZigBee Home Automation. Wenn Entwickler Produkte entwickeln, müssen sie zunächst Produkte nach den in der Beschreibung beschriebenen Produkten entwickeln ZigBee Home Automation Profilspezifikation die unter www.zigbee.org heruntergeladen werden kann. Nach Abschluss der Produktentwicklung müssen Entwickler die ZigBee Home Automation Profil Testspezifikation die auch unter www.zigbee.org heruntergeladen werden kann. Das Dokument beschreibt die relevanten Testgegenstände, die ein bestimmtes Produkt im Testhaus testen muss. Neben den beiden oben genannten Dokumenten gibt es auch ein PICS-Dokument. Das dritte Dokument beschreibt die von den Produkten unterstützten Funktionen, die zertifiziert und getestet werden müssen. Entwickler vergleichen und bestätigen die Funktionen in PICS gemäß den tatsächlichen Funktionen der entwickelten Produkte und den in der Spezifikation geforderten Funktionen. Das Folgende ist der Testprozess.


1) Treten Sie der ZigBee Alliance bei, es wird ein Testlabor geben, das bei der Durchführung des Tests helfen kann.

2) Senden Sie Proben an das Testlabor und vervollständigen Sie die PICS-Datei.

3) Nach der ersten Vortestrunde gibt das Testlabor die Testergebnisse zurück und der Entwickler modifiziert den Beispielcode. (Wenn benötigt)

4) Überprüfen Sie die modifizierte Probe im Testlabor und starten Sie dann den formalen Test.

5)Der Entwickler führt die Vorbereitung und Einreichung der Online-Zertifizierungsantragsunterlagen der ZigBee Alliance mit Hilfe des Testlabors durch.

6)Das Prüflabor reicht einen formellen Prüfbericht bei der ZigBee Alliance ein. Die Allianz wird ein Zertifikat prüfen und ausstellen.


Derzeit gibt es sieben Testlabore, die die Standard-ZigBee-Tests durchführen können.


  • Chinesisches Institut für Elektronikstandardisierung (CESI)
  • Elementmaterialtechnologie
  • Nationale technische Systeme, Inc. (NTS)
  • UL
  • Bureau Veritas
  • Dekra
  • TÜV Rheinland-Gruppe


https://zigbeealliance.org/certification/testing-providers/




3.Wie wählt man die 64-Bit-MAC-Adresse des Geräts aus?


Es gibt zwei IEEE-Adressen in CC2530 / CC2538 / CC2630, die eine wird als primäre IEEE-Adresse und die andere als sekundäre Adresse bezeichnet. Die primäre IEEE-Adresse wird auf der Informationsseite des Chips gespeichert. Diese Primäradresse wird von TI von der IEEE Association erworben, und jede davon ist einzigartig. Der Benutzer kann diesen Wert nur lesen und nicht löschen/ändern. Das Lesen der Adresse im Protokollstapel kann Osal_memcpy (aExtendedAddress,(uint8*)(P_INFOPAGE+HAL_INFOP_IEEE_OSET),Z_EXTADDR_LEN) erhalten. Die sekundäre Adresse wird auf der letzten Seite von Flash gespeichert, und der Benutzer kann Lesen/Schreiben über die Funktion HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN) ausführen.


Wie funktioniert der Protokollstack, um die primäre IEEE-Adresse oder die sekundäre Adresse als MAC-Adresse des Geräts auszuwählen? Die spezifische Operation befindet sich in zmain_ext_addr(void).


1) Lesen Sie die IEEE-Adresse von NV. Wenn die MAC-Adresse bereits vorhanden ist (keine davon 0xFF), kann es sich um die MAC-Adresse handeln.

2)Wenn die MAC-Adresse in 1) nicht vorhanden ist, kann sie aus dem Speicherort der sekundären IEEE-Adresse gelesen werden. Wenn sie im Speicherort der sekundären IEEE-Adresse vorhanden ist (von denen keine 0xFF ist), kann die Adresse später als MAC-Adresse in die NV geschrieben werden.

3)Wenn die MAC-Adresse nicht in 2) angegeben ist, kann sie aus dem Speicherort der primären IEEE-Adresse gelesen werden. Wenn sie im Speicherort der primären IEEE-Adresse vorhanden ist (von denen keine 0xFF ist), kann die Adresse später als MAC-Adresse in die NV geschrieben werden.

4) Wenn die MAC-Adresse nicht in 3) angegeben ist, wird zufällig eine 64-Bit-Variablenadresse generiert, die als MAC-Adresse in die NV geschrieben wird.



4.Endgerät ist ein stromsparendes Gerät mit Batteriestromversorgung. Nachdem der Knoten vom Netzwerk getrennt wurde, wie kann man Knoten daran hindern, das Netzwerk kontinuierlich zu durchsuchen, oder wie kann das Intervall zwischen dem Senden von Beacon-Anfragen verlängert werden?


1)Suche im Netzwerk starten: uint8 ZDApp_StartJoiningCycle(void)

Beenden Sie die Suche im Netzwerk: uint8 ZDApp_StopJoiningCycle(void)

2) Ändern Sie den Zyklus zum Senden von Beacon Requests.


Ändern Sie die Variable: zgDefaultStartingScanDuration

// Beacon-Bestellwerte

#define BEACON_ORDER_NO_BEACONS 15

#define BEACON_ORDER_4_MINUTES 14 // 245760 Millisekunden

#define BEACON_ORDER_2_MINUTES 13 // 122880 Millisekunden

#define BEACON_ORDER_1_MINUTE 12 // 61440 Millisekunden

#define BEACON_ORDER_31_SECONDS 11 // 30720 Millisekunden

#define BEACON_ORDER_15_SECONDS 10 // 15360 MSecs

#define BEACON_ORDER_7_5_SECONDS 9 // 7680 MSecs

#define BEACON_ORDER_4_SECONDS 8 // 3840 Msec

#define BEACON_ORDER_2_SECONDS 7 // 1920 Msec

#define BEACON_ORDER_1_SECOND 6 // 960 Msec

#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.Wie veranlasse ich das Endgerät in den Energiesparstatus und wie stelle ich die Ruhezeit ein?


Nachdem Sie POWER_SAVING in der Protokollstack-Makrodefinition aktiviert und dann -DRFD_RCVC_ALWAYS_ON=FALSE in der Datei f8wConfig.cfg ausgeführt haben, kann das Endgerät in den Ruhezustand wechseln.


Die Ruhezeit wird durch das Scheduling des OSAL-Betriebssystems bestimmt. Jede Ruhezeit basiert auf dem letzten Ereignis-Timeout als Ruhezeit. Die Details werden in der Protokollstack-Funktion hal_sleep erklärt.


Diese Zeitüberschreitung ist hauptsächlich in zwei Kategorien unterteilt, die eine ist die Zeitüberschreitung von Anwendungsschicht-Ereignissen und die andere ist die Zeitüberschreitung von MAC-Schicht-Ereignissen.


1) Die Timeout-Zeit der Anwendungsschicht wird durch osal_next_timeout() erhalten; in der Funktion von osal_pwrmgr_powerconserve(void).

2) Die Timeout-Zeit der MAC-Schicht wird durch MAC_PwrNextTimeout() erhalten; in der Funktion von halSleep(uint16 osal_timeout).


6. Was ist neu im ZigBee 3.0-Protokollstack?


Bitte beachten Sie den folgenden Link, der die Ergänzungen des ZigBee 3.0-Protokollstapels im Vergleich zum vorherigen ZigBee Home Automation/ZigBee Light Link vorstellt.

https://www.ti.com/lit/an/swra615a/swra615a.pdf?ts=1627190581608


7. Ausführliche Erläuterung der Zustandsumschaltung der Endgeräte im TI ZigBee Protokollstack.

https://e2echina.ti.com/support/wireless-connectivity/zigbee-and-thread/f/zigbee-thread-forum/104629/ti-zigbee


8. Die Unterschiede zwischen OAD und OTA im TI-Protokollstapel.

OAD ist Over the Air Download und OTA ist Over the Air. Die Funktionen dieser beiden Implementierungen sind gleich, und beide können als Remote-Upgrades des Programms bezeichnet werden. Im frühen ZigBee-Protokollstandard gibt es keinen Standard für das Over-the-Air-Upgrade des Node-Programms, aber viele Kunden haben Anforderungen daran. Aus diesem Grund hat TI eine Reihe von Protokollstacks für das Over-the-Air-Upgrade des Programms entwickelt und es OAD genannt. Die ZigBee Alliance erkannte, dass die Nachfrage stieg, dann spezifizierten sie auch einen Standard für Over-the-Air-Upgrades und nannten OTA, der sich auch auf die TI-OAD-Implementierung bezog und entsprechende Modifikationen vornahm. Daher wird das Over-the-Air-Upgrade im frühen TI-Protokollstack als OAD und später in der ZigBee Alliance als OTA bezeichnet.


9. Wenn der 32K-Quarzoszillator nicht in ein Gerät mit geringem Stromverbrauch eingelötet ist, wie kann man dann den Z-Stack-Protokollstapel ändern?

Im Z-Stack-Protokollstack wird während des Initialisierungsvorgangs überprüft, ob der verwendete Quarzoszillator stabil ist. Wenn der 32K-Quarzoszillator nicht gelötet ist, muss der folgende Code geändert werden. Der TI Z-Stack-Protokollstack verwendet standardmäßig einen 32K-Quarzoszillator.


In der Datei hal_board_cfg.h, #define OSC32K_CRYSTAL_INSTALLED FALSE



10. Wenn eine private Anwendung auf Basis des ZigBee Mesh-Netzwerks entwickelt werden soll, welcher Protokollstack sollte gewählt werden?


Viele Benutzer möchten in einigen industriellen Anwendungen die Funktionen des ZigBee-Mesh-Netzwerks nur in ihren eigenen Systemen oder Produkten verwenden und müssen sich nicht an die von ZigBee definierten Anwendungsschicht-Spezifikationen halten. Wie wählt man für solche Anwendungsanforderungen den geeigneten TI-Protokollstapel für die Produktentwicklung aus? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx



11.Wenn ich CC2630/CC2650 ZigBee zum Entwickeln verwende, kann ich mit einem Breakpoint im Core-Stack-Code debuggen?

Jawohl. Sie müssen die dem Breakpoint-Code entsprechende Datei herunterladen und im Voraus öffnen und dann debuggen.



12.Wie wählt der Zigbee-Koordinator den geeigneten Kanal aus, um das Netzwerk zu erstellen?

Der Aufbau eines Zigbee-Netzwerks muss von einem Koordinator abgeschlossen werden. Ein Zigbee-Netzwerk hat nur einen Koordinator. Der Zigbee-Koordinator erledigt beim Anlegen des Netzwerks hauptsächlich die Auswahl des Netzwerkkanals und die Generierung von PANID. Es gibt zwei Schritte, um den Kanal auszuwählen.


1) Passiver Scan wird auch Energie-Scan genannt. Passives Scannen bedeutet, dass der Koordinator seinen Empfänger einschaltet und dann sequentiell auf der zuvor eingestellten Kanalliste scannt. Nach dem Scannen wird der Energiewert jedes Kanals erhalten. Diese Energie stammt hauptsächlich aus anderen Zigbee-Netzwerken oder anderen 2,4-GHz-WLAN-Netzwerksignalen. Der Koordinator wird den Kanal, dessen Energiewert höher als der voreingestellte Schwellenwert ist, als stärker störend betrachten und den Kanal entfernen.

2) Aktiver Scan. In den nach der ersten Scan-Runde verbleibenden Kanälen werden Beacon Requests nacheinander gesendet. Wenn das entsprechende Beacon-Datenpaket empfangen wird, wird davon ausgegangen, dass sich andere Zigbee-Geräte im Kanal befinden. Schließlich wählt der Koordinator eine PANID, die keine anderen Zigbee-Netzwerke hat, oder den Kanal mit dem wenigsten Zigbee-Netzwerk, um sein eigenes Netzwerk aufzubauen und eine PANID festzulegen, die nicht kollidiert.


13.Wie lösche ich die Benutzeroberfläche und verwende den TI Zigbee 3.0-Protokollstapel, um schnell in den Produktentwicklungsmodus zu wechseln?

https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/146528



14.Wie optimiert man Flash und RAM von CC2530?

http://www.ti.com/lit/wp/swra635/swra635.pdf


CC2650, CC2538, CC2652R, CC2630, Z-Stapel, CC2530

Hinterlass eine Nachricht

Hinterlass eine Nachricht
Wenn Sie an unseren Produkten interessiert sind und mehr Details erfahren möchten, hinterlassen Sie bitte hier eine Nachricht, wir werden Ihnen so schnell wie möglich antworten.

Heim

Produkt

skype

whatsapp