Inferno #03
22 ноября 2002

Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Комментарии к тексту диплома.

<b>Диплом</b> - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Комментарии к тексту диплома.
      Комментарий к тексту диплома.

 Alone Coder 

  Я решил, что  имеет  смысл опубликовать 
материал  моей дипломной работы, чтобы она 
не пропала зря. Вдруг кому-нибудь поможет? 
Однако, текст  диплома  в чистом виде мало 
полезен, таких  можно в инете грести лопа- 
тами, поэтому мой - будет прокомментирован 
от и до :) 

            Начнём сначала.

   В  институт (Рязанскую  Государственную
Радиотехническую  Академию) я  поступил  в 
1997 году. Специальность  моя была  "Прог- 
раммное обеспечение вычислительной техники 
и автоматизированных систем" (2204.00) 
   Не спеша протекло время, и кончился пя-
ты курс. Мы сдали  госэкзамен и отпраздно-
вали последний звонок. Вторая половина пя-
того года осталась на написание диплома.

               Практика.

   Диплом  разрешалось  писать по выбору -
либо на выпускающей кафедре (ВПМ), либо на
произвольном предприятии. Некоторые предп-
риятия развесили  рекламу, в которой приг-
лашали  к себе выпускников. Я отказался от
варианта  написания на кафедре и пошёл пи-
сать диплом на РКБ "Глобус".Это РКБ распо-
ложено совсем рядом с моим домом,а в отде-
ле кадров работает моя тётя, поэтому выбор
мой должен  быть вам понятен ;) Единствен-
ное замечание в том, что предприятие госу-
дарственное, с секретами,то есть много про
него писать не буду. Сами догадаетесь, что
не договорю :) А шпионы, надеюсь, не дога-
даются ;)
   Итак, я заполнил документы,получил про-
пуск и получил  место работы и руководите-
ля.Мне дали три темы на выбор,я выбрал ту,
которая мне ближе - программирование одно-
кристальной  микроЭВМ. Справочник  по этой
ЭВМ мне дали сразу.Ничего сложного для во-
сприятия в нём не оказалось.

────────────────────────────────────────── 
  Но я немного  отступлю от темы и поста- 
раюсь познакомить вас  с людьми, имена ко- 
торых встретятся в тексте: 
  - Дунин Владимир Евгеньевич  - руководи- 
тель дипломного проектирования. 
  - Минаев Антон Сергеевич - работает  там 
же, сильно помогал :) 
  - Парфилова Надежда Ивановна  - консуль- 
тант от кафедры. 
  - Быстрова Татьяна Михайловна - моя сес- 
трёнка. 
────────────────────────────────────────── 

   Был определён точный срок сдачи титуль-
ного листа. На листе должны были быть соб-
раны подписи трёх консультантов. В сущнос-
ти, это  было несложно. Экономист и эколог
расписывались, проверив только, что в дип-
ломе  предусмотрены  главы по их предмету.
Консультанта  по  диплому  достаточно было
просто поймать.
   В  институте  выдавали  бланк задания и
титульный лист диплома, которые было нужно
заполнить. Посовещавшись с В.Е., мы запол-
нили черновой вариант, который я потом по-
казал Н.И. и после  пары замечаний перепи-
сал набело. Сложность была в том, что лист
задания включает в себя содержание будуще-
го диплома  и полный перечень графического
материала. Предсказать их,когда диплом ещё
не начат,чрезвычайно сложно. Пришлось имп-
ровизировать на основе готовых, что навер-
няка и подразумевалось.

       Дипломное проектирование.

   Текст диплома писался по частям.
   Первая  часть - введение и технико-эко-
номическое обоснование (я даже не знаю,как
это расшифровывается) была написана ещё до
начала работы, во время преддипломной пра-
ктики. Так  решил В.Е., и, я думаю, он был
прав.Надо же было с чего-то начинать.
   Расчет  времени  измерения тоже писался
до  завершения  программы, по меньшей мере
частично.Это пришлось делать потому,что он
подводил  теоретическую базу под неё, хотя
бы условно. С куска программы, отвечающего
за передачу/сжатие,я и начинал писать про-
грамму, причём  на  нём же и закончил - не
такой  уж  он  оказался простой :) Кстати,
глазастый читатель сможет заметить в прог-
рамме многие обороты,присущие чисто спект-
румовскому программированию ;)
   Экономическую  часть  и  БЖД необходимо
было согласовывать с соответствующими пре-
подавателями, и поэтому они писались отде-
льно. Причем,написавший раньше получал вы-
году в том смысле, что ему пришлось меньше
стоять  в очереди к  преподавателю :) Осо-
бенно если учесть,что обоим преподавателям
нужно было показаться на глаза как минимум
несколько раз :)
   Разумеется, эти две запутанные части на
NN процентов  являлись повтором соответст-
вующий  частей  из дипломных работ прошлых
годов. Например, моя часть о БЖД перекоче-
вала из диплома Минаева А.С. :)
   Экономический расчет - довольно сложен.
Дело  в том, что рассчитанные по известным
методикам (из  библиотечных книжек) значе-
ния  приходилось  аккуратно корректировать
так,чтобы кровь из носа,а программа окупа-
лась. То  есть, стоила как можно дешевле и
имела положительную  экономическую отдачу.
Более того,чтобы расчетный срок разработки
соответствовал действительному времени ди-
пломного проектирования.
   Остальные части записки я даже не смогу
прокомментировать - ничего не помню из то-
го, какие  события были с ними связаны! 8)
Так или иначе, но диплом получился средне-
го допустимого размера, не сильно раздутый
и не совсем уж пустой.Принципиальных огра-
ничений  на размер нам не ставили, но пре-
дупредили - талмудов не писать! Для графо-
манов, правда, была определённая лазейка -
известно, что  в  текстовом редакторе Word
можно менять как размер шрифта, так и меж-
строчное расстояние, а с ними и ширину/вы-
соту  используемой  части  страницы. Никто
особо не ругался за несоблюдение стандарт-
ных  параметров  листа, но  Танюшка где-то
пронюхала про некий ГОСТ,на который следо-
вало ориентироваться. Параметры страницы в
моем дипломе были такие:

  Верхнее поле: 1,5 см;
  Нижнее поле: 1,5 см;
  Левое поле: 2,5 см;
  Правое поле: 1,25 см;
  Номер - в правом верхнем углу (расстоя- 
ние от верхнего края до колонтитула - 0,75 
см, шрифт Times 14).Содержание - третья по 
счёту страница, непронумерованная; 
  Шрифт для текста: Times New Roman 14;
  Межстрочный интервал: полуторный;
  Шрифт для программ: Courier New 10.
  Межстрочный интервал: одинарный;
  В чём измеряется размер шрифта в Ворде, 
я не знаю :) 

   Оболочка  журнала не позволила нам при-
вести  диплом  со всеми этими параметрами,
поэтому все специфические шрифты, формати-
рования и т.п.показаны цветом - получилось
даже чуть ли  не  лучше, чем было на самом
деле! ;)

   После проверки консультантом от кафедры
(Н.И.) было  выявлено довольно много недо-
чётов, и пришлось перепечатать  и заменить 
50 листов. Диплом  к тому  времени был уже 
переплетён, и  его расплели заново. Диплом
удалось  сдать  в срок, я был вторым после
старосты,кто успел это :) Правда,потом нам
назначили  второй срок, но уже более жёст-
кий, на сдачу диплома со всеми  подписями.
После  этой сдачи диплом мы увидели бы то-
лько на столе комиссии во время защиты.

                Защита.

   Рассмотрим  теперь  мою  речь.  У  меня
было  два  примера  докладов в электронном
виде - один побольше, один поменьше. Я со-
вершенно  не  знал, какого  размера должна
быть  моя лекция, поэтому сначала написал,
сколько получилось. Дополнительным услови-
ем  было  также то, что доклад должен быть
основан  на  плакатах и обязательно должен
давать ссылки на все представленные плака-
ты (у меня их 7) в порядке  их  нумерации.
Что  того  хуже, в процессе доклада должен
демнстрироваться некий ролик, состав кото-
рого был никому не известен. Ходили слухи,
что он мог являться чем угодно - от анима-
ции до скриншотов,переключаемых кнопкой. У
меня не было анимации и даже идей по пово-
ду неё (изображать тыкание мышкой по опци-
ям не мог хотя бы  потому, что у моей про-
граммы нет интерфейса  по определению :)),
однако  скриншотов у меня не было тоже, по
тем же причинам, и я решил собрать рисунки
из текста диплома и несколько дополнитель-
ных иллюстраций (штук десять в сумме).
   Итак,первый вариант речи не ссылался ни
на рисунки, ни на плакаты:

────────────────────────────────────────── 
     Доклад, вариант 1 (8524 байта)

                Введение

  Темой данного дипломного проекта являе- 
тся  разработка  программного  обеспечения 
для специализированного логического анали- 
затора. 
  Логический  анализатор представляет со- 
бой устройство,служащее для считывания по- 
следовательности логических уровней с нес- 
кольких сигнальных линий одновременно. При 
этом  логический анализатор синхронизирует 
начало считывания с моментом появления не- 
которой заданной комбинации сигналов. 
  Разрабатываемый на предприятии РКБ<Гло- 
бус> специализированный  логический анали- 
затор  (сокращённо  СЛА) предназначен  для 
использования  в процессе наладки оборудо- 
вания, подключаемого  к шине межмодульного 
интерфейса (ММИ), и ориентирован на снятие 
сигналов с этой шины. 
 
  Применительно к данной задаче недостат- 
ками серийно  выпускаемых аналогов являет- 
ся: 
 - громоздкость  (например, отечественный 
прибор <Анализатор временных диаграмм шес- 
тнадцатиканальный 825> весит 25 килограмм) 
 - сложность  подключения к шине (необхо- 
димо разместить множество щупов) 
 - невозможность  усовершенствования при- 
бора на предприятии. 
 
  Особенность СЛА в том, что для достиже- 
ния портативности  он лишён устройства ин- 
дикации, и роль этого устройства выполняет 
персональная ЭВМ,подключаемая к СЛА по по- 
следовательному интерфейсу RS-232. 
  СЛА управляется  командами, подаваемыми 
с ПЭВМ, и возвращает  считанные  данные на 
ПЭВМ по тому же последовательному порту. 
  СЛА построен  на  базе  однокристальной 
микроЭВМ (сокращённо  ОЭВМ) AT89C52  фирмы 
Atmel. Эта  микросхема  входит в семейство 
MCS-51, отечественные  аналоги - семейство 
МК51. На  чертеже  2 приведена регистровая 
модель, распределение памяти и структурная 
схема этого микроконтроллера. 
  Микроконтроллер имеет 256 байт резиден- 
тной  памяти данных (сокращённо РПД) и 128 
байт памяти регистров  спецфункций (сокра- 
щённо  РСФ). Регистры доступны по адресу в 
блоке РСФ. Верхняя половина РПД адресуется 
только с помощью косвенной регистровой ад- 
ресации.Микроконтроллер имеет средства ра- 
боты с однобитными данными - некоторые ре- 
гистры  и адреса  РПД  допускают адресацию 
отдельных битов. Имеется четыре двунаправ- 
ленных  8-разрядных  порта. Линии порта P3 
могут использоваться для  подключения пос- 
ледовательного интерфейса и внешних источ- 
ников прерываний. Через линии портов P0,P2 
к микроконтроллеру  можно подключить внеш- 
нюю память данных (ВПД) или внешнюю память 
команд. 
 
  Функциональная схема устройства показа- 
на на чертеже 1. 

[Ред: Все рисунки ищите далее]

  Сигнал, снятый с шины, коммутируется на 
регистр. Схема  управления  выдаёт  стробы 
записи содержимого регистра в двухпортовое 
ОЗУ.Частоту задаёт таймер-счётчик 1. Запи- 
сь  в ОЗУ  прекращается после переполнения 
счётчика  3. Счётчик  3 запускается  после 
появления синхронизирующей комбинации, ко- 
торую  обнаруживает схема сравнения. Схема 
сравнения  запускается  после переполнения 
счётчика  2. Значения в счётчики и в схему 
сравнения заносит микроконтроллер. 
 
  Преимуществами  такого  устройства  СЛА 
является: 
 
 - быстрота  и  надёжность  подключения - 
СЛА подключается к шине через один из сло- 
тов. 
 - интерфейс пользователя - наглядный ди- 
алог  оператора  с логическим анализатором 
посредством ПЭВМ. 
 - возможность составления баз данных си- 
гналов, что может позволить,например,прои- 
зводить автоматический поиск неисправности 
при отладке однотипных приборов. 
 
           Постановка задачи 

  В рамках данного дипломного проекта ре- 
шалась задача написания и автономной отла- 
дки программы  для  однокристальной микро- 
ЭВМ, управляющей работой СЛА. 
 
1. Программа  должна  обмениваться данными 
с ПЭВМ  по  последовательному  интерфейсу
RS-232 со скоростью 19200 бод. 
2. Формат посылок между  СЛА и ПЭВМ должен 
соответствовать  стандартам, принятым  на
предприятии. 
3. Программа  должна  выполнять  следующие 
основные функции:запуск и останов измере-
ния, задание  режимов измерения, передача
данных  измерения на ПЭВМ, самоконтроль и
выдача состояния логического анализатора. 
4. Все действия  должны  производиться  по 
командам, передаваемым с ПЭВМ. 

               Реализация 

  После запуска и инициализации программа 
должна входить в бесконечный цикл приёма и 
обработки сообщений. Это показано на блок- 
схеме общего алгоритма, на чертеже 3. Соо- 
бщения принимаются кадрами, поэтому там же 
приведён  алгоритм приёма кадра с обработ- 
кой ошибок,а также структура самого кадра. 
  По команде <запуск измерения>, подавае- 
мой с ПЭВМ, программа заносит заданные ис- 
ходные  значения  в  таймеры-счётчики  и в 
схему  сравнения, после  чего  запускается 
схема управления считыванием в ОЗУ. 
  СЛА имеет несколько режимов синхрониза- 
ции запуска: когда синхронизирующая комби- 
нация приходится на начало,на середину или 
на конец интервала измерения. Возможен та- 
кже запуск с задержкой после синхронизиру- 
ющей комбинации. Программа обработки кома- 
нды <запуск измерения> пересчитывает вход- 
ные данные - параметры этой команды,подан- 
ной  с ПЭВМ, в параметры схемы сравнения и 
начальные значения таймеров,после чего вы- 
даёт  на  схему управления импульс <пуск>. 
Этот алгоритм  и  структура  кадра команды 
<запуск измерения> приведены на плакате 4. 
 
  Считывание либо останавливается автома- 
тически  после получения нужного числа то- 
чек, либо прерывается командой с ПЭВМ <ос- 
танов измерения>. 
  Во  время ожидания окончания считывания 
ПЭВМ передаёт запросы о состоянии логичес- 
кого анализатора. 
  После  считывания  данных  с шины к ОЗУ 
получает доступ микроконтроллер.По команде 
<читать канал> или <читать ОЗУ> данные из- 
мерения передаются на ПЭВМ. 
 
  Расчёт  общего  времени измерения (куда 
входит  в том числе время ожидания запуска 
и время  прохождения  запросов  и ответных 
сообщений) показал,что в процессе передачи 
данных  измерения  желательно использовать 
сжатие (то есть компрессию). На базе мето- 
дов RLE мной был разработан метод, специа- 
льно предназначенный для сжатия такого ро- 
да информации,и оптимальный для реализации 
на данном микроконтроллере.Результаты рас- 
чёта времени измерения показаны на чертеже 
5. 
  На графиках показана зависимость време- 
ни измерения  от относительной частоты из- 
меряемого  сигнала. Сигнал с более высокой 
средней  частотой хуже пакуется данным ме- 
тодом, поэтому  перед передачей происходит 
подсчёт  количества  фронтов  в сигнале на 
интервале измерения, и если это количество 
превышает  предельное, передача  идёт  без 
сжатия. А если сигнал постоянный,то он ко- 
дируется одним байтом. 
  Сжатие происходит параллельно с переда- 
чей данных на ПЭВМ.Алгоритм показан на че- 
ртеже 6. 
  Вначале  происходит анализ корректности 
параметров команды, происходит анализ ста- 
тистики сигнала,если он не был произведён. 
На основании  этого анализа выбирается ме- 
тод кодирования (со  сжатием  или без сжа- 
тия). Сжатие  происходит сегментами по 128 
байт. Кодируются длины последовательностей 
одинаковых бит.Для повышения скорости гла- 
вного цикла (так как  подсчёт длины после- 
довательности должен укладываться в проме- 
жуток времени между передачей  байт) циклы 
подсчёта нулей и единиц реализованы разде- 
льно. 
 
      Заключение (Экономика, БиЭП) 

  В экономической части рассчитаны затра- 
ты на разработку устройства, а также подс- 
читан срок окупаемости разработки. Резуль- 
таты расчета окупаемости приведены на чер- 
теже 7. 
  В разделе  Безопасности и Экологичности 
Проекта  проведен  анализ условий труда на 
рабочем месте оператора. Сделаны выводы по 
кондиционированию  помещения  и  приведены 
необходимые расчеты. 
 
                  *** 

  К сожалению, на  данный  момент система 
наладки  на основе специализированного ло- 
гического  анализатора разработана не пол- 
ностью. Опытный образец устройства пока не 
собран,что не позволило провести верифика- 
цию в полном объёме.Программа отлаживалась 
на модели,с помощью программного интерпре- 
татора  и специальной программы-генератора 
тестирующих последовательностей,написанной 
на Delphi. Результаты  отладки приведены в 
записке. 
 
  Преимуществами  разработки устройств на 
однокристальных микроЭВМ является: 
 - простота  аппаратной  части  и поэтому 
легкость настройки. 
 - распараллеливание разработки. Один ра- 
зработчик  может  проектировать аппаратную 
часть,другой - программу для микроконтрол- 
лера, третий - программу  для  управляющей 
ПЭВМ. 
 - гибкость - возможность  модификации  и 
расширения  функций программными средства- 
ми. 
 
   Продолжением  данной работы будет явля- 
ться  комплексная отладка программы в сос- 
таве устройства, а также возможные модифи- 
кации и расширение функций. 
────────────────────────────────────────── 

   В институте выяснилось, что кнопкой пе-
реключать  картинки нехорошо (в смысле ни-
как нельзя), то есть никуда не денешься, а
автоматизировать  процесс  придётся. Труд-
ность нашлась в том, что программа-демонс-
тратор  была не моя, а Минаева (чего добру
пропадать, поюзали  прошлогоднюю :). Тогда
Минаев  отдал мне исходники, а с ними кучу
нестандартных  компонентов для Delphi, ко-
торые ещё установить надо, а без них прог-
рамму  не откомпилировать! Вставил таймер,
исправил...
   Время, выделяемое для доклада,составля-
ет 7 минут. Я прочитал  доклад  с экрана и
решил, что  7 минут  хватит. Тем не менее,
стоило мне попробовать рассказать его наи-
зусть (без бумажки, согласно предъявляемых
требований), и  я понял, что в тексте есть
лишнее :)
   В первую очередь я стал сокращать длин-
ные  цепочки  слов  в труднозапоминающихся
фразах, а также убрал некоторые абзацы,на-
пример, выводы в конце.
   Вычеркнул и стал учить...
   У меня плохая память на текст (я плохой
зубр ;),поэтому сразу возникли места (обы-
чно начала абзацев), где спотыкаешься и не
помнишь, что дальше. (Вы мотайте на ус,са-
мим  потом пригодится! :)) Я пометил такие
места  на бумажке восклицательным знаком и
выучил  особо. Потом  расставил  ссылки на
плакаты (номера двух плакатов пришлось по-
менять местами) и на картинки в демо-роли-
ке, исходя их предположения, что они будут
меняться  равномерно (по 30 секунд на каж-
дую из 13 картинок).То есть на защите вре-
мя от времени  я буду как бы кивать на эк-
ран. Исходя из тех же предположений,я выб-
росил части текста, не подходящие к рисун-
кам (и не жалко :)
   Итак,точки в тексте,соответствующие на-
чалу демонтрации плакатов,я пометил цифра-
ми. Раскатал плакаты по столу, и,снимая по
очереди, пытался рассказать речь.
   Картинки распределил примерно так: вна-
чале висит заголовок,потом - когда про не-
го рассказывают - "Анализатор 825",потом -
рисунок корпуса AT89C52 из документации,во
время показа функциональной схемы - струк-
турная схема, потом длинный пассаж иллюст-
рирует скриншот ассемблера, потом - табли-
ца команд и запросов,абзац о сжатии должна
была  иллюстрировать схема формата сжатия,
дальше - скриншоты  процесса  отладки  и в
конце концов - заключительный титр.
   Этот доклад уже существенно меньше пре-
дыдущего:

────────────────────────────────────────── 
     Доклад, вариант 2 (5173 байта)

  Логический  анализатор представляет со- 
бой устройство,служащее для считывания по- 
следовательности логических уровней с нес- 
кольких  сигнальных  линий одновременно, с 
запуском  по  появлению некоторой заданной 
синхронизирующей комбинации сигналов. Раз- 
рабатываемый  на  предприятии РКБ <Глобус> 
специализированный  логический  анализатор 
(сокращённо  СЛА) предназначен для исполь- 
зования  в процессе  наладки оборудования, 
подключаемого  к шине межмодульного интер- 
фейса (ММИ), и ориентирован на снятие сиг- 
налов с этой шины. 
  Применительно к данной задаче недостат- 
ками  серийно выпускаемых аналогов являют- 
ся: 
 - громоздкость (например,  отечественный 
прибор <Анализатор временных диаграмм шес- 
тнадцатиканальный 825> весит 25 килограмм) 
 - сложность  подключения к шине (необхо- 
димо разместить множество щупов) 
 - невозможность  усовершенствования при- 
бора на предприятии. 
 
  Особенность СЛА в том, что для достиже- 
ния портативности  роль устройства индика- 
ции выполняет персональная ЭВМ. 

Чертеж 1



  СЛА  построен  на  базе однокристальной 
микроЭВМ  AT89C52  фирмы  Atmel  Микрокон- 
троллер  имеет 256 байт резидентной памяти 
данных. Имеется  четыре двунаправленных 8- 
разрядных порта.Линии порта P3 могут испо- 
льзоваться  для подключения последователь- 
ного  интерфейса и внешних источников пре- 
рываний. Через линии портов P0,P2 к микро- 
контроллеру  можно  подключить внешнюю па- 
мять данных или внешнюю память команд. 
 
  Функциональная схема устройства показа- 
на на чертеже 

Чертеж 2



  Сигнал, снятый с шины, коммутируется на 
регистр. Схема  управления  выдаёт  стробы 
записи содержимого регистра в двухпортовое 
ОЗУ. Частоту  задаёт таймер-счётчик 1. За- 
пись в ОЗУ прекращается после переполнения 
счётчика  3. Счётчик  3  запускается после 
появления синхронизирующей комбинации, ко- 
торую  обнаруживает схема сравнения. Схема 
сравнения  запускается  после переполнения 
счётчика  2. Значения в счётчики и в схему 
сравнения заносит микроконтроллер. 
 
  Преимуществами СЛА является:
 - быстрота  и  надёжность  подключения - 
через разъем. 
 - наглядный  диалог оператора с логичес- 
ким анализатором посредством ПЭВМ. 
 - возможность составления баз данных си- 
гналов  -  можно  автоматизировать наладку 
однотипных приборов. 
 
  В рамках данного дипломного проекта ре- 
шалась задача написания и автономной отла- 
дки программы  для  однокристальной микро- 
ЭВМ,управляющей работой СЛА.Программа дол- 
жна  обмениваться данными с ПЭВМ по после- 
довательному  интерфейсу RS-232 со скорос- 
тью  19200 бод. Основные функции: запуск и 
останов измерения, задание режимов измере- 
ния, передача данных измерения на ПЭВМ,са- 
моконтроль  и выдача состояния логического 
анализатора. 
 
Чертеж 3



  После запуска и инициализации программа 
должна входить в бесконечный цикл приёма и 
обработки сообщений. Это показано на блок- 
схеме  общего  алгоритма, на  чертеже  Со- 
общения принимаются кадрами,поэтому там же 
приведён  алгоритм приёма кадра с обработ- 
кой ошибок,а также структура самого кадра. 
  СЛА имеет несколько режимов синхрониза- 
ции запуска: когда синхронизирующая комби- 
нация приходится на начало,на середину или 
на конец интервала измерения.Возможен так- 
же запуск с задержкой после синхронизирую- 
щей комбинации.Программа обработки команды 
<запуск  измерения>   пересчитывает  пара- 
метры  команды в параметры схемы сравнения 
и начальные значения  таймеров, после чего 
выдаёт на схему управления импульс <пуск>. 
 
Чертеж 4



  После  считывания  данных  с шины к ОЗУ 
получает доступ микроконтроллер.По команде 
<читать канал> или <читать ОЗУ> данные из- 
мерения передаются на ПЭВМ. 

Чертеж 5



   Расчёт  общего  времени  измерения  по- 
казал,что в процессе передачи данных изме- 
рения  желательно  использовать сжатие. На 
базе  методов  RLE мной был разработан ме- 
тод, специально предназначенный для сжатия 
такого  рода информации, и оптимальный для 
реализации на данном микроконтроллере. 
  На графиках показана зависимость време- 
ни  измерения от относительной частоты из- 
меряемого  сигнала. Сигнал с более высокой 
средней  частотой хуже пакуется данным ме- 
тодом, поэтому  перед передачей происходит 
подсчёт  количества  фронтов  в сигнале на 
интервале измерения, и если это количество 
превышает  предельное, передача  идёт  без 
сжатия. А если сигнал постоянный,то он ко- 
дируется одним байтом. 
  Сжатие происходит параллельно с переда- 
чей  данных  на  ПЭВМ. Алгоритм показан на 
чертеже 

Чертеж 6



  Сжатие  происходит  сегментами  по  128 
бит. Кодируются  длины последовательностей 
одинаковых бит.Для повышения скорости вну- 
треннего  цикла (так как он должен уклады- 
ваться в промежуток  времени между переда- 
чей  байт) циклы  подсчёта  нулей и единиц 
реализованы раздельно. 
 
  Автономная  отладка проводилась с помо- 
щью  программного интерпретатора и специа- 
льной программы-генератора тестирующих по- 
следовательностей, написанной  на Delphi и 
включающей анализ содержимого ответных со- 
общений СЛА.Результаты отладки приведены в 
работе. 
 
  В экономической части рассчитаны затра- 
ты на разработку устройства, а также подс- 
читан срок окупаемости разработки. Резуль- 
таты расчета окупаемости приведены на чер- 
теже. 

Чертеж 7







  Опытный образец устройства пока не соб- 
ран.Продолжением данной работы будет явля- 
ться  комплексная отладка программы в сос- 
таве устройства, а также возможные модифи- 
кации и расширение функций. 
  На этом доклад закончен! 
────────────────────────────────────────── 

  Я поймал маму и стал доходчиво излагать
текст. В третьей попытки получилось :) То-
лько в последний раз  удалось обойтись без
заминок  и отступлений. Дальше  я поймал и
Таню - рассказал доклад и ей. Получилось:)
  Оставалось не забыть речь до завтрашне-
го дня ;)
   Я пошёл в институт с новой, синхронизи-
рованной под доклад, версией ролика, и,что
интересно, она не заработала! Причина была
только в том, что Минаев соригинальничал и
снабдил процесс переключения страничек ще-
лчком на доступном звуковом устройстве,при
отсутствии - на спикере. Через порт. И под
wINDOWS nt не  прокатило, кто  же  знал!!!
Пришлось бегать  домой, исправлять и нести
обратно!

              Назавтра...

   В списке  на  защиту  в этот день я был
записан  первым. Поэтому  я оказался лишён
полезного удовольствия послушать других...
   Защищаться мы должны были четвёрками. А
точнее, так.
   Имелось два стенда для плакатов. На ка-
ждом стенде помещается шесть. (Мой седьмой
плакат  с  экономическим расчётом пришлось
прикрепить с перехлёстом и,кроме того,спу-
стить до самого пола.) Перед началом защи-
ты четвёрка  расклеивает  все свои плакаты
по стендам, входит комиссия, остаётся пер-
вый докладчик, объясняет комиссии свою ра-
боту, отвечает на вопросы и уходит. Прихо-
дят два юноши из дипломников, поворачивают
стенд, покидают зал, тут  же входит второй
докладчик,защищается,уходит. Комиссия тоже
уходит отдыхать,но может пока полюбоваться
плакатами. Двое  в это время ставят второй
стенд на место первого. Потом - защищаются
третий и четвёртый студенты, и,наконец,ко-
миссия уходит выставлять оценки. Когда она
возвращается,счастливых студентов расстав-
ляют в линейку  и поздравляют с получением
почётного  звания  инженера :) Разумеется,
диплом выдадут потом :)

   Итак, мы  разместили плакаты по стендам
(при этом, разумеется, не хватило кнопок),
и я остался защищаться.
   В комнате была комиссия и оператор. Ко-
миссия - целиком  из наших преподавателей,
все  свои, но всё-таки мне оказалось не по
себе  ;)  На первых словах я поперхнулся и
говорил не своим голосом,но потом смог вы-
ровняться и заговорил увереннее.В картинки
деморолика я не попал - точнее,попал толь-
ко в первую, с осциллографом, сказалось то
же волнение, но в выделенное время уложил-
ся! А  это  уже половина удачной защиты :)
Один человек из нашей группы не смог полу-
чить красный  диплом именно потому, что не
смог хорошо  прочитать  доклад! (Но мне-то
красный диплом и не светил ;))
   Вопросы  комиссии  строились  следующим
образом.
   Сначала  был зачитан отзыв руководителя
дипломного проектирования (положительный).
   Потом  была  оглашена рецензия (отрица-
тельная), и мне было предложено прокоммен-
тировать,почему в тексте не оформлена про-
граммная  документация (подсказка: как она
должна быть оформлена,не знает никто ;), и
почему не приведены результаты отладки.
   Реценцию я и сам читал,поэтому справед-
ливо возразил,что программная документация
будет оформлена после комплексной отладки,
а в прилагаемой пояснительной записке мож-
но ознакомиться с листингом и списком про-
цедур;заметил также,что результаты АВТОНО- 
МНОЙ отладки в тексте всё-таки приведены,а 
комплексная  может  состояться  лишь после
сборки макета устройства, ни больше ни ме-
ньше.
   Никто  не  стал спорить, и мне всё-таки
обратили  внимание  на  недостатки  работы
(один из членов комиссии обязан был прочи-
тать диплом). Недостатки оказались таковы-
ми:

 1. Список  сокращений  приведён в конце, 
что неудобно. Я согласился. 
 2. Показанная  на  одном из листов блок- 
схема алгоритма не имеет выхода (что непо- 
рядок, как тут же заметил присутствовавший 
преподаватель  структурного программирова- 
ния). Я возразил, поскольку программа пре- 
дставляет  собой прошивку ПЗУ, из которого 
выхода нет. А как же сброс, спросили меня? 

   На этом претензии закончились.

────────────────────────────────────────── 
  Надо сказать,что на самом деле в дипло- 
ме оказалось больше недостатков, многие из 
которых я обнаружил только сейчас %) В ос- 
новном  это ошибки и неряшливости в оформ- 
лении: 

  - В содержании подпункты четвёртой гла- 
вы нумеровались как 1.1, 1.2 и т.д. (обра- 
тите  внимание, эта  ошибка - уже  на  4-й 
странице записки!!!) 
  - Некоторые таблицы остались непронуме- 
рованы. 
  - Некоторые разрядности на шинах, изоб- 
ражённых на функциональной схеме СЛА, при- 
ведены неверно. 
  - В программе  есть недосмотр - возмож- 
но, в некоторых случаях неверно определяе- 
тся длина блока при передаче. 
  - (самый  весёлый  :) отсутствуют 71-72 
страницы! Дамп  памяти оказался на пересе- 
чении  двух областей документа с независи- 
мой нумерацией страниц (так,видимо,захотел 
Word ;),и нумерация поехала при первой во- 
зможности, не  помогла даже проверка в три 
пары глаз перед печатью! 
────────────────────────────────────────── 

   Дальше начались собственно вопросы. Ко-
миссия  не  могла беседовать со студентами
подолгу, и поэтому были заданы вопросы то-
лько поверхностного характера:

  1. Почему была  выбрана именно эта мик- 
росхема? 
  2. Почему  был выбран именно этот алго- 
ритм сжатия? Чем хуже Хаффман? (Объяснение 
было в тексте, я только озвучил его.) 
  3. Почему не использовались языки высо- 
кого уровня? 

   Всё оказалось предсказуемо, поэтому от-
ветить было не так уж и трудно :)
   И мне поставили пятёрку :)

               Happy end!
        Желаю успехов в защите!

                        Alone Coder 7ix02



Другие статьи номера:

Sofтинка - Новая версия триколорного редактора 8 color editor v 0.04. Улучшения, результаты тестирования и список изменений.

Inferno - Об оболочке.

Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Комментарии к тексту диплома.

Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Часть 1.

Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Часть 2.

Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Часть 3.

Диплом - Диплом Alone Coder-а. Разработка программного обеспечения для специализированного логического анализатора. Часть 4.

Inferno - Вступление от редакторов.

Inferno - Авторы журнала.

Размышления - В гостях у Кристобаля ХУНТЫ. Методика оценки фантастических произведений и способы придумывания новых фантастических идей.

Размышления - Как стать писателем. Руководство.

Inferno - Письма в редакцию.

Поэзия - Стих "Кто я?"

Возможности Спектрума - Pseudo-Color: миф или реальность? Алгоритм перевод чёрно-белого изображения в цветное.

Gamedev - WORM-255F. Код игры Питон размером в 255 байт с комментариями.

Юмор - Литературные анекдоты.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Премьера - НЛО-2. Дьяволы бездны.
WANTED - Розыск программ...
Приветы - Поздравляю Сергея Окрокова с 14 - летием !
Мозаика - Ляпы, оговорки и просто немного неумелых попыток выразить свою мысль, взятые из электронных изданий.
Злоба дня - Commandore и человек: хроника перехода на другую платформу.

В этот день...   21 ноября