

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 셀룰러 인터페이스 라이브러리
<a name="cellular-interface"></a>

**참고**  <a name="out-of-date-message"></a>
이 페이지의 내용은 최신 상태가 아닐 수 있습니다. 최신 업데이트는 [Freertos.org 라이브러리 페이지](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)를 참조하세요.

## 소개
<a name="freertos-cellular-interface-introduction"></a>

셀룰러 인터페이스 라이브러리는 셀룰러 모뎀별 AT 명령의 복잡성을 숨기고 C 프로그래머에게 소켓과 유사한 인터페이스를 제공하는 간단한 통합 [API](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/)를 구현합니다.

대부분의 셀룰러 모뎀은 [3GPP TS v27.007](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515) 표준에 정의된 AT 명령을 다소간 구현합니다. 이 프로젝트는 [재사용 가능한 공통 구성 요소](https://freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html)에서 이러한 표준 AT 명령의 [구현](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source)을 제공합니다. 이 프로젝트의 세 셀룰러 인터페이스 라이브러리는 모두 이 공통 코드를 활용합니다. 각 모뎀에 대한 라이브러리는 공급업체별 AT 명령만 구현한 다음 전체 셀룰러 인터페이스 라이브러리 API를 제공합니다.

3GPP TS v27.007 표준을 구현하는 공통 구성 요소는 다음 코드 품질 기준을 준수하여 작성되었습니다.
+ GNU 복잡성 점수는 8점 이하입니다.
+ MISRA C:2012 코딩 표준. 표준과의 모든 편차는 'coverity'로 표시된 소스 코드 주석에 문서화되어 있습니다.

## 종속성 및 요구 사항
<a name="freertos-cellular-interface-dependencies"></a>

셀룰러 인터페이스 라이브러리에는 직접 종속성이 없습니다. 그러나 이더넷, Wi-Fi 및 셀룰러는 FreeRTOS 네트워크 스택에서 공존할 수 없습니다. 개발자는 네트워크 인터페이스 중 하나를 선택하여 [보안 소켓 라이브러리](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html)와 통합해야 합니다.

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

셀룰러 인터페이스 라이브러리를 플랫폼으로 이식하는 방법에 대한 자세한 내용은 *FreeRTOS 이식 안내서*의 [셀룰러 인터페이스 라이브러리 이식](https://docs.aws.amazon.com/freertos/latest/portingguide/freertos-porting-cellular.html)을 참조하세요.

## 메모리 사용
<a name="freertos-cellular-interface-memory-use"></a>


****  

| 셀룰러 인터페이스 라이브러리 코드 크기(ARM Cortex-M용 GCC로 생성된 예제) | 파일 | -O1 최적화 | -Os 최적화 | 
| --- | --- | --- | --- | 
| cellular\$13gpp\$1api.c | 6.3K | 5.7K | 
| cellular\$13gpp\$1urc\$1handler.c | 0.9K | 0.8K | 
| cellular\$1at\$1core.c | 1.4K | 1.2K | 
| cellular\$1common\$1api.c | 0.5K | 0.5K | 
| cellular\$1common.c | 1.6K | 1.4K | 
| cellular\$1pkthandler.c | 1.4K | 1.2K | 
| cellular\$1pktio.c | 1.8K | 1.6K | 
| 총 추정치 | 13.9K | 12.4K | 

## 시작하기
<a name="freertos-cellular-interface-getting-started"></a>

### 소스 코드 다운로드
<a name="freertos-cellular-interface-download-source"></a>

소스 코드는 FreeRTOS 라이브러리의 일부로 또는 단독으로 다운로드할 수 있습니다.

HTTPS를 사용하여 Github에서 라이브러리를 복제하려면 

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

SSH 사용:

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

### 폴더 구조
<a name="freertos-cellular-interface-folder-structure"></a>

이 리포지토리의 루트에는 다음과 같은 폴더가 있습니다.
+ `source`: 3GPP TS v27.007에 정의된 표준 AT 명령을 구현하는 재사용 가능한 공통 코드
+ `doc`: 설명서
+ `test`: 유닛 테스트 및 cbmc
+ `tools`: Coverity 정적 분석 및 CMock용 도구

### 라이브러리 구성 및 빌드
<a name="freertos-cellular-interface-configure"></a>

셀룰러 인터페이스 라이브러리는 애플리케이션의 일부로 빌드해야 합니다. 이렇게 하려면 특정 구성을 제공해야 합니다. [FreeRTOS\$1Cellular\$1Interface\$1Windows\$1Simulator](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator) 프로젝트는 빌드 구성 방법의 [예](https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/cellular_config.h)를 제공합니다. [Cellular API References](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/cellular_config.html)에서 추가 정보를 확인할 수 있습니다.

자세한 내용은 [Cellular Interface](https://www.freertos.org/cellular/index.html) 페이지를 참조하세요.

## 셀룰러 인터페이스 라이브러리를 MCU 플랫폼과 통합
<a name="freertos-cellular-interface-integrate"></a>

셀룰러 인터페이스 라이브러리는 추상화된 인터페이스인 [Comm Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/blob/main/source/interface/cellular_comm_interface.h)를 사용하여 MCU에서 실행되며 셀룰러 모뎀과 통신합니다. MCU 플랫폼에서도 Comm Interface를 구현해야 합니다. Comm Interface의 가장 일반적인 구현은 UART 하드웨어를 통해 통신하지만 SPI와 같은 다른 물리적 인터페이스를 통해서도 구현될 수 있습니다. Comm Interface 설명서는 [Cellular Library API References](https://freertos.github.io/FreeRTOS-Cellular-Interface/v1.3.0/cellular_porting.html#cellular_porting_comm_if)에서 찾을 수 있습니다. 다음과 같은 Comm Interface 구현 예제를 사용할 수 있습니다.
+ [FreeRTOS Windows simulator comm interface](https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/Common/comm_if_windows.c)
+ [FreeRTOS Common IO UART comm interface](https://github.com/aws/amazon-freertos/blob/main/libraries/abstractions/common_io/include/iot_uart.h)
+ [STM32 L475 discovery board comm interface](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/st/boards/stm32l475_discovery/ports/comm_if/comm_if_uart.c)
+ [Sierra Sensor Hub board comm interface](https://github.com/aws/amazon-freertos/blob/feature/cellular/vendors/sierra/boards/sensorhub/ports/comm_if/comm_if_sierra.c)