

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Biblioteca Cellular Interface
<a name="cellular-interface"></a>

**nota**  <a name="out-of-date-message"></a>
O conteúdo desta página pode não ser up-to-date. Consulte a [página da biblioteca do FreeRTOS.org](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries) para obter a atualização mais recente.

## Introdução
<a name="freertos-cellular-interface-introduction"></a>

A biblioteca Cellular Interface implementa uma [API](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/) unificada simples que oculta a complexidade dos comandos AT específicos do modem de rede celular e expõe uma interface semelhante a um soquete para programadores C.

A maioria dos modems de rede celular implementa mais ou menos dos comandos AT definidos pelo padrão [3GPP TS v27.007](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515). Este projeto fornece uma [implementação](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source) desses comandos AT padrão em um [componente comum reutilizável](https://freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html). Todas as três bibliotecas Cellular Interface deste projeto aproveitam esse código comum. A biblioteca de cada modem implementa apenas os comandos AT específicos do fornecedor e, em seguida, expõe a API completa da biblioteca Cellular Interface.

O componente comum que implementa o padrão 3GPP TS v27.007 foi escrito em conformidade com os seguintes critérios de qualidade de código: 
+ As pontuações de complexidade do GNU não são superiores a 8
+ Padrão de codificação MISRA C:2012. Todo desvio do padrão é documentado nos comentários do código-fonte marcados por "coverity".

## Dependências e requisitos
<a name="freertos-cellular-interface-dependencies"></a>

Não há dependência direta da biblioteca Cellular Interface. No entanto, Ethernet, Wi-Fi e rede celular não podem coexistir na pilha de rede do FreeRTOS. Os desenvolvedores devem escolher uma das interfaces de rede para integrar com a [biblioteca Secure Sockets](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html). 

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

Para obter mais informações sobre a portabilidade da biblioteca Cellular Interface para sua plataforma, consulte [Portabilidade da biblioteca Cellular Interface](https://docs.aws.amazon.com/freertos/latest/portingguide/freertos-porting-cellular.html) no *Guia de portabilidade do FreeRTOS*. 

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


****  

| Tamanho de código da biblioteca Cellular Interface (exemplo gerado com GCC para ARM Cortex-M) | Arquivo | Com otimização -O1 | Com otimização -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 | 
| Estimativas totais | 13,9 K | 12,4 K | 

## Introdução
<a name="freertos-cellular-interface-getting-started"></a>

### Fazer download do código-fonte
<a name="freertos-cellular-interface-download-source"></a>

O código-fonte pode ser baixado como parte das bibliotecas do FreeRTOS ou individualmente.

Para clonar a biblioteca do Github usando HTTPS: 

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

Usando SSH:

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

### Estrutura de pastas
<a name="freertos-cellular-interface-folder-structure"></a>

Na raiz desse repositório, você verá estas pastas: 
+ `source`: código comum reutilizável que implementa os comandos AT padrão definidos pelo 3GPP TS v27.007
+ `doc`: documentação
+ `test`: teste unitário e cbmc
+ `tools`: ferramentas para análise estática do Coverity e CMock

### Configurar e compilar a biblioteca
<a name="freertos-cellular-interface-configure"></a>

A biblioteca Cellular Interface deve ser compilada como parte de uma aplicação. Para fazer isso, você deve fornecer determinadas configurações. O projeto [FreeRTOS\$1Cellular\$1Interface\$1Windows\$1Simulator](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator) fornece um [ exemplo](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 como configurar a compilação. Mais informações podem ser encontradas nas [Referências de API de rede celular](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/cellular_config.html). 

Consulte a página [Cellular Interface](https://www.freertos.org/cellular/index.html) para obter mais informações.

## Integre a biblioteca Cellular Interface com plataformas MCU
<a name="freertos-cellular-interface-integrate"></a>

A biblioteca Cellular Interface funciona MCUs usando uma interface abstrata, a [Comm Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/blob/main/source/interface/cellular_comm_interface.h), para se comunicar com modems celulares. Uma interface de comunicação também deve ser implementada na plataforma MCU. As implementações mais comuns da interface de comunicação se comunicam por meio de hardware UART, mas também podem ser implementadas em outras interfaces físicas, como SPI. A documentação da Interface de comunicação pode ser encontrada nas [Referências de API da biblioteca de rede celular](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/cellular_porting.html#cellular_porting_comm_if). Os seguintes exemplos de implementações da Interface de comunicação estão disponíveis:
+ [Interface de comunicação do simulador Windows do FreeRTOS](https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/comm_if_windows.c)
+ [Interface de comunicação UART de E/S comum do FreeRTOS](https://github.com/aws/amazon-freertos/blob/main/libraries/abstractions/common_io/include/iot_uart.h)
+ [ STM32 Interface de comunicação da placa Discovery L475](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/st/boards/stm32l475_discovery/ports/comm_if/comm_if_uart.c)
+ [Interface de comunicação da placa Sierra Sensor Hub](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/sierra/boards/sensorhub/ports/comm_if/comm_if_sierra.c)