80

Как я из электриков в разработчики электроники попал. Часть IV

Найдя микросхему приёмника DTMF, я засел за разработку нового устройства, с иным алгоритмом обмена данными между диспетчерским блоком и удаленными подстанциями.

Во-первых, я понял, что мне не нужна высокая скорость реакции на какие-либо события в подстанции. Во-вторых, с учетом первого, я отказался от индивидуальных приёмников и передатчиков для каждой из линий связи. В результате этого схема и плата значительно упрощались, хотя появлялась некоторая сложность с цикличным управлением каждой линией.

На практике это выражалось в таком алгоритме: к передатчику и приёмнику диспетчера подключалась нужная линия связи, в линию передавался сигнал управления или опроса, в ответ приходила тоновая посылка. Линия отключалась, подключалась следующая и так по кругу.

Уж чего я только не придумывал, чего только не применял! Но как бы я не изголялся, а размеры будущей платы были бы ну очень большие: около 12-15 микросхем! Нет, я мог её развести и изготовить, но душа уже требовала чего-то этакого! И этакое нашлось.


Напомню, что я занимался в радиокружке при городском радиоклубе. Там более взрослые радиолюбители собрали цифровую шкалу-частотомер (среди радиолюбителей известная как «макеевская схема»). Сердцем устройства был миниатюрный микроконтроллер: микросхема с 18 выводами (вроде был PIC16F84A или PIC16F628A). (Для тех, кто не в курсе: Микроконтроллер — МК, является мелким компьютером: в одной микросхеме есть процессор, память и устройства связи. Плюс есть нестандартные для процессоров компьютеров блоки таймеров, счетчиков, энергонезависимой памяти…)

В той схеме микроконтроллер заменял примерно 20 корпусов обычных микросхем!


Логично, что мне захотелось применить МК в своём устройстве.

Но было несколько «но»:

- для работы МК нужна программа, а я её не мог написать,

- для загрузки программы — «прошивки» — был нужен программатор, а у меня его не было, а фирменный стоил почти всю мою зарплату,

- консультироваться было не у кого, а свободного доступа к интернету у меня тогда не было (он был на заводах, да и нескольких «мажоров» типа детей директоров крупных контор города).


Но от самой идеи использовать МК в своём блоке я не отказался. Используя интернет на работе, я рылся в сети: искал учебники и самоучители по написанию программ для МК. Наткнулся на простую схему: микросхема приёмника на MT8870, микроконтроллер pic16F84 и ключи для управления реле. Схема называлась как-то вроде «Управление устройствами через телефонную линию». Прилагалась и демо-прошивка с парой ограничений в работе. И мёня попёрло! Я скачал какой-то дисассемблер, расковырял программу и сутками пытался понять как всё это работает. Но ничего не получалось! Во-первых, я не знал устройство МК и работу его периферии. Во-вторых, ассемблер PIC был весьма специфичен (на тот момент я только пару раз пощупал ассемблер процессора Z80, но почти ничего не понял – книжка была как-то нелогично построена).

Тогда я пошел самым простым для себя путём: недостатки программы хотел обойти и решить исключительно аппаратными методами: добавлением внешних микросхем. Но когда я поглядел что получается – приуныл: получается унылое гэ!


Но судьба улыбается смелым :) — Я нашел автора устройства (судя по адресу почты – из СПб) и написал ему письмо. И через какое-то время он мне ответил. Мало того: он подарил мне исходник программы! Господи, я чуть не танцевал от счастья: код был прекрасно прокомментирован! И я начал его изучать. Чистый асм, с кучей комментариев и подсказок. Вадим, я тебе до сих пор благодарен!


Параллельно я искал программатор. И кто-то мне подсказал простой вариант на резисторах, стабилитроне и паре конденсаторов, который работал через COM-порт ПК. Оболочка была под DOS, но тогда это была не проблема: во времена Windows-98 ДОСовские программы работали неплохо и из-под самой Windows. Но практика показала, что под DOS устройство работает надёжнее. Для экспериментов я собрал отдельный системник на Пентиум-1.

Уже и не помню, как я уговорил руководство купить несколько микроконтроллеров.

И где-то через пару месяцев я смог внести в программу нужные изменения! И они заработали. Заработал и самодельный программатор! Первые разы я загружал прошивку в МК не дыша, отключив дома всю нагрузку, которая могла включиться или отключиться во время загрузки (и часто забывал включить холодильник обратно, за что получал по хребту :)


Так я получил небольшую плату, на который было всего три микросхемы: приёмник DTMF, передатчик DTMF, микроконтроллер. Да, всего три мелких чипа! Плата получилась размером с небольшую открытку. И это работало!

Снова демонстрация работы устройств руководству, снова их «небольшие хотелки», снова мой ответ «реально, но надо время», снова внесения доработок…

С момента спора до момента этой версии устройств прошло почти полтора года. Процесс доработок и добавления «хотелок» начальства превратил процесс разработки в бесконечный. И моего начальника стало это раздражать: я почти всё время на работе занимался только этим проектом. И он предложил это как-то завершить итоговой конструкцией.

В то время на работе знакомого (эл.сети другого региона) монтировали мнемощит, на котором было много лампочек и выключателей. И я загорелся сдеалть нечто подобное: вывести всё управление в диспетчерской на мнемощит! Но если паять я умел, то руками работать – совершенно не очень… Получилось коряво просто страшно. От этой идеи решили отказаться.


И тут снова улыбка судьбы: начальство уверовало, что я реально могу сделать всяко-разно и в очередные «хоетлки» добавился пункт контроля действий диспетчера. То есть, куда-то сохранять время включения и отключения уличного освещения. Дело в том, что некоторые диспетчера позволяли себе забить и забыть вовремя включить или отключить уличное освещение в городе. Я сказал, есть микросхемы энергонезависимой памяти, есть микросхемы часов, но я не смогу быстро написать такую программу: для освоения шины i2c мне требуется время на опыты. Но начальство заартачилось: надобно быстро! (тогда я не знал с чего такая прыть в них появилась).


И как-то в разговоре мой начальник сказал: а если диспетчерский блок сделать на основе компьютера? Ну, тогда это можно реализовать за месяц. На том и порешили.

Но главный инженер подложил мне очередную свинью: нафига ему давать хороший комп?! Сломает еще! Дайте ему списанный древний!

И дали: Пентиум-1, посыпавшийся винчестер, убитый в нуль монитор с «севшим» кинескопом («сел» так, что был немного виден только красный). Круто да?

Но снова я пошел на принцип: привод дисковода ведь цел. Значит, сделаю загрузку программы с дискеты. Благо делать это часто не требовалось. А вот логии посуточно можно накапливать в памяти, и в полночь сохранять на вторую дискету — для этого я поставил второй дисковод 3.5 дюйма.

А вместо монитора будет ранее сделанный мнемощит. На этом с начальником отдела и порешили.

Далее встал вопрос написания программы для компьютера. Тут было проще: я уже имел некоторый опыт программирования на Спектруме (Бейсик), УКНЦ (Бейсик и Паскаль). Я планировал всё написать на ТурбоПаскале. И уже начал работу. Но встретил знакомого, что-то зацепили эту тему, а он мне прямо в лоб: а кто еще в вашей конторе и среди твоих знакомых владеет Паскалем? Ну и пофигу, что тебе он нравится. Главное, кто после тебя это будет поддерживать!

И я реально призадумался. Он пояснил так: надо выбрать язык программирования такой, чтобы даже без тебя могли в твоей программе разобраться. Паскаль знают единицу «компьютерщиков», вот спроси у вашего сисадмина: сможет он с нуля разобраться с программой на Паскале? Узнал: сможет, но неделю будет курить описание языка и разбираться с моим кодом. Тогда знакомый предложил взять всеми оплёванный Бейсик, который идёт в комплекте с компьютером. Мол, как бы «компьютерщики» не плевались, но как он работает понимают даже самые тупые.


Был выбран компилирующий вариант Бейсика – QuickBasic. На нём я написал всю программу. И оно работало! Снова собралось руководство, пощупало, пощёлкало – всё отображалось на небольшом мнемощите, собранном на боковой стенке самого системного блока. Так это устройство и ввели в работу.

Я уже стал постепенно остывать от мыслей: «А вот это можно было бы сделать иначе, красивее, надёжнее»…


И тут произошло одно очень интересное событие, о настоящей подоплёке которого я узнал только через несколько лет. Вызывает меня технический директор в кабинет. Захожу, а там всё наше начальство. К нам едет губернатор. Надо показать, как у нас автоматизировано всё и вся! Надо что-то аховое сделать. Что тебе надо для этого?

А, так как голова всё равно продолжала думать немного наперёд даже после сдачи проекта, то я попросил нормальный комп, монитор, мышь и месяц.

— Не, — сказали начальники. — Месяц это дофига! Давай за две недели!

И работа снова началась!

Я придумал и реализовал в коде интерфейс управления и отображения данных. Прикрутил сохранение данных на винчестере после каждого изменения. Добавил отображение всех ситуаций на подстанциях в виде замещающихся строк (потом покажу, не знаю, как это описать коротко). Показал получившееся руководству. Те заплясали.

— А можно прикрутить мышку? А то как-то кнопки на клавиатуре учить лень… — заявили начальники.

И снова я засел за работу. И получил от мелкософта под дых! Дело в том, что к компилирующему QuickBasic не было нормальной библиотеки работы с мышкой. Она то не инициализировалась, или отваливалась в процессе работы. Тогда я за ночь переписал код под интерпретирующую версию компилятора. Там были какие-то отличия, но я уже не помню. Но зато мышь работала нормально!


Снова переписал интерфейс программы. И вот что получилось:

Стал обучать диспетчеров. И тут произошло то, чего я просто не ожидал: они максимально возможными средствами отказывались от работы с новой телемеханикой! Они строчили жалобы: новая телемеханика глючит, врёт, зависает. Хотя доказать факты не могли ни одним примером. Как стало потом известно, их не устраивал контроль за ними: они же цари, а тут приходится в нужное время идти и включать, отключать освещение города вместо любимого телевизора или игры в карты. Тогда технический директор приказом оформил использование только новой телемеханики.

Внешний вид диспетчерского места:

Нет, губернатор к нам не приехал. Был его зам. Но контора подготовилась: в местной газете появилась хвалебная статья как у нас всё автоматизировано, чуть ли не каждая подстанция под контролем! Ну, и так еще на газетный разворот.


А потом я узнал (случайно увидел на Доске почета города в администрации), что под мою автоматику город получил неплохой такой гранд.Мне за работу заплатили вроде 2 или 3 мои ЗП (был оформлен договор подряда).


В следующем посте закончу повествование.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества