------------------------------------------------------------------------------------------- ИНСТРУКЦИЯ ПО ПРИМЕНЕНИЮ ПО: "СЕРВЕР ОБНОВЛЕНИЙ TALENTUM SU ver 1.3" описание для функционального набора А ------------------------------------------------------------------------------------------- ОБЕСПЕЧЕНИЕ ЗАГРУЗКИ ПОЛЬЗОВАТЕЛЬСКОГО ПО Для правильной работы требуются: 1. Запущенный СО с подключенным ini файлом, сконфигурированным под: нужный бинарный файл нужный MAC/SN номер 2. Устройство должно быть подключено к порту, поддерживающему скорость 10 мегабит (не все Eth порты на ПК поддерживают 10BASE-T) 3. Должен быть запущен DHCP сервер, например на роутере в локальной сети (есть свичи с DHCP, например TL-SG105E) если нет локальной сети, можно запустить локальный DHCP сервер: https://github.com/PJO2/tftpd64/wiki https://bitbucket.org/phjounin/tftpd64/downloads/ Если DHCP сервера нет в принципе, то загрузчик микроконтроллера применит следующие настройки по умолчанию: IP DEV 192.168.0.251 MASK 255.255.255.0 GATE 192.168.0.1 4. Используются следующие порты UDP: броадкаст пакеты от устройства, для поиска сервера 5008 после установления соединения сервера и устройства 5. Обеспечивается загрузка только UP1. ------------------------------------------------------------------------------------------- ПРЕОБРАЗОВАНИЕ БИНАРНОГО ФАЙЛА В НЕШИФРОВАННЫЙ КОНТЕЙНЕР Разместить файл типа soft.bin (размером меньше 120кб) в корень папки. Прописать в config.ini , в поле SourceBinFile = soft.bin. Затем надо перезапустить CO. В корневой папке появится файл с расширением .bct, представляющий бинарный образ пользовательской программы. Файл будет иметь имя файла типа F9506FE7.bct и фиксированный размер 122 880 байт, где F9506FE7 - контрольная сумма файла. В последующем сервер обновлений будет использовать эту контрольную сумму для определения необходимости обновления пользовательской программы. Далее необходимо вписать в config.ini: в поле BinContainer = имя файла.bct в поле PassBinContainer = пароль шестнадцатеричными цифрами для разрешения приема нешифрованного бинарного файла После процесса преобразования исходный файл xxx.bin изменит расширение на xxx.obin и больше преобразований над ним выполнятся не будет. ------------------------------------------------------------------------------------------- НАСТРОЙКА CO Запуск СО производится .bat файлом: Talentum_SU_A.exe config1.ini где config.ini - любой ini файл с соответствующей структурой. Можно создать несколько разных ini файлов и запускать их соответствующими bat файлами. ------------------------------------------------------------------------------------------- КОНФИГУРАЦИОННЫЙ ФАЙЛ [DEVICE] ; Список серийных номеров, подлежащих обновлению (шестнадцатиричные!!!) NA = 123456781234 NB = 123456781234 NC = 383B26870090 ND = 123456781234 [DIRECTIVE] ; 0 - только чтение свойств dev ; 1 - автоматическое программирование для серийного номера из списка [DEVICE] ; 2 - автоматическое программирование для любого серийного номера ; 3 - автоматическое программирование принудительное (даже при совпадении прошивки и файла) AutoProg = 1 ; 0 - ингорировать обнаруженное dev, если ПО указанной версии ; 1 - передавать команду ЗАПУСК_ПРИЛОЖЕНИЯ , если ПО указанной версии AutoJumpApp = 1 ; 1-400 - задержка на ожидание ответа в мс при программировании Flash. ; 10 - оптимально для интросети ; 3 - тоже работает DelayWrite = 3 [DEBUG] ; 0 - нет отладочного вывода ; 1 - отладочный вывод сокращенный ; 2 - отладочный вывод полный DebugPrint = 0 [FILE] ; 0 - нешифрованный бинарный контейнер TypeContainer = 0 ; Имена файлов ; нешифрованный бинарный контейнер BinContainer = C9001F1D.bct SourceBinFile = soft.bin [PASS] ; пароль для разрешения обработки BL ; нешифрованного бинарного контейнера PassBinContainer = 12345678 [ID_INI_FILE] ; не менять никогда! Это ID INI файла IdIniFile = 136719067 ------------------------------------------------------------------------------------------- ИНДИКАЦИЯ И НАСТРОЙКИ НА УСТРОЙСТВЕ ИНДИКАЦИЯ СВЕТОДИОДАМИ • СИД “CPU”: не светит - устройство не имеет питания светит - устройство включено мигает - передача пакетов в сеть • СИД “Link”: не светит - устройство не имеет питания светит - есть "линк" на порту мигает - прием пакетов в сеть по ETH10 • СИД “BOOT”: не светит - BL передал управление пользовательскому ПО светит - BL стартовал мигает - BL активирован и идет работа с СО КОНФИГУРАЦИЯ ПЕРЕКЛЮЧАТЕЛЯМИ • Кнопка “Сброс” нажатие вызывает перезагрузку системы (старт BL) • Переключатель SB1 “Разрешение обновления/Запрет обновления” разомкнут - разрешение обновления ПОСИ замкнут - запрет обновления ПОСИ • Переключатель SB2 “Загрузка ПОСИ/Тестовое ПО” разомкнут - запуск ПОСИ замкнут - запуск ПОТСТ ------------------------------------------------------------------------------------------- ПОРТИРОВАНИЕ БУТЛОАДЕРА 1. Какие выводы использует BL на CH32F207VGT: PC9, PC8, PC7, PC6 -Eth трансформатор; PD15 - LED CPU - анод LED к +; PD14 - LED LINK - анод LED к +; PC10 - LED BL - анод LED к +; PC11 - SA1 - разрешение обновления (open)/запрет обновления(close) джампер на землю, PU enable; PC12 - SA2 - загрузка UP1 (open)/загрузка UP2(close) джампер на землю, PU enable; 2.Как распределяется память внутри МК: #define APPLICATION_UP1_BEGIN (0x8010000) // адрес старта пользовательского приложения UP1 #define APPLICATION_UP1_SIZE (122880) // 120кБ - размер #define APPLICATION_UP2_BEGIN (0x802E000) // адрес старта пользовательского приложения UP2 #define APPLICATION_UP2_SIZE (8192) // 8кБ - размер 3. Ватчдог. Бутлоадер активирует ватчдог, период сброса 3 секунды. Важный момент - бутлоадер будет перезагружаться постоянно, пока не будет прошита UP! Пользовательская программа UP обязательно должна сбрасывать IWDT с этим периодом, отключить IWDT она уже не может в принципе! ------------------------------------------------------------------------------------------- ОПИСАНИЕ РАБОТЫ БУТЛОАДЕРА: Общие понятия: 1. ID chip = MAC address = SER NUM Device Описание: После старта и теста BL проверяет наличие линка. Нет линка - переходим на UP, иначе ждем получения ip по DHCP в течении 10 секунд. Нет DHCP - переходим на UP. Получили IP - некоторое время рассылаем броадкаст пакет с информацией о себе (MAK и CRC UP). Если не будет ответа за таймаут от SU - переходим на UP. Если SU принял этот бк-пакет. Из него он получает информацию о: 0. IP адресе BL 1. MAK(серийный номер - SN) устройства, для понимания, надо ли обновлять это конкретное устройство 2. CRC UP, для определения, какая версия UP прошита в UP сейчас. Надо понимать что пустая область UP тоже отдаст свою CRC (на новом МК). Если SU должен обновить UP для указанного SN (определяем это по несовпадению CRC UP и совпадению SN), то он шлет BL ответный пакет с командой перевода BL на подготовку к обновлению UP и далее идет процесс обновления UP. Если не должен, то SU не отвечает на броадкаст пакет или отвечает командой перехода на UP. -------------------------------------------------------------------------------------------