n-разрядный: 2ⁿ состояний; по модулю N: наименьшее n, при котором 2ⁿ ≥ N; fout = fclk/N
Асинхронный счётчик
fmax = 1/(n·tpd)
Кольцевой счётчик и счётчик Джонсона
n и 2n состояний
Метод
Для схемы идите от входов к выходу вентиль за вентилем и записывайте значение на каждом проводе или запишите её выражение и заполните таблицу истинности.
Для упрощения поставьте единицы (и безразличные состояния как X) на карту Карно со строками и столбцами в коде Грея: 00, 01, 11, 10.
Покройте единицы как можно меньшим числом как можно больших групп по 1, 2, 4, 8 или 16 клеток, с переходом через края; каждая группа — один член-произведение из переменных, которые остаются постоянными. Для формы POS группируйте нули.
Для триггеров и счётчиков считывайте входы на каждом активном фронте тактового сигнала, записывайте состояние после каждого фронта и помните, что n-разрядный счётчик возвращается к началу после 2ⁿ состояний.
Сбор данных и дискретизация
Критерий Найквиста
fs > 2·fmax, fN = fs/2
Ложная частота
fa = |f − k·fs|, k = round(f/fs)
Шаг квантования
1 LSB = VFSR/2ᴺ
Ошибка квантования (округление)
±½ LSB
АЦП с отбрасыванием остатка
D = ⌊Vin/LSB⌋
Число разрядов для разрешения r
2ᴺ ≥ span/r
Идеальное SQNR, синусоида на полной шкале
SQNR = 6,02·N + 1,76 dB
Скорость передачи данных
каналы × fs × N bit/s
АЦП с мультиплексором
fs = 1/(n·(tc + tset))
UART
Tb = 1/baud; 8N1 = 10 бит на байт; byte/s = baud/число бит в кадре
Делитель скорости передачи
baud = fclk/(16·D)
Метод
Запишите, что дано: частоту дискретизации, частоты сигналов, число разрядов, диапазон входа, скорость в бодах.
В задачах на дискретизацию сравнивайте каждую частоту с fs/2; более высокая частота появляется как fa = |f − k·fs| с ближайшим кратным fs.
В задачах на разрешение найдите 1 LSB = VFSR/2ᴺ или наименьшее N, при котором 2ᴺ ≥ диапазон/разрешение.
Для скоростей передачи данных и каналов UART считайте всё, что передаётся: каналы, отсчёты в секунду, биты или целые байты на отсчёт, а также стартовые, контрольные и стоповые биты каждого кадра.
2Тренировочные задачи
1.Системы счисленияСредняя
Установите биты так, чтобы они хранили −67 в 8-битном дополнительном коде. Чему равно значение комбинации U, если читать её как число без знака?
N = −678 bit
U =
2.Системы счисленияСложная
Установите биты в 8-битный результат операции 0011 1001 << 3. Чему равно значение результата R в десятичной системе?
0011 1001<< 3
R =
3.Цифровая логика: вентили, карты Карно и триггерыСредняя
У мультиплексора 4 в 1 адресные входы S₁ = A и S₀ = B, а информационные входы подключены так: I₀ = C, I₁ = 1, I₂ = C′, I₃ = C. Для скольких из 8 комбинаций A, B и C выход F = 1? Найдите N.
I₀ = CI₁ = 1I₂ = C′I₃ = C
N =
4.Цифровая логика: вентили, карты Карно и триггерыСложная
Найдите минимальную форму SOP для F(A, B, C, D) = Σm(1, 3, 4, 10, 12, 13) + d(0, 2, 5), где d обозначает безразличные состояния. Сколько литералов, L, она содержит?
Синусоида 11 kHz дискретизируется с частотой 20 kHz без антиэлайзингового фильтра. На какой частоте fa она появится в отсчётах? Дайте ответ в kHz.
f = 11 kHzfs = 20 kHz
fa = kHz
6.Сбор данных и дискретизацияСложная
Микроконтроллер с тактовой частотой 24 MHz задаёт скорость UART как fclk/(16·D), где D — целое число, округлённое до ближайшего значения. Целевая скорость — 38400 бод. Найдите относительную погрешность реальной скорости в бодах в процентах (положительную, если она слишком высока).
fclk = 24 MHzцелевая = 38400 Bd
e = %
3Растворы
1.Системы счисления
Ответ: U = 189
Установка битов: каждый бит стоит степень двойки (128, 64, …, 1). Одна шестнадцатеричная цифра — это ровно четыре бита, а в 8-битном дополнительном коде крайний левый бит стоит −128. Побитовые операции работают с каждой позицией бита отдельно.
Инвертируйте и прибавьте единицу
67 = 0100 0011
инвертировано: 1011 1100
+1 → 1011 1101
Прочитайте как беззнаковое
1011 1101₂ = 256 − 67 = 189
Ответ
U = 189
2.Системы счисления
Ответ: R = 200
Установка битов: каждый бит стоит степень двойки (128, 64, …, 1). Одна шестнадцатеричная цифра — это ровно четыре бита, а в 8-битном дополнительном коде крайний левый бит стоит −128. Побитовые операции работают с каждой позицией бита отдельно.
Бит за битом
Сдвиг влево на 3 перемещает каждый бит на 3 позиций влево; биты, выходящие за левый край, теряются, а справа входят нули.
0011 1001 << 3
= 1100 1000
Значение результата
1100 1000₂ = 200
Ответ
R = 200
3.Цифровая логика: вентили, карты Карно и триггеры
Ответ: N = 5
Мультиплексор: мультиплексор 2ⁿ в 1 передаёт на выход один из своих информационных входов; адресные входы, читаемые как двоичное число, выбирают, какой именно. Для мультиплексора 4 в 1 с адресами S₁S₀ = AB: F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. Если подключить информационные входы к 0, 1, C или C′, мультиплексор реализует любую функцию от A, B и C, что — распространённый способ построить логику на одной микросхеме.
Выражение выхода
F = A′B′C + A′B + AB′C′ + ABC
Строки с F = 1
ABC = 001, 010, 011, 100, 111
N = 5
Ответ
N = 5
4.Цифровая логика: вентили, карты Карно и триггеры
Ответ: L = 7
Карты Карно: клетки упорядочены по коду Грея (00, 01, 11, 10), поэтому соседние клетки, включая те, что через края, отличаются ровно одной переменной. Группируйте единицы в прямоугольники по 1, 2, 4, 8 или 16 клеток, как можно большие и в как можно меньшем числе, пока не будет покрыта каждая единица. Каждая группа — один член-произведение: переменные, которые внутри неё остаются постоянными. Группа из 2ᵏ клеток теряет k переменных. Безразличные состояния (X) можно использовать, чтобы увеличить группы, но покрывать их не обязательно. Если группировать нули, получится минимальная форма POS.
Простые импликанты
Самые большие группы, которые можно образовать из единиц и X.
BC′, B′CD′, A′C′, A′B′
Минимальное покрытие
F = BC′ + B′CD′ + A′B′
L = 7
Ответ
L = 7
5.Сбор данных и дискретизация
Ответ: fa = 9 kHz
Дискретизация: АЦП измеряет сигнал fs раз в секунду. По теореме Найквиста–Шеннона частота f фиксируется правильно, только пока f < fs/2, то есть ниже частоты Найквиста (частоты свёртки), поэтому частота дискретизации должна превышать удвоенную наивысшую частоту сигнала. Более высокая частота не теряется: она проявляется как ложная частота fa = |f − k·fs|, где целое число k выбирается так, чтобы результат оказался между 0 и fs/2. Отсчёты не позволяют различить эти две частоты, поэтому аналоговый антиэлайзинговый фильтр должен удалить всё выше fs/2 до АЦП.
Частота Найквиста
fs/2 = 10 kHz < f = 11 kHz
Ближайшее кратное частоты дискретизации
k = round(11/20) = 1
Ложная частота
fa = |11 − 1·20| = 9 kHz
Ответ
fa = 9 kHz
Штриховая кривая на рисунке — это ложная частота: она проходит ровно через те же отсчёты.
6.Сбор данных и дискретизация
Ответ: e = 0,1603 %
UART: асинхронный последовательный канал передаёт каждый байт кадром: один стартовый бит (низкий уровень), биты данных, необязательный бит чётности и один или два стоповых бита (высокий уровень). Скорость в бодах — это число бит в секунду, поэтому один бит длится Tb = 1/baud, а кадр из n бит длится n/baud. В распространённом формате 8N1 на байт приходится 10 бит. Генератор бодов делит тактовую частоту: baud = fclk/(16·D) с целым D, поэтому реальная скорость в бодах немного отличается от заданной; погрешность меньше примерно 2 % обычно допустима.