|
|
|
|
|
|
|
Технология универсальных алгоритмов |
|
|
Одним из наиболее частых вопросов, которые задают при выборе программатора - это как часто обновляется программное обеспечение и насколько быстро появляется поддержка новых микросхем. Учитывая темпы развития современной элементной базы, отслеживать появление новых микросхем даже от 5-10 наиболее крупных производителей и своевременно добавлять их поддержку, занятие далеко не простое и не дешевое. Расширение штата программистов, каждый из которых отвечал бы за конкретное направление, приведет к существенному удорожанию программатора и, как правило, к увеличению числа ошибок. Также рано или поздно у всех фирм встает вопрос, как быть с поддержкой программаторов, которые по тем или иным причинам больше не выпускаются.
Решение, которое напрашивается само собой - это открыть исходные коды и предоставить возможность продвинутым пользователям самостоятельно развивать и совершенствовать программное обеспечение, но, ни одна фирма не пойдет на такой шаг, и не только из коммерческих соображений. Примеров тому предостаточно... Кроме того, поддерживать такой проект сможет только очень узкий круг высококвалифицированных специалистов.
Другой путь - это создать такое железо и программное обеспечение, которое понимало бы язык описания микросхем, обеспечивало бы поддержку и исполнение скрипт файлов. Такое решение позволит практически бесконечно обновлять списки поддерживаемых микросхем, а также значительно расширит круг людей, которые реально смогут использовать эти возможности.
Именно этот путь выбран для дальнейшего развития программаторов ТРИТОН. Начиная с лета 2005 года, начался постепенный перевод всех микросхем на универсальные алгоритмы. Был создан визуальный редактор параметров микросхем с поддержкой drag-and-drop и компилятор скрипт файлов. К концу 2007 года практически все микросхемы, поддерживаемые программатором, работали по “технологии универсальных алгоритмов”. Главное отличие этой технологии от предыдущих алгоритмов - это аппаратная независимость, т.е. алгоритм или скрип-файл просто выполняет последовательность действий, присущих той или иной группе микросхем, не привязываясь к железу программатора, а стандартные процедуры, которые он вызывает, обеспечивают возможность программного распределения сигналов по выводам панельки. Номер вывода, на который будет подано напряжение или сформирован какой-то сигнал, прописывается в параметрах микросхемы и может быть изменен с помощью встроенного редактора, непосредственно в оболочке программатора.
Кроме стандартных параметров, таких
как значения напряжения питания и программирования,
начальный и конечный адрес микросхемы, параметры
конфигурации и т.д., в редакторе можно задать:
состояние
выводов микросхемы перед подачей напряжений;
порядок
включения напряжений питания и программирования;
длительность
задержки между подачей напряжений и началом работы;
коды
некоторых команд, логику работы, и другую
специфическую информацию...
Для работы с универсальными алгоритмами
редактор позволяет задать адреса для:
распределения по выводам панельки шины данных (8
или 16 бит);
распределения по выводам панельки шины адреса (до
24 бит), с поддержкой мультиплицирования;
управляющих сигналов (CS, OE, WR) для режимов
чтения, записи и сверки;
формирования земли, напряжения питания или
программирования;
последовательного (тактируемого) ввода - вывода, с
заданным направлением и скоростью;
формирования импульсов заданной полярности и
длительности;
проверки и смены состояния любого вывода...
Наиболее яркий пример, демонстрирующий
возможности новой технологии - это способность
программатора работать с микросхемой, которая
установлена в любое место в панельке!!! Причем, для
этого достаточно мышью перетащить микросхему в новое
место...
Каково же реальное применение этой
технологии, какой выигрыш она дает и что конкретно
предлагает, кроме красивого “генеральского эффекта” и,
на первый взгляд, бесполезных “наворотов” ? Вот
несколько примеров:
В первую очередь эта технология позволяет
значительно сократить время и упростить механизм
добавления новых микросхем. Сейчас для создания нового
алгоритма порой затрачивается меньше времени, чем на
изучение соответствующей спецификации. А для добавления
однотипной микросхемы достаточно просто изменить
параметры ближайшего аналога, с чем сможет справиться
практически любой пользователь, ознакомившейся с
документацией на новую микросхему.
Во-вторых, эта технология полностью
исключает ошибки программирования, поскольку сам
алгоритм работает на уровне блок-схемы (установить
адрес, данные, сформировать импульс записи, считать
данные...), а распределение выводов задается в
параметрах микросхемы, в соответствии с цоколевкой из
документации. При таком подходе не требуется глубоких
навыков в программировании, а чтобы не допустить ошибки
при назначении сигналов, нужно только лишь немного
внимания.
В-третьих, благодаря этой технологии
можно значительно уменьшить количество переходных
панелек необходимых для работы с микросхемами в
различных корпусах, а также использовать практически
любые переходники и адаптеры от других программаторов.
Для этого нужно просто переназначить сигналы
программатора, в соответствии с разводкой панельки и
цоколевкой микросхемы.
Возможность свободного переназначения
сигналов позволяет использовать один адаптер для
внутрисхемного программирования для работы с любыми
типами микросхем. Увеличив длительность задержки при
включении питания снимаются проблемы с большими
емкостями по питанию при внутрисхемном программировании,
а изменив скорость тактирования можно работать с более
длинным кабелем и на более низких напряжениях питания.
Изменяя порядок подачи напряжений, можно реанимировать
“залоченные” AVR и некоторые PIC контроллеры, и т.д. ...
|