Pull to refresh
61
0.7
Александр Козлов @alcotel

Инженер-электронщик

Send message

Ну вот пример из того же ARM:
https://developer.arm.com/documentation/dui0646/c/The-Cortex-M7-Instruction-Set/General-data-processing-instructions/ASR--LSL--LSR--ROR--and-RRX
Cortex - это как раз про слабое железо, урезанный до Thumb набор команд, наши ненаглядные микроконтроллеры. Сдвиг только на +-1 есть. Никаких barrel shift нет. При этом умножение уже завезли, и даже деление.

Интересно, что Микрокап на это скажет. Без сарказма, чисто для сравнения

Мои скриншоты из Qucs-S, поддерживаемого нашим товарищем @vv_kuznetsov. Под капотом там опенсорсный симулятор SPICE, в общем стандарт де-факто много где, может, и в Микрокапе тоже. На реальность обычно похож, но глюки встречаются. Какая жизнь без багов?)))

Я про неинвазивный способ пытаюсь прояснить. На сколько это возможно.

Вибратор можно и микрофоном снять. Разблокировку - ну, наверное, по току потребления тела. Но в целом инвазивный и не- по железу, похоже, равной сложности. Интересно.

Похоже, ни одна статья про random уже давно без этих двух картинок Скотта Адамса не обходится)

Адский [:|||||||||||||||||||||||||:]

3) легче реализуется на слабом железе (нет умножений)

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

XORSHIFT реально удобен только в железной реализации, типа FPGA или ASIC - занимает необходимый минимум, чтобы хранить эти 2^N-1 внутренних состояний.

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

Пишут в ячейку памяти одновременно 0 и 1. Потом смотрят, что реально записалось
https://spectrum.ieee.org/behind-intels-new-randomnumber-generator
+ аналоговая схема подстройки смещения, цифровое отбеливание и диагностика
https://www.rambus.com/wp-content/uploads/2015/08/Intel_TRNG_Report_20120312.pdf

AMD сделала аналог попозже, начиная с Ryzen, но как он работает, не знаю ещё. Возможно, как в FPGA делают - ставят кучу кольцевых генераторов, и XORят их выходы в разных комбинациях.

чайник с ручкой в центре масс будет самым лучшим вариантом

Логично, да. Только со стороны центра масс чайника на всех человеков действует кипяток.

И центр масс сильно меняется, если конечно чайник не из толстого слоя обеднённого урана сделан.

По ссылке из статьи www.random.org/analysis/ Там рекомендации NIST, например, есть.

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

В критичных системах скорее важны не метрики, а невозможность подделки последовательности извне.

Последовательность 0123456789 равномерно распределена, но случайной её сложно назвать) Хотя вероятность её появления на выходе хорошего генератора должна быть 10^-10, такая же, как и у 8364753443, и у вашего номера телефона.

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

Не сталкивался с тем, что 10-12битный АЦП микроконтроллеров выдаёт какой-то существенный шум, особенно если у него питание правильное. Чаще видел примерно такую последовательность сэмплов:
5 5 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 4
При плохо отмытом говнофлюсе - может, побольше. А если у АЦП смещение нуля оказалось отрицательным, то вообще:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

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

Если взять и загуглить, оказывается, что из дискретных аппаратных генераторов самый популярный, простой и надёжный - стабилитрон больше 9 V, на лавинном пробое. До гигагерцев шумит много и ровно. Не понятно, почему вы его не упомянули.

В софте по большому счёту есть всего 2 варианта генерации - псевдослучайный счётчик и запрос к ОС типа чтения /dev/random. Где ОСь берёт эти числа - по-разному бывает.

В общем, обзор не супер

Интересная штука. Для набора пароля, вероятно, можно и USB-клавиатуру сымитировать, но вот обратная связь от вибратора - это посложнее, наверное.

Пара слов про преобразование уровней:

MOSFETы под 1,8V вполне себе существуют, раз такая логика много где используется. Я ставил FDY3000NZ, например. Но не в каждом магазине, конечно, они есть. Шерстить придётся китайские аналоги, да.

Биполярные Proteus как-то странно моделирует. У меня SPICE-модели на 100 кГц уже показывают влияние насыщения. И приходится проверять разброс параметров и очень аккуратно подбирать резисторы.

При неудачном подборе может быть всё намного хуже
А так вроде и неплохо
А так вроде и неплохо

И ещё х.з, какой обратный коэфф.передачи тока Br попадётся. В моделях видел от 4 до 40, а в даташитах его никто не приводит.

Может, пригодится: есть STMки с двумя доменами питания. STM32F042, F072, например. Вполне можно VDD1 сделать 2 V, и подключить всё 1,8-вольтовое туда. А через VDD2 уже питать SWD, USB и пр.

Но совершенство недостижимо и если вы знаете лучшие решения — делитесь ими в комментах — это всем будет полезно

При питании от 1 аккума использую цифрУ с пониженным напряжением питания 2,5-2,8V. Современные популярные мк нормально работают в этом диапазоне. Некоторые и при 1,8V могут. Ну а stm8 или старым добрым avr можно ничего и не преобразовывать)

Кроме buck-boost и sepic напряжение больше и меньше входного можно получить с помощью инвертирующего преобразователя. Синхронный понижающий тоже используют в качестве инвертора. Если не нужна передача данных по USB - вполне практичный вариант.

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

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

Главное - не запутаться в двойных стандартах. Если гугл сливает данные на свои сервера, это хорошо и полезно. Если другое приложение сливает данные на гугловские сервера - это точняк шпионы.

GSM в пике (при входе в сеть, или когда сеть плохо слышно) 2 ампера может взять. wifi не так прожорлив

github pages нормально работают, я сам его использую для хостинга.

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

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

Недавно мне один из моих заказчиков, например, жаловался:
- Вот, у меня штатные сотрудники косячат очень много. Отладка железа крайне медленно получается. Щупами замыкают всё, что можно, запарывают платы, приходится тестовые партии перезаказывать. Что делать?
- А сколько вы им платите?
- Ну, 40-50 тысяч. Молодые, опыта мало, платить больше не за что.
- Вот Вы сами и ответили на свой вопрос

Ну это да, 20+ лет назад такое было. В НИИ оставались работать только энтузиасты, желающие получить начальный опыт или подольше отмазаться от армии) Сам был тогда и первым, и вторым, и третьим...

Я в 2018м ушёл во фриланс, а очень много моих коллег-разработчиков с большим опытом за плечами в это-же время из частных фирм переместились однако в те же гос-НИИ. Там тогда зарплаты ощутимо выросли, опытному инженеру можно было на 1500-2000 условных американских денег рассчитывать.

Не знаю, правда, как сейчас обстоят дела. Но вроде в военку-то сейчас как-раз вложения немаленькие.

Если так рассуждать, то у нас в России кроме РосАтома вообще не одной конкурентоспособной организации не останется.

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

Яндекс, Kotlin, VK, nginx, ABBYY, Касперский - эти названия разве вам ни о чём не говорят? Правда, если бы кое-кто защищал, а не отжимал успешный бизнес, то умеющих его организовать и желающих вложиться надолго было бы, конечно, гораздо больше, имхо.

А остальное много-миллионное население превратится в гастарбайтеров и станет кормом для западных OutSourсe

А с какого вообще лешего человек должен жить или трудиться в некомфортных для него условиях, когда рядом есть условия интереснее? Кому и с какого хрена он должен? Гастарбайтер, подумав, просто выбирает, где ему и его семье лучше.

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

Вот пример из более авторитетных источников про "вынос мозгов". Бортовой комп от Tesla S попался недавно, там тоже отдельная плата в похожем форм-факторе, а-ля . Мне досталась Nvidia Tegra, в более новых - Intel ставят. Автопром, достаточно суровые условия эксплуатации могут быть. Так что направление вы правильно выбрали

От тиража зависит - с мелким имеет смысл купить по-максимуму готовое. Мы же хотим большую зарплату, поэтому и говорим: разработка - это дорого)

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

Information

Rating
1,948-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Разработчик электроники
Lead
From 280,000 ₽
Electronics Development
Development of printed circuit board
FPGA
Programming microcontrollers
Sound processing