Escrito pelo consultor sênior RF-star XCODER (um ensaísta da We-Media)
1. Devido às diferenças entre as versões da pilha de protocolo TI ZigBee, como escolher a pilha de protocolo certa para o desenvolvimento do produto?
A pilha de protocolo ZigBee da TI Z-Stack foi desenvolvida de Z-Stack 0.1 para Z-Stack 2.5.1a e posterior Z-Stack Home 1.2.1, Z-Stack Lighting 1.0.2, Z-Stack Energy 1.0. 1, Z-Stack Mesh 1.0.0. No processo de atualização da pilha de protocolos, a TI realizou principalmente dois aspectos da pilha de protocolos.
1) Adicione alguns novos recursos de acordo com a Especificação ZigBee da ZigBee Alliance.
Por exemplo, ZigBee 2007 é uma rota em forma de árvore. No ZigBee Pro, o roteamento Mesh está saindo e algoritmos de roteamento como MTO e Source Routing são propostos. A TI adiciona novos recursos correspondentes à pilha de protocolo para corrigir alguns bugs relacionados nas especificações, como aqueles com descrições ambíguas.
2) Para corrigir o bug na própria pilha de protocolo TI ZigBee.
A diferença da pilha de protocolo entre uma versão e a versão anterior pode ser encontrada na Nota de Lançamento.
Após a versão do Z-Stack 2.5.1a, a pilha do protocolo TI não continuou a ser lançada diretamente na forma de Z-Stack 2.6.x, mas foi lançada na forma de Perfil de aplicativo.
O motivo é que a TI deseja que os desenvolvedores escolham uma pilha de protocolos mais direcionada para desenvolvimento de acordo com a aplicação real. A pilha de protocolo como Z-stack Home 1.2.1 inclui principalmente as duas partes a seguir.
1) O Core Stack, o início desta parte é a versão de continuação do Z-Stack 2.5.1ae posterior, pode ser encontrado no Z-Stack Core Release Notes.txt, Versão 2.6.2.
2) A pilha de protocolo do aplicativo está relacionada ao perfil, que está principalmente relacionado ao aplicativo real. A pilha de protocolos de automação residencial está relacionada à implementação do perfil de automação residencial ZigBee. Da mesma forma, Z-Stack Lighting 1.0.2 e Z-Stack Energy 1.0.1 também são um Core Stack com um perfil de aplicativo.
a.Z-Stack Home 1.2.2a foi desenvolvido para produtos relacionados a casa inteligente.
b.Z-Stack Lighting 1.0.2 é desenvolvido para produtos relacionados ao ZLL.
c.Z-Stack Energy 1.0.1 foi desenvolvido para energia inteligente, medidor, display doméstico e outros produtos relacionados.
d.Z-Stack Mesh 1.0.0 foi desenvolvido para produtos relacionados a aplicativos privados, que usam apenas recursos relacionados ao protocolo ZigBee padrão, como roteamento de malha, etc. A camada de aplicativo é definida pelo desenvolvedor.
Depois que a ZigBee Alliance lançou o ZigBee 3.0 protocolo, a pilha de protocolo ZigBee mais recente é Z-Stack 3.0 , que atualmente suporta CC2530, CC2538, CC2652R, CC265P.
2.Como fazer o teste ZigBee e a certificação de produtos, o que precisa ser entendido e qual processo precisa ser seguido?
Há um exemplo sobre o desenvolvimento de produtos padrão relacionados à automação residencial ZigBee. Para começar, quando os desenvolvedores desenvolvem produtos, eles devem desenvolver produtos de acordo com os produtos descritos no Especificação do perfil de automação residencial ZigBee que pode ser baixado em www.zigbee.org. Depois de concluir o desenvolvimento do produto, os desenvolvedores precisam entender o Especificação de teste de perfil de automação residencial ZigBee que também pode ser baixado em www.zigbee.org. O documento descreve os itens de teste relevantes que um produto específico precisa ser testado na Casa de Teste. Há também um documento PICS além dos dois documentos acima. O terceiro documento descreve as funções suportadas pelos produtos que precisam ser certificados e testados. Os desenvolvedores comparam e confirmam os recursos no PICS de acordo com as funções reais dos produtos desenvolvidos e as funções exigidas na Especificação. A seguir está o processo de teste.
1) Junte-se à ZigBee Alliance, haverá um laboratório de testes que poderá ajudar na realização do teste.
2) Envie as amostras para o laboratório de testes e preencha o arquivo PICS.
3) Após a primeira rodada de pré-teste, o laboratório de teste retorna os resultados do teste e o desenvolvedor modifica o código da amostra. (Se necessário)
4) Verifique a amostra modificada no laboratório de teste e, a seguir, inicie o teste formal.
5) O desenvolvedor conclui a preparação e o envio dos materiais de solicitação de certificação online da ZigBee Alliance com a ajuda do laboratório de teste.
6) O laboratório de teste submete um relatório de teste formal à ZigBee Alliance. A aliança revisará e emitirá um certificado.
Atualmente, existem sete laboratórios de teste que podem fazer os testes ZigBee padrão.
https://zigbeealliance.org/certification/testing-providers/
3.Como selecionar o endereço MAC de 64 bits do dispositivo?
Existem dois endereços IEEE em CC2530 / CC2538 / CC2630, um é denominado endereço IEEE primário e o outro é denominado endereço secundário. O endereço IEEE primário é armazenado na página de informações do chip. Este endereço primário é adquirido pela TI da IEEE Association e cada um deles é único. O usuário só pode ler este valor e não pode apagar / modificar. Ler o endereço na pilha de protocolo pode obter Osal_memcpy (aExtendedAddress, (uint8 *) (P_INFOPAGE + HAL_INFOP_IEEE_OSET), Z_EXTADDR_LEN). O endereço secundário é armazenado na última página do Flash, e o usuário pode realizar Leitura / Escrita por meio da função HalFlashRead (HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN).
Como a pilha de protocolo opera para selecionar o endereço IEEE primário ou o endereço secundário como o endereço MAC do dispositivo? A operação específica está em zmain_ext_addr (void).
1) Leia o endereço IEEE de NV. Se o endereço MAC já existe (nenhum dos quais é 0xFF), então pode ser o endereço MAC.
2) Se o endereço MAC não existir em 1), ele pode ser lido do local de armazenamento do endereço IEEE secundário. Se ele existir no local de armazenamento do endereço IEEE secundário (nenhum dos quais é 0xFF), o endereço pode ser escrito em NV como o endereço MAC posteriormente.
3) Se o endereço MAC não estiver em 2), ele pode ser lido do local de armazenamento do endereço IEEE primário. Se ele existir no local de armazenamento do endereço IEEE primário (nenhum dos quais é 0xFF), o endereço pode ser escrito em NV como o endereço MAC posteriormente.
4) Se o endereço MAC não estiver em 3), um endereço variável de 64 bits é gerado aleatoriamente, escrito no NV como o endereço MAC.
4.End Device é um dispositivo de baixo consumo de energia com fonte de alimentação por bateria. Depois que o nó é desconectado da rede, como proibir os nós de pesquisar continuamente na rede ou como aumentar o intervalo entre o envio de Solicitações de Beacon?
1) Comece a pesquisar rede: uint8 ZDApp_StartJoiningCycle (vazio)
Pare de pesquisar na rede: uint8 ZDApp_StopJoiningCycle (vazio)
2) Altere o ciclo de envio de Solicitação de Beacon.
Modifique a variável: zgDefaultStartingScanDuration
// Beacon Order Values
#define BEACON_ORDER_NO_BEACONS 15
# define BEACON_ORDER_4_MINUTES 14 // 245760 milissegundos
# define BEACON_ORDER_2_MINUTES 13 // 122880 milissegundos
# define BEACON_ORDER_1_MINUTE 12 // 61440 milissegundos
#define BEACON_ORDER_31_SECONDS 11 // 30720 milissegundos
#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.Como fazer o dispositivo final entrar no status de baixo consumo de energia e como definir o tempo de espera?
Depois de habilitar POWER_SAVING na definição de macro da pilha de protocolo e operar -DRFD_RCVC_ALWAYS_ON = FALSE no arquivo f8wConfig.cfg, o Dispositivo final pode entrar no status de hibernação.
O tempo de sono é determinado pela programação do sistema operacional OSAL. Cada tempo de hibernação é baseado no último Event Timeout como o tempo de hibernação. Os detalhes são explicados na função hal_sleep da pilha de protocolo.
Esse tempo limite é dividido principalmente em duas categorias, uma é o tempo limite dos eventos da camada de aplicativo e a outra é o tempo limite dos eventos da camada MAC.
1) O tempo de timeout da camada de aplicação é obtido por osal_next_timeout (); na função de osal_pwrmgr_powerconserve (void).
2) O tempo de timeout da camada MAC é obtido por MAC_PwrNextTimeout (); na função de halSleep (uint16 osal_timeout).
6. O que há de novo na pilha de protocolo ZigBee 3.0?
Consulte o link abaixo, que apresenta as adições da pilha de protocolo ZigBee 3.0 em comparação com o ZigBee Home Automation / ZigBee Light Link anterior.
https://www.ti.com/lit/an/swra615a/swra615a.pdf?ts=1627190581608
7. Explicação detalhada da comutação de estado do equipamento terminal na pilha de protocolo TI ZigBee.
8. As diferenças entre OAD e OTA na pilha do protocolo TI.
OAD é download pelo ar e OTA é pelo ar. As funções dessas duas implementações são as mesmas e ambas podem ser chamadas de atualizações remotas do programa. No primeiro padrão de protocolo ZigBee, não há um padrão para a atualização over-the-air do programa de nó, mas muitos clientes têm requisitos para isso. Portanto, a TI desenvolveu um conjunto de pilhas de protocolo para a atualização over-the-air do programa e o nomeou OAD. A ZigBee Alliance percebeu que a demanda estava aumentando, então eles também especificaram um padrão para atualizações over-the-air e nomearam OTA, que também se referia à implementação do TI OAD e fez as modificações relevantes. Portanto, na pilha de protocolo de TI inicial, a atualização over-the-air é chamada de OAD e, posteriormente, na ZigBee Alliance, é chamada de OTA.
9. Se o oscilador de cristal de 32K não estiver soldado em um dispositivo que não seja de baixa potência, como modificar a pilha de protocolos Z-Stack?
Na pilha de protocolo Z-Stack, se o oscilador de cristal usado é estável será verificado durante o processo de inicialização. Se o oscilador de cristal de 32K não estiver soldado, o código a seguir precisará ser modificado. A pilha de protocolo TI Z-Stack usa um oscilador de cristal de 32K por padrão.
No arquivo de hal_board_cfg.h, #define OSC32K_CRYSTAL_INSTALLED FALSE
10. Se um aplicativo privado precisar ser desenvolvido com base na rede ZigBee Mesh, qual pilha de protocolo deve ser selecionada?
Muitos usuários, em algumas aplicações industriais, desejam apenas usar as funções da rede mesh ZigBee em seus próprios sistemas ou produtos, e não precisam seguir as especificações da camada de aplicação definidas pela ZigBee. Para tais requisitos de aplicação, como escolher a pilha de protocolo TI apropriada para o desenvolvimento do produto? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx
11.Ao usar CC2630 / CC2650 ZigBee para desenvolver, posso depurar com um ponto de interrupção no código da pilha do Core?
sim. Você deve baixar o arquivo correspondente ao código do ponto de interrupção e abri-lo com antecedência e, em seguida, depurar.
12.Como o coordenador Zigbee seleciona o canal apropriado para criar a rede?
A criação de uma rede Zigbee deve ser realizada por um coordenador. Uma rede Zigbee possui apenas um coordenador. O coordenador Zigbee conclui principalmente a seleção do canal de rede e a geração de PANID ao criar a rede. Existem duas etapas para selecionar o canal.
1) A varredura passiva também é chamada de Varredura de energia. A varredura passiva significa que o coordenador liga seu receptor e, em seguida, faz a varredura sequencialmente na lista de canais definida anteriormente. Após a varredura, o valor de energia de cada canal será obtido. Esta energia vem principalmente de outras redes Zigbee ou outro sinal de redes sem fio de 2,4 GHz. O coordenador irá considerar o canal cujo valor de energia é superior ao valor limite predefinido como tendo maior interferência e removerá o canal.
2) Varredura ativa. Nos canais restantes após a primeira rodada de varredura, as Solicitações de Beacon são enviadas em sequência. Se o pacote de dados Beacon correspondente for recebido, considera-se que existem outros dispositivos Zigbee no canal. Finalmente, o coordenador escolherá um PANID que não possua outras redes Zigbee, ou o canal com a menor rede Zigbee para estabelecer sua própria rede e definir um PANID que não entre em conflito.
13.Como excluir a IU e usar a pilha de protocolo TI Zigbee 3.0 para entrar rapidamente no modo de desenvolvimento de produto?
https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/146528
14.Como otimizar o Flash e a RAM do CC2530?
http://www.ti.com/lit/wp/swra635/swra635.pdf
CC2650, CC2538, CC2652R, CC2630, Z-Stack, CC2530