ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
270402
Evgeny_CD, Архитектор (06.09.2011 13:20 - 19:19, просмотров: 22246)
MCU + LVDS. В очередной раз. Все-таки, почему так никто не делает??? По мере изучения FPGA и прочих взрослых технологий достиг некоторого понимания, как работают последовательные шины. При популярных нынче 130 нм и грядущих 90 нм LVDS контроллер связи с кодеком 8b\10b на несколько сотен мегабит является довольно заурядным устройством с малой площадью и потреблением 50 мВт или менее. Мучения современных контроллеростроителей понятны. Если каждому периферийному блоку дать нужное число IO, то будет BGA484, который нах никому не нужен на микроконтроллерном рынке. Можно наплодить всяческих мультиплексоров, но их сложность может превзойти ядро процессора. Вот народ и плодит мириады чипов в семействах. Мне ни разу не удавалось осознать каталог Renesas – там просто тысячи вариантов контроллеров вокруг небольшого числа ядер. Kinetis уверенно идет по тому же пути – 7 базовых семейств, десятки вариантов внутри семейства… Почему не сделать так? Основной камень: • Ядро • FLASH – 1M для Cortex-M3 самое то • SRAM – 128K в кайф. Поделенное на несколько банков в идеале, каждый банк имеет свой порт на AHB • Пару UART, SPI, I2C • Генератор, PLL, • RTC с батарейной системой • JTAG • USB – очень спорно! • Контроллер периферийной шины. Шина для каждого устройства – это 2 симметричные линии со скоростью 100Мбит и более, с кодированием 8B/10B или типа того. Пусть будет схема «звезда» - каждый периферийный чип имеет свою шину. 2 симметричные линии при правильной распиновке QFN развести совсем не проблема! Синхронизация времени. В мастер процессоре тикает 32 битный таймер с тактовой ядра. Слейвы по LVDS синхрят свои PLLи и синхронизируют свои локальные 32 битные таймера по мастеру. Не такая уж и сложная задача. Общая логика обмена такая. Кеш контроллер удаленной памяти – SDRAM, SRAM,… Часть системной SRAM выделяется для него. + обычная логика с тегами и пр. Обратились по несуществующему в кеше адресу – нам по шине подкачали кеш лайн. Это будет медленнее, чем SDRAM на локальных пинах, но в микроконтроллерах быстрая SDRAM не особо то и нужна (если Линух не поднимать…). Код из FLASH, RT данные в SRAM – ну а WEB сервак может и не таким уж шустрым быть. Работа с периферией. Универсальный контроллер. Ему дают указатель на два дескриптора: возьми команду вот отсюда и положи результат вот сюда. Поддержка для множественных команд: метка времени исполнения, связанные списки и пр. При таком подходе в QFN64 или 100 влезет очень даже мощный контроллер. Что это дает? • Возможность использовать разный кремний. Для мастера – цифровой тонкий техпроцесс. Для периферии – 0.25 BiCMOS, например. Что даст возможность делать аналоговые и RF блоки недостижимого для CMOS качества. Цифровая часть такого чипа в части контроллера невелика, и ее аналоговая технология вытянет. • Мастер становится достаточно простым камнем. Его можно вылизать до безглючного состояния. А так забажил говногокдер UART или SPI – и 0.5M$ (стоимость комплекта масок 90 нм) на свалку. • Гибкость системы превосходит любое воображение. Мастеров несколько штук – отличаются объемами памяти и числом шин для периферии. Периферии – те самые тысячи микросхем, + корки для FPGA, + лицензирование hard IP в кремнии… Причем для прототипирования этого чуда не надо делать свой кремний :) http://www.actel.c …artFusion/default.aspx Actel SmartFusion A2F500 стоит под $80, что не очень для практических целей, но для рассматриваемых всяко дешевле разработки своего кремния :) В общем, осталось найти несколько M$, и можно основывать EVCD MicroHard. Волнует меня только одно. Идея проста и очевидна. Я не верю, что мне она первому пришла в голову. ПОЧЕМУ ТАК НЕ ДЕЛАЮТ???