Está en la página 1de 31

Machine Translated by Google

Firmware DWM1001
Guía del usuario
Basado en la placa DWM1001-DEV

Versión 1.4

Este documento está sujeto a cambios sin previo aviso

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4


Machine Translated by Google

Guía del usuario del firmware DWM1001

TABLA DE CONTENIDO

DESCARGO DE RESPONSABILIDAD................................................. .................................................... .........................5

1. INTRODUCCIÓN................................................ .................................................... ...................8

1.1 VISIÓN GENERAL ............................................. .................................................... ..........................8


1.2 QUÉ ESTÁ INCLUIDO EN LA VERSIÓN DE FIRMWARE ........................................... ..........................................8

2 DESCRIPCIÓN GENERAL DEL FIRMWARE.................................... .................................................... ......... 9

2.1 ARQUITECTURA DE ALTO NIVEL .................................................. .................................................... .............9


2.2 DESCRIPCIÓN GENERAL DE LA BIBLIOTECA PANS ........................................... .................................................... ...10
2.3 COMPONENTES Y FUNCIONAMIENTO DE LA BIBLIOTECA PANS ........................................... ..........................11
2.3.1 SoftDevice y controlador BLE.................................................... .................................................... 11 2.3.2 eCos RTOS
y BSP........................................... .................................................... ..............11
2.3.3 Controlador DW1000 ............................................. .................................................... ..........11 2.3.4 Indicación

estacionaria ........................... .................................................... ..........................11 2.3.5 Operación de la red


PANS .................. .................................................... ..............................11 2.3.6 Puesta en
marcha ............... .................................................... ...............................................11 2.3. 7 Gestión de
RTLS ............................................... .................................................... .........12 2.3.8 Solucionador de TWR/ Motor de
localización ........................... .................................................... ........12

3 CADENA DE HERRAMIENTAS DE FIRMWARE .................................. .................................................... ...... 13

3.1 DESCRIPCIÓN GENERAL DE LA CADENA DE HERRAMIENTAS .................................. .................................................... ...............13


3.2 CONTENIDO EN LA CADENA DE HERRAMIENTAS.................................... .................................................... ..........13

3.2.1 Parte de hardware de la cadena de herramientas .................................. .................................................... 14 3.2.2 Parte del
software de la cadena de herramientas ............................... .................................................... ..14 3.2.3 Paquete de aplicación de
ejemplo para DWM1001.................................... ..........................15 3.3 GUÍAS PARA FLASHEAR EL DWM1001 CON IMAGEN
DE FÁBRICA ............. .................................................... ..15

4 EJEMPLOS DE APLICACIÓN DE USUARIO ............................................... ............................................. 17

4.1 VISIÓN GENERAL ............................................. .................................................... ..............................17 4.2 EJEMPLO DE


APLICACIÓN DE USUARIO “C CODE API” ......... .................................................... ..........................17 4.2.1 Particionamiento de

imagen de firmware .................. .................................................... .......................17 4.2.2 Compilación/ depuración de la aplicación


de usuario en el firmware ............... ..................................18 4.3 EJEMPLO DE APLICACIONES
UART ........... .................................................... ..........................................22
4.3.1 Conexión UART .............................................. .................................................... ..............23

4.3.2 Ejemplos de UART ............................................. .................................................... ...........24 4.4 EJEMPLO DE


APLICACIONES DE SPI ........................... .................................................... .............................26
4.4.1 Conexión SPI .................................................. .................................................... ...............26
4.4.2 Ejemplo SPI ................................................. .................................................... ...................27

5 REFERENCIAS................................................... .................................................... ...................... 28

6 HISTORIA DEL DOCUMENTO ............................................... .................................................... ........ 29

6.1 HISTORIAL DE REVISIÓN ............................................... .................................................... .....................29

7 REGISTRO DE CAMBIOS ............................................. .................................................... ...................... 30

8 MÁS INFORMACIÓN ............................................... .................................................... .... 31

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 2


Machine Translated by Google

Guía del usuario del firmware DWM1001

LISTA DE TABLAS

TABLA 1 CONEXIONES DE PASADORES DE UART .................................. .................................................... ..........23

TABLA 2 CONEXIONES DE PASADORES SPI ........................................... .................................................... .....................26


TABLA 3: HISTORIA DEL DOCUMENTO ............................................... .................................................... .....................29

LISTA DE FIGURAS

FIGURA 1 ARQUITECTURA DE ALTO NIVEL DEL FIRMWARE DWM1001 VS. SOFTWARE DEL USUARIO ................................9
FIGURA 2 COMPONENTES DE LA BIBLIOTECA DE FIRMWARE DEL DWM1001 .................................. ....................................10
FIGURA 3: CADENA DE HERRAMIENTAS Y COMPONENTES DE FUENTE EN EL DESARROLLO DE FIRMWARE DWM1001 ................................13

FIGURA 4: VERSIÓN DE LA CADENA DE HERRAMIENTAS INTEGRADA DE GNU ARM PARA DESCARGAR .................................. ..........14

FIGURA 5: ESTRUCTURA DEL PAQUETE A BORDO DEL DWM1001 .................................. ........................................15

FIGURA 6 PLACA DE DESARROLLO DWM1001 : CONEXIÓN MICRO USB ........................................... ..............................15


FIGURA 7 MAPA DE DIRECCIONES FLASH DWM1001 ........................................... .................................................... ...17
FIGURA 8: ESTUDIO INTEGRADO DE SEGGER EN LA INAUGURACIÓN DEL PROYECTO .................................. ....................................18
FIGURA 9: SES - MENÚ DE CONFIGURACIÓN DE LA SOLUCIÓN DE APERTURA .................................. ....................................19
FIGURA 10: SES: CONFIGURACIÓN DE LA RUTA DE INSTALACIÓN DE LA CADENA DE HERRAMIENTAS INTEGRADA DE GNU ARM ...........19
FIGURA 11: SES - COMPILACIÓN DEL PROYECTO ........................................... .................................................... .......20
FIGURA 12: SES - VENTANA DE DEPURACIÓN ........................................... .................................................... ..........22
FIGURA 13 DISPOSITIVO J-LINK EN WINDOWS........................................... .................................................... ..........23
FIGURA 14: PUERTO COM DE DISPOSITIVO DWM1001 A TRAVÉS DE J-LINK .................................. ..........................................23
FIGURA 15: CONEXIÓN DE DWM1001 A RASPBERRY PI 3 SOBRE PINES DE CABEZAL .......................................... .............24
FIGURA 16: CONEXIÓN AL DISPOSITIVO DWM1001 A TRAVÉS DE UART SHELL ........................................... ......................25

FIGURA 17: EJECUTAR EJEMPLO DE UART SIMPLE EN RASPBERRY PI 3 ...................................... ....................................26


FIGURA 18: EJECUTAR EL EJEMPLO DE SPI SIMPLE EN RASPBERRY PI 3 .................................. ..........................................27

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 3


Machine Translated by Google

Guía del usuario del firmware DWM1001

INFORMACIÓN DEL DOCUMENTO

Descargo de responsabilidad

Decawave se reserva el derecho de cambiar las especificaciones del producto sin previo aviso. En la medida de lo posible, los cambios en la
funcionalidad y las especificaciones se publicarán en hojas de erratas específicas del producto o en nuevas versiones de este documento. Se
recomienda a los clientes que consulten el sitio web de Decawave para obtener las actualizaciones más recientes de este producto.

Nota: A los efectos de este documento, "DWM1001" también puede referirse a "DWM1001C". La única diferencia entre ambos módulos es
que DWM1001C está certificado y su memoria OTP está calibrada para cumplir con las normas FCC/ETSI.

Copyright © 2017 Decawave Ltd

PÓLIZA DE SOPORTE VITAL

Los productos Decawave no están autorizados para su uso en aplicaciones críticas para la seguridad (como soporte vital) donde se esperaría
razonablemente que una falla del producto Decawave causara lesiones personales graves o la muerte.
Los clientes de Decawave que usan o venden productos Decawave de esa manera lo hacen bajo su propio riesgo y aceptan indemnizar
completamente a Decawave y sus representantes por cualquier daño que surja del uso de productos Decawave en tales aplicaciones críticas para
la seguridad.

¡Precaución! Dispositivo sensible a ESD.

Se debe tener precaución al manipular el dispositivo para evitar daños permanentes.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 4


Machine Translated by Google

Guía del usuario del firmware DWM1001

DESCARGO DE RESPONSABILIDAD

(1) Este descargo de responsabilidad se aplica al software proporcionado por Decawave Ltd. ("Decawave") en apoyo
de su producto de módulo DWM1001 ("Módulo") todo como se establece en la cláusula 3 del presente ("Software
Decawave").

(2) El software Decawave se proporciona de las siguientes dos maneras: -


(a) precargado en el Módulo en el momento de la fabricación por Decawave ("Firmware");
(b) suministrado por separado por Decawave ("Paquete de software").

(3) El software Decawave consta de los siguientes componentes (a) a (d) inclusive:

(a) El Decawave Positioning and Networking Stack ("PANS"), disponible como una biblioteca acompañada de
un código fuente que permite un nivel de personalización del usuario.
El software PANS está preinstalado y se ejecuta en el módulo tal como se suministra, y permite
"etiquetas" móviles, "anclas" fijas y "puertas de enlace" que, en conjunto, ofrecen el sistema de ubicación
en tiempo real de alcance bidireccional DWM1001 ("DRTLS")
La red.

(b) Decawave DRTLS Manager, que es una aplicación de Android™ para la configuración de nodos DRTLS
(nodos basados en el Módulo) a través de Bluetooth™.

(c) La aplicación Decawave DRTLS Gateway , que proporciona una función de puerta de enlace (en una
Raspberry Pi ®) que enruta la ubicación DRTLS y el tráfico de datos del sensor a una red basada en IP
(p. ej., LAN), y consta de los siguientes componentes:
• Módulo de kernel de Linux de puerta de enlace DRTLS
• Demonio de puerta de enlace DRTLS
• Proxy de puerta de enlace DRTLS
• Agente MQTT de puerta de enlace DRTLS
• Administrador web de puerta de enlace DRTLS

(d) Ejemplos de funciones de API de host, también diseñadas para ejecutarse en una Raspberry Pi, que
muestran cómo controlar el módulo desde un microprocesador de host externo.

(4) Decawave Software utiliza los siguientes componentes de terceros y están incorporados en el firmware o incluidos en el
paquete de software, según sea el caso: -

(a) El software PANS incorpora Nordic SoftDevice S132-SD-v3 versión 3.0.0 (producción) que se incluye en el
Firmware y también se incluye en el Paquete de software;

(b) El software PANS utiliza eCos RTOS que se incluye en el paquete de software. eCos RTOS se proporciona
bajo los términos de una licencia de código abierto
que se puede encontrar en: http://ecos.sourceware.org/license-overview.html;

(c) El software PANS utiliza una función CRC-32 de código abierto de FreeBSD que se incluye en el paquete de
software. Esta función CRC-32 se proporciona bajo los términos de la licencia BSD que se puede
encontrar en:
https://github.com/freebsd/freebsd/blob/386ddae58459341ec56760470780581
4a2128a57/DERECHOS DE AUTOR;

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 5


Machine Translated by Google

Guía del usuario del firmware DWM1001

(d) La aplicación Decawave DRTLS Manager utiliza software de código abierto que se proporciona como
código fuente en el paquete de software. Este software de fuente abierta se proporciona bajo los
términos de la Licencia Apache v2.0 que se puede encontrar en http://www.apache.org/licenses/
LICENSE-2.0;

(e) La aplicación Decawave DRTLS Gateway utiliza los siguientes componentes de terceros: -

(i) El kernel de Linux que se proporciona como código fuente en el paquete de


software. El kernel de Linux se proporciona bajo los términos de la licencia GPLv2
que se puede encontrar en: https://www.gnu.org/licenses/old licenses/
gpl-2.0.en.html y como tal, el componente del controlador DWM1001 de la
aplicación DRTLS Gateway se proporciona bajo los mismos términos de licencia;

(ii) La biblioteca de JavaScript three.js, cuya versión descargable está disponible aquí
https://threejs.org/, se proporciona bajo los términos de la licencia MIT que se
puede encontrar en https://opensource.org/licenses /MIT.

Los artículos (a), (b), (c), (d) y (e) en esta sección 4 se denominan colectivamente como el "Tercer
software de fiesta”

(5) El software Decawave incorpora el código fuente licenciado a Decawave por Leaps sro, un proveedor
de Decawave, que está incluido en el firmware y el paquete de software en formato binario y/o
código fuente, según sea el caso, según los términos de una licencia. acuerdo celebrado entre
Decawave y Leaps sro

(6) Por el presente, Decawave le otorga una licencia mundial gratuita, no exclusiva e intransferible sin
derecho a sublicenciar para diseñar, fabricar, hacer fabricar, comercializar, vender, vender o
disponer de otro modo de productos que incorporen el software Decawave, para modificar el
Software Decawave o incorporar el Software Decawave en otro software y para diseñar, fabricar,
hacer fabricar, comercializar, vender, vender o disponer de cualquier otro modo de productos que
incorporen dicho software modificado o incorporado SIEMPRE QUE el uso por su parte del Software
de Terceros tal como se suministró por Decawave está sujeto a los términos y condiciones de los
respectivos acuerdos de licencia como se establece en la cláusula 4 del presente Y SIEMPRE QUE
el software Decawave se use solo en sistemas y productos basados en productos semiconductores
Decawave. NO SE OTORGA NINGUNA OTRA LICENCIA, EXPRESA O IMPLÍCITA, POR
ESTOPPEL O DE CUALQUIER OTRO DERECHO DE PROPIEDAD INTELECTUAL DE
DECAWAVE, NI NINGUNA LICENCIA A CUALQUIER TECNOLOGÍA DE TERCEROS O DERECHO
DE PROPIEDAD INTELECTUAL, SE OTORGA EN EL PRESENTE DOCUMENTO, incluidos, entre
otros, cualquier derecho de patente, derechos de autor, trabajo de máscara derecho u otro derecho
de propiedad intelectual relacionado con cualquier combinación, máquina o proceso en el que se
utilicen los productos semiconductores Decawave o el software Decawave.

(7) La descarga, la aceptación de la entrega o el uso del software Decawave indica su acuerdo con los
términos de (i) la licencia concedida en la cláusula 6 del presente, (ii) los términos de este Aviso
legal y (iii) los términos adjuntos al Software de terceros . Si no está de acuerdo con todos estos
términos, no descargue, acepte la entrega ni utilice el software Decawave.

(8) El software Decawave está destinado únicamente a ayudarlo a desarrollar sistemas que incorporen
productos semiconductores Decawave. Usted entiende y acepta que Ud.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 6


Machine Translated by Google

Guía del usuario del firmware DWM1001

sigue siendo responsable de usar su análisis, evaluación y juicio independientes en el diseño de sus
sistemas y productos. LA DECISIÓN DE UTILIZAR EL SOFTWARE DE DECAWAVE EN SU TOTALIDAD
O EN PARTE EN SUS SISTEMAS Y PRODUCTOS ES TOTALMENTE DE USTED Y DECAWAVE NO
ACEPTA RESPONSABILIDAD ALGUNA POR DICHA DECISIÓN.

(9) EL SOFTWARE DECAWAVE SE PROPORCIONA "TAL CUAL". DECAWAVE NO OFRECE GARANTÍAS O


REPRESENTACIONES CON RESPECTO AL SOFTWARE DECAWAVE O EL USO DEL SOFTWARE
DECAWAVE, EXPLÍCITAS, IMPLÍCITAS O LEGALES, INCLUYENDO LA EXACTITUD O LA INTEGRIDAD.
DECAWAVE NIEGA CUALQUIER GARANTÍA DE TÍTULO Y CUALQUIER GARANTÍA IMPLÍCITA DE
COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN DE
CUALQUIER DERECHO DE PROPIEDAD INTELECTUAL DE TERCEROS CON RESPECTO AL
SOFTWARE DECAWAVE O EL USO DEL MISMO.

(10) DECAWAVE NO SERÁ RESPONSABLE Y NO LO DEFENDERÁ O INDEMNIZARÁ CONTRA CUALQUIER


RECLAMACIÓN DE INFRACCIÓN DE TERCEROS QUE ESTÉ RELACIONADA O BASADA EN EL
SOFTWARE DECAWAVE O EL USO DEL SOFTWARE DECAWAVE. EN NINGÚN CASO DECAWAVE
SERÁ RESPONSABLE DE CUALQUIER DAÑO REAL, ESPECIAL, INCIDENTAL, CONSECUENTE O
INDIRECTO, CUALQUIERA QUE SEA CAUSADO, INCLUYENDO SIN LIMITACIÓN A LA GENERALIDAD
DE LO ANTERIOR, PÉRDIDA DE GANANCIAS ESPERADAS, FONDO DE COMERCIO, REPUTACIÓN,
RECIBOS O CONTRATOS COMERCIALES, COSTOS DE ADQUISICIÓN DE BIENES O SERVICIOS
SUSTITUTOS; PÉRDIDA DE USO, DATOS O BENEFICIOS; O INTERRUPCIÓN DEL NEGOCIO),
PÉRDIDAS O GASTOS DERIVADOS DE RECLAMACIONES DE TERCEROS. ESTAS LIMITACIONES
SE APLICARÁN INDEPENDIENTEMENTE DE LA FORMA DE ACCIÓN, YA SEA POR ESTATUTO,
CONTRATO O AGRAVIO, INCLUYENDO NEGLIGENCIA O CUALQUIER OTRA FORMA DE ACCIÓN, Y
SI DECAWAVE HA SIDO ADVERTIDO O NO DE LA POSIBILIDAD DE DICHOS DAÑOS QUE SURJAN
DE CUALQUIER MANERA DEL SOFTWARE DECAWAVE O EL USO DEL SOFTWARE DECAWAVE.

(11) Usted reconoce y acepta que es el único responsable del cumplimiento de todos los requisitos legales,
reglamentarios y relacionados con la seguridad relacionados con sus productos y cualquier uso del
software Decawave en sus aplicaciones, independientemente de cualquier información o soporte
relacionado con las aplicaciones que pueda proporcionarse. por Decawave.

(12) Decawave se reserva el derecho de hacer correcciones, mejoras, mejoras y


otros cambios en su software, incluido el software Decawave, en cualquier momento.

Dirección de envio: Decawave Ltd.,


cámaras de adelaida,
Calle Pedro,
Dublín D08 T6YA
IRLANDA.

Copyright (c) 15 de noviembre de 2017 por Decawave Limited. Reservados todos los derechos. Todas las marcas
registradas son propiedad de sus respectivos dueños

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 7


Machine Translated by Google

Guía del usuario del firmware DWM1001

1 INTRODUCCIÓN

1.1 Resumen

El desarrollo de una red de posicionamiento en tiempo real utilizando tecnología UWB no es un proyecto
baladí. La intención de DWM1001 es simplificar el desarrollo de UWB RTLS proporcionando una solución
completa en un solo módulo.

El módulo DWM1001 viene precargado con firmware incorporado que proporciona funcionalidad y red de sistema de
ubicación en tiempo real (RTLS) de alcance bidireccional (TWR). El módulo se puede configurar y controlar a través
de su API, a la que se puede acceder a través de varias interfaces diferentes, lo que permite flexibilidad al diseñador
del producto. Los detalles de la API son
descrito en el documento [2]. Además, Decawave también proporciona el firmware del módulo en forma de bibliotecas
y código fuente junto con un entorno de construcción para que el usuario pueda personalizar la operación y/o agregar
sus propias funciones.

Este documento describe lo que se incluye en el firmware DWM1001 y cómo estos diversos
los elementos cooperan entre sí y explica cómo los usuarios pueden agregar sus propias personalizaciones.
El objetivo de esta guía de usuario es ayudar a los usuarios con su desarrollo basado en la placa
DWM1001-DEV. Después de leer esta guía, los desarrolladores deberían poder compilar, construir y ejecutar el
firmware DWM1001, incluidas las modificaciones personalizadas.

1.2 Qué se incluye en la versión de firmware

Cada versión de firmware DWM1001 incluye:

1) El firmware DWM1001 precompilado, incluida la biblioteca de pila de posicionamiento y redes de


firmware (PANS) para el desarrollo integrado, se proporciona en el paquete integrado DWM1001.
La arquitectura del firmware y la biblioteca y su partición básica se describen en la Sección 2.

2) Cadena de herramientas de firmware, descrita en la Sección 3. Se presentan los pasos detallados


para preparar la cadena de herramientas necesaria, descargar el paquete de aplicación de usuario
de firmware y compilar/construir/flashear su propia aplicación.
3) Ejemplos simples que demuestran cómo usar las API de DWM1001. Estos se describen en la
Sección 4.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 8


Machine Translated by Google

Guía del usuario del firmware DWM1001

2 DESCRIPCIÓN GENERAL DEL FIRMWARE

2.1 Arquitectura de alto nivel

El firmware integrado en el módulo DWM1001 proporciona básicamente dos tipos de funciones: la API de PANS y la biblioteca de PANS
que proporciona funciones de nivel inferior. La API de PANS incluye la API genérica (estas incluyen diferentes conjuntos de API para
diferentes interfaces y el analizador correspondiente, que actúa como traductor entre las API de usuario (C, UART, SPI y BLE) y la biblioteca
de PANS). La Figura 1 muestra la arquitectura y los componentes del firmware DWM1001.

Figura 1 Arquitectura de alto nivel del firmware DWM1001 frente al software del usuario

Como se puede ver en la Figura 1, además de usar el propio módulo DWM1001, el módulo DWM1001 se puede conectar físicamente
a un hardware de control externo, ya sea por cable o
de forma inalámbrica a través de la radio Bluetooth. La API de PANS proporciona a los usuarios cuatro conjuntos de API para llamar a
las funciones de la biblioteca de PANS a través de diferentes interfaces:

• Código de usuario C: un espacio de usuario integrado que permite incluir un código específico de la aplicación.
código en el archivo de la aplicación de usuario provisto en el firmware DWM1001, utilizando la cadena de herramientas
de desarrollo de firmware proporcionada por Decawave, consulte la Sección 4.2.

• SPI: uso de un dispositivo host (por ejemplo, PC) para comunicarse con el módulo DWM1001 mediante solicitudes y respuestas de
formato TLV (formato Tipo-Longitud-Valor, detallado en [2]) a través del bus SPI, para configuración y transmisión de datos.

• UART: uso de un dispositivo host (por ejemplo, PC) para comunicar el módulo DWM1001 a través del bus UART, para configuración
y transmisión de datos. Dos modos de comunicación

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 9


Machine Translated by Google

Guía del usuario del firmware DWM1001

se proporcionan a través de la interfaz UART: modo genérico UART que utiliza solicitudes y respuestas en
formato TLV; y el modo UART Shell usando los comandos de solicitud de terminal.

• BLE: uso de un dispositivo Bluetooth Low Energy (BLE) (por ejemplo, una tableta Android) para controlar y configurar a
través de la radio Bluetooth.

Todos estos conjuntos de API proporcionan el mismo conjunto de llamadas de funciones genéricas, es decir, la API genérica.
El analizador de API genérico actúa como traductor entre los cuatro conjuntos de API y el API genérico. Cuando se llama
a un comando de API desde cualquiera de las interfaces de API anteriores, el comando pasa por el analizador de API
genérico que traduce el comando de API en llamadas de funciones de API genéricas. Si el comando API necesita un
mensaje de respuesta, el DWM1001 responde
a través de la misma interfaz.

El uso de código C, API UART y SPI se detallan con ejemplos simples en la Sección 4.
Se proporciona información más detallada en el documento API [2].

Nota 1: las interfaces externas, incluidas la UART, la SPI y la BLE, son utilizadas por las API externas en la biblioteca PANS
para la conexión del host. La aplicación de usuario integrada a través de la API de código C no puede hacer uso de las
interfaces externas debido a razones de compatibilidad.

Nota 2: Decawave no proporciona el código fuente de la biblioteca ni admite ningún uso de la biblioteca PANS, excepto a
través de la API de PANS, que se describe en el documento API [2]

2.2 Descripción general de la biblioteca PANS

La figura 2 ilustra la arquitectura de la biblioteca PANS en detalle. De abajo hacia arriba, los componentes principales son
SoftDevice y la pila de protocolos BLE de Nordic Semiconductor, el sistema eCos RTOS con controladores integrados de los
componentes, los protocolos de la capa IoT y la capa de aplicaciones. La Sección 2.3 ofrece una breve introducción a cada
uno de los componentes de la biblioteca y las operaciones en la capa de aplicación.

Figura 2 Componentes de la biblioteca de firmware DWM1001

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 10


Machine Translated by Google

Guía del usuario del firmware DWM1001

2.3 Componentes y operaciones de la Biblioteca PANS

La biblioteca PANS incluye algunos componentes de firmware para controlar el módulo DWM1001.
Algunas operaciones se implementan en base a estos componentes para realizar la función de posicionamiento y conexión
en red.

2.3.1 Dispositivo de software y controlador BLE

SoftDevice es una biblioteca rica en características de Nordic Semiconductor para BLE. El SoftDevice empleado en el DWM1001
es el S132, un SoftDevice multienlace simultáneo para roles de Central, Periférico, Emisor y Observador en aplicaciones BLE.
El controlador/biblioteca BLE se incluye en el S132 SoftDevice, lo que proporciona al DWM001 funciones BLE para crear
topologías de red complejas, comunicación y actualización de firmware inalámbrica [1].

2.3.2 eCos RTOS y BSP

eCos RTOS es un sistema operativo gratuito de código abierto en tiempo real. El sistema eCos proporciona
muy buen rendimiento en tiempo de ejecución y el paquete de soporte de placa (BSP) para el DWM1001
plataforma de hardware Incluye todos los controladores necesarios para los componentes del módulo (es decir,
acelerómetro, BLE y DW1000).

2.3.3 Controlador DW1000

Controlador API DW1000 de Decawave. Para obtener más información, consulte la Guía de la API del software DW1000 [2].

2.3.4 Indicación estacionaria

En el módulo DWM1001 se implementa un componente acelerómetro LIS2DH12TR de dirección esclava 0x19 como
dispositivo periférico I2C, es decir, las direcciones de lectura y escritura son 0x33 y 0x32 respectivamente. Este acelerómetro
proporciona una función de indicación "estacionaria" simple.
La etiqueta basada en DWM1001 se puede configurar para usar el modo de respuesta o de bajo consumo . Estará en modo
de bajo consumo cuando esté parado y entrará en modo de respuesta cuando esté en movimiento. Se puede acceder a los
datos del acelerómetro en tiempo real a través del comando Shell API provisto y las funciones I2C en la API de código C,
consulte [2] para obtener información detallada.

2.3.5 Operación de la red PANS

La pila de redes PANS permite el descubrimiento, la unión y la salida. Los marcos UWB son
enviado de acuerdo con los formatos de trama estándar 802.15.4. La funcionalidad de la capa MAC
implementada en el módulo DWM1001, como se describe en el documento Descripción general del sistema DWM1001
[3], controla el mecanismo para unir, dejar, instalar, poner en marcha los nodos y el protocolo de rango bidireccional
asociado y la transferencia de datos. Se admiten varios casos de uso diferentes, por ejemplo, sígueme, seguimiento de activos
a gran escala, navegación, red doméstica.

2.3.6 Puesta en marcha

DRTLS se puede poner en marcha con la aplicación de Android Decawave RTLS Manager.
Después del encendido, los nuevos nodos se anunciarán a través de Bluetooth. Administrador de Decawave RTLS
La aplicación se utiliza para conectarse al nodo y configurarlo (por ejemplo, su función como ancla o etiqueta; sus coordenadas
x, y, z si es un ancla y otros atributos).

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 11


Machine Translated by Google

Guía del usuario del firmware DWM1001

2.3.7 Gestión de RTLS

La aplicación de gestión RTLS admite la configuración de módulos DWM1001 como etiquetas y anclas que
participarán en TWR. Las etiquetas se extenderán a anclas cercanas y usarán un motor de ubicación interno para
calcular la posición. La implementación completa se detalla en el documento Descripción general del sistema
DWM1001 [3].

2.3.8 Solucionador de TWR / Motor de ubicación

El solucionador TWR/Motor de ubicación en las etiquetas calcula las coordenadas x, y y z de la etiqueta y se


implementa en el módulo DWM1001. Los resultados de TWR entre la etiqueta y los anclajes relativos se envían
al solucionador para el cálculo de la posición de la etiqueta. Los resultados de TWR son
accesible a través de las API. El motor de ubicación interno se puede desactivar y, en su lugar, se puede
realizar un cálculo de ubicación personalizado por el usuario, por ejemplo, agregando filtrado adicional de
cambio de algoritmos LE/solver.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Pagina 12


Machine Translated by Google

Guía del usuario del firmware DWM1001

3 CADENA DE HERRAMIENTAS DE FIRMWARE

3.1 Descripción general de la cadena de herramientas

La imagen de Virtual Box ahora está obsoleta y la metodología recomendada para el desarrollo de firmware es usar
Segger Embedded Studio.

La cadena de herramientas de firmware de Decawave incluye las siguientes partes:


• Segger Embedded Studio y GNU ARM Embedded Toolchain 5.4 2016q3
• Paquete integrado DWM1001.

Segger Embedded Studio es ideal para el desarrollo de DWM1001, ya que ofrece una licencia de uso comercial gratuita
para el MCU nrf51-52 de Nordic Semiconductors.

https:// www.segger.com/ news/ segger-embedded-studio-ide-now-free-for-nordic-sdk-users/

La cadena de herramientas se puede utilizar para desarrollar una nueva aplicación con funcionalidades adicionales que
residirán en el módulo DWM1001 y se ejecutarán sobre la biblioteca PANS y la funcionalidad del módulo principal.

3.2 Contenido en la cadena de herramientas

La figura 3 muestra la cadena de herramientas utilizada en el desarrollo del firmware DWM1001.

El usuario debe instalar GNU ARM Embedded Toolchain (arm-none-eabi-gcc versión 5.4.1 para
compatibilidad cruzada) y Segger Embedded Studio (SES).

El paquete integrado DWM1001 distribuido contiene los archivos fuente de la aplicación de usuario y las bibliotecas
necesarias para compilar y construir el firmware de usuario DWM1001. También se proporciona un proyecto SES
para cada ejemplo.

Figura 3: Cadena de herramientas y componentes de origen en el desarrollo de firmware DWM1001

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 13


Machine Translated by Google

Guía del usuario del firmware DWM1001

3.2.1 Parte de hardware de la cadena de herramientas

Como se ilustra en color verde en la Figura 3, una PC con sistema operativo Microsoft Windows y un DWM1001-
La placa DEV es necesaria como hardware. La placa DWM1001-DEV proporciona el módulo
DWM1001 como destino y un depurador J-Link.

3.2.2 Parte del software de la cadena de herramientas

Para realizar el desarrollo de aplicaciones de usuario para dwm1001, se debe descargar e instalar el siguiente
software en la computadora con Windows. Recomendamos utilizar la ruta de instalación predeterminada.

• Segger Embedded Studio v4.12


https://www.segger.com/downloads/embedded-studio

Ruta de instalación predeterminada:


C:\Archivos de programa\SEGGER\SEGGER Embedded Studio para ARM 4.12

• Segger J-Flash Lite (paquete de software J-Link)


https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack

Ruta de instalación predeterminada:


C:\Archivos de programa (x86)\SEGGER\JLink_V622g

• Cadena de herramientas integrada GNU ARM 5.4 2016q3


https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

Ruta de instalación predeterminada:


C:\Archivos de programa (x86)\Herramientas GNU ARM Embedded\5.4 2016q3\bin

Para compatibilidad cruzada con la biblioteca PANS compilada, asegúrese de que la versión de GNU ARM
Embedded Toolchain corresponda a 5.4 2016q3 - Figura 4

Figura 4: Versión de GNU ARM Embedded Toolchain para descargar

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 14


Machine Translated by Google

Guía del usuario del firmware DWM1001

3.2.3 Paquete de aplicación de ejemplo para DWM1001

ÿÿÿ ejemplos ÿ // Directorio de ejemplos


ÿÿÿ dwm-simple-
example ÿ ÿ ÿÿÿ dwm-simple.c // Ejemplo sencillo
ÿ ÿ ÿÿÿÿ dwm-simple-example.emProject
ÿ // archivo fuente C //
archivo de proyecto SES
ÿÿÿ
Salida ÿ // Directorio de salida
ÿ ÿ ÿ ÿ ÿÿÿ dwm-range-iot
ÿÿÿ compilador // Salida del compilador: .o
ÿÿÿ enlazador // Salida del enlazador: .elf

ÿ ÿÿÿ temporizador dwm


ÿ ÿÿÿ dwm-uart
ÿÿÿ incluir ÿÿÿ // Archivo de encabezado PANS
lib ÿÿÿ // Biblioteca compilada de PANS
nordicsemi ÿÿÿ // SDK nórdico 12.1.0
recuperación ÿÿÿ // Binarios de referencia de PANS
utilidades ÿÿÿ // Imágenes complementarias de firmware
generar_ejemplo_hex // Controlador de dispositivo de software para BLE

Figura 5: Estructura del paquete a bordo del DWM1001

El paquete integrado DWM1001 se proporciona para su descarga en el sitio web de Decawave [5].

Consulte la Figura 5 para ver el contenido detallado del paquete integrado del DWM1001.
Sus componentes principales son la biblioteca DWM1001 PANS, los archivos binarios de firmware, como el dispositivo
de software NRF y el gestor de arranque, y los ejemplos de aplicaciones de usuario.

En el firmware DWM1001, la biblioteca eCos y otro software de terceros constituyen los PANS
biblioteca como se introdujo en la Sección 2.2. Estos archivos fuente no se proporcionan en el paquete integrado.

También se proporciona el SDK de semiconductores nórdicos para nrf52832, ya que los usuarios pueden
necesitarlo para el desarrollo de aplicaciones. Tenga en cuenta que la versión SDK utilizada en PANS es: SDK v 12.1.0

3.3 Guías para flashear el DWM1001 con imagen de fábrica

DWM1001 viene con una imagen de fábrica pre-flasheada del firmware. Esta imagen se proporciona en el paquete
integrado del DWM1001: /dwm/recovery/DWM1001_PANS_R2.1.hex. A continuación se describen los pasos necesarios
para flashear la imagen de fábrica en la placa DWM1001-DEV.

La herramienta J-Flash Light se puede usar para mostrar la imagen de fábrica a través del DWM1001-DEV en algunas
plataformas diferentes.

1) Conecte el módulo con un cable de datos micro USB, como se muestra en la Figura 6.

Figura 6 Placa DEV DWM1001: conexión micro USB


© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 15
Machine Translated by Google

Guía del usuario del firmware DWM1001

2) Destelle la imagen del módulo DWM1001


una. Abra J-Flash Lite b. Elija
nrf52832_XXAA como dispositivo y SWD como interfaz, use la velocidad predeterminada 1000. Haga clic en "Aceptar".

C. Haga clic en "Borrar chip" para realizar un borrado completo del chip.

d. En Archivo de datos, haga clic y busque el archivo hexadecimal proporcionado en el paquete integrado DWM1001 (/
dwm/recovery/DWM1001_PANS_R2.1.hex) para flashear, haga clic en “Program
Dispositivo".

Los LED de las placas deben estar activos una vez que se complete la actualización flash.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 16


Machine Translated by Google

Guía del usuario del firmware DWM1001

4 EJEMPLOS DE APLICACIÓN DE USUARIO

4.1 Resumen

Como se ilustra en la Figura 1, DWM1001 ofrece muchas formas de utilizar sus funciones API. En esta sección se
enumeran ejemplos que muestran el uso de las API. En código C, UART Shell, UART
Los ejemplos genéricos y SPI para obtener la ubicación del nodo a través de la API son
presentado. El documento API [2] proporciona información más detallada.

Se necesita una herramienta para abrir el puerto serie entre el dispositivo host y el módulo DWM1001 sobre
UART en el desarrollo del firmware. En Windows, se puede usar PuTTY; en Linux con una Raspberry Pi, por
ejemplo, se puede usar minicom. La tasa de baudios de UART en el módulo DWM1001 es 115200 bps y la
configuración es 8N1.

4.2 Ejemplo de aplicación de usuario “API de código C”

El ejemplo de "API de código C" es una aplicación que se ejecuta como parte del firmware integrado y utiliza los
recursos del sistema integrados en el microcontrolador Cortex M4F del módulo. La aplicación se ejecuta como
una aplicación de subprocesos en un entorno de subprocesos múltiples y se incluye en el sistema operativo en
tiempo real eCos de la biblioteca PANS.

4.2.1 Particionamiento de imagen de firmware

El tamaño de flash de la MCU (nRF52832) utilizada en el módulo DWM1001 es de 512 KB desde la


dirección 0 a 0x80000. La partición de la memoria flash se ilustra como en la Figura 7.

Figura 7 Mapa de direcciones flash DWM1001

El firmware DWM1001 incluye las siguientes partes: Nordic S132 Softdevice, Bootloader,
Medio ambiente, FW1 y FW2:

• Softdevice, de 124 KB de tamaño a partir de la dirección 0, proporciona Bluetooth de bajo consumo


solución de pila de protocolo central y periférico.

• Bootloader, con un tamaño de 4 KB a partir de la dirección 0x1F000, es un administrador de


firmware que controla la elección de FW1 y FW2 durante el arranque/restablecimiento.

• El entorno, de 8 KB de tamaño a partir de la dirección 0x20000, es una sección flash reservada para que el
firmware almacene información de configuración del usuario. Apagar/encender, reiniciar o volver a actualizar
el firmware no borrará la sección Medio ambiente en el flash. para borrar el

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 17


Machine Translated by Google

Guía del usuario del firmware DWM1001

sección de entorno, se necesita una operación de borrado completo introducida en la Sección 3.3. O
alternativamente, se puede usar el comando de shell "primero" introducido en la API de PANS [2].

• FW1, con un tamaño de 136 KB a partir de la dirección 0x22000, es una pieza de firmware para la
actualización de firmware inalámbrica (OTA).

• FW2, tamaño de hasta 240 KB a partir de la dirección 0x44000, es la imagen de firmware que incluye la
biblioteca PANS completa y la aplicación de usuario de código c, donde la aplicación de usuario actúa
como un subproceso independiente en el firmware y puede ocupar hasta 3 KB de RAM y Flash de 60
KB. Al reconstruir/actualizar el firmware de la aplicación del usuario, se está operando todo el FW2.

4.2.2 Compilación/depuración de la aplicación de usuario en el firmware

Para agregar funciones personalizadas por el usuario, se debe agregar el código personalizado del usuario
a los archivos de la aplicación y se debe reconstruir todo el proyecto. En ejemplos/dwm-simple/dwm-simple.c se
proporciona un ejemplo simple de creación de una aplicación de usuario de código C. El ejemplo de dwm-simple
se puede editar, compilar y depurar con Segger Embedded Studio.

4.2.2.1 Configuración de la ruta de la cadena de herramientas de Segger Embedded Studio

Abra el archivo "examples/dwm-simple/dwm-simple.emProject" con Segger Embedded Studio.


El proyecto debe cargarse como en

Figura 8: Segger Embedded Studio en la apertura del proyecto

PANS se desarrolló y compiló inicialmente GNU ARM Embedded Toolchain 5.4 2016q3.
Se requiere usar exactamente la misma versión para evitar cualquier problema de retrocompatibilidad.

El primer paso consiste en configurar la cadena de herramientas del compilador al compilador GCC
externo instalado previamente según la sección 3.2.2.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 18


Machine Translated by Google

Guía del usuario del firmware DWM1001

1. Haga clic con el botón derecho en el nombre de la solución en la sección del elemento del proyecto, a la izquierda de la
ventana principal del SES. El nombre de la solución se encuentra en la parte superior de la estructura del proyecto: dwm-simple.
Consulte la figura 9.

Figura 9: SES - Abrir el menú de configuración de la solución

2. Haga clic en "opción" dentro del menú de apertura

3. Establezca la variable "Directorio de cadena de herramientas" en la ruta del directorio bin de GNU
Arm Embedded Toolchain instalado previamente. La Figura 10 muestra la configuración de la ruta de instalación
predeterminada.

Figura 10: SES: configuración de la ruta de instalación de GNU ARM Embedded Toolchain

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 19


Machine Translated by Google

Guía del usuario del firmware DWM1001

4. ruta de instalación. Haga clic en Aceptar para guardar el nuevo valor.

4.2.2.2 Segger Embedded Studio: Cree y actualice la aplicación de usuario

Para construir el proyecto, abra el menú "construir" desde la barra de menú SES y haga clic en "construir dwm-
simple" o presione "F7". El registro de la compilación se muestra en las ventanas de resultados. Si la compilación tiene
éxito, el mapa de memoria mcu de destino también se muestra como información, con la cantidad restante y ocupada de
memoria flash/RAM. Consulte la figura 11.

El usuario puede personalizar y volver a compilar fácilmente el ejemplo "dwm-simple". Siga las instrucciones a
continuación para realizar una personalización inicial de PANS.

Figura 11: SES - Compilando el proyecto

1. Dentro del archivo dwm-simple.c, busque la función app_thread_entry

Dentro de la función de entrada de hilo de la aplicación:

2. Agregue lo siguiente a las variables locales:


dwm_pos_t pos; 3.
Encuentra while(1) y agrega la llave:
dwm_pos_get(&pos);
printf("x=%ld, y=%ld, z=%ld, qf=%u \n", pos.x, pos.y, pos.z, pos.qf);

imprimirf("\t\t tiempo=%lu \n", dwm_systime_us_get());

Nota: printf enviará el mensaje a través de la interfaz UART cuando el modo Shell esté habilitado.
Ahorrar.
Cree el proyecto y elimine los errores.

Este cambio pretende leer la información de posición en el dispositivo e imprimir el mensaje en el terminal. Se agrega
un temporizador del sistema al final del mensaje para indicar la hora del mensaje.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 20


Machine Translated by Google

Guía del usuario del firmware DWM1001

El archivo fuente dwm/examples/dwm-simple/dwm-simple.c se puede personalizar para agregar/modificar


funcionalidades Todas las funciones API de código C disponibles se enumeran en el archivo de
encabezado dwm/include/dwm.h. Se presenta información más detallada de la API de código C en la Guía API
DWM1001 [2].

El ejemplo compilado se puede mostrar en el dispositivo de destino directamente desde SES. Conecte el dispositivo
DWM1001-Dev a través de USB a la computadora y haga clic en "objetivo" en la barra de menú.
La opción "Descargar dwm-simple" se puede utilizar para cargar el ejemplo.

El resultado de la compilación se puede encontrar en el directorio Examplesd/dwm-simple/Output.


Si la compilación es exitosa, SES creará una imagen compilada:
/dwm-simple/Output/linker/dwm-simple_fw2.bin

Tenga en cuenta que SES solo compila y produce una imagen correspondiente a FW2. Si el usuario desea actualizar la
biblioteca PANS completa en un dispositivo DWM1001 en blanco, entonces el dispositivo de software, el cargador de
arranque y FW1 deberán actualizarse antes que FW2, como se describe en la sección 4.1.

Para simplificar esta tarea y generar un archivo hexadecimal único, se proporciona un script por lotes en el directorio /
utilities.

Abra el archivo generate_example_hex.bat con un editor de texto y modifique los siguientes campos según el
proyecto que esté modificando y compilando actualmente.

SET ejemplo_nombre="dwm-simple"
SET fw2_path="..\examples\dwm-simple\Output\linker\dwm simple_fw2.bin"

Guarde el archivo y ejecute el archivo generate_example_hex haciendo doble clic en él.

Se creará un nuevo archivo de imagen que combina el dispositivo de software, el cargador de arranque, FW1 y FW2
personalizado:
/dwm-simple/Salida/dwm1001_dwm-simple.hex.

Este nuevo archivo se puede flashear usando J-Lite como se explica en la Sección 3.3.

4.2.2.3 Segger Embedded Studio: Depurar la aplicación del usuario

SES también admite la depuración. Para iniciar el modo de depuración, haga clic en "Depurar" en la barra de menú o
presione F5.

Tenga en cuenta que se debe conectar un DWM1001-Deb a la computadora para iniciar el modo de depuración con éxito. El
dispositivo se actualiza automáticamente con el último proyecto compilado cuando se inicia la depuración.

Como se muestra en la Figura 12, SES tiene las opciones y características predeterminadas que normalmente ofrece un
depurador Con el widget central, el usuario puede configurar puntos de interrupción y ejecutar la aplicación a través del
código. El programa de ensamblaje equivalente se muestra en el widget izquierdo.
En el widget superior derecho, tenga en cuenta que la lista de puntos de interrupción predeterminados contiene el ARM V7M

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 21


Machine Translated by Google

Guía del usuario del firmware DWM1001

excepciones

Figura 12: SES - Ventana de depuración

Recomendamos deshabilitar las excepciones V7M, ya que se activarán automáticamente dentro de la biblioteca
compilada e interferirán con la depuración de la aplicación del usuario. Para deshabilitarlos, haga clic derecho en
"excepción V7M" como se muestra en la Figura 12.

Nota 1: se proporcionan algunas opciones de compilación en la función dwm_user_start(), con nombres de


función de dwm_XXXX_compile(), donde XXXX es el nombre del componente. Deshabilitar estas funciones puede
deshabilitar los componentes correspondientes en el firmware DWM1001.

Nota 2: es posible utilizar puntos de interrupción para depurar el firmware. Sin embargo, el usuario debe tener
mucho cuidado porque las interrupciones del dispositivo de software nRF52 son de máxima prioridad, y si hay
actividad BLE, sus interrupciones entrarán en conflicto con la interrupción del usuario, por lo que el BLE debe
desactivarse o sus interrupciones deben enmascararse. Deshabilitar la función dwm_ble_compile() puede deshabilitar
la compilación de BLE para anular las operaciones de BLE durante la depuración. La función se puede volver a
habilitar después de la depuración.

Nota 3: SWO debug printf no es compatible con la placa DWM1001 DEV.

4.3 Ejemplo de aplicaciones UART

La biblioteca PANS proporciona funciones API a través de la interfaz UART. La conexión y


© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 22
Machine Translated by Google

Guía del usuario del firmware DWM1001

aquí se presentan ejemplos simples.

4.3.1 Conexión UART

La placa DWM1001 DEV proporciona acceso UART a través del conector USB y los pines del conector externo. Ambos
accesos se introducen aquí.

4.3.1.1 Conexión UART a través del puerto COM por USB

La conexión UART se puede configurar simplemente a través de un cable de datos USB como se muestra en la Figura 6.
Para encontrar el nombre del dispositivo de la placa DWM1001 DEV en el sistema Windows:
1) Dispositivo abierto e impresoras,
2) Encuentra el dispositivo J-Link:

Figura 13 Dispositivo J-Link en Windows


3) Haga doble clic en el ícono J-Link, vaya a la pestaña Hardware y busque el puerto COM con el número como
nombre del dispositivo (por ejemplo, en la Figura 14 a continuación, el nombre del dispositivo J-Link es COM28).

Figura 14: Puerto COM del dispositivo DWM1001 a través de J-Link

En diferentes sistemas Linux, los dispositivos UART pueden mostrar diferentes nombres.

4.3.1.2 Conexión UART mediante conector externo pines Tx y Rx

Además de usar un cable USB para conectarse, los pines de cabecera externos proporcionados en J10 de la placa
DEV DWM1001 también proporcionan la interfaz UART. La Tabla 1 muestra los pines necesarios en la conexión UART.

Tabla 1 Conexiones de pines UART

Pin para usar en DWM1001 DEV Pin a conectar


Conector J10 Función
Alfiler 6 TIERRA TIERRA

Alfiler 8 RXD TXD


Alfiler 10 TXD RXD

Para Raspberry Pi 3 con conexión de pines de cabecera, el nombre del dispositivo es /dev/serial0.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 23


Machine Translated by Google

Guía del usuario del firmware DWM1001

La conexión entre la placa DWM1001 DEV y una Raspberry Pi 3 (modelo B) se muestra en la Figura 15Figura
15.

Figura 15: Conexión de DWM1001 a Raspberry Pi 3 a través de pines de cabecera

Nota: Los pines en J10 de la placa DWM1001 DEV son compatibles con los pines de encabezado 1-26
del conector J8 de Raspberry Pi 3.

4.3.2 Ejemplos de UART

Se puede acceder a la interfaz UART a través de dos modos, el modo Shell y el modo Genérico.
Tanto el modo genérico como el modo Shell se pueden usar para comunicarse con el módulo DWM1001 a
través de la conexión UART. El modo predeterminado del UART DWM1001 es el modo genérico. Los dos modos
son transferibles:

Modo genérico a modo Shell: presione "Enter" dos veces en un segundo, o ingrese dos bytes [0x0D, 0x0D] en
un segundo.

Modo Shell a modo Genérico: ingrese el comando "salir".

Para obtener más información sobre los dos modos de la API de UART, consulte la Guía de la API de DWM1001 [2].

4.3.2.1 Ejemplo del modo UART Shell

En una raspberry pi, para conectarse al dispositivo, realice lo siguiente:

ÿ minicom -D /dev/serial0

Cuando vea "Dispositivo o recurso ocupado", intente varias veces hasta que funcione.

Si la conexión a través de UART es exitosa, se mostrará el mensaje "Bienvenido a minicom" en la terminal. Ahora
presione la tecla "Enter" dos veces en un segundo para ingresar al modo de shell UART. "dwm>" debería aparecer
en la terminal cuando todo esto esté hecho.

Para ejecutar el comando UART Shell para dwm_pos_get, escriba "apg" seguido de la tecla "Enter". Se imprimirá la
posición del módulo en todo el DRTLS, consulte la Figura 16. Escriba "?" seguido de la tecla "Enter" para obtener
información de ayuda en el modo UART Shell. Se presenta más información sobre los comandos de UART Shell en
la Guía API DWM1001 [2].

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 24


Machine Translated by Google

Guía del usuario del firmware DWM1001

Figura 16: Conéctese al dispositivo DWM1001 a través del shell UART

4.3.2.2 Ejemplo de modo genérico UART

En el paquete DWM1001 Host Api [4] se proporciona un ejemplo sencillo para utilizar la API genérica de UART. El
ejemplo se ejecuta en la plataforma Raspberry Pi:
1) Descargue el paquete dwm1001_host_api en el dispositivo Raspberry Pi 3.
Navegue a la carpeta ejemplos/ex1_TWR_2Hosts/tag/
2) Use el editor nano para editar Makefile:
ÿ nanomaquillaje
3) Cambie el parámetro de configuración USE_INTERFACE para usar la interfaz UART:
USO_INTERFAZ = 0
4) Presiona “Ctrl + o” y “Enter” para guardar. Presione "Ctrl + x" para salir del editor nano.
5) Use el comando "hacer" para construir el ejemplo:
ÿ hacer
6) Ejecute el ejecutable:
ÿ ./etiqueta_cfg
7) Consulte el archivo log.txt para ver los detalles de la transmisión de datos UART.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 25


Machine Translated by Google

Guía del usuario del firmware DWM1001

Figura 17: Ejemplo de ejecución de UART simple en Raspberry Pi 3

El proyecto de ejemplo de modo genérico UART simple está diseñado específicamente para la plataforma Raspberry
Pi. El archivo fuente example/ex1_TWR_2Hosts/tag/tag_cfg.c se puede cambiar para agregar/modificar funcionalidades.
Todas las funciones API de UART disponibles se enumeran en el archivo de encabezado include\dwm_api.h. Se
presenta información más detallada del modo Genérico UART en la Guía API DWM1001 [2].

El código/makefile debe cambiarse para adaptarse a otras plataformas que no sean Raspberry PI.

4.4 Ejemplo de aplicaciones SPI

El módulo DWM1001 proporciona API a través de la interfaz SPI. La conexión y un ejemplo simple se presentan aquí.

4.4.1 Conexión SPI

Para conectarse al módulo DWM1001 a través de SPI, se pueden usar los pines SPI en el conector externo J10 en la
placa DWM1001 DEV. La Tabla 2 muestra los pines necesarios en el SPI
conexión.

Tabla 2 Conexiones de pines SPI

Pin para usar Pin a conectar


Número de PIN Función
Pin 19 MOSI MOSI
Alfiler 21 MISO MISO
Alfiler 23 SCLK SCLK
Alfiler 25 TIERRA TIERRA

Alfiler 24 CSN CSN

La conexión con Raspberry Pi 3 (modelo B) se muestra en la Figura 15.

Nota: el conector J10 de la placa DWM1001 DEV es compatible con Raspberry Pi 3

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 26


Machine Translated by Google

Guía del usuario del firmware DWM1001

pines 1-26 del encabezado del conector J8. El pin 4 de J10 proporciona alimentación de 5 V desde Raspberry Pi a
la placa DWM1001 DEV.

4.4.2 Ejemplo SPI

En el paquete de API de host DWM1001 [4] se proporciona un ejemplo simple para hacer uso de la API de SPI. El
ejemplo se puede ejecutar en la plataforma Raspberry Pi:
1) Descargue el paquete dwm1001_host_api en el dispositivo Raspberry Pi 3.
Navegue a la carpeta ejemplos/ex1_TWR_2Hosts/tag/
2) Use el editor nano para editar Makefile:
ÿ nanomaquillaje
3) Cambie el parámetro de configuración USE_INTERFACE para usar la interfaz SPI:
USO_INTERFAZ = 1
4) Presiona “Ctrl + o” y “Enter” para guardar. Presione "Ctrl + x" para salir del editor nano.
5) Use el comando "hacer" para construir el ejemplo:
ÿ hacer
6) Ejecute el ejecutable:
ÿ ./etiqueta_cfg
7) Consulte el archivo log.txt para ver los detalles de la transmisión de datos SPI.

Figura 18: Ejemplo de ejecución de SPI simple en Raspberry Pi 3

El proyecto de ejemplo SPI simple está diseñado específicamente para la plataforma Raspberry Pi. El archivo
fuente example/ex1_TWR_2Hosts/tag/tag_cfg.c se puede cambiar para agregar/modificar funcionalidades.
Todas las funciones disponibles de la API de SPI se enumeran en el archivo de encabezado include\dwm_api.h.
Se presenta información más detallada de la API de SPI en la Guía de la API de DWM1001 [2].

El código/makefile debe cambiarse para adaptarse a otras plataformas que no sean Raspberry PI.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 27


Machine Translated by Google

Guía del usuario del firmware DWM1001

5 REFERENCIAS

Este documento hace referencia a los documentos enumerados a continuación. Tenga en cuenta que el formato de las referencias
puede ser el que elija el autor.

1. Introducción al dispositivo de software de la serie Nordic nRF52, disponible en www.nordicsemi.com


2. Guía API del software DW1000, disponible en www.decawave.com
3. Descripción general del sistema DWM1001, disponible en www.decawave.com
4. Paquete de código fuente de API de host DWM1001 disponible en www.decawave.com
5. Paquete de código fuente integrado DWM1001, disponible en www.decawave.com
6. Paquete fuente de la aplicación Android DWM1001, disponible en www.decawave.com

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 28


Machine Translated by Google

Guía del usuario del firmware DWM1001

6 HISTORIAL DEL DOCUMENTO

6.1 Historial de revisiones

Tabla 3: Historial del documento

Revisión Fecha Descripción


1.4 28-sep-2020 Actualización para R2.1

1.3 28-mar-2019 Actualización para R2

1.2 07-ago-2018 Cambio de logotipo


1.1 11-ene-2018 Cambios editoriales
1.0 18-dic-2017 Versión inicial

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 29


Machine Translated by Google

Guía del usuario del firmware DWM1001

7 REGISTRO DE CAMBIOS

Revisión 1.1

Página Cambiar Descripción


27 Eliminar documentos inéditos de las referencias

27 Reparar enlaces de URL para 2 referencias


10 Eliminar el párrafo relacionado con la figura 2
10 Eliminación de la referencia de renumeración a medida que se eliminan o renumeran las referencias

Revisión 1.2
Página Cambiar Descripción
TODOS Actualización con nuevo logo

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 30


Machine Translated by Google

Guía del usuario del firmware DWM1001

8 MÁS INFORMACIÓN

Decawave desarrolla soluciones de semiconductores, software, módulos, diseños de referencia, que permiten
servicios de microubicación de área local en tiempo real, ultra precisos y ultra confiables.
La tecnología de Decawave permite una clase completamente nueva de funcionalidad y servicios de ubicación
inteligente, altamente seguros y fáciles de implementar para IoT y productos y aplicaciones de consumo
inteligente.

Para obtener más información sobre este o cualquier otro producto Decawave, consulte nuestro sitio web
www.decawave.com.

© Decawave 2017 SW-DWM1001-Firmware-User-Guide-1.4 Página 31

También podría gustarte