Русский
Русский
English
Статистика
Реклама

Производство и разработка электроники

Flipper Zero как выйти на Кикстартер сидя на карантине на даче

30.07.2020 06:19:49 | Автор: admin
Flipper Zero крупным планом

Flipper Zero проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2],[3]


Я до сих пор не могу в это поверить. Это самая волнительная статья, которую я когда-либо писал. Мы прошли огромный путь: два раза полностью меняли электронику Флиппера, выживали при блекауте и закрытых границах из-за коронавируса, переносили компанию из Гонконга в США, с трудом прошли все проверки и верификации и НАКОНЕЦ ГОТОВ К ЗАПУСКУ ФЛИППЕРА НА КИКСТАРТЕРЕ! Сейчас мне осталось только нажать кнопку Старт.

Внутри я расскажу: через что нам пришлось пройти, что нужно для выхода на Кикстартер, как мы за две недели зарегистрировали компанию в США и открыли банковский счет, как Stripe отказывался подтверждать нашу компанию и что будет дальше.


Смотрите это Флиппер Зиро




За полгода работы над проектом я отвечал на вопрос что такое Флиппер Зиро тысячи раз. Вот мои любимые варианты ответа:

  • Тамагочи для взрослых
  • Игрушка для задротов
  • Платформа для разработчиков электроники и пентестеров
  • Электронный дельфин, который регулярно оскорбляет вас


Прежде чем с головой окунуться в разработку я проверял насколько действительно людям нужен такой девайс, купит ли его кто-то или это пустая трата времени. Сначала я проверял свои гипотезы спрашивая аудиторию хабра. Вот старые посты [1],[2],[3]. Оказалось, что реакция почти всегда полярная и либо выражается во фразе из мема Заткнись и возьми мои деньги, либо наоборот резко отрицательная: Автора надо посадить и потом расстрелять, девайс запретить. Соотношение одобрения и негатива на Хабре примерно 70% к 30%.

В первых постах я просил людей принять участие в опросе, рассказать какие функции им важнее и что бы они хотели добавить. В опросе приняли участие тысяча человек. Самыми важными функциями оказался радио модуль и RFID.


Самая непопулярная функция ключи iButton (Dallas Touch Memory). Для тех, кто не знает это такие контактные железные ключ-таблетки от домофонов.


Люди активно писали отзывы и предлагали новые функции. Из всех предложений мы в итоге реализовали две функции:
  • Инфракрасный порт для эмуляции пультов от телевизоров и кондиционеров с возможностью обучения, то есть считывания существующих пультов.
  • Выводы GPIO. С их помощью можно превратить Флиппер в USB -> UART/I2C/SPI конвертер. Или подключать периферию, как например к Arduino и Raspberry Pi.


Мы развернули форум, где просили людей советовать нам, какие компоненты лучше выбрать и как решать проблемы. На форуме было разрешено писать только на английском языке, чтобы на замыкаться только на локальное сообщество и отсеять тех, кто не разбирается в электронике и хочет флудить.

Дальше я опубликовал несколько постов на Reddit, в разделы netsec и TechNewsToday. Реакция была очень положительной, публикации вышли в топ раздела, процент негатива сильно меньше, чем на Хабре. Из этих постов мы получили пару тысяч предзаказов из США и Европы.
Для сравнения в посте на Пикабу почти каждый второй комментарий про то, какой автор дурак, что за такое нужно сажать и прочее.

Вот как по итогу выглядит география наших предзаказов:


Совет на будущее: если вы собираете предзаказы через форму на сайте, собирайте также страну посетителя + настройку языка в браузере, чтобы писать письма на родном языке. Мы этого не сделали и не смогли точно разделить письма на английском и русском.


Разработка на карантине


Когда жахнула эпидемия, мы совсем не были готовы. Границы закрылись, грузы из Китая не ходили. В итоге посылка с прототипами застряла на таможне на месяц! Локальные производители печатных плат не работали, все остановилось.


Эти прототипы застрянут на границе на месяц.

В итоге отладка и тестирование проходили через сеансы видеосвязи. Одна камера направлялась на осциллограф, другая на плату, и голосом управлялись удаленные руки. Не очень быстро, но в целом работало. Вот скриншот одного из таких сеансов:


Созвон с интерфейсной шиной

Некоторые зарисовки из процесса разработки


Мы очень долго искали идеальную форму корпуса, в которой бы помещалась электроника, при этом она удобно лежала в руке и внутри можно было разместить нужные ребра жесткости, чтобы корпус не прогибался и не ломался при ударах. Все гипотезы по эргономике проверяли на 3Д-принтере. Вот только малая часть прототипов, которые удалось собрать по углам:



Идем на Кикстартер


Итак, мы получили работающий прототип. Смогли посчитать BOM, разработку прошивки, производство, тестирование, доставку, сертификацию и всю-всю экономику со всеми возможными сценариями развития. В этот момент были полностью готовы идти на Кикстартер и начинать краудфандинг.

Дело в том, что выйти на Кикстартер со своим проектом можно только резидентам этих стран: US, UK, Canada, Australia, New Zealand, the Netherlands, Denmark, Ireland, Norway, Sweden, Germany, France, Spain, Italy, Austria, Belgium, Switzerland, Luxembourg, Hong Kong, Singapore, Mexico, and Japan.

Если у вас компания в России, то вас никуда не пустят. На тот момент у нас была компания в Гонконге, и мы изначально планировали идти через нее. Единственная трудность была в банковском счете. Иногда его без объяснений закрывали. Такое происходило со многими гонконгскими компаниями, у которых в учредителях были русские. Очевидно, что, если вдруг во время или после краудфандинга нам заблокируют счет, это будет провал. Мы долго пытались решить эту проблему обращаясь в разные банки, пытаясь получить какие-то гарантии, но банки в Гонконге смотрят на русских с презрением.

Регистрация компании в США


Оказывается, компанию в США можно зарегистрировать удаленно из любой страны. При этом даже не нужно показывать свой паспорт. Процедура очень простая, за неделю вам легко откроют компанию любой формы собственности LLC (аналог нашего ООО) или корпорацию (C Corp). В интернете можно найти много сервисов, которые предлагают такие услуги: firstbase.io, clerky.com и много других. Но не все так просто.

Сама по себе компания почти ничего не может. Для любых операций с деньгами нужно получить EIN (Employer Identification Number) аналог нашего ИНН. И вот тут начинается самое сложное. Процедура получения EIN предполагает отправку формы SS-4, внимание, ПО ФАКСУ(!!!). Я даже не мог представить, что в 2020 году это еще где-то используется.
Однако с этим есть проблема: сейчас из-за коронавируса налоговая служба США (IRS) обрабатывает запросы очень медленно. Многие мои знакомые ждут ответа больше двух месяцев!
Нас такие сроки не устраивали, поэтому мы стали искать другой путь.

Оказалось, что EIN может получить третья сторона, не связанная с компанией ЗА ОДИН ДЕНЬ. Для этого нужно иметь Social Security Number (SSN) и быть резидентом США.

Я выражаю огромную благодарность Константину cl@incorporatenow.com за помощь в регистрации. Благодаря ему мы все сделали за 2 недели! Его компания занимается регистрацией и сопровождением компаний в США, можете смело обращаться.


В итоге, благодаря помощи Константина, за 2 недели у нас на руках был пакет документов достаточный для обращения в банк.

Получение банковского счета


Получение банковского счета самая сложная операция в данном случае. Почти все банки требуют личного присутствия для открытия счета. Единственный банк, который прямо заявляет, что удаленно открывает счета компаниям с иностранными владельцами Mercury.com. Это не совсем банк, а скорее сервис вроде отечественного Рокетбанка, который работает через материнский банк.

Было страшно работать с каким-то хипстерским сервисом, если на него планируется принять >$100k. Что если материнский банк решит нас заблокировать? Что если есть какие-то скрытые лимиты? Можно ли отправлять деньги в Китай для оплаты производства? Мы решили публично обратиться к ним в Твиттере. Чтобы нас заметили, я попросил своих подписчиков изо всех сил лайкать и отвечать на твит. В итоге эта тактика сработала, нам ответил CEO банка Mercury:


CEO банка Mercury отвечает на наш твит

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



Stripe ваша компания не существует


Подача проекта на Кикстартер состоит из нескольких этапов: сперва вы заполняете страницу, указываете цены, бюджет, команду, загружаете видео. Потом указываете реквизиты компании, которые проверяются через сторонний сервис Stripe.

На этом этапе мы застряли на несколько дней. Верификация завершалась автоматической ошибкой, что наш скан EIN не валидный. Надо сказать, что техподдержка Stripe и самого Кикстартера в этом плане работает ОЧЕНЬ медленно. Для них отвечать неделю вполне нормально. Но мы опять же не были готовы ждать и пошли плакаться в паблик. Я опять написал в Твиттер. Через пару часов пришел официальный аккаунт Stripe готовый помогать. Как это не удивительно, но в течение двух часов проблема была решена и все проверки пройдены. Оказалось, что наш EIN еще не попал в базы и не проходил автоматическую проверку.


Публичность помогает решить проблемы

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

Проверка продукта


Когда все юридические проверки пройдены, заполненная страница с вашим продуктом отправляется на модерацию в сам Кикстартер. Там они проверяют не нарушает ли ваш продукт правил. Эта процедура может занять до пяти дней. Мы отправили заявку на ревью в субботу, в понедельник с нами связались сотрудники Кикстартера, которым понравился проект, и в итоге подтверждение пришло уже во вторник.



После этого остается только нажать кнопку Старт, и кампания начнется. После одобрения продукта становится доступна pre launch страница, адрес которой не поменяется после старта. Это удобно для подготовки рекламных кампаний, можно заготовить все страницы, в которых будет уже рабочая ссылка.

Так выглядит pre launch страница:



Забавно, что, будучи опубликованной меньше суток назад, наша pre launch страница уже находится на первом месте по популярности среди Upcoming проектов, набрав почти тысячу подписчиков.



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



FAQ



Когда запускаетесь?


Буквально через пару часов. Сейчас докручиваем метрики, счетчики, аналитику, апихи, интеграции и прочую маркетинговую чепуху.

Сколько будет стоить?


В первый день лот для super early bird будет стоить 99$. Дальше чуть дороже. Таких лотов будет 400 штук, поэтому мы рассчитываем, что они будут доступны только первый день кампании.

Как работает оплата на Кикстартере?


Деньги списываются не сразу. Вас попросят привязать карту, но спишут деньги только в конце кампании, то есть через 30 дней, и только в случае, если мы соберем нужную сумму 60 000$. Если денег на карте не будет в этот момент, он будет пытаться списать повторно в течение 2 недель.

Как вы будете доставлять?


Доставка будет по всему миру. Оплачивается отдельно ближе к моменту отправки. Так как из-за коронавируса цены меняются, мы пришлем отдельное письмо для оплаты доставки за месяц до отправки.

Проверяйте email


После кампании мы попросим вас заполнить адрес доставки и, возможно, выбрать дополнительные опции, если насобираем на них. Следите за письмами.

Это законно? Меня не арестуют на почте?


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

Будет версия Flipper One на Линуксе?


Эта кампания только про версию Zero на базе STM32. Судьба версии One будет зависеть от успеха этой кампании. Если соберем нужную сумму, сможем продолжить работу над версией One.
Подробнее..

Flipper Zero давайте пилить вместе. Приглашаем разработчиков

10.08.2020 10:05:17 | Автор: admin


Flipper Zero проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2],[3],[4]

За первые сутки кампании на Кикстартере мы собрали 1 млн. долларов. Откровенно говоря, никто из команды даже близко не ожидал такой популярности. В первые дни мой телефон разрывался от уведомлений, звонили от журнала Форбс до Первого канала. Я до сих пор полностью не отошел от шока и не ответил до конца на все письма. Ничего подобного я никогда в жизни не испытывал.

Огромное спасибо всем, кто поддерживал нас, следил за проектом и принимал участие. Именно на Хабре я опубликовал первый пост с концептами Флиппера, получил первый фидбек, критику и похвалу. Некоторые функции мы добавили во Флиппер именно после фидбека на Хабре. Мы постараемся не обосраться с производством и оправдать ожидания.

Сейчас я полностью уверен, что максимальная открытость и честность это лучшая стратегия. Вся наша команда верит в open source, и мы считаем, что энтузиасты могут создавать крутые проекты без привлечения инвесторов и контроля со стороны корпорации. Поэтому я предлагаю всем, кому интересен проект, принять участие в разработке.

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

Кто работает над проектом?


Проект состоит из нескольких масштабных частей, над каждой из которых работает своя команда. Иногда командам приходится согласовывать свою работу, например когда механики и железячники пытаются договориться о том, как передвинуть компонент на плате, чтобы он не мешал ходу кнопки. Вот основные команды:

  • Firmware вся софтовая разработка прошивки, в том числе программных модулей для каждого компонента: радио, RFID, Bluetooth, инфракрасный порт, U2F, USB-стек и т.д.
  • Electronics Engineering (EE) команда, занимающаяся разработкой железа, то есть всей электронной части: платы, антенны, питание.
  • Mechanical Engineering (ME) команда конструкторов, занимающаяся механическим дизайном. Всем, что касается компоновки компонентов внутри и снаружи, механических частей устройства: корпус, кнопки, отверстия, расположения разъемов, удобство сборки и т.д.
  • Manufacturing команда, отвечающая за то, чтобы результат работы команд ME и Hardware можно было передать в массовое производство. Сперва мне казалось, что это чисто административная работа, но это не так. Нужно знать все ограничения SMT-машин, выполняющих монтаж компонентов, ограничения пресс-форм, в которые будут заливаться корпуса, особенности ручной сборки и тестирования и еще кучу всего. Так что эта работа больше техническая, нужно знать все тонкости производства.

На текущий момент у нас есть на ~80% завершенное устройство по части железа и механики. Но самая большая часть разработки Флиппера это прошивка. Сейчас у нас есть рабочий прототип, архитектура и основные компоненты прошивки, на которые нужно нарастить мясо.

На этом этапе очень важно правильно подойти к унификации всех компонентов, чтобы сохранить читаемость кода и единый понятный стиль, чтобы разработчикам по всему миру было легко разрабатывать под нашу платформу. Мы верим в то, что эта задача будет интересна сообществу и предлагаем внести свой вклад в процесс создания Флиппера, также как это было на ранних этапах.

Как принять участие в разработке прошивки?



Вся прошивка Flipper Zero будет полностью открыта и опубликована на Github. Мы пока решили не открывать наши репозитории с кодом, чтобы чуть-чуть отложить момент появления подделок на Aliexpress. При этом мы прекрасно понимаем, что после такого успеха на kickstarter, подделки обязательно появятся, и в целом не особенно переживаем из-за этого. Просто чуть-чуть отложим этот момент во времени, возможно это подтолкнет китайцев написать какой-то новый код вместо того, чтобы сразу использовать наш. Поэтому сейчас вся разработка ведется в закрытом репозитории, куда мы добавляем людей после того, как они заполнят форму и подпишут Соглашение Разработчика (CLA). В соглашении мы просим не распространять код без нашего явного согласия, а также говорим о том, что мы сможем распоряжаться вашим кодом, однако обязательно сохраняем ваше авторство.

Исходный код прошивки будет опубликован в открытом доступе сразу после того, как бекерам уедут первые устройства. Мы готовы к появлению подделок и не собираемся с ними бороться, просто хотим отложить этот момент до появления наших устройств в руках пользователей.

На данный момент используется HAL/LL от STM и FreeRTOS. Большая часть работы с периферией сгенерирована CubeMX, однако в некоторых хардкорных местах пришлось выкинуть штатные функции и поработать с регистрами напрямую.

Сейчас мы находимся на этапе, когда легко можно поменять стек технологий, наш главный программист уже неделю думает, не перейти ли на RIOT OS, ChibiOS, NuttX и Zephyr для ускорения и упрощения разработки. А еще рассматривается вариант переписать все на Rust и использовать embedded-hal и Tock OS. В общем, сейчас мы готовы к серьезным переменам ради светлого будущего.

Сборка кода происходит через make и gcc, но совсем скоро нам нужно будет добавить возможность собирать наш код в Arduino IDE и PlatformIO.

Архитектура прошивки:


Кого мы ищем?


Основные компоненты Флиппера написаны на C, C++ и Rust, поэтому для разработки пригодится знание этих языков. Также будет классно, если ты работал с микроконтроллерами и умеешь отлаживать электронику, но мы стараемся отделить железо от кода слоем абстракций, так что многие компоненты, такие как графический интерфейс или поведение дельфина, не потребуют работы с железом. Также нам нужны дизайнеры интерфейсов (разместить на экране 12864 информативный UI не самая простая задача), девопсы и тестировщики (если ты готов тестировать электронику и разбираться с настройкой стендов для удаленной отладки и тестирования).

Самое главное у вас должно быть желание внести свой вклад в разработку. Для участия в проекте заполните форму. Отнеситесь к заполнению формы очень внимательно, это единственный удобный способ для нас понять ваш профессионализм: напишите о своем опыте разработки, укажите только те компоненты Флиппера, которые вам действительно интересно развивать. Будет очень здорово, если у вас уже есть идеи, которые вы сможете реализовать обязательно напишите о них в форме.


Мы внимательно изучим все заявки и свяжемся с теми, у кого есть релевантный опыт. После расскажем, как мы можем работать над проектом вместе, добавим вас на Github, проинструктируем, дадим всю необходимую документацию и введем в проект. При этом условия сотрудничества могут быть самые разные: от фулл-тайм работы внутри нашей команды до волонтерства в качестве хобби.

Dev Kit для железячников


Для тех разработчиков, которые отважатся принимать участие в железной разработке, то есть тестировать физическую часть радио модуля, отлаживать NFC/RFID, разрабатывать антенны и т.д. мы предусмотрели специальный dev kit. Это будет версия Флиппера без корпуса в специальной оснастке для удобства подключения к отладочным инструментам.


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

Разработчикам модулей


По нашей задумке, функции Флиппера могут расширяться с помощью аппаратных модулей. Сейчас у нас нет ресурсов заниматься разработкой модулей, поэтому мы готовы полностью отдать эту задачу сообществу. Это может быть совершенно любой модуль, например CAN Bus, Холл сенсор, логический анализатор, датчики окружающей среды, датчик шума, модем, LoraWAN, IMU, FM передатчик и еще целая куча возможных опций, на которые только хватит фантазии.



Если вы большая коммерческая компания или скромный DIY-энтузиаст, и у вас есть идея железного модуля для Флиппера, мы готовы дать вам все необходимые 3Д модели и документацию для разработки модулей и активно помогать с нашей стороны.

Первые 10 готовых модулей мы будем поддерживать своим медиа-ресурсом на наших сайтах и во всех рекламных материалах Флиппера. Поэтому все, кто знают про Флиппер, также узнают про ваши модули. Для того чтобы принять участие в разработке модулей, заполните эту форму.




Большая часть нашей команды говорит на русском, поэтому нам будет легче работать с русскими людьми. Однако все issues, комментарии, документацию нужно будет вести на английском, так как проект международный.

Я обещаю, что все этапы дальнейшей разработки я буду подробно описывать здесь. Надеюсь, у меня получиться попасть в Китай и вести прямой репортаж с завода, показывать как будет производиться Флиппер изнутри. Отдельно мы готовим обучающие материалы для изучения цифровых протоколов, основ электроники и программирования, чтобы новички могли использовать Флиппер как платформу для обучения.

Как со мной связаться
Все заметки по проекту, в первую очередь, я публикую в свой Telegram-канал @zhovner_hub на русском языке.

С международной аудиторий я общаюсь на английском через твиттер @zhovner.

Глупые фотографии и видео я публикую в инстаграм@pzhovner.

Скучные разговоры про бизнес веду в фейсбуке fb.com/zhovner.
Подробнее..

Будущее шпионажа. Беспроводная видеокамера на спине жука транслирует видео на 120 метров

24.07.2020 14:12:14 | Автор: admin


Исследователи из школы компьютерных наук и инженерного дела, факультетов электротехники и инженерии Вашингтонского университета в Сиэтле разработали концептуальный проект видеокамеры весом 248 мг (плюс батарейка 0,5 г), которая укрепляется на спине жука или микророботе.

Чёрно-белое видео 15 fps с разрешением до 160120 px передаётся по Bluetooth на расстояние до 120 метров. Объектив поворачивается на 60. Управление со смартфона.

Ранее учёные проводили опыты по дистанционному управлению жуками (2009), молью (2008) и тараканами (2012) путём стимулирования мозга электродами, так что это очень перспективная смежная разработка. Фактически, сейчас для радиоуправляемых насекомых сделали камера-модуль.


Радиомодуль управления тараканом. Фото: университет Северной Каролины, 2012

Дистанционное управление тараканами не просто научная разработка. DIY-комплекты для проведения медицинской операции и электроника для установки на таракана уже поступили в открытую продажу.


DIY-комплект для установки на таракана


Операция на таракане в домашних условиях

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

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


Варианты миниатюрной беспроводной видеокамеры для чёрного жука и мобильного робота

Разработку новой видеокамеры исследователям пришлось начинать с нуля, потому что никакие существующие решения не годятся. Даже самые маленькие глотаемые видеокамеры, которые снимают внутри человеческого организма, с элементами питания весят более 1 грамма, что слишком много для жука или таракана.

Сосредоточившись на небольших размерах и эффективности, они начали с имеющегося на рынке сверхмалого CMOS-датчика шириной 2,3 мм и весом 6,7 мг. Они выбрали также микросхему Bluetooth 5.0 (шириной 3 мм, 6,8 мг) и начали экспериментировать, как соединить эти две вещи с минимумом промежуточного оборудования для трансляции сигнала камеры.


Полевые испытания жука с видеокамерой

Для рабочей камеры также потребовался объектив (20 мг) и антенна, провод длиной 5 мм. На плату поставили акселерометр, чтобы движение насекомого можно было использовать для запуска камеры, сводя к минимуму избыточные кадры от дремлющего жука или неподвижного робота на подзарядке.



Последний фрагмент схемы это механически управляемая головка, весящая 35 мг и доводящая вес беспроводной камеры до 84 мг. Это уже готовый привод с 60-градусным углом поворота, который разработали коллеги из Вашингтонского университета для своих миниатюрных летающих роботов. К сожалению, для пьезоэлектрического привода требуется повышающий преобразователь весом 96 мг. Это огромные затраты, но исследователи пошли на такой шаг, потому что они не могут реально управлять жуком и вынуждены поворачивать камеру в случае необходимости.


Научная статья Беспроводное управляемое зрение для живых насекомых и насекомых-роботов Викрама Айера, Али Наджафи, Йоханнеса Джеймса, Сойера Фуллера и Шьямната Голлакоты из Вашингтонского университета опубликована 15 июля 2020 года в журнале Science Robotics (doi: 10.1126/scirobotics.abb0839).

Чтобы разместить такую видеокамеру на пчелу или муху, нужно провести дополнительную оптимизацию, потому что тот же шмель поднимает не более 100200 мг полезной нагрузки. Главным ограничением здесь является система питания, так что на шмеле желательно использовать солнечные элементы.
Подробнее..

Doom Boy ESP32. Вторая итерация

30.07.2020 02:22:19 | Автор: admin
Так и не дождавшись DoomWatch платы сделал новый заказ с доставкой Fedex. В этот раз развел платы в KiCad. Как ни странна, Kicad понравился даже больше Eagle AutoDesk



Основная цель была попробовать распаять чип esp32d0wdq6. Не сам готовый модуль, а именно отдельно микросхемой с отдельным Flash и PSRAM. Как это сделано и работает, с видеодемками, читаете и смотрите дальше

Здесь можно прочитать про первую итерация платы

Boot


Boot Log
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:7076
load:0x40078000,len:14600
load:0x40080400,len:4160
0x40080400: _init at ??:?

entry 0x40080684
I (28) boot: ESP-IDF v4.2-dev-2243-gcf056a7d0-dirty 2nd stage bootloader
I (29) boot: compile time 18:51:57
I (30) boot: chip revision: 1
I (33) boot_comm: chip revision: 1, min. bootloader chip revision: 0
I (52) boot.esp32: SPI Speed: 40MHz
I (53) boot.esp32: SPI Mode: DIO
I (53) boot.esp32: SPI Flash Size: 8MB
I (56) boot: Enabling RNG early entropy source
I (62) boot: Partition Table:
I (65) boot: ## Label Usage Type ST Offset Length
I (73) boot: 0 factory factory app 00 00 00010000 000e8000
I (80) boot: 1 wifidata WiFi data 01 02 000fc000 00004000
I (88) boot: 2 wad unknown 42 06 00100000 004f4000
I (95) boot: End of partition table
I (99) boot_comm: chip revision: 1, min. application chip revision: 0
I (106) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x38f98 (233368) map
I (216) esp_image: segment 1: paddr=0x00048fc0 vaddr=0x3ffb0000 size=0x07058 ( 28760) load
I (230) esp_image: segment 2: paddr=0x00050020 vaddr=0x400d0020 size=0x86370 (549744) map
0x400d0020: _stext at ??:?

I (468) esp_image: segment 3: paddr=0x000d6398 vaddr=0x3ffb7058 size=0x04ec4 ( 20164) load
I (478) esp_image: segment 4: paddr=0x000db264 vaddr=0x40080000 size=0x00404 ( 1028) load
0x40080000: _WindowOverflow4 at /esp/v3.3.2/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1730

I (479) esp_image: segment 5: paddr=0x000db670 vaddr=0x40080404 size=0x12b7c ( 76668) load
I (538) boot: Loaded app from partition at offset 0x10000
I (538) boot: Disabling RNG early entropy source
I (549) psram: This chip is ESP32-D0WD
I (551) spiram: Found 64MBit SPI RAM device
I (551) spiram: SPI RAM mode: flash 40m sram 40m
I (555) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (562) cpu_start: Pro cpu up.
I (566) cpu_start: Starting app cpu, entry point is 0x4008191c
0x4008191c: start_cpu0_default at /esp/v3.3.2/esp-idf/components/esp32/cpu_start.c:466

I (0) cpu_start: App cpu up.
I (1454) spiram: SPI SRAM memory test OK
I (1462) cpu_start: Pro cpu start user code
I (1462) cpu_start: Application information:
I (1462) cpu_start: Project name: esp32_doom
I (1466) cpu_start: App version: 085f21b-dirty
I (1472) cpu_start: Compile time: Jul 26 2020 18:51:49
I (1478) cpu_start: ELF file SHA256: 9166eca39a0109f9
I (1484) cpu_start: ESP-IDF: v4.2-dev-2243-gcf056a7d0-dirty
I (1491) heap_init: Initializing. RAM available for dynamic allocation:
I (1498) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (1504) heap_init: At 3FFCF628 len 000109D8 (66 KiB): DRAM
I (1511) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (1517) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1524) heap_init: At 40092F80 len 0000D080 (52 KiB): IRAM
I (1530) spiram: Adding pool of 4096K of external SPI memory to heap allocator
I (1539) spi_flash: detected chip: generic
I (1543) spi_flash: flash io: dio
I (1548) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (1557) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations


KiCad PCB


В KiCad как мне показалось все проще. На мой вкус конечно. Немного по другому чем в Eagle Autodesk. Главный плюс в том, что нет ограничения на размер платы если не хотите платить за лицензию. Напомню что в Eagle есть ограничение на размер 100x80мм для бесплатной разработки. Если плата больше надо платить годовую лицензию. По моему, есть также ограничение на количество слоев



Посмотреть 3D View в Eagle я так и не смог. Надо ставить Eagle Fusion 360. В Kicad это отдельный пункт меню. Хотя может я не там смотрел. В общем можно сказать перешел полностью на KiCad

Разделил все на модули, оставив на главной странице то что связано с ESP32 непосредственно. Сам чип и память


Ошибки


Рисовал плату в попыхах. В результате забыл вывести GPIO0. Подвел ее во внешний DAC как MCCLK, а вот вывести на кнопку режима загрузки забыл. Пришлось сдирать лак с дорожки для пайки вывода кнопки. Так же резистор в цепи кварца развел на XTAL_N а в мануале надо на XTAL_P. Повесил резистор несколько Ом, но можно было и перемычку кинуть

Не развелись резисторы Address и Reset для MCP23017. Чипу можно задать адрес I2C тремя выводами. 0x20h когда все три вывода на земле. Все потому что не указал FootPrint

На ошибку не обратил внимания
Error: Cannot add R10 (no footprint assigned).
Error: Cannot add R9 (no footprint assigned)


Перепутал i2C для ES8374. Бывает и такое. В принципе можно использовать переключив 21 -> 22 и 22 -> 21 выводы. Или перерезать дорожки и отскоблить лак, ну как это мы обычно делали с TX RX Uart (Грустный смайл)



На удивление запаяв ESP32 и FLASH плата завелась без каких то проблем. Но поставив SPRAM получил бесконечный reboot. Оказался банальный непропай по питанию. Вот бы я искал если ESP32 не припаялся!



Мультиплексор MCP23017


Предусмотрел возможность альтернативного опроса кнопок как через мультиплексор MCP23017 так и с помощью ЦАП. На резестивном делителе. Если нет возможности поставить мультиплексор можно задействовать внутренний ADC. По уровню напряжения на входе GPIO34 можно детектировать нажатие кнопки. Минус в том что невозможно опрашивать несколько кнопок одновременно. Плюс соответственно, что не надо дополнительной микросхемы. Только несколько резисторов

Мультиплексор имеет 2 порта по 8 выводов. Один порт, в нашем случае, можно сконфигурировать как выход и повесить на них светодиоды. Хотел предусмотреть мигание если жизни осталось меньше 20% или кончились патроны. Тогда можно будет играть без панели. Получилось реализовать. Остался один зеленый светодиод. Если в комнате нет врагов или в прямой видимости можно подсветить



Thread of the health and ammo indicator
void ledTask(void *arg){    while(1){            p = &players[cur_player];            if (p->mo != NULL && p->mo->health < 20) {                mcp23x17_set_level(&dev, 9, on);            } else {                mcp23x17_set_level(&dev, 9, true);            }            if(p->ammo[weaponinfo[p->readyweapon].ammo] < 5){              mcp23x17_set_level(&dev, 10, on);            } else {              mcp23x17_set_level(&dev, 10, true);            }            printf("p->ammo[am_clip] = %d\n", p->ammo[weaponinfo[p->readyweapon].ammo]);            if (p->mo != NULL) {                printf("p->mo->health = %d \n", p->mo->health);            }            printf("Ammo N = %d\n", weaponinfo[p->readyweapon].ammo);             on = !on;             vTaskDelay(1000/portTICK_PERIOD_MS);    }}



Аудио чип ES8374


Для звука, в качестве ЦАП и АЦП применил ES8374. Микросхема содержит встроенный усилитель низкой частоты ~ 1.25 Ватт. Она поддерживается Espressif Audio Development Framework из коробки. В маленьком корпусе QFN-28 получаем Моно ЦАП, АЦП для микрофона и УНЧ с поддержкой SDK. То что надо для такого устройства


Запустил BT Speaker из примера pipeline_bt_sink

Взял в настройках борду lyrat_v4_3. Исправил кодек на AUDIO_CODEC_ES8374_DEFAULT_HANDLE
Настроил порты GPIO
esp_err_t get_i2s_pins(i2s_port_t port, i2s_pin_config_t *i2s_config){    AUDIO_NULL_CHECK(TAG, i2s_config, return ESP_FAIL);    if (port == I2S_NUM_0 || port == I2S_NUM_1) {        i2s_config->bck_io_num = GPIO_NUM_18;        i2s_config->ws_io_num = GPIO_NUM_26;        i2s_config->data_out_num = GPIO_NUM_27;        i2s_config->data_in_num = GPIO_NUM_35;    } else {        memset(i2s_config, -1, sizeof(i2s_pin_config_t));        ESP_LOGE(TAG, "i2s port %d is not supported", port);        return ESP_FAIL;    }    return ESP_OK;}

И выкинул инициализацию audio_board_key_init и audio_board_led_init. По правильному надо определять свою кастомную плату

Гироскоп L3GD20


Решил добавить гироскоп L3GD20. Интересная особенность, что его можно подключить как SPI или I2C устройство. R27, R28 в случае подключения по I2C задают адрес
// L3GD20H addresses
#define L3GD20H_I2C_ADDRESS_1 0x6a // SDO pin is low
#define L3GD20H_I2C_ADDRESS_2 0x6b // SDO pin is high
На GitHub есть библиотека l3gd20h-esp-idf


Таким образом на I2C имеем 3 устройства. Управление ADC-DAC ES8374, кнопки на MCP23017 и собственно L3GD20. Запустил все три

i2cdetect
i2c-tools> i2cdetect
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: 10 -- -- -- -- -- -- --
20: -- -- 24 -- -- -- -- --
30: -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- --
60: -- -- -- -- -- 6a -- --
70: -- -- -- -- -- -- -- --


Но почемуто L3GD20 не отдает координаты. WHO_AM_I корректо отвечает 0xd4. углы не меняются. У меня нет конденсатора С1 10nF, попытался поставить который нашел самый близкий 100nF. Думал пусть хотя бы врет, но похоже не запускается внутрений преобразователь. И это важно

i2cdump
i2c-tools> i2cdump -c 0x6a
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: b6 5e 81 fc 05 50 31 83 c4 f9 85 d0 48 c6 00 d4 ?^???P1?????H?.?
10: 1a 15 16 ea c0 b9 4f 72 07 d8 a1 21 a1 00 14 02 ??????Or???!?.??
20: 07 00 00 80 00 00 0c 00 1a 00 13 00 16 00 00 20 ?..?..?.?.?.?..
30: 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 .........?..
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


Дисплей 18 pin ILI9341




Рассчитал ток подсветки так. Требуется 90mA. Поскольку падение на открытом транзисторе ~0.7V питание для светодиодов подсветки 3.3V 0.7V = 2.6V. И по закону Ома 2.6V / 0.090A = 28.8 Ohm. Поставил 47 Ohm. Получилось немного темновато. Надо будет уменьшить сопротивление


Также развел Touch XPT2046TS. SPI выводы повесил параллельно дисплею. XPT_CS выведен отдельным выводом. Есть сомнение что заработает. Если бы дисплей не завелся, сделал бы эксперименты. Для приставки он не особо нужен. Взял из примера



Демки


Запустил демо LVGL. В настройках примера пробовал выставлять 40MHz для шины SPI. Пример заработал немного быстрее чем на видео



А вот Doom запустился и стабильно работал только на 32MHz. Хотя 26MHz для ILI9341 уже считается разгон
spi_device_interface_config_t devcfg={        .clock_speed_hz=26000000,               //Clock out at 26 MHz. Yes, that's heavily overclocked.        .mode=0,                                //SPI mode 0        .spics_io_num=PIN_NUM_CS,               //CS pin        .queue_size=NO_SIM_TRANS,               //We want to be able to queue this many transfers        .pre_cb=ili_spi_pre_transfer_callback,  //Specify pre-transfer callback to handle D/C line    };




Заключение


Портов ввода вывода ESP32 не всегда хватает чтобы нафаршировать по максимуму. В этом плане STM32 выглядит привлекательнее. Но у нее нет встроенной поддержки Wi-Fi

В заключении отмечу, что на устройстве можно запустить Nintendo эмулятор ESP32-NESEMU, a Nintendo Entertainment System emulator for the ESP32
Я заказал Game Console с Али. Интересно будет посмотреть что там внутри. Возможно тоже ESP32



Обсуждение и советы жду в комментариях
Подробнее..

Прием всего Bluetooth разом на SDR с CUDA? Легко

31.07.2020 16:11:33 | Автор: admin

В последнее время коллеги по "цеху" независимо друг от друга стали спрашивать меня: как получить c одного SDR-приемника одновременно все каналы Bluetooth? Полоса ведь позволяет, есть SDR с выходной полосой 80 МГц и более. Можно, конечно, сделать это на ПЛИС, но время такой разработки будет довольно большим. Мне давно было известно, что сделать такое на GPU довольно просто, но чтобы так!


Стандарт Bluetooth определяет физический уровень в двух версиях: Classic и Low Energy. Спецификация есть здесь. Документ ужасно большой, читать его целиком опасно для мозга. К счастью, большие компании, производящие измерительную технику, имеют средства для создания наглядных документов по теме. Tektronix и National Instruments, например. У меня совершенно нет шансов в конкуренции с ними по качеству представления материала. Интересующихся прошу изучать по ссылкам.


Все, что мне нужно знать о физическом уровне для создания многоканального фильтра, это шаг сетки частот и скорость модуляции. Они сведены в таблицу в одном из указанных документов:


image


Таким образом, нам нужно нарезать полосу 80 МГц на 79 фильтров с шагом настройки 1 МГц и, одновременно с этим, на 40 фильтров с шагом настройки 2 МГц. Частоты следования отсчетов с выходов фильтров должны быть 1 МГц и 2 МГц, соответственно.


Таким образом, нам необходимо две гребенки фильтров.


Для начала выберем параметры этих фильтров исходя из полос сигналов Bluetooth Classic и Bluetooth Low Energy. Нам нужны их импульсные характеристики, чтобы рассчитать нагрузку на вычислительное устройство фильтра. Здесь сразу стоит оговориться, что длины импульсных характеристик мы выбрали исходя из требований "быстрого" алгоритма фильтрации. Суть от этого не меняется. И число коэффициентов импульсной характеристики не должно быть слишком большим, чтобы фильтр был реализуем на вменяемой вычислительной аппаратуре.


Для фильтров с шагом 1 МГц выберем полосу пропускания ФНЧ (половина полосы пропускания полосового фильтра) 500 кГц, длину импульсной характеристики подгоним к 480 отводам. Для фильтров с шагом 2 МГц эти параметры выберем 1 МГц и 240 отводов, соответственно. Тип окна выбираем Кайзера. Рассчитаем импульсные характеристики в filterDesigner и выгрузим их в формате С-header:


Скриншоты из filterDesigner

image
image
image
image


Можно решать задачу лобовым способом: строить соответствующий по числу фильтров массив DDC (Digital Down Converter). Такой подход хорош для ПЛИС, где возможна экономия за счет уменьшения разрядности вычислителей первых ступеней. Также ПЛИС это наиболее энергетически-эффективный способ реализации. Но трудозатраты при этом способе наиболее высоки.


При выполнении гребенки фильтров на популярных нынче GPU появляется возможность реализации более хитрого алгоритма: полифазной гребенки фильтров на основе БПФ, который на CUDA доступен из библиотеки. В заграничной литературе алгоритм называется Polyphase or WOLA (Weight, Overlap and Add) FFT Filterbank. Лень к рисованию не дает мне возможности выполнить наглядное объяснение самостоятельно. В Сети есть много материалов по теме, особенно наглядный график выполнен здесь на странице 11 (огромное спасибо уважаемым авторам), вот он:


image


Я попробую пояснить схему обработки своими словами. Слабонервных прошу не читать.

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


Железо выберем то, которое есть под рукой. Это плата ввода компании "Инструментальные Системы" FMC126P. О ней я уже писал в одной предыдущей статье. В разъем FMC платы вставлен субмодуль той же компании с трансивером AD9371 с полосой 100 МГц. Весь поток с трансивера может быть непрерывно передан в компьютер для обработки.


Выберем видео-карту с GPU GTX 1050. (Соврал, это она нас выбрала: это все что было под рукой, была выдрана из вычислителя для расчета антенн, но тем удивительней было увидеть рабочую гребенку). Перейдем к программной части.


К сожалению, из-за лицензий мы не можем опубликовать полный код. Можем показать только ядра GPU. Впрочем, остальной код и не особо интересен.


Вот ядро, которое выполняет перемножение сигнала на окно и сложение, и обертка для его вызова:


__global__ void cuComplexMultiplyWindowKernel(const cuComplex *data, const float *window, size_t windowSize, cuComplex *result) {    __shared__ cuComplex multiplicationResult[480];    multiplicationResult[threadIdx.x] = cuComplexMultiplyFloat(data[threadIdx.x + windowSize / 4 * blockIdx.x], window[threadIdx.x]);    __syncthreads();    cuComplex sum;    sum.x = sum.y = 0;    if (threadIdx.x < windowSize / 4) {        for(int i = 0; i < 4; i++) {            sum = cuComplexAdd(sum, multiplicationResult[threadIdx.x + i * windowSize / 4]);        }        result[threadIdx.x + windowSize / 4 * blockIdx.x] = sum;    }}cudaError_t cuComplexMultiplyWindow(const cuComplex *data, const float *window, size_t windowSize, cuComplex *result, size_t dataSize, cudaStream_t stream) {    size_t windowStep = windowSize / 4;    cuComplexMultiplyWindowKernel<<<dataSize / windowStep - 3, windowSize, 1024, stream>>>(data, window, windowSize, result);    return cudaGetLastError();}

Код обработки сигнала, который вызывает это ядро, в точности повторяет схему алгоритма, изображенную на рисунке выше, поэтому не вижу смысла приводить его здесь.


Гребенки были проверены на выходном спектре каналов в реальном времени. На вход AD9371 подавался сигнал генератора сигналов 2450 МГц, селективность фильтров соответствовала расчетной.


image


В планах: адаптация софта на плату XRTX и реализация поиска пакетов, если это кому-нибудь окажется нужно или будет свободное время.


Всю работу по софту выполнил gaudima, слава ему!

Подробнее..

Уличные часы изнутри, а если посложнее?

04.08.2020 04:06:55 | Автор: admin
НЕ взирая на прекрасные отзывы теоретиков продолжаю цикл о внутреннем устройстве часов светодиодных уличных, со стороны практики.

В случае, когда корпус прямоугольной формы и дисплей представляет собою, по сути, всего-то четыре цифры = то что там может быть сложного? Всегда имеется стремление к чему-то бОльшему. Но вот если корпус более сложной формы, то тут НЕ только бОлее трудоёмкий процесс непосредственно изготовления циферблата и корпуса, нужнА изюминка!

НЕкоторое время тому назад возникла возможность изготовить часы с многогранной кромкой, напоминающей по форме орден. Для ещё бОльшей необычности добавил такую хитрость, как секундные метки, набегающие вкруговую по кромке. Выглядит очень необычно и эффектно!
image

Самая сложность тут как раз таки в метках разной длинны, а это куда бОлее сложные просчеты светодиодных цепочек, так как драйвера НЕ любят светодиоды с большой разницей итогового напряжения в пределах одного драйвера (о чём честно и написано в АпНотах к этим самым драйверам, дОпуски буквально в полВольта).
image
Начало как обычно макет, он же может быть использован и как фотовид (если правильно раскрасить). Потом формирование матрицы дисплея всё как обычно, просто дОльше и муторней.
image
Что же касается внутреннего устройства то такие часы НАМНОГО сложнее, по сути как несколько циферблатов, ведь четыре отображающих информация сегментных символа это всего-лишь 28 сегментов (цепочек). А вот секундные метки это АЖ 60 меток (цепочек), да еще и с разным прямым напряжением (то есть разной группировкой по драйверным полям). Получается только сами метки, это как еще почти трое обычных (символьных) часов.
Но сложности нас не пугают НЕкоторое время кропотливой однообразной работы и готово!
image
Сразу обращает внимание обилие драйверных плат, их только по меткам вдвое больше, чем для основных цифр. Так-же куда бОлее сложное питание, несколько напряжений, для большей эффективности и меньшего нагрева (а значит и потерь). Да и соединений больше в несколько раз. То есть такие часики не только смотрятся куда более выиграшнее, но и по трудоёмкости сборки как минимум втрое сложнее обычных
Может поэтому именно такие часы почти никто и НЕ делает (по крайней мере я сторонних видел буквально пару-тройку вообще).
В реале получившиеся часики местным можно вживую посмотреть по Бериславскому шоссе, за кафехой Грааль (рядом с мойкой и шинсервисом, напротив мебельного, который бывший ВоенТорг).
Конкетно эти часики были смонтированы в 2012 году, работают и посей день круглосуточно, без ремонтов
Уже вдохновившись и набив руку сделал еще несколько вариантов, многие говорят, что покрасивше :)
image
image
Были, конечно и другие формы, но об этом уже в следующий раз
image
image
image

Еще можно взглянуть видео, так более понятно


Особенности:
используются качественные UV-protect светодиоды с высокой яркостью и диффузной линзой, угол обзора порядка 100 Град;
управляющий контроллер PIC, 18й серии (не 16е те сильно урезаны по возможностям);
управляющая программа полностью и с нуля написана на Ассемблере, никаких сторонних библиотек и компиляторских вкраплений;
для управления часами используется беспроводный пульт ДУ на ИК лучах, обычный, от телевизора при его утере или поломке таковой легко купить;
яркость свечения светодиодов управляется методом ШИМ, 15 возможных уровней яркости (этого более чем достаточно);
часы оборудованы фотосенсором, каждые 15 секунд измеряющим освещенность. Программа усредняет результаты последних 8ми измерений (для уменьшения влияния, например света фар проезжающих автомобилей). Когда освещенность падает ниже заданного пользователем уровня часы переключаются на ночную пониженную яркость. Это исключает пересвечивание (эффект, когда ночью сильно яркий дисплей издалека выглядит просто как цветное пятно);
экрана;
в качестве часового генератора используется довольно точная RTC DS3231;
модули питания MeanWell (проверены временем! Автовольтаж 165-240 Вольт, запас по мощности 20%);
управление часами посредством системы меню, с группировкой по параметрам ({время/дата, точность}, {периоды отображения времени, даты и температуры}, {порог освещенности/ночная яркость}, {коррекция показаний термометра и других датчиков}); сохранение изменений только по запросу, при бездействии пользователя через две минуты часы автоматически возвращаются в обычный режим работы без сохранения изменений;
при выборе компонентов используется 50% запас по технологическим параметрам;
проектный период круглосуточной эксплуатации 5 лет.

Всем бобра!

Благодарю за уделенное внимание!
Дальше будет

послание комментаторам
З.. Специально для тайных поклонников Эдисона (лампа должна работать ровно 1500 часов), адептов секты прозрачных корпусов и демонстрации внутренностей устройства, да и вообще исповедующих принцип больше казаться, чем быть!:

1). Как при разработке, так и при изготовлении устройств руководствуюсь единственным принципом = долговечность и надежность. Статистически это проявляется в сроке службы изделия. Закладывается срок жизни в пять лет. В реале ходят дОльше, есть и 10 летние

2). Поклонникам китайских красивеньких плат (с шелкографией, химической металлизацией и прочими понтами), считающим, что китай-платы много лучше самодельных (фоторезист) могу сказать следующее большинство попадавшихся мне китай-плат сделаны из весьма посредственного материала, толщина фольги обычно 18 мкМ. У меня же еще с давних времен осталось немало советсткого текстолита СФ-1 с толщиной фольги 35 мкМ. Да еще и потрясающей термостойкостью. Почему-то у приносимых мне на ремонты устройств дорожки отпадают после трех-четырех паек (ну например, замена пресловутых сегментных блоков). У советского текстолита этот показатель на порядок выше!
Не говоря уже о лужении меди (а что это такое?) и переходами исключительно проволокой или заклепками изделие-то уличное!
Так что там, на счёт понтов ?!?

3). Касательно каких-то там 10 долларов . У меня обычно клиент сначала оглашает допустимый бюджет и свои хотелки на эти деньги. И уже исходя из этого проектируется устройство. А так-как 95% надежности и долговечности это качество светодиодов (а следственно их цена), то и 10 долларов имеют вес.
Разговоры про поиск бОлее богатых клиентов оставим столичным успешным предпринимателям А что делать тем, кто заказывает на свои, кровно заработанные? Копить ?!? Ню-ню

4). Адекватным комментариям и замечаниям я завсегда только рад. А вот на те, которые в стиле ужосЪ!, где мои глаза, в кружке очумелые ручки делают лучше даже НЕ буду тратить своё время Лучший показатель правильного пути это время жизни изготовленного устройства

5). На счёт увидел бы клиент, какое говно внутри сбежал-бы в шоке = приведу цитату как раз таки моего клиента (с которым мы вчера повеселились над подобными каментами) мне всё равно, что внутри, хоть ведро го$на, главное что-бы часы выглядели, как было задумано и отработали не только гарантийный срок, но и еще сверху хотя-бы половину его!. А понторезы пусть и дальше хвастаются красивенькими платками, аккуратно уложенными шлейфами и прочими атрибутами. И спорить на эту тему даже НЕ собираюсь! Только по существу!

6). На счёт красок, лаков и компаундов Состав и способы нанесения подбирались в течение многих лет, основной критерий надежность и долговечность. Цена играет роль, но не главную!

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

Ну как-то так
Подробнее..

Как можно и как нельзя использовать нулевой указатель в С

30.07.2020 16:13:15 | Автор: admin


Некоторым этот банальный вопрос уже набил оскомину, но мы взяли 7 примеров и попытались объяснить их поведение при помощи стандарта:


struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};/*1*/ *p;/*2*/ foo((*p, 5));                     /*3*/ A a{*p};/*4*/ p->data_mem;/*5*/ int b{p->data_mem};/*6*/ p->non_static_mem_fn();/*7*/ p->static_mem_fn();

Очевидная, но важная деталь: p, инициализированный нулевым указателем, не может указывать на объект типа А, потому что его значение отлично от значения любого указателя на объект типа А conv.ptr#1.


Disclaimer: статья содержит вольный перевод терминов и выдержек из стандарта на русский язык. Мы рекомендуем английскую версию статьи на dev.to, лишенную неточностей перевода.


Пример 1


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


*p;

Синтаксически это оператор выражения (expression statement, stmt.expr#1), в котором *p является выражением с отброшенным результатом, который, тем не менее, нужно вычислить. Определение унарного оператора * expr.unary.op#1 гласит, что этот оператор осуществляет косвенное обращение (indirection), и результатом является l-значение, которое обозначает объект или функцию, на которую указывает выражение. Его семантика понятна, чего не скажешь о том, должен ли объект существовать. Нулевой указатель в определении не упоминается ни разу.


Можно попробовать зацепиться за косвенное обращение, потому что есть basic.stc#4, в котором четко написано, что поведение при косвенном обращении через недопустимое значение указателя (indirection through an invalid pointer value) не определено. Но там же дается описание недопустимого значения указателя, под которое нулевой не подходит, и дается ссылка на basic.compound#3.4, где видно, что нулевой указатель и недопустимый это различные значения указателя.


Еще есть примечание в dcl.ref#5, которое гласит, что the only way to create such a reference would be to bind it to the object obtained by indirection through a null pointer, which causes undefined behavior, т.е. единственный способ создать такую ссылку привязать ее к объекту, полученному за счет косвенного обращения через нулевой указатель, что приводит к неопределенному поведению. Но придаточное в конце может относиться не только к косвенному обращению, но и к привязать (to bind), и в этом случае неопределенное поведение вызвано тем, что нулевой указатель не указывает на объект, о чем и говорится в основном тексте пункта dcl.ref#5.


Раз стандарт вместо однозначных формулировок оставляет пространство для интерпретаций в разрезе нашего вопроса, можно обратиться к списку дефектов языковой части стандарта, где Core Working Group среди прочего поясняет текст стандарта. Наш вопрос выделен в отдельный дефект, где CWG довольно давно пришла к неформальному консенсусу (так определен статус drafting), что неопределенное поведение влечет не разыменование само по себе, а конвертация результата разыменования из l-значения в r-значение. Если неформальный консенсус CWG звучит недостаточно весомо, то есть другой дефект, в котором рассматривается пример, аналогичный нашему примеру 7. Такой код назван корректным по этой же причине в официальной аргументации CWG.


В дальнейших рассуждениях мы будем опираться на этот консенсус. Если в будущем стандарт запретит разыменовывать нулевые указатели по примеру Си (N2176, 6.5.3.2 и сноска 104), значит, все примеры содержат неопределенное поведение, и на этом разговор можно закончить.


Пример 2


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


foo((*p, 5));  

Чтобы вызвать foo, требуется проинициализировать его параметр, для чего нужно вычислить результат оператора запятая. Его операнды вычисляются слева направо, причем все, кроме последнего, являются выражениями с отброшенным значением так же, как и в примере 1 (expr.comma#1). Следовательно, этот пример также корректен.


Пример 3


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


A a{*p};

Для инициализации a будет выбран неявный конструктор копирования, и для того, чтобы его вызвать, нужно проинициализировать параметр const A& допустимым объектом, в противном случае поведение не определено (dcl.ref#5). В нашем случае допустимого объекта нет.


Пример 4


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


p->data_mem;

Выражение этого оператора выражения при вычислении будет раскрыто в (*(p)).data_mem согласно expr.ref#2, которое обозначает (designate) соответствующий подобъект объекта, на который указывает выражение до точки (expr.ref#6.2). Параллели с примером 1 становятся особенно явными, если открыть, скажем, basic.lookup.qual#1, и увидеть, как to refer и to designate взаимозаменяемо используются в том же смысле, что и в expr.ref. Из чего мы делаем вывод, что это корректный код, однако некоторые компиляторы не согласны (см. про проверку константными выражениями в конце статьи).


Пример 5


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


int b{p->data_mem};

В продолжение предыдущего примера не будем отбрасывать результат, а проинициализируем им int. В этом случае результат нужно конвертировать в pr-значение, потому что выражения именно этой категории инициализируют объекты (basic.lval#1.2). Так как речь идет об int, будет осуществлен доступ к объекту результата (conv.lval#3.4), что в нашем случае ведет к неопределенному поведению, потому что ни одно из условий basic.lval#11 не соблюдается.


Пример 6


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


p->non_static_mem_fn();

class.mfct.non-static#1 гласит, что функции-члены разрешено вызывать для объекта типа, к которому они принадлежат (или унаследованного от него), или напрямую из определений функций-членов класса. Именно разрешено такой смысл вкладывается в глагол may be в директивах ИСО/МЭК, которым следуют все стандарты ИСО. Раз объекта нет, то и поведение при таком вызове не определено.


Пример 7


Открыть начало кода
struct A {    int data_mem;    void non_static_mem_fn() {}    static void static_mem_fn() {}};void foo(int) {}A* p{nullptr};


p->static_mem_fn();

Как говорилось в рассуждениях к примеру 1, Core Working Group считает этот код корректным. Добавить можно лишь то, что согласно сноске 59, выражение слева от оператора -> разыменовывается, даже его результат не требуется.


Проверка с помощью constexpr


Раз константные выражения не могут полагаться на неопределенное поведение (expr.const#5), то можно узнать мнение компиляторов о наших примерах. Пусть они и несовершенны, но как минимум нередко правы. Мы взяли три популярных компилятора, подправили пример под constexpr и для наглядности закомментировали те примеры, которые не компилируются, потому что сообщения об ошибках что у GCC, что у MSVC оставляют желать лучшего на данных примерах: godbolt.


Что получилось в итоге:


#
Код
Предположение
GCC 10.1
Clang 10
MSVC 19.24
1
*p;
+
+
+
+
2
foo((*p, 5));
+
+
+
+
3
A a{*p};
4
p->data_mem;
+
+
5
int b{p->data_mem};
6
p->non_static_mem_fn();
+
+
7
p->static_mem_fn();
+
+
+
+

Результаты заставляют несколько усомниться в выводе из примера 6 и в большей степени из примера 4. Но также интересно, что мы все сходимся во мнении о ключевом примере 1.


Спасибо, что остались с нами до конца, чтобы проследить за приключениями нулевого указателя в С++! :-) Обычно мы делимся на Хабре кусками кода из реальных проектов по разработке встроенного ПО для электроники, но этот раз нас заинтересовали чисто философские вопросы, поэтому примеры синтетические.


Если вы разделяете нашу любовь к противоречиям в С++, делитесь наболевшим в комментариях.

Подробнее..

Software v.s. Hardware. Или почему электронщику жить тяжело?

11.08.2020 18:08:34 | Автор: admin

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

Российское лобби программных гигантов уже давно работает с органами власти, всякие преференции программные компании получали еще до 2020 года, узнавая о которых я мог сказать только А что так можно было ?. Например, налоги для софтверных компаний с 2017 года составляли:

  • на обязательное пенсионное страхование 8% (для сравнения, общий тариф 22%)
  • на обязательное социальное страхование на случай временной нетрудоспособности и в связи с материнством 2% (общий тариф 2,9%)
  • на обязательное медицинское страхование 4% (общий тариф 5,1%). Таким образом, тариф для софтверных компаний был на уровне 14%, в то время как общий тариф, предусмотренный для большинства налогоплательщиков, составляет 30%.

image

Но вроде на жизнь хватало пока не начался ковид. Во время изоляции Хабр пестрел статьями о том как IT компании перевели своих разработчиков на удаленку, развозя их на такси с корпоративными аккаунтами, и организуя им дома рабочие места с числом мониторов, чуть меньше чем в ЦУПе. А железячники решали, можно ли осциллограф, с ценником как у однушки, дать студенту в общагу. Или есть ли место на балконе для тестового стенда с мотором на пару киловатт и можно ли договорится с соседями и ЖЭКом кинуть от щитка три фазы? Вот и пришлось железячникам стойко изолироваться в своих офисах. Программисты обновляли и выпускали новые релизы через Интернет, рапортовали о росте трафика. Железячники же в самодельных масках и строительных перчатках выдавали со склада продукцию лично, и как сводки боевых действий читали о закрытии цехов, так как там наши заражённого. Может это и не форс-мажор, но индустрии электроники придавило прилично. Поэтому для поддержки президент РФ подписал закон о налоговом маневре для IT компаний, в который, наконец, включили и железячные компании с 1 января 2021 года налог на прибыль для таких компаний должен снизится с 20% до 3%, а страховые взносы с 14% до 7,6%. При этом обнуляется налог на прибыль, который должен был зачисляться в региональные бюджеты.

Ух, заживем! сказала отрасль и пошла читать Федеральный закон от 31.07.2020 N 265-ФЗ О внесении изменений в часть вторую Налогового кодекса Российской Федерации.
4) статью 284 дополнить пунктами 1.15 и 1.16 следующего содержания:

1.15. Для российских организаций, которые осуществляют деятельность в области информационных технологий, разрабатывают и реализуют разработанные ими программы для ЭВМ, базы данных ..., налоговая ставка по налогу, подлежащему зачислению в федеральный бюджет, устанавливается в размере 3 процентов, а налоговая ставка по налогу, подлежащему зачислению в бюджет субъекта Российской Федерации, в размере 0 процентов.

Указанные в настоящем пункте налоговые ставки применяются при одновременном выполнении следующих условий:

доля доходов от реализации экземпляров разработанных организацией программ по итогам отчетного (налогового) периода составляет не менее 90 процентов в сумме всех доходов организации за указанный период;

Пошью костюм с отливом сказали программисты.
1.16. Для российских организаций, которые осуществляют деятельность по проектированию и разработке изделий электронной компонентной базы и электронной (радиоэлектронной) продукции, налоговая ставка по налогу, подлежащему зачислению в федеральный бюджет, устанавливается в размере 3 процентов, а налоговая ставка по налогу, подлежащему зачислению в бюджет субъекта Российской Федерации, в размере 0 процентов.
Указанные в настоящем пункте налоговые ставки применяются при одновременном выполнении следующих условий:

доля доходов от реализации услуг (работ) по проектированию и разработке изделий электронной компонентной базы и электронной (радиоэлектронной) продукции по итогам отчетного (налогового) периода составляет не менее 90 процентов в сумме всех доходов организации за отчетный (налоговый) период;

Ну как так та а? сказали железячники.

То есть если вы смогли в России разработать микросхемы, электронную аппаратуру, или что либо физически-материально осязаемое, начали это производить и самое главное продавать, то налоговые послабления не для вас. Если ваша компания делает новые процессоры, коммутаторы, АСУТП контроллеры, датчики, цифровые подстанции, светофоры, блоки управления лифтов, станции зарядки электротранспорта и прочее и прочее вам все так же придется платить налоги в полном объеме. Так как ваши 90% доли доходов должны быть только от разработки (услуги), а не от реализации конечной продукции. Вот такая она поддержка.
Подробнее..

Где прячется Российская электроника

28.07.2020 22:14:29 | Автор: admin
Каждый раз, когда я пишу о российской электронике, в комментариях появляется множество людей, совершенно уверенных, что российской электроники не существует, и всё, что могут делать отечественные компании это приклеивать наклейки Сделано в России на китайские устройства.




На самом деле несмотря на то, что в России действительно почти не производится элементная база, производством электроники занимается огромное количество компаний и даже частных лиц. Любое устройство, спроектированное в нашей стране можно назвать российским, даже если оно производится в Китае из китайских комплектующих. Хороший пример Яндекс.Станция. Без всякого сомнения это российский продукт.

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



К сожалению обычному человеку очень сложно найти информацию о российской потребительской электронике. Хоть у всех производителей и есть сайты, в поиске всё забивает реклама и продукты, которые у всех на слуху. Маленькие производители не могут себе позволить тратить деньги на рекламу.

Например, сегодня я узнал о том, что в Тольятти работает компания Штат, производящая автомобильные и домашние сигнализации, которая выпускает наверное самую дешёвую в мире автономную GSM-сигнализацию КРИКАНА-ПМТ, цена которой всего 1350 рублей. Вы что-нибудь слушали о Штате и Крикане? Уверен, что нет. А о калининградской сигнализации Navigard, обзор которой я сейчас пишу? Думаю, тоже нет.

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

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

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

Такой сайт можно сделать за пару часов на Wordpress, самое в нём сложное наполнение. И вот тут без помощи мне не обойтись. Если вы, как и я, готовы бесплатно пропагандировать отечественную электронику (белорусскую и украинскую я думаю тоже можно добавить) и у вас есть немного времени напишите мне. Задача искать в интернете новые устройства и создавать карточки продуктов с кратким описанием, ценой и картинкой.

Принимаются идеи и по имени домена для сайта (из числа свободных).

Ну что, есть ещё кроме меня энтузиасты в нашем Отечестве?

2020, Алексей Надёжин
Подробнее..

Новый закон Мура и причем здесь фотоника?

27.07.2020 22:10:16 | Автор: admin
Ранее мы разобрали использование технологий нанофотоники в глубоком обучении и как благодаря им увеличивается производительность вычислительных систем на программно-аппаратном уровне.

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

Важно: большинство ссылок, приводимых в статье ведут к материалам на английском языке. Отечественных исследователей фотоники в России не так много, а те, что есть предпочитают публиковаться на английском.

Для дополнительного изучения темы на досуге за чашечкой чая предлагается прослушать доклад Дмитрия Федянина одного из ведущих отечественных исследователей по применению технологий нанофотоники в вычислительных системах.


Дмитрий Федянин старший научный сотрудник МФТИ.

А далее мы разберем интересную статью, в которой группой авторов предлагается крайне оригинальная концепция метрики роста производительности, альтернативная классическому закону Мура. Идея созрела благодаря анализу природных физических ограничений в существующих технологиях работы ядер процессоров, а также подтверждаемых сегодня экспериментально перспектив новых систем на базе нанофотоники.

Непрерывно выдвигаемые современной индустриальной системой требования к повышению эффективности вычислений и пропускной способности связи привели к тому, что полупроводниковые технологии в их текущем состоянии достигли своего предела. Это привело к появлению новых технологий, способных превзойти традиционные решения. Речь идет о фотонных препроцессорах или ускорителях, электронно-фотонных гибридных схем и нейронных сетях. Однако усилия, предпринятые для описания и прогнозирования эволюции производительности вычислительных систем, не позволяют точно предсказать и тем самым объяснить фактически наблюдаемый темп развития; то есть все предлагаемые показатели в конечном итоге отклоняются от траектории их развития через несколько лет после того, как они были первоначально предложены. Это несоответствие требует уравновешенной метрики, которая включал бы в себя целостный набор движущих сил эволюции вычислительных систем.

Оригинальная концепция новой метрики под названием Capability to Latency-Amount-Resistance (CLEAR) была предложена международным коллективом исследователей (Shuai Sun, Vikram K. Narayana, Mario Miscuglio, Lionel C. Kimerling, Tarek El-Ghazawi, Volker J. Sorger). По мнению авторов статьи (см. здесь) эта метрика охватывает динамику изменений скоростей синхронизации, энергоэффективности, масштабирования физического размера вычислительных машин и экономических затрат. По мысли авторов, CLEAR единственная на сегодняшний день метрика, которая корректно описывает историческое развитие вычислительных систем. Даже при разных вариантах и взаимных технологических сочетаниях, CLEAR соответствует наблюдаемой постоянной скорости роста, включая предлагаемые для реализации в будущем доминирующие технологии вычислительных систем (прогноз). CLEAR предстает перед читателями как руководство для количественного прогнозирования роста производительной эффективности вычислительных систем в данный момент времени и будущем.

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

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

Например, производительность процессора, состоящего из N ядер по-прежнему ограничена соотношением 1/((1-p)+p/N), где p представляет собой уровень параллелизации (см. здесь). Поэтому отслеживать эволюцию производительности вычислительных систем становится все сложнее, если использовать только закон Мура (или другие существующие метрики прогнозирования), в котором для описания производительности вычислительной системы используется только один или несколько движущих факторов (см. здесь). Кроме того, преимущества различных реализаций аппаратного обеспечения (например, электрические, оптические) изменяются со временем по-разному, что еще больше затрудняет эволюционное прогнозирование.

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

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

image
Рисунок 1.Характер развития вычислительных систем, начиная с 1946 года и до наших дней, можно представить в виде четырех различных показателей: (а) закон Мура опирается на рост количества компонентов на кристалле, измеряемых в единицах численного количества транзисторов; (б) закон Куми отражает энергоэффективность на единицу вычислений, бит/(с*Джоуль); (в) показатель Макимото, включающий в себя интеллект, мощность, размер и стоимость системы измеряется в единицах MIPS/(Вт*мм3*$); и (г) показатель CLEAR, определенный в уравнении (4) и учитывающий задержку системы в дополнение к показателю Макимото, а также экономические издержки, связанные с внедрением новой технологии: MIPS/(с*Вт*мм3*$). Данные Photonic CLEAR построены на основе прогноза Intel по кремниевой фотонике. Пунктирные линии представляют линейное соответствие (в логарифмическом масштабе), основанное на начальной скорости роста, с ежегодным удвоением производительности.

По представлению авторов, 5-факторный показатель CLEAR (название которого представляет аббревиатуру Capability-to-Latency-Energy-Amount-Resistance) на сегодняшний день является наиболее достоверным для описания эволюции производительности вычислений на всем известно историческом периоде, начиная с самого начала появления вычислительных технологий в 1940-х гг. и вплоть до настоящего времени. Этот показатель охватывает как физические, так и экономические факторы, связанные с темпами развития различных вариантов вычислительной техники. Таким образом, CLEAR может использоваться в качестве независимого от той или иной технологии количественного показателя, поскольку он включает как фундаментальные физические, так и экономические зависимости.

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

Эволюция вычислительных систем


Основные движущие силы


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

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

Недавно появилась новая движущая сила из совершенно другой области, которая влияет на эволюцию вычислительных систем и представляет собой интегрированную фотонику и гибридизированную нанофотонику, где маршрутизация светового сигнала выполняется пассивными интегрированными фотонными компонентами, тогда как электрооптические активные компоненты усиливаются новыми решениями:
реконфигурируемые материалы;
сильные взаимодействия света с веществом, такие как плазмоника или фотоника ENZ (epsilion-near-zero), вместе обеспечивающие канал передачи данных и пропускную способность, превосходящие обычную электронику на двух уровнях: микросхема и ядра (см. здесь).

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

Единый показатель эволюции вычислительных систем


Чтобы получить независимый от технологий показатель, авторы собирали данные о производительности десктопов, ноутбуков, мобильных устройств, серверов, рабочих станций и суперкомпьютеров с 1940-х и сопоставляли их с традиционными показателями (Рис. 1).

В частности, закон Мура принимает количество транзисторов как единственно достаточный фактор (уравнение 1), в то время как закон Куми опирается уже на два фактора: энергия и количество вычислений, тем самым подведя основания под показатель, измеряемый в бит/(с*Дж) (уравнение 2). Миллионы команд в секунду (MIPS) на единицу измерения размера-стоимости-мощности известны как показатель Макимото, определяемый уже как 4-факторный показатель (уравнение 3).

Закон Мура = Количество Транзисторов [кол-во шт.] (1)

Закон Куми = Вычисления/Энергия [бит/(с*Дж)] (2)

Показатель Макимото = Интеллект/(Размер*Стоимость*Мощность) [MIPS/(мм3*$*Вт)] (3)

Значения этих трех показателей показывают сходную модель роста: растущий тренд хорошо отслеживает их исходные данные, но только в течение ограниченного периода времени, и в конечном итоге отклоняется от них. Это говорит о том, что факторы, взятые в них за основу, не смогли полностью уловить фактическую движущую силу, которая доминирует в эволюции вычислительных систем.

Анализ линий тренда на рис. 1 показывает, что количество транзисторов первоначально (19501960-е годы) хорошо отражает закон Мура о двукратном ежегодным росте (пунктирная светло-зеленая линия, рис. 1). Однако масштабирование энергоэффективности (т.е. закон Куми) стало доминирующим фактором в течение следующего периода (19601970-е годы), поскольку простое добавление большего количества транзисторов ограничено размером и сложностью микросхемы. По этой причине закон Мура начал отклоняться от тенденции 2X/год, в то время как закон Макимото все еще сохранял свои первоначальные темпы роста. Начиная с конца 1970-х годов факторы, как размеры, так и масштабирование мощности постепенно достигают предела из-за проблем с заметно усложнившимися процессами производства, утечкой энергии и рассеиванием тепла. Вместе с появлением параллелизма (то есть многоядерных процессоров) и экономическим масштабированием на рынке, показатель Макимото, в итоге, также отклоняется (начиная с 1978 года). Пунктирные линии, показанные на рис. 1, представляют начальные прогнозы роста производительности по каждому закону. Эти линии тренда показывают, как каждый дополнительный фактор, введенный соответствующими законами, влияет на собственную исходную метрику прогнозирования, показанную как отклонение от исходного прогноза. Рассматривая эту тенденцию как теоретический верхний предел скорости развития технологии, теперь можно понять, действительно ли заявленный тренд является фактическим или нет. То есть, является ли действующий закон причиной замедления развития технологий, или же начинают доминировать новые факторы производительности.

Таким образом, на сегодняшний день не существует четкого известного показателя, который может:
  • объяснить последние изменения в производительности;
  • предоставить руководство по прогнозированию производительности в будущем.

Внедренный авторами показатель CLEAR включает в себя факторы производительности из множества технологических вариантов, которые включают как физические, так и экономические ограничения. Главное утверждение авторов заключается в том, что факторы, составляющие CLEAR, выбираются не случайно, а являются фундаментальными для технологических и экономических трендов:

CLEAR = Способность/(Задержка*Энергия*Количество*Сопротивление) [[MIPS/(с*Вт*мм3*$)]] (4)

или в оригинале:

CLEAR = (Capability )/(Latency*Energy*Amount*Resistence) [[MIPS/(с*Вт*мм3*$)]]

Авторы, сформулировав формулу для показателя CLEAR, определяют постоянную скорость роста в течение всей эволюции вычислительных систем, охватывающей рост производительности на 4 порядка за семь десятилетий. Более того, фактическая наблюдаемая скорость развития постоянно держится на уровне двукратного роста каждые 12 месяцев. Этот 5-факторный показатель определяется на основе концепции производительности и стоимости. CLEAR может применяться на уровне устройства, схемы и системы.

Например, на системном уровне CLEAR структурирована следующим образом:
Способность C это производительность системы, определяемая произведением миллионов инструкций в секунду (MIPS) и длины команды;
минимальная Задержка L относится к тактовой частоте и ограничена временным окном между двумя соседними тактовыми циклами;
Энергия E представляет собой уровень энергопотребления для работы такой системы в целях получения определенной мощности, выраженной в единицах ватт;
Количество A представляет пространственный объем (то есть физический размер) системы и является функцией размерности процесса;
Сопротивление R количественно определяет экономическое сопротивление принятия рынком новых технологий. Базово авторы берут экономическую модель, основанной на кривой опыта Boston Consulting Group (BCG), которая объясняет взаимосвязь между совокупным производством и удельной стоимостью (см. здесь).

Авторы выводят линейную зависимость между логарифмической шкалой единицы цены и времени, далее подтверждают эту зависимость, сопоставляя исторические данные (см. здесь и здесь) с CLEAR.

Авторы отмечают, что метрика MIPS в качестве показателя производительности заменяется метриками, такими как операции с плавающей точкой (FLOPS), из-за ее восприимчивости к базовому набору команд. CLEAR применяется к различным архитектурам процессоров на протяжении истории, для которых другие метрики производительности недоступны в известных наборах тестов производительности (например, SPEC или LINPAC). Однако, чтобы сделать MIPS репрезентативной метрикой производительности, авторы взвешивали (то есть умножали) каждую инструкцию по ее длине, тем самым давая относительную общую метрику в единицах бит/с.

Тренды развития вычислительных систем


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

Кроме того, можно обнаружить, что относительное отклонение от линии тренда 2Х/год можно использовать для классификации показателя вычислительной системы. Например, дополнительные накладные расходы (т.е. физический размер, параллелизм, охлаждение, низкая экономия на масштабе и производственные затраты) на суперкомпьютеры показывают их худшие значения CLEAR по сравнению со всеми другими типами компьютеров, такими как ноутбуки и мобильные устройства, несмотря на их более высокую производительность (пунктирные кружки, рис. 1 в, г). Высокий параллелизм многоядерных технологий, используемых в суперкомпьютерах, подвергается сомнению из-за отдачи от вычислений к энергии, описанной в законе Амдала (см. здесь). Несмотря на то, что суперкомпьютеры обеспечивают производительность в режиме petaflop, вся инфраструктура напоминает компьютерную инфраструктуру пятилетнейтридцатилетней давности, что ставит под сомнение будущее для ее масштабирования.

Анализ CLEAR


Чтобы получить более детальное представление об относительном воздействии каждого из 5 факторов CLEAR, авторы разложили показатель на отдельные факторы, противопоставив один другим, чтобы выявить фактические движущие силы во времени.

Комбинации факторов, использованных на рис. 2, представляют собой C против LEAR, CLE против AR и CLEA против R (рис. 2, C = способность, L = задержка, E = энергия, A = количество, R = сопротивление). Кроме того, показана исключающая скорость C' по сравнению со всеми другими факторами, поскольку единственным фактором масштабирования в первые годы полупроводниковой промышленности является количество компонентов на кристалле. Важно отметить, что относительные положения каждой точки данных более важны, чем точные значения как по осям X, так и по осям Y, и, таким образом, обе оси нормализованы к единице, что позволяет сравнивать каждый случай.

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

1
Рисунок 2. Анализ движущей силы CLEAR.
Показатель CLEAR разбит на четыре группы, каждая из которых состоит из двух частей: коэффициент, демонстрирующий факторы на пути развития технологий (ось X), и раскрывающий фактор, который показывает способность отслеживания выбранного фактора или комбинации факторов (ось Y). Результаты показывают, что более позднее отклонение от нормированного развития наблюдается, когда учитывается больше факторов для описания производительности вычислительных систем. (а) Исключающая Скорость C против Задержки-Энергии-Количества-Стоимости (LEAR); (б) Способность C против Задержки-Энергии-Количества-Стоимости (LEAR); (в) Способность на Задержку-Энергию (CLE) против Количества-Стоимости (AR); (г) Способность на Задержку-Энергию-Количество (CLEA) против Стоимости R. Оси X и Y нормализованы до единицы для лучшего сравнения. Линейный рост и области насыщения покрыты синими и красными тенями соответственно.

Применение CLEAR


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

Смена технологий


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

Чтобы ответить на этот вопрос, сравним CLEAR для электронных связей с гибридными фотон-плазмонными связями в зависимости от времени эволюции и расстояния распространения сигнала (рис. 3). Здесь манипулирование светом осуществляется с помощью плазмонных активных строительных блоков (источник, модулятор, детектор, переключатель) (см. здесь и здесь), тогда как распространение света обрабатывается фотоникой низких потерь на базе кремниевых или нитрид-кремниевых платформ. Сравнивается электроника с таким вариантом плазмон-фотонного гибрида, потому что разделение активной и пассивной функциональности в гибридной плазмон-фотонике приводит к более высокой производительности (то есть, более низкая задержка, более высокая пропускная способность, более низкая функция энергии на бит). Полученные кривые поверхности показывают, что CLEAR электроники и плазмон-фотоники имеют линию безубыточности (пересечение поверхностей, рис. 3), которая масштабируется как по времени, так и по расстоянию распространения сигнала. Интересно, что даже сегодня, электроника по-прежнему опережает фотонику при размерах чипа = 1 см на длине передачи информации. Поэтому электроника до сих пор коммерчески используется на кристаллах, в отличие от фотоники. Инвестиции и разработки в электронике за последние полвека, таким образом, создали технологическую устойчивость (барьер входа) для других технологий. Такое масштабирование привело к тому, что транзистор стоит всего одну миллиардную стоимости фотонного устройства или еще меньше (см. здесь).

2
Рисунок 3.Сравнение показателей CLEAR электрического (синий) и гибридного фотон-плазмонного (красный) интерконнекта на кристалле в зависимости от длины связи и времени развития технологии. Размер чипа = 1 см, длина связи и год написания статьи (2019) обозначены красным. Были развернуты следующие модели; а) модель пропускной способности, основанная на количестве транзисторов и оптических устройств на кристалле, которую можно рассматривать как первоначальную модель закона Мура; б) модель энергоэффективности на основе закона Куми, который ограничен пределом Ландауэра kB*T*ln(2) 2.75 зДж/бит, (kB постоянная Больцмана; T температура); в) модель экономической устойчивости, основанная на моделях технологического развития до 2019 года, согласно которой стоимость электронного канала составляет менее одной миллиардной или одной миллионной стоимости гибридного канала; г) модель параллелизма (после 2006 года), описывающая многоядерную архитектуру и ограничения темного кремния в электрическом интерконнекте. Желтая точка расположена на пересечении двух технологий в период 2019 года, когда технология Hybrid Plasmon-Photonics только достигла размеров чипа и начинает демонстрировать лучшую производительность показателя CLEAR на кристалле.

По мере совершенствования технологии и производственных процессов расстояние безубыточности производительность за одну цену (т.е. CLEAR) для передачи небольшого количества информации сокращается в силу более плоской кривой стоимости электроники по сравнению с фотоникой, причем последняя следует степенному закону во времени. Более того, стоимость начинает расти с масштабированием плотности электрического интерконнекта, связанным с дополнительными издержками в силу фундаментальных физических проблем на транзисторных узлах менее 10 нм (см. здесь). В отличие от этого, гибридный фотон-плазмонный интерконнект в настоящее время дорогостоящ пока в силу только начавшегося масштабирования, которое является целью консорциума Американского института по производству интегрированной фотоники (AIM Photonics). Масштабирование теперь возможно в результате недавних достижений в нанофотонике; концепция усиления взаимодействия света с веществом позволяет создавать компактные по длине волны в оптоэлектронных устройствах с преимуществами высокой энергоэффективности и высокой скорости работы из-за низкой электрической емкости (см. здесь). В результате, дистанция безубыточности между электроникой и гибридными фотон-плазмонными технологиями, как ожидается, будет дополнительно сдвигаться на более короткие расстояния по мере движения по временной шкале. Например, кремниевый фотонный чип на основе CMOS, продемонстрированный IBM еще в 2015 году, близок к области безубыточности (см. здесь). Интегрированная фотоника сможет заменить электронику только если скорость ее CLEAR-производительности сможет догнать общий эволюционный тренд вычислительных систем.

Выводы


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

В этой первоначально предложенной метрике CLEAR все пять факторов линейно влияют на значение CLEAR, однако для конкретного приложения, которое критически зависит от конкретного фактора (или комбинации факторов), каждый фактор в CLEAR может быть взвешен по-разному. Чтобы обеспечить сопоставимость, даже среди таких настроенных метрик, может потребоваться обеспечить такие условия, чтобы сумма всех коэффициентов равнялась 5, аналогично нормализации к единице, такой как интеграл волновой функции в квантовой механике. Например, система портативных устройств может иметь строгие ограничения по энергии (E) и пространственному объему (A), что приводит к метрике CLEAR C0.8L0.8E1.2A1.2R для такой технологии. Действительно, было бы интересно сравнить тренды из различных настроенных метрик с возможностью прогнозирования технологий в будущем.

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

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

Таким образом, CLEAR может быть не только инструментом для картографирования и прогнозирования перспектив, но и может проложить путь к аппаратным умным и когнитивным компьютерным платформам управления, где компромиссы между производительностью и стоимостью пересматриваются и оптимизируются в режиме реального времени.

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

NVMe против UFS 3.1 Битва типов памяти в смартфонах. Разбор

27.07.2020 16:04:10 | Автор: admin
iPhone быстрые? Да! Но почему?

Apple мало что рассказывает нам про внутренности своих девайсов. Как будто скрывает от нас страшную тайну!

Например, знали ли вы что в iPhone и в Android используется совершенно разный тип флеш-памяти? NVMe в iPhone и UFS в Android.



Может в этом секрет скорости девайсов Apple?Сегодня разберемся в том, как устроена флеш-память. Узнаем, чем отличаются стандарты памяти? И главное сравним, кто всё-таки быстрее Android или iPhone! Такой информации больше нигде не найдете. Так что, читайте и смотрите до конца!



Флеш-память


Начнём с того что на флешках, картах памяти, в смартфонах и SSD-дисках везде используют один тот же тип памяти флеш-память. Это современная технология, пришедшая на смену магнитным носителям информации, то есть жестким дискам.

У флеш-памяти куча преимуществ. Она энергоэффективная, дешевая, прочная и безумно компактная. На чипе размером с монетку помещается до терабайта данных!



[caption id=attachment_144997 align=aligncenter width=601] Размер чипа Toshiba на фото 16x20 мм[/caption]

Но как удаётся хранить такие огромные объемы информации при таких крошечных размерах?

Как работает флеш-память?


Давайте разберемся как устроена флеш-память.

Базовая единица современной флэш-памяти это CTF-ячейка. Расшифровывается как Charge Trap Flash memory cell, то есть Память с Ловушкой Заряда. И это не какая-то образная ловушка а самая настоящая.



Эта ячейка способна запирать электроны внутри себя и хранить их годами! Примерно как ловушка из фильма Охотники за привидениями. Так что даже если ваш SSD-диск ни к чему не подключен и просто так лежит в тумбочке, знайте он полон энергии.

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



Таких ячеек много и они стоят друг над другом. Поэтому такая компоновка ячеек называется Vertical NAND или VNAND. Она крайне эффективна и очень интересно организована.


Многоэтажная память


Небольшая аналогия. Представьте, что память это огромный многоэтажный жилой комплекс, в котором каждая квартира это ячейка памяти.

Так вот, в одном доме этого ЖК всегда 6 подъездов, на каждом этаже одного подъезда размещается 32 квартиры, т.е. ячейки памяти. А этажей в таком доме может быть аж 136 штук, но только если это самый современный дом.Такой дом с шестью подъездами называется блоком памяти.



К чему я это всё?NAND память организована так, что она не может просто считать и записывать данные в какую-то конкретную ячейку, ну или квартиру. Она сразу считывает или перезаписывает весь подъезд!

А если нужно что-то удалить, то стирается сразу целый дом, то есть блок памяти. Даже если вы просто решили выкинуть ковер в одной квартире не важно. Весь дом под снос!

Поэтому прежде чем удалить что-либо приходится сначала скопировать всю информацию в соседний блок.

А если памяти на диске осталось мало, меньше 30% от общего объема, то скорость работы такого диска сильно замедляется. Просто потому, что приходится искать свободный блок- место для копирования.

Так что следите за тем, чтобы память на телефоне или SSD-диске были заполнены не более чем на 70%! Иначе всё будет тупить.

Кстати, по этой же причине стирание информации потребляет намного больше энергии, чем чтение и запись. Поэтому хотите сэкономить заряд, поменьше удаляйте файлы!

Напомню, что в жестких дисках, которые HDD, другая проблема. Там информация считывается по одной ячейке. Жесткий диск вращается, а считывающая головка ездит туда-сюда по всей поверхности диска. И, если файлы разбиты на фрагменты, хранящиеся в разных концах диска скорость падает. Поэтому, для HDD полезна дефрагментация.

Что такое спецификация?


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

Еще разок!

Есть чип с флеш-памятью, как правило это NAND память. Там хранятся данные.

А есть спецификация это целый набор технологий вокруг чипа, программных и аппаратных, которые обеспечивают взаимодействия с памятью. Чем умнее спецификация, тем быстрее работает память.

Так какие же спецификации используются в наших смартфонах и какая из них самая умная? Давайте разберёмся.

eMMC


Выход первого iPhone в 2007 году спровоцировал постепенный отказ от карт памяти. Появилась потребность в новом стандарте недорогой флеш-памяти для мобильных устройств. Так появился eMMC, что значит встроенная Мультимедиа карта или Embedded Multimedia Card. То есть прям как eSIM (Embedded SIM).

Стандарт eMMС постепенно обновлялся и его скорости росли. И eMMC до сих пор используется в большинстве смартфонов, но данный стандарт явно не рекордсмен по скорости и сильно проигрывает тем же SSD дискам.






UFS


Тогда в 2014 году появился новый стандарт с нескромным названием Universal Flash Storage или UFS! Новый стандарт был всём лучше eMMC.



Во-первых, в UFS последовательный интерфейс. А это значит, что можно одновременно и записывать и считывать. eMMC мог делать только что-то одно. Поэтому UFS работает быстрее!



Во-вторых, он в два раза более энергоэффективный в простое.

Эффективнее работает с файлом подкачки когда ОЗУ забита.И еще, существуют UFS карты памяти, которые могут быть бесшовно интегрированы в внутреннем хранилищем! Это же полноценная модульная память!

Кстати, по этой причине, внутреннюю память телефона правильнее называть eUFS. Embedded, ну вы помните.



UFS вышел сразу же в версии 2.0 в 2015 году, а первым телефоном с этим стандартом стал Samsung Galaxy S6. Samsung так гордились скоростью памяти, что даже выкинули слот microSD изGalaxy S6.Казалось бы, судьба стандартов флеш-памяти предрешена вот он новый король. Новый USB мира флеш-памяти.

Но внезапно выходит iPhone 6s и мы видим это!





Что? Как такое возможно? Что за чудо память в этих iPhone? Похоже, Apple пошли какой-то своей дорожкой.Если стандарты eMMC и UFS наследники каких-то там детских карт памяти, то память в iPhone прямой наследник взрослых SSD-дисков. Потому как в iPhone используется спецификация памяти NVMe. Такая же память используется в компах и ноутбуках.

NVMe


Название NVMe довольно сложно расшифровывается -NVM Express (NVMe, NVMHCI от англ. Non-Volatile Memory Host Controller Interface Specification).

Но ключевое слово в названии Express! Почему?

Спецификация NVMe специально разрабатывалась для SSD-дисков с памятью NAND, подключенных по шине PCI Express.

NVMe создавался с нуля как новый способ эффективной работы с SSD-дисками. Из него убрали всё лишнее и сосредоточились на скорости.

Поэтому, благодаря короткому технологическому стеку, NVMe имеет большое преимущество при случайной записи и чтении блоков над остальными стандартами.



Что это значит?

Это свойство особенно полезно для работы операционной системы, которая постоянно считывает и генерит кучу маленьких файлов размером по 4 КБ. Случайное чтение и запись NVMe это то, что делает iPhone таким быстрым.

Но, естественно, Apple не могли просто запихнуть целый SSD в смартфон. Они модифицировали протокол NVMe и разработали свой кастомный PCI-E контроллер.

Поэтому, то что стоит в iPhone решение абсолютно уникальное и в своё время было революционным. А они об этом даже ничего не сказали! Как всегда делает Apple.

Такая же история с MacBook. Apple первыми оказались от HDD. И они всегда ставят самую быструю память в ноуты. Во многом поэтому, даже на более слабом железе Mac ощущаются быстрее Windows-ноутбуков.

Тесты


Но вернёмся к смартфонам. Мы выяснили, что Android используют UFS-память, а Айфоны NVMe. Но проблема в том, что сложно сказать какая память действительно быстрее.

Скажем так есть, крутое сравнение от компании Micron. На базе кастомного Android девайса они сравнили NVMe и UFS 2.1 и получили преимущество NVMe по всем показателям! Вот такие:
  • Последовательная запись > 28%
  • Последовательное чтение > 15% быстрее при последовательном чтении.
  • IOPS (случайная запись и чтение) > 30%






CPDT Бенчмарк


Но кому это интересно? Сейчас много где есть UFS 3.0, а в Redmi K30 Pro вообще UFS 3.1.

Только посмотрите UFS 3.1 быстрее UFS 2.0 по разным показателям вплоть до 8 раз. Вот с чем надо сравнивать!

UFS 2.0 vs UFS 3.1


  • Последовательное чтение 6X
  • Последовательная запись 8X
  • Случайное чтение 5.3X
  • Случайная запись 5X



Значит надо просто скачать одинаковый тест под iPhone и Android, и готово! Мы узнаем кто чемпион. Только знаете что? Нет такого теста! Поверьте мы искали. Есть спорные тесты с непонятной методологией (PerfonaceTest), но приличного ничего нет.

Кроме Вот этого чудесного теста: Cross Platform Disk Test.Работает на всех платформах, подробно описана методология тестирования.И даже есть результаты тестов некоторых iPhone:



Но вот незадача, версия приложения для iOS так и не была выпущена.

Но мы не отчаялись! Как выяснилось, разработчика зовут Максим, он из Минска. Поэтому мы с ним связались и Макс любезно предоставил нам девелопер версию приложения под iOS.

Поэтому сегодня мы наверняка узнаем где всё-таки быстрее память: На самых последних iPhone или на самых крутых Android-смартфонах:
  • iPhone 11 Pro NVMe
  • Oneplus 8 Pro UFS 3.0
  • Redmi K 30 Pro UFS 3.1
  • и Macbook Pro 16 NVMe



В итоге побеждает дружба, в последовательной записи вроде бы все очень неплохо у Apple, но по произвольной они подчистую сливают Android-смартфонам. В копировании буквальное равенство результатов. При этом заметьте, что Poco F2 Pro с UFS 3.1 показал себя в тестах никак и проиграл и Sony Xperia 1 II, и OnePlus 8 Pro. Возможно решает не только это! А вот в сравнении с взрослым NVMe в ноутбуках мобильный NVMe в 3-4 раза медленнее и это конечно не радует. С другой стороны это значит, что смартфонам есть куда расти!



Еще раз хотим поблагодарить Максима за помощь и инструкции! Помните, тест не из лёгких, поэтому если у вас будет вылетать не ругайтесь!
Подробнее..

Intel застряла. Техпроцесс 7 нм откладывается до конца 2021 начала 2022 года

24.07.2020 12:09:40 | Автор: admin

Исполнительный директор Intel Боб Свон

Корпорация Intel опубликовала финансовый отчёт за IIкв. 2020года, в котором объявила об очередной задержке с переходом на техпроцесс 7нм. Планы отложили ещё на шесть месяцев, так что теперь внедрение 7нм планируется не раньше конца 2021-го начала 2022 года. В сумме отставание от внутренней дорожной карты Intel выросло до 12 месяцев.

Любопытно, что Intel планировала быстро перейти на 7нм, потому что испытывала проблемы с внедрением техпроцесса 10нм. Некоторые аналитики высказывают мнение, что в такой ситуации можно думать о переходе сразу на 5нм.

Исполнительный директор компании Боб Свон сказал инвесторам, что графический процессор для высокопроизводительных вычислений Ponte Vecchio выйдет не раньше, чем в конце 2021-го или начале 2022 года. Он должен стать первым 7-нанометровым чипом Intel.



7-нм процессор Intel для персональных компьютеров выйдет не ранее конца 2022-го начала 2023 года, а первый серверный процессор для дата-центров не ранее Iполугодия 2023года.

По словам Свона, компания выявила в своём 7-нм техпроцессе дефектный режим, это вызвало деградацию нормы техпроцесса. В результате Intel предусмотрела план на случай непредвиденных обстоятельств, включая использование сторонних фабрик по производству микросхем. Компания также будет использовать сторонние фабрики для будущих 7-нм графических процессоров Ponte Vecchio.

Ponte Vecchio производится с дизайном в виде чиплетов, и производство некоторых чиплетов будет передано на аутсорсинг сторонним подрядчикам.

Первые 7-нм серверные процессоры Granite Rapids тоже выйдут с опозданием, в 2023 году. Эта опасно на фоне того, что AMD по плану производит серверные чипы EPYC и планирует выпуск 5-нм процессоров Genoa до конца 2022 года.

Свон также сказал, что первые десктопные 10-нм процессоры Alder Lake выйдут во второй половине 2021 года.

Фактически, TSMC планирует освоить узлы 3нм в те же сроки, что и новый график Intel для 7нм.

Задержка с переходом 7 нм представляет собой очередную неудачу Intel, которая несколько лет испытывает проблемы с освоением процесса 10 нм. Эти задержки позволили AMD впервые в истории отвоевать у Intel лидерские позиции в разработке процессоров, что вызвало ценовую войну на рынке, поскольку Intel сражается с конкурентом x86, у которого лучшие технологии, не говоря уже о новых ARM-чипах Amazon Graviton 2, тоже основанных на 7-нм техпроцессе TSMC.

Apple недавно объявила, что переходит с чипов Intel на собственные 7-нм ARM-процессоры. А ведущий архитектор чипов, звезда Джим Келлер, недавно покинул компанию.


В июне 2020 года Intel объявила, что ведущий инженер микроэлектроники Джим Келлер покидает компанию

Intel заявила, что планирует увеличить поставки 10-нм чипов на 20% по сравнению с предыдущими прогнозами. Новый план Intel сосредоточен на получении еще одного полного узла производительности на базе текущего 10-нм узла, то есть 10-нм техпроцесс продлится дольше, чем планировалось, и облегчит переход на 7нм. Intel осуществила аналогичный трюк с 14-нм процессорами через серию + ревизий, которые добавили инкрементные улучшения производительности, вплоть до 14нм+++. Так что у неё есть послужной список успешных улучшений межузловых связей, которые помогут ей оставаться конкурентоспособной, пока она не исправит проблемы с 7-нм процессом.

Intel всегда использовала сторонние фабрики, которые в настоящее время составляют около 20% её производства, для низкомаржинальных, не связанных с процессорами продуктов. Новые планы Intel по более агрессивному использованию внешних фабрик могут привести к тому, что она будет использовать их для основной логики, такие как процессоры и графические процессоры, чего компания не делала в прошлом. В конечном счете, Intel может столкнуться со значительным снижением маржи, если передаст значительную часть высокодоходных продуктов на аутсорсинг третьим лицам. Полагаться на внешнего поставщика для производства передовых узлов очень рискованно, поскольку Intel придётся конкурировать с Apple, Nvidia и AMD в том числе за производственные мощности.

После публикации финансового отчёта акции Intel упали на 9%, акции AMD выросли на 6% на фоне недавнего анонса семейства десктопных CPU на архитектуре Zen2 (7нм) и впервые в истории обогнали акции Intel по номиналу ($61). Несмотря на отставание в цене акций, Intel почти в четыре раза опережает AMD по рыночной капитализации: $254млрд против $64млрд. У тайваньской TSMC рыночная стоимость $323млрд.

На первый взгляд кажется, что задержка Intel на шесть месяцев небольшая, но в реальности она будет иметь долгосрочный эффект домино. Она означает, что в течение нескольких лет Intel будет технологически отставать от AMD и Nvidia, пишет Reuters. Другими словами, в русле 7нм Intel уже неконкурентоспособна и может вернуться в полноценную борьбу только после перехода на 5нм.



Подробнее..

История разработки одного дозиметра (Часть 2)

26.07.2020 00:10:08 | Автор: admin
В продолжении статьи хочу поговорить о тех проблемах, на которые мне указывали люди в комментариях, рассказать о проблеме переноса прошивки с макета на итоговое устройство, т.к. с этим так же возникли проблемы, продемонстрировать работу устройства, и рассказать об изменениях в прошивке, которые были сделаны, и поговорить о планах на будущее. Я согласен со всеми комментаторами, и критика была вполне обоснована, но на данный момент у меня уже нет денег на переделку всего прибора, потому-что по сути, перелопатить нужно практически всё.


Те самые помехи


Во время прохождения практики на заводе, я решил взять с собой платку преобразователя, и посмотреть на осциллографе, что собственно происходит на выходе. На моё удивление, помехи были не на выходе преобразователя, а в принципе по питанию. Когда происходила смена уровня на шим с низкого на высокий, по линии 5 вольт наблюдалась сильная просадка напряжения, приблизительно на 1-2 вольта, а когда происходила смена состояния с высокого на низкий, происходил скачок вверх примерно на 1.5 2.5 вольта. И все эти пульсации были с частотой работы шим. При питании напрямую от аккумулятора особо ничего не менялось. На этом я решил больше никогда не использовать подобные типы преобразователей в своих устройствах (Конкретно если нужно повысить напряжение более чем в 2 раза). Так же были рекомендации заменить полевой транзистор на биполярный, но мои попытки найти что-то с высоким коэффициентом усиления (порядка 300), в smd корпусе и с напряжением порядка 450-500 вольт не увенчались успехом, это отсылая к использованию полевого транзистора, который открывается полноценно при 10 вольтах.

Перенос прошивки на живой прибор


Честно говоря, я не думал, что столкнусь с проблемами, потому что на макете всё хорошо работало (Да и когда делал плату под первую версию на семи-сегментном индикаторе, все было нормально), и не было тех проблем, которые возникли после прошивки.
По сути работал только экран и меню, а вот шим, ацп, таймеры и прерывания работать отказывались. Повторюсь, на ардуине всё работало хорошо. В итоге переставив инициализацию таймеров местами, мне удалось достигнуть нормальной работы прибора.
Об необходимости убрать фреймворк ардуино. Да, ардуино это плохо, что я уже не раз понял, и в моём коде на данный момент из этого фреймворка используются только методы millis и micros. Всё это я стараюсь победить, и некоторые успехи уже имеются. Так же ардуина всё ещё живёт в моём коде из за библиотеки дисплея, который я уже победил без использования ардуины, и в скором времени оно уйдёт совсем, т.к. какое-никакое количество нужной мне памяти это добавит. Так же, использование C++ вместо C в программировании микроконтроллеров это не лучшая практика, так что этот момент так же нужно будет переделать.

Что нового в прошивке?


Из основного, что было добавлено/исправлено:
  • Убраны задержки из звуковой индикации, что очень сильно повысило скорость работы и точность показаний.
  • Обновление экрана происходит по таймеру каждую секунду, или когда пользователь нажимает кнопки.
  • Добавлен экран зарядки аккумулятора. Включается когда присоединяется кабель.
  • В режиме поиск добавлена возможность включить отображение усреднённых значений за два установленных времени счёта.
  • Из настроек убрана возможность подстраивать напряжение вручную, теперь это происходит автоматически. Требуемое напряжение можно установить в файле конфигурации, при компиляции.
  • Добавлена возможность устанавливать порог сохранения дозы.
  • Добавлена тревога, уровень можно выставить в настройках ( от 30 до 255 мкр/ч).
  • Добавлена программная защита от разряда аккумулятора. Программа виснет на экране, говорящем о низком заряде батареи, проигрывается анимация моргания батареи.
    image
  • При удержании правой кнопки (не в меню) показывается информация о батарее.
    image


Что изменено на печатной плате?


  • Повышающий преобразователь и линейный преобразователь на 3.3 вольта были подключены на прямую от аккумулятора.
  • Изменены номиналы делителя напряжения на аккумуляторе с 10 кОм до 220 кОм.
  • Полевой транзистор был перенесён с эмиттерного усилителя на делитель напряжения, для снятия напряжения с аккумулятора.
  • Убран лишний подтягивающий резистор.
  • Некоторые dip компоненты заменены на smd.


Что вообще есть в прошивке?


Помимо того, что я перечислил ранее, в прошивке есть:
  • Три режима работы: Поиск, измерение(Как в дозиметре Припять) и частиц/с
  • Расчёт погрешности измерения в режиме поиск. Есть как продвинутый алгоритм, так и более простой. Выбирается в файле конфигурации.
  • Настройки для: сбм-20, сбм-19, бета-1-1
  • Построение графиков (Да, не ново, но смотрится неплохо).
  • Режим сна (Сниженное энергопотребление, прибор включается либо по удержанию кнопки, либо при тревоге). На данный момент не доделан.
  • Звуковая и световая индикация и её настройка
  • Русский и Английский язык (Устанавливается в конфигурации при прошивке)

В файле конфигурации расписано, что можно отключить, и сколько памяти это освободит.

Навигация и меню


Управление прибором происходит посредством двух кнопок. Левая reset и правая set.
Для того, чтобы войти в меню, следует удерживать обе, в течении 1 секунды.
Перемещение по меню происходит коротким нажатием кнопок. Выбор требуемого пункта удержание кнопки set. Отмена или назад удержание кнопки reset.
image
В меню реализована большая часть того, что я хотел, но если бы не ограничения по памяти и портам gpio, то была бы добавлена возможность построения карт (sd + gnss).

Режим поиск


Я думаю этот режим не требует подробного объяснения. По сути показывает текущее значение в микро рентгенах в час, и меняет диапазон в зависимости от текущего значения. Усреднение показаний сделано не по медиане, а просто сумма измерений на время, и включается нажатием правой кнопки. В верхнем правом углу показывается заряд батареи, чуть ниже статистическая погрешность и ещё ниже накопленная доза.
image
Так же в этом режиме можно отключить звук и тревогу. Чтобы отключить звук, нужно однократно нажать левую кнопку, а чтобы отключить тревогу, нужно либо во время тревоги нажать левую кнопку, либо удерживать левую кнопку.
image

Режим измерения активности


Настраиваемый режим, как по времени, так и по числу замеров. Максимальное время замера, которое можно установить это 120 минут, а число измерений 2. По сути автоматизирует процесс замера, имеющийся в дозиметре Припять. Из первого измерения вычитается второе и от этого берётся модуль, в результате получается количество зафиксированных частиц за указанное время. Можно использовать по разному, как для измерения продуктов, так и для выделения отдельных частиц, измеряя сначала допустим сначала с альфа фильтром, а потом без него и.т.д.
image
Подобный режим реализовывали многие, кто собирал собственные дозиметры, ну и я не исключение.

Режим секундного замера


Данный режим показывает число частиц в секунду, как бы логично это не звучало. В правой части экрана отображается число частиц с предыдущего замера. График строится так же как и в режиме поиск.
image

Корпус


На данный момент, в программе fusion 360 был разработан следующий корпус
image
Корпус делался для датчика Бета-1-1 и с расчётом на то, что будет печататься на 3д принтере. Модели в формате stl выложу позже.
Отверстия для крепления платы, сделаны для вплавления туда втулок под винтики М2.

Проблемы прибора


Главная проблема, как отмечали в комментариях к прошлой части это то, что проблема с ложными срабатываниями по сути не решена, а скажем залеплена скотчем и да, я с этим полностью соглашусь. Я пытался бороться с ней иными способами, но сильно хороших результатов это не дало. Делал питание напрямую от аккумулятора, это частично снизило размах пульсаций питания, ставил дополнительные электролитические конденсаторы по питанию (ставил даже на 10000мкф, тоже не помогло), ну керамика так же проблему не решила. Свой вывод об этом я озвучивал, больше не буду повторять подобных ошибок. Трансформатор выйдет немного дороже (рублей так на 250 за штуку, по сравнению с 45 за индуктивность.), но мороки с ним будет гораздо меньше.
Из за того, что стабильная генерация идёт при 4х кГц, слышен слабый, но раздражающий в тишине писк. В разведку с этим прибором не походишь.
Преобразователь напряжения это тоже главная неудача. Решил я делать на нём, только из за доступности индуктора, а вот об остальном сразу не подумал.
Но несмотря на недостатки, как по мне он вполне выполняет те задачи, которые я и хотел. Для бытового дозиметра думаю пойдёт, до профессиональных ему довольно.

Энергопотребление прибора


Аккумулятор на 600 мА/ч прибор разряжает за 12 14 часов активного использования (разряд до 3.6). Скорее всего ёмкость аккумулятора уже давно не 600 мА/ч, т.к. она полтора года стояла в электронной сигарете.

Что дальше?


В дальнейшем я буду доделывать прошивку текущего прибора, и начну делать тоже самое на stm32, но с учётом всех своих ошибок. Так же хочется добавить поддержку sd карты, gnss, заменить экран на 1202, и возможно сделать питание от батареек, если не найду хорошую микросхему понижающего dc-dc.

Ссылка на предыдущую часть:
habr.com/ru/post/509002
Подробнее..

Из песочницы Снижение стоимости развертывания частной сети LoRaWAN

29.07.2020 16:12:53 | Автор: admin
Наверное, многие слышали про LoRa и аналогичные решения, такие как SigFox, NB-IoT и Стриж. Про интернет вещей уж точно. Несколько лет назад инфополе бурлило новостями про данные технологии. Им предрекалось широкое проникновение в повседневную жизнь общества. Крупные компании, такие как, Эр-Телеком, Лартех и МТС рапортовали о развертывании сетей LoRa и NB-IoT федерального уровня с покрытием всех городов с населением свыше 100 тыс. рублей. Но вот эйфория, связанная с появлением чего-то нового, прошла и в выяснилось, что компании не берут IoT ни в коммерцию, ни в пилот.

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

Также, как и многие, мы поддались очарованию концепции интернета вещей. В частности LoRa. Лишь спустя некоторое время, потратив изрядное количество времени и ресурсов, проявились некоторые недостатки сложившейся парадигмы реализации и внедрения решений на базе беспроводного интерфейса LoRa. Скорее всего, этими недостатками обладают и аналогичные технологии.

В целом, беспроводные сети LPWAN связи повторяют парадигму развертывания беспроводных сетей, сложившейся у операторов сотовой связи, а именно: развертывание сети базовых станций на собственных либо арендованных башнях. Такой подход является оправданным в случае, когда критически важно обеспечить сплошное покрытие связью всей территории города без слепых пятен, поскольку абоненты сотовой связи постоянно перемещаются по городу. От этого напрямую зависит качество сервиса. Если абонента не устраивает качество мобильной связи и скорость интернет-соединения у данного оператора, то он просто подключается к другому оператору. В итоге, операторы сотовой связи идут на сплошное ковровое покрытие агломерационных кластеров густой сетью базовых станций не считаясь с затратами на развертывание новых станций и их дальнейшее содержание. Широкое повсеместное распространение мобильной связи среди населения дают операторам основания полагать, что сеть в любом случае будет прибыльна. К тому же, беспроводной интернет трафик стабильно растет, отвоевывая долю рынка у провайдеров домашнего интернета.

Многие операторы LPWAN сетей (LoRaWAN в частности), пошедшие по этому же пути (ковровое покрытие мегаполисов) попали в ловушку, в расчете на то, что количество вводимых в эксплуатацию конечных устройств будет быстро расти. Оптимистичные прогнозы о том, что ежегодный прирост будет носить экспоненциальный характер не оправдались. Практика показала, что прирост хоть и имеет место быть, но он не настолько бурный, как ожидалось. В итоге, операторы сталкиваются с тем, что развернутая в масштабах страны сеть практически не загружена. Т.е. простаивает, генерируя убытки.

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

Такой подход позволяет существенно снижать издержки при развертывании сети. И действительно, счетчики, единожды установленные, в процессе эксплуатации уже никуда не перемещаются. Соответственно нет необходимости обеспечения сплошного покрытия. А поскольку, наиболее удачное внедрение LoRaWAN сетей на данный момент наблюдается именно в сфере ЖКХ, то мы можем смело утверждать, о том, что очагового внедрения связи достаточно, если оператор LPWAN-связи хочет найти компромисс между скоростью роста сети и сдерживанием расходов на ее содержание, балансируя на грани окупаемости в худшем случае, а в лучшем случае, выходя на окупаемость и извление прибыли с первых же дней эксплуатации сети.

Существуют ли другие спсобы снижения стоимости развертывания LoRaWAN-сети? Поскольку ЖКХ является самым активно развивающимся направлением внедрения LPWAN-решений, далее по тексту мы сконцентрируемся именно на данной сфере.

Давайте рассмотрим типичный жилой комплекс.

image

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

Исходя из этого, если речь идет о внедрении LPWAN решения в отдельно взятом жилом комплексе (неважно новостройка это или вторичный комплекс), напрашивается идея размещения БС не на крыше одного из зданий а в точке, геометрической равноудаленности от всех зданий, которые предстоит оборудовать конечными устройствами LoRaWAN. Если речь идет о ЖК, построенном в форме кольца с внутренним двором, то размещение БС прямо по центру двора дает возможность получить расстояние от БС до любого из конечных устройств в пределах 100-200 метров! При этом большая часть пространства будет открытой!

Обратите внимание на одноэтажные здания, помеченные красными стрелками. Это трансформаторные станции 0.4 кВ. Их можно встретить практически у любого многоэтажного жилого здания. Размещение БС на крышах данных станций (либо внутри) позволят добиться следующего:

  • снизить стоимость монтажа БС. Например в случае разработки типового электронного модуля на базе микросхем SX1301 и SX1257, реализующего функционал БС LoRaWAN, который бы просто вставлялся в трехфазный счетчик или цеплялся на фазу.
  • снизить стоимость самой БС за счет отказа от дорогостоящей антенны, поскольку потребность в ней отпадет при расстоянии от БС до конечных устройств. Расстояния в несколько сотен метров доступных даже Bluetooth Low Energy, работающем на частоте 2.4 ГГц.
  • добиться масштабируемости решения, поскольку отпадает необходимость договариваться о каждом монтаже с владельцем здания, выбранного для монтажа БС. Достаточно лишь один раз достигнуть договоренности с филиалом МРСК на данной территории о процедуре внедрения электронного модуля (БС LoRaWAN) в трансформаторную подстанцию (ТП), расположенную вблизи объекта внедрения (жилого здания). Коробочное решение.

Другими объектами инфраструктуры могут выступить стены и подъездные двери многоэтажек. Камеры наружного наблюдения, домофоны, пропускные системы на парковках со встроенной БС LoRaWAN также могут снизить стоимость монтажа БС и расходы на ее содержание обеспечивая при этом широкий угол приема сигнала с конечных устройств LoRaWAN, размещенных в зданиях напротив и расстояние до них не более 100 метров.

Полноценная базовая станция LoRaWAN стоит порядка 20 000 рублей. В добавок к ней приходится докупать качественную антенну стоимостью 4000 рублей. Даже если базовая станция монтируется не на башне, а на крыше здания, то монтаж обходится в сумму от 15 000 рублей. Электронный модуль LoRaWAN, встраиваемый в камеру наружного наблюдения либо домофон будет стоить дешевле полноценной БС. Расстояние в 100-200 метров до конечных устройств позволяет обойтись дешевой антенной стоимостью 100 рублей вместо 4000. Монтаж камеры наружного наблюдения/домофона обходится в 1500 рублей.

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

Возможно, более наглядно наша идея описывается в данном видео:

Подробнее..

Использование UAVCAN для модульной электроники БПЛА, или как не спалить дрона, перепутав провода

30.07.2020 22:23:20 | Автор: admin
Привет! Меня зовут Роман Федоренко, я доцент Центра компетенций НТИ по направлению Технологии компонентов робототехники и мехатроники на базе Университета Иннополис. Я работаю с командой робототехников, которая специализируется на беспилотных летательных аппаратах. По большей части мы занимаемся высокоуровневым управлением БПЛА: планирование движения, обход препятствий, решения для киносъёмки и сканирования местности. Хотя собственные небольшие коптеры тоже собирали и с железом работали. В прошлом году мы начали разработку большого самолёта вертикального взлёта и посадки, который включает все уровни от изготовления носителя до обвески датчиками и интеллектуального управления. И при разработке этого проекта познакомились с UAVCAN.

UAVCAN это открытый лёгкий протокол для бортовой сети подвижных объектов. Недавно его разработчик и мейнтейнер Павел Кириенко Spym рассказал о протоколе на PX4 Developer Summit, крупной конференции сообщества разработчиков дронов с использованием open-source экосистемы вокруг автопилота PX4, частью которой является UAVCAN. А ещё Павел подготовил подробную статью для русскоязычного сообщества на Хабре по следам своего доклада.

В этом материале я расскажу о практической стороне использования протокола с позиции разработчиков систем автоматического управления для БПЛА: как мы выбрали UAVCAN, что делаем с помощью него и какие возможности видим в будущем.




Гибридные БПЛА


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

  • полностью электрическое воздушное такси Lilium Jet немецкой компании Lilium;
  • малошумный электросамолёт Heaviside компании Kitty Hawk Себастьяна Труна (которого многие знают по беспилотным автомобилям);
  • проект Vahana от Airbus.


Innopolis VTOL plane
Самолёт вертикального взлёта и посадки Университета Иннополис

Мы разработали три модели небольших беспилотных аппаратов с разным размахом крыла, грузоподъёмностью и источниками питания полностью электрические и с двигателями внутреннего сгорания. По конструкциям летательных аппаратов сотрудничаем с Казанским авиационным институтом и авиационными предприятиями Казани, а фокус наших работ электроника, алгоритмы и автоматическое управление.

При чём здесь UAVCAN?


Те, кто занимаются коптерами, знают, что обычная структура системы управления выглядит примерно так:

PixHawk drone scheme

Типовая схема БПЛА на базе автопилота PX4. Источник

Моторы управляются регуляторами оборотов (ESC), на которые посредством PWM (ШИМ) сигналов подаются уставки от автопилота. Датчики подключаются по куче разных интерфейсов UART, I2C, SPI. Плюс телеметрия, пульт, питание и получается такой паук из проводов. Но основная проблема не в этом.

Чем длиннее провода, то есть больше аппарат, тем эта схема сильнее подвержена наводкам. Нам об этом пришлось задумываться с самого начала, потому что у наших аппаратов размах крыльев 2 и 4 метра, и это не предел.

Раньше для проекта 40-метрового дирижабля мы работали с CAN (только протокол был на базе CANOpen). И решение использовать UAVCAN для нас было само собой разумеющимся: в PX4 уже есть его поддержка, даже никаких споров в команде по этому поводу не возникало. Изначально мы хотели заменить длинные линии PWM на цифровой интерфейс, чтобы масштабировать наши решения на аппараты с разным размахом крыла.

Оказывается, UAVCAN это не CAN для UAV
Раньше мы воспринимали UAVCAN как CAN для UAV (БПЛА). Возможно, так изначально и было, но сейчас он позиционируется как Uncomplicated Application-level Vehicular Communication And Networking (Простая коммуникация и сетевое взаимодействие уровня приложений для подвижных объектов) и не привязан ни к UAV, ни к CAN, а используется на целом ряде подвижных объектов и поверх разных интерфейсов. Есть даже предложение об использовании UAVCAN в качестве middleware для ROS (Robot Operating System). Но об этом подробнее в статье от создателя протокола.


Заменив PWM-связи на UAVCAN-связи, мы перестали беспокоиться о проблемах длинных проводов и наводок, а также значительно уменьшили количество подключений к автопилоту.

Было два варианта, как это сделать. Первый использовать регуляторы моторов и сервоприводы с UAVCAN интерфейсом. Такие есть, например, у Zubax. Второй сделать адаптеры UAVCAN, которые устанавливаются непосредственно возле ESC. Мы пошли по второму варианту, потому что выбор ESC с UAVCAN интерфейсом невелик. Сначала мы использовали адаптеры проекта UAVCAN for Hobbyists (UC4H), затем решили делать свои устройства со встроенным DC-DC преобразователем, своей схемотехникой, прошивкой и нескучными диодиками.

Innopolis UAVCAN devices
Наши устройства с интерфейсом UAVCAN

Вошли во вкус


Дальше мы поняли, что можем вместо десятка проводов использовать шину UAVCAN для взаимодействия не только с исполнительными механизмами, но и с большинством внешних устройств. Это ещё и хорошо сказывается на виброизоляции контроллера, установленного на специальной платформе. В итоге мы разработали ряд девайсов для собственного применения, но сейчас видим, что они интересны другим:

  • Преобразователь CAN-PWM до 4 каналов: устройство подключается к шине CAN, принимает и обрабатывает сигналы управления, выдаёт ШИМ. Питать плату можно напрямую с АКБ до 60 В, в её составе включается DC-DC преобразователь, обеспечивающий напряжением 5 В (3 А) плату и потребителя (например, сервомашинку);
  • GPS/Magnetometer/Barometer;
  • Силовая плата, Power Management Unit (PMU): обеспечивает подсоединение нескольких АКБ (параллельно или последовательно при необходимости). Устройство подключается последовательно со всей силовой нагрузкой и обеспечивает её коммутацию. В конструкции датчики напряжения и тока на АКБ, DC-DC преобразователь для обеспечения питания автопилота. Такая плата рассчитана на большие токи до 1000 А. В разработке устройство CAN в составе платы выдающее информацию о напряжении и токе;
  • Лазерный высотомер;
  • Датчик воздушной скорости;
  • Датчик уровня топлива;


Технически эти устройства реализованы на базе микроконтроллера STM32. Проектируем сами, а изготовление заказываем на pcbway.ru. Прошивка реализуется с использованием libcanard.

По нашим ощущениям для работы с UAVCAN довольно низкий порог входа. Новому сотруднику понадобилось меньше недели, чтобы разобраться и запрограммировать датчик расстояния как со стороны STM32, так и со стороны автопилота PX4.

Dark drone

Новые устройства тестируем на небольшом dark дроне

А затем уже используем на самолёте:


Короткое видео тестового полета нашего VTOL-самолета во всех режимах

Организация полётов
Кстати, в Республике Татарстан есть Ассоциация пилотов, разрешающая регистрировать пилотов беспилотников и получать разрешение на полёты нажатием одной кнопки. Они же помогают нам по дружбе.

Здесь даже реально получить разрешения полетать над Казанским кремлём.


В итоге схема у нас выглядит так:

Innopolis VTOL UAVCAN Scheme
Схема нашего VTOL-самолёта с использованием UAVCAN датчиков и исполнительных механизмов

Какие преимущества UAVCAN даст нам в будущем


Резервирование


Важнейшая задача при реализации продукта на базе БПЛА обеспечить надёжность. Мы уже начали работать над этим. Например, несколько наших GPS и датчиков воздушной скорости подключить и использовать параллельно уже получается. Но ещё многое предстоит. Скорее всего, дублирования датчиков и контроллеров с использованием CAN шины будут сделаны проще. К Pixhawk можно подключить две шины, а на шине оставить несколько одинаковых датчиков для резервирования.

Масштабирование


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

True HIL-симуляция


Сейчас активно развивается тема работы БПЛА в городской среде Urban Air Mobility (UAM). Для реализации задач UAM нужно больше опираться на такие сенсоры, как камеры и лидары. Тут возникает необходимость разработки и отладки систем интеллектуального управления, а также повышение их надёжности. Для этих целей другая команда Университета Иннополис разрабатывает симулятор Innopolis Simulator для автономных подвижных объектов на основе Unity 3D для тестирования, отладки и обучения.


Innopolis Simulator

Для нашего VTOL-самолета используем Innopolis Simulator в связке с Gazebo для фотореалистичной симуляции, тестирования управления и обработки сенсорных данных лидаров и камер.

Сейчас работаем над своим модулем симуляции динамики вместо Gazebo с более точной аэродинамикой, а также над другой фишкой true HIL симуляцией (от hardware in the loop, или программно-аппаратное моделирование, ПАМ).

В нашем решении все данные поступают от датчиков, а управления на моторы и сервы отправляются по шине UAVCAN. Почему бы не сделать модуль симуляции этих датчиков на уровне той же шины? Просто вместо устройств к контроллеру мы подключаем компьютер с симулятором.
Сейчас HIL-симуляция в PX4 делается посредством специальных HIL_* сообщений MAVLINK (протокол телеметрии, работает по последовательному порту либо UDP/TCP), которые имитируют датчики и исполнительные механизмы.

PX4_HITL

Диаграмма работы PX4 в режиме HITL. Источник

Симуляция, как она реализована сейчас в PX4, это отдельный режим работы полётного контроллера, отличающийся от боевой полётной конфигурации. Мы имитируем непосредственно UAVCAN сообщения, в идеале автопилот может даже не знать, что работает в симулируемом окружении. Но нужно сказать, что пока концептуально не решена проблема симуляции IMU, которые находятся внутри автопилота и подключены не по CAN.

Innopolis VTOL UAVCAN HIL Simulator Scheme
Предлагаемая схема работы PX4 в режиме HITL с использованием UAVCAN

Такое решение повышает достоверность результатов отладки на симуляторе, поэтому можно смелее переходить к лётным тестам.


Авиационный HIL симулятор. Источник

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

Вывод


Очень здорово, что над вопросами лёгкости, надёжности и риалтаймовости протокола UAVCAN уже подумали за нас, как и то, что есть PX4, ROS и Linux, в конце концов. Нам было бы очень сложно делать наши коптеры, самолёты, системы управления и планировщики, если бы всего этого не было.

Стандартизация протоколов и программных средств даёт возможность разработчикам говорить на одном языке. Вместе с тем, важна не только стандартизация, но и доступность, что в высокой степени обеспечивает open-source подход. Это позволяет, стоя на плечах гигантов, быстрее переходить к своим задачам, а не строить сначала долго инфраструктуру для работы, что, надеюсь, мы показали на нашем примере в данной статье.


Пьём колд брю после успешных полётов
Подробнее..

Хайвей для процессоров видео с завода Intel

31.07.2020 10:05:30 | Автор: admin


В качестве пятничного поста предлагаем вашему вниманию короткий видеоклип, снятый на заводе Intel в Хиллсборо, штат Орегон. На видео показана автоматическая линия доставки материалов (automated material-handling system, AMHS), перемещающая по территории фабрики главный производственный объект кремниевые подложки, заготовки для будущих чипов Intel. Под катом завораживающее футуристичное видео, а также цифры и факты, описывающие систему доставки.

Линия доставки представляет из себя многоуровневую транспортную сеть длиной более 43 км, соединяющую производственные корпуса завода. Такие же линии работают и на других заводах компании. К транспортному модулю всего их на заводе 1700 прикреплен специальный контейнер, называемый FOUP (front-opening unified pod) вместимостью 25 подложек.



Хайвей для процессоров соединяет 9 корпусов завода, включая основные D1X и D1D, имеющие в сумме площадь больше, чем 12 полей для американского футбола. Каждый час совершается 16 000 рейсов. Контейнеры весом 90 кг движутся со скоростью 11 км/ч.

Ну а теперь, собственно, клип. Хороших вам выходных!

Подробнее..

SamsPcbGuide, часть 15 Волновое сопротивление микрополосковой линии, Гарольд Уилер и Эрик Богатин

01.08.2020 22:22:07 | Автор: admin
Сейчас занимаюсь разработкой калькулятора для печатных плат и изучаю расчетные модели, которые стоят за табличными формулами. Добрался до волнового сопротивления микрополосковой линии и решил рассказать про модель Гарольда Уилера и то, как его Эрик Богатин недооценил, а оказалось, что у меня тут публикаций на тему волнового сопротивления вообще не было, поэтому сначала немного теории, а потом к восстановлению справедливости.

Волновое сопротивление для линии без потерь выражается всем известной формулой:

где LL и CL погонные индуктивность и ёмкость линии (то есть в расчёте на единицу длины). Думаю, будет полезно пояснить, откуда она берётся. Рассмотрим предельно малый участок длинной двухпроводной линии передачи, по которой течёт переменный ток (рис. 1). Ток переменный, поэтому мгновенные значения тока, напряжения между проводами, линейной плотности электрического заряда меняются вдоль проводов.


Закон сохранения заряда для участка провода и закон Фарадея для контура выглядят следующим образом:

Для линии без потерь (RL = 0) и с учётом L = LL i и qL = CL v получим:

Эти дифференциальные уравнения приводятся к волновой форме, для которой получаем:

где u скорость распространения волны, а коэффициент, связывающий ток в проводах и напряжение между проводами волновое сопротивление. Сразу приведем полезные соотношения (TD временная задержка линии):

Ёмкость и индуктивность зависят от частоты, поэтому и волновое сопротивление меняется с изменением частоты. Влияние скин-эффекта на индуктивность ограничивается частотами до нескольких десятков мегагерц, в верхнем диапазоне частот она меняется незначительно. На значение ёмкости оказывает зависимость диэлектрической проницаемости материала печатной платы от частоты, а для микрополосковых линий из-за несимметричности диэлектрика ещё и эффект дисперсии. Данные для стеклотекстолита FR-4 в различных источниках отличаются, однако в качестве оценки можно принять, что диэлектрическая проницаемость снижается на 0,15-0,2 каждую декаду (рис. 2). Отличие в данных объясняется тем, что FR-4 это класс материалов. Он состоит из стекловолокна и эпоксидной смолы, имеющих значительно отличающиеся диэлектрические проницаемости (рис. 3). Чем больше смолы в материале, тем меньше усреднённое по объёму значение диэлектрической проницаемости стеклотекстолита. Отсюда разные значения у разных производителей.



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


Что касается потерь (рис. 5), то для большинства практических случаев применима модель с низкими потерями (англ. low-loss model), для которой на высоких частотах потерями можно пренебречь RSER L, RLEAK1C. Такое упрощение позволило разработать эффективные модели, позволяющие с высокой точностью вычислять параметры сигнальных линий при помощи стандартных функций.


Планарные сигнальные линии были изобретены в начале 50-ых годов прошлого столетия, и для полосковых линий почти сразу были разработаны точные математические модели, а на создание точный модели анализа микрополосковой линии понадобилось несколько десятилетий. Одним из первых (в 1965 году) точные решения для частных случаев дал Гарольд Уилер, которые позже (к 1977 году) были им обобщены. Причина в несимметричности диэлектрика, которая приводит к сложному распределению электрического поля, которое ещё и зависит от частоты.

Естественно, эта модель была не единственная и к 1988 году их накопилось достаточное количество, чтобы их было интересно сравнить. Это сделал великий и ужасный Эрик Богатин. Я наткнулся на эту статью, когда выбирал расчётную модель для калькулятора. Потом я добрался до публикаций Уилера, где много страниц крутой математики с конформными преобразованиями, и понял, что Богатин невнимательно его читал (или вообще не читал) и загрубил его модель, что повлияло на результаты сравнения. Потом эта ошибка перекочевала в 2007-ой год. При этом сам Богатин ссылается на монографию Microwave Transmission Line Impedance Data некоего М.А.Р. Гунстана, но я уже не стал дальше копать, откуда ноги растут, признав виновником товарища Богатина (которого я, кстати, очень уважаю, Богатин сила).

Итак, в чём суть. Богатин экспериментально измерял погонную ёмкость микрополосковых линий различной ширины (на частоте 1 кГц) и сравнивал с расчётными значениями (рис. 6).


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

где r диэлектрическая проницаемость, c скорость света. Несимметричность диэлектрика приводит к тому, что приходится изобретать эффективное значение диэлектрической проницаемости. Богатин пишет:

In the case of Wheeler [13], no model for the effective dielectric constant is offered. However, based on the suggestion by Gunsten [6], the plot for Wheelers model uses the effective dielectric constant from Schneiders model.

и использует гибридную модель Уилера-Шнайдера (результат в пФ/дюйм):

Модель даёт по результатам эксперимента неплохую точность и Богатин хвалит свой изобретённый велосипед:

The combination of Wheelers and Schneiders model is found to agree with previous published data and new data presented here to better than 3 percent, and is of a form suitable for use in a spread sheet. In addition to being useful for computer simulation of specific designs, this model can yield some useful insight to add to the intuition of fabrication and design engineers

А теперь обратимся к первоисточнику. Те формулы, которые использует Богатин это упрощённые формулы для случая без диэлектрика:


а полная модель выглядит так:


здесь в обозначениях Уилера R волновое сопротивление, k диэлектрическая проницаемость, R1 = R(k = 1) сопротивление без диэлектрика, w корректировка ширины, учитывающая толщину проводника, w корректировка с учётом влияния диэлектрика. Для эффективного значения диэлектрической проницаемости Уилер использует обозначение k' и приводит для него следующую формулу:

которая не так проста, конечно, как у Шнайдера, но тем не менее, она в модели есть. Я повторил расчёты Богатина, оставив самые точные модели: Шнайдера, Уилера, их гибридный вариант и добавил результаты расчёта с помощью калькулятора Saturn PCB Toolkit и модели Хаммерстэда. Для наглядности привожу и график, и табличные данные с ошибкой относительно экспериментальных данных.



С учётом погрешностей измерения и значения диэлектрической проницаемости базового материала (2,2 1%) можно сказать, что все модели хорошо коррелируют с экспериментальными данными, не зря исследователи годами формулы подгоняли. От Saturn ожидал большей точности, так как там прямо написано, что он использует не простую, а сложную формулу и точность сравнима с Sonnet 3D. К тому же там толщину можно только в унциях выбирать, а это либо oz. (18 мкм), либо 1 oz. (35 мкм), а 1 мил (25,4 мкм) не задать. Значения в таблице приведены для oz., так как они ближе к экспериментальным данным так получаются. Также очевидно, что исходная модель Уилера дала бы большую точность на этой выборке данных, поэтому мне и было за него досадно. Особенно с учётом того, что как раз-таки модель Шнайдера имеет серьёзный недостаток она не учитывает влияние толщины проводника, что почти не влияет на ёмкость, но значимо для индуктивности и поэтому самого волнового сопротивления. Богатин значения волнового сопротивления, к сожалению, не приводит, поэтому в качестве опорного значения использовал калькулятор от уважаемой фирмы Rogers. В Saturn в это раз 1 oz. несколько лучшую точность дало, не очень мне пока понятна логика его работы. На графике видно, что при снижении ширины (где влияние толщины возрастает) Шнайдер отваливается. А Rogers, видимо, как на раз модели Хаммерстэда основан. Я первоначально на Уилере сделал, но раз большинство продвинутых калькуляторов на Хаммерстэде, то зачем от них отставать.



Собственно, на этом считаю справедливость восстановленной. Уилер мощь. Даже Богатин иногда ошибается. Поэтому не доверяйте, проверяйте и перепроверяйте. Используйте расчёты для Ваших сигнальных линий.

P.S. Я в процессе работы над калькулятором и книгу дорабатываю, сейчас до бесплатной версии руки дошли добавил все улучшения и исправления, которые были до этого только в полную внесены. Всем удачи!
Подробнее..

Где выгоднее производить корпуса в Китае или России? Мы сравнили, пользуйтесь

06.08.2020 10:11:52 | Автор: admin
image

Собственно, каждый день хотя бы в одном разговоре с клиентом озвучивается вопрос: где выгоднее производить, в Китае или в России? И каждый раз я пытаюсь донести до собеседника, что выгоднее это просто наречие; пришло время цифр и фактов.

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

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

image

И запросим оценить отдельно пресс-формы, изготовление деталей. Для пытливых есть вот эта таблица, а тут для наглядности всё важное выделено цветом (зелёное значит дешевле и быстрее, красное дороже и медленнее):

image

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

Но заметка про другое.

Какие выводы после вдумчивого просмотра таблицы напрашиваются?

1. Главное если у тебя есть полгода, то работать с Россией вполне себе можно. Если надо быстро только Китай.
2. Компания в России либо слишком дорогая, либо пресс-формы делает в Китае (т.е. всё будет долго).
3. Хочешь контроля выбирай Россию или ищи посредника, который обеспечит этот контроль в Китае.
4. Хочешь дешевле Китай. Но тут не всё однозначно; попробуй получить хотя бы пару отзывов о конкретном предприятии. Или нужен посредник контора, которая знает, куда смотреть, чтобы увидеть проблемы, и берёт на себя хотя бы часть рисков.

И чтобы два раза не вставать старайтесь разговаривать с заводами документацией (модели, чертежи), им так проще думать, меньше рисков, а значит, цена для вас будет ниже, и подсчитают вам её быстрее. Кто сомневается в своей документации и кому нужен совет со стороны идём сюда: zakaz.ist/china.
Подробнее..

Как правильно подготовить проект печатной платы, чтобы не пришлось его переделывать

11.08.2020 10:19:42 | Автор: admin
Новички в деле изготовления печатных плат считают, что это довольно легко: достаточно подготовить проект и техническое описание, а дальше изготовлением платы займется производство на определенном оборудовании. Но это далеко не так. Ведь только в 5% из 100% файлы, подготовленные конструктором, можно выгрузить и отправить в работу. В остальных случаях требуется процесс адаптации топологии печатной платы под производство.

Поэтому я задал нашим адаптаторам вопрос, на что стоит обратить внимание при подготовке к производству платы.

1. Проанализируйте технические требования, прописанные в конструкторской документации.
2. Проведите DFM-анализ платы то есть проектируйте печатную плату таким образом, чтобы в дальнейшем, при производстве и монтаже, возникло как можно меньше проблем. Причем здесь надо проводить проверку не только по стандартным функциям САПР, но и с учетом собственного опыта работы.


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


4. Если плата многослойная, то составьте ее стек порядок следования проводящих слоев и слоев диэлектрика. Не стоит полностью доверять конструктору, спроектировавшему плату, ведь, как показывает практика, допустить ошибку может каждый, вероятность велика и составляет более 30%. Часто встречаются следующие ошибки: в проектах используются редкие материалы, которые целесообразнее было бы заменить; отсутствует информация о технологических особенностях сборки и симметричность платы в разрезе.



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


8. Подготавливайте слои для изготовления металлических трафаретов для поверхностного монтажа.
9. Сгенерите программы для оборудования, которые будут задействованы в производстве печатной платы и монтаже изделий, и экспортируйте их.


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

На что стоит обратить внимание при проведении предварительной проверки:

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


2. Свойства тех или иных отверстий.Часто бывает так, что при импорте гербер-файлов и файлов сверловки, все крепежные отверстия имеют металлизацию, и система обработки файлов ориентируется как раз на слои, в которых находятся эти отверстия.


3. Симметричность многослойной печатной платы. Очень важно следить, чтобы у многослойной печатной платы была симметричная сборка относительно центра.
<img src="

4. Расположение переходных отверстий. От того, насколько правильно расположены эти отверстия, будет зависеть качество дальнейшей пайки. Мы советуем располагать переходные отверстия не ближе, чем в 0,3 мм от контактных площадок элементов.


5. Реперные знаки. Использование таких знаков в проектах важно для автоматизации процесса поверхностного монтажа печатной платы. Реперные знаки служат для повышения точности совмещения компонента с контактными площадками и монтажным основанием.
6. Непроработанные слои маркировки в проектах. Наравне с наложением текста на места, где должна быть пайка, часто встречается и такое, что позиционные обозначения элементов располагаются на переходных отверстиях. Если переходные отверстия относительно большого размера, то текст становится нечитаемым. Поэтому мы советуем обращать внимание на расположение надписей, их свойства и единое направление текста.


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

Горячая новость Intel Arch Day 2020 техпроцесс 10нм SuperFin

14.08.2020 10:06:51 | Автор: admin


На прошедшем 13 августа (то есть вчера, а с учетом разницы во времени почти сегодня) Intel Architecture Day 2020, как и в прошлые годы, руководством компании были озвучены ее ключевые достижения и приоритеты на ближайшее будущее. Мы хотели бы поделиться по горячим следам самым интересным, что услышали на мероприятии. В этом посте важнейшая новость о процессорной технологии 10нм SuperFin.

После многих лет усовершенствования FinFET транзисторов, Intel вносит ряд внутри-нодовых изменений, сравнимых по влиянию на производительность с переходом на более тонкий техпроцесс. Технология, названная 10нм SuperFin, сочетает транзисторы FinFET последнего поколения с Super MIM (metal insulator metal, металл-изолятор-металл) конденсаторами.



Преимущества SuperFin улучшенный эпитаксиальный сток/исток, усовершенствованная технология затвора и дополнительный шаг затвора для обеспечения более высокой производительности за счет:
  • улучшения эпитаксиального роста структур кристалла на стоке и истоке, увеличивающие напряжения и уменьшающие сопротивление для прохождения большего тока через канал;
  • улучшения затвора для обеспечения большей мобильности каналов, что позволяет носителю заряда перемещаться более быстро;
  • организации дополнительного шага затвора для более высокого тока возбуждения при определенных операциях, требующих предельной производительности;


  • использовании нового затвора для уменьшения межслойного сопротивления на 30% и улучшения производительности интерконнекта;
  • 5-кратного улучшения емкостного сопротивления при той же занимаемой площади по сравнению с аналогами, что уменьшает падение напряжения и значительного улучшает производительность. Это стало возможным из-за применения нового класса Hi-K диэлектриков, объединенных в ультра-тонкие слои толщиной всего в несколько ангстремов и образующих повторяющуюся супер решетчатую структуру.



С точки зрения плотности элементов и производительности, технология 10нм SuperFin примерно эквивалентна использующимся сейчас 7 нм технологиям. В течении следующего года будет проходить дальнейшее ее усовершенствование результат будет называться Enhanced SuperFin.



Следующий мобильный процессор Intel (кодовое имя Tiger Lake), отгрузка которого производителям начнется к новогодним праздникам, базируется на технологии 10нм SuperFin. Решено полностью заменить во всех продуктах наименование техпроцесса 10нм++ на 10нм SuperFin, в дальнейшем плюсы использоваться не будут.

На этом новости с Intel Architecture Day 2020 не заканчиваются. Продолжение следует.
Подробнее..

Категории

Последние комментарии

© 2006-2020, personeltest.ru