|
2 | 2 |
|
3 | 3 | ## Introduction<a name="freertos-cellular-interface-introduction"></a>
|
4 | 4 |
|
5 |
| -The FreeRTOS Cellular Interface library exposes the capabilities of a few popular cellular modems through a uniform API\. Currently, this project contains libraries for these three cellular modems\. |
| 5 | +The Cellular Interface library exposes the capabilities of a few popular cellular modems through a uniform API\. Currently, this project contains libraries for these three cellular modems\. |
6 | 6 | + [Quectel BG96](https://www.quectel.com/product/lte-bg96-cat-m1-nb1-egprs/)
|
7 | 7 | + [ Sierra Wireless HL7802 ](https://www.sierrawireless.com/products-and-solutions/embedded-solutions/products/hl7802/)
|
8 | 8 | + [U\-Blox Sara\-R4](https://www.u-blox.com/en/product/sara-r4-series)
|
9 | 9 |
|
10 | 10 | The current version of the Cellular Interface library encapsulates the TCP stack offered by those cellular modems\. They all implement the same uniform [ Cellular Interface library API](https://www.freertos.org/Documentation/api-ref/cellular/index.html)\. That API hides the complexity of AT commands, and exposes a socket\-like interface to C programmers\.
|
11 | 11 |
|
12 |
| -Even though applications can choose to use the Cellular Interface API directly, it is not designed for this purpose\. In a typical FreeRTOS system, applications use higher level libraries, such as the [coreMQTT](https://www.freertos.org/mqtt/index.html) library and the [coreHTTP](https://www.freertos.org/http/index.html) library, to communicate with other end points\. These higher level libraries use an abstract interface, the [Transport Interface](https://www.freertos.org/network-interface.html), to send and receive data\. A Transport Interface can be implemented on top of the Cellular Interface library; the [FreeRTOS Cellular demo](https://www.freertos.org/cellular-demo.html) uses such an implementation\. |
| 12 | +Even though applications can choose to use the Cellular Interface API directly, it is not designed for this purpose\. In a typical FreeRTOS system, applications use higher level libraries, such as the [coreMQTT](https://www.freertos.org/mqtt/index.html) library and the [coreHTTP](https://www.freertos.org/http/index.html) library, to communicate with other end points\. These higher level libraries use an abstract interface, the [Transport Interface](https://www.freertos.org/network-interface.html), to send and receive data\. A Transport Interface can be implemented on top of the Cellular Interface library; the [Cellular Interface Demo](https://www.freertos.org/cellular-demo.html) uses such an implementation\. |
13 | 13 |
|
14 |
| -Most cellular modems implement more or less of the AT commands defined by the [ 3GPP TS v27\.007](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515) standard\. This project provides an [implementation](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source) of such standard AT commands in a [ reusable common component](https://freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html)\. The three Cellular Interface libraries in this project all take advantage of that common code\. The library for each modem only implements the vendor\-specific AT commands, then exposes the complete Cellular Interface API\. |
| 14 | +Most cellular modems implement more or less of the AT commands defined by the [ 3GPP TS v27\.007](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515) standard\. This project provides an [implementation](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source) of such standard AT commands in a [ reusable common component](https://freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html)\. The three Cellular Interface libraries in this project all take advantage of that common code\. The library for each modem only implements the vendor\-specific AT commands, then exposes the complete Cellular Interface library API\. |
15 | 15 |
|
16 | 16 | The common component that implements the 3GPP TS v27\.007 standard has been written in compliance with the following code quality criteria:
|
17 | 17 | + GNU Complexity scores are not over 8
|
@@ -70,14 +70,14 @@ At the root of this repository you will see these folders:
|
70 | 70 |
|
71 | 71 | ### Configure and build the Library<a name="freertos-cellular-interface-configure"></a>
|
72 | 72 |
|
73 |
| -The FreeRTOS Cellular Interface library should be built as part of an application\. In order to do this, you must provide certain configurations\. The [ Lab\-Project\-FreeRTOS\-Cellular\-Demo](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo) project provides an [ example](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/bg96/cellular_config.h) of how to configure the build\. More information can be found in the [Cellular API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_config.html)\. |
| 73 | +The Cellular Interface library should be built as part of an application\. In order to do this, you must provide certain configurations\. The [ FreeRTOS\_Cellular\_Interface\_Windows\_Simulator](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator) project provides an [ example](https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96/cellular_config.h) of how to configure the build\. More information can be found in the [Cellular API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_config.html)\. |
74 | 74 |
|
75 |
| -Please refer to the [README file of the Lab\-Project\-FreeRTOS\-Cellular\-Demo](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo) project for more information\. |
| 75 | +Please refer to the [Cellular Interface](https://www.freertos.org/cellular/index.html) page for more information\. |
76 | 76 |
|
77 |
| -## Integrate the FreeRTOS Cellular Interface library with MCU platforms<a name="freertos-cellular-interface-integrate"></a> |
| 77 | +## Integrate the Cellular Interface library with MCU platforms<a name="freertos-cellular-interface-integrate"></a> |
78 | 78 |
|
79 |
| -The FreeRTOS Cellular Interface library runs on MCUs using an abstracted interface, the [ Comm Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/blob/main/source/interface/cellular_comm_interface.h), to communicate with cellular modems\. A Comm Interface must be implemented on the MCU platform as well\. The most common implementations of the Comm Interface communicate over UART hardware, but can be implemented over other physical interfaces, such as SPI, as well\. The documentation for the Comm Interface can be found in the [ Cellular API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_porting.html#cellular_porting_comm_if)\. The following example implementations of the Comm Interface are available: |
80 |
| -+ [ FreeRTOS Windows simulator comm interface](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/comm_if_windows.c) |
| 79 | +The Cellular Interface library runs on MCUs using an abstracted interface, the [ Comm Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/blob/main/source/interface/cellular_comm_interface.h), to communicate with cellular modems\. A Comm Interface must be implemented on the MCU platform as well\. The most common implementations of the Comm Interface communicate over UART hardware, but can be implemented over other physical interfaces, such as SPI, as well\. The documentation for the Comm Interface can be found in the [ Cellular Library API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_porting.html#cellular_porting_comm_if)\. The following example implementations of the Comm Interface are available: |
| 80 | ++ [ 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) |
81 | 81 | + [ FreeRTOS Common IO UART comm interface](https://github.com/aws/amazon-freertos/blob/main/libraries/abstractions/common_io/include/iot_uart.h)
|
82 | 82 | + [ 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)
|
83 | 83 | + [ 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)
|
0 commit comments