[an error occurred while processing this directive]
Загрузка кода в ADMC
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено admc401 30 сентября 2002 г. 13:40

Тут как-то спрашивали насчет загрузки ADMC401BST кодом с платы промышленного контроллера. Мой вариант -


UART Boot Loader Protocol

Параметры настройки COM порта мастера и SPORT1 ADMC401BST - 125000, 11 bits (1 Start bit, 8 Data bits, 2 Stop bits, No Parity).

Мастер отправляет на SPORT1 ADMC401BST код 0x87. Затем мастер отправляет на SPORT1 ADMC401BST код 0xC7. После приема кода 0xC7, ADMC401BST возвращает мастеру код 0x71, что является подтверждением к началу загрузки данных в память ADMC401BST по протоколу UART Boot Loader Protocol. Данные передаются и принимаются в стандартном для UART формате LSB First. Загрузка данных в память ADMC401BST должна осуществляться мастером из некоторого массива данных, расположенного в защищенной от чтения памяти программ мастера, соответствующего определенной задачи управления и включающего данные инициализации памяти программ PM и памяти данных DM ADMC401BST. После приема ADMC401BST кода 0xC7, в ADMC401BST начинает работать программа загрузчик (далее загрузчик), выполняющая загрузку принятых от мастера данных с поддержкой режима эхо, т.е. каждый посланный на SPORT1 ADMC401BST байт будет в том же виде обратно возвращен мастеру. При этом посланный мастером байт и байт принятый обратно должны совпадать. При несовпадении посланного и принятого байта, мастер делает аппаратный сброс и перезапуск ADMC401BST сигналом RTS. При этом сигнал CTS с платы ADMC является для мастера ответным и означает готовность ADMC401BST к повторной загрузке. Перед отправкой на SPORT1 ADMC401BST кода 0x87, мастер проверяет состояние линии CTC и ждет появления сигнала CTS. На загрузку данных в память ADMC401BST мастеру дается 10 попыток. При колличестве несовпадений более 10, мастер должен выдать соответствующий код ошибки и прекратить загрузку ADMC401BST. При совпадении посланного и принятого байта, мастер посылает на SPORT1 ADMC401BST следующий байт данных и так далее, пока из массива данных, расположенного в защищенной от чтения памяти программ мастера на SPORT1 ADMC401BST не будут отправлены все данные. Таким образом, загрузка данных в память ADMC401BST идет согласно схеме: принял байт - ответил, а работа мастера - отправил байт - принял - сравнил…

Протокол работы монитора

После отправки мастером на SPORT1 ADMC401BST всех данных и полного завершения процедуры загрузки данных в память ADMC401BST, с адреса 0x0060 памяти программ PM ADMC401BST начинает работать основная исполняемая программа. Наряду с разнообразными функциями управления, основная исполняемая программа содержит программу монитор (далее монитор).

Параметры настройки COM порта мастера и SPORT1 ADMC401BST - 125000, 11 bits (1 Start bit, 8 Data bits, 2 Stop bits, No Parity).

Монитор ADMC401BST работает только с содержимым памяти данных DM ADMC401BST и может исполнять либо команду записи данных в память данных DM ADMC401BST (код 0x00), либо команду чтения содержимого памяти данных DM ADMC401BST (код 0x01). Обе команды монитора имеют уникальный 8-ми байтовый формат. При этом для каждого принятого монитором ADMC401BST байта существует свой код возврата. Данные передаются и принимаются в стандартном для UART формате LSB First. Мастер должен посылать на SPORT1 ADMC401BST 8-ми байтовую последовательность синхронно с работой ADMC401BST. Для синхронизации работы мастера и ADMC401BST мастер должен периодически посылать на SPORT1 ADMC401BST код 0x80 и ждать когда монитор ADMC401BST ответит специальной синхронизирующей последовательностью кодов 0xAA, 0x55. Синхронизация работы мастера и ADMC401BST будет достигнута если после отправки кода 0x80, мастер последовательно примет коды синхронизации 0xAA, 0x55. После достижения указанной синхронизации работы мастера и ADMC401BST устройствам становится ясно, что следующий байт будет первым байтом одной из двух команд монитора. Поскольку обе, исполняемые монитором ADMC401BST команды используют уникальный 8-ми байтовый формат, синхронизация работы мастера и ADMC401BST выполняется автоматически, однако описанная дополнительная проверка вхождения в синхронизм мастера и ADMC401BST должна существовать обязательно.

Область допустимой и безопасной работы монитора ADMC401BST соответствует полю адресов в памяти данных DM ADMC401BST [0x3800 - 0x3B5F].

Data Memory Write Command

BYTE Description Expected Response

0 0x00 Byte 0 is echoed back
1 Lower Byte of DM Data Word Byte 1 is echoed back
2 Upper Byte of DM Data Word Byte 2 is echoed back
3 Lower Byte of DM Destination Address Byte 3 is echoed back
4 Upper Byte of DM Destination Address Byte 4 is echoed back
5 0x00 Byte 5 is echoed back
6 0x00 0xAA
7 0x00 0x55


Data Memory Read Command

BYTE Description Expected Response

0 0x00 Byte 0 is echoed back
1 0x00 Byte 1 is echoed back
2 0x00 Byte 2 is echoed back
3 Lower Byte of DM Address Byte 3 is echoed back
4 Upper Byte of DM Address Byte 4 is echoed back
5 0x01 Byte 5 is echoed back
6 0x00 Lower byte of DM word
7 0x00 Upper byte of DM word

Примечание.

Каждая команда монитора ADMC401BST начинается с кода 0x00.

Запись в память данных DM ADMC401BST производится монитором ADMC401BST после приема 7-го байта из 8-ми байтовой последовательности.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru