SPM
Подкачка SPM 1.0. Версия загрузчика 1.0. Версия ПО 1.0.
Описание.
1. Общие положения
1.1 Программное обеспечение подкачки состоит загрузчика и рабочего ПО. Загрузчик устанавливается в микроконтроллер с помощью программатора, всё остальное ПО устанавливается через файловую систему изделия.
1.2 При включении изделия начинает работать загрузчик. Он проверяет CRC рабочего ПО и, в случае успеха, отдаёт ему управление. В случае ошибки CRC (в т.ч. при отсутствии рабочего ПО) программа не передаёт управление и остаётся в режиме загрузчика. Изделие может быть принудительно переведено из загрузчика в рабочее ПО и из рабочего ПО в загрузчик командой softpart (табл.1).
1.3 В изделии имеется файловая система, хранящая файлы. Файлы могут быть записаны на изделие командами терминала через USB.
1.4 Список файлов рабочего ПО приведён в таблице.
Файл | Назначение |
spm.ini | Настройки изделия. Большинство настроек задаётся командами (см. таблицы 1.х) и сохраняется в файле автоматически.. |
fware.hex | Файл для прошивки во внутреннюю flash-память контроллера. Загружается в изделие совместно с файлом fware.crc. После прошивки файл не используется. |
fware.crc | Файл для проверки целостности файла fware.hex. Загружается в изделие совместно с файлом fware.hex. После прошивки файл не используется. |
2. Подключение изделия по USB (дальнейшее описание применимо к ОС Linux. Для ОС Windows необходимо использовать какой-либо терминал и выполнять подключение в соответствии с инструкцией к нему).
2.1 Для отправки команд и файлов на изделие необходимо подключить изделие к компьютеру USB-кабелем.
2.2 После подключения в списке устройств должно появиться новое устройство. Обычно его имя ttyACM0. Посмотреть список устройств можно командой ls /dev.
2.3 Для отправки команд используется консольная утилита cu. Синтаксис:
cu -l /dev/ttyACM0 -s 115200
2.4 Для отправки файлов (а также команд вместо cu) используется пара запущенных консольных утилит cat, одна для ввода, другая для вывода. Синтаксис:
cat </dev/ttyACM0&
cat >/dev/ttyACM0
Здесь первая утилита транслирует ответы от изделия к компьютеру и запущена в фоновом режиме (амперсанд &), вторая утилита транслирует команды на изделие. Последовательность запуска и порядок работы с утилитами описан в разделе «Пересылка файлов».
2.5 Для выхода из утилиты cu необходимо отключить USB-кабель и при необходимости подключить его снова. Или выключить-включить питание изделия.
Для выхода из утилит cat можно последовательно применить CTRL+C, killall cat.
Для выхода из любых утилит можно на второй консоли набрать команду killall cu или killall cat.
2.6 Одновременный запуск утилит cat и cu не благословляется.
3. Команды к изделию.
3.1 Выполнить подключение изделия по USB (пп. 2.1, 2.2) и запустить консольные утилиты cu либо пару cat (пп. 2.3 или 2.4).
3.2 Команда может быть без параметров или содержать 1 или 2 параметра, отделённых пробелом. Примеры:
ls - команда без параметров,
setpass nepodberesh - команда с одним параметром,
cat< fware.hex 172500 - команда с двумя параметрами.
3.3 Списки команд к изделию приведны в таблицах 1.х.
Таблица 1.1 Команды к изделию. Файловые операции
Команда.......... | Описание |
ls | Вывести имена и размеры файлов текущего каталога |
cd dir | Сменить текущий каталог на каталог dir. Команда cd / устанавливает корневой каталог.
Внимание! Команда не влияет на команды cat< и cat>. |
mkdir dir | Создать каталог |
remove name | Удалить файл или каталог |
rename n1 n2 | Переименовать файл или каталог n1 в n2 |
diskinfo | Получить информацию о свободном месте на диске |
mkfs.flash | Привести файловую систему в исходное состояние (отформатировать диск). Внимание! При выполнении этой команды теряются все файлы и все настройки изделия, в том числе калибровка. Рабочее ПО и ПО загрузчика остаётся. |
cat< file1 size1
cat> file2 |
Отправка файлов на изделие или приём с изделия.
cat< file1 size даёт изделию команду принять файл размером size и сохранить его под именем file1. cat> file2 даёт изделию команду передать файл file2. Подробно работа с командами описана в разделе «Пересылка файлов». Внимание! В данном случае символы > и < - это не символы перенаправления вывода, а часть названия команды, поэтому пробелы между cat и символом недопустимы. |
Таблица 1.2. Команды к изделию. WiFi
Команда.......... | Описание |
setnet name | Установить имя сети WiFi |
setip addr [mask] | Установить ip-адрес изделия и маску подсети. Параметр "mask" необязательный
setip 192.168.0.1 - установить на изделии ip-адрес setip 192.168.0.1 255.255.255.0 - установить ip-адрес и маску |
setpass pass | Установить пароль доступа к сети WiFi.
setpass /delete - удалить пароль (таким образом, в качестве пароля не может быть использовано "/delete"). |
getnet | Получить информацию о заданных настройках сети (имя, ip-адрес, маска подсети, есть или нет пароль). |
netinfo | При наличии связи с точкой подключения, заданной командой setnet, посмотреть её параметры. При отсутствии точки будут выведены два параметра, позволяющие оценить работоспособность модуля wf121: ExSt и LastMsg. Коды:
enum eStateExchange { exchNone, exchBoot, exchHello, exchMAC, exchWifiOn, exchWifiOff, exchStartScan, exchStopScan, exchSetPasswd, exchConnectSSID, exchConnectBSSID, exchTcpConfig, exchStartTcpServer_80, exchStartTcpServer_23, exchEndpointSetActive, exchEndpointClose, exchEndpointSendData, exchReset121, exchCloseEndpointDirect, exchNeedStartScan }; enum eWF121MsgXch { emsgNone, emsgHello, emsgMAC, emsgStartScan, emsgStopScan, emsgSetPasswd, emsgConnectSSID, emsgConnectBSSID, emsgTcpConfig, emsgStartTcpServer, emsgData, emsgSend, emsgEndpointSetActive, emsgTimer, emsgPowerState, emsgEndpointStatus, emsgEndpointClosingEvent, emsgReplyOnSend, emsgReplyOnClose, eevntState, eevntBoot, eevntScanResult, eevntScanned, eevntWifiOn, eevntWifiOff }; |
Внимание! Все команды настройки WiFi применяются после перезапуска изделия либо после разрыва связи по WiFi. |
Таблица 1.3. Команды к изделию. Калибровка
Команда.......... | Описание |
calrep | Вывести сводную таблицу калибровок для давлений и температур |
calsum | Вывести калибровочные коэффициенты |
cal, cal0 | Начать калибровку с первого температурного интервала |
cal1 | Начать калибровку со второго температурного интервала |
cal2 | Начать калибровку с третьего температурного интервала |
delcal | Удалить все калибровочные данные |
Таблица 1.4. Команды к изделию. Светодиодная индикация
Команда............ | Описание |
setoe n | Установить параметр яркости ОЕ, значение 1...100%
setoe 10 - установить 10% |
setinh n | Установить параметр яркости INH, значение 1...100%
setinh 20 - установить 20% |
shownetstate on
shownetstate off |
shownetstate on - показывать подключение к сети WiFi на индикаторе.
При безуспешной попытке подключения на несколько секунд выводится надпись "no n" (no net - нет сети), при подключению к сети "по умолчанию" выводится надпись "dEF" (default). shownetstate off - не показывать подключение. На индикаторе выводится только давление (в режиме рабочего ПО) или только надпись LoAd (в режиме загрузчика), независимо от хода подключения. |
standbytime t | Установить время отключения индикатора (перехода в состояние переключающихся точек), t = 0...60 min (t=0 - не входить в режим standby).
standbytime 0.5 - установить время отключения индикатора 30 сек. |
standbyval k | Установить значение давления, ниже которого по истечении времени, установленного командой standby t, отключится индикатор, k = 0...1,0 KGs (k=0 - не входить в режим standby).
standbyval 0.1 - отсчёт времени отключения индикатора начнётся при давлении 0.1 КГс или ниже. |
getind | Вывести сводку всех установленных настроек индикатора. |
Таблица 1.5. Команды к изделию. Тесты величин
Команда.......... | Описание |
adcval p | Вывести значение АЦП, p=0...3
0 - датчик давления 1..3 - значения АЦП2...4 согласно схемы изделия |
testadc p | Выводить значение АЦП при его изменении. Выполнение команды продолжается до подачи любой команды, в т.ч. несуществующей.
Значение p - как для команды adcval. |
testvp
testvg testvind |
Выводить значения напряжений Vp, Vg, Vind согласно схемы изделия. Выполнение команды продолжается до подачи любой команды, в т.ч. несуществующей. |
testtemp | Выводить температуру при её изменении. Выполнение команды продолжается до подачи любой команды, в т.ч. несуществующей. |
Таблица 1.6. Команды к изделию. Сервисные команды
Команда.......... | Описание |
comwf121 | Переключить модуль wf121 на терминал. Используется для работы непосредственно с модулем wf121 и его программирования. |
softpart | Переключиться между загрузчиком и программой |
stayinloader on
stayinloader off |
После загрузки оставаться в загрузчике, не отдавая управления программе. on - включить этот режим, off - отключить (нормальная работа). |
info | Вывести информацию о текущей части программы:
We are in LOADER mode - загрузчик We are in NORMAL mode - рабочая программа. Также выводится вспомогательная информация о типе и идентификаторе процессора, версия ПО и дата трансляции. |
4. Управление через telnet
4.1 При наличии настроенной WiFi-сети и соединения с точкой доступа, команды, указанные в таблицах 1.х, могут подаваться на изделие через telnet.
Синтаксис команды:
telnet ip-адрес,
где ip-адрес должен быть указан тот, который был ранее установлен в изделии командой setip.
Пример: telnet 192.168.0.1
5. Пересылка файлов
5.1 Короткие файлы (до 1,5 кб) могут пересылаться через WiFi утилитой wget. Ограничение длины файлов связано с нечёткой работой модуля wf121.
5.2 Синтаксис для отправки файлов на изделие:
wget 192.168.0.1 --header="6:filename=fware.hex" --post-file=fware.hex
Здесь: 192.168.0.1 -ip-адрес изделия, заданный ранее командой setip, 6: - любое сочетание букв или цифр с двоеточием, после которого указывается имя файла-назначения в формате filename=ИМЯ_ФАЙЛА_НАЗНАЧЕНИЯ; --post-file=ИМЯ_ФАЙЛА_ИСТОЧНИКА. Таким образом, приведённая команда отправит на изделие с адресом 192.168.0.1 файл fware.hex и сохранит его на изделии с тем же именем.
Внимание! Указывать имя файла-назначения обязательно, даже если имя совпадает с именем файла-источника. Иначе любой файл будет загружен на изделие под именем file123.dat.
Пересылка файлов через терминал
5.3 Все файлы, в т.ч. размером более 1,5 кб, могут пересылаться через терминал USB. Последовательность действий приведена ниже и должна чётко соблюдаться. Любое отступление может привести к искажению файлов. Для примера использовано имя файла fware.hex, любой другой файл пересылается аналогично.
5.4 Последовательность действий для отправки файла в изделие.
5.4.1 Подключить изделие кабелем USB
При уже подключенном кабеле и запущенной утилите ввода cat </dev/ttyACM0& (например, если отправляется несколько файлов), пункты 5.4.1-5.4.2 пропустить.
5.4.2 Запустить утилиту cat на ввод в фоновом режиме с постфиксом "&":
cat </dev/ttyACM0&
5.4.3 Запустить утилиту cat на вывод:
cat >/dev/ttyACM0
5.4.4 Проверить выполнение команды ls, на экране должен отобразиться список файлов изделия либо сообщение "no files". При отсутствии сообщений проверить соединение по USB, наличие устройства в системе и т.д.
5.4.5 Выполнить команду отправки файла на изделие:
cat> fware.hex 172500
Здесь 172500 - размер файла в байтах.
После выполнения команды должно появиться сообщение о готовности изделия к приёму файла. С этого момента все данные, приходящие на изделие, интерпретируются как содержимое файла и записываются в файл.
5.4.6 Выйти из утилиты cat на вывод путём нажатия CTRL+C.
5.4.7 Запустить отправку файла из системы утилитой cat:
cat fware.hex >/dev/ttyACM0
5.4.8 Дождаться окончания отправки файла. Появление сообщения "file received" означает, что файл с точностью до байта передан в изделие.
5.4.9 Отсутствие каких-либо сообщений означает, что изделие приняло меньше байт, чем было указано в команде отправки файла. Получение сообщения file received и следом commande non valide означает, что изделие приняло больше байт, чем нужно. Следует повторить пп. 5.4.3...5.4.8.
5.4.10. Запустить утилиту cat на вывод:
cat >/dev/ttyACM0
5.4.11 Выполнить команду ls, убедиться, что отправленный файл находится в изделии.
5.4.12 При отправке нескольких файлов подряд (например, fware.crc и fware.hex), для первого файла выполняются п.п.5.4.1-5.4.9, для последующих файлов выполняются пп. 5.4.5-5.4.9, после отправки всех файлов выполняются пп. 5.4.10, 5.4.11 (контроль наличия всех отправленных файлов в изделии).
5.4.13 При использовани двух консолей, пункты 5.4.6, 5.4.10 исключаются. На первой консоли запускаются две утилиты cat для подачи команд и получения ответов, со второй консоли производится отправка файлов утилитой cat.
Внимание! Следует отличать утилиту cat, выполняемую на ОС компьютера (п.5.4.2, 5.4.3, 5.4.7) и команду cat> (п.5.4.5), которая выполняется на изделии.
Между пунктами 5.4.5 и 5.4.8 никаких команд ни с текущей, ни с другой консоли, ни по telnet выполнять нельзя! Если изделие ожидает приём файла, то все отправленные на изделие команды или данные будут записаны в принимаемый файл и исказят его.
5.5 Последовательность действий для запроса файла из изделия.
5.5.1 Подключить изделие кабелем USB
5.5.2 Подготовить компьютер к приёму файла утилитой cat на ввод. Запустить утилиту cat на ввод в фоновом режиме с постфиксом "&" и задать имя файла (например, file123), в который будет сохранены запрошенные с изделия данные:
cat /dev/ttyACM0 >file123 &
С этого момента все приходящие от изделия данные будут записаны в указанный файл, поэтому никаких других команд, кроме выдачи файла, на изделие подавать не следует, иначе все ответы от изделия будут записаны в файл.
5.5.3 Запустить утилиту cat на вывод:
cat >/dev/ttyACM0
5.5.4 Выполнить команду запроса файла с изделия:
cat< fware.hex
5..5 Дождаться окончания приёма фйла. Контролировать приём файла можно, обновляя список файлов и наблюдая за размером файла, в который сохраняются данные.
5.5.6 Выйти из утилиты cat на вывод путём нажатия CTRL+C.
5.5.7 Убить утилиту cat на ввод путём подачи команды killall cat.
Внимание! Следует отличать утилиту cat, выполняемую на ОС компьютера (п.5.5.2, 5.5.3) и команду cat< (п.5.5.4) , которая выполняется на изделии. Перед подготовкой к приёму в п.5.5.2 необходимо убедиться в наличии файла на изделии и не ошибиться в имени файла при наборе следующих команд, иначе все сообщения от изделия об ошибках и ненайденных файлах будут сохранены в принимаемый файл и исказят его.
5.6 Загрузка файлов в некорневой каталог и зарос файлов из некорневого каталога производится путём задания полного пути в командах cat< и cat>. Например, чтобы отправить (п.5.4.5) файл file1 размером 125 байт в каталог dir1, необходимо указать путь:
cat> /dir1/file1 125
Чтобы запросить (п.5.5.4) этот файл, необходимо указать:
cat< /dir1/file1
Каталог должен существовать заранее. Автоматически каталог не создаётся. Каталог можно создать командой mkdir.
6. Обновление ПО изделия.
6.1 Пересылкой файлов поместить на изделие файлы новой прошивки:
fware.hex - файл прошивки,
fware.crc - файл контрольной суммы.
6.2 Если изделие находится в рабочем ПО, командой softpart перевести изделие в режим загрузчика (на индикаторе должна отобразиться надпись "LoAd").
6.3 На изделии выполнить команду writehware. При наличии файлов из п.6.1 на изделии и совпадени CRC, начнётся прошивка изделия. Ход прошивки можно контролировать по ответным сообщениям от изделия. Индикатор изделия в ходе стирания и записи прошивки может изменять частоту сканирования (разряды могут зажигаться поочерёдно) - это нормальное явление.
6.4 После окончания прошивки управление будет отдано свежепрошитому ПО при условии, что ранее не подавалась команда stayinloader on.