Мы используем микроконтроллеры, даже не задумываясь об этом, в таких проектах, в которых когда-то нам пришлось бы работать со связкой из логических чипов 74-й серии. Но кто из нас когда-либо задумывался над эволюцией микроконтроллеров? Пора вернуться на несколько десятилетий в прошлое и посмотреть на первый коммерчески доступный микроконтроллер, Texas Instruments TMS1000.
Представьте себе мир без микроконтроллеров
Игрушка Speak & Spell от Texas Instruments 1978 года была типичным примером использования TMS1000
Не будет преувеличением сказать, что без микроконтроллеров многие из самодельных проектов, демонстрирующихся на сайтах типа Hackaday, никто бы не стал делать. Те из нас, кто помнят время до появления общедоступных и лёгких в программировании микроконтроллеров, смогут подтвердить, что компьютерное управление в проекте создания небольшого устройства хотя и было возможным в принципе, но вместо использования единственного чипа вам пришлось бы мастерить целую компьютерную систему. Помню системы, собранные на досках для прототипирования Veroboard (от компании Vero Precision Engineering Ltd) на базе процессоров Z80, причём кроме Z80 на плате присутствовали EPROM, чипы RAM, микросхемы серии 7400, и периферийные чипы типа 6402 UART или порта 8255 I/O. Помигать светодиодом или последить за микропереключателями – такие задачи требовали серьёзных затрат, как по труду, так и по стоимости, поэтому мы решались на это, только когда они были необходимы для проекта. Для меня всё изменилось в начале 1990-х, когда на рынок вышли первые доступные микроконтроллеры с EEPROM на борту, однако к тому моменту сами чипы уже существовали пару десятилетий.
Сегодня это может показаться странным, но для инженера из 1970-х настольный калькулятор был более интересен, чем настольный компьютер. И всё же многие из первых микрокомпьютеров проектировались с оглядкой на калькуляторы, как, к примеру, Intel 4004. Производители калькуляторов способствовали развитию кремниевых чипов, и в Texas Instruments это привело к созданию первых микроконтроллеров «всё на одном чипе», которые разработали в 1971 году в качестве предварительно запрограммированных CPU, на основе которых можно было бы делать калькуляторы на одном чипе. Только через несколько лет, в 1974-м, компания выпустит TMS1000, микроконтроллер на одном чипе для широкого спектра задач, и это будет первый подобный чип, который поступит в широкую продажу.
Стоит остановиться поподробнее на используемой терминологии, поскольку в 1974 году не все современные слова использовались повсеместно. TI рекламировала TMS1000 как микрокомпьютер, поскольку им он казался компьютером «всё в одном», не требующим внешней периферии. Сегодня мы бы назвали микрокомпьютером то устройство, на котором вы, вероятно, читаете эту статью, происходящее от далёкого предка Altair 8800, появившегося в том же году, но тогда терминология, как и технология, находилась в младенческом состоянии. Слово «микроконтроллер» использовали тогда для обозначения компьютера со встроенным I/O – в оксфордском словаре английского языка приводится такая цитата из технического бюллетеня от IBM 1971 года – но универсальности это определение, судя по всему, не снискало. Сравните с более современным определением «системы на чипе», SoC, которое обозначает полноценный компьютер общего назначения, дающий доступ к своей шине, а не просто набор линий I/O или периферии, как микроконтроллер.
Насколько простым должен быть микроконтроллер?
Внутренняя архитектура TMS1000
TMS1000 тогда был первым коммерчески доступным микроконтроллером. Но что это был за чип? В оригинальной линейке у него было четыре варианта, все с одним и тем же 4-битным процессором гарвардской архитектуры, но с различным количеством линий I/O и размерами ROM и RAM. У семейств TMS1000 и TMS1200 было 8192 бит программы в RM и 256 бит RAM, а у TMS1100 и 1300 — в два раза больше. Были версии с поддержкой высоких выходных напряжений для управления вакуумно-люминесцентными индикаторами, в корпусах с 28 и 40 контактами. Внутренняя их архитектура по сегодняшним меркам была чрезвычайно простой – никаких банков регистров или конвейеризации, которых можно было бы ожидать от современных схем. У него не было такого большого ассортимента периферии, доступной для современных микроконтроллеров, а релейные элементы I/O дополнялись простой программируемой логической матрицей. Его можно было использовать как кодер или декодер, к примеру, в данной спецификации его используют в качестве декодера для 7-сегментного дисплея.
Сложный процесс разработки ПО для TMS1000
Но экспериментаторы не могли покупать такой чип поштучно, поскольку его ROM-маску можно было программировать только в момент производства. Всё программирование шло на симуляторе на мейнфрейме с разделением доступа, поддерживаемом TI. В результате работы симуляции компьютер выдавал стопку перфокарт, которую, после очень сложных процессов отладки и тестирования, можно было использовать для создания масок для кодирования ROM. На заказ можно было изменить даже микрокод, получив расширение возможностей для 43 инструкций устройства. Программирование по маске также означало, что все те TMS1000, которые вы сможет найти сегодня, всё ещё содержат те программы, с которыми их изготовили; и без контекста в виде оригинального железа они будут бесполезными, кроме как в виде исторической диковинки. Однако это не останавливает некоторых продавцов от того, чтобы ставить на них душераздирающие ценники, но всё же, если вам очень нужен TMS1000 для коллекции, вы можете его приобрести по не очень высокой цене.
Если в 1970-х он был повсеместно, почему сегодня его не встретить?
К 1980-м мир захватили микропроцессоры и микроконтроллеры 8 и 16 бит, поэтому кроме как невидимой работы в недрах калькуляторов TI, линейка TMS1000 в итоге отошла от дел и незаметно уплыла в историю электроники. Интересно отметить, что некоторые её современники трудятся и по сию пору – вы всё ещё можете купить производные от PIC, 8051, Z80 и даже 6502, при том, что прямых потомков 4-битных процессоров TI уже не осталось. Одной из причин этого оказалось быстрое развитие технологий, однако наверняка свою роль сыграла и трудность в разработке ПО для них. Перечисленные 8-битные CPU всё ещё пользуются популярностью потому, что каждый может взять доску для прототипирования, программатор EPROM и начать писать программу, поэтому они и породили костяк разработчиков, хорошо разбирающихся в их архитектуре. Разработчиков же для TMS1000 приходится искать днём с огнём, и их явно недостаточно для того, чтобы потребовать разработки потомков 4-битных чипов. В своё время было разработано несколько версий процессоров с поддержкой внешней ROM, но с тех пор прогресс ушёл вперёд, и подрос на 4 бита.
Сегодня вы можете столкнуться с TMS1000 в основном из-за электронной игрушки 70-х годов, такой, как Speak & Spell от самой TI, или Simon от Milton Bradley. Даже эти игры пережили свой собственный процессор; и сегодня можно купить современную версию игры Simon у Mattel, а линейка обучающих речи игрушек от TI продолжалась вплоть до 1990-х годов. Однако этот процессор оставил невероятное наследие, и его всё ещё можно встретить сегодня в электронном устройстве с микроконтроллером. Если у вас есть такое устройство, знайте – у вас есть небольшой кусочек истории!
Автор: Вячеслав Голованов