8-битовая читалка электронных книг, однокристальный телевизор etc

11 октябрь, 2011 - 11:41Андрей Зубинский

Без преамбул. Никогда не стеснялся удивляться аппаратно-программным читалкам электронных книг. И пока не перестаю этого делать. Удивляет меня в них отсутствие хоть какой-нибудь принципиальной новизны и неудобство ряда привычных по бумажной книге действий. По-моему, это первый случай в истории высоких технологий, когда электронное устройство, оснащённое избыточной вычислительной мощностью, принципиально уступает своему неэлектронному прототипу и ничего кроме несколько изменённого механизма продаж, на деле читателю (не потребителю! именно читателю) не предлагает.

И вот тут как по заказу профессионалы-самодельщики реализовали читалку электронных книг на... 8-битовом микроконтроллере. Причём с минимально необходимой "обвеской" периферийными микросхемами. Так, для работы читалки понадобилось всего 2,5 KB встроенного ОЗУ и 32 KB встроенной же флеш-памяти, микросхема акселерометра и разъём SD карточки . Здесь нет опечатки. Речь идёт о килобайтах. При этом читалка работает с растровым цветным экраном 320x240 с 16-битовым пикселем. Да, читалка использует собственный формат, но для него есть транслятор из распространённых форматов. С поддержкой индексации страниц, работающей быстро для вычислительных возможностей 8-битового микроконтроллера. В общем, посмотреть на образец читалки в действии можно в блоге её разработчика. И повторить конструкцию тоже можно - вся документация на эту разработку свободно доступна, включая исходные коды всех программ (и прошивки микроконтроллера, само собой).

Очень показательный проект.

Давайте посмотрим на цифры. Вычислительное ядро этой читалки - микроконтроллер производства компании Atmel Atmega32u4. Всё, чем располагал конструктор читалки - простенький 8-битовый процессорчик приятной архитектуры, 2,5 KB ОЗУ, 32 KB ПЗУ (флеш-память), 1 KB энергонезависимой памяти (EEPROM), программируемой программно-аппаратными средствами микроконтроллера, интегрированный на кристалле контроллер USB 2.0, и аналоговоя подсистема, отражающая целевое назначение микроконтроллера - 12-канальный 10-битовый АЦП (этот контроллер предназначен для автомобильной промышленности и управления двигателями). Тактовая частота процессорного ядра - 16 MHz. Никаких гигагерцев, ничего подобного. Процессор выполняет большинство команд за один такт, но не все. Эта конфигурация микроконтроллера не содержит подсистемы взаимодействия с ёмкостными датчиками (сенсорами).

Итак, 2,5 KB ОЗУ, 32 KB памяти программ, 16 MHz тактовой частоты. Ну и посмотрите видео с работающей читалкой. На скорость реакции интерфейса, на скорость "листания" страниц. И посмотрите на параметры своего смартфона или таблета. И на работу вашей любимой читалки электронных книг. Может быть это я такой недалёкий, а вы что-то рассмотрите, но я принципиальных отличий не вижу. По-моему, 8-битовая читалка даже быстрее работает, чем то, что я использую при 800 MHz процессоре, 512 MB ОЗУ и гигабайтах энергонезависимой памяти. Ну, справедливости ради, разрешение экрана у моей читалки повыше.

Поэтому у меня есть очевидный вопрос:

уважаемые разработчики читалок электронных книг, объясните мне, пожалуйста, что принципиально нового и удобного для чтения вы мне как читателю (про)дали за счёт использования избыточных 32-битового процессора, 784 MHz тактовой частоты и 480 512 MB оперативной памяти?

 

UPD

извините, в вопросе ошибся из-за непривычности цифр и вычел килобайты из мегабайтов :( бывает

Я не вредничаю, мне просто интересен ответ. Я прекрасно понимаю, что, например, реализовать полный аналог Microsoft Word или Excel 2010, Adobe Photoshop, National Instruments Circuit Design Suite и т.п.  такими ресурсами, которые есть у 8-битового 16 MHz микроконтроллера, принципиально невозможно. Это я понимаю хорошо и вопросов не задаю. Но когда я вижу нечто похожее на утку, что крякает как утка, плавает как утка и вообще ведёт себя как утка, я знаю, что это с очень большой вероятностью является уткой. И если я вижу нечто похожее на читалку электронных книг, и это нечто ведёт себя как читалка электронных книг, то... вы сами понимаете. Потому и возникает вопрос, потому он и вполне законный.

Ладно, будем считать, что вопрос задан в никуда, ответа на него не дождаться. Но думать-то никто не запрещал :)

Теперь о всяком интересном.

Очень уважаемая мной компания Silicon Labs впервые в истории и мире сделала однокристальную реализацию фактическо всего телевизионного тракта, причём как для гибридных аналогово-цифровых трактов (микросхема Si2185), так и для сугубо цифрового телевещания (DVB, микросхемы Si2111/13/15). Ну что тут сказать. Очень скоро устройства потребления контента (CCD, Content Consumption Devices) - таблеты, смартфоны, - будут показывать в окошке телепередачи. Тут к гадалке не ходи. Страшное настанет время :)

Ну и ещё очень приятное из мира малоразрядных встраиваемых вычилителей. Компания Microchip расширила семейство своих 8-битовых микроконтроллеров крайне интересными моделями, в которых при незначительном числе выводов (от 6 до 20 "ножек", грубо говоря) интегрированы совершенно замечательные штуки - во-первых, маленькая, но практически всегда необходимая программируемая логическая матрица, во-вторых, - генератор противофазных сигналов (CWG), в-третьих, - управляемый генератор сигналов (параметры сигнала управляются через регистры), в-четвёртых, - генератор сигналов с широтно-импульсной модуляцией. Совершенно невероятный набор функций. В маленьком корпусе и за смехотворную цену порядка 30 центов в партиях. Любители самодельных электронно-музыкальных инструментов, эти контроллеры 1500% вы видели в сладких снах :)

Так.

Что же ещё?

Ага.

Давно не было всякого интересного чтива. А его есть у меня.

Онлайн-книга о "сборщиках мусора" (Garbage Collectors). Душеполезное чтиво для всех кто программирует на GC-языках.

Коллекционное, прекрасное - культовая книга Лео Броуди о системе программирования Forth онлайн! Замечательно.

Ну и для тех, кому творческий подвиг разработчика 8-битовой читалки не даст покоя - полезная книга о разработке ПО для вычислителей с малыми объёмами памяти.

Ну и обычная польза, конечно. Её тоже есть у меня. MouseWithoutBorder - утилита для управления одной мышью кучей компьютеров. Использует wifi. Работает. Создана "гаражными" программистами Microsoft :) - есть у них такой клуб как бы. Непосредственная загрузка утилиты по ссылке, а в этом сообществе  можно задать вопросы разработчикам.

За сим откланиваюсь.