Обновление базового программного обеспечения модемов Enfora по Интернету (FOTA)
В заводских настройках нового модема ENFORA GSM1318 функция FOTA (Firmware Over The Air) устанавливается по умолчанию. В принципе опцию FOTA можно установить и в предыдущих моделях GSM1308. Для этого нужно, чтобы прошивка модуля была не ниже PKG47 и модуль имел бы объем памяти RAM 8 Мбайт. Программисты Enfora постоянно работают над совершенствованием прошивки базовых модулей, устраняя выявленные недостатки и добавляя новые функции и АТ-команды. При появлении новой версии программного обеспечения Enfora уведомляет своих пользователей об этом и бесплатно предоставляет исполнительный файл для перепрошивки модуля. Процесс удаленного обновления программного обеспечения (FOTA) реализуется с помощью FTP-сервера. В этом случае модем используется в качестве FTP-клиента.
В общем случае программное обеспечение FTP-сервера позволяет открывать доступ по Интернету к определенным папкам на центральном компьютере удаленным абонентам, находящимся в любой точке мира. Доступ к серверу осуществляется через логин и пароль. Для закачки исполнительного файла в удаленный модем используется набор специальных АТ-команд. Подробно об этом будет сказано ниже.
Передача файла в Интернете проводится по протоколу FTP (File Transfer Protocol) с помощью TCP/IP. В самом протоколе поддерживаются средства для докачки файла, для тех случаев, когда передача файла была прервана по каким-либо причинам. При этом пользователи, для которых предназначены материалы, смогут использовать для скачивания файлов стандартные FTP-клиенты, обеспечивающие докачку и скачивание в несколько потоков.
Протокол FTP реализуется по схеме «клиент-сервер». При этом используются разные сетевые соединения для передачи команд и данных между клиентом и сервером. Так, например, команды и данные передаются на разные порты (порт 20 — данные, порт 21 — команды). Существует несколько вариантов аутентификации. Один вариант допускает передачу логина и пароля открытым текстом. В другом случае пользователь может подключиться к серверу анонимно. Кроме того, есть варианты, позволяющие использовать протокол SSH для безопасной передачи, при которой логин и пароль зашифрованы и скрыты.
Для опытных пользователей создание своего собственного FTP-сервера не вызовет особенных проблем. Для этого необходим современный ПК и соответствующее программное обеспечение. Можно, например, использовать бесплатный FTP-сервер FileZilla. Скачать его бесплатную версию можно здесь: http://filezilla-project.org/. FileZilla — один из лучших бесплатных FTP-менеджеров, эта программа позволяет скачать и загрузить файлы с разнообразных FTP-серверов. Она имеет удобный и простой интерфейс и обладает большим количеством дополнительных возможностей. В процессе установки потребуется создать набор учетных записей, определить для каждого пользователя права доступа и указать служебный каталог на ПК, который будет выделен на жестком диске для обмена данными. Кроме того, нужно будет указать внешний (интернетовский) IP-адрес, по которому пользователи смогут попадать на этот FTP-сервер.
Следует учитывать тот факт, что, если IP-адрес центрального ПК статический, то никаких проблем не возникнет. Если адрес динамический, то при каждом подключении центрального ПК к Интернету IP будет другим, и вам нужно будет сообщать пользователям новый адрес FTP-сервера. В этом случае можно использовать любой сервис Dynamic DNS, на котором центральному ПК присвоят постоянное доменное имя.
Нужно подчеркнуть, что для надежной работы сервер должен поддерживать работу с AT-командами и незапрашиваемыми откликами, используя формат Enfora UDP API messages. После включения компьютера и запуска программы FTP-сервер будет находиться в режиме ожидания запросов от модема (рис. 1). Для продолжения работы следует ввести пароль (рис. 2). Подробная инструкция по работе с FTP-менеджером FileZilla приведена на сайте http://filezilla.ru/documentation/Using.
С помощью специальных АТ-команд можно открыть сессию с удаленным модемом по порту 21.
Это соединение будет оставаться открытым на время работы сессии. Второе соединение, необходимое для передачи данных, может быть инициализировано как сервером из порта 20 к порту соответствующего модема (активный режим), так и удаленным модемом из любого порта к порту сервера (пассивный режим). Следует учитывать, что в варианте FOTA удаленный модем не имеет абсолютно всех свойств, которые в общем случае присущи FTP-клиенту. Подробно свойства FTP-клиента и FTP-сервера в приложении к Enfora FOTA рассмотрены в [1, 2].
Исполнительный файл, полученный от Enfora, который нужно удаленно загрузить в модем, может быть записан в папке “FOTA”, находящейся в корневом каталоге, например C:EnforaFOTA. Важно то, что эти файлы должны храниться в той директории на FTP-сервере, к которой модем может получить свободный доступ. Параметры исполнительных файлов для текущих версий различных ПО 2013 года приведены в таблице.
Название исполнительного файла |
Размер, кбайт |
Модем |
Текущая версия прошивки |
Конечная версия прошивки |
Hdr_PKG51_D3PKG53.bin |
164 |
GSM1318 |
PKG51 |
PKG53-D3 |
Hdr_PKG51_D6PKG53.bin |
212 |
GSM2438 |
PKG51 |
PKG53-D6 |
Hdr_D7PKG50_D6PKG53.bin |
289 |
GSM2358 |
PKG50-D7 |
PKG53-D6 |
Hdr_PKG51_D1PKG51.bin |
37 |
GSM0408 (необходим дополнительный файл активации для каждого IMEI) |
PKG51 |
PKG51-D1 |
На следующем этапе следует загрузить прошивку (дельта-файл) в программу FTP-менеджера. Для этого нужно просто перетащить мышкой файл из левого окна интерфейса, в котором показаны каталоги клиента на жестком диске, в правое окно, соответствующее месту на FTP-сервере (рис. 3).
Перезагружают дельта-файл в модем в обратном порядке. При этом нужно использовать пароль, введенный для этапа update. Схематически процесс реализации функции FOTA показан на рис. 4.
Модем (FTP-клиент) первоначально должен быть сконфигурирован для работы с FTP-сервером с помощью АТ-команды AT$FOTACFG=“ftpServer,”“username”,“password”… 0. В этой команде определяется, кроме прочего, режим загрузки — автоматический или ручной (последний параметр — 0 или 1). По команде AT$FOTAGET=“remotefilename” модем инициализирует соединение с FTP-сервером через IP-протокол и создает контрольное соединение. Поскольку протокол FTP работает только через TCP-соединение и последовательный порт, то передача данных происходит в два этапа.
На втором этапе данные в виде IP-пакета пересылаются в буфер временной памяти модема. Затем они конвертируются в поток последовательных данных, пригодный для передачи через COM-порт. Пользователь может контролировать процесс получения модемом файла данных с помощью АТ-команд: AT$FOTAGET?. Если процесс обновления ПО прошел успешно, ответ на эту команду будет такой: $FOTAGET: 0, fota.bin, 0, 0,0.
Со своей стороны сервер обеспечивает контроль передачи данных через последовательный порт. По окончании получения данных модем посылает уведомление об успешной передаче.
Далее соединение с сервером устанавливается автоматически (или в ручном режиме, с помощью другой АТ-команды). При этом принятые данные автоматически сохраняются в памяти модема, и пользователю не нужно принудительно использовать команду AT&W. Затем модем автоматически перезапускается (или с помощью АТ-команды перезапускается в ручном режиме). На этом процесс обновления ПО модема заканчивается.
Функция FOTA в модемах Enfora позволяет прерывать и автоматически перезапускать процесс перезагрузки в случаях обнаружения ошибок или потери связи. Эта процедура реализуется в соответствии со спецификацией FTP RFC3659. Поэтому FTP-сервер должен поддерживать команду FTP File Restart command (REST). Принцип автоматической перезагрузки процесса передачи дельта-файла показан на рис. 5.
В том случае, когда произошел сбой загрузки, ответ на команду AT$FOTAGET? будет получен в таком виде: $FOTAGET: 0, wrongfota.bin, 0, 0, 176.
При работе в автоматическом режиме процесс загрузки обновления будет остановлен и начат заново без вмешательства оператора. Этот цикл может повторяться многократно до тех пор, пока обновление ПО не будет успешно реализовано.
- SAG+, User Guide, GSM13X8UG001. Ver.:1.01. Jan. 01, 2012.
- Enabler-G Firmware Upgrade.
- Enfora FOTA. Application Note ENF0000AN002. Rev. 1.02. Feb. 10. 2009.
- Application Note GSM0308AN001. Enfora. Enabler III. AT-Commands Over SMS.
- Network Configuration Worksheet.
- Sending AT Commands over SMS.
- Configure the Modem to talk to the Enfora Server.