SPM

Материал из Sibek
Версия от 09:58, 21 октября 2016; T0r (обсуждение | вклад) (1 версия импортирована)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Подкачка 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.