УЧИМСЯ САМИ, СНИЗУ ВВЕРХ. МАЛЕНЬКИЕ ВСТРАИВАЕМЫЕ СИСТЕМЫ

Целевая аудитория

На инженерных форумах по встраиваемым системам один из наиболее часто задаваемых новичками вопросов звучит примерно так: «Какой микроконтроллер мне следует изучить, чтобы сразу получить знания, ценящиеся на рынке груда в области встраиваемых систем?» Этот вопрос также довольно часто задается техниками и инженерами с опытом проектирования схем, которые хотят дополнить свой набор знаний умением создавать встраиваемое ПО. Данная глава даст таким людям некоторое понимание, почему на этот вопрос не так-то просто ответить, а также определённые полезные рекомендации, касающиеся того, какие платформы вы могли бы выбрать для экспериментов и в целях обучения.

Сейчас подходящий момент сделать очень важное замечание, касающееся тех людей, кто занят главным образом проектированием «железа». Для современного инженера-разработчика аппаратных средств понимание, по крайней мере частичное, находящегося на верхнем уровне программного слоя — не просто практическая необходимость. Хорошее понимание того, что может быть достигнуто с помощью встраиваемого ПО, сделает ваши схемные решения более эффективными. Есть задачи, которые гораздо проще решить программно, а не аппаратно, и хороший разработчик должен помнить о том, что в проекте в целом можно совмещать программную реализацию каких-нибудь функций с аппаратной.

Рассмотрим тривиальный пример. Ожидается, что к большинству микроконтроллеров, в которых имеется аппаратный универсальный асинхронный приёмопередатчик (UART — Universal Asynchronous Receiver/Transmitter), будет подключена готовая драйверная микросхема, совместимая с RS-232 (чип МАХ232 — обычный кандидат, и эту микросхему можно купить у многих поставщиков). Предположим, вы подключаете микроконтроллер через UART к чему-то ещё, находящемуся на той же плате, и не намерены осуществлять преобразование уровней выдаваемого сигнала к уровням, определяемым спецификацией протокола RS-232. В этом случае ПО будет проще и гораздо эффективнее в смысле затрачиваемых тактов, если вы сделаете так, что абонент на другом конце коммуникационного канала будет принимать инвертированный входной сигнал.

В любом случае в ответ на вопрос: «Какой микроконтроллер мне следует изучить, чтобы достичь богатства и славы?» — коротко можно сказать, что знание работы того или иного МК не приведёт вас непосредственно к получению работы0. Когда вы придёте на новое рабочее место, то обнаружите определённое количество унаследованной техники, реализованной на том или ином микроконтроллере (возможно, на столь древнем, что вы бы никогда его не выбрали даже в самом кошмарном сне2)) и, вероятно, более новое поколение на основе другого семейства микроконтроллеров. А когда вы приступите к работе над собственными совершенно новыми проектами, вы опять же можете выбрать другое семейство. На ваш выбор М К будут влиять разнообразные факторы: доступность в будущем, цена, контрактные отношения с дистрибьюторами, ограничения источников питания, необходимые характеристики, требуемая периферия и далее по списку.

Возможно, иногда вы встречали людей, спрашивающих, имеет ли смысл изучать способы разработки на 8-битных ядрах, если 32-битные дешевеют с каждым днем. Эти люди не принимают во внимание тот факт, что для выпу- [1]

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

Заметьте, это не то же самое, что сказать «никогда». И стоит разъяснить кое-что, чтобы вы могли понять, какие факторы здесь работают. Так как размеры кристаллов уменьшаются, стоимость заключения кристалла в корпус и разводки (приваривания проводников от кремния к выводам, выходящим во внешний мир) начинает преобладать в общей стоимости микросхемы. Из- за меньшего числа транзисторов 8-битные кристаллы-полуфабрикаты будут всегда дешевле 32-битных, но к тому времени, когда чипы будут упакованы на продажу, разница в цене может оказаться почти незаметной. Для некоторых применений уже можно предвидеть, что не будет реального выигрыша в себестоимости, если их будут продолжать реализовывать на 8-битной архитектуре. Здесь имеется сложный и довольно интересный набор одновременно работающих факторов. Стоимость индивидуальных чипов-полуфабрикатов (бескорпусных чипов, вырезанных из общей пластины кремния — «вафли») определяется главным образом числом технологических шагов в «рецепте» и количеством годных кристаллов, получаемых с каждой «вафли». Так как геометрические размеры чипов уменьшаются, то на пластине умещается большее количество заготовок. Дополнительно абсолютная разница в стоимости между 8-битными и физически более крупными 32-битными ядрами снижается, так как абсолютный размер обоих становится меньше. Относительная разница в размере остается той же самой; если 32-битное ядро было на 30% больше до уменьшения, то после оно всё равно останется на те же 30% больше. Однако поскольку каждый элемент стоит меньше после уменьшения размеров, то финансовое влияние этой разницы в размерах снижается. С другой стороны, меньшие геометрические размеры могут привести к пониженному выходу годных кристаллов, поскольку один дефект в пластине, вероятно, повлияет на большее число заготовок. Этот фактор воздействует на стоимость чипов малых размеров в сторону увеличения. Итоговый результат этого рассказа в том, что с улучшением процессов производства стоимость ядер — на любой вкус — асимптотически приближается к нулю. Когда и 8-битные, и 32-битные ядра приближаются к этой магической точке, стоимость самих ядер становится незаметной за другими факторами.

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

Принципиальные недостатки такой конструкции — высокая стоимость соединения двух частей, уязвимость к повреждениям при вибрации, пониженная скорость и повышенное РЧ-излучение. Очень полезно при сравнении цен разных (больших) микроконтроллеров с приблизительно равными возможностями докопаться до подобных деталей и точно определить, какие затруднения у вас возникнут при выборе более дешевого чипа. На некоторые приложения такой выбор не окажет никакого влияния, но для применений с жесткими требованиями к уровню РЧ-излучения (например, GPS-приёмники или мобильные телефоны) при выборе чипов с многоярусной конфигурацией надо очень тщательно искать баланс между стоимостью и параметрами.

Оставим это интересное отклонение от темы. Если вы обладаете солидным практическим опытом в электронике — я говорю здесь, в частности, об инженерах-разработчиках аппаратных средств и о техниках, — то в таких применениях, где обычно используются 8-битные процессоры, у вас есть большое преимущество перед людьми, занимавшимися только ПО. Причина этого в том, что вы уже привыкли вытягивать информацию о состоянии сложной системы, используя аппаратные инструменты, которые обычно позволяют вам заглянуть внутрь системы через крошечное окошко. Вы также достигли ком- [2]

фортного уровня понимания того, что в системе может идти не так, по внешним проявлениям, видя напряжения и временные параметры.

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

В оставшейся части этой главы я познакомлю вас с несколькими популярными микроконтроллерными ядрами и опишу некоторые их особенности, как приятные, так и отвратительные. Данная глава, конечно, не руководство типа «бери и запускай» по использованию какого-либо из рассматриваемых контроллеров. Эго общий обзор того, что находится внутри чипов, где бы вы могли использовать некоторые из этих семейств контроллеров и каковы их сильные стороны. Там, где возможно, я укажу места, в которых вы можете получить аппаратные и программные средства для проведения своих собственных разработок и экспериментов.

Относящееся к делу замечание. В этой главе я упоминаю названия нескольких поставщиков и продуктов и привожу некоторые приблизительные цены. Я не рекомендую этих поставщиков в том же самом смысле, в каком атлет мог бы рекомендовать компанию, производящую спортивную обувь («Покупайте кроссовки Фреда! Их испытания мне оплатили действительно быстро!»). Я однозначно не призываю вас что-то покупать, я лишь привожу эти данные ради удобства, чтобы вы могли быстро найти и прочитать о продуктах, которые я использовал и посчитал хорошо подходящими для целей самообучения без значительных затрат.

  • [1] Иногда для какой-нибудь отдельной работы требуют опыт использования определённого микроконтроллера. Описание работы с подобным ограничением указывает нанедостаток понимания со стороны разместившего данное предложение. Для любого компетентного инженера изучение нового микроконтроллера является тривиальным упражнением. Много времени уходит на изучение системы, и это время не может быть серьёзносокращено за счёт знакомства только с несколькими компонентами. 21 Так бывало в моей ежедневной деятельности и в проектах, за которые я брался поконтракту. Существующий код и аппаратная часть для недавно принятых на работу подобны назначенной свадьбе — они, возможно, сделали бы все лучше, но боятся и осторожничают.
  • [2] В любом чипе, сделанном таким образом, секция памяти будет по размеру гораздобольше, чем микроконтроллерное ядро.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >