У вікні друку виберіть «Зберегти як PDF», щоб зберегти копію на пристрої.
1Формули та методи
Системи числення
Ваги розрядів
двійкова 2k, вісімкова 8k, шістнадцяткова 16k
У десяткову
Σ dk·bk
З десяткової
діліть на основу, остачі читайте знизу вгору
Шістнадцяткова ↔ двійкова
одна шістнадцяткова цифра = 4 біти
Додатковий код
інвертуйте біти й додайте 1
Цифрова логіка: вентилі, карти Карно та тригери
Базові вентилі
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Правила булевої алгебри
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
Закони де Моргана
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Порядок на карті Карно
00, 01, 11, 10 (Gray code)
Група з 2ᵏ клітинок
втрачає k змінних
Мультиплексор 4-до-1
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Тригери
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Лічильники
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 біт/с
АЦП з мультиплексуванням
fs = 1/(n·(tc + tset))
UART
Tb = 1/бод; 8N1 = 10 біт на байт; байт/с = бод/біт у кадрі
Дільник швидкості передавання (бод)
baud = fclk/(16·D)
Метод
Випишіть, що дано: частоту дискретизації, частоти сигналу, кількість розрядів, вхідний діапазон, швидкість у бодах.
У задачах на дискретизацію порівнюйте кожну частоту з fs/2; вища частота виглядає як fa = |f − k·fs| з найближчим кратним fs.
У задачах на роздільність знайдіть 1 LSB = VFSR/2ᴺ або найменше N, для якого 2ᴺ ≥ діапазон/роздільність.
У задачах на швидкість даних і лінії UART враховуйте все, що передається: канали, відліки за секунду, біти чи цілі байти на відлік, а також стартові, паритетні й стопові біти кожного кадру.
2Задачі для практики
1.Системи численняСередня
Встановіть біти так, щоб вони зберігали −6 в 8-бітовому доповняльному коді. Яке значення U шаблону, якщо читати його як беззнакове число?
N = −68 bit
U =
2.Системи численняСкладна
Встановіть біти за 8-бітовим результатом 0111 1100 XOR 0011 0110. Яке значення R результату в десятковій системі?
0111 1100XOR0011 0110
R =
3.Цифрова логіка: вентилі, карти Карно та тригериСередня
Мультиплексор 4-до-1 має адресні входи S₁ = A і S₀ = B, а його інформаційні входи з’єднано з I₀ = 1, I₁ = C′, I₂ = 0, I₃ = C. Для скількох із 8 комбінацій A, B і C вихід F = 1? Знайдіть N.
I₀ = 1I₁ = C′I₂ = 0I₃ = C
N =
4.Цифрова логіка: вентилі, карти Карно та тригериСкладна
Знайдіть мінімальну форму SOP для F(A, B, C, D) = Σm(4, 7, 10, 13, 14) + d(0, 3, 11), де d позначає байдужі стани. Скільки літералів L вона містить?
8-розрядний АЦП із вхідним діапазоном від 0 до 2,5 В відсікає: його вихідний код — ⌊Vin/LSB⌋ при 1 LSB = VFSR/2ᴺ. Знайдіть десятковий вихідний код D для входу 2,192 В.
N = 8VFSR = 2,5 VVin = 2,192 V
D =
6.Збір даних і дискретизаціяСкладна
Мікроконтролер із тактовою частотою 10 МГц задає швидкість UART як fclk/(16·D), де D — ціле число, округлене до найближчого значення. Цільова швидкість — 19200 бод. Знайдіть відсоткову похибку реальної швидкості (додатну, якщо вона завелика).
fclk = 10 MHzціль = 19200 Bd
e = %
3Розчини
1.Системи числення
Відповідь: U = 250
Встановлення бітів: кожен біт має вагу степеня двійки (128, 64, …, 1). Одна шістнадцяткова цифра — це рівно чотири біти, а в 8-бітовому доповняльному коді крайній лівий біт має вагу −128. Порозрядні операції працюють з кожною позицією біта окремо.
Інвертуйте і додайте одиницю
6 = 0000 0110
інвертовано: 1111 1001
+1 → 1111 1010
Прочитайте як беззнакове
1111 1010₂ = 256 − 6 = 250
Відповідь
U = 250
2.Системи числення
Відповідь: R = 74
Встановлення бітів: кожен біт має вагу степеня двійки (128, 64, …, 1). Одна шістнадцяткова цифра — це рівно чотири біти, а в 8-бітовому доповняльному коді крайній лівий біт має вагу −128. Порозрядні операції працюють з кожною позицією біта окремо.
Біт за бітом
XOR дає 1, де два біти різні.
0111 1100
XOR 0011 0110
= 0100 1010
Значення результату
0100 1010₂ = 74
Відповідь
R = 74
3.Цифрова логіка: вентилі, карти Карно та тригери
Відповідь: N = 4
Мультиплексор: мультиплексор 2ⁿ-до-1 передає на вихід один зі своїх інформаційних входів; адресні лінії, прочитані як двійкове число, вибирають який. Для MUX 4-до-1 з адресами S₁S₀ = AB маємо F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. Якщо з’єднати інформаційні входи з 0, 1, C або C′, MUX реалізує будь-яку функцію від A, B і C, що є поширеним способом побудувати логіку однією мікросхемою.
Вираз виходу
F = A′B′ + A′BC′ + ABC
Рядки з F = 1
ABC = 000, 001, 010, 111
N = 4
Відповідь
N = 4
4.Цифрова логіка: вентилі, карти Карно та тригери
Відповідь: L = 13
Карти Карно: клітинки впорядковано за кодом Грея (00, 01, 11, 10), тож сусідні клітинки, зокрема через краї, відрізняються рівно однією змінною. Групуйте одиниці в прямокутники по 1, 2, 4, 8 або 16 клітинок, якомога більші й у якомога меншій кількості, доки кожну 1 не буде покрито. Кожна група — це один добуток: змінні, що лишаються сталими всередині неї. Група з 2ᵏ клітинок втрачає k змінних. Байдужі стани (X) можна використовувати, щоб групи були більшими, але їх не обов’язково покривати. Групування нулів замість одиниць дає мінімальну форму POS.
Прості імпліканти
Найбільші групи, які можна утворити з одиниць і X.
A′C′D′, A′CD, ACD′, AB′C, ABC′D
Мінімальне покриття
F = A′C′D′ + A′CD + ACD′ + ABC′D
L = 13
Відповідь
L = 13
5.Збір даних і дискретизація
Відповідь: D = 224
Роздільність АЦП: N-розрядний перетворювач ділить свій діапазон повної шкали VFSR на 2ᴺ кодів, від 0 до 2ᴺ − 1. Один крок дорівнює 1 LSB = VFSR/2ᴺ: найменша зміна, яку може показати перетворювач. АЦП з відсіканням дає код ⌊Vin/LSB⌋; АЦП із округленням ніколи не відхиляється від істинного значення більш ніж на ½ LSB, це його похибка квантування. Кожен додатковий розряд зменшує LSB удвічі й додає близько 6 дБ до ідеального відношення сигнал/шум квантування SQNR = 6,02·N + 1,76 дБ для синуса на повну шкалу. Щоб досягти роздільності r на діапазоні, оберіть найменше N, для якого 2ᴺ ≥ діапазон/r.
Розмір кроку
1 LSB = 2,5/28 = 9,766 mV
Код
Vin/LSB = 2192/9,766 = 224,5
код = ⌊224,5⌋ = 224
Відповідь
D = 224
У двійковому записі це 11100000.
6.Збір даних і дискретизація
Відповідь: e = −1,357 %
UART: асинхронна послідовна лінія передає кожен байт як кадр: один стартовий біт (низький), біти даних, необов’язковий біт парності та один або два стопові біти (високі). Швидкість у бодах — це кількість біт за секунду, тож один біт триває Tb = 1/бод, а кадр із n біт — n/бод. Поширений формат 8N1 має 10 біт на байт. Генератор швидкості ділить тактову частоту: бод = fclk/(16·D) із цілим D, тож реальна швидкість трохи відрізняється від цільової; похибка менш ніж приблизно 2 % зазвичай прийнятна.
Дільник
D = 10·10⁶/(16·19200) = 32,55 → 33
Реальна швидкість у бодах
10·10⁶/(16·33) = 18939 Bd
Похибка
(18939 − 19200)/19200·100 = −1,357 %
Відповідь
e = −1,357 %
Похибка менш ніж приблизно 2 % зазвичай прийнятна.