

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Biblioteca de interfaces móviles
<a name="cellular-interface"></a>

**nota**  <a name="out-of-date-message"></a>
Es posible que el contenido de esta página no lo sea up-to-date. Consulte la [página de la biblioteca de FreeRTOS.org](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries) para obtener la última actualización.

## Introducción
<a name="freertos-cellular-interface-introduction"></a>

La biblioteca Cellular Interface implementa una [API](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/) simple y unificada que oculta la complejidad de los comandos AT específicos del módem celular y expone una interfaz similar a un socket a los programadores de C.

La mayoría de los módems móviles implementan más o menos los comandos AT definidos por el estándar [TS v27.007 de 3GPP](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515). Este proyecto proporciona una [implementación](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source) de dichos comandos AT estándar en un [componente común reutilizable](https://freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html). Las tres bibliotecas de interfaces móviles de este proyecto aprovechan ese código común. La biblioteca de cada módem solo implementa los comandos AT específicos del proveedor y, a continuación, expone la API completa de la biblioteca de interfaces móviles.

El componente común que implementa el estándar TS v27.007 de 3GPP se ha diseñado de acuerdo con los siguientes criterios de calidad del código: 
+ Las puntuaciones de complejidad de GNU no superan 8
+ Estándar de codificación MISRA C:2012. Cualquier desviación del estándar se documenta en los comentarios del código fuente marcados con “coverity”.

## Dependencias y requisitos
<a name="freertos-cellular-interface-dependencies"></a>

No existe una dependencia directa para la biblioteca de interfaces celulares. Sin embargo, Ethernet, Wi-Fi y móvil no pueden coexistir en la pila de la red de FreeRTOS. Los desarrolladores deben elegir una de las interfaces de red para integrarla con la [biblioteca de socket seguros](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html). 

## Portabilidad
<a name="freertos-cellular-interface-porting"></a>

Para obtener más información acerca de la portabilidad de la biblioteca interfaces móviles a su plataforma, consulte [ Portabilidad de la biblioteca de interfaces móviles](https://docs.aws.amazon.com/freertos/latest/portingguide/freertos-porting-cellular.html) en la *Guía de portabilidad de FreeRTOS*. 

## Uso de memoria
<a name="freertos-cellular-interface-memory-use"></a>


****  

| Tamaño de código de la biblioteca de interfaces móviles (ejemplo generado con GCC para ARM Cortex-M) | Archivos | Con optimización -O1 | Con optimización -Os | 
| --- | --- | --- | --- | 
| cellular\$13gpp\$1api.c | 6,3 K | 5,7 K | 
| cellular\$13gpp\$1urc\$1handler.c | 0,9 K | 0,8 K | 
| cellular\$1at\$1core.c | 1,4 K | 1,2 K | 
| cellular\$1common\$1api.c | 0,5 K | 0,5 K | 
| cellular\$1common.c | 1,6 K | 1,4 K | 
| cellular\$1pkthandler.c | 1,4 K | 1,2 K | 
| cellular\$1pktio.c | 1,8 K | 1,6 K | 
| Estimaciones totales | 13,9 K | 12,4K | 

## Introducción
<a name="freertos-cellular-interface-getting-started"></a>

### Descarga del código fuente
<a name="freertos-cellular-interface-download-source"></a>

El código fuente se puede descargar como parte de las bibliotecas de FreeRTOS o solo.

Para clonar la biblioteca de Github mediante HTTPS: 

```
git clone https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface.git 
```

Uso de SSH:

```
git clone git@github.com:FreeRTOS/FreeRTOS-Cellular-Interface.git 
```

### Estructura de carpeta
<a name="freertos-cellular-interface-folder-structure"></a>

En la raíz de este repositorio, verá estas carpetas: 
+ `source` : código común reutilizable que implementa los comandos AT estándar definidos por TS v27.007 de 3GPP
+ `doc` : documentación
+ `test` : prueba unitaria y cbmc
+ `tools`: herramientas para el análisis estático de Coverity y CMock

### Configuración y creación de la biblioteca
<a name="freertos-cellular-interface-configure"></a>

La biblioteca de interfaces móviles debe crearse como parte de una aplicación. Para ello, debe proporcionar ciertas configuraciones. El proyecto [FreeRTOS\$1Cellular\$1Interface\$1Windows\$1Simulator](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator) proporciona un [ ejemplo](https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/cellular_config.h) de cómo configurar la creación. Encontrará más información en las [Referencias de la API para móviles](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/cellular_config.html). 

Consulte la página [Interfaz móvil](https://www.freertos.org/cellular/index.html) para obtener más información.

## Integración de la biblioteca de interfaces móviles con plataformas MCU
<a name="freertos-cellular-interface-integrate"></a>

La biblioteca de interfaces celulares funciona MCUs con una interfaz abstracta, la interfaz de [comunicación](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/blob/main/source/interface/cellular_comm_interface.h), para comunicarse con los módems celulares. También se debe implementar una interfaz de comunicación en la plataforma MCU. Las implementaciones más comunes de la interfaz de comunicación se comunican a través del hardware UART, pero también se pueden implementar a través de otras interfaces físicas, como SPI. La documentación sobre la interfaz de comunicación se encuentra en las [ referencias de la API de la biblioteca de interfaces móviles](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/cellular_porting.html#cellular_porting_comm_if). Están disponibles los siguientes ejemplos de implementaciones de la interfaz de comunicación:
+ [ Interfaz de comunicación del simulador FreeRTOS para Windows](https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/comm_if_windows.c)
+ [ Interfaz de comunicación UART de E/S común de FreeRTOS](https://github.com/aws/amazon-freertos/blob/main/libraries/abstractions/common_io/include/iot_uart.h)
+ [ STM32 Interfaz de comunicación de la placa Discovery L475](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/st/boards/stm32l475_discovery/ports/comm_if/comm_if_uart.c)
+ [ Interfaz de comunicación de la placa del hub del sensor Sierra](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/sierra/boards/sensorhub/ports/comm_if/comm_if_sierra.c)