Below You'll Find Answers to the Questions We Get Asked the Most About Wireless IoT Technologies.
FAQ по TI ZigBee May 10, 2022

Написано старшим советником RF-star XCODER (эссеистом We-Media)



1. Из-за различий между версиями стека протоколов TI ZigBee, как выбрать правильный стек протоколов для разработки продукта?


Стек протоколов TI ZigBee Z-Stack разработан с Z-Stack 0.1 до Z-Stack 2.5.1a и более поздних версий Z-Stack Home 1.2.1, Z-Stack Lighting 1.0.2, Z-Stack Energy 1.0. 1, Z-Stack Mesh 1.0.0. В процессе обновления стека протоколов TI в основном выполнила два аспекта стека протоколов.


1) Добавьте некоторые новые функции в соответствии со спецификацией ZigBee ZigBee Alliance.


Например, ZigBee 2007 представляет собой древовидную маршрутизацию. В ZigBee Pro появляется Mesh routing, и предлагаются такие алгоритмы маршрутизации, как MTO и Source Routing. TI добавляет соответствующие новые функции в стек протоколов, чтобы исправить некоторые связанные ошибки в спецификациях, например, с неоднозначными описаниями.


2) Исправить ошибку в самом стеке протокола TI ZigBee.


Различие стека протоколов между версией и предыдущей версией можно найти в примечании к выпуску.

После версии Z-Stack 2.5.1a стек протоколов TI больше не выпускался непосредственно в форме Z-Stack 2.6.x, а был выпущен в форме профиля приложения.


Причина в том, что TI хочет, чтобы разработчики выбирали более целевой стек протоколов для разработки в соответствии с реальным приложением. Стек протоколов, такой как Z-stack Home 1.2.1, в основном состоит из следующих двух частей.


1) Core Stack, начало этой части является продолжением Z-Stack 2.5.1a и более поздних версий, его можно найти в Z-Stack Core Release Notes.txt, Version 2.6.2.


2) Стек протоколов приложения связан с профилем, который в основном связан с фактическим приложением. Стек протоколов домашней автоматизации связан с реализацией ZigBee Home Automation Profile. Точно так же Z-Stack Lighting 1.0.2 и Z-Stack Energy 1.0.1 также являются Core Stack с профилем приложения.

A. Z-Stack Home 1.2.2a разработан для продуктов, связанных с умным домом.

б) Z-Stack Lighting 1.0.2 разработана для продуктов, связанных с ZLL.

c.Z-Stack Energy 1.0.1 разработана для интеллектуального энергоснабжения, счетчиков, домашних дисплеев и других сопутствующих товаров.

d.Z-Stack Mesh 1.0.0 разработан для продуктов, связанных с частными приложениями, которые используют только стандартные функции, связанные с протоколом ZigBee, такие как маршрутизация Mesh и т. д. Уровень приложения определяется разработчиком.


После того, как ZigBee Alliance выпустил ZigBee 3.0 протокол, последний стек протоколов ZigBee Z-стек 3.0 , который в настоящее время поддерживает CC2530, CC2538, CC2652R, CC265P.



2. Как проводить тестирование и сертификацию продуктов ZigBee, что нужно понимать и какой процесс нужно выполнять?


Вот пример разработки стандартных продуктов, связанных с ZigBee Home Automation. Во-первых, когда разработчики разрабатывают продукты, они должны разрабатывать продукты в соответствии с продуктами, описанными в Спецификация профиля ZigBee Home Automation который можно скачать на сайте www.zigbee.org. После завершения разработки продукта разработчикам необходимо понять Спецификация тестирования профиля ZigBee Home Automation который также можно скачать с www.zigbee.org. В документе описаны соответствующие тестовые задания, которые необходимо протестировать конкретному продукту в Test House. Помимо двух вышеупомянутых документов, существует также документ PICS. В третьем документе описаны функции, поддерживаемые продуктами, которые необходимо сертифицировать и протестировать. Разработчики сравнивают и подтверждают функции PICS в соответствии с фактическими функциями разработанных продуктов и функциями, требуемыми в спецификации. Далее следует процесс тестирования.


1) Присоединяйтесь к ZigBee Alliance, там будет испытательная лаборатория, которая поможет пройти тест.

2) Отправьте образцы в испытательную лабораторию и заполните файл PICS.

3) После первого раунда предварительного тестирования испытательная лаборатория сообщает результаты тестирования, а разработчик изменяет образец кода. (Если нужно)

4) Проверьте модифицированный образец в испытательной лаборатории, а затем запустите формальный тест.

5) Разработчик завершает подготовку и подачу материалов заявки на онлайн-сертификацию ZigBee Alliance с помощью испытательной лаборатории.

6) Испытательная лаборатория отправляет официальный отчет об испытаниях в ZigBee Alliance. Альянс рассмотрит и выдаст сертификат.


В настоящее время существует семь испытательных лабораторий, которые могут проводить стандартное тестирование ZigBee.


  • Китайский институт стандартизации электроники (CESI)
  • Технология элементных материалов
  • Национальные технические системы, Inc. (НТС)
  • UL
  • Бюро Веритас
  • Dekra
  • TÜV Rheinland Group


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




3. Как выбрать 64-битный MAC-адрес устройства?


В CC2530 / CC2538 / CC2630 есть два адреса IEEE, один называется первичным адресом IEEE, а другой - вторичным адресом. Первичный адрес IEEE хранится на информационной странице чипа. Этот основной адрес приобретается TI у ассоциации IEEE, и каждый из них уникален. Пользователь может только читать это значение и не может стирать / изменять. Чтение адреса в стеке протокола может получить Osal_memcpy (aExtendedAddress, (uint8 *) (P_INFOPAGE + HAL_INFOP_IEEE_OSET), Z_EXTADDR_LEN). Вторичный адрес хранится на последней странице Flash, и пользователь может выполнять чтение / запись с помощью функции HalFlashRead (HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN).


Как работает стек протоколов для выбора первичного адреса IEEE или вторичного адреса в качестве MAC-адреса устройства? Конкретная операция находится в zmain_ext_addr (void).


1) Считайте адрес IEEE из NV. Если MAC-адрес уже существует (ни один из которых не равен 0xFF), то это может быть MAC-адрес.

2) Если MAC-адрес не существует в 1), его можно прочитать из места хранения вторичного адреса IEEE. Если он существует в месте хранения вторичного адреса IEEE (ни один из которых не равен 0xFF), адрес может быть записан в NV как MAC-адрес позже.

3) Если MAC-адрес не указан в пункте 2), его можно прочитать из места хранения первичного адреса IEEE. Если он существует в месте хранения первичного адреса IEEE (ни один из которых не равен 0xFF), адрес может быть записан в NV как MAC-адрес позже.

4) Если MAC-адрес не указан в пункте 3), случайным образом генерируется 64-битный переменный адрес, который записывается в NV как MAC-адрес.



4. Конечное устройство - маломощное устройство с батарейным питанием. После того, как узел отключен от сети, как запретить узлам непрерывный поиск в сети или как увеличить интервал между отправкой запросов маяков?


1) Начать поиск в сети: uint8 ZDApp_StartJoiningCycle (void)

Прекратить поиск в сети: uint8 ZDApp_StopJoiningCycle (void)

2) Измените цикл отправки Beacon Request.


Измените переменную: zgDefaultStartingScanDuration

// Значения порядка маяков

#define BEACON_ORDER_NO_BEACONS 15

#define BEACON_ORDER_4_MINUTES 14 // 245760 миллисекунд

#define BEACON_ORDER_2_MINUTES 13 // 122880 миллисекунд

#define BEACON_ORDER_1_MINUTE 12 // 61440 миллисекунд

#define BEACON_ORDER_31_SECONDS 11 // 30720 миллисекунд

#define BEACON_ORDER_15_SECONDS 10 // 15360 MSecs

#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. Как заставить конечное устройство перейти в состояние пониженного энергопотребления и как установить время сна?


После включения POWER_SAVING в определении макроса стека протоколов и последующего действия -DRFD_RCVC_ALWAYS_ON = FALSE в файле f8wConfig.cfg конечное устройство может перейти в состояние сна.


Время ожидания определяется планированием операционной системы OSAL. Каждое время сна основывается на последнем тайм-ауте события как времени сна. Подробности объясняются в функции hal_sleep стека протоколов.


Этот тайм-аут в основном делится на две категории: одна - это тайм-аут событий прикладного уровня, а другая - тайм-аут событий MAC-уровня.


1) Время ожидания прикладного уровня получается osal_next_timeout (); в функции osal_pwrmgr_powerconserve (void).

2) Время ожидания уровня MAC получается с помощью MAC_PwrNextTimeout (); в функции halSleep (uint16 osal_timeout).


6. Что нового в стеке протоколов ZigBee 3.0?


Пожалуйста, перейдите по ссылке ниже, где представлены дополнения к стеку протоколов ZigBee 3.0 по сравнению с предыдущей версией ZigBee Home Automation / ZigBee Light Link.

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


7. Подробное объяснение переключения состояний оконечного оборудования в стеке протокола TI ZigBee.

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


8. Различия между OAD и OTA в стеке протоколов TI.

OAD - это загрузка по воздуху, а OTA - по воздуху. Функции этих двух реализаций одинаковы, и обе можно назвать удаленными обновлениями программы. В раннем стандарте протокола ZigBee не было стандарта для беспроводного обновления программы узлов, но у многих клиентов есть к нему требования. Поэтому компания TI разработала набор стеков протоколов для беспроводного обновления программы и назвала его OAD. ZigBee Alliance осознал, что спрос растет, затем они также определили стандарт для беспроводных обновлений и назвали OTA, что также относится к реализации TI OAD и внесло соответствующие изменения. Поэтому в раннем стеке протоколов TI беспроводное обновление называется OAD, а позже в ZigBee Alliance оно называется OTA.


9. Если кварцевый генератор 32K не впаян в устройство с низким энергопотреблением, как изменить стек протоколов Z-Stack?

В стеке протоколов Z-Stack, стабильно ли используемый кварцевый генератор, будет проверяться в процессе инициализации. Если кварцевый генератор 32K не припаян, необходимо изменить следующий код. Стек протоколов TI Z-Stack по умолчанию использует кварцевый генератор 32K.


В файле hal_board_cfg.h #define OSC32K_CRYSTAL_INSTALLED FALSE



10. Если необходимо разработать частное приложение на основе сети ZigBee Mesh, какой стек протоколов следует выбрать?


Многие пользователи в некоторых промышленных приложениях хотят использовать только функции ячеистой сети ZigBee в своих собственных системах или продуктах, и им не нужно следовать спецификациям прикладного уровня, определенным ZigBee. Для таких требований приложения, как выбрать подходящий стек протоколов TI для разработки продукта? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx



11. При использовании CC2630 / CC2650 ZigBee для разработки, могу ли я отлаживать с помощью точки останова в коде стека ядра?

да. Вы должны загрузить файл, соответствующий коду точки останова, и открыть его заранее, а затем выполнить отладку.



12. Как координатор Zigbee выбирает подходящий канал для создания сети?

Создание сети Zigbee должно выполняться координатором. В сети Zigbee есть только один координатор. Координатор Zigbee в основном завершает выбор сетевого канала и генерацию PANID при создании сети. Чтобы выбрать канал, нужно выполнить два шага.


1) Пассивное сканирование также называется энергетическим сканированием. Пассивное сканирование означает, что координатор включает свой приемник, а затем последовательно просматривает ранее установленный список каналов. После сканирования будет получено значение энергии каждого канала. Эта энергия в основном поступает из других сетей Zigbee или других беспроводных сетей 2,4 ГГц. Координатор будет считать канал, значение энергии которого выше, чем заданное пороговое значение, как имеющий более сильные помехи, и удалит канал.

2) Активное сканирование. В каналах, оставшихся после первого раунда сканирования, запросы маяков отправляются последовательно. Если соответствующий пакет данных маяка получен, считается, что в канале есть другие устройства Zigbee. Наконец, координатор выберет PANID, который не имеет других сетей Zigbee, или канал с наименьшим количеством сетей Zigbee, чтобы установить свою собственную сеть и установить PANID, который не конфликтует.


13. Как удалить пользовательский интерфейс и использовать стек протоколов TI Zigbee 3.0 для быстрого перехода в режим разработки продукта?

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



14. Как оптимизировать Flash и RAM CC2530?

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


CC2650, CC2538, CC2652R, CC2630, Z-стек, CC2530

Оставьте сообщение

Оставьте сообщение
Если вы заинтересованы в наших продуктах и ​​хотите узнать более подробную информацию, оставьте сообщение здесь, и мы ответим вам, как только сможем.

Дом

Продукт

skype

whatsapp