1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/RT-Thread-Mirror-ppp_device

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Устройство PPP

1. Введение

Устройство PPP — это программный пакет, реализующий функциональность PPP для различных модулей в рамках lwIP в RT-Thread. Это позволяет модулям связи не использовать команды AT для отправки данных, а использовать PPP для передачи сетевых данных.

Основные характеристики пакета PPP Device:

  • Поддержка множества модулей связи;
  • Совместимость с различными протоколами уровня приложений (HTTP, MQTT, TLS и т.д.);
  • Поддержка обнаружения и исправления ошибок данных, что обеспечивает надежную передачу данных;
  • Предоставление функции инициализации CHAT, что облегчает перенос устройства.

В настоящее время функция PPP поддерживает модули Luat Air720, Quectel EC20, China Mobile M6312, SIMCOM SIM800, а также будет поддерживать больше модулей связи в будущем.

Разработчикам, интересующимся PPP Device, предлагается присоединиться к группе для получения дополнительной информации.

QQ-группа: 749347156 <Переход>

Адрес документации по переносу: <Документация по переносу>

1.1 Структурная схема

  • Пакет ppp_device представляет собой конкретную реализацию функции PPP для различных устройств в стеке протоколов lwIP;
  • В пакете ppp_device реализован сетевой интерфейс netdev и интегрирован с абстрактным слоем SAL, что позволяет использовать BSD Socket API для сетевой разработки на уровне приложений;### 1.2 Структура каталога
Название Описание
src Каталог исходного кода для реализации PPP Device
inc Каталог заголовочных файлов для PPP Device
sample Каталог примеров использования функции PPP
class Каталог адаптации PPP для различных устройств

1.3 Лицензия

Пакет ppp_device подчиняется лицензии Apache-2.0, подробности см. в файле LICENSE.

1.4 Зависимости

  • RT-Thread 3.1.0+
  • Компонент lwIP (функция PPP)

2. Способы получения

Описание параметров конфигурации для пакета PPP Device

[*] PPP DEVICE: lwIP PPP porting for Cellular Module(2G/3G/4G)
    [ ] Enable debug log output
    [ ] Enable authorize connect feature
    [*] Enable link status detect feature
    (10) Link status detect timeout
          Select Internet Service Provider (China Mobile)  --->
          Select modem type (Luat Air720)  --->
    [*] Enable ppp device sample
    (uart3) ppp device uart name
          Version (latest)  --->
  • Enable debug log output: Включить отладочный лог
  • Enable authorize connect feature: Включить функцию авторизации подключения
  • Enable link status detect feature: Мониторинг статуса PPP-связи, обнаружение статуса соединения; установка в 0 отключает мониторинг связи;
  • Select modem type: Выбор типа модуля
  • Select Internet Service Provider: Выбор интернет-провайдера
  • Enable ppp device sample: После выбора модуля отображается пример использования модуля
  • ppp device uart name: Используемый модулем UART-порт
  • Version: Версия пакета

3. Способ использования

Функции инициализации пакета PPP Device представлены ниже:Функция запуска PPP, которая автоматически вызывается; повторный вызов возможен только после вызова функции остановки

int ppp_sample_start(void)
{
    rt_device_t device = RT_NULL;
    device = rt_device_find(PPP_DEVICE_NAME);
    if(device == RT_NULL)
    {
        LOG_E("Не удалось найти устройство (%s).", PPP_DEVICE_NAME);
        return -RT_ERROR;
    }
    if(ppp_device_attach((struct ppp_device *)device, PPP_CLIENT_NAME, RT_NULL) != RT_EOK)
    {
        LOG_E("ppp_device_attach выполнение не удалось.");
        return -RT_ERROR;
    }
    return RT_EOK;
}
// Автоматическая инициализация
INIT_APP_EXPORT(ppp_sample_start);
// Экспорт команды в MSH (ppp_sample_start переименован в ppp_start)
MSH_CMD_EXPORT_ALIAS(ppp_sample_start, ppp_start, пример функции PPP для подключения к сети);
  • Модуль подключается к сети, переходит в режим PPP;
  • Регистрация устройства netdev, подключение к стандартной сети;

Функция остановки PPP, которая позволяет выйти из режима PPP

int ppp_sample_stop(void)
{
    rt_device_t device = RT_NULL;
    device = rt_device_find(PPP_DEVICE_NAME);
    if(device == RT_NULL)
    {
        LOG_E("Не удалось найти устройство (%s).", PPP_DEVICE_NAME);
        return -RT_ERROR;
    }
    if(ppp_device_detach((struct ppp_device *)device) != RT_EOK)
    {
        LOG_E("ppp_device_detach выполнение не удалось.");
        return -RT_ERROR;
    }
    return RT_EOK;
}
MSH_CMD_EXPORT_ALIAS(ppp_sample_stop, ppp_stop, пример функции PPP для отключения сети);
  • Выход из режима PPP, модуль выходит из режима подключения;
  • Отмена регистрации устройства netdev;

После включения питания модуля, автоматическая инициализация происходит следующим образом:```c \ | /

  • RT - Thread Operating System / | \ 4.0.2 build Sep 23 2019 2006 - 2019 Copyright by rt-thread team lwIP-2.0.2 initialized! [I/sal.skt] Слой абстракции сокетов инициализирован успешно. [I/ppp.chat] (uart3) контролируется модемом_chat. [I/ppp.dev] (uart3) используется ppp_device. msh />[I/ppp.dev] Успешное подключение ppp. ```После завершения инициализации при включении питания устройства, модуль сообщает о успешном подключении. Затем можно ввести команду ifconfig в FinSH для просмотра IP-адреса, MAC-адреса и других сетевых данных устройства, как показано ниже:
msh />ifconfig
network interface device: pp (Default)           ## Название устройства
MTU: 1500                                        ## Максимальный транспортный размер (MTU)
MAC: 95 45 68 39 68 52                           ## MAC-адрес устройства
FLAGS: UP LINK_UP INTERNET_DOWN DHCP_DISABLE     ## Флаги устройства
ip address: 10.32.76.151                         ## IP-адрес устройства
gw address: 10.64.64.64                          ## Адрес шлюза устройства
net mask  : 255.255.255.255                      ## Маска подсети устройства
dns server #0: 114.114.114.114                   ## Адрес DNS-сервера #0
dns server #1: 120.196.165.7                     ## Адрес DNS-сервера #1

Получив IP-адрес успешно, можно включить функцию команды ping, введя команду ping + доменное имя в FinSH для проверки состояния сети, как показано ниже:

msh />ping www.baidu.com
60 байт от 183.232.231.172 icmp_seq=0 ttl=55 время=84 мс
60 байт от 183.232.231.172 icmp_seq=1 ttl=55 время=78 мс
60 байт от 183.232.231.172 icmp_seq=2 ttl=55 время=78 мс
60 байт от 183.232.231.172 icmp_seq=3 ttl=55 время=78 мс

Если команда ping работает корректно, это указывает на успешное подключение PPP Device к сети. После этого можно использовать стандартные BSD Socket APIs, абстрагированные SAL (Socket Abstraction Layer), для сетевой разработки (MQTT, HTTP, MbedTLS, NTP, Iperf и т.д.).## 4. Внимание

  • Обычные SIM-карты могут получать только внутренние IP-адреса от оператора, поэтому они обычно не могут выполнять функции сервера.
  • Специальные SIM-карты могут получать публичные IP-адреса от оператора, что позволяет выполнять функции сервера.
  • В настоящее время поддерживается только одно устройство, подключенное к сети через PPP.
  • Не рекомендуется включать RT_DEVICE_FLAG_DMA_TX.
  • Если сеть работает плохо, рекомендуется отключить опцию обнаружения состояния линии или увеличить время ожидания.
  • RT_LWIP_TCPTHREAD_STACKSIZE следует настроить на значение не менее 2048, даже если изменение происходит в компоненте network.
  • Не забудьте включить последовательный порт.
  • Для разработчиков, использующих управление питанием модуля, следует учитывать время запуска модуля; обычно время запуска модуля достаточно велико, что может привести к длительным неудачным попыткам подключения. Важно учитывать время запуска модуля, чтобы избежать проблем при использовании.

5. Контактная информация

Контактное лицо: xiangxistu

Email: liuxianliang@rt-thread.com

6. Благодарности

Благодарим участника @xfan1024 за его вклад и предложения, которые помогли улучшить PPP DEVICE. Он предложил много ценных замечаний, которые помогли улучшить программное обеспечение PPP DEVICE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/RT-Thread-Mirror-ppp_device.git
git@api.gitlife.ru:oschina-mirror/RT-Thread-Mirror-ppp_device.git
oschina-mirror
RT-Thread-Mirror-ppp_device
RT-Thread-Mirror-ppp_device
master