Иногда в процессе работы микроконтроллерного устройства необходимо произвести случайный выбор одного из нескольких равноценных вариантов. Для этого обычно используется программный генератор чисел, которые повторяются с очень большим периодом. Такой числовой ряд называют псевдослучайной последовательностью или, сокращенно, ПСП.
Тем не менее, если требуются абсолютно случайные числа, то лучше применить внешний аппаратный генератор шумоподобных сигналов. Принцип его работы заключается в усилении тепловых хаотических шумов, возникающих при работе полупроводниковых стабилитронов и транзисторов.
Известны также программно-аппаратные генераторы «случайных» чисел, использующие принцип «орёл-решка». Например, запускается программа, которая увеличивает значение счётчика с частотой несколько сотен тысяч раз в секунду. Человек имеет в руках контрольную кнопку, которая может остановить счётчик в
произвольный момент времени. Число, оставшееся в счётчике после остановки, математическому прогнозу практически не поддаётся.
Строго говоря, подобные устройства генерируют не случайные, а трудно предсказуемые числа, зависящие от множества мелких факторов, например, от скорости реакции человека, от степени износа контактов кнопки и т.д. В математической статистике доказывается, что система, обладающая слабой устойчивостью к малым возмущениям, превращается в стохастическую, т.е. близкую к случайной.
На Рис. 3.17, а...г показаны схемы подключения генераторов шума кМК.
Рис. 3.17. Схемы подключения генераторов шума к МК:
а) уровень шума, генерируемого стабилитроном VD1, регулируется резистором R2 и усиливается транзистором VT1. Для вывода стабилитрона в рабочую область требуется питание +15 В;
б) схема Р. Шиманяна. Используются два генератора шума на транзисторных аналогах стабилитрона (VT1, VT2). Резисторами R2, R6 производят выбор рабочей точки, а резистором R3 — суммирование для устранения асимметрии шумового напряжения;
в) генератор шума на стабилитроне VD1 с усилителем на микросхеме DA1. Резисторами R1, R4 подбирается оптимальная амплитуда шума. Стабилитрон VD1 требует питание +12 В;
г) программно-аппаратный генератор трудно предсказуемых чисел с использованием человека, нажимающего кнопку SB1 в случайный момент времени. Линии МК запараллелены и содержат внутренние «pull-up» резисторы, чтобы увеличить ток через кнопку SB1 (для повышения надёжности срабатывания контактов).