

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 esté actualizado. Consulte la [página de la FreeRTOS.org biblioteca](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 C:2012 codificación MISRA. 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 la red móvil no pueden coexistir en la pila de redes 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>


****  
<a name="cellular-memory-estimate"></a>
<table>
<thead>
  <tr><th colspan="3">Tamaño del código de la biblioteca de interfaces móviles (ejemplo generado con GCC para ARM) Cortex-M</th></tr>
  <tr><th>Archivos</th><th>Con optimización -O1</th><th>Con optimización -Os</th></tr>
</thead>
<tbody>
  <tr><td>cellular\_3gpp\_api.c</td><td>6,3 K</td><td>5,7 K</td></tr>
  <tr><td>cellular\_3gpp\_urc\_handler.c</td><td>0,9 K</td><td>0,8 K</td></tr>
  <tr><td>cellular\_at\_core.c</td><td>1,4 K</td><td>1,2 K</td></tr>
  <tr><td>cellular\_common\_api.c</td><td>0,5 K</td><td>0,5 K</td></tr>
  <tr><td>cellular\_common.c</td><td>1,6 K</td><td>1,4 K</td></tr>
  <tr><td>cellular\_pkthandler.c</td><td>1,4 K</td><td>1,2 K</td></tr>
  <tr><td>cellular\_pktio.c</td><td>1,8 K</td><td>1,6 K</td></tr>
  <tr><td>Estimaciones totales</td><td>13,9 K</td><td>12,4K</td></tr>
</tbody>
</table>


## 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 Cellular\_Interface\_Windows\_Simulator proyecto [FreeRTOS\_](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 compilació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 móviles se ejecuta en las MCU mediante 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 móviles. 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)
+ [ Interfaz de comunicación de la placa de detección STM32 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)