RadioNet
Search datasheet  
RadioNet
РЕЙТИНГ ТЕНДЕРЫ ИССЛЕДОВАНИЯ DATASHEETS КАТАЛОГ СХЕМ СХЕМЫ ФОРУМ ДОСКА ОБЪЯВЛЕНИЙ
  ПОИСК ПО САЙТУ
  Опции:    
  ВХОД
 Логин:
 Пароль:
Забыли пароль?
 
WEB-RING CHIPINFO: электроника, электронные компоненты иприборы.

Cайт и форум для электриков
HARDW.net

Как сделать простой программатор с использованием DELPHI 5


Назначение

В этом проекте представлена программа предназначенная для программирования чипов фирмы DALLAS типа DS5000 и модулей на их основе, и чипов фирмы PHILIPS серии P89C51RA+/RD+. Эти чипы, как известно, имеют встроенный механизм программирования по последовательному протоколу RS232, поэтому для их программирования практически не требуется аппаратная часть. Запрограммировать такие микросхемы можно используя простейшую программу-терминал. Но в данном случае была цель сделать более удобный пользовательский интерфейс и подготовить базовую оболочку для универсального программатора сообщающегося со своей  аппаратной частью через последовательный интерфейс. 

Почему DELPHI

Разработка была выполнена в среде DELPHI 5. Именно благодаря уникальным возможностям этой среды появилась мысль о создании собственного программатора. Уникальность заключается прежде всего в том, что существует огромное количество бесплатных программных компонентов расширяющих возможности прикладной программы. Эти компоненты прекрасно визуализированы и тесно интегрированы с ресурсами (в отличии от MS Visual C++) и большинство имеет открытый исходный код  выполненный в той же среде (в отличии от  MS Visual Basic). 

Возможности программы

Управляющая программа может следующее:

  • Открывать и сохранять файлы в форматах HEX и BIN, при этом делать преобразования из одного в другой.
  • Открывать файлы размером до 64 Mb. При этом работа с файлом не зависит от выбранного для программирования устройства.
  • Позволяет произвольно изменять размер буфера данных .
  • Позволяет просматривать данные в HEX,BIN,DEC,ASCII форматах, а также 8-и или16-и битном виде.
  • Позволяет редактировать данные и производить 8 блочных арифметических операций. Блоки могут выделяться по диапазону или по выделению.
  • Позволяет осуществлять поиск данных и переход по адресу.
  • Расчитывает контрольную сумму блоков данных по 7-и стандартным алгоритмам.
  • Позволяет гибко настраивать формат сетки данных.
  • Позволяет настраивать параметры коммуникационного порта.
  • Запоминает настройки с момента последнего выключения.
  • Не загрязняет регистр Windows. Не использует драйверы третьих лиц. Состоит из одного файла. Запускается сразу без дополнительной инсталяции.

 

Недостатки

Некомерческий характер программы, конечно, способствует появлению в ней многочисленных ошибок о которых хотелось бы услышать со стороны, для чего открыта On-Line консультация. 

Компоненты

Программирование в DELPHI естественно предпологает использование компонентов сторонних разработчиков  В программе были использованы следующие компоненты:

  • Async32 v1.49  от  Varian Software Services NL c известного сайта  Torry Delphi Pages. Для более удобного программирования компонент был несколько переделан и его можно взятьздесь  url.php?url=http://www.finalas.lt/ea/programmer/Downloads/comport.zip. Этот компонент организует управление COM портом.
  • RxLib  с сайта http://www.rxlib.com/index.html. Обширный набор очень полезных компонент включая управление меню, сохранение настроек, усовершенствованные ComboBox и т.д.
  • HexGrid компонент собственного производства. Несколько сыроват, но готов к применению. Визуализирует данные в сеточной таблице в различных форматах.
  • CbDigEdit  собственная разработка, наследник TcomboEdit из библиотеки RxLib . Поле для ввода чисел в DEC или HEX нотациях без использования всяких префиксов и суффиксов. Нотации переключаются комбинацией [Alt]-[Arrow Down] . Имеет настраиваемый ограничитель сверху.
  • CRC собственный очень легкий компонент для расчета контрольной суммы. Модуль имеет массив из семи стандартных моделей в контексте модели CRC от  Rocksoft Pty Ltd. Массив может быть дополнен собственными моделями CRC. Для более подробного ознакомления с методикой расчета CRC предлагаю оригинальную статью  Ross N. Williams “A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS” 
Совместимость

Для того чтобы иметь возможность компиляции исходного кода необходимо установить все перечисленные выше компоненты. Компоненты написанны именно для версии DELPHI 5 и установить их в более старших версиях довольно трудно благодаря политике фирмы  Inprise Corporation. 

Методология построения программы

Центром программы является главная форма содержащая две таблицы данных. Таблицы наследуются от TcustomGrid с добавлением  динамически распределяемого буфера данных и методов работы с ним. Для каждого программируемого типа чипов создается отдельная форма наследуемая от формы  Device_template.dfm. После выбора из меню соответствующего чипа создается его форма и ее владельцем назначается панель в главной форме вследствии чего созданная форма помещается в рамки пространства панели.  Такое решение позволяет с одной стороны все управляющие компоненты держать в одной форме во время работы и одновременно не перегружать ее компонентами во время разработки.
Процесс программирования ведется отдельным потоком расположенным в модуле SendThread.pas с использованием низкоуровневых асинхронных вызовов API ReadFile,  WriteFile дающих максимальный выигрыш от многопоточности.

Рабочая программа доступна в виде исполняемого модуля:altprog_EXE.zip (397 Кб)

Перспективы

Программа уже предусматривает программирование чипов серии AVR AT90S2313 с использованием дополнительной аппаратной части. Однако она еще достаточно дорога для простого программатора. Следующим этапом проекта будет разработка недорогой аппаратной части универсального программатора.


Автор: Александр Елисеев.ea@eunet.lt
Инженер информационного отдела компании "Finalas", Вильнюс


Как сделать простой программатор с использованием DELPHI 5
Просмотров сегодня: 8291, всего: 8291
РЕЙТИНГ ТЕНДЕРЫ ИССЛЕДОВАНИЯ DATASHEETS КАТАЛОГ СХЕМ СХЕМЫ ФОРУМ ДОСКА ОБЪЯВЛЕНИЙ


Copyright © 2002-2021 RadioNet Admin

Страница создана за 0,01955 секунд.