Introducción al CC 2541 (Parte 1)

Standard

Hola a todos, otra vez es un placer tener la oportunidad de escribir este blog.

En la actualidad, para el prototipado y didáctico se utiliza muy comúnmente arduino y más especificamente el arduino UNO, el cual tiene una arquitectura AVR. La arquitectura de los AVR fue concebida por dos estudiantes en el Norwegian Institute of Technology, y posteriormente refinada y desarrollada en Atmel Norway. Pero aun así. existen en el mundo otros microprocesadores y arquitectura, como en este caso hablaremos del microcontrolador CC2541 de texas instruments, y esta basado en la arquitectura en “Intel 8051” es un microcontrolador desarrollado por Intel en 1980 para uso en productos embebidos.

CC2541                                                     índice

El micro cc2541 es un microcontrolador fabricado por texas instrument, el cual trae integrado ademas un Bluetooth®  y System-on-Chip (SoC) desarrollado por la misma para facilitar la organización y el desempeño del microcontrolador. Al ser  de bajo consumo, es especialmente útil para sistemas embebidos por  lo que lo hace perfecto para sistemas donde se requiere ultra bajo consumo de energía:

Para mayores especificaciones les recomiendo visitar el siguiente link : CC2541

fbd_swrs110d

Diagrama de bloques cc2541

Si nos fijamos en el bloque de diagrama, nos damos cuenta que este microcontrolador esta muy completo, puesto que trae diferentes funciones como son los adc internos,  comunicación i2c, I/O pines etc.

blu stak

Protocolo BLE.

El protocolo BLE consiste en 2 secciones básicas, el controlador y el host,

Configuraciones:

  • Single-device- solutions: Host, controlador, perfiles y app están en el mismo micro.
  • Dual-Device Solution: cliente y host están separados de los demás.
  • Network procesor: Host y controlador están juntos pero la app o profile están en otro lado.

El Ble soporta red estrella

Controlado por un punto central y todas las comunicaciones se han de hacer necesariamente a través de este, los dispositivos no están directamente conectados entre si. El punto central puede estar conectado a varios esclavos, mientras el esclavo solo puede estar conectado a un único maestro.

Por ultimo tenemos el SOC (system of chip) :

Un ámbito común de aplicación de la tecnología SoC son los sistemas embebidos.

La diferencia principal de un SoC con un microcontrolador tradicional no debe pasarse por alto, puesto que estos rara vez disponen de más de 100 Kilobytes de memoria RAM (de hecho, lo más frecuente es que las memorias-tanto la RAM como la flash- de un microcontrolador consten de unos pocos Kilobytes), y gran parte de estos son estructuras monochip, mientras que el término SoC es usado para procesadores más potentes y de arquitectura más compleja, como son los que integran los ordenadores y dispositivos actuales que dependen de chips o módulos de memoria externos para ser eficaces.

En este caso el system of chip desarrollado por texas, al dividise en varios niveles o capas.

Capas del cc254XX

  •  Gap role, Gap security y gatt services, profiles.
  • Osal: capa de abstaccion de sistema operativo (OSAL)
  • Hal: Capa de abstaccion del hadware (HAL)
  • Ble: Stack de protocolo BLE
  • Aplication : servicio creado por ti.

GAP : Generic Access Profile.

Define los procedimiento genéricos para la sección relacionados con la conexión estos son:

  • Device Discovery: Descubrimiento de dispositivos anunciantes
  • Link establishement: establecimiento de conexión
  • Link management: gestión de conexión; envío de paquete para saber si la conexión se mantiente activa
  • Link terminación: terminación de conexión
  • Security features: Inciación de las funciones de seguridad.

Capa HCL (Host/ controler interface)

Esta dividido en 2 secciones, el host y el controlador; el HCL se encarga de hacer puente entre esas 2

  • El SOC (Sistem Of Chip) cc254xx permite utilizer directamente el stack del BLE, por fuente externa (pc, cel, etc) esto es conocido como network processor. El host utiliza la Api HCL para comunicarse con las capas bajas del stack, la sección del host del stack getion, los mensajes de central, eventos y transmisión de datos.
  • Sección Host ( Logical Link control and adoption protocol (L2CAP)

Permite a protocolos y capas superior, transmitir y recibir datos de hasta 33 bytes de longitud, se encarga de gestionar los canales de datos que se utilizan durante la conexión y negociar los parámetros de conexión

  • Define el protocolo para elaborar un enlace seguro, llaves, y algoritmo de cifrado (A35-128) trabajo en conjunto con el GAP
  • Paring se encarga de el emparejamiento entre 2 dispositivos.
  • Authenticacion: Verificar que el otro dispotisivo par) sea quien sea
  • Bonding: Establecen una relación a largo plazo

Muchas funciones trabajan directamente con la cpa de enlace con el controlador, existen 4 roles de trabajo para GAP:

  • Broadcaster: es un anunciante “ No conectable”
  • Observer : es uun observador, scanea publicidad; pero no inicia conexión con los anunciantes
  • Periphereal: es un anunciante “Conectable” y puede operar como esclavo, es la única capa de enlace, se conecta a solo maestro.
  • Central: scanea publicidad y puede iniciar conexiones con dispositivos periphereal como modo maestro y puede establecer múltiples conexiones de capas de enlace.

GATT Generic Atribute profile

Degine un framework donde se encuentran los porcedimiento para usar ATT para descubir leer escribir o configurar la recepccion de modificaciones de los atributos GATT especifica la estructura de los perfiles

Toda la comunicación de datos entre 2 BLE se manejan a través de los procedimiento definidos en GATT

Parecidos a ATT excepto que los datos se encapsulan en lo servicios, los datos se expone dentro de las características.

Perfiles (profiles)

Se componen de 1 o mas servicios para cumplir con un caso de uso, puede contener cierto atributo llamados valores de la característica.

BLE SIG tiene un numero UUID para identificar servicios estándar para la creación de un servicio, perfil reconocible. Es recomendable revisar antes los servicios entre 2 BLE para evitar sobrescribir un UUID estándar:

  • Read characteristic value: lee el valor de la característica en el Handle especificado
  • Write characteristic value: escribe el nuevo valor de la característica en el handle especificado

Se puede configurar el GATT para que se envié información si que se le pida:

  • Notification: El valor de la características es enviado del servidor al cliente sin recibir una solicitud de lectura, y además no necesita un ack de confirmación.
  • Indication: el valor de la características es enviado desde el servidor al cliente si nrecibir una solicitud de lectura , pero se necesita un ack de confirmación por parte del cliente.

OSAL:

No es un sistema operativo en el sentido tradicional, es un sheduler básico implementado como un controlador de bucle, que le permite estructurarse en tareas y ejecutarse por eventos.

Todo software es construido alrededor del OSAL, cada subsisteman corre como tarea del aosal y tiene un ID único que la identifica, además de servir como prioridad (entre mas chico el ID, mayor prioridad tiene)

Cada tarea OSAL debe implementar 2 funciones

Inicialización (Ejemplo: simpleBLEperipheral_init)

Procesor eveneto (Ejemplo: simpleBLEperipheral_processevent)

BLE

Se encarga de manejar los servicios y la comunicación del BLE

y por ultimo esta las aplicaciones creadas normalmente por el usuario, las cuales aprenderemos a hacer algunas en la segunda parte.

Saludos y exito a todos

3 thoughts on “Introducción al CC 2541 (Parte 1)

    • Jaime Becerra

      hola robeto, ¿Cómo vas?… Referente a este microcontrolador, la principal ventaja es que aparte trae el ble 4.0 integrado junto con su soc (system of chip). Yya en cuestión de usos, se utiliza en aplicaciones de ultra bajo consumo; como son wearables, iBeacon, entre otras. Donde lo principal es un integrado de bajo
      consumo, de tamaño reducido, y con comunicación.

  1. nicolas

    buenas, se que el post es algo viejo pero tengo la esperanza que alguien vea esto
    quería saber si alguien sabe que grabador se ocupa para estos micro controladores o la forma de grabarlos.

Leave a Reply

Your email address will not be published. Required fields are marked *