Escrito por el asesor senior de RF-star XCODER (un ensayista de We-Media)
1. Debido a las diferencias entre las versiones de la pila de protocolos de TI ZigBee, ¿cómo elegir la pila de protocolos adecuada para el desarrollo de productos?
La pila de protocolos TI ZigBee Z-Stack se desarrolla a partir de Z-Stack 0.1 a Z-Stack 2.5.1ay, posteriormente, Z-Stack Home 1.2.1, Z-Stack Lighting 1.0.2, Z-Stack Energy 1.0. 1, malla Z-Stack 1.0.0. En el proceso de actualización de la pila de protocolos, TI ha realizado principalmente dos aspectos de la pila de protocolos.
1) Agregue algunas características nuevas de acuerdo con la Especificación ZigBee de ZigBee Alliance.
Por ejemplo, ZigBee 2007 es una ruta en forma de árbol. En ZigBee Pro, el enrutamiento de malla está saliendo y se proponen algoritmos de enrutamiento como MTO y enrutamiento de origen. TI agrega las nuevas características correspondientes a la pila de protocolos para corregir algunos errores relacionados en las especificaciones, como aquellos con descripciones ambiguas.
2) Para corregir el error en la pila del protocolo TI ZigBee.
La diferencia de la pila de protocolos entre una versión y la versión anterior se puede encontrar en la Nota de la versión.
Después de la versión de Z-Stack 2.5.1a, la pila de protocolos de TI no se siguió publicando directamente en forma de Z-Stack 2.6.x, sino que se publicó en forma de perfil de aplicación.
La razón es que TI quiere que los desarrolladores elijan una pila de protocolos más específica para el desarrollo de acuerdo con la aplicación real. La pila de protocolos como Z-stack Home 1.2.1 incluye principalmente las dos partes siguientes.
1) El Core Stack, el comienzo de esta parte es la versión de continuación de Z-Stack 2.5.1ay posterior, se puede encontrar en Z-Stack Core Release Notes.txt, Versión 2.6.2.
2) La pila de protocolos de la aplicación está relacionada con el perfil, que se relaciona principalmente con la aplicación real. La pila de protocolos de automatización del hogar está relacionada con la implementación del perfil de automatización del hogar de ZigBee. Del mismo modo, Z-Stack Lighting 1.0.2 y Z-Stack Energy 1.0.1 también son un Core Stack con un perfil de aplicación.
a.Z-Stack Home 1.2.2a está desarrollado para productos relacionados con el hogar inteligente.
b.Z-Stack Lighting 1.0.2 está desarrollado para productos relacionados con ZLL.
c.Z-Stack Energy 1.0.1 está desarrollado para energía inteligente, medidor, pantalla en el hogar y otros productos relacionados.
d.Z-Stack Mesh 1.0.0 está desarrollado para productos relacionados con aplicaciones privadas, que solo utiliza características relacionadas con el protocolo ZigBee estándar, como enrutamiento Mesh, etc. La capa de aplicación la define el desarrollador.
Después de que ZigBee Alliance lanzó el ZigBee 3.0 protocolo, la última pila de protocolos ZigBee es Z-Stack 3.0 , que actualmente admite CC2530, CC2538, CC2652R, CC265P.
2.¿Cómo realizar las pruebas y la certificación ZigBee de productos, qué se debe entender y qué proceso se debe seguir?
Hay un ejemplo sobre el desarrollo de productos estándar relacionados con ZigBee Home Automation. Para empezar, cuando los desarrolladores desarrollan productos, deben desarrollar productos de acuerdo con los productos descritos en el Especificación del perfil de automatización del hogar ZigBee que se puede descargar en www.zigbee.org. Después de completar el desarrollo del producto, los desarrolladores deben comprender el Especificación de prueba de perfil de automatización del hogar ZigBee que también se puede descargar en www.zigbee.org. El documento describe los elementos de prueba relevantes que un producto específico necesita para ser probado en la casa de pruebas. También hay un documento PICS además de los dos documentos anteriores. El tercer documento describe las funciones admitidas por los productos que deben certificarse y probarse. Los desarrolladores comparan y confirman las características en PICS de acuerdo con las funciones reales de los productos desarrollados y las funciones requeridas en la Especificación. El siguiente es el proceso de prueba.
1) Únase a ZigBee Alliance, habrá un laboratorio de pruebas que puede ayudar a completar la prueba.
2) Envíe muestras al laboratorio de pruebas y complete el archivo PICS.
3) Después de la primera ronda de pruebas previas, el laboratorio de pruebas retroalimenta los resultados de la prueba y el desarrollador modifica el código de muestra. (Si es necesario)
4) Verifique la muestra modificada en el laboratorio de pruebas y luego comience la prueba formal.
5) El desarrollador completa la preparación y presentación de los materiales de solicitud de certificación en línea de ZigBee Alliance con la ayuda del laboratorio de pruebas.
6) El laboratorio de pruebas envía un informe de prueba formal a ZigBee Alliance. La alianza revisará y emitirá un certificado.
En la actualidad, hay siete laboratorios de pruebas que pueden realizar las pruebas estándar de ZigBee.
https://zigbeealliance.org/certification/testing-providers/
3.¿Cómo seleccionar la dirección MAC de 64 bits del dispositivo?
Hay dos direcciones IEEE en CC2530 / CC2538 / CC2630, una se llama dirección IEEE primaria y la otra se llama dirección secundaria. La dirección IEEE principal se almacena en la página de información del chip. TI compra esta dirección principal a la Asociación IEEE, y cada una de ellas es única. El usuario solo puede leer este valor y no puede borrar / modificar. Al leer la dirección en la pila de protocolos se puede obtener Osal_memcpy (aExtendedAddress, (uint8 *) (P_INFOPAGE + HAL_INFOP_IEEE_OSET), Z_EXTADDR_LEN). La dirección secundaria se almacena en la última página de Flash, y el usuario puede realizar lectura / escritura a través de la función HalFlashRead (HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN).
¿Cómo funciona la pila de protocolos para seleccionar la dirección IEEE primaria o la dirección secundaria como dirección MAC del dispositivo? La operación específica está en zmain_ext_addr (void).
1) Lea la dirección IEEE de NV. Si la dirección MAC ya existe (ninguna de las cuales es 0xFF), entonces puede ser la dirección MAC.
2) Si la dirección MAC no existe en 1), se puede leer desde la ubicación de almacenamiento de la dirección IEEE secundaria. Si existe en la ubicación de almacenamiento de la dirección IEEE secundaria (ninguna de las cuales es 0xFF), la dirección se puede escribir en NV como la dirección MAC más adelante.
3) Si la dirección MAC no está en 2), se puede leer desde la ubicación de almacenamiento de la dirección IEEE primaria. Si existe en la ubicación de almacenamiento de la dirección IEEE primaria (ninguna de las cuales es 0xFF), la dirección se puede escribir en NV como la dirección MAC más adelante.
4) Si la dirección MAC no está en 3), se genera aleatoriamente una dirección variable de 64 bits, que se escribe en el NV como la dirección MAC.
4.End Device es un dispositivo de bajo consumo con fuente de alimentación por batería. Después de que el nodo se desconecta de la red, ¿cómo prohibir que los nodos busquen continuamente en la red o cómo aumentar el intervalo entre el envío de solicitudes de balizas?
1) Comience a buscar en la red: uint8 ZDApp_StartJoiningCycle (void)
Deje de buscar en la red: uint8 ZDApp_StopJoiningCycle (void)
2) Cambie el ciclo de envío de solicitud de baliza.
Modifique la variable: zgDefaultStartingScanDuration
// Valores de orden de baliza
#define BEACON_ORDER_NO_BEACONS 15
#define BEACON_ORDER_4_MINUTES 14 // 245760 milisegundos
#define BEACON_ORDER_2_MINUTES 13 // 122880 milisegundos
#define BEACON_ORDER_1_MINUTE 12 // 61440 milisegundos
#define BEACON_ORDER_31_SECONDS 11 // 30720 milisegundos
#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.¿Cómo hacer que el dispositivo final entre en estado de bajo consumo y cómo configurar el tiempo de suspensión?
Después de habilitar POWER_SAVING en la definición de macro de pila de protocolos, y luego operar -DRFD_RCVC_ALWAYS_ON = FALSE en el archivo f8wConfig.cfg, el dispositivo final puede ingresar al estado de suspensión.
El tiempo de reposo está determinado por la programación del sistema operativo OSAL. Cada tiempo de reposo se basa en el último tiempo de espera del evento como tiempo de reposo. Los detalles se explican en la función hal_sleep de la pila de protocolos.
Este tiempo de espera se divide principalmente en dos categorías, una es el tiempo de espera de los eventos de la capa de aplicación y la otra es el tiempo de espera de los eventos de la capa MAC.
1) El tiempo de espera de la capa de aplicación se obtiene mediante osal_next_timeout (); en la función de osal_pwrmgr_powerconserve (void).
2) El tiempo de espera de la capa MAC se obtiene mediante MAC_PwrNextTimeout (); en la función de halSleep (uint16 osal_timeout).
6. ¿Qué hay de nuevo en la pila de protocolos ZigBee 3.0?
Consulte el enlace a continuación, que presenta las adiciones de la pila de protocolos ZigBee 3.0 en comparación con el anterior ZigBee Home Automation / ZigBee Light Link.
https://www.ti.com/lit/an/swra615a/swra615a.pdf?ts=1627190581608
7. Explicación detallada de la conmutación de estado del equipo terminal en la pila de protocolos TI ZigBee.
8. Las diferencias entre OAD y OTA en la pila de protocolos de TI.
OAD es Over the Air Download y OTA es Over the Air. Las funciones de estas dos implementaciones son las mismas y ambas pueden denominarse actualizaciones remotas del programa. En el primer estándar del protocolo ZigBee, no existe un estándar para la actualización inalámbrica del programa de nodo, pero muchos clientes tienen requisitos para ello. Por lo tanto, TI ha desarrollado un conjunto de pilas de protocolos para la actualización inalámbrica del programa y lo ha denominado OAD. ZigBee Alliance se dio cuenta de que la demanda estaba aumentando, luego también especificó un estándar para actualizaciones inalámbricas y lo nombró OTA, que también se refería a la implementación de TI OAD e hizo modificaciones relevantes. Por lo tanto, en la pila de protocolos de TI temprana, la actualización inalámbrica se llama OAD, y más tarde en ZigBee Alliance, se llama OTA.
9. Si el oscilador de cristal de 32K no está soldado en un dispositivo que no es de baja potencia, ¿cómo modificar la pila del protocolo Z-Stack?
En la pila de protocolos Z-Stack, durante el proceso de inicialización se comprobará si el oscilador de cristal utilizado es estable. Si el oscilador de cristal de 32K no está soldado, es necesario modificar el siguiente código. La pila del protocolo TI Z-Stack utiliza un oscilador de cristal de 32K de forma predeterminada.
En el archivo de hal_board_cfg.h, #define OSC32K_CRYSTAL_INSTALLED FALSE
10. Si es necesario desarrollar una aplicación privada basada en la red ZigBee Mesh, ¿qué pila de protocolos debe seleccionarse?
Muchos usuarios, en algunas aplicaciones industriales, solo desean utilizar las funciones de la red de malla ZigBee en sus propios sistemas o productos, y no necesitan seguir las especificaciones de la capa de aplicación definidas por ZigBee. Para tales requisitos de aplicación, ¿cómo elegir la pila de protocolos de TI adecuada para el desarrollo de productos? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx
11.Al usar CC2630 / CC2650 ZigBee para desarrollar, ¿puedo depurar con un punto de interrupción en el código de la pila Core?
Si. Debe descargar el archivo correspondiente al código de punto de interrupción y abrirlo con anticipación, luego depurar.
12. ¿Cómo selecciona el coordinador de Zigbee el canal apropiado para crear la red?
La creación de una red Zigbee debe ser completada por un coordinador. Una red Zigbee tiene un solo coordinador. El coordinador de Zigbee completa principalmente la selección del canal de red y la generación de PANID al crear la red. Hay dos pasos para seleccionar el canal.
1) El escaneo pasivo también se llama Energy Scan. El escaneo pasivo significa que el coordinador enciende su receptor y luego escanea secuencialmente en la lista de canales previamente configurada. Después de escanear, se obtendrá el valor energético de cada canal. Esta energía proviene principalmente de otras redes Zigbee u otras señales de redes inalámbricas de 2,4 GHz. El coordinador considerará que el canal cuyo valor de energía es superior al valor umbral preestablecido tiene una mayor interferencia y eliminará el canal.
2) Escaneo activo. En los canales que quedan después de la primera ronda de escaneo, las solicitudes de baliza se envían en secuencia. Si se recibe el paquete de datos Beacon correspondiente, se considera que hay otros dispositivos Zigbee en el canal. Finalmente, el coordinador elegirá un PANID que no tenga otras redes Zigbee, o el canal con menos red Zigbee para establecer su propia red y establecer un PANID que no entre en conflicto.
13.¿Cómo eliminar la IU y usar la pila de protocolos TI Zigbee 3.0 para ingresar rápidamente al modo de desarrollo de productos?
https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/146528
14.¿Cómo optimizar el Flash y la RAM de CC2530?
http://www.ti.com/lit/wp/swra635/swra635.pdf
CC2650, CC2538, CC2652R, CC2630, Z-Stack, CC2530